Compare commits

..

12 Commits

Author SHA1 Message Date
Anuken
acaed63c52 Merge remote-tracking branch 'origin/master' 2025-09-29 08:51:08 -04:00
Anuken
4d6334a941 A few more submission updates 2025-09-29 08:51:03 -04:00
Github Actions
72524a7289 Automatic bundle update 2025-09-29 12:49:09 +00:00
Anuken
081621936e Merge remote-tracking branch 'origin/master' 2025-09-29 08:48:07 -04:00
Anuken
32b9ff9f5d Added difficulty modifier for clearing sectors upon loss 2025-09-29 08:47:59 -04:00
Github Actions
c6f9bc3b6f Automatic bundle update 2025-09-29 12:42:28 +00:00
summoner
8602fd57f6 Translation: Update bundle_hu.properties (#11189)
* Translation: Update bundle_hu.properties

Follow the changes of the english bundle
Translate new string

* Update bundle_hu.properties

Translate new strings.

Follow the changes of the english bundle

* Update bundle_hu.properties

Fixing status effects translations

* Translation: Update bundle_hu.properties

Follow the changes of the english bundle

* Transltion: Update bundle_hu.properties

Translate new strings
2025-09-29 08:41:27 -04:00
SITUVNgcd
24fd6950c1 Update Vietnamese translation (#11195)
* Update Vietnamese translation

stat.frequency fb93735352

* Update Vietnamese translation

8884aec248
2025-09-28 21:33:06 -04:00
Anuken
72ce49a753 More tests for saves 2025-09-28 16:41:36 -04:00
Anuken
dd8db10e72 Minor tweaks to make Android inset area look less awful 2025-09-28 16:02:49 -04:00
Anuken
6c0884a8d9 More tests and sector fixes 2025-09-28 13:30:53 -04:00
Anuken
adc1316444 Fixed some more broken submissions 2025-09-28 12:30:57 -04:00
52 changed files with 173 additions and 45 deletions

View File

@@ -1450,6 +1450,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Мінімальны Размер Атраду rules.rtsminsquadsize = Мінімальны Размер Атраду
rules.rtsmaxsquadsize = Максімальны Размер Атраду rules.rtsmaxsquadsize = Максімальны Размер Атраду
rules.rtsminattackweight = Мінімальная Вага Атакі rules.rtsminattackweight = Мінімальная Вага Атакі

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Степен на ИИ строителя
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Мин. размер на взводовете rules.rtsminsquadsize = Мин. размер на взводовете
rules.rtsmaxsquadsize = Макс. размер на взводовете rules.rtsmaxsquadsize = Макс. размер на взводовете
rules.rtsminattackweight = Мин. атакуваща тежест rules.rtsminattackweight = Мин. атакуваща тежест

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Nivell de construcció de la IA
rules.rtsai = IA avançada (RTS AI) rules.rtsai = IA avançada (RTS AI)
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Mida mínima de lesquadró rules.rtsminsquadsize = Mida mínima de lesquadró
rules.rtsmaxsquadsize = Mida màxima de lesquadró rules.rtsmaxsquadsize = Mida màxima de lesquadró
rules.rtsminattackweight = Pes datac mínim rules.rtsminattackweight = Pes datac mínim

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Úroveň AI stavitele
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = Útočná RTS AI rules.rtsai.campaign = Útočná RTS AI
rules.rtsai.campaign.info = Na útočných mapách vytváří skupiny jednotek, které útočí na hráčské základny inteligentnějším způsobem. rules.rtsai.campaign.info = Na útočných mapách vytváří skupiny jednotek, které útočí na hráčské základny inteligentnějším způsobem.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min velikost skupiny rules.rtsminsquadsize = Min velikost skupiny
rules.rtsmaxsquadsize = Max velikost skupiny rules.rtsmaxsquadsize = Max velikost skupiny
rules.rtsminattackweight = Min váha útoku rules.rtsminattackweight = Min váha útoku

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Bau-KI-Tier
rules.rtsai = RTS KI [red](unfertig) rules.rtsai = RTS KI [red](unfertig)
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min. Squadgröße rules.rtsminsquadsize = Min. Squadgröße
rules.rtsmaxsquadsize = Max. Squadgröße rules.rtsmaxsquadsize = Max. Squadgröße
rules.rtsminattackweight = Min. Angriffsgröße rules.rtsminattackweight = Min. Angriffsgröße

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = IA enemiga avanzada (RTS AI) rules.rtsai = IA enemiga avanzada (RTS AI)
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Tamaño mínimo de escuadrón rules.rtsminsquadsize = Tamaño mínimo de escuadrón
rules.rtsmaxsquadsize = Tamaño máximo de escuadrón rules.rtsmaxsquadsize = Tamaño máximo de escuadrón
rules.rtsminattackweight = Peso mínimo de ataque rules.rtsminattackweight = Peso mínimo de ataque

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min. hyökkäysjoukon koko rules.rtsminsquadsize = Min. hyökkäysjoukon koko
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min. hyökkäyksen paino rules.rtsminattackweight = Min. hyökkäyksen paino

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = Sa mapang attake, ginagawa gina grupo ang mga unit at inaatake ang player bases sa mas-maraming matalinong na manner. rules.rtsai.campaign.info = Sa mapang attake, ginagawa gina grupo ang mga unit at inaatake ang player bases sa mas-maraming matalinong na manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Pinakamaliit Squad Size rules.rtsminsquadsize = Pinakamaliit Squad Size
rules.rtsmaxsquadsize = Pinakaraming Squad Size rules.rtsmaxsquadsize = Pinakaraming Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Niveau de l'IA de Construction de Base
rules.rtsai = IA de RTS [red](WIP) rules.rtsai = IA de RTS [red](WIP)
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Taille Minimale d'une Escouade rules.rtsminsquadsize = Taille Minimale d'une Escouade
rules.rtsmaxsquadsize = Taille Maximale d'une Escouade rules.rtsmaxsquadsize = Taille Maximale d'une Escouade
rules.rtsminattackweight = Poids Minimum d'une Attaque rules.rtsminattackweight = Poids Minimum d'une Attaque

View File

@@ -448,9 +448,9 @@ publish.confirm = Biztosan közzéteszed ezt az elemet?\n\n[lightgray]Győződj
publish.error = Hiba az elem közzétételekor: {0} publish.error = Hiba az elem közzétételekor: {0}
steam.error = Nem sikerült előkészíteni a Steam szolgáltatásokat.\nHiba: {0} steam.error = Nem sikerült előkészíteni a Steam szolgáltatásokat.\nHiba: {0}
editor.showblocks = Show Blocks editor.showblocks = Blokkok megjelenítése
editor.showterrain = Show Terrain editor.showterrain = Domborzat megjelenítése
editor.showfloor = Show Floor editor.showfloor = Talaj megjelenítése
editor.planet = Bolygó: editor.planet = Bolygó:
editor.sector = Szektor: editor.sector = Szektor:
editor.seed = Kiindulóérték: editor.seed = Kiindulóérték:
@@ -801,7 +801,7 @@ sectors.wave = Hullám:
sectors.stored = Tárolt nyersanyagok: sectors.stored = Tárolt nyersanyagok:
sectors.resume = Folytatás sectors.resume = Folytatás
sectors.launch = Kilövés sectors.launch = Kilövés
sectors.viewsubmission = \ue80d Alküldetések megtekintése sectors.viewsubmission = \ue80d Alküldetés megtekintése
sectors.select = Kiválasztás sectors.select = Kiválasztás
sectors.launchselect = Célállomás kiválasztása sectors.launchselect = Célállomás kiválasztása
sectors.nonelaunch = [lightgray]semmi (nap) sectors.nonelaunch = [lightgray]semmi (nap)
@@ -879,7 +879,7 @@ sector.seaPort.name = Tengeri kikötő
sector.weatheredChannels.name = Viharvert csatornák sector.weatheredChannels.name = Viharvert csatornák
sector.mycelialBastion.name = Micéliumbástya sector.mycelialBastion.name = Micéliumbástya
sector.frontier.name = Frontvidék sector.frontier.name = Frontvidék
sector.sunkenPier.name = Sunken Pier sector.sunkenPier.name = Elsüllyedt móló
sector.cruxscape.name = Crux-vidék sector.cruxscape.name = Crux-vidék
sector.geothermalStronghold.name = Geotermikus erődítmény sector.geothermalStronghold.name = Geotermikus erődítmény
@@ -953,15 +953,15 @@ sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban
sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[]. sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[].
sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek koncentrálj az ellenséges támaszpontok elpusztítására. sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek koncentrálj az ellenséges támaszpontok elpusztítására.
status.burning.name = Égő status.burning.name = Égés
status.freezing.name = Fagyos status.freezing.name = Fagyás
status.wet.name = Nedves status.wet.name = Vizes
status.muddy.name = Sáros status.muddy.name = Sáros
status.melting.name = Olvadó status.melting.name = Olvadás
status.sapped.name = Kiszáradt status.sapped.name = Legyengült
status.electrified.name = Elektromos status.electrified.name = Árammal ellátott
status.spore-slowed.name = Spórával lassított status.spore-slowed.name = Spóralassított
status.tarred.name = Kátrányozott status.tarred.name = Kátrányos
status.overdrive.name = Túlhajtott status.overdrive.name = Túlhajtott
status.overclock.name = Túlhúzott status.overclock.name = Túlhúzott
status.shocked.name = Sokkolt status.shocked.name = Sokkolt
@@ -1014,10 +1014,10 @@ stat.opposites = Ellentettek
stat.powercapacity = Maximális tárolási kapacitás stat.powercapacity = Maximális tárolási kapacitás
stat.powershot = Áram/lövés stat.powershot = Áram/lövés
stat.damage = Sebzés stat.damage = Sebzés
stat.frequency = Frequency stat.frequency = Frekvencia
stat.targetsair = Légi célpontok stat.targetsair = Légi célpontok
stat.targetsground = Földi célpontok stat.targetsground = Földi célpontok
stat.crushdamage = Crush Damage stat.crushdamage = Zúzó sebzés
stat.itemsmoved = Szállítási sebesség stat.itemsmoved = Szállítási sebesség
stat.launchtime = Kilövések közötti idő stat.launchtime = Kilövések közötti idő
stat.shootrange = Hatótávolság stat.shootrange = Hatótávolság
@@ -1102,7 +1102,7 @@ ability.movelightning.description = Mozgás közben villámokat bocsát ki
ability.armorplate = Páncéllemez ability.armorplate = Páncéllemez
ability.armorplate.description = Csökkenti a kapott sebzést lövés közben ability.armorplate.description = Csökkenti a kapott sebzést lövés közben
ability.shieldarc = Erőpajzs-ív ability.shieldarc = Erőpajzs-ív
ability.shieldarc.description = Olyan erőpajzsot vetít ki egy ívben, amely elnyeli a lövedékeket ability.shieldarc.description = Olyan erőpajzsot vetít ki egy ívben, amely elnyeli vagy eltéríti a lövedékeket, rakétákat és egységeket.
ability.suppressionfield = Javítás elnyomása ability.suppressionfield = Javítás elnyomása
ability.suppressionfield.description = Leállítja a közeli javítóépületeket ability.suppressionfield.description = Leállítja a közeli javítóépületeket
ability.energyfield = Energiamező ability.energyfield = Energiamező
@@ -1122,7 +1122,7 @@ ability.stat.regen = [stat]{0}[lightgray] életerő/mp
ability.stat.pulseregen = [stat]{0}[lightgray] életerő/impulzus ability.stat.pulseregen = [stat]{0}[lightgray] életerő/impulzus
ability.stat.shield = [stat]{0}[lightgray] maximális pajzs ability.stat.shield = [stat]{0}[lightgray] maximális pajzs
ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség
ability.stat.deflectchance = [stat]{0}%[lightgray] deflect chance ability.stat.deflectchance = [stat]{0}%[lightgray] hárítási esély
ability.stat.slurpheal = [stat]{0}[lightgray] életerő/folyadékegység ability.stat.slurpheal = [stat]{0}[lightgray] életerő/folyadékegység
ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés
ability.stat.maxtargets = [stat]{0}[lightgray] célpont (legfeljebb) ability.stat.maxtargets = [stat]{0}[lightgray] célpont (legfeljebb)
@@ -1447,6 +1447,8 @@ rules.buildaitier = Építő MI szintje
rules.rtsai = RTS MI rules.rtsai = RTS MI
rules.rtsai.campaign = RTS támadó-MI rules.rtsai.campaign = RTS támadó-MI
rules.rtsai.campaign.info = A „támadómódú” pályákon (ahol az ellenség is rendelkezik támaszponttal) az MI által irányított\negységek csoportosulnak, és intelligensebb módon támadják a játékosok bázisait. rules.rtsai.campaign.info = A „támadómódú” pályákon (ahol az ellenség is rendelkezik támaszponttal) az MI által irányított\negységek csoportosulnak, és intelligensebb módon támadják a játékosok bázisait.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Minimális osztagméret rules.rtsminsquadsize = Minimális osztagméret
rules.rtsmaxsquadsize = Maximális osztagméret rules.rtsmaxsquadsize = Maximális osztagméret
rules.rtsminattackweight = Minimális támadási súly rules.rtsminattackweight = Minimális támadási súly
@@ -1670,7 +1672,7 @@ block.snow.name = Hó
block.crater-stone.name = Kráterek block.crater-stone.name = Kráterek
block.sand-water.name = Homokvíz block.sand-water.name = Homokvíz
block.darksand-water.name = Sötét homokvíz block.darksand-water.name = Sötét homokvíz
block.char.name = Faszén block.char.name = Elszenesedett kő
block.dacite.name = Dácit block.dacite.name = Dácit
block.rhyolite.name = Riolit block.rhyolite.name = Riolit
block.dacite-wall.name = Dácitfal block.dacite-wall.name = Dácitfal
@@ -2479,9 +2481,9 @@ unit.navanax.description = Robbanékony EMI-lövedékeket lő ki, jelentős kár
#Erekir #Erekir
unit.stell.description = Szokásos lövedékeket lő ki az ellenséges célpontokra. unit.stell.description = Szokásos lövedékeket lő ki az ellenséges célpontokra.
unit.locus.description = Változatos lövedékeket lő ki az ellenséges célpontokra. unit.locus.description = Változatos lövedékeket lő ki az ellenséges célpontokra.
unit.precept.description = Átütő erejű kazettás lövedékeket lő ki az ellenséges célpontokra. unit.precept.description = Átütő erejű kazettás lövedékeket lő ki az ellenséges célpontokra. Kevésbé sérül a káros tereptárgyaktól.
unit.vanquish.description = Nagy, átütő erejű hasítólövedékeket lő ki az ellenséges célpontokra. unit.vanquish.description = Nagy, átütő erejű hasítólövedékeket lő ki az ellenséges célpontokra. Kevésbé sérül a káros tereptárgyaktól.
unit.conquer.description = Nagy, átütő erejű golyózáport lő ki az ellenséges célpontokra. unit.conquer.description = Nagy, átütő erejű golyózáport lő ki az ellenséges célpontokra. Kevésbé sérül a káros tereptárgyaktól.
unit.merui.description = Nagy hatótávolságú ágyúkkal lövi az ellenséges szárazföldi célpontokat. A legtöbb terepakadályt átlépi. unit.merui.description = Nagy hatótávolságú ágyúkkal lövi az ellenséges szárazföldi célpontokat. A legtöbb terepakadályt átlépi.
unit.cleroi.description = Kettős lövedékeket lő ki az ellenséges célpontokra. Célba veszi az ellenséges lövedékeket a pontvédelmi tornyokkal. A legtöbb terepakadályt átlépi. unit.cleroi.description = Kettős lövedékeket lő ki az ellenséges célpontokra. Célba veszi az ellenséges lövedékeket a pontvédelmi tornyokkal. A legtöbb terepakadályt átlépi.
unit.anthicus.description = Nagy hatótávolságú célkövető rakétákat lő ki az ellenséges célpontokra. A legtöbb terepakadályt átlépi. unit.anthicus.description = Nagy hatótávolságú célkövető rakétákat lő ki az ellenséges célpontokra. A legtöbb terepakadályt átlépi.

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Tingkat A.I. Pembangun
rules.rtsai = A.I. RTS [red](WIP) rules.rtsai = A.I. RTS [red](WIP)
rules.rtsai.campaign = A.I. Serangan RTS rules.rtsai.campaign = A.I. Serangan RTS
rules.rtsai.campaign.info = Dalam peta serangan, membuat unit berkelompok dan menyerang markas pemain dengan cara yang lebih cerdas. rules.rtsai.campaign.info = Dalam peta serangan, membuat unit berkelompok dan menyerang markas pemain dengan cara yang lebih cerdas.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Ukuran Regu Minimum rules.rtsminsquadsize = Ukuran Regu Minimum
rules.rtsmaxsquadsize = Ukuran Regu Maksimum rules.rtsmaxsquadsize = Ukuran Regu Maksimum
rules.rtsminattackweight = Berat Serangan Minimum rules.rtsminattackweight = Berat Serangan Minimum

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Dimensione minima squadra rules.rtsminsquadsize = Dimensione minima squadra
rules.rtsmaxsquadsize = Dimensione massima squadra rules.rtsmaxsquadsize = Dimensione massima squadra
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = チームの最少人数 rules.rtsminsquadsize = チームの最少人数
rules.rtsmaxsquadsize = チームの最大人数 rules.rtsmaxsquadsize = チームの最大人数
rules.rtsminattackweight = 最小攻撃力 rules.rtsminattackweight = 最小攻撃力

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = 건설 AI 등급
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS 공격 AI rules.rtsai.campaign = RTS 공격 AI
rules.rtsai.campaign.info = 공격 맵에서는 유닛을 그룹화하여 더욱 지능적인 방식으로 플레이어 기지를 공격합니다. rules.rtsai.campaign.info = 공격 맵에서는 유닛을 그룹화하여 더욱 지능적인 방식으로 플레이어 기지를 공격합니다.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = 최소 부대 규모 rules.rtsminsquadsize = 최소 부대 규모
rules.rtsmaxsquadsize = 최대 부대 규모 rules.rtsmaxsquadsize = 최대 부대 규모
rules.rtsminattackweight = 최소 공격 중량 rules.rtsminattackweight = 최소 공격 중량

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Ploeg Grootte rules.rtsminsquadsize = Min Ploeg Grootte
rules.rtsmaxsquadsize = Max Ploeg Grootte rules.rtsmaxsquadsize = Max Ploeg Grootte
rules.rtsminattackweight = Min Aanvalsgewicht rules.rtsminattackweight = Min Aanvalsgewicht

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Poziom Budowania AI
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = Na mapach typu „atak” sprawia, że jednostki grupują się i atakują bazy graczy w bardziej inteligentny sposób. rules.rtsai.campaign.info = Na mapach typu „atak” sprawia, że jednostki grupują się i atakują bazy graczy w bardziej inteligentny sposób.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Minimalny Rozmiar Składu rules.rtsminsquadsize = Minimalny Rozmiar Składu
rules.rtsmaxsquadsize = Maksymalny Rozmiar Składu rules.rtsmaxsquadsize = Maksymalny Rozmiar Składu
rules.rtsminattackweight = Minimalna Waga Ataku rules.rtsminattackweight = Minimalna Waga Ataku

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Tamanho mínimo do esquadrão rules.rtsminsquadsize = Tamanho mínimo do esquadrão
rules.rtsmaxsquadsize = Tamanho máximo do esquadrão rules.rtsmaxsquadsize = Tamanho máximo do esquadrão
rules.rtsminattackweight = Peso Mínimo de Ataque rules.rtsminattackweight = Peso Mínimo de Ataque

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Nível de Construtor IA
rules.rtsai = RTS AI [red](WIP) rules.rtsai = RTS AI [red](WIP)
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Tamanho Mínimo de Esquadrão rules.rtsminsquadsize = Tamanho Mínimo de Esquadrão
rules.rtsmaxsquadsize = Tamanho Máximo de Esquadrão rules.rtsmaxsquadsize = Tamanho Máximo de Esquadrão
rules.rtsminattackweight = Peso Mínimo de Ataque rules.rtsminattackweight = Peso Mínimo de Ataque

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Уровень баз ИИ
rules.rtsai = ИИ в реальном времени rules.rtsai = ИИ в реальном времени
rules.rtsai.campaign = ИИ в реальном времени rules.rtsai.campaign = ИИ в реальном времени
rules.rtsai.campaign.info = В секторах атаки, враги будут собираться в отряды и действовать умнее. rules.rtsai.campaign.info = В секторах атаки, враги будут собираться в отряды и действовать умнее.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Минимальный размер отряда rules.rtsminsquadsize = Минимальный размер отряда
rules.rtsmaxsquadsize = Максимальный размер отряда rules.rtsmaxsquadsize = Максимальный размер отряда
rules.rtsminattackweight = Минимальный вес для атаки rules.rtsminattackweight = Минимальный вес для атаки

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI [red](Nedovršeno) rules.rtsai = RTS AI [red](Nedovršeno)
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Minimalna Veličina Odreda rules.rtsminsquadsize = Minimalna Veličina Odreda
rules.rtsmaxsquadsize = Maksimalna Veličina Odreda rules.rtsmaxsquadsize = Maksimalna Veličina Odreda
rules.rtsminattackweight = Minimalna Težina Napada rules.rtsminattackweight = Minimalna Težina Napada

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = ระดับการสร้างของ AI
rules.rtsai = RTS AI [red](ไม่เสถียร) rules.rtsai = RTS AI [red](ไม่เสถียร)
rules.rtsai.campaign = AI โจมตีแบบ RTS rules.rtsai.campaign = AI โจมตีแบบ RTS
rules.rtsai.campaign.info = ในแมพโจมตี จะทำให้ยูนิตรวมตัวกันและจู่โจมฐานทัพของผู้เล่นในวิถีการคำนวณที่ฉลาดมากกว่า rules.rtsai.campaign.info = ในแมพโจมตี จะทำให้ยูนิตรวมตัวกันและจู่โจมฐานทัพของผู้เล่นในวิถีการคำนวณที่ฉลาดมากกว่า
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = ขนาดกองทัพเล็กที่สุด rules.rtsminsquadsize = ขนาดกองทัพเล็กที่สุด
rules.rtsmaxsquadsize = ขนาดกองทัพใหญ่ที่สุด rules.rtsmaxsquadsize = ขนาดกองทัพใหญ่ที่สุด
rules.rtsminattackweight = ขนาดน้ำหนักการโจมตีน้อยที่สุด rules.rtsminattackweight = ขนาดน้ำหนักการโจมตีน้อยที่สุด

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight rules.rtsminattackweight = Min Attack Weight

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = İnşaatçı YZ sınıfı
rules.rtsai = RTS YZ rules.rtsai = RTS YZ
rules.rtsai.campaign = RTS Saldırı YZ rules.rtsai.campaign = RTS Saldırı YZ
rules.rtsai.campaign.info = Saldırı Haritalarında, yapay zekayı daha 'zeki' yapar. rules.rtsai.campaign.info = Saldırı Haritalarında, yapay zekayı daha 'zeki' yapar.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Asgari Gurup Boyutu rules.rtsminsquadsize = Asgari Gurup Boyutu
rules.rtsmaxsquadsize = Azami Gurup Boyutu rules.rtsmaxsquadsize = Azami Gurup Boyutu
rules.rtsminattackweight = Asgari Saldırı Boyutu rules.rtsminattackweight = Asgari Saldırı Boyutu

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = Рівень ШІ-будівельника
rules.rtsai = ШІ зі стратегій реального часу rules.rtsai = ШІ зі стратегій реального часу
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Мінімальний розмір загону rules.rtsminsquadsize = Мінімальний розмір загону
rules.rtsmaxsquadsize = Максимальний розмір загону rules.rtsmaxsquadsize = Максимальний розмір загону
rules.rtsminattackweight = Мінімальна ударна вага rules.rtsminattackweight = Мінімальна ударна вага

View File

@@ -448,9 +448,9 @@ publish.confirm = Bạn có chắc chắn muốn xuất bản không?\n\n[lightg
publish.error = Lỗi khi xuất bản mục: {0} publish.error = Lỗi khi xuất bản mục: {0}
steam.error = Không thể khởi chạy dịch vụ Steam.\nLỗi: {0} steam.error = Không thể khởi chạy dịch vụ Steam.\nLỗi: {0}
editor.showblocks = Show Blocks editor.showblocks = Hiện Khối
editor.showterrain = Show Terrain editor.showterrain = Hiện Địa Hình
editor.showfloor = Show Floor editor.showfloor = Hiện Nền
editor.planet = Hành tinh: editor.planet = Hành tinh:
editor.sector = Phân khu: editor.sector = Phân khu:
editor.seed = Mầm: editor.seed = Mầm:
@@ -958,7 +958,7 @@ status.freezing.name = Đóng băng
status.wet.name = Ẩm ướt status.wet.name = Ẩm ướt
status.muddy.name = Sa lầy status.muddy.name = Sa lầy
status.melting.name = Tan chảy status.melting.name = Tan chảy
status.sapped.name = Ăn mòn status.sapped.name = Suy yếu
status.electrified.name = Nhiễm điện status.electrified.name = Nhiễm điện
status.spore-slowed.name = Nhiễm bào tử chậm status.spore-slowed.name = Nhiễm bào tử chậm
status.tarred.name = Nhiễm dầu status.tarred.name = Nhiễm dầu
@@ -966,7 +966,7 @@ status.overdrive.name = Tăng tốc
status.overclock.name = Ép xung status.overclock.name = Ép xung
status.shocked.name = Sốc status.shocked.name = Sốc
status.blasted.name = Nổ status.blasted.name = Nổ
status.corroded.name = Corroded status.corroded.name = Ăn mòn
status.unmoving.name = Bất động status.unmoving.name = Bất động
status.boss.name = Trùm status.boss.name = Trùm
@@ -1014,10 +1014,10 @@ stat.opposites = Đối nghịch
stat.powercapacity = Dung lượng điện stat.powercapacity = Dung lượng điện
stat.powershot = Năng lượng/Phát bắn stat.powershot = Năng lượng/Phát bắn
stat.damage = Sát thương stat.damage = Sát thương
stat.frequency = Frequency stat.frequency = Tần suất
stat.targetsair = Mục tiêu trên không stat.targetsair = Mục tiêu trên không
stat.targetsground = Mục tiêu mặt đất stat.targetsground = Mục tiêu mặt đất
stat.crushdamage = Crush Damage stat.crushdamage = Sát thương nghiền nát
stat.itemsmoved = Tốc độ dịch chuyển stat.itemsmoved = Tốc độ dịch chuyển
stat.launchtime = Thời gian giữa các lần phóng stat.launchtime = Thời gian giữa các lần phóng
stat.shootrange = Phạm vi stat.shootrange = Phạm vi
@@ -1102,7 +1102,7 @@ ability.movelightning.description = Giải phóng tia điện khi di chuyển
ability.armorplate = Mảnh giáp ability.armorplate = Mảnh giáp
ability.armorplate.description = Giảm sát thương gánh chịu trong khi bắn ability.armorplate.description = Giảm sát thương gánh chịu trong khi bắn
ability.shieldarc = Khiên vòng cung ability.shieldarc = Khiên vòng cung
ability.shieldarc.description = Phát một khiên trường lực vòng cung hấp thụ các loại đạn ability.shieldarc.description = Phát một khiên trường lực vòng cung hấp thụ hoặc làm chệch hướng các loại đạn, tên lửa và đơn vị
ability.suppressionfield = Ngăn chặn sửa chữa ability.suppressionfield = Ngăn chặn sửa chữa
ability.suppressionfield.description = Dừng các công trình sửa chữa gần đó ability.suppressionfield.description = Dừng các công trình sửa chữa gần đó
ability.energyfield = Trường điện từ ability.energyfield = Trường điện từ
@@ -1122,7 +1122,7 @@ ability.stat.regen = [stat]{0}[lightgray] độ bền/giây
ability.stat.pulseregen = [stat]{0}[lightgray] độ bền/xung nhịp ability.stat.pulseregen = [stat]{0}[lightgray] độ bền/xung nhịp
ability.stat.shield = [stat]{0}[lightgray] khiên tối đa ability.stat.shield = [stat]{0}[lightgray] khiên tối đa
ability.stat.repairspeed = [stat]{0}/giây[lightgray] tốc độ sửa chữa ability.stat.repairspeed = [stat]{0}/giây[lightgray] tốc độ sửa chữa
ability.stat.deflectchance = [stat]{0}%[lightgray] deflect chance ability.stat.deflectchance = [stat]{0}%[lightgray] cơ hội làm chệch hướng
ability.stat.slurpheal = [stat]{0}[lightgray] độ bền/đơn vị chất lỏng ability.stat.slurpheal = [stat]{0}[lightgray] độ bền/đơn vị chất lỏng
ability.stat.cooldown = [stat]{0} giây[lightgray] hồi phục ability.stat.cooldown = [stat]{0} giây[lightgray] hồi phục
ability.stat.maxtargets = [stat]{0}[lightgray] mục tiêu tối đa ability.stat.maxtargets = [stat]{0}[lightgray] mục tiêu tối đa
@@ -1447,6 +1447,8 @@ rules.buildaitier = Cấp Độ AI Xây Dựng
rules.rtsai = AI Chiến Thuật rules.rtsai = AI Chiến Thuật
rules.rtsai.campaign = AI chiến thuật tấn công rules.rtsai.campaign = AI chiến thuật tấn công
rules.rtsai.campaign.info = Trong bản đồ kiểu tấn công, làm các đơn vị tập hợp nhóm và tấn công căn cứ người chơi theo phương pháp thông minh hơn. rules.rtsai.campaign.info = Trong bản đồ kiểu tấn công, làm các đơn vị tập hợp nhóm và tấn công căn cứ người chơi theo phương pháp thông minh hơn.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Kích Thước Đội Hình Tối Thiểu rules.rtsminsquadsize = Kích Thước Đội Hình Tối Thiểu
rules.rtsmaxsquadsize = Kích Thước Đội Hình Tối Đa rules.rtsmaxsquadsize = Kích Thước Đội Hình Tối Đa
rules.rtsminattackweight = Sức Tấn Công Tối Thiểu rules.rtsminattackweight = Sức Tấn Công Tối Thiểu
@@ -1670,7 +1672,7 @@ block.snow.name = Tuyết
block.crater-stone.name = Đá miệng núi lửa block.crater-stone.name = Đá miệng núi lửa
block.sand-water.name = Nước cát block.sand-water.name = Nước cát
block.darksand-water.name = Nước cát đen block.darksand-water.name = Nước cát đen
block.char.name = Than block.char.name = Đá cháy đen
block.dacite.name = Đá Dacit block.dacite.name = Đá Dacit
block.rhyolite.name = Đá Ryolit block.rhyolite.name = Đá Ryolit
block.dacite-wall.name = Tường Dacit block.dacite-wall.name = Tường Dacit
@@ -2479,9 +2481,9 @@ unit.navanax.description = Bắn tia xung điện từ (EMP) nổ, gây thiệt
#Erekir #Erekir
unit.stell.description = Bắn các viên đạn tiêu chuẩn vào các mục tiêu kẻ địch. unit.stell.description = Bắn các viên đạn tiêu chuẩn vào các mục tiêu kẻ địch.
unit.locus.description = Bắn các viên đạn xen kẽ vào các mục tiêu kẻ địch. unit.locus.description = Bắn các viên đạn xen kẽ vào các mục tiêu kẻ địch.
unit.precept.description = Bắn các viên đạn phân cụm xuyên thấu vào các mục tiêu kẻ địch. unit.precept.description = Bắn các viên đạn phân cụm xuyên thấu vào các mục tiêu kẻ địch. Ít bị ảnh hưởng bởi địa hình gây hại.
unit.vanquish.description = Bắn các viên đạn phân chia xuyên thấu lớn vào các mục tiêu kẻ địch. unit.vanquish.description = Bắn các viên đạn phân chia xuyên thấu lớn vào các mục tiêu kẻ địch. Ít bị ảnh hưởng bởi địa hình gây hại.
unit.conquer.description = Bắn các viên đạn xếp tầng xuyên thấu vào các mục tiêu kẻ địch. unit.conquer.description = Bắn các viên đạn xếp tầng xuyên thấu vào các mục tiêu kẻ địch. Ít bị ảnh hưởng bởi địa hình gây hại.
unit.merui.description = Bắn pháo tầm xa vào các mục tiêu kẻ địch trên mặt đất. Có thể đi qua hầu hết loại địa hình. unit.merui.description = Bắn pháo tầm xa vào các mục tiêu kẻ địch trên mặt đất. Có thể đi qua hầu hết loại địa hình.
unit.cleroi.description = Bắn trái phá kép vào các mục tiêu kẻ địch. Nhắm vào viên đạn kẻ địch với các tháp súng phòng thủ mũi nhọn. Có thể đi qua hầu hết loại địa hình. unit.cleroi.description = Bắn trái phá kép vào các mục tiêu kẻ địch. Nhắm vào viên đạn kẻ địch với các tháp súng phòng thủ mũi nhọn. Có thể đi qua hầu hết loại địa hình.
unit.anthicus.description = Bắn tên lửa dẫn đường tầm xa vào các mục tiêu kẻ địch. Có thể đi qua hầu hết loại địa hình. unit.anthicus.description = Bắn tên lửa dẫn đường tầm xa vào các mục tiêu kẻ địch. Có thể đi qua hầu hết loại địa hình.

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = AI 建造等级
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS 进攻 AI rules.rtsai.campaign = RTS 进攻 AI
rules.rtsai.campaign.info = 让敌方单位更智能地组队攻击玩家基地。 rules.rtsai.campaign.info = 让敌方单位更智能地组队攻击玩家基地。
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = 最小部队规模 rules.rtsminsquadsize = 最小部队规模
rules.rtsmaxsquadsize = 最大部队规模 rules.rtsmaxsquadsize = 最大部队规模
rules.rtsminattackweight = 最低进攻强度 rules.rtsminattackweight = 最低进攻强度

View File

@@ -1447,6 +1447,8 @@ rules.buildaitier = 建築者 AI 等級
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = 最小隊伍規模 rules.rtsminsquadsize = 最小隊伍規模
rules.rtsmaxsquadsize = 最大隊伍規模 rules.rtsmaxsquadsize = 最大隊伍規模
rules.rtsminattackweight = 最小攻擊力 rules.rtsminattackweight = 最小攻擊力

View File

@@ -420,7 +420,10 @@ public class Control implements ApplicationListener, Loadable{
ui.planet.hide(); ui.planet.hide();
SaveSlot slot = sector.save; SaveSlot slot = sector.save;
sector.planet.setLastSector(sector); sector.planet.setLastSector(sector);
if(slot != null && !clearSectors && (!sector.planet.clearSectorOnLose || sector.info.hasCore)){
boolean clearSave = sector.planet.clearSectorOnLose || sector.planet.campaignRules.clearSectorOnLose;
if(slot != null && !clearSectors && (!clearSave || sector.info.hasCore)){
try{ try{
boolean hadNoCore = !sector.info.hasCore; boolean hadNoCore = !sector.info.hasCore;
@@ -435,7 +438,7 @@ public class Control implements ApplicationListener, Loadable{
if(state.rules.defaultTeam.cores().isEmpty() || hadNoCore){ if(state.rules.defaultTeam.cores().isEmpty() || hadNoCore){
//don't carry over the spawn position and plans if the sector preset name or map size changed //don't carry over the spawn position and plans if the sector preset name or map size changed
if(sector.planet.clearSectorOnLose || sector.info.spawnPosition == 0 || !sector.info.sectorDataMatches(sector)){ if(clearSave || sector.info.spawnPosition == 0 || !sector.info.sectorDataMatches(sector)){
playNewSector(origin, sector, reloader); playNewSector(origin, sector, reloader);
}else{ }else{
int spawnPos = sector.info.spawnPosition; int spawnPos = sector.info.spawnPosition;

View File

@@ -137,8 +137,10 @@ public class Logic implements ApplicationListener{
state.rules.infiniteResources = false; state.rules.infiniteResources = false;
state.rules.allowEditRules = false; state.rules.allowEditRules = false;
state.rules.allowEditWorldProcessors = false; state.rules.allowEditWorldProcessors = false;
state.rules.waveTeam.rules().infiniteResources = true; if(state.getPlanet().enemyInfiniteItems){
state.rules.waveTeam.rules().fillItems = true; state.rules.waveTeam.rules().infiniteResources = true;
state.rules.waveTeam.rules().fillItems = true;
}
state.rules.waveTeam.rules().buildSpeedMultiplier *= state.getPlanet().enemyBuildSpeedMultiplier; state.rules.waveTeam.rules().buildSpeedMultiplier *= state.getPlanet().enemyBuildSpeedMultiplier;
} }

View File

@@ -12,6 +12,7 @@ public class CampaignRules{
public boolean randomWaveAI; public boolean randomWaveAI;
public boolean legacyLaunchPads; public boolean legacyLaunchPads;
public boolean rtsAI; public boolean rtsAI;
public boolean clearSectorOnLose;
public void apply(Planet planet, Rules rules){ public void apply(Planet planet, Rules rules){
rules.staticFog = rules.fog = fog; rules.staticFog = rules.fog = fog;

View File

@@ -38,14 +38,14 @@ public class SectorSubmissions{
registerSerpuloSector(16, "Namero", "https://discord.com/channels/391020510269669376/1379926788280680579/1409970152283312352"); registerSerpuloSector(16, "Namero", "https://discord.com/channels/391020510269669376/1379926788280680579/1409970152283312352");
registerSerpuloSector(116, "Jamespire", "https://discord.com/channels/391020510269669376/1379926845058711734/1404131805074034712"); registerSerpuloSector(116, "Jamespire", "https://discord.com/channels/391020510269669376/1379926845058711734/1404131805074034712");
registerSerpuloSector(69, "Oct", "https://discord.com/channels/391020510269669376/1379926831326822610/1406230980120940556"); registerSerpuloSector(69, "Oct", "https://discord.com/channels/391020510269669376/1379926831326822610/1406230980120940556");
registerSerpuloSector(92, "Eggypc/Fish", "https://discord.com/channels/391020510269669376/1379926835621527615/1381929336860442731"); registerSerpuloSector(92, "Eggypc/Fish", "https://discord.com/channels/391020510269669376/1379926835621527615/1422178040489971834");
registerSerpuloSector(197, "Hengryton Luck", "https://discord.com/channels/391020510269669376/1379926916911599676/1411358089759817793"); registerSerpuloSector(197, "Hengryton Luck", "https://discord.com/channels/391020510269669376/1379926916911599676/1411358089759817793");
registerSerpuloSector(67, "Ếch ngồi đáy giếng", "https://discord.com/channels/391020510269669376/1379926828696866898/1389981795386396768"); registerSerpuloSector(67, "Ếch ngồi đáy giếng", "https://discord.com/channels/391020510269669376/1379926828696866898/1389981795386396768");
//180 has an alternate submission that may be more appropriate in terms of difficulty: https://discord.com/channels/391020510269669376/1379926889648619580/1411534650412892185 //180 has an alternate submission that may be more appropriate in terms of difficulty: https://discord.com/channels/391020510269669376/1379926889648619580/1411534650412892185
registerSerpuloSector(180, "Locla^Glass", "https://discord.com/channels/391020510269669376/1379926889648619580/1413522098370117765"); registerSerpuloSector(180, "Locla^Glass", "https://discord.com/channels/391020510269669376/1379926889648619580/1413522098370117765");
registerSerpuloSector(55, "Namero", "https://discord.com/channels/391020510269669376/1379926823277695189/1412588965256761402"); registerSerpuloSector(55, "Namero", "https://discord.com/channels/391020510269669376/1379926823277695189/1412588965256761402");
registerSerpuloSector(19, "Hengryton Luck", "https://discord.com/channels/391020510269669376/1379926792479183019/1411342610525585468"); registerSerpuloSector(19, "Hengryton Luck", "https://discord.com/channels/391020510269669376/1379926792479183019/1411342610525585468");
registerSerpuloSector(200, "Axye", "https://discord.com/channels/391020510269669376/1379926918429806755/1398949995041914933"); registerSerpuloSector(200, "Axye", "https://discord.com/channels/391020510269669376/1379926918429806755/1419180347232485448");
//191 has several alternate submissions //191 has several alternate submissions
registerSerpuloSector(191, "Skeledragon", "https://discord.com/channels/391020510269669376/1379926912004001914/1380025875806027849"); registerSerpuloSector(191, "Skeledragon", "https://discord.com/channels/391020510269669376/1379926912004001914/1380025875806027849");
//alternate, more difficult submission: https://discord.com/channels/391020510269669376/1379926782966497322/1416145231853781022 //alternate, more difficult submission: https://discord.com/channels/391020510269669376/1379926782966497322/1416145231853781022

View File

@@ -125,6 +125,8 @@ public class Planet extends UnlockableContent{
public boolean clearSectorOnLose = false; public boolean clearSectorOnLose = false;
/** Multiplier for enemy rebuild speeds; only applied in campaign (not standard rules) */ /** Multiplier for enemy rebuild speeds; only applied in campaign (not standard rules) */
public float enemyBuildSpeedMultiplier = 1f; public float enemyBuildSpeedMultiplier = 1f;
/** If true, the enemy team always has infinite items. */
public boolean enemyInfiniteItems = true;
/** If true, enemy cores are replaced with spawnpoints on this planet (for invasions) */ /** If true, enemy cores are replaced with spawnpoints on this planet (for invasions) */
public boolean enemyCoreSpawnReplace = false; public boolean enemyCoreSpawnReplace = false;
/** If true, blocks in the radius of the core will be removed and "built up" in a shockwave upon landing. */ /** If true, blocks in the radius of the core will be removed and "built up" in a shockwave upon landing. */

View File

@@ -74,6 +74,10 @@ public class CampaignRulesDialog extends BaseDialog{
check("@rules.rtsai.campaign", b -> rules.rtsAI = b, () -> rules.rtsAI); check("@rules.rtsai.campaign", b -> rules.rtsAI = b, () -> rules.rtsAI);
} }
if(!planet.clearSectorOnLose){
check("@rules.clearsectoronloss", b -> rules.clearSectorOnLose = b, () -> rules.clearSectorOnLose);
}
//TODO: this is intentionally hidden until the new mechanics have been well-tested. I don't want people immediately switching to the old mechanics //TODO: this is intentionally hidden until the new mechanics have been well-tested. I don't want people immediately switching to the old mechanics
if(planet.allowLegacyLaunchPads){ if(planet.allowLegacyLaunchPads){
// check("@rules.legacylaunchpads", b -> rules.legacyLaunchPads = b, () -> rules.legacyLaunchPads); // check("@rules.legacylaunchpads", b -> rules.legacyLaunchPads = b, () -> rules.legacyLaunchPads);

View File

@@ -194,6 +194,21 @@ public class HudFragment{
//.padLeft(dsize * 5 + 4f) to prevent alpha overlap on left //.padLeft(dsize * 5 + 4f) to prevent alpha overlap on left
}); });
//left/right gutter areas
parent.fill((x, y, w, h) -> {
x = 0f;
y = 0f;
w = Core.graphics.getWidth();
h = Core.graphics.getHeight();
if(Core.scene.marginLeft > 0){
paneRight.draw(x, y, Core.scene.marginLeft, h);
}
if(Core.scene.marginRight > 0){
paneLeft.draw(x + w - Core.scene.marginRight, y, Core.scene.marginRight, h);
}
});
//"waiting for players" //"waiting for players"
parent.fill(t -> { parent.fill(t -> {
t.name = "waiting"; t.name = "waiting";

View File

@@ -66,6 +66,21 @@ public class MenuFragment{
//info icon //info icon
if(mobile){ if(mobile){
//left/right gutter areas
parent.fill((x, y, w, h) -> {
x = 0f;
y = 0f;
w = Core.graphics.getWidth();
h = Core.graphics.getHeight();
if(Core.scene.marginLeft > 0){
paneRight.draw(x, y, Core.scene.marginLeft, h);
}
if(Core.scene.marginRight > 0){
paneLeft.draw(x + w - Core.scene.marginRight, y, Core.scene.marginRight, h);
}
});
parent.fill(c -> c.bottom().left().button("", new TextButtonStyle(){{ parent.fill(c -> c.bottom().left().button("", new TextButtonStyle(){{
font = Fonts.def; font = Fonts.def;
fontColor = Color.white; fontColor = Color.white;

View File

@@ -26,4 +26,4 @@ org.gradle.caching=true
org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000 org.gradle.internal.http.connectionTimeout=100000
android.enableR8.fullMode=false android.enableR8.fullMode=false
archash=cde6d76804 archash=8d3f84b3c5

View File

@@ -603,13 +603,15 @@ public class ApplicationTests{
entities.each(Building::updateProximity); entities.each(Building::updateProximity);
final int iterations = 100_000;
//warmup //warmup
for(int i = 0; i < 100000; i++){ for(int i = 0; i < iterations; i++){
entities.each(Building::update); entities.each(Building::update);
} }
Time.mark(); Time.mark();
for(int i = 0; i < 200000; i++){ for(int i = 0; i < iterations*2; i++){
entities.each(Building::update); entities.each(Building::update);
} }
Log.info(Time.elapsed() + "ms to process " + itemsa[0] + " items"); Log.info(Time.elapsed() + "ms to process " + itemsa[0] + " items");
@@ -662,6 +664,17 @@ public class ApplicationTests{
assertEquals(414, world.height()); assertEquals(414, world.height());
} }
@Test
void load152Save(){
resetWorld();
SaveIO.load(Core.files.internal("152.msav"));
assertTrue(Groups.unit.contains(u -> u.type == UnitTypes.scepter));
assertEquals(2000, world.width());
assertEquals(195, world.height());
}
@Test @Test
void arrayIterators(){ void arrayIterators(){
Seq<String> arr = Seq.with("a", "b" , "c", "d", "e", "f"); Seq<String> arr = Seq.with("a", "b" , "c", "d", "e", "f");
@@ -897,8 +910,11 @@ public class ApplicationTests{
ObjectSet<Item> resources = new ObjectSet<>(); ObjectSet<Item> resources = new ObjectSet<>();
boolean hasSpawnPoint = false; boolean hasSpawnPoint = false;
assertFalse(state.rules.infiniteResources, "Sector " + zone.name + " must not have infinite resources."); assertFalse(state.rules.infiniteResources || Team.sharded.rules().infiniteResources, "Sector " + zone.name + " must not have infinite resources.");
assertFalse(state.rules.allowEditRules, "Sector " + zone.name + " must not have rule editing enabled."); assertFalse(state.rules.allowEditRules, "Sector " + zone.name + " must not have rule editing enabled.");
assertFalse(state.rules.allowEditWorldProcessors, "Sector " + zone.name + " must not have world processor editing enabled.");
assertEquals(Team.sharded, state.rules.defaultTeam, "Sector " + zone.name + " must have the Sharded player team.");
assertEquals(Vars.state.getPlanet() == Planets.serpulo ? Team.crux : Team.malis, state.rules.waveTeam, "Sector " + zone.name + " must have the correct enemy team.");
for(Tile tile : world.tiles){ for(Tile tile : world.tiles){
if(tile.drop() != null){ if(tile.drop() != null){

View File

@@ -17,7 +17,7 @@ public class ModTestAllure extends GenericModTest{
@Test @Test
public void begin(){ public void begin(){
grabMod("https://github.com/LixieWulf/Allure/archive/4150f74db1ea6058dc090959cf0fe5dc9d239e37.zip"); grabMod("https://github.com/LixieWulf/Allure/archive/7dff39df9b07719315a8379a88542fa0fe80fd30.zip");
checkExistence("allure"); checkExistence("allure");
UnitType type = Vars.content.unit("allure-0b11-exodus"); UnitType type = Vars.content.unit("allure-0b11-exodus");

Binary file not shown.