mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-10-01 18:50:27 +03:00
Merge branch 'master' of https://github.com/Anuken/Mindustry into v9
# Conflicts: # core/src/mindustry/logic/LExecutor.java # core/src/mindustry/world/blocks/logic/LogicDisplay.java # core/src/mindustry/world/meta/StatValues.java # gradle.properties
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
android:screenOrientation="user"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout">
|
||||
android:configChanges="uiMode|keyboard|keyboardHidden|orientation|screenSize|screenLayout">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
@@ -1324,6 +1324,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1375,6 +1376,7 @@ unit.liquidunits = liquid units
|
||||
unit.powerunits = power units
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = degrees
|
||||
unit.seconds = seconds
|
||||
unit.minutes = mins
|
||||
@@ -1616,6 +1618,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Wave Timer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/сек[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Кантралюецца Працэссарам
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = вадкасных адзінак
|
||||
unit.powerunits = энерг. адзінак
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = адзінкі энергіі
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = град.
|
||||
unit.seconds = сек.
|
||||
unit.minutes = хв.
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Калі ўключана, разгрузчыкі з
|
||||
rules.derelictrepair = Дазволіць рамантаваць пакінутыя блокі
|
||||
rules.reactorexplosions = Выбухі рэактараў
|
||||
rules.coreincinerates = Ядро Спальвае Рэсурсы
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Адключыць сусветныя працэсары
|
||||
rules.schematic = Схемы Дазволены
|
||||
rules.wavetimer = Інтэрвал хваляў
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x сила
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] скорост на регенерация
|
||||
bar.activationtimer = Ацтивация след {0}
|
||||
bar.activated = Активирано
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Контролиран от процесор
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = течност
|
||||
unit.powerunits = електричество
|
||||
unit.powerequilibrium = електрически баланс
|
||||
unit.heatunits = единици горещина
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = градуси
|
||||
unit.seconds = секунди
|
||||
unit.minutes = минути
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Когато е включено, разтоварв
|
||||
rules.derelictrepair = Разрешете поправянето на изоставени блокове
|
||||
rules.reactorexplosions = Експлозивни реактори
|
||||
rules.coreincinerates = Унищожаване на ресурси при преливане
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Изключване на процесорите за света
|
||||
rules.schematic = Позволена употребата на схеми
|
||||
rules.wavetimer = Таймер за Вълни
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]× força
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] de taxa de regen.
|
||||
bar.activationtimer = S’activa d’aquí a {0}
|
||||
bar.activated = Activat
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Controlat pel processador
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unitats de líquid
|
||||
unit.powerunits = unitats d’energia
|
||||
unit.powerequilibrium = potència d’equilibri
|
||||
unit.heatunits = unitats de calor
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = °
|
||||
unit.seconds = s
|
||||
unit.minutes = min
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Si s’activa, els descarregadors de Serpulo podran t
|
||||
rules.derelictrepair = Permet la reparació dels blocs en ruïnes
|
||||
rules.reactorexplosions = Explosions als reactors
|
||||
rules.coreincinerates = El nucli incinera els excedents
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Desactiva els processadors integrats
|
||||
rules.schematic = Permetre l’ús d’esquemes
|
||||
rules.wavetimer = Temporitzador d’onades
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x síla
|
||||
bar.regenerationrate = [stat]{0}/sek[lightgray] rychlost regenerace
|
||||
bar.activationtimer = Aktivuje se za {0}
|
||||
bar.activated = Aktivováno
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Procesor je ovládán[]
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = jednotek kapalin
|
||||
unit.powerunits = jednotek energie
|
||||
unit.powerequilibrium = rovnováha energie
|
||||
unit.heatunits = jednotek tepla
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = úhly
|
||||
unit.seconds = sekundy
|
||||
unit.minutes = minuty
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Pokud je zapnuto, vykladače na Serpulu mohou brát p
|
||||
rules.derelictrepair = Povolit opravu opuštěných bloků
|
||||
rules.reactorexplosions = Výbuch reaktoru
|
||||
rules.coreincinerates = Jádro Spaluje Nadbytečné Suroviny
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Zakázat Světové Procesory
|
||||
rules.schematic = Šablony povoleny
|
||||
rules.wavetimer = Časovač vln
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor kontrolleret
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = væskeenheder
|
||||
unit.powerunits = strømenheder
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = grader
|
||||
unit.seconds = sekunder
|
||||
unit.minutes = minutter
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reaktor-eksplosioner
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Skabeloner tilladt
|
||||
rules.wavetimer = Bølge-æggeur
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x Stärke
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Prozessorgesteuert
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = Flüssigkeitseinheiten
|
||||
unit.powerunits = Stromeinheiten
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = Hitzeeinheiten
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = Grad
|
||||
unit.seconds = Sekunden
|
||||
unit.minutes = Minuten
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reaktor-Explosionen
|
||||
rules.coreincinerates = Kern verbrennt überflüssige Materialien
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Deaktiviere Weltprozessoren
|
||||
rules.schematic = Entwürfe erlaubt
|
||||
rules.wavetimer = Wellen-Timer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x potencia
|
||||
bar.regenerationrate = [stat]{0}/seg[lightgray] regeneración
|
||||
bar.activationtimer = Se activa en {0}
|
||||
bar.activated = Activado
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Controlado desde el procesador
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unidades de líquido
|
||||
unit.powerunits = unidades de energía
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = unidades de calor
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = grados
|
||||
unit.seconds = segundos
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Cuando está activado, Los descargadores de Serpulo p
|
||||
rules.derelictrepair = Permitir reparar bloques abandonados
|
||||
rules.reactorexplosions = Explosiones de reactores
|
||||
rules.coreincinerates = Incinerar exceso de recursos en el núcleo
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Desactivar procesadores estáticos
|
||||
rules.schematic = Permitir esquemas
|
||||
rules.wavetimer = Temporizador de oleadas
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = vedelikuühikut
|
||||
unit.powerunits = energiaühikut
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = kraadi
|
||||
unit.seconds = s
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Kasuta taimerit
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x indarra
|
||||
bar.regenerationrate = [stat]{0}/seg[lightgray] birsorkuntza tasa
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Prozesadorea kontrolatua
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = likido unitate
|
||||
unit.powerunits = energia unitate
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = berotze unitateak
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = grado
|
||||
unit.seconds = segundo
|
||||
unit.minutes = minutuak
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Baimendu bloke abandonatuen konponketa
|
||||
rules.reactorexplosions = Erreaktorearen eztandak
|
||||
rules.coreincinerates = Nukleoen erraustegien gainezkatzea
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Munduko prozesadoreak desgaitu
|
||||
rules.schematic = Onartutako eskemak
|
||||
rules.wavetimer = Boladen denboragailua
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x voimakkuus
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Prosessorin hallitsema
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = nesteyksikköä
|
||||
unit.powerunits = energiayksikköä
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = lämpöyksikköä
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = astetta
|
||||
unit.seconds = sekunttia
|
||||
unit.minutes = minuuttia
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reaktorien räjähtäminen
|
||||
rules.coreincinerates = Ydin höyrystää ylivuodon
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Poista maailmaprosessorit käytöstä
|
||||
rules.schematic = Salli kaaviot
|
||||
rules.wavetimer = Tasojen aikaraja
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = mga yunit ng likido
|
||||
unit.powerunits = mga yunit ng kuryente
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = mga yunit ng init
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = digri
|
||||
unit.seconds = segundo
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Wave Timer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x puissance
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] taux de régénération
|
||||
bar.activationtimer = S'active dans {0}
|
||||
bar.activated = Activé
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Contrôlé par un processeur.
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unités de liquide
|
||||
unit.powerunits = unités d'énergie
|
||||
unit.powerequilibrium = équilibre énergétique
|
||||
unit.heatunits = unités de température
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = degrés
|
||||
unit.seconds = sec
|
||||
unit.minutes = min
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Lorsque cette option est activée, les déchargeurs d
|
||||
rules.derelictrepair = Autoriser la réparation des structures abandonnées
|
||||
rules.reactorexplosions = Explosion des Réacteurs
|
||||
rules.coreincinerates = Incinération des surplus du Noyau
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Désactiver les Processeurs Globaux
|
||||
rules.schematic = Schémas autorisés
|
||||
rules.wavetimer = Compte à rebours des vagues
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x erő
|
||||
bar.regenerationrate = [stat]{0}/mp[lightgray] regenerálási sebesség
|
||||
bar.activationtimer = Aktiválás {0} mp múlva
|
||||
bar.activated = Aktiválva
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processzorvezérelt
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = folyadékegység
|
||||
unit.powerunits = áramegység
|
||||
unit.powerequilibrium = áramegyensúly
|
||||
unit.heatunits = hőegység
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = fok
|
||||
unit.seconds = másodperc
|
||||
unit.minutes = perc
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Ha engedélyezve van, akkor a Serpulo kirakodói nyer
|
||||
rules.derelictrepair = Elhagyatott épületek javításának engedélyezése
|
||||
rules.reactorexplosions = Reaktorrobbanások
|
||||
rules.coreincinerates = Többletnyersanyagok megsemmisítése a támaszpontban
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Világprocesszorok letiltása
|
||||
rules.schematic = Vázlatok engedélyezése
|
||||
rules.wavetimer = Hullámok időzítése
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x penguatan
|
||||
bar.regenerationrate = [stat]{0}/dtk[lightgray] waktu pemulihan
|
||||
bar.activationtimer = Aktif dalam {0}
|
||||
bar.activated = Aktif
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Dikendalikan Prosesor
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unit zat cair
|
||||
unit.powerunits = unit tenaga
|
||||
unit.powerequilibrium = keseimbangan tenaga
|
||||
unit.heatunits = unit panas
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = derajat
|
||||
unit.seconds = detik
|
||||
unit.minutes = menit
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Saat diaktifkan, pembongkar Serpulo dapat membongkar
|
||||
rules.derelictrepair = Izinkan Perbaikan Blok Derelik
|
||||
rules.reactorexplosions = Ledakan Reaktor
|
||||
rules.coreincinerates = Penghangusan Luapan Inti
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Nonaktifkan Prosesor Dunia
|
||||
rules.schematic = Skematik Diperbolehkan
|
||||
rules.wavetimer = Pengaturan Waktu Gelombang
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x forza
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Attivazione in {0}
|
||||
bar.activated = Attivato
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Controllato dal Processore
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unità liquidi
|
||||
unit.powerunits = unità energetica
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = unità termica
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = gradi
|
||||
unit.seconds = secondi
|
||||
unit.minutes = minuti
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Esplosioni Reattore
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disabilita processori
|
||||
rules.schematic = Schematiche Consentite
|
||||
rules.wavetimer = Timer Ondate
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x 強化
|
||||
bar.regenerationrate = [stat]{0}/秒[lightgray] 再生率
|
||||
bar.activationtimer = 発動まで {0}
|
||||
bar.activated = アクティブ
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]プロセッサーの制御下
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = 液体
|
||||
unit.powerunits = 電力
|
||||
unit.powerequilibrium = 電力均衡
|
||||
unit.heatunits = 熱量
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = 度
|
||||
unit.seconds = 秒
|
||||
unit.minutes = 分
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = 有効にすると、セルプロの搬出機がコ
|
||||
rules.derelictrepair = 廃墟修復可能
|
||||
rules.reactorexplosions = リアクターの爆発
|
||||
rules.coreincinerates = 余剰アイテムの焼却
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = ワールドプロセッサーを無効にする
|
||||
rules.schematic = 設計図を許可
|
||||
rules.wavetimer = ウェーブの自動進行
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x 치료 속도[][]
|
||||
bar.regenerationrate = [stat]{0}/초[lightgray] 재생률
|
||||
bar.activationtimer = {0}초 후 활성화
|
||||
bar.activated = 활성화됨
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]프로세서 제어됨[]
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = 액체
|
||||
unit.powerunits = 전력
|
||||
unit.powerequilibrium = 전력 균형
|
||||
unit.heatunits = 열 단위
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = 도
|
||||
unit.seconds = 초
|
||||
unit.minutes = 분
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = 이 기능을 활성화하면, 세르풀로 언로더
|
||||
rules.derelictrepair = 잔해 블록 수리 허용
|
||||
rules.reactorexplosions = 원자로 폭발 허용
|
||||
rules.coreincinerates = 코어에 특정 자원량 초과 시 자동 소각 허용
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = 월드 프로세서 비활성화
|
||||
rules.schematic = 설계도 허용
|
||||
rules.wavetimer = 시간 제한이 있는 단계
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = skysčio vienetai
|
||||
unit.powerunits = energijos vienetai
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = laipsnių
|
||||
unit.seconds = sekundės
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reaktorių Sprogimai
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Bangų Laikmatis
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x sterkte
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Gestuurd
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = vloeistof eenheden
|
||||
unit.powerunits = stroom eenheden
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = warmte eenheden
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = graden
|
||||
unit.seconds = seconden
|
||||
unit.minutes = minuten
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Ontploffende Reactors
|
||||
rules.coreincinerates = Core verbrandt overvloed aan materialen.
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Zet Wereld-Processors Uit.
|
||||
rules.schematic = Ontwerpen Toegestaan
|
||||
rules.wavetimer = Vijandelijke Golven Timer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = liquid units
|
||||
unit.powerunits = power units
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = degrees
|
||||
unit.seconds = seconds
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Wave Timer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x siły
|
||||
bar.regenerationrate = [stat]{0}/sek[lightgray] szybkość regeneracji
|
||||
bar.activationtimer = Aktywuje się za {0}
|
||||
bar.activated = Aktywowane
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Kontrolowany przez procesor
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = jednostek płynu
|
||||
unit.powerunits = jednostek prądu
|
||||
unit.powerequilibrium = równowaga energii
|
||||
unit.heatunits = jednostek ciepła
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = stopnie
|
||||
unit.seconds = sekundy
|
||||
unit.minutes = min
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Gdy włączone, rozładowywacze Serpulo mogą pobiera
|
||||
rules.derelictrepair = Zezwól na naprawę opuszczonego bloku
|
||||
rules.reactorexplosions = Eksplozje Reaktorów
|
||||
rules.coreincinerates = Rdzeń Spala Nadmiarowe Przedmioty
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Wyłącz Procesor Świata
|
||||
rules.schematic = Zezwalaj na schematy
|
||||
rules.wavetimer = Zegar Fal
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x força
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Ativa em {0}
|
||||
bar.activated = Ativado
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Controlado por Processador
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unidades de líquido
|
||||
unit.powerunits = unidades de energia
|
||||
unit.powerequilibrium = equilíbrio de energia
|
||||
unit.heatunits = unidades de calor
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = Graus
|
||||
unit.seconds = segundos
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Quando ativado, descarregadores de Serpulo podem tira
|
||||
rules.derelictrepair = Permitir Reparo de Blocos Abandonados
|
||||
rules.reactorexplosions = Reatores explodem
|
||||
rules.coreincinerates = Núcleo incinera itens em excesso
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Desativar processadores mundiais
|
||||
rules.schematic = Permitir Esquemas
|
||||
rules.wavetimer = Tempo de horda
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x força
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Controlado por Processador
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = Unidades de líquido
|
||||
unit.powerunits = Unidades de energia
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = Unidades de calor
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = Graus
|
||||
unit.seconds = segundos
|
||||
unit.minutes = minutos
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Permitir Reparação de Blocos Derelict
|
||||
rules.reactorexplosions = Esploções de Reatores
|
||||
rules.coreincinerates = Núcleo destrói Itens em Excesso
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Desativar Processadores Globais
|
||||
rules.schematic = Esquemas Permitidos
|
||||
rules.wavetimer = Tempo de Horda
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x putere
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Controlat de Procesor
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = unități lichid
|
||||
unit.powerunits = electricitate
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = grade
|
||||
unit.seconds = secunde
|
||||
unit.minutes = min
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactoarele Explodează
|
||||
rules.coreincinerates = Nucleul Incinerează Resursele în Plus
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Se Pot Folosi Scheme
|
||||
rules.wavetimer = Valuri pe Timp
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x эффективность
|
||||
bar.regenerationrate = [stat]{0}/сек[lightgray] скорость регенерации
|
||||
bar.activationtimer = Активируется через {0}
|
||||
bar.activated = Активировано
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Управляется процессором
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = жидкостных единиц
|
||||
unit.powerunits = энерг. единиц
|
||||
unit.powerequilibrium = энерг. равновесие
|
||||
unit.heatunits = единиц тепла
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = °
|
||||
unit.seconds = сек
|
||||
unit.minutes = мин
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = При включении, разгрузчики н
|
||||
rules.derelictrepair = Разрешить починку покинутых построек
|
||||
rules.reactorexplosions = Взрывы реакторов
|
||||
rules.coreincinerates = Ядро сжигает избыток ресурсов
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Отключить мировые процессоры
|
||||
rules.schematic = Разрешить схемы
|
||||
rules.wavetimer = Интервал волн
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x snage
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Procesno Upravljan
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = jedinica tečnosti
|
||||
unit.powerunits = jedinica energije
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = jedinica toplote
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = stepeni
|
||||
unit.seconds = sekunde
|
||||
unit.minutes = minuti
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Eksplozije Reaktora
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Onesposobi Svetovne Procesore
|
||||
rules.schematic = Šeme Su Dozvoljene
|
||||
rules.wavetimer = Talasna Štoperica
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = liquid units
|
||||
unit.powerunits = power units
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = grader
|
||||
unit.seconds = sekunder
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Vågtimer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [lightgray]ความรุนแรง [stat]{0}[lightgray]x
|
||||
bar.regenerationrate = [stat]{0}/วิ[lightgray] อัตราการฟื้นฟู
|
||||
bar.activationtimer = เปิดใช้งานใน {0}
|
||||
bar.activated = เปิดใช้งานแล้ว
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]ถูกตัวประมวลผลควบคุมอยู่
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = หน่วยของเหลว
|
||||
unit.powerunits = หน่วยพลังงาน
|
||||
unit.powerequilibrium = สมดุลพลังงาน
|
||||
unit.heatunits = หน่วยความร้อน
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = องศา
|
||||
unit.seconds = วินาที
|
||||
unit.minutes = นาที
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = เมื่อเปิดใช้งาน ตั
|
||||
rules.derelictrepair = อนุญาตการซ่อมแซมบล็อกทิ้งร้าง
|
||||
rules.reactorexplosions = เปิดการระเบิดของเตาปฏิกร
|
||||
rules.coreincinerates = แกนกลางเผาทรัพยากรส่วนเกิน
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = ปิดการทำงานของตัวประมวลผลโลก
|
||||
rules.schematic = อนุญาตให้ใช้แผนผัง
|
||||
rules.wavetimer = นับถอยหลังการปล่อยคลื่น
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x strength
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Processor Controlled
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = Litre
|
||||
unit.powerunits = Volt
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = heat units
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = derece
|
||||
unit.seconds = saniye
|
||||
unit.minutes = mins
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from t
|
||||
rules.derelictrepair = Allow Derelict Block Repair
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.coreincinerates = Core Incinerates Overflow
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Disable World Processors
|
||||
rules.schematic = Schematics Allowed
|
||||
rules.wavetimer = Wave Timer
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x Güç
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] tamir hızı
|
||||
bar.activationtimer = {0} saniyede aktif olucak
|
||||
bar.activated = Aktif
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]İşlemci Kontrolünde
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = sıvı birimi
|
||||
unit.powerunits = enerji birimi
|
||||
unit.powerequilibrium = enerji dengesi
|
||||
unit.heatunits = ısı birimi
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = derece
|
||||
unit.seconds = saniye
|
||||
unit.minutes = dakika
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Aktifken, Serpulo Boşaltıcıları Merkezden malzeme
|
||||
rules.derelictrepair = Kalıntıları Tamir Etmeye İzin Ver
|
||||
rules.reactorexplosions = Reaktör Patlamaları
|
||||
rules.coreincinerates = Merkez Taşanları Eritir
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Evrensel İşlemcileri Devredışı Bırak
|
||||
rules.schematic = Şema Kullanılabilir
|
||||
rules.wavetimer = Dalga Zamanlayıcısı
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = x[stat]{0}[lightgray] сила
|
||||
bar.regenerationrate = [stat]{0} [lightgray]відновлення [stat]за сек.
|
||||
bar.activationtimer = Активується через {0}
|
||||
bar.activated = Готово
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Керується процесором
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = одиниць рідини
|
||||
unit.powerunits = одиниць енергії
|
||||
unit.powerequilibrium = енергорівновага
|
||||
unit.heatunits = одиниць нагрівання
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = град.
|
||||
unit.seconds = сек.
|
||||
unit.minutes = хв.
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Якщо увімкнено, розвантажува
|
||||
rules.derelictrepair = Дозволити відновлення будівель Переможених
|
||||
rules.reactorexplosions = Вибухи реактора
|
||||
rules.coreincinerates = Ядро спалює надлишкові предмети
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Вимкнути світові процесори
|
||||
rules.schematic = Використання схем дозволено
|
||||
rules.wavetimer = Таймер для хвиль
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x sức mạnh
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] tốc độ hồi phục
|
||||
bar.activationtimer = Kích hoạt trong {0}
|
||||
bar.activated = Đã kích hoạt
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]Điều khiển bởi bộ xử lý
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = đơn vị chất lỏng
|
||||
unit.powerunits = đơn vị năng lượng
|
||||
unit.powerequilibrium = cân bằng năng lượng
|
||||
unit.heatunits = đơn vị nhiệt
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = độ
|
||||
unit.seconds = giây
|
||||
unit.minutes = phút
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = Khi bật, điểm dỡ hàng của Serpulo có thể
|
||||
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
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = Vô Hiệu Hoá Bộ Xử Lý Thế Giới
|
||||
rules.schematic = Cho Phép Dùng Bản Thiết Kế
|
||||
rules.wavetimer = Đếm Ngược Đợt
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x 效率
|
||||
bar.regenerationrate = [stat]{0}/秒[lightgray] 恢复率
|
||||
bar.activationtimer = 在 {0} 后激活
|
||||
bar.activated = 已激活
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]由处理器控制
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = 液体
|
||||
unit.powerunits = 电力
|
||||
unit.powerequilibrium = 电力平衡
|
||||
unit.heatunits = 单位热量
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = 度
|
||||
unit.seconds = 秒
|
||||
unit.minutes = 分
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = 当启用时,塞普罗的装卸器可以从核心
|
||||
rules.derelictrepair = 允许修复残骸建筑
|
||||
rules.reactorexplosions = 允许反应堆爆炸
|
||||
rules.coreincinerates = 核心焚烧溢出资源
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = 禁用世界处理器
|
||||
rules.schematic = 允许使用蓝图
|
||||
rules.wavetimer = 波次计时器
|
||||
@@ -1836,8 +1840,8 @@ unit.renale.name = Renale
|
||||
|
||||
block.parallax.name = 差扰
|
||||
block.cliff.name = 悬崖
|
||||
block.sand-boulder.name = 砂岩
|
||||
block.basalt-boulder.name = 玄武岩石块
|
||||
block.sand-boulder.name = 砂岩块
|
||||
block.basalt-boulder.name = 玄武岩块
|
||||
block.grass.name = 草地
|
||||
block.molten-slag.name = 矿渣液
|
||||
block.pooled-cryofluid.name = 冷冻液
|
||||
@@ -1850,10 +1854,10 @@ block.sand-wall.name = 沙墙
|
||||
block.spore-pine.name = 孢子树
|
||||
block.spore-wall.name = 孢子墙
|
||||
block.boulder.name = 石块
|
||||
block.snow-boulder.name = 雪石块
|
||||
block.snow-boulder.name = 雪岩块
|
||||
block.snow-pine.name = 雪树
|
||||
block.shale.name = 页岩地
|
||||
block.shale-boulder.name = 页岩石块
|
||||
block.shale-boulder.name = 页岩块
|
||||
block.moss.name = 苔藓地
|
||||
block.shrubs.name = 灌木丛
|
||||
block.spore-moss.name = 孢子苔藓地
|
||||
@@ -1891,7 +1895,7 @@ block.char.name = 焦土
|
||||
block.dacite.name = 安山岩
|
||||
block.rhyolite.name = 流纹岩
|
||||
block.dacite-wall.name = 安山岩墙
|
||||
block.dacite-boulder.name = 安山石块
|
||||
block.dacite-boulder.name = 安山岩块
|
||||
block.ice-snow.name = 冰雪地
|
||||
block.stone-wall.name = 石墙
|
||||
block.ice-wall.name = 冰墙
|
||||
@@ -2388,7 +2392,7 @@ onset.enemies = 敌人来袭,准备防御。
|
||||
onset.defenses = [accent]建立防御:[lightgray] {0}
|
||||
onset.attack = 敌军基地十分脆弱。发动反攻。
|
||||
onset.cores = 你可以在[accent]核心地块[]上建造新的核心。\n新核心的功能类似于前沿基地,且与其他核心共享资源仓库。\n放置一个 :core-bastion: 核心。
|
||||
onset.detect = 敌军将在两分钟内发现你。\n设立防御,挖掘矿物,并建造生产设施。
|
||||
onset.detect = 两分钟后敌人来袭。\n设立防御,挖掘矿物,并建造生产设施。
|
||||
onset.commandmode = 按住[accent]shift[]键进入[accent]指挥模式[]。\n按住[accent]鼠标左键[]框选单位。\n[accent]右键[]指挥所选单位移动或攻击。
|
||||
onset.commandmode.mobile = 点击左下角的[accent]指挥[]进入[accent]指挥模式[]。\n按住屏幕,[accent]拖动[]框选单位。\n[accent]点击[]指挥所选单位移动或攻击。
|
||||
aegis.tungsten = 钨可以使用[accent]冲击钻[]进行开采。\n该结构需要[accent]水[]和[accent]电力[]。
|
||||
|
||||
@@ -1319,6 +1319,7 @@ bar.strength = [stat]{0}[lightgray]x 強度
|
||||
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate
|
||||
bar.activationtimer = Activates in {0}
|
||||
bar.activated = Activated
|
||||
bar.upto = Up to {0}
|
||||
|
||||
units.processorcontrol = [lightgray]由微處理器控制
|
||||
|
||||
@@ -1370,6 +1371,7 @@ unit.liquidunits = 液體單位
|
||||
unit.powerunits = 能量單位
|
||||
unit.powerequilibrium = power equilibrium
|
||||
unit.heatunits = 熱量單位
|
||||
unit.heatunitsperside = heat units per side
|
||||
unit.degrees = 度
|
||||
unit.seconds = 秒
|
||||
unit.minutes = 分
|
||||
@@ -1611,6 +1613,8 @@ rules.coreunloaders.info = 開啟後,裝卸器可從核心提取物資。\n不
|
||||
rules.derelictrepair = 允許修復殘骸建築
|
||||
rules.reactorexplosions = 反應爐爆炸
|
||||
rules.coreincinerates = 核心銷毀物品
|
||||
rules.corebuildandconfig = Deconstruct And Configure Cores
|
||||
rules.corebuildandconfig.info = Allows building and deconstructing cores anywhere, not just on core zones.\nAlso shows ui on cores to change player team.
|
||||
rules.disableworldprocessors = 停用世界處理器
|
||||
rules.schematic = 允許使用藍圖
|
||||
rules.wavetimer = 波次時間
|
||||
|
||||
@@ -189,13 +189,15 @@ buj
|
||||
Agzam4
|
||||
ItsKirby69
|
||||
TheCuber
|
||||
萌新-hhgs
|
||||
Jovinull
|
||||
Adleanogare
|
||||
萌新-hhgs
|
||||
Alon
|
||||
硫缺铅/PyratiteNoLead
|
||||
Space
|
||||
DeterMination
|
||||
rylid-umil
|
||||
NeilGreenFly
|
||||
DeterMination
|
||||
Sunky.MP3G
|
||||
jhonnata.andre
|
||||
Zaxerf1234
|
||||
Zaxerf1234
|
||||
|
||||
@@ -173,6 +173,7 @@ const BuildSelectEvent = Packages.mindustry.game.EventType.BuildSelectEvent
|
||||
const BuildRotateEvent = Packages.mindustry.game.EventType.BuildRotateEvent
|
||||
const BlockBuildEndEvent = Packages.mindustry.game.EventType.BlockBuildEndEvent
|
||||
const BlockBuildBeginEvent = Packages.mindustry.game.EventType.BlockBuildBeginEvent
|
||||
const RulesLoadEvent = Packages.mindustry.game.EventType.RulesLoadEvent
|
||||
const ResearchEvent = Packages.mindustry.game.EventType.ResearchEvent
|
||||
const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
|
||||
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
|
||||
|
||||
@@ -2379,6 +2379,7 @@ public class Blocks{
|
||||
hasPower = false;
|
||||
liquidCapacity = 100f;
|
||||
explosivenessScale = flammabilityScale = 20f/100f;
|
||||
noAcceptDisabled = true;
|
||||
}};
|
||||
|
||||
phaseConduit = new LiquidBridge("phase-conduit"){{
|
||||
@@ -2392,6 +2393,7 @@ public class Blocks{
|
||||
pulse = true;
|
||||
explosivenessScale = flammabilityScale = 20f/100f;
|
||||
liquidCapacity = 100f;
|
||||
noAcceptDisabled = true;
|
||||
consumePower(0.30f);
|
||||
}};
|
||||
|
||||
|
||||
@@ -435,6 +435,7 @@ public class Control implements ApplicationListener, Loadable{
|
||||
if(playtest) state.playtestingMap = map;
|
||||
state.rules.sector = null;
|
||||
state.rules.editor = false;
|
||||
Events.fire(new RulesLoadEvent(state.rules));
|
||||
logic.play();
|
||||
if(settings.getBool("savecreate") && !world.isInvalidMap() && !playtest){
|
||||
control.saves.addSave(map.name() + " " + new SimpleDateFormat("MMM dd h:mm", Locale.getDefault()).format(new Date()));
|
||||
@@ -574,6 +575,7 @@ public class Control implements ApplicationListener, Loadable{
|
||||
});
|
||||
}
|
||||
}else{
|
||||
Events.fire(new RulesLoadEvent(state.rules, true));
|
||||
state.set(State.playing);
|
||||
reloader.end();
|
||||
}
|
||||
@@ -608,6 +610,7 @@ public class Control implements ApplicationListener, Loadable{
|
||||
beforePlay.run();
|
||||
}
|
||||
|
||||
Events.fire(new RulesLoadEvent(state.rules));
|
||||
logic.play();
|
||||
control.saves.saveSector(sector);
|
||||
Events.fire(new SectorLaunchEvent(sector));
|
||||
|
||||
@@ -555,6 +555,30 @@ public class World{
|
||||
}
|
||||
}
|
||||
|
||||
public static void raycastEachNoDiagonalWorld(float x0, float y0, float x1, float y1, Raycaster cons){
|
||||
raycastEachNoDiagonal(toTile(x0), toTile(y0), toTile(x1), toTile(y1), cons);
|
||||
}
|
||||
|
||||
public static void raycastEachNoDiagonal(int startX, int startY, int endX, int endY, Raycaster cons){
|
||||
int xDist = Math.abs(endX - startX);
|
||||
int yDist = -Math.abs(endY - startY);
|
||||
int xStep = (startX < endX ? +1 : -1);
|
||||
int yStep = (startY < endY ? +1 : -1);
|
||||
int error = xDist + yDist;
|
||||
|
||||
while(true){
|
||||
if(cons.accept(startX, startY) || (startX == endX && startY == endY)) break;
|
||||
|
||||
if(2 * error - yDist > xDist - 2 * error){
|
||||
error += yDist;
|
||||
startX += xStep;
|
||||
}else{
|
||||
error += xDist;
|
||||
startY += yStep;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean raycast(int x1, int y1, int x2, int y2, Raycaster cons){
|
||||
int x = x1, dx = Math.abs(x2 - x), sx = x < x2 ? 1 : -1;
|
||||
int y = y1, dy = Math.abs(y2 - y), sy = y < y2 ? 1 : -1;
|
||||
@@ -644,6 +668,11 @@ public class World{
|
||||
super.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMap(){
|
||||
return true;
|
||||
}
|
||||
|
||||
public void applyFilters(){
|
||||
Seq<GenerateFilter> filters = map.filters();
|
||||
|
||||
|
||||
@@ -140,18 +140,22 @@ public abstract class UnlockableContent extends MappableContent{
|
||||
return minfo.mod == null || isPatchContent() ? description : description + "\n" + Core.bundle.format("mod.display", minfo.mod.meta.displayName);
|
||||
}
|
||||
|
||||
/** Checks stat initialization state. Call before displaying stats. */
|
||||
/** @deprecated just call computeStats() every time, there's no reason to cache it. This will be removed in v9. */
|
||||
@Deprecated
|
||||
public void checkStats(){
|
||||
if(!stats.intialized){
|
||||
setStats();
|
||||
stats.intialized = true;
|
||||
}
|
||||
computeStats();
|
||||
}
|
||||
|
||||
/** Initializes stats on demand. Should only be called once. Only called before something is displayed. */
|
||||
/** Initializes stats on demand. Called every time the block stats are shown. */
|
||||
public void setStats(){
|
||||
}
|
||||
|
||||
public Stats computeStats(){
|
||||
this.stats = new Stats();
|
||||
setStats();
|
||||
return this.stats;
|
||||
}
|
||||
|
||||
/** Display any extra info after details. */
|
||||
public void displayExtra(Table table){
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ package mindustry.editor;
|
||||
import arc.*;
|
||||
import arc.func.*;
|
||||
import arc.graphics.*;
|
||||
import arc.input.*;
|
||||
import arc.math.*;
|
||||
import arc.math.geom.*;
|
||||
import arc.scene.event.*;
|
||||
import arc.scene.ui.*;
|
||||
@@ -538,6 +540,46 @@ public class MapObjectivesDialog extends BaseDialog{
|
||||
out.get(canvas.objectives);
|
||||
out = arr -> {};
|
||||
});
|
||||
|
||||
update(() -> {
|
||||
if(hasKeyboard()){
|
||||
doInput();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void doInput(){
|
||||
if(Core.input.ctrl() && Core.input.keyTap(KeyCode.c)){
|
||||
Vec2 pos = screenToLocalCoordinates(Core.input.mouse());
|
||||
int pasteX = Mathf.round((pos.x - objWidth * canvas.unitSize / 2f) / canvas.unitSize);
|
||||
int pasteY = Mathf.floor((pos.y - canvas.unitSize) / canvas.unitSize);
|
||||
Tmp.r1.set(pasteX, pasteY, 1, 1).grow(-0.001f);
|
||||
for(var obj : canvas.objectives){
|
||||
if(Tmp.r2.set(obj.editorX - 2, obj.editorY - 1, objWidth, objHeight).overlaps(Tmp.r1)){
|
||||
Core.app.setClipboardText(JsonIO.json.toJson(obj, Object.class));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(Core.input.ctrl() && Core.input.keyTap(KeyCode.v)){
|
||||
String text = Core.app.getClipboardText();
|
||||
if(text == null) return;
|
||||
|
||||
try{
|
||||
MapObjective obj = JsonIO.read(MapObjective.class, text);
|
||||
Vec2 pos = screenToLocalCoordinates(Core.input.mouse());
|
||||
int tx = Mathf.round((pos.x - objWidth * canvas.unitSize / 2f) / canvas.unitSize);
|
||||
int ty = Mathf.floor((pos.y - canvas.unitSize) / canvas.unitSize);
|
||||
if(obj != null && canvas.tilemap.validPlace(tx, ty, null)){
|
||||
obj.editorX = tx;
|
||||
obj.editorY = ty;
|
||||
canvas.tilemap.createTile(tx, ty, obj, true);
|
||||
canvas.objectives.add(obj);
|
||||
}
|
||||
}catch(Exception e){ //in case serialization fails
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void show(Seq<MapObjective> objectives, Cons<Seq<MapObjective>> out){
|
||||
|
||||
@@ -3,7 +3,7 @@ package mindustry.editor;
|
||||
import arc.struct.*;
|
||||
|
||||
public class OperationStack{
|
||||
private static final int maxSize = 10;
|
||||
private static final int maxSize = 30;
|
||||
private Seq<DrawOperation> stack = new Seq<>();
|
||||
private int index = 0;
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ public class Damage{
|
||||
if(hitter.type.collidesGround && hitter.type.collidesTiles){
|
||||
seg1.set(x, y);
|
||||
seg2.set(seg1).add(vec);
|
||||
World.raycastEachWorld(x, y, seg2.x, seg2.y, (cx, cy) -> {
|
||||
World.raycastEachNoDiagonalWorld(x, y, seg2.x, seg2.y, (cx, cy) -> {
|
||||
Building tile = world.build(cx, cy);
|
||||
boolean collide = tile != null && tile.collide(hitter) && hitter.checkUnderBuild(tile, cx * tilesize, cy * tilesize)
|
||||
&& ((tile.team != team && tile.collide(hitter)) || hitter.type.testCollision(hitter, tile)) && collidedBlocks.add(tile.pos());
|
||||
|
||||
@@ -95,7 +95,7 @@ public class ShieldArcAbility extends Ability{
|
||||
paramField.data -= unit.health() * paramField.missileUnitMultiplier * Vars.state.rules.unitDamage(unit.team);
|
||||
paramField.alpha = 1f;
|
||||
|
||||
}else if(paramField.pushUnits && !(!unit.isFlying() && paramUnit.isFlying())){
|
||||
}else if(paramField.pushUnits && (paramField.pushDiffLayer || paramUnit.isFlying() == unit.isFlying())){
|
||||
|
||||
float reach = paramField.radius + paramField.width;
|
||||
float overlapDst = reach - unit.dst(paramPos);
|
||||
@@ -158,6 +158,8 @@ public class ShieldArcAbility extends Ability{
|
||||
public boolean offsetRegion = false;
|
||||
/** If true, enemy units are pushed out. */
|
||||
public boolean pushUnits = true;
|
||||
/** If pushUnits is true, allow ground units to push air or air units to push ground */
|
||||
public boolean pushDiffLayer = true;
|
||||
public Effect pushEffect = Fx.circleColorSpark;
|
||||
|
||||
/** State. */
|
||||
|
||||
@@ -96,7 +96,7 @@ public class LiquidBulletType extends BulletType{
|
||||
Puddles.deposit(world.tileWorld(hitx, hity), liquid, puddleSize);
|
||||
|
||||
if(liquid.temperature <= 0.5f && liquid.flammability < 0.3f){
|
||||
float intensity = 400f * puddleSize/6f;
|
||||
float intensity = 400f * (liquid.heatCapacity / 0.4f) * (puddleSize / 6f);
|
||||
Fires.extinguish(world.tileWorld(hitx, hity), intensity);
|
||||
for(Point2 p : Geometry.d4){
|
||||
Fires.extinguish(world.tileWorld(hitx + p.x * tilesize, hity + p.y * tilesize), intensity);
|
||||
|
||||
@@ -1836,6 +1836,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
||||
if(was){
|
||||
indexer.addIndex(tile);
|
||||
Events.fire(teamChangeEvent.set(last, self()));
|
||||
pathfinder.updateTile(tile);
|
||||
updateProximity();
|
||||
}
|
||||
|
||||
checkAllowUpdate();
|
||||
|
||||
@@ -14,8 +14,11 @@ public class ParticleEffect extends Effect{
|
||||
private static final Rand rand = new Rand();
|
||||
private static final Vec2 rv = new Vec2();
|
||||
|
||||
/** Particle color. */
|
||||
public Color colorFrom = Color.white.cpy(), colorTo = Color.white.cpy();
|
||||
/** Number of particles created. */
|
||||
public int particles = 6;
|
||||
/** If true, the particle's length is set in a random range from 0 to length. */
|
||||
public boolean randLength = true;
|
||||
/** Gives the effect flipping compatability like casing effects. */
|
||||
public boolean casingFlip;
|
||||
@@ -24,8 +27,13 @@ public class ParticleEffect extends Effect{
|
||||
public Interp interp = Interp.linear;
|
||||
/** Particle size interpolation. Null to use interp. */
|
||||
public @Nullable Interp sizeInterp = null;
|
||||
/** Particle color interpolation. Null to use interp. */
|
||||
public @Nullable Interp colorInterp = null;
|
||||
/** Offset position of the particle. */
|
||||
public float offsetX, offsetY;
|
||||
/** Particle light properties. */
|
||||
public float lightScl = 2f, lightOpacity = 0.6f;
|
||||
/** Color of the light each particle emits. */
|
||||
public @Nullable Color lightColor;
|
||||
|
||||
//region only
|
||||
@@ -36,12 +44,22 @@ public class ParticleEffect extends Effect{
|
||||
public float sizeFrom = 2f, sizeTo = 0f;
|
||||
/** Controls the amount of ticks the effect waits before changing size. */
|
||||
public float sizeChangeStart = 0f;
|
||||
/** Controls the amount of ticks the effect waits before changing width. */
|
||||
public float widthChangeStart = 0f;
|
||||
/** Controls the amount of ticks the effect waits before changing height. */
|
||||
public float heightChangeStart = 0f;
|
||||
/** Whether the rotation adds with the parent */
|
||||
public boolean useRotation = true;
|
||||
/** Rotation offset. */
|
||||
public float offset = 0;
|
||||
/** Sprite to draw. */
|
||||
public String region = "circle";
|
||||
/** Particle width and height properties as a ratio of its radius. Does nothing to line particles. */
|
||||
public float widthFrom = 1f, widthTo = 1f, heightFrom = 1f, heightTo = 1f;
|
||||
/** Particle width interpolation. Null to use sizeInterp. */
|
||||
public @Nullable Interp widthInterp = null;
|
||||
/** Particle height interpolation. Null to use sizeInterp. */
|
||||
public @Nullable Interp heightInterp = null;
|
||||
|
||||
//line only
|
||||
public boolean line;
|
||||
@@ -55,6 +73,9 @@ public class ParticleEffect extends Effect{
|
||||
clip = Math.max(clip, length + Math.max(sizeFrom, sizeTo));
|
||||
sizeChangeStart = Mathf.clamp(sizeChangeStart, 0f, lifetime);
|
||||
if(sizeInterp == null) sizeInterp = interp;
|
||||
if(widthInterp == null) widthInterp = sizeInterp;
|
||||
if(heightInterp == null) heightInterp = sizeInterp;
|
||||
if(colorInterp == null) colorInterp = interp;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -65,10 +86,13 @@ public class ParticleEffect extends Effect{
|
||||
int flip = casingFlip ? -Mathf.sign(e.rotation) : 1;
|
||||
float rawfin = e.fin();
|
||||
float fin = e.fin(interp);
|
||||
float colFin = e.fin(colorInterp);
|
||||
float rad = sizeInterp.apply(sizeFrom, sizeTo, Mathf.curve(rawfin, sizeChangeStart / lifetime, 1f)) * 2;
|
||||
float width = rad * (widthInterp.apply(widthFrom, widthTo, Mathf.curve(rawfin, widthChangeStart / lifetime, 1f)) * 2);
|
||||
float height = rad * (heightInterp.apply(heightFrom, heightTo, Mathf.curve(rawfin, heightChangeStart / lifetime, 1f)) * 2);
|
||||
float ox = e.x + Angles.trnsx(realRotation, offsetX * flip, offsetY), oy = e.y + Angles.trnsy(realRotation, offsetX * flip, offsetY);
|
||||
|
||||
Draw.color(colorFrom, colorTo, fin);
|
||||
Draw.color(colorFrom, colorTo, colFin);
|
||||
Color lightColor = this.lightColor == null ? Draw.getColor() : this.lightColor;
|
||||
|
||||
if(line){
|
||||
@@ -91,7 +115,7 @@ public class ParticleEffect extends Effect{
|
||||
rv.trns(realRotation + rand.range(cone), !randLength ? l : rand.random(l));
|
||||
float x = rv.x, y = rv.y;
|
||||
|
||||
Draw.rect(tex, ox + x, oy + y, rad, rad / tex.ratio(), realRotation + offset + e.time * spin);
|
||||
Draw.rect(tex, ox + x, oy + y, width, height / tex.ratio(), realRotation + offset + e.time * spin);
|
||||
Drawf.light(ox + x, oy + y, rad * lightScl, lightColor, lightOpacity * Draw.getColorAlpha());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package mindustry.entities.effect;
|
||||
|
||||
import arc.*;
|
||||
import arc.graphics.*;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import arc.math.geom.*;
|
||||
import arc.util.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.graphics.*;
|
||||
|
||||
/** Creates a triangle with heavily customizable parameters. */
|
||||
public class TriangleEffect extends Effect{
|
||||
private static final Rand rand = new Rand();
|
||||
|
||||
/** Triangle color. */
|
||||
public Color colorFrom = Color.white.cpy(), colorTo = Color.white.cpy();
|
||||
/** Gives the effect flipping compatability like casing effects. */
|
||||
public boolean flippable;
|
||||
/** Triangle position interpolation. Also used as a fallback.*/
|
||||
public Interp interp = Interp.linear;
|
||||
/** Width interpolation. Null to use interp. */
|
||||
public @Nullable Interp widthInterp = null;
|
||||
/** Height interpolation. Null to use interp. */
|
||||
public @Nullable Interp heightInterp = null;
|
||||
/** Triangle color interpolation. Null to use interp. */
|
||||
public @Nullable Interp colorInterp = null;
|
||||
/** Controls the starting and ending positions of the triangle. */
|
||||
public float startX = 0, startY = 0, endX = 0, endY = 0;
|
||||
/** Triangle light properties. */
|
||||
public float lightScl = 8f, lightOpacityFrom = 0.6f, lightOpacityTo = 0f;
|
||||
/** Color of the light the triangle emits. */
|
||||
public @Nullable Color lightColor;
|
||||
|
||||
/** Controls the initial and final positions of each point on the triangle. */
|
||||
public float widthFrom = 4f, widthTo = 0f, heightFrom = 4f, heightTo = 4f;
|
||||
/** Whether the rotation adds with the parent */
|
||||
public boolean useRotation = true;
|
||||
/** Spin in degrees/tick. */
|
||||
public int spin = 0;
|
||||
/** Rotation offset. */
|
||||
public float offset = 0;
|
||||
|
||||
@Override
|
||||
public void init(){
|
||||
if(widthInterp == null) widthInterp = interp;
|
||||
if(heightInterp == null) heightInterp = interp;
|
||||
if(colorInterp == null) colorInterp = interp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(EffectContainer e){
|
||||
float realRotation = (useRotation ? (flippable ? Math.abs(e.rotation) : e.rotation) : baseRotation);
|
||||
int flip = flippable ? -Mathf.sign(e.rotation) : 1;
|
||||
float rawfin = e.fin();
|
||||
float colFin = e.fin(interp);
|
||||
float width = widthInterp.apply(widthFrom, widthTo, Mathf.curve(rawfin, 0, 1f));
|
||||
float height = heightInterp.apply(heightFrom, heightTo, Mathf.curve(rawfin, 0, 1f));
|
||||
float lightOpac = colorInterp.apply(lightOpacityFrom, lightOpacityTo, Mathf.curve(rawfin, 0, 1f));
|
||||
|
||||
float cx = interp.apply(startX, endX, Mathf.curve(rawfin, 0, 1f));
|
||||
float cy = interp.apply(startY, endY, Mathf.curve(rawfin, 0, 1f));
|
||||
Vec2 pos = new Vec2(cx, cy);
|
||||
pos.rotate(realRotation);
|
||||
|
||||
Draw.color(colorFrom, colorTo, colFin);
|
||||
Color lightColor = this.lightColor == null ? Draw.getColor() : this.lightColor;
|
||||
|
||||
Drawf.tri(pos.x + e.x, pos.y + e.y, width, height, realRotation + offset + e.time * spin);
|
||||
Drawf.light(pos.x + e.x, pos.y + e.y, lightScl, lightColor, lightOpac * Draw.getColorAlpha());
|
||||
}
|
||||
}
|
||||
@@ -519,6 +519,22 @@ public class EventType{
|
||||
}
|
||||
}
|
||||
|
||||
/** Called when all rules of the current map are loaded. */
|
||||
public static class RulesLoadEvent{
|
||||
public final Rules rules;
|
||||
public final boolean fromSave;
|
||||
|
||||
public RulesLoadEvent(Rules rules){
|
||||
this.rules = rules;
|
||||
this.fromSave = false;
|
||||
}
|
||||
|
||||
public RulesLoadEvent(Rules rules, boolean fromSave){
|
||||
this.rules = rules;
|
||||
this.fromSave = fromSave;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when block building begins by placing down the ConstructBlock.
|
||||
* The tile's block will nearly always be a ConstructBlock.
|
||||
|
||||
@@ -308,7 +308,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.research", content.emoji(), content.localizedName);
|
||||
return Core.bundle.format("objective.research", content.emoji() + " ", content.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -339,7 +339,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.produce", content.emoji(), content.localizedName);
|
||||
return Core.bundle.format("objective.produce", content.emoji() + " ", content.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -372,7 +372,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.item", state.rules.defaultTeam.items().get(item), amount, item.emoji(), item.localizedName);
|
||||
return Core.bundle.format("objective.item", state.rules.defaultTeam.items().get(item), amount, item.emoji() + " ", item.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -405,7 +405,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.coreitem", state.stats.coreItemCount.get(item), amount, item.emoji(), item.localizedName);
|
||||
return Core.bundle.format("objective.coreitem", state.stats.coreItemCount.get(item), amount, item.emoji() + " ", item.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -438,7 +438,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.build", count - state.stats.placedBlockCount.get(block, 0), block.emoji(), block.localizedName);
|
||||
return Core.bundle.format("objective.build", count - state.stats.placedBlockCount.get(block, 0), block.emoji() + " ", block.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -471,7 +471,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.buildunit", count - state.rules.defaultTeam.data().countType(unit), unit.emoji(), unit.localizedName);
|
||||
return Core.bundle.format("objective.buildunit", count - state.rules.defaultTeam.data().countType(unit), unit.emoji() + " ", unit.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -606,7 +606,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.destroyblock", block.emoji(), block.localizedName);
|
||||
return Core.bundle.format("objective.destroyblock", block.emoji() + " ", block.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -651,7 +651,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
@Override
|
||||
public String text(){
|
||||
return Core.bundle.format("objective.destroyblocks", progress(), positions.length, block.emoji(), block.localizedName);
|
||||
return Core.bundle.format("objective.destroyblocks", progress(), positions.length, block.emoji() + " ", block.localizedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1414,10 +1414,10 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
|
||||
|
||||
private static void prepareTexture(ObjectiveMarker marker, Object texture){
|
||||
if(texture instanceof LogicDisplayBuild d && d.isAdded()){
|
||||
if(d.buffer == null || d.buffer.isDisposed()){
|
||||
if(d.rootDisplay.buffer == null || d.rootDisplay.buffer.isDisposed()){
|
||||
marker.setTexture("error");
|
||||
}else{
|
||||
d.processCommands();
|
||||
d.rootDisplay.processCommands();
|
||||
}
|
||||
}else if(texture instanceof CanvasBuild c && c.isAdded()){
|
||||
if(c.texture == null || c.texture.isDisposed()){
|
||||
|
||||
@@ -25,6 +25,8 @@ public class Rules{
|
||||
public boolean allowEditRules = false;
|
||||
/** Sandbox mode: Enables infinite resources, build range and build speed. */
|
||||
public boolean infiniteResources;
|
||||
/** Allow building and deconstructing cores anywhere, as well as showing ui to change teams */
|
||||
public boolean coreBuildAndConfig = false;
|
||||
/** Team-specific rules. */
|
||||
public TeamRules teams = new TeamRules();
|
||||
/** Whether the waves come automatically on a timer. If not, waves come when the play button is pressed. */
|
||||
|
||||
@@ -144,15 +144,15 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
}
|
||||
});
|
||||
|
||||
Events.on(WorldLoadEvent.class, e -> {
|
||||
playerPlanTree = new QuadTree<>(new Rect(0f, 0f, world.unitWidth(), world.unitHeight()));
|
||||
selectPlanTree = new QuadTree<>(new Rect(0f, 0f, world.unitWidth(), world.unitHeight()));
|
||||
createPlanLists();
|
||||
});
|
||||
Events.on(WorldLoadEvent.class, e -> initQuadtrees());
|
||||
|
||||
Events.on(ResetEvent.class, e -> {
|
||||
reset();
|
||||
});
|
||||
Events.on(ResetEvent.class, e -> reset());
|
||||
}
|
||||
|
||||
protected void initQuadtrees(){
|
||||
playerPlanTree = new QuadTree<>(new Rect(0f, 0f, world.unitWidth(), world.unitHeight()));
|
||||
selectPlanTree = new QuadTree<>(new Rect(0f, 0f, world.unitWidth(), world.unitHeight()));
|
||||
createPlanLists();
|
||||
}
|
||||
|
||||
//methods to override
|
||||
@@ -2262,6 +2262,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
config.build(group);
|
||||
planConfig.build(group);
|
||||
}
|
||||
|
||||
initQuadtrees();
|
||||
}
|
||||
|
||||
public boolean canShoot(){
|
||||
|
||||
@@ -171,6 +171,11 @@ public class SaveIO{
|
||||
|
||||
ver.read(stream, counter, new SaveReadState(context));
|
||||
Events.fire(new SaveLoadEvent(context.isMap()));
|
||||
|
||||
//this gets handled elsewhere when starting a new game or loading a sector
|
||||
if(!context.isMap() && !state.isCampaign()){
|
||||
Events.fire(new RulesLoadEvent(state.rules, true));
|
||||
}
|
||||
}catch(Throwable e){
|
||||
throw new SaveException(e);
|
||||
}finally{
|
||||
|
||||
@@ -79,11 +79,6 @@ public class FileMapGenerator implements WorldGenerator{
|
||||
applyFilters();
|
||||
//no super.end(), don't call world load event twice
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMap(){
|
||||
return true;
|
||||
}
|
||||
});
|
||||
world.setGenerating(true);
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@ public class ClassMap{
|
||||
classes.put("RadialEffect", mindustry.entities.effect.RadialEffect.class);
|
||||
classes.put("SeqEffect", mindustry.entities.effect.SeqEffect.class);
|
||||
classes.put("SoundEffect", mindustry.entities.effect.SoundEffect.class);
|
||||
classes.put("TriangleEffect", mindustry.entities.effect.TriangleEffect.class);
|
||||
classes.put("WaveEffect", mindustry.entities.effect.WaveEffect.class);
|
||||
classes.put("WrapEffect", mindustry.entities.effect.WrapEffect.class);
|
||||
classes.put("DrawPart", mindustry.entities.part.DrawPart.class);
|
||||
|
||||
@@ -101,6 +101,10 @@ public class Weapon implements Cloneable{
|
||||
public float velocityRnd = 0f;
|
||||
/** extra velocity that is added as a fraction */
|
||||
public float extraVelocity = 0f;
|
||||
/** fraction of lifetime that is random */
|
||||
public float lifeRnd = 0f;
|
||||
/** extra lifetime that is added as a fraction */
|
||||
public float extraLife = 0f;
|
||||
/** The half-radius of the cone in which shooting will start. */
|
||||
public float shootCone = 5f;
|
||||
/** Cone in which the weapon can rotate relative to its mount. */
|
||||
@@ -117,8 +121,10 @@ public class Weapon implements Cloneable{
|
||||
public boolean ignoreRotation = false;
|
||||
/** If true, this weapon cannot be used to attack targets. */
|
||||
public boolean noAttack = false;
|
||||
/** min velocity required for this weapon to shoot */
|
||||
/** min velocity required for this weapon to shoot. -1 to disable the limit. */
|
||||
public float minShootVelocity = -1f;
|
||||
/** max velocity at which this weapon to shoot. -1 to disable the limit. */
|
||||
public float maxShootVelocity = -1f;
|
||||
/** should the shoot effects follow the unit (effects need followParent set to true for this to work) */
|
||||
public boolean parentizeEffects;
|
||||
/** internal value used for alternation - do not change! */
|
||||
@@ -434,7 +440,7 @@ public class Weapon implements Cloneable{
|
||||
!(bullet.killShooter && mount.totalShots > 0) && //if the bullet kills the shooter, you should only ever be able to shoot once
|
||||
(!alternate || wasFlipped == flipSprite) &&
|
||||
mount.warmup >= minWarmup && //must be warmed up
|
||||
velLen >= minShootVelocity && //check velocity requirements
|
||||
velLen >= minShootVelocity && (maxShootVelocity == -1 || velLen <= maxShootVelocity) && //check velocity requirements
|
||||
(mount.reload <= 0.0001f || (alwaysContinuous && mount.bullet == null)) && //reload has to be 0, or it has to be an always-continuous weapon
|
||||
(alwaysShooting || Angles.within(rotate ? mount.rotation : unit.rotation + baseRotation, mount.targetRotation, shootCone)) //has to be within the cone
|
||||
){
|
||||
@@ -497,7 +503,8 @@ public class Weapon implements Cloneable{
|
||||
bulletX = mountX + Angles.trnsx(weaponRotation, this.shootX + xOffset + xSpread, this.shootY + yOffset + ySpread),
|
||||
bulletY = mountY + Angles.trnsy(weaponRotation, this.shootX + xOffset + xSpread, this.shootY + yOffset + ySpread),
|
||||
shootAngle = bulletRotation(unit, mount, bulletX, bulletY) + angleOffset,
|
||||
lifeScl = bullet.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, mount.aimX, mount.aimY) / bullet.range) : 1f,
|
||||
baseLife = (1f - lifeRnd) + Mathf.random(lifeRnd) + extraLife,
|
||||
lifeScl = bullet.scaleLife ? baseLife * Mathf.clamp(Mathf.dst(bulletX, bulletY, mount.aimX, mount.aimY) / bullet.range) : baseLife,
|
||||
angle = shootAngle + Mathf.range(inaccuracy + bullet.inaccuracy);
|
||||
|
||||
Entityc shooter = unit.controller() instanceof MissileAI ai ? ai.shooter : unit; //Pass the missile's shooter down to its bullets
|
||||
|
||||
@@ -38,8 +38,9 @@ public class ContentInfoDialog extends BaseDialog{
|
||||
Table table = new Table();
|
||||
table.margin(10);
|
||||
|
||||
//initialize stats if they haven't been yet
|
||||
content.checkStats();
|
||||
//compute stats every time
|
||||
var stats = content.computeStats();
|
||||
var statMap = stats.toMap();
|
||||
|
||||
table.table(title1 -> {
|
||||
title1.image(content.uiIcon).size(iconXLarge).scaling(Scaling.fit);
|
||||
@@ -58,7 +59,7 @@ public class ContentInfoDialog extends BaseDialog{
|
||||
}
|
||||
|
||||
if(content.description != null){
|
||||
var any = content.stats.toMap().size > 0;
|
||||
var any = statMap.size > 0;
|
||||
|
||||
if(any){
|
||||
table.add("@category.purpose").color(Pal.accent).fillX().padTop(10);
|
||||
@@ -68,16 +69,14 @@ public class ContentInfoDialog extends BaseDialog{
|
||||
table.add("[lightgray]" + UI.formatIcons(content.displayDescription())).wrap().fillX().padLeft(any ? 10 : 0).width(500f).padTop(any ? 0 : 10).left();
|
||||
table.row();
|
||||
|
||||
if(!content.stats.useCategories && any){
|
||||
if(!stats.useCategories && any){
|
||||
table.add("@category.general").fillX().color(Pal.accent);
|
||||
table.row();
|
||||
}
|
||||
}
|
||||
|
||||
Stats stats = content.stats;
|
||||
|
||||
for(StatCat cat : stats.toMap().keys()){
|
||||
OrderedMap<Stat, Seq<StatValue>> map = stats.toMap().get(cat);
|
||||
for(StatCat cat : statMap.keys()){
|
||||
var map = statMap.get(cat);
|
||||
|
||||
if(map.size == 0) continue;
|
||||
|
||||
|
||||
@@ -164,6 +164,7 @@ public class CustomRulesDialog extends BaseDialog{
|
||||
category("resourcesbuilding");
|
||||
check("@rules.alloweditworldprocessors", b -> rules.allowEditWorldProcessors = b, () -> rules.allowEditWorldProcessors);
|
||||
check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources);
|
||||
check("@rules.corebuildandconfig", b -> rules.coreBuildAndConfig = b, () -> rules.coreBuildAndConfig);
|
||||
check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore);
|
||||
check("@rules.coreunloaders", b -> rules.allowCoreUnloaders = b, () -> rules.allowCoreUnloaders);
|
||||
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
||||
|
||||
@@ -1093,7 +1093,7 @@ public class HudFragment{
|
||||
|
||||
String text = obj.text();
|
||||
if(text != null && !text.isEmpty()){
|
||||
if(!first) builder.append("\n[white]");
|
||||
if(!first) builder.append("\n\n[white]");
|
||||
builder.append(UI.formatIcons(text));
|
||||
|
||||
first = false;
|
||||
|
||||
@@ -636,6 +636,8 @@ public class Block extends UnlockableContent implements Senseable{
|
||||
public void setStats(){
|
||||
super.setStats();
|
||||
|
||||
stats.useCategories = true;
|
||||
|
||||
stats.add(Stat.size, "@x@", size, size);
|
||||
|
||||
if(synthetic()){
|
||||
@@ -1463,8 +1465,6 @@ public class Block extends UnlockableContent implements Senseable{
|
||||
|
||||
setBars();
|
||||
|
||||
stats.useCategories = true;
|
||||
|
||||
//TODO check for double power consumption
|
||||
|
||||
if(!logicConfigurable){
|
||||
|
||||
@@ -58,6 +58,12 @@ public class Turret extends ReloadTurret{
|
||||
public float inaccuracy = 0f;
|
||||
/** Fraction of bullet velocity that is random. */
|
||||
public float velocityRnd = 0f;
|
||||
/** extra velocity that is added as a fraction */
|
||||
public float extraVelocity = 0f;
|
||||
/** fraction of lifetime that is random */
|
||||
public float lifeRnd = 0f;
|
||||
/** extra lifetime that is added as a fraction */
|
||||
public float extraLife = 0f;
|
||||
/** Fraction of lifetime that is added to bullets with lifeScale. */
|
||||
public float scaleLifetimeOffset = 0f;
|
||||
/** Maximum angle difference in degrees at which turret will still try to shoot. */
|
||||
@@ -785,11 +791,12 @@ public class Turret extends ReloadTurret{
|
||||
bulletX = x + Angles.trnsx(rotation - 90, shootX + xOffset + xSpread, shootY + yOffset),
|
||||
bulletY = y + Angles.trnsy(rotation - 90, shootX + xOffset + xSpread, shootY + yOffset),
|
||||
shootAngle = rotation + angleOffset + Mathf.range(inaccuracy + type.inaccuracy);
|
||||
|
||||
float lifeScl = type.scaleLife ? Mathf.clamp((1 + scaleLifetimeOffset) * Mathf.dst(bulletX, bulletY, targetPos.x, targetPos.y) / type.range, minRange() / type.range, range() / type.range) : 1f;
|
||||
|
||||
float baseLife = (1f - lifeRnd) + Mathf.random(lifeRnd) + extraLife,
|
||||
lifeScl = type.scaleLife ? Mathf.clamp((baseLife + scaleLifetimeOffset) * Mathf.dst(bulletX, bulletY, targetPos.x, targetPos.y) / type.range, minRange() / type.range, range() / type.range) : baseLife;
|
||||
|
||||
//TODO aimX / aimY for multi shot turrets?
|
||||
handleBullet(type.create(this, team, bulletX, bulletY, shootAngle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, targetPos.x, targetPos.y), xOffset, yOffset, shootAngle - rotation);
|
||||
handleBullet(type.create(this, team, bulletX, bulletY, shootAngle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd) + extraVelocity, lifeScl, null, mover, targetPos.x, targetPos.y), xOffset, yOffset, shootAngle - rotation);
|
||||
|
||||
(shootEffect == null ? type.shootEffect : shootEffect).at(bulletX, bulletY, rotation + angleOffset, type.hitColor);
|
||||
(smokeEffect == null ? type.smokeEffect : smokeEffect).at(bulletX, bulletY, rotation + angleOffset, type.hitColor);
|
||||
|
||||
@@ -37,6 +37,7 @@ public class ItemBridge extends Block{
|
||||
public float arrowSpacing = 4f, arrowOffset = 2f, arrowPeriod = 0.4f;
|
||||
public float arrowTimeScl = 6.2f;
|
||||
public float bridgeWidth = 6.5f;
|
||||
public boolean noAcceptDisabled = false;
|
||||
|
||||
//for autolink
|
||||
public @Nullable ItemBridgeBuild lastBuild;
|
||||
@@ -460,7 +461,7 @@ public class ItemBridge extends Block{
|
||||
@Override
|
||||
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||
return
|
||||
hasLiquids && team == source.team &&
|
||||
hasLiquids && team == source.team && (!noAcceptDisabled || enabled) &&
|
||||
(liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f) &&
|
||||
checkAccept(source, world.tile(link));
|
||||
}
|
||||
|
||||
@@ -147,8 +147,9 @@ public class LogicDisplay extends Block{
|
||||
}
|
||||
|
||||
public void getBufferRegion(TextureRegion region){
|
||||
if(buffer != null){
|
||||
region.set(buffer.texture, 0, buffer.texture.height, buffer.texture.width, -buffer.texture.height);
|
||||
if(rootDisplay.buffer != null){
|
||||
region.set(rootDisplay.buffer.texture, 0, rootDisplay.buffer.texture.height,
|
||||
rootDisplay.buffer.texture.width, -rootDisplay.buffer.texture.height);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +195,7 @@ public class LogicDisplay extends Block{
|
||||
int id = packed >> 5;
|
||||
if(ctype == displayDrawType){
|
||||
if(id != index && id < displays.size && id >= 0 && displays.get(id).buffer != null){
|
||||
displays.get(id).getBufferRegion(Tmp.tr1);
|
||||
displays.get(id).rootDisplay.getBufferRegion(Tmp.tr1);
|
||||
Draw.rect(Tmp.tr1, x, y, p2, p2 / Tmp.tr1.ratio(), p3);
|
||||
}
|
||||
}else if(ctype < ContentType.all.length && Vars.content.getByID(ContentType.all[ctype], id) instanceof UnlockableContent u){
|
||||
|
||||
@@ -268,11 +268,11 @@ public class TileableLogicDisplay extends LogicDisplay{
|
||||
|
||||
@Override
|
||||
public void ensureBuffer() {
|
||||
if(buffer == null){
|
||||
buffer = new FrameBuffer(32 * tilesWidth - 2 * frameSize, 32 * tilesHeight - 2 * frameSize);
|
||||
if(rootDisplay.buffer == null){
|
||||
rootDisplay.buffer = new FrameBuffer(32 * tilesWidth - 2 * frameSize, 32 * tilesHeight - 2 * frameSize);
|
||||
//clear the buffer - some OSs leave garbage in it
|
||||
buffer.begin(backgroundColor);
|
||||
buffer.end();
|
||||
rootDisplay.buffer.begin(backgroundColor);
|
||||
rootDisplay.buffer.end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -90,6 +90,14 @@ public class NuclearReactor extends PowerGenerator{
|
||||
if(hasItems){
|
||||
stats.add(Stat.productionTime, itemDuration / 60f, StatUnit.seconds);
|
||||
}
|
||||
if(heatOutput > 0f && (ui.planet.isShown() ? ui.planet.state.planet : state.isGame() ? state.getPlanet() : null) == Planets.erekir){
|
||||
stats.add(Stat.output, table -> {
|
||||
//using StatUnit.localized() strips the icon
|
||||
String unit = "[red]" + Iconc.waves + "[] " + Strings.fixed(heatOutput, 0) + " " + Core.bundle.get("unit.heatunitsperside");
|
||||
|
||||
table.add(Core.bundle.format("bar.upto", unit));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -171,7 +171,8 @@ public class CoreBlock extends StorageBlock{
|
||||
|
||||
@Override
|
||||
public boolean canBreak(Tile tile){
|
||||
return state.isEditor();
|
||||
//always keep at least 1 core to not lose the save
|
||||
return state.isEditor() || (state.rules.coreBuildAndConfig && tile.block() instanceof CoreBlock && state.teams.cores(tile.team()).size > 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -183,8 +184,8 @@ public class CoreBlock extends StorageBlock{
|
||||
@Override
|
||||
public boolean canPlaceOn(Tile tile, Team team, int rotation){
|
||||
if(tile == null) return false;
|
||||
//in the editor, you can place them anywhere for convenience
|
||||
if(state.isEditor()) return true;
|
||||
//in the editor or with gamerule, you can place them anywhere for convenience
|
||||
if(state.isEditor() || state.rules.coreBuildAndConfig) return true;
|
||||
|
||||
CoreBuild core = team.core();
|
||||
|
||||
@@ -283,6 +284,57 @@ public class CoreBlock extends StorageBlock{
|
||||
return block.unloadable && state.rules.allowCoreUnloaders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildConfiguration(Table table){
|
||||
if(!state.rules.coreBuildAndConfig) return;
|
||||
|
||||
ButtonGroup<ImageButton> group = new ButtonGroup<>();
|
||||
group.setMinCheckCount(0);
|
||||
Table cont = new Table();
|
||||
cont.defaults().size(32f);
|
||||
|
||||
int i = 0;
|
||||
for(Team team : Team.baseTeams){
|
||||
ImageButton button = cont.button(Tex.whiteui, Styles.clearTogglei, 24f, () -> {
|
||||
}).group(group).get();
|
||||
button.changed(() -> {
|
||||
if(button.isChecked()){
|
||||
configure(team.id);
|
||||
}
|
||||
});
|
||||
button.getStyle().imageUpColor = team.color;
|
||||
button.update(() -> button.setChecked(this.team == team));
|
||||
|
||||
if(i++ % 3 == 2){
|
||||
cont.row();
|
||||
}
|
||||
}
|
||||
|
||||
ScrollPane pane = new ScrollPane(cont, Styles.smallPane);
|
||||
pane.setScrollingDisabled(true, false);
|
||||
pane.setOverscroll(false, false);
|
||||
table.add(pane).maxHeight(Scl.scl(40f * 2f)).left();
|
||||
table.row();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configured(@Nullable Unit builder, @Nullable Object value){
|
||||
super.configured(builder, value);
|
||||
if(!state.rules.coreBuildAndConfig || !(value instanceof Integer)) return;
|
||||
|
||||
Team next = Team.get((int)value);
|
||||
if(builder != null && builder.isPlayer()){
|
||||
builder.team(next);
|
||||
builder.getPlayer().team(next);
|
||||
}
|
||||
changeTeam(next);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldHideConfigure(Player player){
|
||||
return !state.rules.coreBuildAndConfig;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(){
|
||||
//draw thrusters when just landed
|
||||
@@ -532,6 +584,7 @@ public class CoreBlock extends StorageBlock{
|
||||
@Override
|
||||
public void created(){
|
||||
super.created();
|
||||
block.configurable = state.rules.coreBuildAndConfig;
|
||||
|
||||
Events.fire(new CoreChangeEvent(this));
|
||||
}
|
||||
@@ -591,6 +644,7 @@ public class CoreBlock extends StorageBlock{
|
||||
|
||||
@Override
|
||||
public void updateTile(){
|
||||
block.configurable = state.rules.coreBuildAndConfig;
|
||||
iframes -= Time.delta;
|
||||
thrusterTime -= Time.delta/90f;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import arc.scene.*;
|
||||
import arc.scene.event.*;
|
||||
import arc.scene.style.*;
|
||||
import arc.scene.ui.*;
|
||||
import arc.scene.ui.Tooltip.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
@@ -655,13 +654,13 @@ public class StatValues{
|
||||
bt.row();
|
||||
}
|
||||
|
||||
if(blockName != null && t instanceof UnlockableContent){
|
||||
UnlockableContent content = (UnlockableContent) t;
|
||||
tableInfo(bt, "block." + blockName + "." + content.name + ".info");
|
||||
if(blockName != null && t != null){
|
||||
tableInfo(bt, "block." + blockName + "." + t.name + ".info");
|
||||
bt.row();
|
||||
}
|
||||
|
||||
if(type.damage > 0 && (type.collides || type.splashDamage <= 0)){
|
||||
bt.add(Core.bundle.format("bullet.damage", type.damage) + (type.continuousDamage() > 0 ?
|
||||
bt.add(Core.bundle.format("bullet.damage", type.damage) + (type.continuousDamage() > 0 ?
|
||||
"[lightgray] ~ [stat]" + Core.bundle.format("bullet.damage", type.continuousDamage()) + StatUnit.perSecond.localized() : ""));
|
||||
}
|
||||
|
||||
@@ -732,7 +731,7 @@ public class StatValues{
|
||||
Strings.autoFixed(b.timeDuration / 60f, 1)) + " " + StatUnit.seconds.localized());
|
||||
}
|
||||
if(b.timeDuration > 0f && b.powerSclDecrease < 1f){
|
||||
sep(bt, Core.bundle.format("bullet.empslowdown",
|
||||
sep(bt, Core.bundle.format("bullet.empslowdown",
|
||||
(b.powerSclDecrease < 1f ? "[negstat]" : "") + Strings.autoFixed((b.powerSclDecrease - 1f) * 100f, 2),
|
||||
Strings.autoFixed(b.timeDuration / 60f, 1)) + " " + StatUnit.seconds.localized());
|
||||
}
|
||||
@@ -856,12 +855,10 @@ public class StatValues{
|
||||
|
||||
/** Adds an info table with an icon and description key from the bundle */
|
||||
private static Cell<?> tableInfo(Table table, String key){
|
||||
if(!Core.bundle.has(key)) return null;
|
||||
return table.table(t -> {
|
||||
if(Core.bundle.has(key) && !Vars.headless){
|
||||
t.image(Icon.info.getRegion()).size(20).color(Color.lightGray).scaling(Scaling.fit).padRight(8).padLeft(12);
|
||||
t.add("[lightgray]" + Core.bundle.get(key));
|
||||
t.row().add().height(10f).row();
|
||||
}
|
||||
if(!Vars.headless) t.image(Icon.info.getRegion()).size(20).color(Color.lightGray).scaling(Scaling.fit).padRight(8).padLeft(12);
|
||||
t.add("[lightgray]" + Core.bundle.get(key)).padBottom(10f);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ import java.util.*;
|
||||
public class Stats{
|
||||
/** Whether to display stats with categories. If false, categories are completely ignored during display. */
|
||||
public boolean useCategories = false;
|
||||
/** Whether these stats are initialized yet. */
|
||||
/** @deprecated does nothing, will be removed in v9 */
|
||||
@Deprecated
|
||||
public boolean intialized = false;
|
||||
/** Production time period in ticks. Used for crafters. **/
|
||||
public float timePeriod = -1;
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
Mindustry é um jogo de construção de fábricas com elementos de defesa de torres e estratégia em tempo real. Crie cadeias de suprimento elaboradas para alimentar suas torres com munição, produza materiais para construir e fabricar unidades. Comande tropas para capturar bases inimigas e expanda sua produção. Defenda seu núcleo contra hordas de inimigos.
|
||||
|
||||
<h2>Recursos de Jogabilidade</h2>
|
||||
|
||||
- Use blocos de produção para criar uma grande variedade de materiais avançados
|
||||
- Defenda suas estruturas contra hordas de inimigos
|
||||
- Jogue com seus amigos em partidas cooperativas multijogador entre plataformas ou desafie-os em confrontos PvP por equipes
|
||||
- Distribua líquidos e enfrente desafios constantes, como incêndios ou ataques de unidades aéreas inimigas
|
||||
- Tire o máximo da sua produção fornecendo refrigeramento e lubrificante opcionais
|
||||
- Produza uma ampla variedade de unidades para gerenciar automaticamente sua base ou atacar bases inimigas
|
||||
- Configure linhas de montagem para construir exércitos de unidades mecanizadas
|
||||
- Use suas tropas para enfrentar bases inimigas totalmente funcionais
|
||||
|
||||
|
||||
<h2>Campanha</h2>
|
||||
|
||||
- Conquiste os planetas Serpulo e Erekir avançando por 35 mapas feitos à mão e mais de 250 setores gerados proceduralmente
|
||||
- Capture território e instale fábricas para produzir recursos enquanto joga em outros setores
|
||||
- Defenda seus setores contra invasões periódicas
|
||||
- Coordene a distribuição de recursos entre setores por meio de plataformas de lançamento
|
||||
- Pesquise novos blocos para impulsionar o progresso
|
||||
- Convide seus amigos para completar missões juntos
|
||||
- Mais de 250 blocos tecnológicos para dominar
|
||||
- Mais de 50 tipos diferentes de drones, mechs e naves
|
||||
|
||||
|
||||
<h2>Jogos Personalizados e Multijogador Entre Plataformas</h2>
|
||||
|
||||
- Mais de 16 mapas integrados para jogos personalizados, além de duas campanhas completas
|
||||
- Jogue em modo cooperativo, PvP ou sandbox
|
||||
- Entre em um servidor dedicado público ou convide amigos para sua própria sessão privada
|
||||
- Regras de jogo personalizáveis: altere custos de blocos, estatísticas de inimigos, itens iniciais, tempo das hordas e muito mais
|
||||
- Editor de mapas totalmente funcional com suporte a scripts
|
||||
- Navegador de mods integrado e suporte completo a modificações
|
||||
@@ -0,0 +1 @@
|
||||
Construa fábricas e defenda seu núcleo com estratégia em tempo real.
|
||||
@@ -0,0 +1 @@
|
||||
Construa fábricas e defenda seu núcleo com estratégia em tempo real.
|
||||
@@ -0,0 +1 @@
|
||||
Mindustry
|
||||
@@ -0,0 +1,183 @@
|
||||
"lang"
|
||||
{
|
||||
"Language" "brazilian"
|
||||
"Tokens"
|
||||
{
|
||||
"NEW_ACHIEVEMENT_20_1_NAME" "Sucateiro"
|
||||
"NEW_ACHIEVEMENT_20_1_DESC" "Destrua 1000 unidades inimigas."
|
||||
"NEW_ACHIEVEMENT_20_2_NAME" "Expurgação"
|
||||
"NEW_ACHIEVEMENT_20_2_DESC" "Destrua 100.000 unidades inimigas."
|
||||
"NEW_ACHIEVEMENT_20_5_NAME" "Transportes Sem Fim"
|
||||
"NEW_ACHIEVEMENT_20_5_DESC" "Lance 100.000 itens no total."
|
||||
"NEW_ACHIEVEMENT_20_6_NAME" "Conquistador"
|
||||
"NEW_ACHIEVEMENT_20_6_DESC" "Vença 10 partidas no modo de ataque."
|
||||
"NEW_ACHIEVEMENT_20_7_NAME" "Campeão"
|
||||
"NEW_ACHIEVEMENT_20_7_DESC" "Vença 10 partidas PvP em multijogador."
|
||||
"NEW_ACHIEVEMENT_20_8_NAME" "Blitz"
|
||||
"NEW_ACHIEVEMENT_20_8_DESC" "Destrua o núcleo inimigo na zona de ataque em 5 hordas ou menos."
|
||||
"NEW_ACHIEVEMENT_20_9_NAME" "Chuva de Núcleos"
|
||||
"NEW_ACHIEVEMENT_20_9_DESC" "Lance seu núcleo 30 vezes."
|
||||
"NEW_ACHIEVEMENT_20_10_NAME" "Persistente"
|
||||
"NEW_ACHIEVEMENT_20_10_DESC" "Sobreviva 100 hordas."
|
||||
"NEW_ACHIEVEMENT_20_12_NAME" "Pesquisador"
|
||||
"NEW_ACHIEVEMENT_20_12_DESC" "Pesquise tudo."
|
||||
"NEW_ACHIEVEMENT_20_14_NAME" "Sobrecarga"
|
||||
"NEW_ACHIEVEMENT_20_14_DESC" "Atinja um inimigo coberto de água com eletricidade."
|
||||
"NEW_ACHIEVEMENT_20_15_NAME" "Deflexão"
|
||||
"NEW_ACHIEVEMENT_20_15_DESC" "Destrua uma unidade com sua própria bala refletida."
|
||||
"NEW_ACHIEVEMENT_20_17_NAME" "Um Erro Grave"
|
||||
"NEW_ACHIEVEMENT_20_17_DESC" "Pesquise o Roteador."
|
||||
"NEW_ACHIEVEMENT_20_18_NAME" "Criação"
|
||||
"NEW_ACHIEVEMENT_20_18_DESC" "Coloque 10.000 blocos."
|
||||
"NEW_ACHIEVEMENT_20_19_NAME" "Arraso"
|
||||
"NEW_ACHIEVEMENT_20_19_DESC" "Destrua 1.000 blocos inimigos."
|
||||
"NEW_ACHIEVEMENT_20_20_NAME" "Um Desastre Espetacular"
|
||||
"NEW_ACHIEVEMENT_20_20_DESC" "Faça com que um Reator de Tório sobreaqueça e exploda."
|
||||
"NEW_ACHIEVEMENT_20_21_NAME" "Mapeador"
|
||||
"NEW_ACHIEVEMENT_20_21_DESC" "Crie um novo mapa 10 vezes."
|
||||
"NEW_ACHIEVEMENT_20_22_NAME" "Navegador"
|
||||
"NEW_ACHIEVEMENT_20_22_DESC" "Faça o download de um mapa da Oficina."
|
||||
"NEW_ACHIEVEMENT_20_23_NAME" "Criador"
|
||||
"NEW_ACHIEVEMENT_20_23_DESC" "Publique um mapa na Oficina."
|
||||
"NEW_ACHIEVEMENT_20_24_NAME" "Exterminador"
|
||||
"NEW_ACHIEVEMENT_20_24_DESC" "Derrote um chefe."
|
||||
"NEW_ACHIEVEMENT_20_29_NAME" "Material II"
|
||||
"NEW_ACHIEVEMENT_20_29_DESC" "Desbloqueie Tório."
|
||||
"NEW_ACHIEVEMENT_20_31_NAME" "Material I"
|
||||
"NEW_ACHIEVEMENT_20_31_DESC" "Desbloqueie Titânio."
|
||||
"NEW_ACHIEVEMENT_21_0_NAME" "Kamikaze"
|
||||
"NEW_ACHIEVEMENT_21_0_DESC" "Encha qualquer unidade, exceto núcleos, com materiais explosivos e morra."
|
||||
"NEW_ACHIEVEMENT_21_1_NAME" "Assim Começa"
|
||||
"NEW_ACHIEVEMENT_21_1_DESC" "Construa uma fábrica de unidades terrestres."
|
||||
"NEW_ACHIEVEMENT_21_2_NAME" "Ofensiva Direta"
|
||||
"NEW_ACHIEVEMENT_21_2_DESC" "Ordene que qualquer unidade ataque um alvo."
|
||||
"NEW_ACHIEVEMENT_21_3_NAME" "Enxame"
|
||||
"NEW_ACHIEVEMENT_21_3_DESC" "Tenha 100 unidades ativas ao mesmo tempo."
|
||||
"NEW_ACHIEVEMENT_21_4_NAME" "Rebanho"
|
||||
"NEW_ACHIEVEMENT_21_4_DESC" "Tenha 10 drones Poly ativos ao mesmo tempo."
|
||||
"NEW_ACHIEVEMENT_21_5_NAME" "Roboticista"
|
||||
"NEW_ACHIEVEMENT_21_5_DESC" "Construa todos os tipos de unidades."
|
||||
"NEW_ACHIEVEMENT_21_6_NAME" "Legiões"
|
||||
"NEW_ACHIEVEMENT_21_6_DESC" "Construa 1000 unidades no total."
|
||||
"NEW_ACHIEVEMENT_21_9_NAME" "Você Devia Ter Escutado"
|
||||
"NEW_ACHIEVEMENT_21_9_DESC" "Morra na zona de exclusão do ponto de queda."
|
||||
"NEW_ACHIEVEMENT_21_10_NAME" "Há Unidades Navais para Isso"
|
||||
"NEW_ACHIEVEMENT_21_10_DESC" "Afogue."
|
||||
"NEW_ACHIEVEMENT_21_11_NAME" "Colecionador"
|
||||
"NEW_ACHIEVEMENT_21_11_DESC" "Encha o núcleo até a capacidade máxima com todos os tipos de materiais."
|
||||
"NEW_ACHIEVEMENT_21_12_NAME" "Multidão"
|
||||
"NEW_ACHIEVEMENT_21_12_DESC" "Hospede um servidor com 10 jogadores nele."
|
||||
"NEW_ACHIEVEMENT_21_13_NAME" "Invulnerável"
|
||||
"NEW_ACHIEVEMENT_21_13_DESC" "Construa o Meltdown, Spectre e Foreshadow."
|
||||
"NEW_ACHIEVEMENT_21_14_NAME" "Decolagem"
|
||||
"NEW_ACHIEVEMENT_21_14_DESC" "Use a Plataforma de Lançamento."
|
||||
"NEW_ACHIEVEMENT_21_16_NAME" "Heresia"
|
||||
"NEW_ACHIEVEMENT_21_16_DESC" "Construa dois roteadores próximos um do outro."
|
||||
"NEW_ACHIEVEMENT_21_17_NAME" "Guardião Solitário"
|
||||
"NEW_ACHIEVEMENT_21_17_DESC" "Sobreviva 10 hordas em qualquer zona sem colocar qualquer bloco."
|
||||
"NEW_ACHIEVEMENT_21_18_NAME" "Incineração"
|
||||
"NEW_ACHIEVEMENT_21_18_DESC" "Use Piratita em qualquer torreta."
|
||||
"NEW_ACHIEVEMENT_21_19_NAME" "Eficiência"
|
||||
"NEW_ACHIEVEMENT_21_19_DESC" "Refrigere uma torreta com água ou criofluido."
|
||||
"NEW_ACHIEVEMENT_21_20_NAME" "Modo Clássico"
|
||||
"NEW_ACHIEVEMENT_21_20_DESC" "Habilite pixelização."
|
||||
"NEW_ACHIEVEMENT_21_21_NAME" "Estudioso"
|
||||
"NEW_ACHIEVEMENT_21_21_DESC" "Abra a Wiki através do jogo."
|
||||
"NEW_ACHIEVEMENT_21_22_NAME" "Vantagem Inicial"
|
||||
"NEW_ACHIEVEMENT_21_22_DESC" "Lance-se em uma zona com 10.000 ou mais itens configurados."
|
||||
"NEW_ACHIEVEMENT_21_23_NAME" "Ignição"
|
||||
"NEW_ACHIEVEMENT_21_23_DESC" "Ligue um Reator de Impacto."
|
||||
"NEW_ACHIEVEMENT_21_25_NAME" "A Espiral"
|
||||
"NEW_ACHIEVEMENT_21_25_DESC" "Gira, gira sem parar..."
|
||||
"NEW_ACHIEVEMENT_21_26_NAME" "Escalação"
|
||||
"NEW_ACHIEVEMENT_21_26_DESC" "Construa uma unidade de Tier 5."
|
||||
"NEW_ACHIEVEMENT_21_27_NAME" "Arquiteto"
|
||||
"NEW_ACHIEVEMENT_21_27_DESC" "Crie 20 esquemas."
|
||||
"NEW_ACHIEVEMENT_21_28_NAME" "Dominação Global"
|
||||
"NEW_ACHIEVEMENT_21_28_DESC" "Capture todos os setores em Serpulo."
|
||||
"NEW_ACHIEVEMENT_21_29_NAME" "Transporte Aéreo"
|
||||
"NEW_ACHIEVEMENT_21_29_DESC" "Pegue uma unidade T5 em uma unidade de carga Oct."
|
||||
"NEW_ACHIEVEMENT_21_30_NAME" "A Forma de Vida Suprema"
|
||||
"NEW_ACHIEVEMENT_21_30_DESC" "Junte-se a eles."
|
||||
"NEW_ACHIEVEMENT_21_31_NAME" "Produção I"
|
||||
"NEW_ACHIEVEMENT_21_31_DESC" "Atinga uma taxa de produção total de 5.000 itens por minuto na campanha."
|
||||
"NEW_ACHIEVEMENT_26_0_NAME" "Produção II"
|
||||
"NEW_ACHIEVEMENT_26_0_DESC" "Atinga uma taxa de produção total de 50.000 itens por minuto na campanha."
|
||||
"NEW_ACHIEVEMENT_26_1_NAME" "Vitória Assegurada"
|
||||
"NEW_ACHIEVEMENT_26_1_DESC" "Capture um setor enquanto joga em outro."
|
||||
"NEW_ACHIEVEMENT_26_2_NAME" "Pequeno Império"
|
||||
"NEW_ACHIEVEMENT_26_2_DESC" "Controle 10 setores de uma vez."
|
||||
"NEW_ACHIEVEMENT_26_3_NAME" "Designer"
|
||||
"NEW_ACHIEVEMENT_26_3_DESC" "Crie 500 esquemas."
|
||||
"NEW_ACHIEVEMENT_26_4_NAME" "Mestre da Distribuição"
|
||||
"NEW_ACHIEVEMENT_26_4_DESC" "Use todos blocos de transporte (de um planeta) em um único mapa."
|
||||
"NEW_ACHIEVEMENT_26_5_NAME" "Potência Máxima"
|
||||
"NEW_ACHIEVEMENT_26_5_DESC" "Construa um Projetor de Sobrecarga."
|
||||
"NEW_ACHIEVEMENT_26_6_NAME" "Remendo"
|
||||
"NEW_ACHIEVEMENT_26_6_DESC" "Construa um Projetor de Reparo."
|
||||
"NEW_ACHIEVEMENT_26_7_NAME" "Ineficiência"
|
||||
"NEW_ACHIEVEMENT_26_7_DESC" "Construa um Extrator de Água sobre a água, em vez de usar uma bomba."
|
||||
"NEW_ACHIEVEMENT_26_8_NAME" "Estoque"
|
||||
"NEW_ACHIEVEMENT_26_8_DESC" "Colete um total de 10 milhões de itens na campanha."
|
||||
"NEW_ACHIEVEMENT_26_9_NAME" "Contra Tudo e Contra Todos"
|
||||
"NEW_ACHIEVEMENT_26_9_DESC" "Desfira o golpe final em uma unidade Eclipse com uma torreta Duo."
|
||||
"NEW_ACHIEVEMENT_26_10_NAME" "Conclusão de Erekir"
|
||||
"NEW_ACHIEVEMENT_26_10_DESC" "Capture o setor final em Erekir."
|
||||
"NEW_ACHIEVEMENT_26_11_NAME" "Conclusão de Serpulo"
|
||||
"NEW_ACHIEVEMENT_26_11_DESC" "Capture o setor final em Serpulo."
|
||||
"NEW_ACHIEVEMENT_26_12_NAME" "Arsenal"
|
||||
"NEW_ACHIEVEMENT_26_12_DESC" "Lance-se com um esquema de núcleo personalizado em Serpulo."
|
||||
"NEW_ACHIEVEMENT_26_13_NAME" "Preparado ao Extremo"
|
||||
"NEW_ACHIEVEMENT_26_13_DESC" "Aprimore o núcleo em Marco Zero para um Centro do Núcleo."
|
||||
"NEW_ACHIEVEMENT_26_14_NAME" "Surto"
|
||||
"NEW_ACHIEVEMENT_26_14_DESC" "Faça neoplasma se espalhar para qualquer bloco que contenha água."
|
||||
"NEW_ACHIEVEMENT_26_15_NAME" "Quebradiço"
|
||||
"NEW_ACHIEVEMENT_26_15_DESC" "Cause dano explosivo adicional a uma unidade com o efeito de status Congelamento."
|
||||
"NEW_ACHIEVEMENT_26_16_NAME" "Maestria em Estruturas de Serpulo"
|
||||
"NEW_ACHIEVEMENT_26_16_DESC" "Construa todos blocos disponíveis em Serpulo."
|
||||
"NEW_ACHIEVEMENT_26_17_NAME" "Maestria em Estruturas de Erekir"
|
||||
"NEW_ACHIEVEMENT_26_17_DESC" "Construa todos blocos disponíveis em Erekir."
|
||||
"NEW_ACHIEVEMENT_26_18_NAME" "Defesas Rompidas"
|
||||
"NEW_ACHIEVEMENT_26_18_DESC" "Quebre o escudo de um Projetor de Campo de Força inimigo."
|
||||
"NEW_ACHIEVEMENT_26_19_NAME" "Onde Está o Manual?"
|
||||
"NEW_ACHIEVEMENT_26_19_DESC" "Pesquise o microprocessador."
|
||||
"NEW_ACHIEVEMENT_26_20_NAME" "Apagão"
|
||||
"NEW_ACHIEVEMENT_26_20_DESC" "Atinga -10.000 de energia por segundo em uma rede."
|
||||
"NEW_ACHIEVEMENT_26_21_NAME" "Pico de Energia"
|
||||
"NEW_ACHIEVEMENT_26_21_DESC" "Atinga 100.000 de energia por segundo."
|
||||
"NEW_ACHIEVEMENT_26_22_NAME" "Alta Capacidade"
|
||||
"NEW_ACHIEVEMENT_26_22_DESC" "Tenha 1 milhão de energia armazenada em baterias em uma rede."
|
||||
"NEW_ACHIEVEMENT_26_23_NAME" "Má Ideia"
|
||||
"NEW_ACHIEVEMENT_26_23_DESC" "Insira composto explosivo em um gerador a combustão."
|
||||
"NEW_ACHIEVEMENT_26_24_NAME" "Contaminação"
|
||||
"NEW_ACHIEVEMENT_26_24_DESC" "Faça um Reator de Neoplasia explodir devido ao acúmulo de neoplasma."
|
||||
"NEW_ACHIEVEMENT_26_25_NAME" "Modificado"
|
||||
"NEW_ACHIEVEMENT_26_25_DESC" "Instale um mod."
|
||||
"NEW_ACHIEVEMENT_26_26_NAME" "roteador"
|
||||
"NEW_ACHIEVEMENT_26_26_DESC" "roteador"
|
||||
"NEW_ACHIEVEMENT_26_27_NAME" "A Experiência Completa"
|
||||
"NEW_ACHIEVEMENT_26_27_DESC" "Junte-se a um servidor da comunidade."
|
||||
"NEW_ACHIEVEMENT_26_28_NAME" "Hackerman"
|
||||
"NEW_ACHIEVEMENT_26_28_DESC" "Abra o console de scripts."
|
||||
"NEW_ACHIEVEMENT_26_29_NAME" "Controle Direto"
|
||||
"NEW_ACHIEVEMENT_26_29_DESC" "Comande manualmente uma torre."
|
||||
"NEW_ACHIEVEMENT_26_30_NAME" "Em Campo Hostil"
|
||||
"NEW_ACHIEVEMENT_26_30_DESC" "Ponha unidades dentro da zona proibida de construção do núcleo inimigo."
|
||||
"NEW_ACHIEVEMENT_26_31_NAME" "Vingança"
|
||||
"NEW_ACHIEVEMENT_26_31_DESC" "Destrua uma torreta Scatter usando uma unidade Flare."
|
||||
"NEW_ACHIEVEMENT_29_0_NAME" "Em Voo"
|
||||
"NEW_ACHIEVEMENT_29_0_DESC" "Use a função de impulso de uma unidade terrestre."
|
||||
"NEW_ACHIEVEMENT_29_1_NAME" "Aerobarco"
|
||||
"NEW_ACHIEVEMENT_29_1_DESC" "Use uma unidade Elude para atravessar um líquido."
|
||||
"NEW_ACHIEVEMENT_29_2_NAME" "Lugar Certo, Hora Certa"
|
||||
"NEW_ACHIEVEMENT_29_2_DESC" "Aumente a eficiência de uma estrutura ao colocá-la em terrenos específicos."
|
||||
"NEW_ACHIEVEMENT_29_3_NAME" "Limpeza"
|
||||
"NEW_ACHIEVEMENT_29_3_DESC" "Quebre 100 rochedos."
|
||||
"NEW_ACHIEVEMENT_29_4_NAME" "A Faxina Global"
|
||||
"NEW_ACHIEVEMENT_29_4_DESC" "Quebre 10.000 rochedos."
|
||||
"NEW_ACHIEVEMENT_29_5_NAME" "Neutralizado"
|
||||
"NEW_ACHIEVEMENT_29_5_DESC" "Use uma Torre de Onda de Choque para absorver projéteis inimigos."
|
||||
"NEW_ACHIEVEMENT_29_6_NAME" "Infelizmente,"
|
||||
"NEW_ACHIEVEMENT_29_6_DESC" "Use o emoji :alphachan: no chat multijogador. Ou não, a escolha é sua."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
Mindustry é um jogo de construção de fábricas com elementos de defesa de torres e estratégia em tempo real. Crie cadeias de suprimento elaboradas para alimentar suas torres com munição, produza materiais para construir e fabricar unidades. Comande tropas para capturar bases inimigas e expanda sua produção. Defenda seu núcleo contra hordas de inimigos.
|
||||
|
||||
Jogue a campanha sozinho ou com seus amigos em modo cooperativo multijogador entre plataformas e desafie-os em partidas PvP por equipes.
|
||||
|
||||
[img]{STEAM_APP_IMAGE}/extras/factory.gif[/img]
|
||||
|
||||
[h2]Construção de Fábricas[/h2]
|
||||
|
||||
[list]
|
||||
[*] Crie cadeias de suprimento elaboradas com esteiras para alimentar suas torretas com munição e produzir materiais para construção
|
||||
[*] Use blocos de produção para criar uma grande variedade de materiais avançados
|
||||
[*] Distribua líquidos e enfrente desafios constantes, como surtos de fogo ou ataques de unidades aéreas inimigas
|
||||
[*] Tire o máximo da sua produção fornecendo refrigeramento e lubrificante opcionais
|
||||
[*] Produza uma ampla variedade de unidades para gerenciar automaticamente sua base ou atacar bases inimigas
|
||||
[/list]
|
||||
|
||||
[h2]Defesa de Torres[/h2]
|
||||
|
||||
[list]
|
||||
[*] Defenda suas estruturas contra hordas de inimigos
|
||||
[*] Posicione estrategicamente suas torretas para destruí-los antes que alcancem o núcleo
|
||||
[*] Abasteça suas torretas com munição, refrigeramento e energia
|
||||
[*] Reforce suas defesas com escudos energizados, projetores de regeneração e outras construções de suporte
|
||||
[/list]
|
||||
|
||||
[img]{STEAM_APP_IMAGE}/extras/rts3.png[/img]
|
||||
|
||||
[h2]Estratégia em Tempo Real[/h2]
|
||||
|
||||
[list]
|
||||
[*] Configure linhas de montagem para construir exércitos de unidades mecanizadas
|
||||
[*] Use suas unidades para enfrentar bases inimigas totalmente funcionais
|
||||
[*] Capture mais território para instalar novos núcleos e obter acesso a recursos adicionais para expansão
|
||||
[/list]
|
||||
|
||||
[h2]Campanha[/h2]
|
||||
|
||||
[list]
|
||||
[*] Jogue duas campanhas planetárias distintas
|
||||
[*] Conquiste os planetas Serpulo e Erekir avançando por 35 mapas feitos à mão e mais de 250 setores gerados proceduralmente
|
||||
[*] Capture território e instale fábricas para produzir recursos enquanto joga em outros setores
|
||||
[*] Defenda seus setores contra invasões periódicas
|
||||
[*] Coordene a distribuição de recursos entre setores por meio de plataformas de lançamento
|
||||
[*] Pesquise novos blocos para impulsionar o progresso
|
||||
[*] Convide seus amigos para completar missões juntos
|
||||
[*] Mais de 250 blocos tecnológicos para dominar
|
||||
[*] Mais de 50 tipos diferentes de drones, mechs e naves
|
||||
[*] Mais de 80 conquistas para completar
|
||||
[/list]
|
||||
|
||||
[h2]Comunidade e Modding[/h2]
|
||||
|
||||
[list]
|
||||
[*] Use a Oficina Steam para navegar por mapas e esquemas criados pela comunidade
|
||||
[*] Junte-se a servidores públicos para jogar com outros jogadores em diferentes plataformas
|
||||
[*] Jogue em modo cooperativo, PvP ou sandbox
|
||||
[*] Servidores da comunidade suportam plugins para mapas e modos de jogo personalizados
|
||||
[*] Crie seu servidor dedicado público ou convide amigos para sua própria sessão privada
|
||||
[*] Regras de jogo personalizáveis: altere custos de blocos, estatísticas de inimigos, itens iniciais, tempo das hordas e muito mais
|
||||
[*] O editor de mapas integrado permite criar seus próprios mapas para jogar e compartilhar com a comunidade
|
||||
[*] Explore mods feitos pela comunidade para adicionar ou remixar ainda mais conteúdo
|
||||
[/list]
|
||||
@@ -0,0 +1 @@
|
||||
Um jogo de construção e gerenciamento de fábricas com liberdade total, misturando estratégia em tempo real e defesa de torres.
|
||||
+1
-1
@@ -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=bf16a0099f
|
||||
archash=5a9e602f75
|
||||
|
||||
@@ -550,6 +550,7 @@ public class ServerControl implements ApplicationListener{
|
||||
try{
|
||||
world.loadMap(result, result.applyRules(lastMode));
|
||||
state.rules = result.applyRules(preset);
|
||||
Events.fire(new RulesLoadEvent(state.rules));
|
||||
logic.play();
|
||||
|
||||
info("Map loaded.");
|
||||
@@ -1379,6 +1380,7 @@ public class ServerControl implements ApplicationListener{
|
||||
run.run();
|
||||
|
||||
state.rules = state.map.applyRules(lastMode);
|
||||
Events.fire(new RulesLoadEvent(state.rules));
|
||||
logic.play();
|
||||
|
||||
reloader.end();
|
||||
|
||||
@@ -173,7 +173,6 @@ public class PatcherTests{
|
||||
|
||||
@Test
|
||||
void unitWeapons() throws Exception{
|
||||
UnitTypes.dagger.checkStats();
|
||||
UnitTypes.dagger.stats.add(Stat.charge, 999);
|
||||
assertNotNull(UnitTypes.dagger.stats.toMap().get(StatCat.general).get(Stat.charge));
|
||||
|
||||
@@ -195,7 +194,7 @@ public class PatcherTests{
|
||||
|
||||
Vars.logic.reset();
|
||||
|
||||
UnitTypes.dagger.checkStats();
|
||||
UnitTypes.dagger.computeStats();
|
||||
assertNull(UnitTypes.dagger.stats.toMap().get(StatCat.general).get(Stat.charge));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user