Merge branch 'master' into do-you-hear-the-voices-too
This commit is contained in:
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -72,3 +72,5 @@ body:
|
|||||||
required: true
|
required: true
|
||||||
- label: I have searched the closed and open issues to make sure that this problem has not already been reported.
|
- label: I have searched the closed and open issues to make sure that this problem has not already been reported.
|
||||||
required: true
|
required: true
|
||||||
|
- label: "I am not using Foo's Client, and have made sure the bug is not caused by mods I have installed."
|
||||||
|
required: true
|
||||||
|
|||||||
3
.github/workflows/push.yml
vendored
3
.github/workflows/push.yml
vendored
@@ -34,6 +34,7 @@ jobs:
|
|||||||
|
|
||||||
if [ -n "$(git status --porcelain)" ]; then
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
git config --global user.name "Github Actions"
|
git config --global user.name "Github Actions"
|
||||||
|
git config --global user.email "actions@github.com"
|
||||||
git add core/assets/bundles/*
|
git add core/assets/bundles/*
|
||||||
git commit -m "Automatic bundle update"
|
git commit -m "Automatic bundle update"
|
||||||
git push
|
git push
|
||||||
@@ -42,7 +43,7 @@ jobs:
|
|||||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||||
run: |
|
run: |
|
||||||
git config --global user.name "Github Actions"
|
git config --global user.name "Github Actions"
|
||||||
git config --global user.email "cli@github.com"
|
git config --global user.email "actions@github.com"
|
||||||
cd ../
|
cd ../
|
||||||
cp -r ./Mindustry ./MindustryJitpack
|
cp -r ./Mindustry ./MindustryJitpack
|
||||||
cd MindustryJitpack
|
cd MindustryJitpack
|
||||||
|
|||||||
@@ -184,6 +184,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}, new AndroidApplicationConfiguration(){{
|
}, new AndroidApplicationConfiguration(){{
|
||||||
useImmersiveMode = true;
|
useImmersiveMode = true;
|
||||||
hideStatusBar = true;
|
hideStatusBar = true;
|
||||||
|
useGL30 = true;
|
||||||
}});
|
}});
|
||||||
checkFiles(getIntent());
|
checkFiles(getIntent());
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
ichtype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectIntMap.class, String.class),
|
ichtype.addField(FieldSpec.builder(ParameterizedTypeName.get(ObjectIntMap.class, String.class),
|
||||||
"codes", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("new ObjectIntMap<>()").build());
|
"codes", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("new ObjectIntMap<>()").build());
|
||||||
|
|
||||||
|
ichtype.addField(FieldSpec.builder(ParameterizedTypeName.get(IntMap.class, String.class),
|
||||||
|
"codeToName", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).initializer("new IntMap<>()").build());
|
||||||
|
|
||||||
ObjectSet<String> used = new ObjectSet<>();
|
ObjectSet<String> used = new ObjectSet<>();
|
||||||
|
|
||||||
for(Jval val : icons.get("glyphs").asArray()){
|
for(Jval val : icons.get("glyphs").asArray()){
|
||||||
@@ -67,7 +70,9 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
int code = val.getInt("code", 0);
|
int code = val.getInt("code", 0);
|
||||||
iconcAll.append((char)code);
|
iconcAll.append((char)code);
|
||||||
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).addJavadoc(String.format("\\u%04x", code)).initializer("'" + ((char)code) + "'").build());
|
ichtype.addField(FieldSpec.builder(char.class, name, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL).addJavadoc(String.format("\\u%04x", code)).initializer("'" + ((char)code) + "'").build());
|
||||||
|
|
||||||
ichinit.addStatement("codes.put($S, $L)", name, code);
|
ichinit.addStatement("codes.put($S, $L)", name, code);
|
||||||
|
ichinit.addStatement("codeToName.put($L, $S)", code, name);
|
||||||
|
|
||||||
ictype.addField(TextureRegionDrawable.class, name + "Small", Modifier.PUBLIC, Modifier.STATIC);
|
ictype.addField(TextureRegionDrawable.class, name + "Small", Modifier.PUBLIC, Modifier.STATIC);
|
||||||
icload.addStatement(name + "Small = mindustry.ui.Fonts.getGlyph(mindustry.ui.Fonts.def, (char)" + code + ")");
|
icload.addStatement(name + "Small = mindustry.ui.Fonts.getGlyph(mindustry.ui.Fonts.def, (char)" + code + ")");
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class StructProcess extends BaseProcessor{
|
|||||||
|
|
||||||
//bools: single bit, needs special case to clear things
|
//bools: single bit, needs special case to clear things
|
||||||
setter.beginControlFlow("if(value)");
|
setter.beginControlFlow("if(value)");
|
||||||
setter.addStatement("return ($T)(($L & ~(1L << $LL)) | (1L << $LL))", structType, structParam, offset, offset);
|
setter.addStatement("return ($T)($L | (1L << $LL))", structType, structParam, offset);
|
||||||
setter.nextControlFlow("else");
|
setter.nextControlFlow("else");
|
||||||
setter.addStatement("return ($T)(($L & ~(1L << $LL)))", structType, structParam, offset);
|
setter.addStatement("return ($T)(($L & ~(1L << $LL)))", structType, structParam, offset);
|
||||||
setter.endControlFlow();
|
setter.endControlFlow();
|
||||||
|
|||||||
@@ -445,6 +445,11 @@ editor.rules = Rules
|
|||||||
editor.generation = Generation
|
editor.generation = Generation
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edit In-Game
|
editor.ingame = Edit In-Game
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publish On Workshop
|
editor.publish.workshop = Publish On Workshop
|
||||||
@@ -501,7 +506,9 @@ editor.default = [lightgray]<Default>
|
|||||||
details = Details...
|
details = Details...
|
||||||
edit = Edit
|
edit = Edit
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
|
|
||||||
editor.name = Name:
|
editor.name = Name:
|
||||||
editor.spawn = Spawn Unit
|
editor.spawn = Spawn Unit
|
||||||
editor.removeunit = Remove Unit
|
editor.removeunit = Remove Unit
|
||||||
@@ -590,6 +597,7 @@ filter.clear = Clear
|
|||||||
filter.option.ignore = Ignore
|
filter.option.ignore = Ignore
|
||||||
filter.scatter = Scatter
|
filter.scatter = Scatter
|
||||||
filter.terrain = Terrain
|
filter.terrain = Terrain
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Scale
|
filter.option.scale = Scale
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
@@ -613,6 +621,8 @@ filter.option.floor2 = Secondary Floor
|
|||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Secondary Threshold
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Percentile
|
filter.option.percentile = Percentile
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
|
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
@@ -989,6 +999,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1090,7 +1101,7 @@ bullet.pierce = [stat]{0}x[lightgray] pierce
|
|||||||
bullet.infinitepierce = [stat]pierce
|
bullet.infinitepierce = [stat]pierce
|
||||||
bullet.healpercent = [stat]{0}%[lightgray] repair
|
bullet.healpercent = [stat]{0}%[lightgray] repair
|
||||||
bullet.healamount = [stat]{0}[lightgray] direct repair
|
bullet.healamount = [stat]{0}[lightgray] direct repair
|
||||||
bullet.multiplier = [stat]{0}x[lightgray] ammo multiplier
|
bullet.multiplier = [stat]{0}[lightgray] ammo/item
|
||||||
bullet.reload = [stat]{0}%[lightgray] fire rate
|
bullet.reload = [stat]{0}%[lightgray] fire rate
|
||||||
bullet.range = [stat]{0}[lightgray] tiles range
|
bullet.range = [stat]{0}[lightgray] tiles range
|
||||||
|
|
||||||
@@ -1115,6 +1126,7 @@ unit.items = items
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = General
|
category.general = General
|
||||||
|
|||||||
@@ -434,6 +434,11 @@ editor.rules = Правілы:
|
|||||||
editor.generation = Генерацыя:
|
editor.generation = Генерацыя:
|
||||||
editor.objectives = Мэты
|
editor.objectives = Мэты
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Рэдагаваць ў гульні
|
editor.ingame = Рэдагаваць ў гульні
|
||||||
editor.playtest = Тэставаць
|
editor.playtest = Тэставаць
|
||||||
editor.publish.workshop = Апублікаваць у майстэрні
|
editor.publish.workshop = Апублікаваць у майстэрні
|
||||||
@@ -489,6 +494,7 @@ editor.default = [lightgray]<Па змаўчанні>
|
|||||||
details = Падрабязнасці...
|
details = Падрабязнасці...
|
||||||
edit = Рэдагаваць...
|
edit = Рэдагаваць...
|
||||||
variables = Пераменныя
|
variables = Пераменныя
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Назва:
|
editor.name = Назва:
|
||||||
editor.spawn = Стварыць баявую адзінку
|
editor.spawn = Стварыць баявую адзінку
|
||||||
@@ -576,6 +582,7 @@ filter.clear = Ачысціць
|
|||||||
filter.option.ignore = Ігнараваць
|
filter.option.ignore = Ігнараваць
|
||||||
filter.scatter = Сеяцель
|
filter.scatter = Сеяцель
|
||||||
filter.terrain = Ландшафт
|
filter.terrain = Ландшафт
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Маштаб фільтра
|
filter.option.scale = Маштаб фільтра
|
||||||
filter.option.chance = Шанец
|
filter.option.chance = Шанец
|
||||||
filter.option.mag = Сіла прымянення
|
filter.option.mag = Сіла прымянення
|
||||||
@@ -598,6 +605,8 @@ filter.option.floor2 = Другая паверхню
|
|||||||
filter.option.threshold2 = Другасны гранічны парог
|
filter.option.threshold2 = Другасны гранічны парог
|
||||||
filter.option.radius = Радыус
|
filter.option.radius = Радыус
|
||||||
filter.option.percentile = Процентль
|
filter.option.percentile = Процентль
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -962,6 +971,7 @@ stat.abilities = Здольнасйі
|
|||||||
stat.canboost = Можа Узлятаць
|
stat.canboost = Можа Узлятаць
|
||||||
stat.flying = Паветраны
|
stat.flying = Паветраны
|
||||||
stat.ammouse = Выкарыстанне Боезапасу
|
stat.ammouse = Выкарыстанне Боезапасу
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Множнік Пашкоджанняў
|
stat.damagemultiplier = Множнік Пашкоджанняў
|
||||||
stat.healthmultiplier = Множнік Здароўя
|
stat.healthmultiplier = Множнік Здароўя
|
||||||
stat.speedmultiplier = Множнік Хуткасці
|
stat.speedmultiplier = Множнік Хуткасці
|
||||||
@@ -1087,6 +1097,7 @@ unit.items = прадметаў
|
|||||||
unit.thousands = Тыс.
|
unit.thousands = Тыс.
|
||||||
unit.millions = М.
|
unit.millions = М.
|
||||||
unit.billions = Б.
|
unit.billions = Б.
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /стрэл
|
unit.pershot = /стрэл
|
||||||
category.purpose = Апісанне
|
category.purpose = Апісанне
|
||||||
category.general = Асноўныя
|
category.general = Асноўныя
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Правила:
|
|||||||
editor.generation = Генериране:
|
editor.generation = Генериране:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Редактирай в игра
|
editor.ingame = Редактирай в игра
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Публикувай в Работилницата
|
editor.publish.workshop = Публикувай в Работилницата
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Стандартно>
|
|||||||
details = Детайли...
|
details = Детайли...
|
||||||
edit = Редактирай...
|
edit = Редактирай...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Име:
|
editor.name = Име:
|
||||||
editor.spawn = Създай Единица
|
editor.spawn = Създай Единица
|
||||||
@@ -582,6 +588,7 @@ filter.clear = Изчисти
|
|||||||
filter.option.ignore = Игнорирай
|
filter.option.ignore = Игнорирай
|
||||||
filter.scatter = Разпръскване
|
filter.scatter = Разпръскване
|
||||||
filter.terrain = Терен
|
filter.terrain = Терен
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Мащаб
|
filter.option.scale = Мащаб
|
||||||
filter.option.chance = Вероятност
|
filter.option.chance = Вероятност
|
||||||
filter.option.mag = Магнитут
|
filter.option.mag = Магнитут
|
||||||
@@ -604,6 +611,8 @@ filter.option.floor2 = Втори под
|
|||||||
filter.option.threshold2 = Втори праг
|
filter.option.threshold2 = Втори праг
|
||||||
filter.option.radius = Радиус
|
filter.option.radius = Радиус
|
||||||
filter.option.percentile = Перцентил
|
filter.option.percentile = Перцентил
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -972,6 +981,7 @@ stat.abilities = Способности
|
|||||||
stat.canboost = Може да ускорява
|
stat.canboost = Може да ускорява
|
||||||
stat.flying = Летящ
|
stat.flying = Летящ
|
||||||
stat.ammouse = Употребе на Боеприпаси
|
stat.ammouse = Употребе на Боеприпаси
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Множител на Щети
|
stat.damagemultiplier = Множител на Щети
|
||||||
stat.healthmultiplier = Множител на Точки живот
|
stat.healthmultiplier = Множител на Точки живот
|
||||||
stat.speedmultiplier = Множител на Скорост
|
stat.speedmultiplier = Множител на Скорост
|
||||||
@@ -1098,6 +1108,7 @@ unit.items = предмети
|
|||||||
unit.thousands = хил
|
unit.thousands = хил
|
||||||
unit.millions = млн
|
unit.millions = млн
|
||||||
unit.billions = млр
|
unit.billions = млр
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /изстрел
|
unit.pershot = /изстрел
|
||||||
category.purpose = Предназначение
|
category.purpose = Предназначение
|
||||||
category.general = Обща информация
|
category.general = Обща информация
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Regles
|
|||||||
editor.generation = Generació
|
editor.generation = Generació
|
||||||
editor.objectives = Objectius
|
editor.objectives = Objectius
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edita des de la partida
|
editor.ingame = Edita des de la partida
|
||||||
editor.playtest = Prova el mapa
|
editor.playtest = Prova el mapa
|
||||||
editor.publish.workshop = Publica al Workshop
|
editor.publish.workshop = Publica al Workshop
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Per defecte>
|
|||||||
details = Detalls
|
details = Detalls
|
||||||
edit = Edita
|
edit = Edita
|
||||||
variables = Variables
|
variables = Variables
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nom:
|
editor.name = Nom:
|
||||||
editor.spawn = Genera una unitat
|
editor.spawn = Genera una unitat
|
||||||
@@ -584,6 +590,7 @@ filter.clear = Neteja
|
|||||||
filter.option.ignore = Ignora
|
filter.option.ignore = Ignora
|
||||||
filter.scatter = Dispersió
|
filter.scatter = Dispersió
|
||||||
filter.terrain = Terreny
|
filter.terrain = Terreny
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Escala
|
filter.option.scale = Escala
|
||||||
filter.option.chance = Probabilitat
|
filter.option.chance = Probabilitat
|
||||||
@@ -607,6 +614,8 @@ filter.option.floor2 = Terra secundari
|
|||||||
filter.option.threshold2 = Llindar secundari
|
filter.option.threshold2 = Llindar secundari
|
||||||
filter.option.radius = Radi
|
filter.option.radius = Radi
|
||||||
filter.option.percentile = Percentil
|
filter.option.percentile = Percentil
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -976,6 +985,7 @@ stat.abilities = Habilitats
|
|||||||
stat.canboost = Pot sobrevolar.
|
stat.canboost = Pot sobrevolar.
|
||||||
stat.flying = Està volant.
|
stat.flying = Està volant.
|
||||||
stat.ammouse = Ús de munició
|
stat.ammouse = Ús de munició
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Multiplicador de dany
|
stat.damagemultiplier = Multiplicador de dany
|
||||||
stat.healthmultiplier = Multiplicador de salut
|
stat.healthmultiplier = Multiplicador de salut
|
||||||
stat.speedmultiplier = Multiplicador de velocitat
|
stat.speedmultiplier = Multiplicador de velocitat
|
||||||
@@ -1101,6 +1111,7 @@ unit.items = elements
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
unit.billions = kM
|
unit.billions = kM
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /dispar
|
unit.pershot = /dispar
|
||||||
category.purpose = Funció
|
category.purpose = Funció
|
||||||
category.general = General
|
category.general = General
|
||||||
|
|||||||
@@ -440,6 +440,11 @@ editor.rules = Pravidla:
|
|||||||
editor.generation = Generace:
|
editor.generation = Generace:
|
||||||
editor.objectives = Úkoly:
|
editor.objectives = Úkoly:
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Upravit ve hře
|
editor.ingame = Upravit ve hře
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publikovat do Workshopu na Steamu
|
editor.publish.workshop = Publikovat do Workshopu na Steamu
|
||||||
@@ -496,6 +501,7 @@ editor.default = [lightgray]<Výchozí>[]
|
|||||||
details = Podrobnosti...
|
details = Podrobnosti...
|
||||||
edit = Upravit...
|
edit = Upravit...
|
||||||
variables = Hodnoty
|
variables = Hodnoty
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Jméno:
|
editor.name = Jméno:
|
||||||
editor.spawn = Zrodit jednotku
|
editor.spawn = Zrodit jednotku
|
||||||
@@ -583,6 +589,7 @@ filter.clear = Vyčistit
|
|||||||
filter.option.ignore = Ignorovat
|
filter.option.ignore = Ignorovat
|
||||||
filter.scatter = Rozptýlení
|
filter.scatter = Rozptýlení
|
||||||
filter.terrain = Terén
|
filter.terrain = Terén
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Měřítko
|
filter.option.scale = Měřítko
|
||||||
filter.option.chance = Náhoda
|
filter.option.chance = Náhoda
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = Druhotný povrch
|
|||||||
filter.option.threshold2 = Druhotný práh
|
filter.option.threshold2 = Druhotný práh
|
||||||
filter.option.radius = Poloměr
|
filter.option.radius = Poloměr
|
||||||
filter.option.percentile = Percentil
|
filter.option.percentile = Percentil
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -974,6 +983,7 @@ stat.abilities = Schopnosti
|
|||||||
stat.canboost = Umí posilovat
|
stat.canboost = Umí posilovat
|
||||||
stat.flying = Létající
|
stat.flying = Létající
|
||||||
stat.ammouse = Spotřeba Munice
|
stat.ammouse = Spotřeba Munice
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Násobič Poškození
|
stat.damagemultiplier = Násobič Poškození
|
||||||
stat.healthmultiplier = Násobič Životů
|
stat.healthmultiplier = Násobič Životů
|
||||||
stat.speedmultiplier = Násobič Rychlostí
|
stat.speedmultiplier = Násobič Rychlostí
|
||||||
@@ -1100,6 +1110,7 @@ unit.items = předměty
|
|||||||
unit.thousands = tis
|
unit.thousands = tis
|
||||||
unit.millions = mio
|
unit.millions = mio
|
||||||
unit.billions = mld
|
unit.billions = mld
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /střela
|
unit.pershot = /střela
|
||||||
category.purpose = Účel
|
category.purpose = Účel
|
||||||
category.general = Všeobecné
|
category.general = Všeobecné
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Regler:
|
|||||||
editor.generation = Generering:
|
editor.generation = Generering:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Ændr i spil
|
editor.ingame = Ændr i spil
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publicer på Workshop
|
editor.publish.workshop = Publicer på Workshop
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<standard>
|
|||||||
details = Detaljer...
|
details = Detaljer...
|
||||||
edit = Rediger...
|
edit = Rediger...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Navn:
|
editor.name = Navn:
|
||||||
editor.spawn = Påkald enhed
|
editor.spawn = Påkald enhed
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Ryd
|
|||||||
filter.option.ignore = Ignorer
|
filter.option.ignore = Ignorer
|
||||||
filter.scatter = Spreder
|
filter.scatter = Spreder
|
||||||
filter.terrain = Terræn
|
filter.terrain = Terræn
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Skaler
|
filter.option.scale = Skaler
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
filter.option.mag = Størrelse
|
filter.option.mag = Størrelse
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Sekundært gulv
|
|||||||
filter.option.threshold2 = Sekundær terskel
|
filter.option.threshold2 = Sekundær terskel
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Percentil
|
filter.option.percentile = Percentil
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Evner
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = genstande
|
|||||||
unit.thousands = t
|
unit.thousands = t
|
||||||
unit.millions = mio
|
unit.millions = mio
|
||||||
unit.billions = mia
|
unit.billions = mia
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = Generel
|
category.general = Generel
|
||||||
|
|||||||
@@ -442,6 +442,11 @@ editor.rules = Regeln
|
|||||||
editor.generation = Generator
|
editor.generation = Generator
|
||||||
editor.objectives = Ziele
|
editor.objectives = Ziele
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Im Spiel bearbeiten
|
editor.ingame = Im Spiel bearbeiten
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Im Workshop veröffentlichen
|
editor.publish.workshop = Im Workshop veröffentlichen
|
||||||
@@ -498,6 +503,7 @@ editor.default = [lightgray]<Standard>
|
|||||||
details = Details
|
details = Details
|
||||||
edit = Bearbeiten
|
edit = Bearbeiten
|
||||||
variables = Variablen
|
variables = Variablen
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Name:
|
editor.name = Name:
|
||||||
editor.spawn = Spawnbereich
|
editor.spawn = Spawnbereich
|
||||||
@@ -587,6 +593,7 @@ filter.clear = Löschen
|
|||||||
filter.option.ignore = Ignorieren
|
filter.option.ignore = Ignorieren
|
||||||
filter.scatter = Streuen
|
filter.scatter = Streuen
|
||||||
filter.terrain = Landschaft
|
filter.terrain = Landschaft
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Skalierung
|
filter.option.scale = Skalierung
|
||||||
filter.option.chance = Wahrscheinlichkeit
|
filter.option.chance = Wahrscheinlichkeit
|
||||||
@@ -610,6 +617,8 @@ filter.option.floor2 = Sekundärer Boden
|
|||||||
filter.option.threshold2 = Sekundärer Grenzwert
|
filter.option.threshold2 = Sekundärer Grenzwert
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Perzentil
|
filter.option.percentile = Perzentil
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -985,6 +994,7 @@ stat.abilities = Fähigkeiten
|
|||||||
stat.canboost = Kann boosten
|
stat.canboost = Kann boosten
|
||||||
stat.flying = Flug
|
stat.flying = Flug
|
||||||
stat.ammouse = Muntionsverbrauch
|
stat.ammouse = Muntionsverbrauch
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Schaden-Multiplikator
|
stat.damagemultiplier = Schaden-Multiplikator
|
||||||
stat.healthmultiplier = Lebenspunkte-Multiplikator
|
stat.healthmultiplier = Lebenspunkte-Multiplikator
|
||||||
stat.speedmultiplier = Geschwindigkeit-Multiplikator
|
stat.speedmultiplier = Geschwindigkeit-Multiplikator
|
||||||
@@ -1111,6 +1121,7 @@ unit.items = Materialeinheiten
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = Mio
|
unit.millions = Mio
|
||||||
unit.billions = Mrd
|
unit.billions = Mrd
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /Schuss
|
unit.pershot = /Schuss
|
||||||
category.purpose = Beschreibung
|
category.purpose = Beschreibung
|
||||||
category.general = Allgemeines
|
category.general = Allgemeines
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Normas:
|
|||||||
editor.generation = Generación:
|
editor.generation = Generación:
|
||||||
editor.objectives = Objetivos
|
editor.objectives = Objetivos
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Editar desde la nave
|
editor.ingame = Editar desde la nave
|
||||||
editor.playtest = Probar mapa
|
editor.playtest = Probar mapa
|
||||||
editor.publish.workshop = Publicar en Steam Workshop
|
editor.publish.workshop = Publicar en Steam Workshop
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Por defecto>
|
|||||||
details = Detalles...
|
details = Detalles...
|
||||||
edit = Editar...
|
edit = Editar...
|
||||||
variables = Variables
|
variables = Variables
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nombre:
|
editor.name = Nombre:
|
||||||
editor.spawn = Generar unidad
|
editor.spawn = Generar unidad
|
||||||
@@ -584,6 +590,7 @@ filter.clear = Despejar
|
|||||||
filter.option.ignore = Ignorar
|
filter.option.ignore = Ignorar
|
||||||
filter.scatter = Dispersión
|
filter.scatter = Dispersión
|
||||||
filter.terrain = Terreno
|
filter.terrain = Terreno
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Escala
|
filter.option.scale = Escala
|
||||||
filter.option.chance = Probabilidad
|
filter.option.chance = Probabilidad
|
||||||
@@ -607,6 +614,8 @@ filter.option.floor2 = Terreno secundario
|
|||||||
filter.option.threshold2 = Umbral secundario
|
filter.option.threshold2 = Umbral secundario
|
||||||
filter.option.radius = Radio
|
filter.option.radius = Radio
|
||||||
filter.option.percentile = Percentil
|
filter.option.percentile = Percentil
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -982,6 +991,7 @@ stat.abilities = Habilidades
|
|||||||
stat.canboost = Puede volar
|
stat.canboost = Puede volar
|
||||||
stat.flying = Aéreo
|
stat.flying = Aéreo
|
||||||
stat.ammouse = Uso de munición
|
stat.ammouse = Uso de munición
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Multiplicador de daño
|
stat.damagemultiplier = Multiplicador de daño
|
||||||
stat.healthmultiplier = Multiplicador de vida
|
stat.healthmultiplier = Multiplicador de vida
|
||||||
stat.speedmultiplier = Multiplicador de velocidad
|
stat.speedmultiplier = Multiplicador de velocidad
|
||||||
@@ -1107,6 +1117,7 @@ unit.items = objetos
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
unit.billions = B
|
unit.billions = B
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /disparo
|
unit.pershot = /disparo
|
||||||
category.purpose = Objetivo
|
category.purpose = Objetivo
|
||||||
category.general = General
|
category.general = General
|
||||||
@@ -2030,8 +2041,8 @@ block.separator.description = Separa el magma en sus componentes minerales.
|
|||||||
block.spore-press.description = Comprime vainas de esporas en petróleo.
|
block.spore-press.description = Comprime vainas de esporas en petróleo.
|
||||||
block.pulverizer.description = Prensa chatarra hasta obtener arena.
|
block.pulverizer.description = Prensa chatarra hasta obtener arena.
|
||||||
block.coal-centrifuge.description = Solidifica petróleo en trozos de carbón.
|
block.coal-centrifuge.description = Solidifica petróleo en trozos de carbón.
|
||||||
block.incinerator.description = Vaporiza cualquier líquido o material que recive.
|
block.incinerator.description = Vaporiza cualquier líquido o material que recibe.
|
||||||
block.power-void.description = Elimina toda la energía que recive. Solo disponible en el modo Libre.
|
block.power-void.description = Elimina toda la energía que recibe. Solo disponible en el modo Libre.
|
||||||
block.power-source.description = Genera energía infinita. Solo disponible en el modo Libre.
|
block.power-source.description = Genera energía infinita. Solo disponible en el modo Libre.
|
||||||
block.item-source.description = Genera objetos de forma infinita. Solo disponible en el modo Libre.
|
block.item-source.description = Genera objetos de forma infinita. Solo disponible en el modo Libre.
|
||||||
block.item-void.description = Destruye los objetos que entran en él. Solo disponible en el modo Libre.
|
block.item-void.description = Destruye los objetos que entran en él. Solo disponible en el modo Libre.
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Reeglid:
|
|||||||
editor.generation = Genereerimine:
|
editor.generation = Genereerimine:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Redigeeri mängus
|
editor.ingame = Redigeeri mängus
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Avalda Workshop'is
|
editor.publish.workshop = Avalda Workshop'is
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Vaikimisi>
|
|||||||
details = Üksikasjad...
|
details = Üksikasjad...
|
||||||
edit = Muuda...
|
edit = Muuda...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nimi:
|
editor.name = Nimi:
|
||||||
editor.spawn = Tekita väeüksus
|
editor.spawn = Tekita väeüksus
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Kustutamine
|
|||||||
filter.option.ignore = Eira
|
filter.option.ignore = Eira
|
||||||
filter.scatter = Puistamine
|
filter.scatter = Puistamine
|
||||||
filter.terrain = Maastik
|
filter.terrain = Maastik
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Ulatus
|
filter.option.scale = Ulatus
|
||||||
filter.option.chance = Tõenäosus
|
filter.option.chance = Tõenäosus
|
||||||
filter.option.mag = Suurusjärk
|
filter.option.mag = Suurusjärk
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Teine põrand
|
|||||||
filter.option.threshold2 = Teine lävi
|
filter.option.threshold2 = Teine lävi
|
||||||
filter.option.radius = Raadius
|
filter.option.radius = Raadius
|
||||||
filter.option.percentile = Protsentiil
|
filter.option.percentile = Protsentiil
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = ressursiühikut
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = Üldinfo
|
category.general = Üldinfo
|
||||||
|
|||||||
@@ -437,6 +437,11 @@ editor.rules = Arauak:
|
|||||||
editor.generation = Sorrarazi:
|
editor.generation = Sorrarazi:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Editatu jolasean
|
editor.ingame = Editatu jolasean
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Argitaratu lantegian
|
editor.publish.workshop = Argitaratu lantegian
|
||||||
@@ -492,6 +497,7 @@ editor.default = [lightgray]<Lehenetsia>
|
|||||||
details = Xehetasunak...
|
details = Xehetasunak...
|
||||||
edit = Editatu...
|
edit = Editatu...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Izena:
|
editor.name = Izena:
|
||||||
editor.spawn = Sortu unitatea
|
editor.spawn = Sortu unitatea
|
||||||
@@ -579,6 +585,7 @@ filter.clear = Garbitu
|
|||||||
filter.option.ignore = Ezikusi
|
filter.option.ignore = Ezikusi
|
||||||
filter.scatter = Sakabanaketa
|
filter.scatter = Sakabanaketa
|
||||||
filter.terrain = Lursaila
|
filter.terrain = Lursaila
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Eskala
|
filter.option.scale = Eskala
|
||||||
filter.option.chance = Zoria
|
filter.option.chance = Zoria
|
||||||
filter.option.mag = Magnitudea
|
filter.option.mag = Magnitudea
|
||||||
@@ -601,6 +608,8 @@ filter.option.floor2 = Bigarren zorua
|
|||||||
filter.option.threshold2 = Bigarren atalasea
|
filter.option.threshold2 = Bigarren atalasea
|
||||||
filter.option.radius = Erradioa
|
filter.option.radius = Erradioa
|
||||||
filter.option.percentile = Pertzentila
|
filter.option.percentile = Pertzentila
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -965,6 +974,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1091,6 +1101,7 @@ unit.items = elementu
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = Orokorra
|
category.general = Orokorra
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Säännöt:
|
|||||||
editor.generation = Generaatio:
|
editor.generation = Generaatio:
|
||||||
editor.objectives = Tehtävät
|
editor.objectives = Tehtävät
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Muokka pelin sisällä
|
editor.ingame = Muokka pelin sisällä
|
||||||
editor.playtest = Testaa pelin sisällä
|
editor.playtest = Testaa pelin sisällä
|
||||||
editor.publish.workshop = Julkaise Workshoppiin
|
editor.publish.workshop = Julkaise Workshoppiin
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Oletus>
|
|||||||
details = Yksityiskohdat...
|
details = Yksityiskohdat...
|
||||||
edit = Muokkaa...
|
edit = Muokkaa...
|
||||||
variables = Muuttujat
|
variables = Muuttujat
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nimi:
|
editor.name = Nimi:
|
||||||
editor.spawn = Luo yksikkö
|
editor.spawn = Luo yksikkö
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Selkeä
|
|||||||
filter.option.ignore = Ohitta
|
filter.option.ignore = Ohitta
|
||||||
filter.scatter = Hajauta
|
filter.scatter = Hajauta
|
||||||
filter.terrain = Maasto
|
filter.terrain = Maasto
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Mittakaava
|
filter.option.scale = Mittakaava
|
||||||
filter.option.chance = Mahdollisuus
|
filter.option.chance = Mahdollisuus
|
||||||
filter.option.mag = Suuruus
|
filter.option.mag = Suuruus
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Toinen lattia
|
|||||||
filter.option.threshold2 = Toissijainen raja-arvo
|
filter.option.threshold2 = Toissijainen raja-arvo
|
||||||
filter.option.radius = Säde
|
filter.option.radius = Säde
|
||||||
filter.option.percentile = Prosentti
|
filter.option.percentile = Prosentti
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -962,6 +971,7 @@ stat.abilities = Erikoisvoimat
|
|||||||
stat.canboost = Voi tehostaa
|
stat.canboost = Voi tehostaa
|
||||||
stat.flying = Lentävä
|
stat.flying = Lentävä
|
||||||
stat.ammouse = Ammusten käyttö
|
stat.ammouse = Ammusten käyttö
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Vahinkokerroin
|
stat.damagemultiplier = Vahinkokerroin
|
||||||
stat.healthmultiplier = Elmäpistekerroin
|
stat.healthmultiplier = Elmäpistekerroin
|
||||||
stat.speedmultiplier = Nopeuskerroin
|
stat.speedmultiplier = Nopeuskerroin
|
||||||
@@ -1088,6 +1098,7 @@ unit.items = esinettä
|
|||||||
unit.thousands = t
|
unit.thousands = t
|
||||||
unit.millions = milj
|
unit.millions = milj
|
||||||
unit.billions = mrd
|
unit.billions = mrd
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /laukaisu
|
unit.pershot = /laukaisu
|
||||||
category.purpose = Tarkoitus
|
category.purpose = Tarkoitus
|
||||||
category.general = Yleinen
|
category.general = Yleinen
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Rules:
|
|||||||
editor.generation = Generation:
|
editor.generation = Generation:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edit In-Game
|
editor.ingame = Edit In-Game
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = I-Publish Sa Workshop
|
editor.publish.workshop = I-Publish Sa Workshop
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Default>
|
|||||||
details = Details...
|
details = Details...
|
||||||
edit = Edit...
|
edit = Edit...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Name:
|
editor.name = Name:
|
||||||
editor.spawn = Spawn Unit
|
editor.spawn = Spawn Unit
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Clear
|
|||||||
filter.option.ignore = Ignore
|
filter.option.ignore = Ignore
|
||||||
filter.scatter = Scatter
|
filter.scatter = Scatter
|
||||||
filter.terrain = Terrain
|
filter.terrain = Terrain
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Scale
|
filter.option.scale = Scale
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
filter.option.mag = Magnitude
|
filter.option.mag = Magnitude
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Secondary Floor
|
|||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Secondary Threshold
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Percentile
|
filter.option.percentile = Percentile
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -962,6 +971,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1088,6 +1098,7 @@ unit.items = items
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = bil
|
unit.billions = bil
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = General
|
category.general = General
|
||||||
|
|||||||
@@ -445,6 +445,11 @@ editor.rules = Règles
|
|||||||
editor.generation = Génération
|
editor.generation = Génération
|
||||||
editor.objectives = Objectifs
|
editor.objectives = Objectifs
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Éditer dans le jeu
|
editor.ingame = Éditer dans le jeu
|
||||||
editor.playtest = Tester
|
editor.playtest = Tester
|
||||||
editor.publish.workshop = Publier sur le Workshop
|
editor.publish.workshop = Publier sur le Workshop
|
||||||
@@ -501,6 +506,7 @@ editor.default = [lightgray]<par défaut>
|
|||||||
details = Détails...
|
details = Détails...
|
||||||
edit = Modifier...
|
edit = Modifier...
|
||||||
variables = Variables
|
variables = Variables
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nom :
|
editor.name = Nom :
|
||||||
editor.spawn = Ajouter une unité
|
editor.spawn = Ajouter une unité
|
||||||
@@ -590,6 +596,7 @@ filter.clear = Effacer
|
|||||||
filter.option.ignore = Ignorer
|
filter.option.ignore = Ignorer
|
||||||
filter.scatter = Disperser
|
filter.scatter = Disperser
|
||||||
filter.terrain = Terrain
|
filter.terrain = Terrain
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Échelle
|
filter.option.scale = Échelle
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
@@ -613,6 +620,8 @@ filter.option.floor2 = Sol secondaire
|
|||||||
filter.option.threshold2 = Seuil secondaire
|
filter.option.threshold2 = Seuil secondaire
|
||||||
filter.option.radius = Rayon
|
filter.option.radius = Rayon
|
||||||
filter.option.percentile = Pourcentage
|
filter.option.percentile = Pourcentage
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -988,6 +997,7 @@ stat.abilities = Habilités
|
|||||||
stat.canboost = Boost
|
stat.canboost = Boost
|
||||||
stat.flying = Unité volante
|
stat.flying = Unité volante
|
||||||
stat.ammouse = Utilisation de munitions
|
stat.ammouse = Utilisation de munitions
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Multiplicateur de dégâts
|
stat.damagemultiplier = Multiplicateur de dégâts
|
||||||
stat.healthmultiplier = Multiplicateur de santé
|
stat.healthmultiplier = Multiplicateur de santé
|
||||||
stat.speedmultiplier = Multiplicateur de vitesse
|
stat.speedmultiplier = Multiplicateur de vitesse
|
||||||
@@ -1113,6 +1123,7 @@ unit.items = objets
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
unit.billions = Md
|
unit.billions = Md
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /tirs
|
unit.pershot = /tirs
|
||||||
category.purpose = Description
|
category.purpose = Description
|
||||||
category.general = Caractéristiques
|
category.general = Caractéristiques
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ mods.browser.selected = Mod kiválasztása
|
|||||||
mods.browser.add = Letöltés
|
mods.browser.add = Letöltés
|
||||||
mods.browser.reinstall = Újratelepítés
|
mods.browser.reinstall = Újratelepítés
|
||||||
mods.browser.view-releases = Kiadások megtekintése
|
mods.browser.view-releases = Kiadások megtekintése
|
||||||
mods.browser.noreleases = [scarlet]Nem találhatóak a kiadások\n[accent]Nem találhatók kiadások ehhez a modhoz. Nézd meg a tárolóját, hogy vannak-e kiadásai.
|
mods.browser.noreleases = [scarlet]Nem találhatóak a kiadások\n[accent]Nem találhatóak kiadások ehhez a modhoz. Nézd meg a tárolóját, hogy vannak-e kiadásai.
|
||||||
mods.browser.latest = [lightgray][Legújabb]
|
mods.browser.latest = [lightgray][Legújabb]
|
||||||
mods.browser.releases = Kiadások
|
mods.browser.releases = Kiadások
|
||||||
mods.github.open = Tároló
|
mods.github.open = Tároló
|
||||||
@@ -198,14 +198,14 @@ campaign.none = [lightgray]Válassz egy bolygót a kezdéshez.\nEzt bármikor me
|
|||||||
campaign.erekir = Újabb, csiszoltabb tartalom. Többnyire lineáris játékmenet.\n\nSokkal nehezebb. Magasabb minőségű pályák és élmények.
|
campaign.erekir = Újabb, csiszoltabb tartalom. Többnyire lineáris játékmenet.\n\nSokkal nehezebb. Magasabb minőségű pályák és élmények.
|
||||||
campaign.serpulo = Régebbi tartalom. A klasszikus élmény. Nyíltabb végű, több tartalommal.\n\nPotenciálisan kiegyensúlyozatlan pályák és hadjárat. Kevésbé csiszolt.
|
campaign.serpulo = Régebbi tartalom. A klasszikus élmény. Nyíltabb végű, több tartalommal.\n\nPotenciálisan kiegyensúlyozatlan pályák és hadjárat. Kevésbé csiszolt.
|
||||||
completed = [accent]Kész
|
completed = [accent]Kész
|
||||||
techtree = Fejlesztési fa
|
techtree = Technológia fa
|
||||||
techtree.select = Fejlesztési fa kiválasztása
|
techtree.select = Technológia fa kiválasztása
|
||||||
techtree.serpulo = Serpulo
|
techtree.serpulo = Serpulo
|
||||||
techtree.erekir = Erekir
|
techtree.erekir = Erekir
|
||||||
research.load = Betöltés
|
research.load = Betöltés
|
||||||
research.discard = Eldobás
|
research.discard = Eldobás
|
||||||
research.list = [lightgray]Fejleszd ki:
|
research.list = [lightgray]Fejleszd ki:
|
||||||
research = Fejlesztési fa
|
research = Fejlesztés
|
||||||
researched = [lightgray]{0} kifejlesztve.
|
researched = [lightgray]{0} kifejlesztve.
|
||||||
research.progress = {0}% kész
|
research.progress = {0}% kész
|
||||||
players = {0} játékos
|
players = {0} játékos
|
||||||
@@ -309,7 +309,7 @@ server.invalidport = Érvénytelen port!
|
|||||||
server.error = [scarlet]Kiszolgálási hiba.
|
server.error = [scarlet]Kiszolgálási hiba.
|
||||||
save.new = Új mentés
|
save.new = Új mentés
|
||||||
save.overwrite = Biztosan felülírod\nezt a mentést?
|
save.overwrite = Biztosan felülírod\nezt a mentést?
|
||||||
save.nocampaign = A hadjáratból származó egyes mentési fájlok nem importálhatók.
|
save.nocampaign = A hadjáratból származó egyes mentési fájlok nem importálhatóak.
|
||||||
overwrite = Felülírás
|
overwrite = Felülírás
|
||||||
save.none = Nem található mentés!
|
save.none = Nem található mentés!
|
||||||
savefail = Nem sikerült elmenteni a játékot!
|
savefail = Nem sikerült elmenteni a játékot!
|
||||||
@@ -332,7 +332,7 @@ on = Be
|
|||||||
off = Ki
|
off = Ki
|
||||||
save.search = Keresés a mentett játékok között...
|
save.search = Keresés a mentett játékok között...
|
||||||
save.autosave = Automatikus mentés: {0}
|
save.autosave = Automatikus mentés: {0}
|
||||||
save.map = Térkép: {0}
|
save.map = Pálya: {0}
|
||||||
save.wave = Hullám: {0}
|
save.wave = Hullám: {0}
|
||||||
save.mode = Játékmód: {0}
|
save.mode = Játékmód: {0}
|
||||||
save.date = Utolsó mentés: {0}
|
save.date = Utolsó mentés: {0}
|
||||||
@@ -445,6 +445,11 @@ editor.rules = Szabályok
|
|||||||
editor.generation = Előállítás
|
editor.generation = Előállítás
|
||||||
editor.objectives = Célok
|
editor.objectives = Célok
|
||||||
editor.locales = Helyi csomagok
|
editor.locales = Helyi csomagok
|
||||||
|
editor.worldprocessors = Világprocesszorok
|
||||||
|
editor.worldprocessors.editname = Név szerkesztése
|
||||||
|
editor.worldprocessors.none = [lightgray]Nem találhatóak világprocesszor blokkok!\nAdj hozzá egyet a pályaszerkesztőben, vagy használd az alábbi \ue813 hozzáadás gombot.
|
||||||
|
editor.worldprocessors.nospace = Nincs szabad hely egy világprocesszor elhelyezéséhez!\nKitöltötted a pályát struktúrákkal? Miért tetted ezt?
|
||||||
|
editor.worldprocessors.delete.confirm = Biztos, hogy törölni akarod ezt a világprocesszort?\n\nHa falakkal van körülvéve, akkor egy környezeti fal fog a helyére kerülni.
|
||||||
editor.ingame = Szerkesztés a játékban
|
editor.ingame = Szerkesztés a játékban
|
||||||
editor.playtest = Teszt a játékban
|
editor.playtest = Teszt a játékban
|
||||||
editor.publish.workshop = Közzététel a Steam Műhelyben
|
editor.publish.workshop = Közzététel a Steam Műhelyben
|
||||||
@@ -501,7 +506,9 @@ editor.default = [lightgray]<Alapbeállítás>
|
|||||||
details = Részletek...
|
details = Részletek...
|
||||||
edit = Szerkesztés
|
edit = Szerkesztés
|
||||||
variables = Változók
|
variables = Változók
|
||||||
|
logic.clear.confirm = Biztos, hogy törölni akarod az összes kódot ebből a processzorból?
|
||||||
logic.globals = Beépített változók
|
logic.globals = Beépített változók
|
||||||
|
|
||||||
editor.name = Név:
|
editor.name = Név:
|
||||||
editor.spawn = Egység létrehozása
|
editor.spawn = Egység létrehozása
|
||||||
editor.removeunit = Egység eltávolítása
|
editor.removeunit = Egység eltávolítása
|
||||||
@@ -590,6 +597,7 @@ filter.clear = Törlés
|
|||||||
filter.option.ignore = Elutasítás
|
filter.option.ignore = Elutasítás
|
||||||
filter.scatter = Szétszórás
|
filter.scatter = Szétszórás
|
||||||
filter.terrain = Domborzat
|
filter.terrain = Domborzat
|
||||||
|
filter.logic = Logika
|
||||||
|
|
||||||
filter.option.scale = Méretezés
|
filter.option.scale = Méretezés
|
||||||
filter.option.chance = Gyakoriság
|
filter.option.chance = Gyakoriság
|
||||||
@@ -613,8 +621,10 @@ filter.option.floor2 = Másodlagos talaj
|
|||||||
filter.option.threshold2 = Másodlagos küszöbérték
|
filter.option.threshold2 = Másodlagos küszöbérték
|
||||||
filter.option.radius = Sugár
|
filter.option.radius = Sugár
|
||||||
filter.option.percentile = Százalék
|
filter.option.percentile = Százalék
|
||||||
|
filter.option.code = Kód
|
||||||
|
filter.option.loop = Hurok
|
||||||
|
|
||||||
locales.info = Itt adhatsz hozzá különböző nyelvi csomagokat a pályádhoz. A nyelvi csomagokban minden tulajdonságnak van egy neve és egy értéke. Ezeket a tulajdonságokat a világfeldolgozók és a célkitűzések is használhatják a saját neveikkel. Támogatják a szövegformázást (a helyőrzőket a tényleges értékükkel helyettesítik).\n\n[cyan]Példa tulajdonság:\n[]name: [accent]időzítő[]\nvalue: [accent]Példa időzítő, hátralévő idő: {0}[]\n\n[cyan]Használat:\n[]Beállítás célkitűzés szövegeként: [accent]@időzítő\n\n[]Írd be egy világfeldolgozóba:\n[accent]localeprint "időzítő"\nformat time\n[gray](ahol az idő egy külön számított változó)
|
locales.info = Itt adhatsz hozzá különböző nyelvi csomagokat a pályádhoz. A nyelvi csomagokban minden tulajdonságnak van egy neve és egy értéke. Ezeket a tulajdonságokat a világprocesszorok és a célkitűzések is használhatják a saját neveikkel. Támogatják a szövegformázást (a helyőrzőket a tényleges értékükkel helyettesítik).\n\n[cyan]Példa tulajdonság:\n[]name: [accent]időzítő[]\nvalue: [accent]Példa időzítő, hátralévő idő: {0}[]\n\n[cyan]Használat:\n[]Beállítás célkitűzés szövegeként: [accent]@időzítő\n\n[]Írd be egy világprocesszorba:\n[accent]localeprint "időzítő"\nformat time\n[gray](ahol az idő egy külön számított változó)
|
||||||
locales.deletelocale = Biztos, hogy törölni akarod ezt a nyelvi csomagot?
|
locales.deletelocale = Biztos, hogy törölni akarod ezt a nyelvi csomagot?
|
||||||
locales.applytoall = Változások alkalmazása az összes nyelvi csomagra
|
locales.applytoall = Változások alkalmazása az összes nyelvi csomagra
|
||||||
locales.addtoother = Hozzáadás más nyelvi csomagokhoz
|
locales.addtoother = Hozzáadás más nyelvi csomagokhoz
|
||||||
@@ -688,7 +698,7 @@ marker.shape.name = Alakzat
|
|||||||
marker.text.name = Szöveg
|
marker.text.name = Szöveg
|
||||||
marker.line.name = Vonal
|
marker.line.name = Vonal
|
||||||
marker.quad.name = Négyzet
|
marker.quad.name = Négyzet
|
||||||
marker.texture.name = Texture
|
marker.texture.name = Textúra
|
||||||
|
|
||||||
marker.background = Háttér
|
marker.background = Háttér
|
||||||
marker.outline = Körvonal
|
marker.outline = Körvonal
|
||||||
@@ -699,9 +709,9 @@ objective.destroyblock = [accent]Semmisítsd meg:\n[]{0}[lightgray]{1}
|
|||||||
objective.destroyblocks = [accent]Semmisítsd meg: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
|
objective.destroyblocks = [accent]Semmisítsd meg: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3}
|
||||||
objective.item = [accent]Termelj: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
|
objective.item = [accent]Termelj: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
|
||||||
objective.coreitem = [accent]Szállítás a támaszpontba:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
|
objective.coreitem = [accent]Szállítás a támaszpontba:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3}
|
||||||
objective.build = [accent]Építs: [][lightgray]{0}[]\n{1}[lightgray]{2}
|
objective.build = [accent]Építs: [][lightgray]{0}[]db\n{1}[lightgray]{2}
|
||||||
objective.buildunit = [accent]Gyárts egységeket: [][lightgray]{0}[]\n{1}[lightgray]{2}
|
objective.buildunit = [accent]Gyárts egységeket: [][lightgray]{0}[]db\n{1}[lightgray]{2}
|
||||||
objective.destroyunits = [accent]Semmisíts meg: [][lightgray]{0}[] egységet
|
objective.destroyunits = [accent]Semmisíts meg: [][lightgray]{0}[]db egységet
|
||||||
objective.enemiesapproaching = [accent]Ellenség érkezik: [lightgray]{0}[] mp múlva
|
objective.enemiesapproaching = [accent]Ellenség érkezik: [lightgray]{0}[] mp múlva
|
||||||
objective.enemyescelating = [accent]Az ellenséges gyártás fokozódik: [lightgray]{0}[] mp múlva
|
objective.enemyescelating = [accent]Az ellenséges gyártás fokozódik: [lightgray]{0}[] mp múlva
|
||||||
objective.enemyairunits = [accent]Az ellenséges légi egységek gyártása elkezdődik: [lightgray]{0}[] mp múlva
|
objective.enemyairunits = [accent]Az ellenséges légi egységek gyártása elkezdődik: [lightgray]{0}[] mp múlva
|
||||||
@@ -817,12 +827,12 @@ sector.navalFortress.name = Tengerészeti erőd
|
|||||||
sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nHaladj tovább.
|
sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nHaladj tovább.
|
||||||
sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét! Építs égetőerőműveket! Tanuld meg a foltozók használatát!
|
sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét! Építs égetőerőműveket! Tanuld meg a foltozók használatát!
|
||||||
sector.saltFlats.description = A sivatag peremén terülnek el a Sós síkságok. Kevés nyersanyag található errefelé.\n\nAz ellenség egy raktárkomplexumot létesített itt. Pusztítsd el a támaszpontjukat! Kő kövön ne maradjon!
|
sector.saltFlats.description = A sivatag peremén terülnek el a Sós síkságok. Kevés nyersanyag található errefelé.\n\nAz ellenség egy raktárkomplexumot létesített itt. Pusztítsd el a támaszpontjukat! Kő kövön ne maradjon!
|
||||||
sector.craters.description = Víz gyűjt össze ebben a kráterben, amely régi háborúk emlékét őrzi. Szerezd vissza a területet. Gyűjts homokot! Olvassz üveget! Pumpálj vizet, hogy lehűtsd a fúróidat és lövegtornyaidat.
|
sector.craters.description = Víz gyűlt össze ebben a kráterben, amely régi háborúk emlékét őrzi. Szerezd vissza a területet. Gyűjts homokot! Olvassz üveget! Szivattyúzz vizet, hogy lehűtsd a fúróidat és lövegtornyaidat.
|
||||||
sector.ruinousShores.description = A pusztaság mögött a partvonal húzódik. Valaha ezen a helyen egy partvédelmi rendszer állt. Nem sok minden maradt belőle. Csak a legalapvetőbb védelmi szerkezetek maradtak érintetlenül, minden más csak törmelék lett.\nFolytasd a terjeszkedést! Fedezd fel újra a technológiát!
|
sector.ruinousShores.description = A pusztaság mögött a partvonal húzódik. Valaha ezen a helyen egy partvédelmi rendszer állt. Nem sok minden maradt belőle. Csak a legalapvetőbb védelmi szerkezetek maradtak érintetlenül, minden más csak törmelék lett.\nFolytasd a terjeszkedést! Fedezd fel újra a technológiát!
|
||||||
sector.stainedMountains.description = Mélyebben a szárazföldön fekszenek a hegyek, a spóráktól még érintetlenül.\nTermeld ki a bőséges titán készleteket a körzetben. Tanuld meg felhasználni!.\n\nAz ellenség itt nagyobb létszámban van jelen. Ne hagyj nekik időt, hogy a legerősebb egységeiket hadba állíthassák!
|
sector.stainedMountains.description = Mélyebben a szárazföldön fekszenek a hegyek, a spóráktól még érintetlenül.\nTermeld ki a bőséges titán készleteket a körzetben. Tanuld meg felhasználni!.\n\nAz ellenség itt nagyobb létszámban van jelen. Ne hagyj nekik időt, hogy a legerősebb egységeiket hadba állíthassák!
|
||||||
sector.overgrowth.description = Ez a terület közelebb esik a spórák forrásához, a spórák már kinőtték.\nAz ellenség egy helyőrséget létesített itt. Építs Mace egységeket! Pusztítsd el a bázist!
|
sector.overgrowth.description = Ez a terület közelebb esik a spórák forrásához, a spórák már kinőtték.\nAz ellenség egy helyőrséget létesített itt. Építs Mace egységeket! Pusztítsd el a bázist!
|
||||||
sector.tarFields.description = Egy olajtermelő övezet peremvidéke a hegyek és a sivatag között. Egy azon kevés szektorok közül, ahol még hasznosítható kátránykészletek találhatók.\nBár a terület elhagyatott, veszélyes ellenséges erők fészkelnek a közelben. Ne becsüld alá őket!\n\n[lightgray]Fedezd fel az olajfeldolgozási lehetőségeket, ha tudod!
|
sector.tarFields.description = Egy olajtermelő övezet peremvidéke a hegyek és a sivatag között. Egy azon kevés szektorok közül, ahol még hasznosítható kátránykészletek találhatóak.\nBár a terület elhagyatott, veszélyes ellenséges erők fészkelnek a közelben. Ne becsüld alá őket!\n\n[lightgray]Fedezd fel az olajfeldolgozási lehetőségeket, ha tudod!
|
||||||
sector.desolateRift.description = Egy extrém veszélyes zóna. Nyersanyagokban gazdag, de szűkös a hely. Magas a kockázat. Építsd szárazföldi és légvédelmet, amint csak tudsz. Ne tévesszen meg a hosszú szünet az ellenség támadásai között.
|
sector.desolateRift.description = Egy extrém veszélyes zóna. Nyersanyagokban gazdag, de szűkös a hely. Magas a kockázat. Építs szárazföldi és légvédelmet, amint csak tudsz. Ne tévesszen meg a hosszú szünet az ellenség támadásai között.
|
||||||
sector.nuclearComplex.description = Egy néhai tóriumkitermelő és feldolgozó létesítmény, romokban.\n[lightgray]Fedezd fel a tóriumot és a sokrétű felhasználását!\n\nAz ellenség nagy létszámban van jelen, és folyamatosan megfigyelés alatt tartják a környéket.
|
sector.nuclearComplex.description = Egy néhai tóriumkitermelő és feldolgozó létesítmény, romokban.\n[lightgray]Fedezd fel a tóriumot és a sokrétű felhasználását!\n\nAz ellenség nagy létszámban van jelen, és folyamatosan megfigyelés alatt tartják a környéket.
|
||||||
sector.fungalPass.description = Átmeneti terület a magas hegyek és a mélyebben fekvő, spórák uralta lapály között. Egy kisebb ellenséges megfigyelő állomás található itt.\nSemmisítsd meg!\nHasználj Dagger és Crawler egységeket! Pusztítsd el a két támaszpontot!
|
sector.fungalPass.description = Átmeneti terület a magas hegyek és a mélyebben fekvő, spórák uralta lapály között. Egy kisebb ellenséges megfigyelő állomás található itt.\nSemmisítsd meg!\nHasználj Dagger és Crawler egységeket! Pusztítsd el a két támaszpontot!
|
||||||
sector.biomassFacility.description = A spórák származási helye. Ebben a létesítményben fejlesztették ki őket, és eredetileg itt is gyártották őket.\nFedezd fel az itt található technológiákat. Tenyészd ki a spórákat üzemanyag és műanyagok gyártásához.\n\n[lightgray]A létesítmény pusztulása nyomán a spórák elszabadultak és szétszóródtak a légkörben. A helyi ökoszisztémában semmi sem tudta felvenni a versenyt egy ennyire invazív életformával.
|
sector.biomassFacility.description = A spórák származási helye. Ebben a létesítményben fejlesztették ki őket, és eredetileg itt is gyártották őket.\nFedezd fel az itt található technológiákat. Tenyészd ki a spórákat üzemanyag és műanyagok gyártásához.\n\n[lightgray]A létesítmény pusztulása nyomán a spórák elszabadultak és szétszóródtak a légkörben. A helyi ökoszisztémában semmi sem tudta felvenni a versenyt egy ennyire invazív életformával.
|
||||||
@@ -853,7 +863,7 @@ sector.origin.name = Eredet
|
|||||||
|
|
||||||
sector.onset.description = Kezdd meg az Erekir meghódítását. Gyűjts nyersanyagokat, állíts elő egységeket, és kezdd el a technológiai fejlesztéseket.
|
sector.onset.description = Kezdd meg az Erekir meghódítását. Gyűjts nyersanyagokat, állíts elő egységeket, és kezdd el a technológiai fejlesztéseket.
|
||||||
sector.aegis.description = Ez a szektor volfrám-lelőhelyeket tartalmaz.\nFejleszd ki az [accent]Ütvefúrót[], hogy ki tudd bányászni ezt a nyersanyagot, és pusztítsd el az ellenséges bázist a szektorban.
|
sector.aegis.description = Ez a szektor volfrám-lelőhelyeket tartalmaz.\nFejleszd ki az [accent]Ütvefúrót[], hogy ki tudd bányászni ezt a nyersanyagot, és pusztítsd el az ellenséges bázist a szektorban.
|
||||||
sector.lake.description = Az ebben a szektorban lévő salakos tó nagymértékben korlátozza a használható egységeket. A lebegőegységek használata az egyetlen lehetőség.\nFejleszd ki a [accent]Repülőgépgyárat[], és állíts elő egy [accent]Elude[] egységet, amilyen hamar csak lehet.
|
sector.lake.description = Az ebben a szektorban lévő salakos tó nagymértékben korlátozza a használható egységeket. A lebegőegységek használata az egyetlen lehetőség.\nFejleszd ki a [accent]Repülőgépgyártót[], és állíts elő egy [accent]Elude[] egységet, amilyen hamar csak lehet.
|
||||||
sector.intersect.description = A letapogatások arra utalnak, hogy ezt a szektort a leszállás után hamarosan több oldalról is megtámadják.\nÁllítsd fel gyorsan a védelmedet, és terjeszkedj minél hamarabb.\n[accent]Mech[] egységekre lesz szükség a terület zord terepviszonyai miatt.
|
sector.intersect.description = A letapogatások arra utalnak, hogy ezt a szektort a leszállás után hamarosan több oldalról is megtámadják.\nÁllítsd fel gyorsan a védelmedet, és terjeszkedj minél hamarabb.\n[accent]Mech[] egységekre lesz szükség a terület zord terepviszonyai miatt.
|
||||||
sector.atlas.description = Ez a szektor változatos terepet tartalmaz, és az ütőképes támadáshoz többféle egységre lesz szükség.\nAz itt felfedezett ellenséges bázisok némelyikén való átjutáshoz is továbbfejlesztett egységekre lehet szükség.\nFejleszd ki az [accent]Elektrolizátort[] és a [accent]Tankújratervezőt[].
|
sector.atlas.description = Ez a szektor változatos terepet tartalmaz, és az ütőképes támadáshoz többféle egységre lesz szükség.\nAz itt felfedezett ellenséges bázisok némelyikén való átjutáshoz is továbbfejlesztett egységekre lehet szükség.\nFejleszd ki az [accent]Elektrolizátort[] és a [accent]Tankújratervezőt[].
|
||||||
sector.split.description = A minimális ellenséges jelenlét miatt ez a szektor tökéletes az új nyersanyagszállító technológiák tesztelésére.
|
sector.split.description = A minimális ellenséges jelenlét miatt ez a szektor tökéletes az új nyersanyagszállító technológiák tesztelésére.
|
||||||
@@ -863,8 +873,8 @@ sector.peaks.description = A hegyvidéki terep ebben a szektorban a legtöbb egy
|
|||||||
sector.ravine.description = A szektorban nem észlelhető ellenséges támaszpont, de ez egy fontos szállítási útvonal az ellenség számára, így változatos ellenséges erőkkel kell számolni.\nTermelj [accent]elektrometált[]. Építs [accent]Afflict[] lövegtornyokat.
|
sector.ravine.description = A szektorban nem észlelhető ellenséges támaszpont, de ez egy fontos szállítási útvonal az ellenség számára, így változatos ellenséges erőkkel kell számolni.\nTermelj [accent]elektrometált[]. Építs [accent]Afflict[] lövegtornyokat.
|
||||||
sector.caldera-erekir.description = Ebben a szektorban a feltárható nyersanyagok több szigeten szétszóródva találhatóak.\nFejleszd ki és helyezd üzembe a drónalapú szállítmányozást.
|
sector.caldera-erekir.description = Ebben a szektorban a feltárható nyersanyagok több szigeten szétszóródva találhatóak.\nFejleszd ki és helyezd üzembe a drónalapú szállítmányozást.
|
||||||
sector.stronghold.description = A nagy ellenséges tábor ebben a szektorban jelentős mennyiségű [accent]tóriumot[] őriz.\nHasználd magasabb szintű egységek és lövegtornyok fejlesztésére.
|
sector.stronghold.description = A nagy ellenséges tábor ebben a szektorban jelentős mennyiségű [accent]tóriumot[] őriz.\nHasználd magasabb szintű egységek és lövegtornyok fejlesztésére.
|
||||||
sector.crevice.description = Ebben a szektorban az ellenség kegyetlen támadóerőket fog mozgósítani, hogy kiiktassa a bázisodat.\nA [accent]karbid[] és a [accent]Pirolízis erőmű[] kifejlesztése nélkülözhetetlen lehet a túléléshez.
|
sector.crevice.description = Ebben a szektorban az ellenség kegyetlen támadóerőket fog mozgósítani, hogy kiiktassa a bázisodat.\nA [accent]karbid[] és a [accent]Pirolízis-erőmű[] kifejlesztése nélkülözhetetlen lehet a túléléshez.
|
||||||
sector.siege.description = Ebben a szektorban két párhuzamos kanyon található, amelyek két irányból érkező támadásokat tesznek lehetővé.\nFejleszd ki a [accent]diciánt[], hogy még erősebb tankegységeket hozhass létre.\nVigyázat: ellenséges, nagy hatótávolságú rakéták észlelve. A rakéták a becsapódásuk előtt megsemmisíthetők.
|
sector.siege.description = Ebben a szektorban két párhuzamos kanyon található, amelyek két irányból érkező támadásokat tesznek lehetővé.\nFejleszd ki a [accent]diciánt[], hogy még erősebb tankegységeket hozhass létre.\nVigyázat: ellenséges, nagy hatótávolságú rakéták észlelve. A rakéták a becsapódásuk előtt megsemmisíthetőek.
|
||||||
sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban változó terepviszonyok között alakultak ki. Ahhoz, hogy alkalmazkodni tudj, fejlessz ki különböző egységeket.\nEzenkívül egyes bázisokat pajzsok védenek. Találd ki, hogyan táplálják őket.
|
sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban változó terepviszonyok között alakultak ki. Ahhoz, hogy alkalmazkodni tudj, fejlessz ki különböző egységeket.\nEzenkívül egyes bázisokat pajzsok védenek. Találd ki, hogyan táplálják őket.
|
||||||
sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[].
|
sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[].
|
||||||
sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek – koncentrálj az ellenséges támaszpontok elpusztítására.
|
sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek – koncentrálj az ellenséges támaszpontok elpusztítására.
|
||||||
@@ -955,7 +965,7 @@ stat.moduletier = Modul szintje
|
|||||||
stat.unittype = Egység típusa
|
stat.unittype = Egység típusa
|
||||||
stat.speedincrease = Gyorsítás
|
stat.speedincrease = Gyorsítás
|
||||||
stat.range = Hatótáv
|
stat.range = Hatótáv
|
||||||
stat.drilltier = Kitermelhetők
|
stat.drilltier = Kitermelhetőek
|
||||||
stat.drillspeed = Alap termelési sebesség
|
stat.drillspeed = Alap termelési sebesség
|
||||||
stat.boosteffect = Erősítés hatása
|
stat.boosteffect = Erősítés hatása
|
||||||
stat.maxunits = Max. aktív egységek
|
stat.maxunits = Max. aktív egységek
|
||||||
@@ -989,6 +999,7 @@ stat.abilities = Képességek
|
|||||||
stat.canboost = Erősíthető
|
stat.canboost = Erősíthető
|
||||||
stat.flying = Repül
|
stat.flying = Repül
|
||||||
stat.ammouse = Lőszerhasználat
|
stat.ammouse = Lőszerhasználat
|
||||||
|
stat.ammocapacity = Lőszerkapacitás
|
||||||
stat.damagemultiplier = Sebzésszorzó
|
stat.damagemultiplier = Sebzésszorzó
|
||||||
stat.healthmultiplier = Életerőszorzó
|
stat.healthmultiplier = Életerőszorzó
|
||||||
stat.speedmultiplier = Sebességszorzó
|
stat.speedmultiplier = Sebességszorzó
|
||||||
@@ -1027,6 +1038,7 @@ ability.spawndeath = Szétesés
|
|||||||
ability.spawndeath.description = Megsemmisülésekor egységeket bocsát ki
|
ability.spawndeath.description = Megsemmisülésekor egységeket bocsát ki
|
||||||
ability.liquidexplode = Szétömlés
|
ability.liquidexplode = Szétömlés
|
||||||
ability.liquidexplode.description = Megsemmisülésekor folyadék ömlik ki belőle
|
ability.liquidexplode.description = Megsemmisülésekor folyadék ömlik ki belőle
|
||||||
|
|
||||||
ability.stat.firingrate = [stat]{0}/mp[lightgray] tüzelési sebesség
|
ability.stat.firingrate = [stat]{0}/mp[lightgray] tüzelési sebesség
|
||||||
ability.stat.regen = [stat]{0}[lightgray] életerő/mp
|
ability.stat.regen = [stat]{0}[lightgray] életerő/mp
|
||||||
ability.stat.shield = [stat]{0}[lightgray] pajzs
|
ability.stat.shield = [stat]{0}[lightgray] pajzs
|
||||||
@@ -1080,16 +1092,16 @@ bullet.homing = [stat]nyomkövető
|
|||||||
bullet.armorpierce = [stat]páncéltörő
|
bullet.armorpierce = [stat]páncéltörő
|
||||||
bullet.maxdamagefraction = [stat]{0}%[lightgray] sebzési határérték
|
bullet.maxdamagefraction = [stat]{0}%[lightgray] sebzési határérték
|
||||||
bullet.suppression = [stat]{0} mp[lightgray] javításelnyomás ~[stat]{1}[lightgray] csempe
|
bullet.suppression = [stat]{0} mp[lightgray] javításelnyomás ~[stat]{1}[lightgray] csempe
|
||||||
bullet.interval = [stat]{0}/mp[lightgray] lövedékek időköze:
|
bullet.interval = [stat]{0}/mp[lightgray] gyakoriságú lövedékek:
|
||||||
bullet.frags = [stat]{0}[lightgray]x repeszlövedék:
|
bullet.frags = [stat]{0}[lightgray]db repeszlövedék:
|
||||||
bullet.lightning = [stat]{0}[lightgray]x villámcsapás ~[stat]{1}[lightgray] sebzés
|
bullet.lightning = [stat]{0}[lightgray]db villámcsapás ~[stat]{1}[lightgray] sebzés
|
||||||
bullet.buildingdamage = [stat]{0}%[lightgray] épületsebzés
|
bullet.buildingdamage = [stat]{0}%[lightgray] épületsebzés
|
||||||
bullet.knockback = [stat]{0}[lightgray] hátralökés
|
bullet.knockback = [stat]{0}[lightgray] hátralökés
|
||||||
bullet.pierce = [stat]{0}[lightgray]x átütő erő
|
bullet.pierce = [stat]{0}[lightgray]x átütő erő
|
||||||
bullet.infinitepierce = [stat]átütő erő
|
bullet.infinitepierce = [stat]átütő erő
|
||||||
bullet.healpercent = [stat]{0}%[lightgray] javítás
|
bullet.healpercent = [stat]{0}%[lightgray] javítás
|
||||||
bullet.healamount = [stat]{0}[lightgray] közvetlen javítás
|
bullet.healamount = [stat]{0}[lightgray] közvetlen javítás
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x lőszerszorzó
|
bullet.multiplier = [stat]{0}[lightgray] lőszer/nyersanyag
|
||||||
bullet.reload = [stat]{0}%[lightgray] tüzelési sebesség
|
bullet.reload = [stat]{0}%[lightgray] tüzelési sebesség
|
||||||
bullet.range = [stat]{0}[lightgray] csempés hatótáv
|
bullet.range = [stat]{0}[lightgray] csempés hatótáv
|
||||||
|
|
||||||
@@ -1114,8 +1126,9 @@ unit.items = nyersanyag
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = Mrd
|
unit.billions = Mrd
|
||||||
|
unit.shots = lövés
|
||||||
unit.pershot = /lövés
|
unit.pershot = /lövés
|
||||||
category.purpose = Cél
|
category.purpose = Rendeltetés
|
||||||
category.general = Általános
|
category.general = Általános
|
||||||
category.power = Áram
|
category.power = Áram
|
||||||
category.liquids = Folyadékok
|
category.liquids = Folyadékok
|
||||||
@@ -1235,16 +1248,17 @@ keybind.unit_stance_hold_fire.name = Egység viselkedése: tüzet szüntess
|
|||||||
keybind.unit_stance_pursue_target.name = Egység viselkedése: célpont követése
|
keybind.unit_stance_pursue_target.name = Egység viselkedése: célpont követése
|
||||||
keybind.unit_stance_patrol.name = Egység viselkedése: járőrözés
|
keybind.unit_stance_patrol.name = Egység viselkedése: járőrözés
|
||||||
keybind.unit_stance_ram.name = Egység viselkedése: ütközés
|
keybind.unit_stance_ram.name = Egység viselkedése: ütközés
|
||||||
keybind.unit_command_move.name = Unit Command: Move
|
|
||||||
keybind.unit_command_repair.name = Unit Command: Repair
|
keybind.unit_command_move.name = Egységparancs: mozgás
|
||||||
keybind.unit_command_rebuild.name = Unit Command: Rebuild
|
keybind.unit_command_repair.name = Egységparancs: javítás
|
||||||
keybind.unit_command_assist.name = Unit Command: Assist
|
keybind.unit_command_rebuild.name = Egységparancs: újjáépítés
|
||||||
keybind.unit_command_mine.name = Unit Command: Mine
|
keybind.unit_command_assist.name = Egységparancs: támogatás
|
||||||
keybind.unit_command_boost.name = Unit Command: Boost
|
keybind.unit_command_mine.name = Egységparancs: bányászás
|
||||||
keybind.unit_command_load_units.name = Unit Command: Load Units
|
keybind.unit_command_boost.name = Egységparancs: erősítés
|
||||||
keybind.unit_command_load_blocks.name = Unit Command: Load Blocks
|
keybind.unit_command_load_units.name = Egységparancs: egységek berakodása
|
||||||
keybind.unit_command_unload_payload.name = Unit Command: Unload Payload
|
keybind.unit_command_load_blocks.name = Egységparancs: blokkok berakodása
|
||||||
keybind.unit_command_enter_payload.name = Unit Command: Enter Payload
|
keybind.unit_command_unload_payload.name = Egységparancs: kirakodás
|
||||||
|
keybind.unit_command_enter_payload.name = Egységparancs: berakodás
|
||||||
|
|
||||||
keybind.rebuild_select.name = Régió újjáépítése
|
keybind.rebuild_select.name = Régió újjáépítése
|
||||||
keybind.schematic_select.name = Terület kijelölése
|
keybind.schematic_select.name = Terület kijelölése
|
||||||
@@ -1376,8 +1390,9 @@ rules.weather = Időjárás
|
|||||||
rules.weather.frequency = Gyakoriság:
|
rules.weather.frequency = Gyakoriság:
|
||||||
rules.weather.always = Mindig
|
rules.weather.always = Mindig
|
||||||
rules.weather.duration = Időtartam:
|
rules.weather.duration = Időtartam:
|
||||||
rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
|
|
||||||
rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores.
|
rules.placerangecheck.info = Megakadályozza, hogy a játékosok lövegtornyokat helyezzenek el az ellenséges épületek közelében. Amikor megpróbálnak egy lövegtornyot elhelyezni, az építési távolság megnő, így a lövegtorony nem fogja elérni az ellenséget.
|
||||||
|
rules.onlydepositcore.info = Megakadályozza, hogy az egységek nyersanyagokat helyezzenek el a támaszponton kívül más épületekbe.
|
||||||
|
|
||||||
content.item.name = Nyersanyagok
|
content.item.name = Nyersanyagok
|
||||||
content.liquid.name = Folyadékok
|
content.liquid.name = Folyadékok
|
||||||
@@ -1823,13 +1838,13 @@ block.beam-tower.name = Sugártorony
|
|||||||
block.beam-link.name = Sugárhálózat
|
block.beam-link.name = Sugárhálózat
|
||||||
block.turbine-condenser.name = Kondenzációs turbina
|
block.turbine-condenser.name = Kondenzációs turbina
|
||||||
block.chemical-combustion-chamber.name = Kémiai égetőkamra
|
block.chemical-combustion-chamber.name = Kémiai égetőkamra
|
||||||
block.pyrolysis-generator.name = Pirolíziserőmű
|
block.pyrolysis-generator.name = Pirolízis-erőmű
|
||||||
block.vent-condenser.name = Vízleválasztó
|
block.vent-condenser.name = Vízleválasztó
|
||||||
block.cliff-crusher.name = Sziklazúzó
|
block.cliff-crusher.name = Sziklazúzó
|
||||||
block.plasma-bore.name = Plazmafúró
|
block.plasma-bore.name = Plazmafúró
|
||||||
block.large-plasma-bore.name = Nagy plazmafúró
|
block.large-plasma-bore.name = Nagy plazmafúró
|
||||||
block.impact-drill.name = Ütvefúró
|
block.impact-drill.name = Ütvefúró
|
||||||
block.eruption-drill.name = Kitörési fúró
|
block.eruption-drill.name = Kitöréses fúró
|
||||||
block.core-bastion.name = Bástya
|
block.core-bastion.name = Bástya
|
||||||
block.core-citadel.name = Citadella
|
block.core-citadel.name = Citadella
|
||||||
block.core-acropolis.name = Akropolisz
|
block.core-acropolis.name = Akropolisz
|
||||||
@@ -1895,10 +1910,10 @@ hint.breaking = [accent]Jobb egérgombbal[] és húzással lebonthatod a blokkok
|
|||||||
hint.breaking.mobile = Használd a jobb alsó sarokban lévő \ue817 [accent]kalapács[] gombot a blokkok törléséhez.\n\nTartsd lenyomva az ujjad és húzd, hogy nagyobb területet tudj kijelölni.
|
hint.breaking.mobile = Használd a jobb alsó sarokban lévő \ue817 [accent]kalapács[] gombot a blokkok törléséhez.\n\nTartsd lenyomva az ujjad és húzd, hogy nagyobb területet tudj kijelölni.
|
||||||
hint.blockInfo = Egy blokk információinak megtekintéséhez válaszd ki az épületet az [accent]építési menüben[], majd válaszd a [accent][[?][] gomb jobb oldalt.
|
hint.blockInfo = Egy blokk információinak megtekintéséhez válaszd ki az épületet az [accent]építési menüben[], majd válaszd a [accent][[?][] gomb jobb oldalt.
|
||||||
hint.derelict = Az [accent]elhagyatott[] szerkezetek régi bázisok maradványai, amelyek már nem működnek.\n\nEzeket az épületeket le lehet [accent]bontani[] nyersanyagokért, vagy meg is lehet javítani őket.
|
hint.derelict = Az [accent]elhagyatott[] szerkezetek régi bázisok maradványai, amelyek már nem működnek.\n\nEzeket az épületeket le lehet [accent]bontani[] nyersanyagokért, vagy meg is lehet javítani őket.
|
||||||
hint.research = Használd a \ue875 [accent]Fejlesztési fa[] gombot, hogy új technológiákat fedezz fel.
|
hint.research = Használd a \ue875 [accent]Technológia fa[] gombot, hogy új technológiákat fedezz fel.
|
||||||
hint.research.mobile = Használd a \ue875 [accent]Fejlesztési fa[] gombot a \ue88c [accent]menüben[], hogy új technológiákat fedezz fel.
|
hint.research.mobile = Használd a \ue875 [accent]Technológia fa[] gombot a \ue88c [accent]menüben[], hogy új technológiákat fedezz fel.
|
||||||
hint.unitControl = Nyomd le a [accent][[bal Ctrl][] gombot, és kattints [accent]jobb egérgombbal[] a baráti egység vagy lövegtorony irányításához.
|
hint.unitControl = Nyomd le a [accent][[bal Ctrl][] gombot, és kattints [accent]jobb egérgombbal[] a baráti egység vagy lövegtorony irányításához.
|
||||||
hint.unitControl.mobile = [accent][[Dupla koppintással][] irányíthatók kézileg a szövetséges egységek vagy lövegtornyok.
|
hint.unitControl.mobile = [accent][[Dupla koppintással][] a szövetséges egységek vagy lövegtornyok kézileg irányíthatóak.
|
||||||
hint.unitSelectControl = Az egységek irányításához lépj be [accent]parancs módba[] a [accent]bal Shift[] lenyomva tartásával.\nParancs módban az egységek kijelöléséhez kattints, és húzd az egeret. A [accent]jobb egérgombbal[] küldd az egységeket a helyszínre vagy a célponthoz.
|
hint.unitSelectControl = Az egységek irányításához lépj be [accent]parancs módba[] a [accent]bal Shift[] lenyomva tartásával.\nParancs módban az egységek kijelöléséhez kattints, és húzd az egeret. A [accent]jobb egérgombbal[] küldd az egységeket a helyszínre vagy a célponthoz.
|
||||||
hint.unitSelectControl.mobile = Az egységek irányításához lépj be [accent]parancs módba[] a bal alsó sarokban lévő [accent]parancs[] gombbal.\nParancs módban az egységek kiválasztásához érintsd meg a kijelzőt és húzással jelöld ki az egységeket. Koppintással küldd az egységeket a helyszínre vagy a célponthoz.
|
hint.unitSelectControl.mobile = Az egységek irányításához lépj be [accent]parancs módba[] a bal alsó sarokban lévő [accent]parancs[] gombbal.\nParancs módban az egységek kiválasztásához érintsd meg a kijelzőt és húzással jelöld ki az egységeket. Koppintással küldd az egységeket a helyszínre vagy a célponthoz.
|
||||||
hint.launch = Ha elegendő nyersanyagot gyűjtöttél össze, akkor [accent]lődd ki[] a támaszpontot a következő szektorba, úgy, hogy megnyitod a \ue827 [accent]Bolygótérképet[] a jobb alsó sarokban, és átforgatod az új helyszínre.
|
hint.launch = Ha elegendő nyersanyagot gyűjtöttél össze, akkor [accent]lődd ki[] a támaszpontot a következő szektorba, úgy, hogy megnyitod a \ue827 [accent]Bolygótérképet[] a jobb alsó sarokban, és átforgatod az új helyszínre.
|
||||||
@@ -1925,16 +1940,16 @@ hint.factoryControl.mobile = Egy egységgyár [accent]kimeneti célpontjának[]
|
|||||||
|
|
||||||
gz.mine = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és kattints a bányászat megkezdéséhez.
|
gz.mine = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és kattints a bányászat megkezdéséhez.
|
||||||
gz.mine.mobile = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és koppints a bányászat megkezdéséhez.
|
gz.mine.mobile = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és koppints a bányászat megkezdéséhez.
|
||||||
gz.research = Nyisd meg a \ue875 Fejlesztési fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő menüből.\nKattints egy rézfoltra az elhelyezéséhez.
|
gz.research = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő menüből.\nKattints egy rézfoltra az elhelyezéséhez.
|
||||||
gz.research.mobile = Nyisd meg a \ue875 Fejlesztési fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő menüből.\nKattints egy rézfoltra az elhelyezéséhez.\n\nA megerősítéshez nyomd meg a jobb alsó sarokban lévő \ue800 [accent]pipát[].
|
gz.research.mobile = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő menüből.\nKattints egy rézfoltra az elhelyezéséhez.\n\nA megerősítéshez nyomd meg a jobb alsó sarokban lévő \ue800 [accent]pipát[].
|
||||||
gz.conveyors = Fejleszd ki, és építs \uf896 [accent]szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nKattints és húzd az egeret, hogy több szállítószalagot helyezz el.\nHasználd a [accent]görgőt[] a forgatáshoz.
|
gz.conveyors = Fejleszd ki, és építs \uf896 [accent]Szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nKattints és húzd az egeret, hogy több szállítószalagot helyezz el.\nHasználd a [accent]görgőt[] a forgatáshoz.
|
||||||
gz.conveyors.mobile = Fejleszd ki, és építs \uf896 [accent]szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el.
|
gz.conveyors.mobile = Fejleszd ki, és építs \uf896 [accent]Szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el.
|
||||||
gz.drills = Bővítsd a bányászati kapacitást.\nÉpíts több mechanikus fúrót.\nBányássz 100 rezet.
|
gz.drills = Bővítsd a bányászati kapacitást.\nÉpíts több mechanikus fúrót.\nBányássz 100 rezet.
|
||||||
gz.lead = Az \uf837 [accent]ólom[] egy másik gyakran használt nyersanyag.\nÉpíts fúrókat az ólom kitermelésére.
|
gz.lead = Az \uf837 [accent]ólom[] egy másik gyakran használt nyersanyag.\nÉpíts fúrókat az ólom kitermelésére.
|
||||||
gz.moveup = \ue804 Menj tovább a további utasításokért.
|
gz.moveup = \ue804 Menj tovább a további utasításokért.
|
||||||
gz.turrets = Fejleszd ki, és építs 2 \uf861 [accent]Duo[] lövegtornyot, hogy megvédd a támaszpontot.\nA Duo lövegtornyoknak \uf838 [accent]lőszerre[] van szükségük, mely szállítószalaggal juttatható el hozzájuk.
|
gz.turrets = Fejleszd ki, és építs két \uf861 [accent]Duo[] lövegtornyot, hogy megvédd a támaszpontot.\nA Duo lövegtornyoknak \uf838 [accent]lőszerre[] van szükségük, mely szállítószalaggal juttatható el hozzájuk.
|
||||||
gz.duoammo = Szállítószalagok segítségével lásd el [accent]rézzel[] a Duo lövegtornyokat.
|
gz.duoammo = Szállítószalagok segítségével lásd el [accent]rézzel[] a Duo lövegtornyokat.
|
||||||
gz.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts \uf8ae [accent]rézfalakat[] a lövegtornyok köré.
|
gz.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts \uf8ae [accent]Rézfalakat[] a lövegtornyok köré.
|
||||||
gz.defend = Az ellenség közeledik, készülj fel a védekezésre.
|
gz.defend = Az ellenség közeledik, készülj fel a védekezésre.
|
||||||
gz.aa = A repülő egységeket nem lehet könnyen elintézni a hagyományos lövegtornyokkal.\nA \uf860 [accent]Scatter[] lövegtornyok kiváló légelhárítást biztosítanak, de lőszerként \uf837 [accent]ólomra[] van szükségük.
|
gz.aa = A repülő egységeket nem lehet könnyen elintézni a hagyományos lövegtornyokkal.\nA \uf860 [accent]Scatter[] lövegtornyok kiváló légelhárítást biztosítanak, de lőszerként \uf837 [accent]ólomra[] van szükségük.
|
||||||
gz.scatterammo = Szállítószalagok segítségével lásd el \uf837 [accent]ólommal[] a Scatter lövegtornyokat.
|
gz.scatterammo = Szállítószalagok segítségével lásd el \uf837 [accent]ólommal[] a Scatter lövegtornyokat.
|
||||||
@@ -1946,17 +1961,17 @@ gz.finish = Építs több lövegtornyot, bányássz több nyersanyagot,\nés vé
|
|||||||
|
|
||||||
onset.mine = Kattints bal egérgombbal a \uf748 [accent]berillium[] kibányászáshoz a falakból.\n\nA mozgáshoz használd a [accent][[WASD] gombokat.
|
onset.mine = Kattints bal egérgombbal a \uf748 [accent]berillium[] kibányászáshoz a falakból.\n\nA mozgáshoz használd a [accent][[WASD] gombokat.
|
||||||
onset.mine.mobile = Koppints a \uf748 [accent]berillium[] kibányászáshoz a falakból.
|
onset.mine.mobile = Koppints a \uf748 [accent]berillium[] kibányászáshoz a falakból.
|
||||||
onset.research = Nyisd meg a \ue875 fejlesztési fát.\nFejleszd ki, és építs egy \uf73e [accent]kondenzációs turbinát[] a kürtőn.\nEz [accent]áramot[] fog termelni.
|
onset.research = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki, és építs egy \uf73e [accent]Kondenzációs turbinát[] a kürtőn.\nEz [accent]áramot[] fog termelni.
|
||||||
onset.bore = Fejleszd ki, és építs egy \uf741 [accent]plazmafúrót[].\nEz automatikusan bányássza ki a nyersanyagokat a falakból.
|
onset.bore = Fejleszd ki, és építs egy \uf741 [accent]Plazmafúrót[].\nEz automatikusan bányássza ki a nyersanyagokat a falakból.
|
||||||
onset.power = Ahhoz, hogy [accent]árammal[] lásd el a plazmafúrót, fejleszd ki, és helyezz el egy \uf73d [accent]sugárcsomópontot[].\nSegítségükkel összekötheted a kondenzációs turbinát a plazmafúróval.
|
onset.power = Ahhoz, hogy [accent]árammal[] lásd el a plazmafúrót, fejleszd ki, és helyezz el egy \uf73d [accent]Sugárcsomópontot[].\nSegítségükkel összekötheted a kondenzációs turbinát a plazmafúróval.
|
||||||
onset.ducts = Fejleszd ki, és építs \uf799 [accent]szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\nKattints, és húzd az egeret több szállítószalag elhelyezéséhez.\nHasználd a [accent]görgőt[] a forgatáshoz.
|
onset.ducts = Fejleszd ki, és építs \uf799 [accent]Szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\nKattints, és húzd az egeret több szállítószalag elhelyezéséhez.\nHasználd a [accent]görgőt[] a forgatáshoz.
|
||||||
onset.ducts.mobile = Fejleszd ki, és építs \uf799 [accent]szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el.
|
onset.ducts.mobile = Fejleszd ki, és építs \uf799 [accent]Szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el.
|
||||||
onset.moremine = Bővítsd a bányászati kapacitást.\nHelyezz el több plazmavágót, és a támogatásukhoz használj sugárcsomópontokat és szállítószalagokat.\nBányássz 200 berilliumot.
|
onset.moremine = Bővítsd a bányászati kapacitást.\nHelyezz el több plazmavágót, és a támogatásukhoz használj sugárcsomópontokat és szállítószalagokat.\nBányássz 200 berilliumot.
|
||||||
onset.graphite = Az összetettebb épületekhez \uf835 [accent]grafit[] szükséges.\nÉpíts plazmavágókat a grafit kibányászásához.
|
onset.graphite = Az összetettebb épületekhez \uf835 [accent]grafit[] szükséges.\nÉpíts plazmavágókat a grafit kibányászásához.
|
||||||
onset.research2 = Kezdd el a [accent]gyárak[] fejlesztését.\nFejleszd ki a \uf74d [accent]sziklazúzót[] és a \uf779 [accent]szilícium ívkemencét[].
|
onset.research2 = Kezdd el a [accent]gyárak[] fejlesztését.\nFejleszd ki a \uf74d [accent]Sziklazúzót[] és a \uf779 [accent]Szilícium ívkemencét[].
|
||||||
onset.arcfurnace = A Szilícium ívkemencének \uf834 [accent]homokra[] és \uf835 [accent]grafitra[] van szüksége, hogy \uf82f [accent]szilíciumot[] gyártson.\nTovábbá [accent]áram[] is szükséges a működéséhez.
|
onset.arcfurnace = A szilícium ívkemencének \uf834 [accent]homokra[] és \uf835 [accent]grafitra[] van szüksége, hogy \uf82f [accent]szilíciumot[] gyártson.\nTovábbá [accent]áram[] is szükséges a működéséhez.
|
||||||
onset.crusher = Használj \uf74d [accent]sziklazúzókat[], hogy homokot bányász.
|
onset.crusher = Használj \uf74d [accent]Sziklazúzókat[], hogy homokot bányász.
|
||||||
onset.fabricator = Használd az [accent]egységeket[], hogy felfedezd a pályát, megvédd az épületeket, és megtámadhasd velük az ellenséget. Fejleszd ki, és helyezz el egy \uf6a2 [accent]tankgyárat[].
|
onset.fabricator = Használd az [accent]egységeket[], hogy felfedezd a pályát, megvédd az épületeket, és megtámadhasd velük az ellenséget. Fejleszd ki, és helyezz el egy \uf6a2 [accent]Tankgyártót[].
|
||||||
onset.makeunit = Állíts elő egy egységet.\nHasználd a „?” gombot, hogy megnézd a kiválasztott gyár követelményeit.
|
onset.makeunit = Állíts elő egy egységet.\nHasználd a „?” gombot, hogy megnézd a kiválasztott gyár követelményeit.
|
||||||
onset.turrets = Az egységek hatékonyak, de hatásosan alkalmazva a [accent]lövegtornyok[] jobb védelmi képességeket biztosítanak.\nHelyezz el egy \uf6eb [accent]Breach[] lövegtornyot.\nA lövegtornyoknak \uf748 [accent]lőszerre[] van szüksége.
|
onset.turrets = Az egységek hatékonyak, de hatásosan alkalmazva a [accent]lövegtornyok[] jobb védelmi képességeket biztosítanak.\nHelyezz el egy \uf6eb [accent]Breach[] lövegtornyot.\nA lövegtornyoknak \uf748 [accent]lőszerre[] van szüksége.
|
||||||
onset.turretammo = Szállítótalagok használatával lásd el a lövegtornyokat [accent]berillium[] lőszerrel.
|
onset.turretammo = Szállítótalagok használatával lásd el a lövegtornyokat [accent]berillium[] lőszerrel.
|
||||||
@@ -1966,18 +1981,18 @@ onset.defenses = [accent]Állíts fel védelmet:[lightgray] {0}
|
|||||||
onset.attack = Az ellenség most sebezhető. Indítsd ellentámadást.
|
onset.attack = Az ellenség most sebezhető. Indítsd ellentámadást.
|
||||||
onset.cores = Új támaszpont csak a [accent]támaszpontcsempére[] helyezhető.\nAz új támaszpontok előretolt bázisként működnek, és megosztják a nyersanyagkészletüket más támaszpontokkal.\nHelyezz el egy \uf725 támaszpontot.
|
onset.cores = Új támaszpont csak a [accent]támaszpontcsempére[] helyezhető.\nAz új támaszpontok előretolt bázisként működnek, és megosztják a nyersanyagkészletüket más támaszpontokkal.\nHelyezz el egy \uf725 támaszpontot.
|
||||||
onset.detect = Az ellenség 2 percen belül észrevesz téged.\nÁllíts fel védelmet, bányászatot és termelést.
|
onset.detect = Az ellenség 2 percen belül észrevesz téged.\nÁllíts fel védelmet, bányászatot és termelést.
|
||||||
onset.commandmode = Tartsd nyomva a [accent]Shift[] gombot, hogy [accent]parancs módba[] lépj.\n[accent]Bal egérgombbal és húzással[] lehet egységeket kijelölni.\n[accent]Jobb egérgombbal[] utasíthatók az egységek mozgásra vagy támadásra.
|
onset.commandmode = Tartsd nyomva a [accent]Shift[] gombot, hogy [accent]parancs módba[] lépj.\n[accent]Bal egérgombbal és húzással[] lehet egységeket kijelölni.\n[accent]Jobb egérgombbal[] az egységek mozgásra vagy támadásra utasíthatóak.
|
||||||
onset.commandmode.mobile = Nyomd meg a [accent]parancs gombot[], hogy [accent]parancs módba[] lépj.\nTartsd nyomva az ujjad, majd [accent]húzd[] az egységek kiválasztásához.\n[accent]Koppintással[] utasíthatók az egységek mozgásra vagy támadásra.
|
onset.commandmode.mobile = Nyomd meg a [accent]parancs gombot[], hogy [accent]parancs módba[] lépj.\nTartsd nyomva az ujjad, majd [accent]húzd[] az egységek kiválasztásához.\n[accent]Koppintással[] az egységek mozgásra vagy támadásra utasíthatóak.
|
||||||
aegis.tungsten = Volfrámot [accent]ütvefúróval[] lehet bányászni.\nEnnek az épületnek [accent]vízre[] és [accent]áramra[] van szüksége.
|
aegis.tungsten = Volfrámot [accent]Ütvefúróval[] lehet bányászni.\nEnnek az épületnek [accent]vízre[] és [accent]áramra[] van szüksége.
|
||||||
|
|
||||||
split.pickup = Egyes blokkok a támaszpont drónjával is felvehetők.\nVedd fel ezt a [accent]konténert[] és helyezd egy [accent]rakománycsomagolóba[].\n(A felvétel és lerakás alapértelmezett gombjai: [[ és ].)
|
split.pickup = Egyes blokkok a támaszpont drónjával is felvehetőek.\nVedd fel ezt a [accent]konténert[] és helyezd egy [accent]rakománycsomagolóba[].\n(A felvétel és lerakás alapértelmezett gombjai: [[ és ].)
|
||||||
split.pickup.mobile = Egyes blokkok a támaszpont drónjával is felvehetők.\nVedd fel ezt a [accent]konténert[] és helyezd egy [accent]rakománycsomagolóba[].\n(A felvételhez és lerakáshoz nyomd meg hosszan.)
|
split.pickup.mobile = Egyes blokkok a támaszpont drónjával is felvehetőek.\nVedd fel ezt a [accent]konténert[] és helyezd egy [accent]rakománycsomagolóba[].\n(A felvételhez és lerakáshoz nyomd meg hosszan.)
|
||||||
split.acquire = Az egységek építéséhez volfrámot kell szerezned.
|
split.acquire = Az egységek építéséhez volfrámot kell szerezned.
|
||||||
split.build = Az egységeket a fal másik oldalára kell eljuttatni.\nÉpíts két [accent]rakomány-tömegmozgatót[], egyet-egyet a fal mindkét oldalán.\nÁllítsd be a szállítási kapcsolatukat úgy, hogy kiválasztod az egyiket, majd kiválasztod a másikat.
|
split.build = Az egységeket a fal másik oldalára kell eljuttatni.\nÉpíts két [accent]Rakomány-tömegmozgatót[], egyet-egyet a fal mindkét oldalán.\nÁllítsd be a szállítási kapcsolatukat úgy, hogy kiválasztod az egyiket, majd kiválasztod a másikat.
|
||||||
split.container = A konténerekhez hasonlóan, az egységek is szállíthatók a [accent]rakomány-tömegmozgatóval[].\nÉpíts egy egységgyárat egy tömegmozgató mellé, hogy feltöltsd őket, majd küldd át őket a falon, hogy megtámadják az ellenséges bázist.
|
split.container = A konténerekhez hasonlóan, az egységek is szállíthatóak a [accent]Rakomány-tömegmozgatóval[].\nÉpíts egy egységgyárat egy tömegmozgató mellé, hogy feltöltsd őket, majd küldd át őket a falon, hogy megtámadják az ellenséges bázist.
|
||||||
|
|
||||||
item.copper.description = Széleskörűen használatos építkezésnél és lőszerként.
|
item.copper.description = Széleskörűen használatos építkezésnél és lőszerként.
|
||||||
item.copper.details = Réz. Szokatlanul bőséges fém a Serpulón. Megerősítés nélkül strukturálisan gyenge.
|
item.copper.details = Réz. Szokatlanul bőségesen elterjedt fém a Serpulón. Megerősítés nélkül strukturálisan gyenge.
|
||||||
item.lead.description = Folyadékszállításnál és elektromos eszközökben használatos.
|
item.lead.description = Folyadékszállításnál és elektromos eszközökben használatos.
|
||||||
item.lead.details = Sűrű. Közömbös. Széles körben használatos az akkumulátorokban.\nMegjegyzés: Valószínűleg mérgező a biológiai életformákra. Nem mintha sok maradt volna errefelé.
|
item.lead.details = Sűrű. Közömbös. Széles körben használatos az akkumulátorokban.\nMegjegyzés: Valószínűleg mérgező a biológiai életformákra. Nem mintha sok maradt volna errefelé.
|
||||||
item.metaglass.description = Folyadékszállító és -tárolóépületeknél használatos.
|
item.metaglass.description = Folyadékszállító és -tárolóépületeknél használatos.
|
||||||
@@ -2025,15 +2040,15 @@ block.message.description = Üzenetet tárol a szövetségesek kommunikációjá
|
|||||||
block.reinforced-message.description = Üzenetet tárol a szövetségesek közötti kommunikációhoz.
|
block.reinforced-message.description = Üzenetet tárol a szövetségesek közötti kommunikációhoz.
|
||||||
block.world-message.description = A pályakészítésben használható üzenetblokk. Nem lehet megsemmisíteni.
|
block.world-message.description = A pályakészítésben használható üzenetblokk. Nem lehet megsemmisíteni.
|
||||||
block.graphite-press.description = Grafittá préseli a szenet.
|
block.graphite-press.description = Grafittá préseli a szenet.
|
||||||
block.multi-press.description = Grafittá préseli a szenet. Hűtése vizet igényel.
|
block.multi-press.description = Grafittá sajtolja a szenet. Hűtése vizet igényel.
|
||||||
block.silicon-smelter.description = A homokot és szenet szilíciummá finomítja.
|
block.silicon-smelter.description = A homokot és a szenet szilíciummá finomítja.
|
||||||
block.kiln.description = Ólomüveget olvaszt az ólomból és a homokból.
|
block.kiln.description = Ólomüveget olvaszt az ólomból és a homokból.
|
||||||
block.plastanium-compressor.description = Olaj és titán felhasználásával műanyagot gyárt.
|
block.plastanium-compressor.description = Olaj és titán felhasználásával műanyagot gyárt.
|
||||||
block.phase-weaver.description = Tórium és homok keverékéből tóritkvarcot állít elő.
|
block.phase-weaver.description = Tórium és homok keverékéből tóritkvarcot állít elő.
|
||||||
block.surge-smelter.description = Titán, ólom, szilícium és réz ötvözésével elektrometált állít elő.
|
block.surge-smelter.description = Titán, ólom, szilícium és réz ötvözésével elektrometált állít elő.
|
||||||
block.cryofluid-mixer.description = Finom titánpor vízhez keverésével hűtőfolyadékot állít elő.
|
block.cryofluid-mixer.description = Finom titánpor vízhez keverésével hűtőfolyadékot állít elő.
|
||||||
block.blast-mixer.description = Robbanóelegyet készít a piratitból és a spórakapszulákból.
|
block.blast-mixer.description = Robbanóelegyet készít a piratitból és a spórakapszulákból.
|
||||||
block.pyratite-mixer.description = Piratittá vegyíti a szenet, homokot és ólmot.
|
block.pyratite-mixer.description = Piratittá vegyíti a szenet, a homokot és az ólmot.
|
||||||
block.melter.description = Salakká olvasztja a törmeléket.
|
block.melter.description = Salakká olvasztja a törmeléket.
|
||||||
block.separator.description = Ásványi összetevőire bontja a salakot.
|
block.separator.description = Ásványi összetevőire bontja a salakot.
|
||||||
block.spore-press.description = Olajat sajtol a spórakapszulából.
|
block.spore-press.description = Olajat sajtol a spórakapszulából.
|
||||||
@@ -2084,7 +2099,7 @@ block.mass-driver.description = Nagy hatótávolságú nyersanyagszállító esz
|
|||||||
block.mechanical-pump.description = Folyadékot szivattyúz és ad ki. Nem igényel áramot.
|
block.mechanical-pump.description = Folyadékot szivattyúz és ad ki. Nem igényel áramot.
|
||||||
block.rotary-pump.description = Folyadékot szivattyúz és ad ki. Áramot igényel.
|
block.rotary-pump.description = Folyadékot szivattyúz és ad ki. Áramot igényel.
|
||||||
block.impulse-pump.description = Folyadékot szivattyúz és ad ki.
|
block.impulse-pump.description = Folyadékot szivattyúz és ad ki.
|
||||||
block.conduit.description = Folyadékot szállít. Pumpákkal és egyéb csővezetékekkel együtt használatos.
|
block.conduit.description = Folyadékot szállít. Szivattyúkkal és egyéb csővezetékekkel együtt használatos.
|
||||||
block.pulse-conduit.description = Folyadékot szállít. Gyorsabban szállít, és nagyobb tárolókapacitású, mint a szokásos csővezeték.
|
block.pulse-conduit.description = Folyadékot szállít. Gyorsabban szállít, és nagyobb tárolókapacitású, mint a szokásos csővezeték.
|
||||||
block.plated-conduit.description = Folyadékot szállít. Nem fogad el folyadékot oldalról. Nem szivárog, ha nincs a végén semmi.
|
block.plated-conduit.description = Folyadékot szállít. Nem fogad el folyadékot oldalról. Nem szivárog, ha nincs a végén semmi.
|
||||||
block.liquid-router.description = Egyenletesen háromfelé osztja szét a beérkező folyadékot. Bizonyos mennyiség tárolására is képes.
|
block.liquid-router.description = Egyenletesen háromfelé osztja szét a beérkező folyadékot. Bizonyos mennyiség tárolására is képes.
|
||||||
@@ -2149,11 +2164,11 @@ block.tsunami.description = Erős folyadékhullámot lő az ellenségre. Eloltja
|
|||||||
block.silicon-crucible.description = Szilíciumot finomít homokból és szénből, piratitot használ kiegészítő hőforrásként. Forró környezetben még hatékonyabb.
|
block.silicon-crucible.description = Szilíciumot finomít homokból és szénből, piratitot használ kiegészítő hőforrásként. Forró környezetben még hatékonyabb.
|
||||||
block.disassembler.description = Ritka ásványi összetevőket válogat ki a salakból, alacsony hatékonysággal. Képes tóriumot kiválogatni.
|
block.disassembler.description = Ritka ásványi összetevőket válogat ki a salakból, alacsony hatékonysággal. Képes tóriumot kiválogatni.
|
||||||
block.overdrive-dome.description = Megnöveli a környező épületek termelési sebességét. A működtetése tóritkvarcot és szilíciumot igényel.
|
block.overdrive-dome.description = Megnöveli a környező épületek termelési sebességét. A működtetése tóritkvarcot és szilíciumot igényel.
|
||||||
block.payload-conveyor.description = Nagy mennyiségű terhet mozgatni, például gyárakból érkező nyersanyagokat. Mágneses. Használható súlytalanságban.
|
block.payload-conveyor.description = Nagy méretű terhet mozgat, például gyárakból érkező egységeket. Mágneses. Használható súlytalanságban.
|
||||||
block.payload-router.description = Háromfelé osztja szét a beérkező terhet. Rendezőként is szolgál, ha van megadva szűrő. Mágneses. Használható súlytalanságban.
|
block.payload-router.description = Háromfelé osztja szét a beérkező terhet. Rendezőként is szolgál, ha van megadva szűrő. Mágneses. Használható súlytalanságban.
|
||||||
block.ground-factory.description = Földi egységeket gyárt. A kész egységek azonnal hadra foghatók, vagy újratervezőkben továbbfejleszthetők.
|
block.ground-factory.description = Földi egységeket gyárt. Az elkészült egységek azonnal hadra foghatóak, vagy újratervezőkben továbbfejleszthetőek.
|
||||||
block.air-factory.description = Légi egységeket gyárt. A kész egységek azonnal hadra foghatók, vagy újratervezőkben továbbfejleszthetők.
|
block.air-factory.description = Légi egységeket gyárt. Az elkészült egységek azonnal hadra foghatóak, vagy újratervezőkben továbbfejleszthetőek.
|
||||||
block.naval-factory.description = Vízi egységeket gyárt. A kész egységek azonnal hadra foghatók, vagy újratervezőkben továbbfejleszthetők.
|
block.naval-factory.description = Vízi egységeket gyárt. Az elkészült egységek azonnal hadra foghatóak, vagy újratervezőkben továbbfejleszthetőek.
|
||||||
block.additive-reconstructor.description = Kettes szintre fejleszti a beérkező egységeket.
|
block.additive-reconstructor.description = Kettes szintre fejleszti a beérkező egységeket.
|
||||||
block.multiplicative-reconstructor.description = Hármas szintre fejleszti a beérkező egységeket.
|
block.multiplicative-reconstructor.description = Hármas szintre fejleszti a beérkező egységeket.
|
||||||
block.exponential-reconstructor.description = Négyes szintre fejleszti a beérkező egységeket.
|
block.exponential-reconstructor.description = Négyes szintre fejleszti a beérkező egységeket.
|
||||||
@@ -2183,7 +2198,7 @@ block.lustre.description = Lassan mozgó, egyszerre egy célpontra ható lézert
|
|||||||
block.scathe.description = Nagy erejű rakétát indít jelentős távolságokra lévő földi célpontok ellen.
|
block.scathe.description = Nagy erejű rakétát indít jelentős távolságokra lévő földi célpontok ellen.
|
||||||
block.smite.description = Átütő erejű, villámló lövedékeket lő ki.
|
block.smite.description = Átütő erejű, villámló lövedékeket lő ki.
|
||||||
block.malign.description = Lézertöltetekből álló célzott sortüzet zúdít az ellenséges célpontokra. Jelentős fűtést igényel.
|
block.malign.description = Lézertöltetekből álló célzott sortüzet zúdít az ellenséges célpontokra. Jelentős fűtést igényel.
|
||||||
block.silicon-arc-furnace.description = A homokot és grafitot szilíciummá finomítja.
|
block.silicon-arc-furnace.description = A homokot és a grafitot szilíciummá finomítja.
|
||||||
block.oxidation-chamber.description = A berilliumot és az ózont oxiddá alakítja. Melléktermékként hőt bocsát ki.
|
block.oxidation-chamber.description = A berilliumot és az ózont oxiddá alakítja. Melléktermékként hőt bocsát ki.
|
||||||
block.electric-heater.description = Fűti a vele szemben álló épületeket. Nagy mennyiségű áramot igényel.
|
block.electric-heater.description = Fűti a vele szemben álló épületeket. Nagy mennyiségű áramot igényel.
|
||||||
block.slag-heater.description = Fűti a vele szemben álló épületeket. Salakot igényel.
|
block.slag-heater.description = Fűti a vele szemben álló épületeket. Salakot igényel.
|
||||||
@@ -2242,9 +2257,9 @@ block.build-tower.description = Automatikusan újjáépíti a hatósugarában l
|
|||||||
block.regen-projector.description = Lassan javítja a szövetséges építményeket egy négyzet alakú területen. Hidrogént igényel.\nTóritkvarc felhasználásával növelhető a hatékonysága.
|
block.regen-projector.description = Lassan javítja a szövetséges építményeket egy négyzet alakú területen. Hidrogént igényel.\nTóritkvarc felhasználásával növelhető a hatékonysága.
|
||||||
block.reinforced-container.description = Kis mennyiségű nyersanyagot tud tárolni. A tartalma kirakodók segítségével nyerhető ki. Nem növeli a támaszpont tárolókapacitását.
|
block.reinforced-container.description = Kis mennyiségű nyersanyagot tud tárolni. A tartalma kirakodók segítségével nyerhető ki. Nem növeli a támaszpont tárolókapacitását.
|
||||||
block.reinforced-vault.description = Nagy mennyiségű nyersanyagot tud tárolni. A tartalma kirakodók segítségével nyerhető ki. Nem növeli a támaszpont tárolókapacitását.
|
block.reinforced-vault.description = Nagy mennyiségű nyersanyagot tud tárolni. A tartalma kirakodók segítségével nyerhető ki. Nem növeli a támaszpont tárolókapacitását.
|
||||||
block.tank-fabricator.description = Stell egységeket épít. A kimeneti egységek közvetlenül használhatók, vagy fejlesztésre újratervezőkbe küldhetők.
|
block.tank-fabricator.description = Stell egységeket épít. Az elkészült egységek azonnal hadra foghatóak, vagy újratervezőkben továbbfejleszthetőek.
|
||||||
block.ship-fabricator.description = Elude egységeket épít. A kimeneti egységek közvetlenül használhatók, vagy fejlesztésre újratervezőkbe küldhetők.
|
block.ship-fabricator.description = Elude egységeket épít. Az elkészült egységek azonnal hadra foghatóak, vagy újratervezőkben továbbfejleszthetőek.
|
||||||
block.mech-fabricator.description = Merui egységeket épít. A kimeneti egységek közvetlenül használhatók, vagy fejlesztésre újratervezőkbe küldhetők.
|
block.mech-fabricator.description = Merui egységeket épít. Az elkészült egységek azonnal hadra foghatóak, vagy újratervezőkben továbbfejleszthetőek.
|
||||||
block.tank-assembler.description = Nagy méretű tankokat állít össze a beadott blokkokból és egységekből. A kimeneti szint modulok hozzáadásával növelhető.
|
block.tank-assembler.description = Nagy méretű tankokat állít össze a beadott blokkokból és egységekből. A kimeneti szint modulok hozzáadásával növelhető.
|
||||||
block.ship-assembler.description = Nagy méretű hajókat állít össze a beadott blokkokból és egységekből. A kimeneti szint modulok hozzáadásával növelhető.
|
block.ship-assembler.description = Nagy méretű hajókat állít össze a beadott blokkokból és egységekből. A kimeneti szint modulok hozzáadásával növelhető.
|
||||||
block.mech-assembler.description = Nagy méretű mecheket állít össze a beadott blokkokból és egységekből. A kimeneti szint modulok hozzáadásával növelhető.
|
block.mech-assembler.description = Nagy méretű mecheket állít össze a beadott blokkokból és egységekből. A kimeneti szint modulok hozzáadásával növelhető.
|
||||||
@@ -2452,7 +2467,7 @@ graphicstype.poly = Egy szabályos sokszög kitöltése.
|
|||||||
graphicstype.linepoly = Szabályos sokszög körvonalának rajzolása.
|
graphicstype.linepoly = Szabályos sokszög körvonalának rajzolása.
|
||||||
graphicstype.triangle = Egy háromszög kitöltése.
|
graphicstype.triangle = Egy háromszög kitöltése.
|
||||||
graphicstype.image = Kép rajzolása valamilyen tartalomról.\nPéldául: [accent]@router[] vagy [accent]@dagger[].
|
graphicstype.image = Kép rajzolása valamilyen tartalomról.\nPéldául: [accent]@router[] vagy [accent]@dagger[].
|
||||||
graphicstype.print = Szöveget rajzol a kiírási pufferből.\nCsak ASCII karakterek használhatók.\nTörli a kiírás puffert.
|
graphicstype.print = Szöveget rajzol a kiírási pufferből.\nCsak ASCII karakterek használhatóak.\nTörli a kiírás puffert.
|
||||||
|
|
||||||
lenum.always = Mindig igaz.
|
lenum.always = Mindig igaz.
|
||||||
lenum.idiv = Egész osztás.
|
lenum.idiv = Egész osztás.
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Peraturan:
|
|||||||
editor.generation = Generasi:
|
editor.generation = Generasi:
|
||||||
editor.objectives = Tujuan
|
editor.objectives = Tujuan
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Sunting dalam Permainan
|
editor.ingame = Sunting dalam Permainan
|
||||||
editor.playtest = Tes Bermain
|
editor.playtest = Tes Bermain
|
||||||
editor.publish.workshop = Terbitkan di Workshop
|
editor.publish.workshop = Terbitkan di Workshop
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Standar>
|
|||||||
details = Detail...
|
details = Detail...
|
||||||
edit = Sunting...
|
edit = Sunting...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nama:
|
editor.name = Nama:
|
||||||
editor.spawn = Munculkan Unit
|
editor.spawn = Munculkan Unit
|
||||||
@@ -584,6 +590,7 @@ filter.clear = Bersih
|
|||||||
filter.option.ignore = Biarkan
|
filter.option.ignore = Biarkan
|
||||||
filter.scatter = Penebaran
|
filter.scatter = Penebaran
|
||||||
filter.terrain = Lahan
|
filter.terrain = Lahan
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Ukuran
|
filter.option.scale = Ukuran
|
||||||
filter.option.chance = Kemungkinan
|
filter.option.chance = Kemungkinan
|
||||||
@@ -607,6 +614,8 @@ filter.option.floor2 = Lantai Sekunder
|
|||||||
filter.option.threshold2 = Ambang Sekunder
|
filter.option.threshold2 = Ambang Sekunder
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Perseratus
|
filter.option.percentile = Perseratus
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -982,6 +991,7 @@ stat.abilities = Kemampuan
|
|||||||
stat.canboost = Dapat Dipercepat
|
stat.canboost = Dapat Dipercepat
|
||||||
stat.flying = Terbang
|
stat.flying = Terbang
|
||||||
stat.ammouse = Penggunaan Amunisi
|
stat.ammouse = Penggunaan Amunisi
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Penggandaan Kekuatan (dmg)
|
stat.damagemultiplier = Penggandaan Kekuatan (dmg)
|
||||||
stat.healthmultiplier = Penggandaan Darah
|
stat.healthmultiplier = Penggandaan Darah
|
||||||
stat.speedmultiplier = Penggandaan Kecepatan
|
stat.speedmultiplier = Penggandaan Kecepatan
|
||||||
@@ -1107,6 +1117,7 @@ unit.items = bahan
|
|||||||
unit.thousands = rb
|
unit.thousands = rb
|
||||||
unit.millions = jt
|
unit.millions = jt
|
||||||
unit.billions = m
|
unit.billions = m
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /tembakan
|
unit.pershot = /tembakan
|
||||||
category.purpose = Kegunaan
|
category.purpose = Kegunaan
|
||||||
category.general = Umum
|
category.general = Umum
|
||||||
|
|||||||
@@ -437,6 +437,11 @@ editor.rules = Regole:
|
|||||||
editor.generation = Generazione:
|
editor.generation = Generazione:
|
||||||
editor.objectives = Obbiettivi
|
editor.objectives = Obbiettivi
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Modifica in Gioco
|
editor.ingame = Modifica in Gioco
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Pubblica nel Workshop
|
editor.publish.workshop = Pubblica nel Workshop
|
||||||
@@ -493,6 +498,7 @@ editor.default = [lightgray]<Predefinito>
|
|||||||
details = Dettagli...
|
details = Dettagli...
|
||||||
edit = Modifica...
|
edit = Modifica...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nome:
|
editor.name = Nome:
|
||||||
editor.spawn = Piazza un'Unità
|
editor.spawn = Piazza un'Unità
|
||||||
@@ -580,6 +586,7 @@ filter.clear = Resetta Filtro
|
|||||||
filter.option.ignore = Ignora
|
filter.option.ignore = Ignora
|
||||||
filter.scatter = Dispersione
|
filter.scatter = Dispersione
|
||||||
filter.terrain = Terreno
|
filter.terrain = Terreno
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Scala
|
filter.option.scale = Scala
|
||||||
filter.option.chance = Probabilità
|
filter.option.chance = Probabilità
|
||||||
filter.option.mag = Magnitudine
|
filter.option.mag = Magnitudine
|
||||||
@@ -602,6 +609,8 @@ filter.option.floor2 = Terreno Secondario
|
|||||||
filter.option.threshold2 = Soglia Secondaria
|
filter.option.threshold2 = Soglia Secondaria
|
||||||
filter.option.radius = Raggio
|
filter.option.radius = Raggio
|
||||||
filter.option.percentile = Percentuale
|
filter.option.percentile = Percentuale
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -968,6 +977,7 @@ stat.abilities = Abilità
|
|||||||
stat.canboost = Capace di Potenziamento
|
stat.canboost = Capace di Potenziamento
|
||||||
stat.flying = Volo
|
stat.flying = Volo
|
||||||
stat.ammouse = Consumo di munizioni
|
stat.ammouse = Consumo di munizioni
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Moltiplicatore danni
|
stat.damagemultiplier = Moltiplicatore danni
|
||||||
stat.healthmultiplier = Moltiplicatore salute
|
stat.healthmultiplier = Moltiplicatore salute
|
||||||
stat.speedmultiplier = Moltiplicatore velocità
|
stat.speedmultiplier = Moltiplicatore velocità
|
||||||
@@ -1094,6 +1104,7 @@ unit.items = oggetti
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mln
|
unit.millions = mln
|
||||||
unit.billions = mld
|
unit.billions = mld
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /colpo
|
unit.pershot = /colpo
|
||||||
category.purpose = Scopo
|
category.purpose = Scopo
|
||||||
category.general = Generali
|
category.general = Generali
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = ルール:
|
|||||||
editor.generation = 生成:
|
editor.generation = 生成:
|
||||||
editor.objectives = オブジェクティブ
|
editor.objectives = オブジェクティブ
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = ゲーム内で編集する
|
editor.ingame = ゲーム内で編集する
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = ワークショップで公開
|
editor.publish.workshop = ワークショップで公開
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<デフォルト>
|
|||||||
details = 詳細...
|
details = 詳細...
|
||||||
edit = 編集...
|
edit = 編集...
|
||||||
variables = 変数
|
variables = 変数
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = 名前:
|
editor.name = 名前:
|
||||||
editor.spawn = ユニットを出す
|
editor.spawn = ユニットを出す
|
||||||
@@ -583,6 +589,7 @@ filter.clear = クリア
|
|||||||
filter.option.ignore = 無視
|
filter.option.ignore = 無視
|
||||||
filter.scatter = 分散
|
filter.scatter = 分散
|
||||||
filter.terrain = 地形
|
filter.terrain = 地形
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = スケール
|
filter.option.scale = スケール
|
||||||
filter.option.chance = 確率
|
filter.option.chance = 確率
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = 2番目の地面
|
|||||||
filter.option.threshold2 = 2番目の閾値
|
filter.option.threshold2 = 2番目の閾値
|
||||||
filter.option.radius = 半径
|
filter.option.radius = 半径
|
||||||
filter.option.percentile = パーセンタイル
|
filter.option.percentile = パーセンタイル
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -974,6 +983,7 @@ stat.abilities = 能力
|
|||||||
stat.canboost = ブースト可能
|
stat.canboost = ブースト可能
|
||||||
stat.flying = 飛行
|
stat.flying = 飛行
|
||||||
stat.ammouse = 使用弾薬
|
stat.ammouse = 使用弾薬
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = ダメージ倍率
|
stat.damagemultiplier = ダメージ倍率
|
||||||
stat.healthmultiplier = 体力倍率
|
stat.healthmultiplier = 体力倍率
|
||||||
stat.speedmultiplier = スピード倍率
|
stat.speedmultiplier = スピード倍率
|
||||||
@@ -1100,6 +1110,7 @@ unit.items = アイテム
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /発
|
unit.pershot = /発
|
||||||
category.purpose = 説明
|
category.purpose = 説明
|
||||||
category.general = 一般
|
category.general = 一般
|
||||||
|
|||||||
@@ -438,6 +438,11 @@ editor.rules = 규칙
|
|||||||
editor.generation = 지형 생성
|
editor.generation = 지형 생성
|
||||||
editor.objectives = 목표
|
editor.objectives = 목표
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = 인게임 편집
|
editor.ingame = 인게임 편집
|
||||||
editor.playtest = 맵 테스트
|
editor.playtest = 맵 테스트
|
||||||
editor.publish.workshop = 창작마당 게시
|
editor.publish.workshop = 창작마당 게시
|
||||||
@@ -494,6 +499,7 @@ editor.default = [lightgray]<기본값>
|
|||||||
details = 설명...
|
details = 설명...
|
||||||
edit = 편집...
|
edit = 편집...
|
||||||
variables = 변수
|
variables = 변수
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = 이름:
|
editor.name = 이름:
|
||||||
editor.spawn = 기체 생성
|
editor.spawn = 기체 생성
|
||||||
@@ -583,6 +589,7 @@ filter.clear = 초기화
|
|||||||
filter.option.ignore = 무시
|
filter.option.ignore = 무시
|
||||||
filter.scatter = 흩뿌리기
|
filter.scatter = 흩뿌리기
|
||||||
filter.terrain = 지형
|
filter.terrain = 지형
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = 크기
|
filter.option.scale = 크기
|
||||||
filter.option.chance = 배치 빈도
|
filter.option.chance = 배치 빈도
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = 2번째 타일
|
|||||||
filter.option.threshold2 = 2번째 경계선
|
filter.option.threshold2 = 2번째 경계선
|
||||||
filter.option.radius = 반경
|
filter.option.radius = 반경
|
||||||
filter.option.percentile = 백분율
|
filter.option.percentile = 백분율
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -974,6 +983,7 @@ stat.abilities = 능력
|
|||||||
stat.canboost = 이륙 가능
|
stat.canboost = 이륙 가능
|
||||||
stat.flying = 비행
|
stat.flying = 비행
|
||||||
stat.ammouse = 탄약 사용
|
stat.ammouse = 탄약 사용
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = 피해량 배수
|
stat.damagemultiplier = 피해량 배수
|
||||||
stat.healthmultiplier = 체력 배수
|
stat.healthmultiplier = 체력 배수
|
||||||
stat.speedmultiplier = 이동속도 배수
|
stat.speedmultiplier = 이동속도 배수
|
||||||
@@ -1099,6 +1109,7 @@ unit.items = 자원
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = m
|
unit.millions = m
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /발
|
unit.pershot = /발
|
||||||
category.purpose = 목적
|
category.purpose = 목적
|
||||||
category.general = 일반
|
category.general = 일반
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Taisyklės:
|
|||||||
editor.generation = Generacija:
|
editor.generation = Generacija:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Redaguoti žaidime
|
editor.ingame = Redaguoti žaidime
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publikuoti Dirbtuvėje
|
editor.publish.workshop = Publikuoti Dirbtuvėje
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Numatytasis>
|
|||||||
details = Detaliau...
|
details = Detaliau...
|
||||||
edit = Redaguoti...
|
edit = Redaguoti...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Pavadinimas:
|
editor.name = Pavadinimas:
|
||||||
editor.spawn = Atradinti vienetą
|
editor.spawn = Atradinti vienetą
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Išvalyti
|
|||||||
filter.option.ignore = ignoruoti
|
filter.option.ignore = ignoruoti
|
||||||
filter.scatter = Išsklaidyti
|
filter.scatter = Išsklaidyti
|
||||||
filter.terrain = Reljefas
|
filter.terrain = Reljefas
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Mastelis
|
filter.option.scale = Mastelis
|
||||||
filter.option.chance = Tikimybė
|
filter.option.chance = Tikimybė
|
||||||
filter.option.mag = Didumas
|
filter.option.mag = Didumas
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Antrasis sluoksnis
|
|||||||
filter.option.threshold2 = Antrasis slenkstis
|
filter.option.threshold2 = Antrasis slenkstis
|
||||||
filter.option.radius = Spindulys
|
filter.option.radius = Spindulys
|
||||||
filter.option.percentile = Procentilė
|
filter.option.percentile = Procentilė
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = daiktai
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = Bendra
|
category.general = Bendra
|
||||||
|
|||||||
@@ -443,6 +443,11 @@ editor.rules = Regels:
|
|||||||
editor.generation = Generatie:
|
editor.generation = Generatie:
|
||||||
editor.objectives = Doelen
|
editor.objectives = Doelen
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Bewerk In-Spel
|
editor.ingame = Bewerk In-Spel
|
||||||
editor.playtest = Speeltest
|
editor.playtest = Speeltest
|
||||||
editor.publish.workshop = Publiceer in Werkplaats
|
editor.publish.workshop = Publiceer in Werkplaats
|
||||||
@@ -498,6 +503,7 @@ editor.default = [lightgray]<Standaard>
|
|||||||
details = Details...
|
details = Details...
|
||||||
edit = Bewerk...
|
edit = Bewerk...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Naam:
|
editor.name = Naam:
|
||||||
editor.spawn = Voeg Eenheid toe
|
editor.spawn = Voeg Eenheid toe
|
||||||
@@ -586,6 +592,7 @@ filter.clear = Verwijder
|
|||||||
filter.option.ignore = Negeer
|
filter.option.ignore = Negeer
|
||||||
filter.scatter = Verstrooi
|
filter.scatter = Verstrooi
|
||||||
filter.terrain = Terrein
|
filter.terrain = Terrein
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Schaal
|
filter.option.scale = Schaal
|
||||||
filter.option.chance = Verander
|
filter.option.chance = Verander
|
||||||
@@ -609,6 +616,8 @@ filter.option.floor2 = Secundaire Vloer
|
|||||||
filter.option.threshold2 = Secundaire Drempel
|
filter.option.threshold2 = Secundaire Drempel
|
||||||
filter.option.radius = Straal
|
filter.option.radius = Straal
|
||||||
filter.option.percentile = percentiel
|
filter.option.percentile = percentiel
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -975,6 +984,7 @@ stat.abilities = Capaciteiten
|
|||||||
stat.canboost = Kan Boosten
|
stat.canboost = Kan Boosten
|
||||||
stat.flying = Vliegende
|
stat.flying = Vliegende
|
||||||
stat.ammouse = Ammunitie gebruik
|
stat.ammouse = Ammunitie gebruik
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Schade Vermenigvuldiger
|
stat.damagemultiplier = Schade Vermenigvuldiger
|
||||||
stat.healthmultiplier = Levenspunten Vermenigvuldiger
|
stat.healthmultiplier = Levenspunten Vermenigvuldiger
|
||||||
stat.speedmultiplier = Snelheids Vermenigvuldiger
|
stat.speedmultiplier = Snelheids Vermenigvuldiger
|
||||||
@@ -1101,6 +1111,7 @@ unit.items = materialen
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mln
|
unit.millions = mln
|
||||||
unit.billions = mjd
|
unit.billions = mjd
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /schot
|
unit.pershot = /schot
|
||||||
category.purpose = Doel
|
category.purpose = Doel
|
||||||
category.general = Algemeen
|
category.general = Algemeen
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Rules:
|
|||||||
editor.generation = Generation:
|
editor.generation = Generation:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edit In-Game
|
editor.ingame = Edit In-Game
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publish On Workshop
|
editor.publish.workshop = Publish On Workshop
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Default>
|
|||||||
details = Details...
|
details = Details...
|
||||||
edit = Edit...
|
edit = Edit...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Name:
|
editor.name = Name:
|
||||||
editor.spawn = Spawn Unit
|
editor.spawn = Spawn Unit
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Clear
|
|||||||
filter.option.ignore = Ignore
|
filter.option.ignore = Ignore
|
||||||
filter.scatter = Scatter
|
filter.scatter = Scatter
|
||||||
filter.terrain = Terrain
|
filter.terrain = Terrain
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Scale
|
filter.option.scale = Scale
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
filter.option.mag = Magnitude
|
filter.option.mag = Magnitude
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Secondary Floor
|
|||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Secondary Threshold
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Percentile
|
filter.option.percentile = Percentile
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = items
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = General
|
category.general = General
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Zasady:
|
|||||||
editor.generation = Generacja:
|
editor.generation = Generacja:
|
||||||
editor.objectives = Cele
|
editor.objectives = Cele
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edytuj w Grze
|
editor.ingame = Edytuj w Grze
|
||||||
editor.playtest = Testuj Mapę
|
editor.playtest = Testuj Mapę
|
||||||
editor.publish.workshop = Opublikuj w Warsztacie
|
editor.publish.workshop = Opublikuj w Warsztacie
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Domyślne>
|
|||||||
details = Detale...
|
details = Detale...
|
||||||
edit = Edytuj...
|
edit = Edytuj...
|
||||||
variables = Zmienne
|
variables = Zmienne
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nazwa:
|
editor.name = Nazwa:
|
||||||
editor.spawn = Stwórz Jednostkę
|
editor.spawn = Stwórz Jednostkę
|
||||||
@@ -582,6 +588,7 @@ filter.clear = Oczyść
|
|||||||
filter.option.ignore = Ignoruj
|
filter.option.ignore = Ignoruj
|
||||||
filter.scatter = Rozprosz
|
filter.scatter = Rozprosz
|
||||||
filter.terrain = Teren
|
filter.terrain = Teren
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Skala
|
filter.option.scale = Skala
|
||||||
filter.option.chance = Szansa
|
filter.option.chance = Szansa
|
||||||
filter.option.mag = Wielkość
|
filter.option.mag = Wielkość
|
||||||
@@ -604,6 +611,8 @@ filter.option.floor2 = Druga Podłoga
|
|||||||
filter.option.threshold2 = Drugi Próg
|
filter.option.threshold2 = Drugi Próg
|
||||||
filter.option.radius = Zasięg
|
filter.option.radius = Zasięg
|
||||||
filter.option.percentile = Procent
|
filter.option.percentile = Procent
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -972,6 +981,7 @@ stat.abilities = Umiejętności
|
|||||||
stat.canboost = Może przyspieszyć
|
stat.canboost = Może przyspieszyć
|
||||||
stat.flying = Może latać
|
stat.flying = Może latać
|
||||||
stat.ammouse = Zużycie Amunicji
|
stat.ammouse = Zużycie Amunicji
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Mnożnik Obrażeń
|
stat.damagemultiplier = Mnożnik Obrażeń
|
||||||
stat.healthmultiplier = Mnożnik Zdrowia
|
stat.healthmultiplier = Mnożnik Zdrowia
|
||||||
stat.speedmultiplier = Mnożnik Prędkości
|
stat.speedmultiplier = Mnożnik Prędkości
|
||||||
@@ -1098,6 +1108,7 @@ unit.items = przedmioty
|
|||||||
unit.thousands = tys.
|
unit.thousands = tys.
|
||||||
unit.millions = mln.
|
unit.millions = mln.
|
||||||
unit.billions = mld.
|
unit.billions = mld.
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /strzał
|
unit.pershot = /strzał
|
||||||
category.purpose = Opis
|
category.purpose = Opis
|
||||||
category.general = Główne
|
category.general = Główne
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Regras:
|
|||||||
editor.generation = Geração:
|
editor.generation = Geração:
|
||||||
editor.objectives = Objetivos:
|
editor.objectives = Objetivos:
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Editar em jogo
|
editor.ingame = Editar em jogo
|
||||||
editor.playtest = Jogar Teste
|
editor.playtest = Jogar Teste
|
||||||
editor.publish.workshop = Publicar na oficina
|
editor.publish.workshop = Publicar na oficina
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<padrão>
|
|||||||
details = Detalhes...
|
details = Detalhes...
|
||||||
edit = Editar...
|
edit = Editar...
|
||||||
variables = Variáveis
|
variables = Variáveis
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nome:
|
editor.name = Nome:
|
||||||
editor.spawn = Spawnar unidade
|
editor.spawn = Spawnar unidade
|
||||||
@@ -584,6 +590,7 @@ filter.clear = Excluir
|
|||||||
filter.option.ignore = Ignorar
|
filter.option.ignore = Ignorar
|
||||||
filter.scatter = Dispersão
|
filter.scatter = Dispersão
|
||||||
filter.terrain = Terreno
|
filter.terrain = Terreno
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Escala
|
filter.option.scale = Escala
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
@@ -607,6 +614,8 @@ filter.option.floor2 = Chão secundário
|
|||||||
filter.option.threshold2 = Margem secundária
|
filter.option.threshold2 = Margem secundária
|
||||||
filter.option.radius = Raio
|
filter.option.radius = Raio
|
||||||
filter.option.percentile = Percentual
|
filter.option.percentile = Percentual
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -983,6 +992,7 @@ stat.abilities = Habilidades
|
|||||||
stat.canboost = Pode impulsionar
|
stat.canboost = Pode impulsionar
|
||||||
stat.flying = Voador
|
stat.flying = Voador
|
||||||
stat.ammouse = Consumo de Munição
|
stat.ammouse = Consumo de Munição
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Multiplicador de Dano
|
stat.damagemultiplier = Multiplicador de Dano
|
||||||
stat.healthmultiplier = Multiplicador de Vida
|
stat.healthmultiplier = Multiplicador de Vida
|
||||||
stat.speedmultiplier = Multiplicador de Velocidade
|
stat.speedmultiplier = Multiplicador de Velocidade
|
||||||
@@ -1108,6 +1118,7 @@ unit.items = itens
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = m
|
unit.millions = m
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /disparo
|
unit.pershot = /disparo
|
||||||
category.purpose = Propósito
|
category.purpose = Propósito
|
||||||
category.general = Geral
|
category.general = Geral
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Regras:
|
|||||||
editor.generation = Geração:
|
editor.generation = Geração:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Editar em jogo
|
editor.ingame = Editar em jogo
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publicar na oficina
|
editor.publish.workshop = Publicar na oficina
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<padrão>
|
|||||||
details = Detalhes...
|
details = Detalhes...
|
||||||
edit = Editar...
|
edit = Editar...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nome:
|
editor.name = Nome:
|
||||||
editor.spawn = Criar unidade
|
editor.spawn = Criar unidade
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Excluir
|
|||||||
filter.option.ignore = Ignorar
|
filter.option.ignore = Ignorar
|
||||||
filter.scatter = Dispersão
|
filter.scatter = Dispersão
|
||||||
filter.terrain = Terreno
|
filter.terrain = Terreno
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Escala
|
filter.option.scale = Escala
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
filter.option.mag = Magnitude
|
filter.option.mag = Magnitude
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Chão secundário
|
|||||||
filter.option.threshold2 = Margem secundária
|
filter.option.threshold2 = Margem secundária
|
||||||
filter.option.radius = Raio
|
filter.option.radius = Raio
|
||||||
filter.option.percentile = Percentual
|
filter.option.percentile = Percentual
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = itens
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = Geral
|
category.general = Geral
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Reguli:
|
|||||||
editor.generation = Generare:
|
editor.generation = Generare:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Editează în Joc
|
editor.ingame = Editează în Joc
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publică pe Workshop
|
editor.publish.workshop = Publică pe Workshop
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Prestabilit>
|
|||||||
details = Detalii...
|
details = Detalii...
|
||||||
edit = Editează...
|
edit = Editează...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Nume:
|
editor.name = Nume:
|
||||||
editor.spawn = Adaugă Unitate
|
editor.spawn = Adaugă Unitate
|
||||||
@@ -583,6 +589,7 @@ filter.clear = Curăță
|
|||||||
filter.option.ignore = Ignoră
|
filter.option.ignore = Ignoră
|
||||||
filter.scatter = Împrăștie
|
filter.scatter = Împrăștie
|
||||||
filter.terrain = Teren
|
filter.terrain = Teren
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Scară
|
filter.option.scale = Scară
|
||||||
filter.option.chance = Șansă
|
filter.option.chance = Șansă
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = Podea Secundară
|
|||||||
filter.option.threshold2 = Cantitate Secundară
|
filter.option.threshold2 = Cantitate Secundară
|
||||||
filter.option.radius = Rază
|
filter.option.radius = Rază
|
||||||
filter.option.percentile = Procent
|
filter.option.percentile = Procent
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -974,6 +983,7 @@ stat.abilities = Abilități
|
|||||||
stat.canboost = Are Propulsor
|
stat.canboost = Are Propulsor
|
||||||
stat.flying = Zboară
|
stat.flying = Zboară
|
||||||
stat.ammouse = Consum muniție
|
stat.ammouse = Consum muniție
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Multiplicator Forță
|
stat.damagemultiplier = Multiplicator Forță
|
||||||
stat.healthmultiplier = Multiplicator Viață
|
stat.healthmultiplier = Multiplicator Viață
|
||||||
stat.speedmultiplier = Multiplicator Viteză
|
stat.speedmultiplier = Multiplicator Viteză
|
||||||
@@ -1100,6 +1110,7 @@ unit.items = materiale
|
|||||||
unit.thousands = mii
|
unit.thousands = mii
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = mld
|
unit.billions = mld
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /lovitură
|
unit.pershot = /lovitură
|
||||||
category.purpose = Utilizare
|
category.purpose = Utilizare
|
||||||
category.general = General
|
category.general = General
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Правила:
|
|||||||
editor.generation = Генерация:
|
editor.generation = Генерация:
|
||||||
editor.objectives = Цели
|
editor.objectives = Цели
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Редактировать в игре
|
editor.ingame = Редактировать в игре
|
||||||
editor.playtest = Опробовать карту
|
editor.playtest = Опробовать карту
|
||||||
editor.publish.workshop = Опубликовать в Мастерской
|
editor.publish.workshop = Опубликовать в Мастерской
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<По умолчанию>
|
|||||||
details = Подробности…
|
details = Подробности…
|
||||||
edit = Редактировать…
|
edit = Редактировать…
|
||||||
variables = Переменные
|
variables = Переменные
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Название:
|
editor.name = Название:
|
||||||
editor.spawn = Создать боевую единицу
|
editor.spawn = Создать боевую единицу
|
||||||
@@ -583,6 +589,7 @@ filter.clear = Очистить
|
|||||||
filter.option.ignore = Игнорировать
|
filter.option.ignore = Игнорировать
|
||||||
filter.scatter = Сеятель
|
filter.scatter = Сеятель
|
||||||
filter.terrain = Ландшафт
|
filter.terrain = Ландшафт
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Масштаб фильтра
|
filter.option.scale = Масштаб фильтра
|
||||||
filter.option.chance = Шанс
|
filter.option.chance = Шанс
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = Вторая поверхность
|
|||||||
filter.option.threshold2 = Вторичный предельный порог
|
filter.option.threshold2 = Вторичный предельный порог
|
||||||
filter.option.radius = Радиус
|
filter.option.radius = Радиус
|
||||||
filter.option.percentile = Процентиль
|
filter.option.percentile = Процентиль
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -975,6 +984,7 @@ stat.abilities = Способности
|
|||||||
stat.canboost = Может взлететь
|
stat.canboost = Может взлететь
|
||||||
stat.flying = Летающий
|
stat.flying = Летающий
|
||||||
stat.ammouse = Использование боеприпасов
|
stat.ammouse = Использование боеприпасов
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Множитель урона
|
stat.damagemultiplier = Множитель урона
|
||||||
stat.healthmultiplier = Множитель прочности
|
stat.healthmultiplier = Множитель прочности
|
||||||
stat.speedmultiplier = Множитель скорости
|
stat.speedmultiplier = Множитель скорости
|
||||||
@@ -1100,6 +1110,7 @@ unit.items = предметов
|
|||||||
unit.thousands = к
|
unit.thousands = к
|
||||||
unit.millions = М
|
unit.millions = М
|
||||||
unit.billions = кM
|
unit.billions = кM
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /выстрел
|
unit.pershot = /выстрел
|
||||||
category.purpose = Назначение
|
category.purpose = Назначение
|
||||||
category.general = Основные
|
category.general = Основные
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Pravila:
|
|||||||
editor.generation = Generisanje:
|
editor.generation = Generisanje:
|
||||||
editor.objectives = Zadaci
|
editor.objectives = Zadaci
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Izmeni "U Igri"
|
editor.ingame = Izmeni "U Igri"
|
||||||
editor.playtest = Testiranje
|
editor.playtest = Testiranje
|
||||||
editor.publish.workshop = Objavi u Radionicu
|
editor.publish.workshop = Objavi u Radionicu
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Default>
|
|||||||
details = Detalji...
|
details = Detalji...
|
||||||
edit = Izmeni...
|
edit = Izmeni...
|
||||||
variables = Varijabla
|
variables = Varijabla
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Ime:
|
editor.name = Ime:
|
||||||
editor.spawn = Prizovi Jedinicu
|
editor.spawn = Prizovi Jedinicu
|
||||||
@@ -583,6 +589,7 @@ filter.clear = Očisti
|
|||||||
filter.option.ignore = Ignoriši
|
filter.option.ignore = Ignoriši
|
||||||
filter.scatter = Razbaci
|
filter.scatter = Razbaci
|
||||||
filter.terrain = Teren
|
filter.terrain = Teren
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Razmera
|
filter.option.scale = Razmera
|
||||||
filter.option.chance = Šansa
|
filter.option.chance = Šansa
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = Drugi Pod
|
|||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Secondary Threshold
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Percentile
|
filter.option.percentile = Percentile
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -976,6 +985,7 @@ stat.abilities = Spospbnosti
|
|||||||
stat.canboost = Može lebdeti
|
stat.canboost = Može lebdeti
|
||||||
stat.flying = Leteća jedinica
|
stat.flying = Leteća jedinica
|
||||||
stat.ammouse = Upotreba municije
|
stat.ammouse = Upotreba municije
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Umnožavač štete
|
stat.damagemultiplier = Umnožavač štete
|
||||||
stat.healthmultiplier = Umnožavač izdržljivosti
|
stat.healthmultiplier = Umnožavač izdržljivosti
|
||||||
stat.speedmultiplier = Umnožavač brzine
|
stat.speedmultiplier = Umnožavač brzine
|
||||||
@@ -1102,6 +1112,7 @@ unit.items = materijali
|
|||||||
unit.thousands = hiljade
|
unit.thousands = hiljade
|
||||||
unit.millions = milioni
|
unit.millions = milioni
|
||||||
unit.billions = milijarde
|
unit.billions = milijarde
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /pucnju
|
unit.pershot = /pucnju
|
||||||
category.purpose = Namena
|
category.purpose = Namena
|
||||||
category.general = Opšte
|
category.general = Opšte
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Regler:
|
|||||||
editor.generation = Generering:
|
editor.generation = Generering:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edit In-Game
|
editor.ingame = Edit In-Game
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publish On Workshop
|
editor.publish.workshop = Publish On Workshop
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Default>
|
|||||||
details = Details...
|
details = Details...
|
||||||
edit = Redigera...
|
edit = Redigera...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Namn:
|
editor.name = Namn:
|
||||||
editor.spawn = Spawn Unit
|
editor.spawn = Spawn Unit
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Rensa
|
|||||||
filter.option.ignore = Ignorera
|
filter.option.ignore = Ignorera
|
||||||
filter.scatter = Sprid
|
filter.scatter = Sprid
|
||||||
filter.terrain = Terräng
|
filter.terrain = Terräng
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Skala
|
filter.option.scale = Skala
|
||||||
filter.option.chance = Chans
|
filter.option.chance = Chans
|
||||||
filter.option.mag = Magnitud
|
filter.option.mag = Magnitud
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Secondary Floor
|
|||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Secondary Threshold
|
||||||
filter.option.radius = Radie
|
filter.option.radius = Radie
|
||||||
filter.option.percentile = Percentile
|
filter.option.percentile = Percentile
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = föremål
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = Allmänt
|
category.general = Allmänt
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = กฎ
|
|||||||
editor.generation = เจนเนอเรชั่น
|
editor.generation = เจนเนอเรชั่น
|
||||||
editor.objectives = เป้าหมาย
|
editor.objectives = เป้าหมาย
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = แก้ไขในเกม
|
editor.ingame = แก้ไขในเกม
|
||||||
editor.playtest = เล่นทดสอบ
|
editor.playtest = เล่นทดสอบ
|
||||||
editor.publish.workshop = เผยแพร่บนเวิร์กช็อป
|
editor.publish.workshop = เผยแพร่บนเวิร์กช็อป
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<ค่าเริ่มต้น>
|
|||||||
details = รายละเอียด...
|
details = รายละเอียด...
|
||||||
edit = แก้ไข...
|
edit = แก้ไข...
|
||||||
variables = ตัวแปร
|
variables = ตัวแปร
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = ชื่อ:
|
editor.name = ชื่อ:
|
||||||
editor.spawn = สร้างยูนิต
|
editor.spawn = สร้างยูนิต
|
||||||
@@ -583,6 +589,7 @@ filter.clear = เคลียร์
|
|||||||
filter.option.ignore = เพิกเฉย
|
filter.option.ignore = เพิกเฉย
|
||||||
filter.scatter = กระจาย
|
filter.scatter = กระจาย
|
||||||
filter.terrain = พื้นผิว
|
filter.terrain = พื้นผิว
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = มาตราส่วน
|
filter.option.scale = มาตราส่วน
|
||||||
filter.option.chance = โอกาส
|
filter.option.chance = โอกาส
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = พื้นชั้นสอง
|
|||||||
filter.option.threshold2 = เกณฑ์ชั้นสอง
|
filter.option.threshold2 = เกณฑ์ชั้นสอง
|
||||||
filter.option.radius = รัศมี
|
filter.option.radius = รัศมี
|
||||||
filter.option.percentile = เปอร์เซ็นต์ไทล์
|
filter.option.percentile = เปอร์เซ็นต์ไทล์
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -976,6 +985,7 @@ stat.abilities = ทักษะ
|
|||||||
stat.canboost = บูสต์ได้
|
stat.canboost = บูสต์ได้
|
||||||
stat.flying = บินได้
|
stat.flying = บินได้
|
||||||
stat.ammouse = การใช้กระสุน
|
stat.ammouse = การใช้กระสุน
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = พหุคูณดาเมจ
|
stat.damagemultiplier = พหุคูณดาเมจ
|
||||||
stat.healthmultiplier = พหุคูณพลังชีวิต
|
stat.healthmultiplier = พหุคูณพลังชีวิต
|
||||||
stat.speedmultiplier = พหุคูณความเร็ว
|
stat.speedmultiplier = พหุคูณความเร็ว
|
||||||
@@ -1101,6 +1111,7 @@ unit.items = ไอเท็ม
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /การยิง
|
unit.pershot = /การยิง
|
||||||
category.purpose = วัตถุประสงค์
|
category.purpose = วัตถุประสงค์
|
||||||
category.general = ทั่วไป
|
category.general = ทั่วไป
|
||||||
|
|||||||
@@ -435,6 +435,11 @@ editor.rules = Rules:
|
|||||||
editor.generation = Generation:
|
editor.generation = Generation:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Edit In-Game
|
editor.ingame = Edit In-Game
|
||||||
editor.playtest = Playtest
|
editor.playtest = Playtest
|
||||||
editor.publish.workshop = Publish On Workshop
|
editor.publish.workshop = Publish On Workshop
|
||||||
@@ -490,6 +495,7 @@ editor.default = [lightgray]<Default>
|
|||||||
details = Details...
|
details = Details...
|
||||||
edit = Edit...
|
edit = Edit...
|
||||||
variables = Vars
|
variables = Vars
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = isim:
|
editor.name = isim:
|
||||||
editor.spawn = Spawn Unit
|
editor.spawn = Spawn Unit
|
||||||
@@ -577,6 +583,7 @@ filter.clear = Clear
|
|||||||
filter.option.ignore = Ignore
|
filter.option.ignore = Ignore
|
||||||
filter.scatter = Scatter
|
filter.scatter = Scatter
|
||||||
filter.terrain = Terrain
|
filter.terrain = Terrain
|
||||||
|
filter.logic = Logic
|
||||||
filter.option.scale = Scale
|
filter.option.scale = Scale
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
filter.option.mag = Magnitude
|
filter.option.mag = Magnitude
|
||||||
@@ -599,6 +606,8 @@ filter.option.floor2 = Secondary Floor
|
|||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Secondary Threshold
|
||||||
filter.option.radius = Radius
|
filter.option.radius = Radius
|
||||||
filter.option.percentile = Percentile
|
filter.option.percentile = Percentile
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -963,6 +972,7 @@ stat.abilities = Abilities
|
|||||||
stat.canboost = Can Boost
|
stat.canboost = Can Boost
|
||||||
stat.flying = Flying
|
stat.flying = Flying
|
||||||
stat.ammouse = Ammo Use
|
stat.ammouse = Ammo Use
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Damage Multiplier
|
stat.damagemultiplier = Damage Multiplier
|
||||||
stat.healthmultiplier = Health Multiplier
|
stat.healthmultiplier = Health Multiplier
|
||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
@@ -1089,6 +1099,7 @@ unit.items = esya
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = mil
|
unit.millions = mil
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /shot
|
unit.pershot = /shot
|
||||||
category.purpose = Purpose
|
category.purpose = Purpose
|
||||||
category.general = General
|
category.general = General
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = Kurallar:
|
|||||||
editor.generation = Oluşum:
|
editor.generation = Oluşum:
|
||||||
editor.objectives = Görevler:
|
editor.objectives = Görevler:
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Oyun içinde düzenle
|
editor.ingame = Oyun içinde düzenle
|
||||||
editor.playtest = Test Et
|
editor.playtest = Test Et
|
||||||
editor.publish.workshop = Atölyede Yayınla
|
editor.publish.workshop = Atölyede Yayınla
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray]<Varsayılan>
|
|||||||
details = Detaylar...
|
details = Detaylar...
|
||||||
edit = Düzenle...
|
edit = Düzenle...
|
||||||
variables = Değişkenler
|
variables = Değişkenler
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = İsim:
|
editor.name = İsim:
|
||||||
editor.spawn = Birim Oluştur
|
editor.spawn = Birim Oluştur
|
||||||
@@ -583,6 +589,7 @@ filter.clear = Temizle
|
|||||||
filter.option.ignore = Yoksay
|
filter.option.ignore = Yoksay
|
||||||
filter.scatter = Saç
|
filter.scatter = Saç
|
||||||
filter.terrain = Arazi
|
filter.terrain = Arazi
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Ölçek
|
filter.option.scale = Ölçek
|
||||||
filter.option.chance = Şans
|
filter.option.chance = Şans
|
||||||
@@ -606,6 +613,8 @@ filter.option.floor2 = İkincil Duvar
|
|||||||
filter.option.threshold2 = İkincil Eşik
|
filter.option.threshold2 = İkincil Eşik
|
||||||
filter.option.radius = Yarıçap
|
filter.option.radius = Yarıçap
|
||||||
filter.option.percentile = Yüzdelik
|
filter.option.percentile = Yüzdelik
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -973,6 +982,7 @@ stat.abilities = Kabiliyetler
|
|||||||
stat.canboost = İstekli Uçabilir
|
stat.canboost = İstekli Uçabilir
|
||||||
stat.flying = Uçuyor
|
stat.flying = Uçuyor
|
||||||
stat.ammouse = Mermi Kullanıyor
|
stat.ammouse = Mermi Kullanıyor
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Hasar Çarpanı
|
stat.damagemultiplier = Hasar Çarpanı
|
||||||
stat.healthmultiplier = Can Çarpanı
|
stat.healthmultiplier = Can Çarpanı
|
||||||
stat.speedmultiplier = Hız Çarpanı
|
stat.speedmultiplier = Hız Çarpanı
|
||||||
@@ -1098,6 +1108,7 @@ unit.items = eşya
|
|||||||
unit.thousands = k
|
unit.thousands = k
|
||||||
unit.millions = m
|
unit.millions = m
|
||||||
unit.billions = b
|
unit.billions = b
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /vuruş
|
unit.pershot = /vuruş
|
||||||
category.purpose = Açıklama
|
category.purpose = Açıklama
|
||||||
category.general = Genel
|
category.general = Genel
|
||||||
|
|||||||
@@ -441,6 +441,11 @@ editor.rules = Правила
|
|||||||
editor.generation = Генерація
|
editor.generation = Генерація
|
||||||
editor.objectives = Завдання
|
editor.objectives = Завдання
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = Редагувати в грі
|
editor.ingame = Редагувати в грі
|
||||||
editor.playtest = Протестувати в грі
|
editor.playtest = Протестувати в грі
|
||||||
editor.publish.workshop = Опублікувати в Майстерні Steam
|
editor.publish.workshop = Опублікувати в Майстерні Steam
|
||||||
@@ -497,6 +502,7 @@ editor.default = [lightgray]<За замовчуванням>
|
|||||||
details = Подробиці…
|
details = Подробиці…
|
||||||
edit = Змінити…
|
edit = Змінити…
|
||||||
variables = Змінні
|
variables = Змінні
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = Ім’я:
|
editor.name = Ім’я:
|
||||||
editor.spawn = Створити бойову одиницю
|
editor.spawn = Створити бойову одиницю
|
||||||
@@ -586,6 +592,7 @@ filter.clear = Очистити
|
|||||||
filter.option.ignore = Ігнорувати
|
filter.option.ignore = Ігнорувати
|
||||||
filter.scatter = Розсіювач
|
filter.scatter = Розсіювач
|
||||||
filter.terrain = Ландшафт
|
filter.terrain = Ландшафт
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = Масштаб фільтра
|
filter.option.scale = Масштаб фільтра
|
||||||
filter.option.chance = Шанс
|
filter.option.chance = Шанс
|
||||||
@@ -609,6 +616,8 @@ filter.option.floor2 = Друга поверхня
|
|||||||
filter.option.threshold2 = Вторинний граничний поріг
|
filter.option.threshold2 = Вторинний граничний поріг
|
||||||
filter.option.radius = Радіус
|
filter.option.radius = Радіус
|
||||||
filter.option.percentile = Спад
|
filter.option.percentile = Спад
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -984,6 +993,7 @@ stat.abilities = Здібності
|
|||||||
stat.canboost = Можна прискорити
|
stat.canboost = Можна прискорити
|
||||||
stat.flying = Літає
|
stat.flying = Літає
|
||||||
stat.ammouse = Патронів використовує
|
stat.ammouse = Патронів використовує
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = Множник шкоди
|
stat.damagemultiplier = Множник шкоди
|
||||||
stat.healthmultiplier = Множник здоров’я
|
stat.healthmultiplier = Множник здоров’я
|
||||||
stat.speedmultiplier = Множник швидкості
|
stat.speedmultiplier = Множник швидкості
|
||||||
@@ -1109,6 +1119,7 @@ unit.items = предм.
|
|||||||
unit.thousands = тис
|
unit.thousands = тис
|
||||||
unit.millions = млн
|
unit.millions = млн
|
||||||
unit.billions = млрд
|
unit.billions = млрд
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = за постріл
|
unit.pershot = за постріл
|
||||||
category.purpose = Призначення
|
category.purpose = Призначення
|
||||||
category.general = Загальне
|
category.general = Загальне
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -442,6 +442,11 @@ editor.rules = 规则
|
|||||||
editor.generation = 生成
|
editor.generation = 生成
|
||||||
editor.objectives = 目标
|
editor.objectives = 目标
|
||||||
editor.locales = 本地化语言包
|
editor.locales = 本地化语言包
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = 游戏内编辑
|
editor.ingame = 游戏内编辑
|
||||||
editor.playtest = 游戏内测试
|
editor.playtest = 游戏内测试
|
||||||
editor.publish.workshop = 上传到创意工坊
|
editor.publish.workshop = 上传到创意工坊
|
||||||
@@ -498,6 +503,7 @@ editor.default = [lightgray]<默认>
|
|||||||
details = 详情…
|
details = 详情…
|
||||||
edit = 编辑…
|
edit = 编辑…
|
||||||
variables = 变量
|
variables = 变量
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = 内置变量
|
logic.globals = 内置变量
|
||||||
editor.name = 名称:
|
editor.name = 名称:
|
||||||
editor.spawn = 生成单位
|
editor.spawn = 生成单位
|
||||||
@@ -587,6 +593,7 @@ filter.clear = 替换
|
|||||||
filter.option.ignore = 忽略
|
filter.option.ignore = 忽略
|
||||||
filter.scatter = 散布
|
filter.scatter = 散布
|
||||||
filter.terrain = 地图边界
|
filter.terrain = 地图边界
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = 缩放
|
filter.option.scale = 缩放
|
||||||
filter.option.chance = 散布数量
|
filter.option.chance = 散布数量
|
||||||
@@ -610,6 +617,8 @@ filter.option.floor2 = 内层地形
|
|||||||
filter.option.threshold2 = 内层比例
|
filter.option.threshold2 = 内层比例
|
||||||
filter.option.radius = 半径
|
filter.option.radius = 半径
|
||||||
filter.option.percentile = 百分比
|
filter.option.percentile = 百分比
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = 在这里,您可以为特定语言添加本地化语言包到您的地图中。在本地化语言包中,每个文本属性都有一个名称和一个值。这些文本属性可以由世界处理器和游戏目标使用它们的名称。它们支持文本格式化(用实际值替换占位符)。\n\n[cyan]示例文本属性:\n[]名称: [accent]timer[]值: [accent]示例计时器, 剩余时间: {0}[]\n\n[cyan]用法:\n[]将其设置为目标的文本: [accent]@timer\n\n[]在世界处理器中打印它:\n[accent]localeprint "timer"\n格式化时间\n[gray](时间是一个单独计算的变量)
|
locales.info = 在这里,您可以为特定语言添加本地化语言包到您的地图中。在本地化语言包中,每个文本属性都有一个名称和一个值。这些文本属性可以由世界处理器和游戏目标使用它们的名称。它们支持文本格式化(用实际值替换占位符)。\n\n[cyan]示例文本属性:\n[]名称: [accent]timer[]值: [accent]示例计时器, 剩余时间: {0}[]\n\n[cyan]用法:\n[]将其设置为目标的文本: [accent]@timer\n\n[]在世界处理器中打印它:\n[accent]localeprint "timer"\n格式化时间\n[gray](时间是一个单独计算的变量)
|
||||||
locales.deletelocale = 您确定要删除该本地化语言包吗?
|
locales.deletelocale = 您确定要删除该本地化语言包吗?
|
||||||
locales.applytoall = 将更改应用于所有本地化语言包
|
locales.applytoall = 将更改应用于所有本地化语言包
|
||||||
@@ -985,6 +994,7 @@ stat.abilities = 能力
|
|||||||
stat.canboost = 可助推
|
stat.canboost = 可助推
|
||||||
stat.flying = 空中单位
|
stat.flying = 空中单位
|
||||||
stat.ammouse = 弹药
|
stat.ammouse = 弹药
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = 伤害倍率
|
stat.damagemultiplier = 伤害倍率
|
||||||
stat.healthmultiplier = 生命值倍率
|
stat.healthmultiplier = 生命值倍率
|
||||||
stat.speedmultiplier = 移动速度倍率
|
stat.speedmultiplier = 移动速度倍率
|
||||||
@@ -1111,6 +1121,7 @@ unit.items = 物品
|
|||||||
unit.thousands = K
|
unit.thousands = K
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
unit.billions = B
|
unit.billions = B
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /发
|
unit.pershot = /发
|
||||||
category.purpose = 用途
|
category.purpose = 用途
|
||||||
category.general = 基础
|
category.general = 基础
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ editor.rules = 規則:
|
|||||||
editor.generation = 自動生成:
|
editor.generation = 自動生成:
|
||||||
editor.objectives = Objectives
|
editor.objectives = Objectives
|
||||||
editor.locales = Locale Bundles
|
editor.locales = Locale Bundles
|
||||||
|
editor.worldprocessors = World Processors
|
||||||
|
editor.worldprocessors.editname = Edit Name
|
||||||
|
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||||
|
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
|
||||||
|
editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall.
|
||||||
editor.ingame = 在遊戲中編輯
|
editor.ingame = 在遊戲中編輯
|
||||||
editor.playtest = 測試
|
editor.playtest = 測試
|
||||||
editor.publish.workshop = 在工作坊上發佈
|
editor.publish.workshop = 在工作坊上發佈
|
||||||
@@ -495,6 +500,7 @@ editor.default = [lightgray](預設)
|
|||||||
details = 詳細資訊……
|
details = 詳細資訊……
|
||||||
edit = 編輯……
|
edit = 編輯……
|
||||||
variables = 變數
|
variables = 變數
|
||||||
|
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||||
logic.globals = Built-in Variables
|
logic.globals = Built-in Variables
|
||||||
editor.name = 名稱:
|
editor.name = 名稱:
|
||||||
editor.spawn = 重生單位
|
editor.spawn = 重生單位
|
||||||
@@ -584,6 +590,7 @@ filter.clear = 清除
|
|||||||
filter.option.ignore = 忽略
|
filter.option.ignore = 忽略
|
||||||
filter.scatter = 分散
|
filter.scatter = 分散
|
||||||
filter.terrain = 地形
|
filter.terrain = 地形
|
||||||
|
filter.logic = Logic
|
||||||
|
|
||||||
filter.option.scale = 規模
|
filter.option.scale = 規模
|
||||||
filter.option.chance = 機會
|
filter.option.chance = 機會
|
||||||
@@ -607,6 +614,8 @@ filter.option.floor2 = 次要地板
|
|||||||
filter.option.threshold2 = 次要閾值
|
filter.option.threshold2 = 次要閾值
|
||||||
filter.option.radius = 半徑
|
filter.option.radius = 半徑
|
||||||
filter.option.percentile = 百分比
|
filter.option.percentile = 百分比
|
||||||
|
filter.option.code = Code
|
||||||
|
filter.option.loop = Loop
|
||||||
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable)
|
||||||
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
locales.deletelocale = Are you sure you want to delete this locale bundle?
|
||||||
locales.applytoall = Apply Changes To All Locales
|
locales.applytoall = Apply Changes To All Locales
|
||||||
@@ -981,6 +990,7 @@ stat.abilities = 能力
|
|||||||
stat.canboost = 推進器
|
stat.canboost = 推進器
|
||||||
stat.flying = 飛行單位
|
stat.flying = 飛行單位
|
||||||
stat.ammouse = 彈藥使用
|
stat.ammouse = 彈藥使用
|
||||||
|
stat.ammocapacity = Ammo Capacity
|
||||||
stat.damagemultiplier = 傷害加成
|
stat.damagemultiplier = 傷害加成
|
||||||
stat.healthmultiplier = 血量加成
|
stat.healthmultiplier = 血量加成
|
||||||
stat.speedmultiplier = 速度加成
|
stat.speedmultiplier = 速度加成
|
||||||
@@ -1106,6 +1116,7 @@ unit.items = 物品
|
|||||||
unit.thousands = K
|
unit.thousands = K
|
||||||
unit.millions = M
|
unit.millions = M
|
||||||
unit.billions = B
|
unit.billions = B
|
||||||
|
unit.shots = shots
|
||||||
unit.pershot = /發
|
unit.pershot = /發
|
||||||
category.purpose = 用途
|
category.purpose = 用途
|
||||||
category.general = 一般
|
category.general = 一般
|
||||||
|
|||||||
@@ -166,3 +166,4 @@ BalaM314
|
|||||||
Redstonneur1256
|
Redstonneur1256
|
||||||
ApsZoldat
|
ApsZoldat
|
||||||
Mythril
|
Mythril
|
||||||
|
hexagon-recursion
|
||||||
|
|||||||
Binary file not shown.
BIN
core/assets/music/coreLaunch.ogg
Normal file
BIN
core/assets/music/coreLaunch.ogg
Normal file
Binary file not shown.
Binary file not shown.
@@ -66,7 +66,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
|
|
||||||
Time.setDeltaProvider(() -> {
|
Time.setDeltaProvider(() -> {
|
||||||
float result = Core.graphics.getDeltaTime() * 60f;
|
float result = Core.graphics.getDeltaTime() * 60f;
|
||||||
return (Float.isNaN(result) || Float.isInfinite(result)) ? 1f : Mathf.clamp(result, 0.0001f, 60f / 10f);
|
return (Float.isNaN(result) || Float.isInfinite(result)) ? 1f : Mathf.clamp(result, 0.0001f, maxDeltaClient);
|
||||||
});
|
});
|
||||||
|
|
||||||
UI.loadColors();
|
UI.loadColors();
|
||||||
|
|||||||
@@ -137,6 +137,13 @@ public class Vars implements Loadable{
|
|||||||
Color.valueOf("4b5ef1"),
|
Color.valueOf("4b5ef1"),
|
||||||
Color.valueOf("2cabfe"),
|
Color.valueOf("2cabfe"),
|
||||||
};
|
};
|
||||||
|
/** Icons available to the user for customization in certain dialogs. */
|
||||||
|
public static final String[] accessibleIcons = {
|
||||||
|
"effect", "power", "logic", "units", "liquid", "production", "defense", "turret", "distribution", "crafting",
|
||||||
|
"settings", "cancel", "zoom", "ok", "star", "home", "pencil", "up", "down", "left", "right",
|
||||||
|
"hammer", "warning", "tree", "admin", "map", "modePvp", "terrain",
|
||||||
|
"modeSurvival", "commandRally", "commandAttack",
|
||||||
|
};
|
||||||
/** maximum TCP packet size */
|
/** maximum TCP packet size */
|
||||||
public static final int maxTcpSize = 900;
|
public static final int maxTcpSize = 900;
|
||||||
/** default server port */
|
/** default server port */
|
||||||
@@ -147,6 +154,8 @@ public class Vars implements Loadable{
|
|||||||
public static final int maxModSubtitleLength = 40;
|
public static final int maxModSubtitleLength = 40;
|
||||||
/** multicast group for discovery.*/
|
/** multicast group for discovery.*/
|
||||||
public static final String multicastGroup = "227.2.7.7";
|
public static final String multicastGroup = "227.2.7.7";
|
||||||
|
/** Maximum delta time. If the actual delta time (*60) between frames is higher than this number, the game will start to slow down. */
|
||||||
|
public static float maxDeltaClient = 6f, maxDeltaServer = 10f;
|
||||||
/** whether the graphical game client has loaded */
|
/** whether the graphical game client has loaded */
|
||||||
public static boolean clientLoaded = false;
|
public static boolean clientLoaded = false;
|
||||||
/** max GL texture size */
|
/** max GL texture size */
|
||||||
|
|||||||
@@ -130,13 +130,13 @@ public class BlockIndexer{
|
|||||||
data.turretTree.remove(build);
|
data.turretTree.remove(build);
|
||||||
}
|
}
|
||||||
|
|
||||||
//is no longer registered
|
|
||||||
build.wasDamaged = false;
|
|
||||||
|
|
||||||
//unregister damaged buildings
|
//unregister damaged buildings
|
||||||
if(build.damaged() && damagedTiles[team.id] != null){
|
if(build.wasDamaged && damagedTiles[team.id] != null){
|
||||||
damagedTiles[team.id].remove(build);
|
damagedTiles[team.id].remove(build);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//is no longer registered
|
||||||
|
build.wasDamaged = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -77,6 +77,7 @@ public class RtsAI{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void update(){
|
public void update(){
|
||||||
|
|
||||||
if(timer.get(timeUpdate, 60f * 2f)){
|
if(timer.get(timeUpdate, 60f * 2f)){
|
||||||
assignSquads();
|
assignSquads();
|
||||||
checkBuilding();
|
checkBuilding();
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import arc.math.*;
|
|||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
|
||||||
import mindustry.ai.*;
|
import mindustry.ai.*;
|
||||||
import mindustry.core.*;
|
import mindustry.core.*;
|
||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
@@ -35,7 +34,6 @@ public class CommandAI extends AIController{
|
|||||||
|
|
||||||
protected boolean stopAtTarget, stopWhenInRange;
|
protected boolean stopAtTarget, stopWhenInRange;
|
||||||
protected Vec2 lastTargetPos;
|
protected Vec2 lastTargetPos;
|
||||||
protected int pathId = -1;
|
|
||||||
protected boolean blockingUnit;
|
protected boolean blockingUnit;
|
||||||
protected float timeSpentBlocked;
|
protected float timeSpentBlocked;
|
||||||
|
|
||||||
@@ -205,6 +203,11 @@ public class CommandAI extends AIController{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean alwaysArrive = false;
|
||||||
|
|
||||||
|
float engageRange = unit.type.range - 10f;
|
||||||
|
boolean withinAttackRange = attackTarget != null && unit.within(attackTarget, engageRange) && stance != UnitStance.ram;
|
||||||
|
|
||||||
if(targetPos != null){
|
if(targetPos != null){
|
||||||
boolean move = true, isFinalPoint = commandQueue.size == 0;
|
boolean move = true, isFinalPoint = commandQueue.size == 0;
|
||||||
vecOut.set(targetPos);
|
vecOut.set(targetPos);
|
||||||
@@ -221,6 +224,7 @@ public class CommandAI extends AIController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(unit.isGrounded() && stance != UnitStance.ram){
|
if(unit.isGrounded() && stance != UnitStance.ram){
|
||||||
|
//TODO: blocking enable or disable?
|
||||||
if(timer.get(timerTarget3, avoidInterval)){
|
if(timer.get(timerTarget3, avoidInterval)){
|
||||||
Vec2 dstPos = Tmp.v1.trns(unit.rotation, unit.hitSize/2f);
|
Vec2 dstPos = Tmp.v1.trns(unit.rotation, unit.hitSize/2f);
|
||||||
float max = unit.hitSize/2f;
|
float max = unit.hitSize/2f;
|
||||||
@@ -248,8 +252,18 @@ public class CommandAI extends AIController{
|
|||||||
timeSpentBlocked = 0f;
|
timeSpentBlocked = 0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
//if you've spent 3 seconds stuck, something is wrong, move regardless
|
//if the unit is next to the target, stop asking the pathfinder how to get there, it's a waste of CPU
|
||||||
move = Vars.controlPath.getPathPosition(unit, pathId, vecMovePos, vecOut, noFound) && (!blockingUnit || timeSpentBlocked > maxBlockTime);
|
//TODO maybe stop moving too?
|
||||||
|
if(withinAttackRange){
|
||||||
|
move = true;
|
||||||
|
noFound[0] = false;
|
||||||
|
vecOut.set(vecMovePos);
|
||||||
|
}else{
|
||||||
|
move = controlPath.getPathPosition(unit, vecMovePos, targetPos, vecOut, noFound) && (!blockingUnit || timeSpentBlocked > maxBlockTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
//rare case where unit must be perfectly aligned (happens with 1-tile gaps)
|
||||||
|
alwaysArrive = vecOut.epsilonEquals(unit.tileX() * tilesize, unit.tileY() * tilesize);
|
||||||
//we've reached the final point if the returned coordinate is equal to the supplied input
|
//we've reached the final point if the returned coordinate is equal to the supplied input
|
||||||
isFinalPoint &= vecMovePos.epsilonEquals(vecOut, 4.1f);
|
isFinalPoint &= vecMovePos.epsilonEquals(vecOut, 4.1f);
|
||||||
|
|
||||||
@@ -266,18 +280,16 @@ public class CommandAI extends AIController{
|
|||||||
vecOut.set(vecMovePos);
|
vecOut.set(vecMovePos);
|
||||||
}
|
}
|
||||||
|
|
||||||
float engageRange = unit.type.range - 10f;
|
|
||||||
|
|
||||||
if(move){
|
if(move){
|
||||||
if(unit.type.circleTarget && attackTarget != null){
|
if(unit.type.circleTarget && attackTarget != null){
|
||||||
target = attackTarget;
|
target = attackTarget;
|
||||||
circleAttack(80f);
|
circleAttack(80f);
|
||||||
}else{
|
}else{
|
||||||
moveTo(vecOut,
|
moveTo(vecOut,
|
||||||
attackTarget != null && unit.within(attackTarget, engageRange) && stance != UnitStance.ram ? engageRange :
|
withinAttackRange ? engageRange :
|
||||||
unit.isGrounded() ? 0f :
|
unit.isGrounded() ? 0f :
|
||||||
attackTarget != null && stance != UnitStance.ram ? engageRange :
|
attackTarget != null && stance != UnitStance.ram ? engageRange : 0f,
|
||||||
0f, unit.isFlying() ? 40f : 100f, false, null, isFinalPoint);
|
unit.isFlying() ? 40f : 100f, false, null, isFinalPoint || alwaysArrive);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,7 +429,6 @@ public class CommandAI extends AIController{
|
|||||||
//this is an allocation, but it's relatively rarely called anyway, and outside mutations must be prevented
|
//this is an allocation, but it's relatively rarely called anyway, and outside mutations must be prevented
|
||||||
targetPos = lastTargetPos = pos.cpy();
|
targetPos = lastTargetPos = pos.cpy();
|
||||||
attackTarget = null;
|
attackTarget = null;
|
||||||
pathId = Vars.controlPath.nextTargetId();
|
|
||||||
this.stopWhenInRange = stopWhenInRange;
|
this.stopWhenInRange = stopWhenInRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -432,7 +443,6 @@ public class CommandAI extends AIController{
|
|||||||
public void commandTarget(Teamc moveTo, boolean stopAtTarget){
|
public void commandTarget(Teamc moveTo, boolean stopAtTarget){
|
||||||
attackTarget = moveTo;
|
attackTarget = moveTo;
|
||||||
this.stopAtTarget = stopAtTarget;
|
this.stopAtTarget = stopAtTarget;
|
||||||
pathId = Vars.controlPath.nextTargetId();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package mindustry.ai.types;
|
|||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
|
||||||
import mindustry.ai.*;
|
import mindustry.ai.*;
|
||||||
import mindustry.entities.units.*;
|
import mindustry.entities.units.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
@@ -41,8 +40,6 @@ public class LogicAI extends AIController{
|
|||||||
public PosTeam posTarget = PosTeam.create();
|
public PosTeam posTarget = PosTeam.create();
|
||||||
|
|
||||||
private ObjectSet<Object> radars = new ObjectSet<>();
|
private ObjectSet<Object> radars = new ObjectSet<>();
|
||||||
private float lastMoveX, lastMoveY;
|
|
||||||
private int lastPathId = 0;
|
|
||||||
|
|
||||||
// LogicAI state should not be reset after reading.
|
// LogicAI state should not be reset after reading.
|
||||||
@Override
|
@Override
|
||||||
@@ -52,14 +49,6 @@ public class LogicAI extends AIController{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateMovement(){
|
public void updateMovement(){
|
||||||
if(control == LUnitControl.pathfind){
|
|
||||||
if(!Mathf.equal(moveX, lastMoveX, 0.1f) || !Mathf.equal(moveY, lastMoveY, 0.1f)){
|
|
||||||
lastPathId ++;
|
|
||||||
lastMoveX = moveX;
|
|
||||||
lastMoveY = moveY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(targetTimer > 0f){
|
if(targetTimer > 0f){
|
||||||
targetTimer -= Time.delta;
|
targetTimer -= Time.delta;
|
||||||
}else{
|
}else{
|
||||||
@@ -86,7 +75,7 @@ public class LogicAI extends AIController{
|
|||||||
if(unit.isFlying()){
|
if(unit.isFlying()){
|
||||||
moveTo(Tmp.v1.set(moveX, moveY), 1f, 30f);
|
moveTo(Tmp.v1.set(moveX, moveY), 1f, 30f);
|
||||||
}else{
|
}else{
|
||||||
if(Vars.controlPath.getPathPosition(unit, lastPathId, Tmp.v2.set(moveX, moveY), Tmp.v1, null)){
|
if(controlPath.getPathPosition(unit, Tmp.v2.set(moveX, moveY), Tmp.v2, Tmp.v1, null)){
|
||||||
moveTo(Tmp.v1, 1f, Tmp.v2.epsilonEquals(Tmp.v1, 4.1f) ? 30f : 0f);
|
moveTo(Tmp.v1, 1f, Tmp.v2.epsilonEquals(Tmp.v1, 4.1f) ? 30f : 0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4049,7 +4049,7 @@ public class Blocks{
|
|||||||
researchCostMultiplier = 0.05f;
|
researchCostMultiplier = 0.05f;
|
||||||
|
|
||||||
coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f));
|
coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f));
|
||||||
limitRange();
|
limitRange(12f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
diffuse = new ItemTurret("diffuse"){{
|
diffuse = new ItemTurret("diffuse"){{
|
||||||
@@ -4108,7 +4108,7 @@ public class Blocks{
|
|||||||
rotateSpeed = 3f;
|
rotateSpeed = 3f;
|
||||||
|
|
||||||
coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f));
|
coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f));
|
||||||
limitRange();
|
limitRange(25f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
sublimate = new ContinuousLiquidTurret("sublimate"){{
|
sublimate = new ContinuousLiquidTurret("sublimate"){{
|
||||||
@@ -4358,7 +4358,7 @@ public class Blocks{
|
|||||||
coolant = consume(new ConsumeLiquid(Liquids.water, 20f / 60f));
|
coolant = consume(new ConsumeLiquid(Liquids.water, 20f / 60f));
|
||||||
coolantMultiplier = 2.5f;
|
coolantMultiplier = 2.5f;
|
||||||
|
|
||||||
limitRange(-5f);
|
limitRange(5f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
afflict = new PowerTurret("afflict"){{
|
afflict = new PowerTurret("afflict"){{
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ public class Bullets{
|
|||||||
damageLightningGround = damageLightning.copy();
|
damageLightningGround = damageLightning.copy();
|
||||||
damageLightningGround.collidesAir = false;
|
damageLightningGround.collidesAir = false;
|
||||||
|
|
||||||
fireball = new FireBulletType(1f, 4);
|
fireball = new FireBulletType(1f, 4){{
|
||||||
|
hittable = false;
|
||||||
|
}};
|
||||||
|
|
||||||
spaceLiquid = new SpaceLiquidBulletType(){{
|
spaceLiquid = new SpaceLiquidBulletType(){{
|
||||||
knockback = 0.7f;
|
knockback = 0.7f;
|
||||||
|
|||||||
@@ -2434,13 +2434,10 @@ public class Fx{
|
|||||||
shieldBreak = new Effect(40, e -> {
|
shieldBreak = new Effect(40, e -> {
|
||||||
color(e.color);
|
color(e.color);
|
||||||
stroke(3f * e.fout());
|
stroke(3f * e.fout());
|
||||||
if(e.data instanceof Unit u){
|
if(e.data instanceof ForceFieldAbility ab){
|
||||||
var ab = (ForceFieldAbility)Structs.find(u.abilities, a -> a instanceof ForceFieldAbility);
|
|
||||||
if(ab != null){
|
|
||||||
Lines.poly(e.x, e.y, ab.sides, e.rotation + e.fin(), ab.rotation);
|
Lines.poly(e.x, e.y, ab.sides, e.rotation + e.fin(), ab.rotation);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Lines.poly(e.x, e.y, 6, e.rotation + e.fin());
|
Lines.poly(e.x, e.y, 6, e.rotation + e.fin());
|
||||||
}).followParent(true),
|
}).followParent(true),
|
||||||
@@ -2584,7 +2581,7 @@ public class Fx{
|
|||||||
if(!(e.data instanceof Vec2[] vec)) return;
|
if(!(e.data instanceof Vec2[] vec)) return;
|
||||||
|
|
||||||
Draw.color(e.color);
|
Draw.color(e.color);
|
||||||
Lines.stroke(1f);
|
Lines.stroke(2f);
|
||||||
|
|
||||||
if(vec.length == 2){
|
if(vec.length == 2){
|
||||||
Lines.line(vec[0].x, vec[0].y, vec[1].x, vec[1].y);
|
Lines.line(vec[0].x, vec[0].y, vec[1].x, vec[1].y);
|
||||||
@@ -2595,6 +2592,16 @@ public class Fx{
|
|||||||
Lines.endLine();
|
Lines.endLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Draw.reset();
|
||||||
|
}),
|
||||||
|
debugRect = new Effect(90f, 1000000000000f, e -> {
|
||||||
|
if(!(e.data instanceof Rect rect)) return;
|
||||||
|
|
||||||
|
Draw.color(e.color);
|
||||||
|
Lines.stroke(2f);
|
||||||
|
|
||||||
|
Lines.rect(rect);
|
||||||
|
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package mindustry.core;
|
|||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.assets.loaders.TextureLoader.*;
|
import arc.assets.loaders.TextureLoader.*;
|
||||||
|
import arc.audio.*;
|
||||||
import arc.files.*;
|
import arc.files.*;
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.graphics.Texture.*;
|
import arc.graphics.Texture.*;
|
||||||
@@ -554,6 +555,11 @@ public class Renderer implements ApplicationListener{
|
|||||||
landTime = landCore.landDuration();
|
landTime = landCore.landDuration();
|
||||||
launchCoreType = coreType;
|
launchCoreType = coreType;
|
||||||
|
|
||||||
|
Music music = landCore.launchMusic();
|
||||||
|
music.stop();
|
||||||
|
music.play();
|
||||||
|
music.setVolume(settings.getInt("musicvol") / 100f);
|
||||||
|
|
||||||
landCore.beginLaunch(coreType);
|
landCore.beginLaunch(coreType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -147,6 +147,11 @@ public abstract class UnlockableContent extends MappableContent{
|
|||||||
return Fonts.getUnicodeStr(name);
|
return Fonts.getUnicodeStr(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int emojiChar(){
|
||||||
|
return Fonts.getUnicode(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean hasEmoji(){
|
public boolean hasEmoji(){
|
||||||
return Fonts.hasUnicodeStr(name);
|
return Fonts.hasUnicodeStr(name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import mindustry.gen.*;
|
|||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import mindustry.io.*;
|
import mindustry.io.*;
|
||||||
import mindustry.maps.*;
|
import mindustry.maps.*;
|
||||||
import mindustry.type.*;
|
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
import mindustry.ui.dialogs.*;
|
import mindustry.ui.dialogs.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
@@ -212,11 +211,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
|||||||
margin(0);
|
margin(0);
|
||||||
|
|
||||||
update(() -> {
|
update(() -> {
|
||||||
if(Core.scene.getKeyboardFocus() instanceof Dialog && Core.scene.getKeyboardFocus() != this){
|
if(hasKeyboard()){
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Core.scene != null && Core.scene.getKeyboardFocus() == this){
|
|
||||||
doInput();
|
doInput();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,16 +14,15 @@ import mindustry.ui.dialogs.*;
|
|||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class MapInfoDialog extends BaseDialog{
|
public class MapInfoDialog extends BaseDialog{
|
||||||
private final WaveInfoDialog waveInfo;
|
private WaveInfoDialog waveInfo = new WaveInfoDialog();
|
||||||
private final MapGenerateDialog generate;
|
private MapGenerateDialog generate = new MapGenerateDialog(false);
|
||||||
private final CustomRulesDialog ruleInfo = new CustomRulesDialog();
|
private CustomRulesDialog ruleInfo = new CustomRulesDialog();
|
||||||
private final MapObjectivesDialog objectives = new MapObjectivesDialog();
|
private MapObjectivesDialog objectives = new MapObjectivesDialog();
|
||||||
private final MapLocalesDialog locales = new MapLocalesDialog();
|
private MapLocalesDialog locales = new MapLocalesDialog();
|
||||||
|
private MapProcessorsDialog processors = new MapProcessorsDialog();
|
||||||
|
|
||||||
public MapInfoDialog(){
|
public MapInfoDialog(){
|
||||||
super("@editor.mapinfo");
|
super("@editor.mapinfo");
|
||||||
this.waveInfo = new WaveInfoDialog();
|
|
||||||
this.generate = new MapGenerateDialog(false);
|
|
||||||
|
|
||||||
addCloseButton();
|
addCloseButton();
|
||||||
|
|
||||||
@@ -108,7 +107,12 @@ public class MapInfoDialog extends BaseDialog{
|
|||||||
ui.showException(e);
|
ui.showException(e);
|
||||||
}
|
}
|
||||||
hide();
|
hide();
|
||||||
}).marginLeft(10f).width(0f).colspan(2).center().growX();
|
}).marginLeft(10f);
|
||||||
|
|
||||||
|
r.button("@editor.worldprocessors", Icon.logic, style, () -> {
|
||||||
|
hide();
|
||||||
|
processors.show();
|
||||||
|
}).marginLeft(10f);
|
||||||
}).colspan(2).center();
|
}).colspan(2).center();
|
||||||
|
|
||||||
name.change();
|
name.change();
|
||||||
|
|||||||
155
core/src/mindustry/editor/MapProcessorsDialog.java
Normal file
155
core/src/mindustry/editor/MapProcessorsDialog.java
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
package mindustry.editor;
|
||||||
|
|
||||||
|
import arc.scene.style.*;
|
||||||
|
import arc.scene.ui.*;
|
||||||
|
import arc.scene.ui.layout.*;
|
||||||
|
import arc.struct.*;
|
||||||
|
import arc.util.*;
|
||||||
|
import mindustry.*;
|
||||||
|
import mindustry.content.*;
|
||||||
|
import mindustry.game.*;
|
||||||
|
import mindustry.gen.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
|
import mindustry.ui.dialogs.*;
|
||||||
|
import mindustry.world.*;
|
||||||
|
import mindustry.world.blocks.environment.*;
|
||||||
|
import mindustry.world.blocks.logic.*;
|
||||||
|
import mindustry.world.blocks.logic.LogicBlock.*;
|
||||||
|
|
||||||
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
public class MapProcessorsDialog extends BaseDialog{
|
||||||
|
private IconSelectDialog iconSelect = new IconSelectDialog();
|
||||||
|
private TextField search;
|
||||||
|
private Seq<Building> processors = new Seq<>();
|
||||||
|
private Table list;
|
||||||
|
|
||||||
|
public MapProcessorsDialog(){
|
||||||
|
super("@editor.worldprocessors");
|
||||||
|
|
||||||
|
shown(this::setup);
|
||||||
|
|
||||||
|
addCloseButton();
|
||||||
|
buttons.button("@add", Icon.add, () -> {
|
||||||
|
boolean foundAny = false;
|
||||||
|
|
||||||
|
outer:
|
||||||
|
for(int y = 0; y < Vars.world.height(); y++){
|
||||||
|
for(int x = 0; x < Vars.world.width(); x++){
|
||||||
|
Tile tile = Vars.world.rawTile(x, y);
|
||||||
|
if(!tile.synthetic()){
|
||||||
|
foundAny = true;
|
||||||
|
tile.setNet(Blocks.worldProcessor, Team.sharded, 0);
|
||||||
|
if(ui.editor.isShown()){
|
||||||
|
Vars.editor.renderer.updatePoint(x, y);
|
||||||
|
}
|
||||||
|
break outer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!foundAny){
|
||||||
|
ui.showErrorMessage("@editor.worldprocessors.nospace");
|
||||||
|
}else{
|
||||||
|
setup();
|
||||||
|
}
|
||||||
|
}).size(210f, 64f);
|
||||||
|
|
||||||
|
cont.top();
|
||||||
|
getCell(cont).grow();
|
||||||
|
|
||||||
|
cont.table(s -> {
|
||||||
|
s.image(Icon.zoom).padRight(8);
|
||||||
|
search = s.field(null, text -> rebuild()).growX().get();
|
||||||
|
search.setMessageText("@players.search");
|
||||||
|
}).width(440f).fillX().padBottom(4).row();
|
||||||
|
|
||||||
|
cont.pane(t -> {
|
||||||
|
list = t;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rebuild(){
|
||||||
|
list.clearChildren();
|
||||||
|
|
||||||
|
if(processors.isEmpty()){
|
||||||
|
list.add("@editor.worldprocessors.none");
|
||||||
|
}else{
|
||||||
|
Table t = list;
|
||||||
|
var text = search.getText().toLowerCase();
|
||||||
|
|
||||||
|
t.defaults().pad(4f);
|
||||||
|
float h = 50f;
|
||||||
|
for(var build : processors){
|
||||||
|
if(build instanceof LogicBuild log && (text.isEmpty() || (log.tag != null && log.tag.toLowerCase().contains(text)))){
|
||||||
|
|
||||||
|
t.button(log.iconTag == 0 ? Styles.none : new TextureRegionDrawable(Fonts.getLargeIcon(Fonts.unicodeToName(log.iconTag))), Styles.graySquarei, iconMed, () -> {
|
||||||
|
iconSelect.show(ic -> {
|
||||||
|
log.iconTag = (char)ic;
|
||||||
|
rebuild();
|
||||||
|
});
|
||||||
|
}).size(h);
|
||||||
|
|
||||||
|
t.button((log.tag == null ? "<no name>\n" : "[accent]" + log.tag + "\n") + "[lightgray][[" + log.tile.x + ", " + log.tile.y + "]", Styles.grayt, () -> {
|
||||||
|
//TODO: bug: if you edit name inside of the edit dialog, it won't show up in the list properly
|
||||||
|
log.showEditDialog(true);
|
||||||
|
}).size(Vars.mobile ? 390f : 450f, h).margin(10f).with(b -> {
|
||||||
|
b.getLabel().setAlignment(Align.left, Align.left);
|
||||||
|
});
|
||||||
|
|
||||||
|
t.button(Icon.pencil, Styles.graySquarei, Vars.iconMed, () -> {
|
||||||
|
ui.showTextInput("", "@editor.name", LogicBlock.maxNameLength, log.tag == null ? "" : log.tag, tag -> {
|
||||||
|
//bypass configuration and set it directly in case privileged checks mess things up
|
||||||
|
log.tag = tag;
|
||||||
|
setup();
|
||||||
|
});
|
||||||
|
}).size(h);
|
||||||
|
|
||||||
|
if(Vars.state.isGame() && state.isEditor()){
|
||||||
|
t.button(Icon.eyeSmall, Styles.graySquarei, Vars.iconMed, () -> {
|
||||||
|
hide();
|
||||||
|
control.input.config.showConfig(build);
|
||||||
|
control.input.panCamera(Tmp.v1.set(build));
|
||||||
|
}).size(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
t.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
|
||||||
|
ui.showConfirm("@editor.worldprocessors.delete.confirm", () -> {
|
||||||
|
boolean surrounded = true;
|
||||||
|
for(int i = 0; i < 4; i++){
|
||||||
|
Tile other = build.tile.nearby(i);
|
||||||
|
if(other != null && !(other.block().privileged || other.block().isStatic())){
|
||||||
|
surrounded = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(surrounded){
|
||||||
|
build.tile.setNet(build.tile.floor().wall instanceof StaticWall ? build.tile.floor().wall : Blocks.stoneWall);
|
||||||
|
}else{
|
||||||
|
build.tile.setNet(Blocks.air);
|
||||||
|
}
|
||||||
|
processors.remove(build);
|
||||||
|
rebuild();
|
||||||
|
});
|
||||||
|
}).size(h);
|
||||||
|
|
||||||
|
t.row();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setup(){
|
||||||
|
|
||||||
|
processors.clear();
|
||||||
|
|
||||||
|
//scan the entire world for processor (Groups.build can be empty, indexer is probably inaccurate)
|
||||||
|
Vars.world.tiles.eachTile(t -> {
|
||||||
|
if(t.isCenter() && t.block() == Blocks.worldProcessor){
|
||||||
|
processors.add(t.build);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rebuild();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,7 +25,6 @@ public class Damage{
|
|||||||
private static final Rect rect = new Rect();
|
private static final Rect rect = new Rect();
|
||||||
private static final Rect hitrect = new Rect();
|
private static final Rect hitrect = new Rect();
|
||||||
private static final Vec2 vec = new Vec2(), seg1 = new Vec2(), seg2 = new Vec2();
|
private static final Vec2 vec = new Vec2(), seg1 = new Vec2(), seg2 = new Vec2();
|
||||||
private static final Seq<Unit> units = new Seq<>();
|
|
||||||
private static final IntSet collidedBlocks = new IntSet();
|
private static final IntSet collidedBlocks = new IntSet();
|
||||||
private static final IntFloatMap damages = new IntFloatMap();
|
private static final IntFloatMap damages = new IntFloatMap();
|
||||||
private static final Seq<Collided> collided = new Seq<>();
|
private static final Seq<Collided> collided = new Seq<>();
|
||||||
@@ -41,6 +40,7 @@ public class Damage{
|
|||||||
public static void applySuppression(Team team, float x, float y, float range, float reload, float maxDelay, float applyParticleChance, @Nullable Position source){
|
public static void applySuppression(Team team, float x, float y, float range, float reload, float maxDelay, float applyParticleChance, @Nullable Position source){
|
||||||
applySuppression(team, x, y, range, reload, maxDelay, applyParticleChance, source, Pal.sapBullet);
|
applySuppression(team, x, y, range, reload, maxDelay, applyParticleChance, source, Pal.sapBullet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void applySuppression(Team team, float x, float y, float range, float reload, float maxDelay, float applyParticleChance, @Nullable Position source, Color effectColor){
|
public static void applySuppression(Team team, float x, float y, float range, float reload, float maxDelay, float applyParticleChance, @Nullable Position source, Color effectColor){
|
||||||
builds.clear();
|
builds.clear();
|
||||||
indexer.eachBlock(null, x, y, range, build -> build.team != team, build -> {
|
indexer.eachBlock(null, x, y, range, build -> build.team != team, build -> {
|
||||||
@@ -175,6 +175,7 @@ public class Damage{
|
|||||||
|
|
||||||
distances.clear();
|
distances.clear();
|
||||||
|
|
||||||
|
if(b.type.collidesGround && b.type.collidesTiles){
|
||||||
World.raycast(b.tileX(), b.tileY(), World.toTile(b.x + vec.x), World.toTile(b.y + vec.y), (x, y) -> {
|
World.raycast(b.tileX(), b.tileY(), World.toTile(b.x + vec.x), World.toTile(b.y + vec.y), (x, y) -> {
|
||||||
//add distance to list so it can be processed
|
//add distance to list so it can be processed
|
||||||
var build = world.build(x, y);
|
var build = world.build(x, y);
|
||||||
@@ -190,6 +191,7 @@ public class Damage{
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Units.nearbyEnemies(b.team, rect, u -> {
|
Units.nearbyEnemies(b.team, rect, u -> {
|
||||||
u.hitbox(hitrect);
|
u.hitbox(hitrect);
|
||||||
@@ -247,7 +249,7 @@ public class Damage{
|
|||||||
collidedBlocks.clear();
|
collidedBlocks.clear();
|
||||||
vec.trnsExact(angle, length);
|
vec.trnsExact(angle, length);
|
||||||
|
|
||||||
if(hitter.type.collidesGround){
|
if(hitter.type.collidesGround && hitter.type.collidesTiles){
|
||||||
seg1.set(x, y);
|
seg1.set(x, y);
|
||||||
seg2.set(seg1).add(vec);
|
seg2.set(seg1).add(vec);
|
||||||
World.raycastEachWorld(x, y, seg2.x, seg2.y, (cx, cy) -> {
|
World.raycastEachWorld(x, y, seg2.x, seg2.y, (cx, cy) -> {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class ForceFieldAbility extends Ability{
|
|||||||
|
|
||||||
/** State. */
|
/** State. */
|
||||||
protected float radiusScale, alpha;
|
protected float radiusScale, alpha;
|
||||||
|
protected boolean wasBroken = true;
|
||||||
|
|
||||||
private static float realRad;
|
private static float realRad;
|
||||||
private static Unit paramUnit;
|
private static Unit paramUnit;
|
||||||
@@ -41,13 +42,6 @@ public class ForceFieldAbility extends Ability{
|
|||||||
trait.absorb();
|
trait.absorb();
|
||||||
Fx.absorb.at(trait);
|
Fx.absorb.at(trait);
|
||||||
|
|
||||||
//break shield
|
|
||||||
if(paramUnit.shield <= trait.damage()){
|
|
||||||
paramUnit.shield -= paramField.cooldown * paramField.regen;
|
|
||||||
|
|
||||||
Fx.shieldBreak.at(paramUnit.x, paramUnit.y, paramField.radius, paramUnit.team.color, paramUnit);
|
|
||||||
}
|
|
||||||
|
|
||||||
paramUnit.shield -= trait.damage();
|
paramUnit.shield -= trait.damage();
|
||||||
paramField.alpha = 1f;
|
paramField.alpha = 1f;
|
||||||
}
|
}
|
||||||
@@ -85,6 +79,14 @@ public class ForceFieldAbility extends Ability{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(Unit unit){
|
public void update(Unit unit){
|
||||||
|
if(unit.shield <= 0f && !wasBroken){
|
||||||
|
unit.shield -= cooldown * regen;
|
||||||
|
|
||||||
|
Fx.shieldBreak.at(unit.x, unit.y, radius, unit.team.color, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
wasBroken = unit.shield <= 0f;
|
||||||
|
|
||||||
if(unit.shield < max){
|
if(unit.shield < max){
|
||||||
unit.shield += Time.delta * regen;
|
unit.shield += Time.delta * regen;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ abstract class BlockUnitComp implements Unitc{
|
|||||||
@Replace
|
@Replace
|
||||||
@Override
|
@Override
|
||||||
public TextureRegion icon(){
|
public TextureRegion icon(){
|
||||||
return tile.block.fullIcon;
|
return tile.block.uiIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -138,7 +138,11 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
|
|||||||
|
|
||||||
if(!(tile.build instanceof ConstructBuild cb)){
|
if(!(tile.build instanceof ConstructBuild cb)){
|
||||||
if(!current.initialized && !current.breaking && Build.validPlace(current.block, team, current.x, current.y, current.rotation)){
|
if(!current.initialized && !current.breaking && Build.validPlace(current.block, team, current.x, current.y, current.rotation)){
|
||||||
boolean hasAll = infinite || current.isRotation(team) || !Structs.contains(current.block.requirements, i -> core != null && !core.items.has(i.item, Math.min(Mathf.round(i.amount * state.rules.buildCostMultiplier), 1)));
|
boolean hasAll = infinite || current.isRotation(team) ||
|
||||||
|
//derelict repair
|
||||||
|
(tile.team() == Team.derelict && tile.block() == current.block && tile.build != null && tile.block().allowDerelictRepair && state.rules.derelictRepair) ||
|
||||||
|
//make sure there's at least 1 item of each type first
|
||||||
|
!Structs.contains(current.block.requirements, i -> core != null && !core.items.has(i.item, Math.min(Mathf.round(i.amount * state.rules.buildCostMultiplier), 1)));
|
||||||
|
|
||||||
if(hasAll){
|
if(hasAll){
|
||||||
Call.beginPlace(self(), current.block, team, current.x, current.y, current.rotation);
|
Call.beginPlace(self(), current.block, team, current.x, current.y, current.rotation);
|
||||||
@@ -290,10 +294,6 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
|
|||||||
return plans.size == 0 ? null : plans.first();
|
return plans.size == 0 ? null : plans.first();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(){
|
|
||||||
drawBuilding();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawBuilding(){
|
public void drawBuilding(){
|
||||||
//TODO make this more generic so it works with builder "weapons"
|
//TODO make this more generic so it works with builder "weapons"
|
||||||
boolean active = activelyBuilding();
|
boolean active = activelyBuilding();
|
||||||
|
|||||||
@@ -1310,7 +1310,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
if(value instanceof UnitType) type = UnitType.class;
|
if(value instanceof UnitType) type = UnitType.class;
|
||||||
|
|
||||||
if(builder != null && builder.isPlayer()){
|
if(builder != null && builder.isPlayer()){
|
||||||
lastAccessed = builder.getPlayer().coloredName();
|
updateLastAccess(builder.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(block.configurations.containsKey(type)){
|
if(block.configurations.containsKey(type)){
|
||||||
@@ -1324,6 +1324,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateLastAccess(Player player){
|
||||||
|
lastAccessed = player.coloredName();
|
||||||
|
}
|
||||||
|
|
||||||
/** Called when the block is tapped by the local player. */
|
/** Called when the block is tapped by the local player. */
|
||||||
public void tapped(){
|
public void tapped(){
|
||||||
|
|
||||||
@@ -1977,9 +1981,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
switch(prop){
|
switch(prop){
|
||||||
case health -> {
|
case health -> {
|
||||||
health = (float)Mathf.clamp(value, 0, maxHealth);
|
health = (float)Mathf.clamp(value, 0, maxHealth);
|
||||||
healthChanged();
|
|
||||||
if(health <= 0f && !dead()){
|
if(health <= 0f && !dead()){
|
||||||
Call.buildDestroyed(self());
|
Call.buildDestroyed(self());
|
||||||
|
}else{
|
||||||
|
healthChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case team -> {
|
case team -> {
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ abstract class HitboxComp implements Posc, Sized, QuadTreeObject{
|
|||||||
|
|
||||||
public void hitboxTile(Rect rect){
|
public void hitboxTile(Rect rect){
|
||||||
//tile hitboxes are never bigger than a tile, otherwise units get stuck
|
//tile hitboxes are never bigger than a tile, otherwise units get stuck
|
||||||
float size = Math.min(hitSize * 0.66f, 7.9f);
|
float size = Math.min(hitSize * 0.66f, 7.8f);
|
||||||
//TODO: better / more accurate version is
|
//TODO: better / more accurate version is
|
||||||
//float size = hitSize * 0.85f;
|
//float size = hitSize * 0.85f;
|
||||||
//- for tanks?
|
//- for tanks?
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
|
|||||||
@Import float x, y, rotation, speedMultiplier;
|
@Import float x, y, rotation, speedMultiplier;
|
||||||
@Import UnitType type;
|
@Import UnitType type;
|
||||||
@Import Team team;
|
@Import Team team;
|
||||||
|
@Import boolean disarmed;
|
||||||
|
|
||||||
transient Leg[] legs = {};
|
transient Leg[] legs = {};
|
||||||
transient float totalLength;
|
transient float totalLength;
|
||||||
@@ -191,7 +192,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(type.legSplashDamage > 0){
|
if(type.legSplashDamage > 0 && !disarmed){
|
||||||
Damage.damage(team, l.base.x, l.base.y, type.legSplashRange, type.legSplashDamage * state.rules.unitDamage(team), false, true);
|
Damage.damage(team, l.base.x, l.base.y, type.legSplashRange, type.legSplashDamage * state.rules.unitDamage(team), false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,31 +123,4 @@ abstract class MinerComp implements Itemsc, Posc, Teamc, Rotc, Drawc{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void draw(){
|
|
||||||
if(!mining()) return;
|
|
||||||
float focusLen = hitSize / 2f + Mathf.absin(Time.time, 1.1f, 0.5f);
|
|
||||||
float swingScl = 12f, swingMag = tilesize / 8f;
|
|
||||||
float flashScl = 0.3f;
|
|
||||||
|
|
||||||
float px = x + Angles.trnsx(rotation, focusLen);
|
|
||||||
float py = y + Angles.trnsy(rotation, focusLen);
|
|
||||||
|
|
||||||
float ex = mineTile.worldx() + Mathf.sin(Time.time + 48, swingScl, swingMag);
|
|
||||||
float ey = mineTile.worldy() + Mathf.sin(Time.time + 48, swingScl + 2f, swingMag);
|
|
||||||
|
|
||||||
Draw.z(Layer.flyingUnit + 0.1f);
|
|
||||||
|
|
||||||
Draw.color(Color.lightGray, Color.white, 1f - flashScl + Mathf.absin(Time.time, 0.5f, flashScl));
|
|
||||||
|
|
||||||
Drawf.laser(Core.atlas.find("minelaser"), Core.atlas.find("minelaser-end"), px, py, ex, ey, 0.75f);
|
|
||||||
|
|
||||||
if(isLocal()){
|
|
||||||
Lines.stroke(1f, Pal.accent);
|
|
||||||
Lines.poly(mineTile.worldx(), mineTile.worldy(), 4, tilesize / 2f * Mathf.sqrt2, Time.time);
|
|
||||||
}
|
|
||||||
|
|
||||||
Draw.color();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
|
|||||||
|
|
||||||
public TextureRegion icon(){
|
public TextureRegion icon(){
|
||||||
//display default icon for dead players
|
//display default icon for dead players
|
||||||
if(dead()) return core() == null ? UnitTypes.alpha.fullIcon : ((CoreBlock)bestCore().block).unitType.fullIcon;
|
if(dead()) return core() == null ? UnitTypes.alpha.uiIcon : ((CoreBlock)bestCore().block).unitType.uiIcon;
|
||||||
|
|
||||||
return unit.icon();
|
return unit.icon();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ abstract class StatusComp implements Posc, Flyingc{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void clearStatuses(){
|
void clearStatuses(){
|
||||||
|
statuses.each(e -> e.effect.onRemoved(self()));
|
||||||
statuses.clear();
|
statuses.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,6 +81,7 @@ abstract class StatusComp implements Posc, Flyingc{
|
|||||||
void unapply(StatusEffect effect){
|
void unapply(StatusEffect effect){
|
||||||
statuses.remove(e -> {
|
statuses.remove(e -> {
|
||||||
if(e.effect == effect){
|
if(e.effect == effect){
|
||||||
|
e.effect.onRemoved(self());
|
||||||
Pools.free(e);
|
Pools.free(e);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -189,6 +191,10 @@ abstract class StatusComp implements Posc, Flyingc{
|
|||||||
entry.time = Math.max(entry.time - Time.delta, 0);
|
entry.time = Math.max(entry.time - Time.delta, 0);
|
||||||
|
|
||||||
if(entry.effect == null || (entry.time <= 0 && !entry.effect.permanent)){
|
if(entry.effect == null || (entry.time <= 0 && !entry.effect.permanent)){
|
||||||
|
if(entry.effect != null){
|
||||||
|
entry.effect.onRemoved(self());
|
||||||
|
}
|
||||||
|
|
||||||
Pools.free(entry);
|
Pools.free(entry);
|
||||||
index --;
|
index --;
|
||||||
statuses.remove(index);
|
statuses.remove(index);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import static mindustry.Vars.*;
|
|||||||
@Component
|
@Component
|
||||||
abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec{
|
abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec{
|
||||||
@Import float x, y, hitSize, rotation, speedMultiplier;
|
@Import float x, y, hitSize, rotation, speedMultiplier;
|
||||||
@Import boolean hovering;
|
@Import boolean hovering, disarmed;
|
||||||
@Import UnitType type;
|
@Import UnitType type;
|
||||||
@Import Team team;
|
@Import Team team;
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
|
|||||||
}
|
}
|
||||||
|
|
||||||
//calculate overlapping tiles so it slows down when going "over" walls
|
//calculate overlapping tiles so it slows down when going "over" walls
|
||||||
int r = Math.max(Math.round(hitSize * 0.6f / tilesize), 1);
|
int r = Math.max((int)(hitSize * 0.6f / tilesize), 0);
|
||||||
|
|
||||||
int solids = 0, total = (r*2+1)*(r*2+1);
|
int solids = 0, total = (r*2+1)*(r*2+1);
|
||||||
for(int dx = -r; dx <= r; dx++){
|
for(int dx = -r; dx <= r; dx++){
|
||||||
@@ -62,7 +62,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO should this apply to the player team(s)? currently PvE due to balancing
|
//TODO should this apply to the player team(s)? currently PvE due to balancing
|
||||||
if(type.crushDamage > 0 && (walked || deltaLen() >= 0.01f) && t != null && t.build != null && t.build.team != team
|
if(type.crushDamage > 0 && !disarmed && (walked || deltaLen() >= 0.01f) && t != null && t.build != null && t.build.team != team
|
||||||
//damage radius is 1 tile smaller to prevent it from just touching walls as it passes
|
//damage radius is 1 tile smaller to prevent it from just touching walls as it passes
|
||||||
&& Math.max(Math.abs(dx), Math.abs(dy)) <= r - 1){
|
&& Math.max(Math.abs(dx), Math.abs(dy)) <= r - 1){
|
||||||
|
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
|||||||
return type.allowLegStep && type.legPhysicsLayer ? PhysicsProcess.layerLegs : isGrounded() ? PhysicsProcess.layerGround : PhysicsProcess.layerFlying;
|
return type.allowLegStep && type.legPhysicsLayer ? PhysicsProcess.layerLegs : isGrounded() ? PhysicsProcess.layerGround : PhysicsProcess.layerFlying;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return pathfinder path type for calculating costs */
|
/** @return pathfinder path type for calculating costs. This is used for wave AI only. (TODO: remove) */
|
||||||
public int pathType(){
|
public int pathType(){
|
||||||
return Pathfinder.costGround;
|
return Pathfinder.costGround;
|
||||||
}
|
}
|
||||||
@@ -666,9 +666,9 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return a preview icon for this unit. */
|
/** @return a preview UI icon for this unit. */
|
||||||
public TextureRegion icon(){
|
public TextureRegion icon(){
|
||||||
return type.fullIcon;
|
return type.uiIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Actually destroys the unit, removing it and creating explosions. **/
|
/** Actually destroys the unit, removing it and creating explosions. **/
|
||||||
@@ -734,7 +734,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
|||||||
/** @return name of direct or indirect player controller. */
|
/** @return name of direct or indirect player controller. */
|
||||||
@Override
|
@Override
|
||||||
public @Nullable String getControllerName(){
|
public @Nullable String getControllerName(){
|
||||||
if(isPlayer()) return getPlayer().name;
|
if(isPlayer()) return getPlayer().coloredName();
|
||||||
if(controller instanceof LogicAI ai && ai.controller != null) return ai.controller.lastAccessed;
|
if(controller instanceof LogicAI ai && ai.controller != null) return ai.controller.lastAccessed;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class ParticleEffect extends Effect{
|
|||||||
rv.trns(realRotation + rand.range(cone), !randLength ? l : rand.random(l));
|
rv.trns(realRotation + rand.range(cone), !randLength ? l : rand.random(l));
|
||||||
float x = rv.x, y = rv.y;
|
float x = rv.x, y = rv.y;
|
||||||
|
|
||||||
Draw.rect(tex, ox + x, oy + y, rad, rad, realRotation + offset + e.time * spin);
|
Draw.rect(tex, ox + x, oy + y, rad, rad / tex.ratio(), realRotation + offset + e.time * spin);
|
||||||
Drawf.light(ox + x, oy + y, rad * lightScl, lightColor, lightOpacity * Draw.getColor().a);
|
Drawf.light(ox + x, oy + y, rad * lightScl, lightColor, lightOpacity * Draw.getColor().a);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ public class AIController implements UnitController{
|
|||||||
vec.setLength(speed * length);
|
vec.setLength(speed * length);
|
||||||
}
|
}
|
||||||
|
|
||||||
//do not move when infinite vectors are used or if its zero.
|
//ignore invalid movement values
|
||||||
if(vec.isNaN() || vec.isInfinite() || vec.isZero()) return;
|
if(vec.isNaN() || vec.isInfinite() || vec.isZero()) return;
|
||||||
|
|
||||||
if(!unit.type.omniMovement && unit.type.rotateMoveFirst){
|
if(!unit.type.omniMovement && unit.type.rotateMoveFirst){
|
||||||
|
|||||||
@@ -129,9 +129,11 @@ public class OverlayRenderer{
|
|||||||
Draw.mixcol(Pal.accent, 1f);
|
Draw.mixcol(Pal.accent, 1f);
|
||||||
Draw.alpha(unitFade);
|
Draw.alpha(unitFade);
|
||||||
Building build = (select instanceof BlockUnitc b ? b.tile() : select instanceof Building b ? b : null);
|
Building build = (select instanceof BlockUnitc b ? b.tile() : select instanceof Building b ? b : null);
|
||||||
TextureRegion region = build != null ? build.block.fullIcon : select instanceof Unit u ? u.icon() : Core.atlas.white();
|
TextureRegion region = build != null ? build.block.fullIcon : Core.atlas.white();
|
||||||
|
|
||||||
Draw.rect(region, select.getX(), select.getY(), select instanceof Unit u && !(select instanceof BlockUnitc) ? u.rotation - 90f : 0f);
|
if(!(select instanceof Unitc)){
|
||||||
|
Draw.rect(region, select.getX(), select.getY());
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 0; i < 4; i++){
|
for(int i = 0; i < 4; i++){
|
||||||
float rot = i * 90f + 45f + (-Time.time) % 360f;
|
float rot = i * 90f + 45f + (-Time.time) % 360f;
|
||||||
@@ -255,6 +257,13 @@ public class OverlayRenderer{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void checkApplySelection(Unit u){
|
||||||
|
if(unitFade > 0.001f && lastSelect == u){
|
||||||
|
Color prev = Draw.getMixColor();
|
||||||
|
Draw.mixcol(prev.a > 0.001f ? prev.lerp(Pal.accent, unitFade) : Pal.accent, Math.max(unitFade, prev.a));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static class CoreEdge{
|
private static class CoreEdge{
|
||||||
float x1, y1, x2, y2;
|
float x1, y1, x2, y2;
|
||||||
Team t1, t2;
|
Team t1, t2;
|
||||||
|
|||||||
@@ -106,8 +106,8 @@ public class Trail{
|
|||||||
int count = (int)(counter += Time.delta);
|
int count = (int)(counter += Time.delta);
|
||||||
counter -= count;
|
counter -= count;
|
||||||
|
|
||||||
if(points.size + ((count - 1) * 3) > length * 3 && points.size > 0){
|
if(count > 0 && points.size > 0){
|
||||||
points.removeRange(0, Math.min(3 * count - 1, points.size - 1));
|
points.removeRange(0, Math.min(count * 3 - 1, points.size - 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -391,7 +391,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
if(build == null || build.team() != player.team() || !build.block.commandable) continue;
|
if(build == null || build.team() != player.team() || !build.block.commandable) continue;
|
||||||
|
|
||||||
build.onCommand(target);
|
build.onCommand(target);
|
||||||
build.lastAccessed = player.name;
|
build.updateLastAccess(player);
|
||||||
|
|
||||||
if(!state.isPaused() && player == Vars.player){
|
if(!state.isPaused() && player == Vars.player){
|
||||||
Fx.moveCommand.at(target);
|
Fx.moveCommand.at(target);
|
||||||
@@ -596,7 +596,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
throw new ValidateException(player, "Player cannot rotate a block.");
|
throw new ValidateException(player, "Player cannot rotate a block.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(player != null) build.lastAccessed = player.name;
|
if(player != null) build.updateLastAccess(player);
|
||||||
int previous = build.rotation;
|
int previous = build.rotation;
|
||||||
build.rotation = Mathf.mod(build.rotation + Mathf.sign(direction), 4);
|
build.rotation = Mathf.mod(build.rotation + Mathf.sign(direction), 4);
|
||||||
build.updateProximity();
|
build.updateProximity();
|
||||||
|
|||||||
@@ -628,7 +628,7 @@ public class TypeIO{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static KickReason readKick(Reads read){
|
public static KickReason readKick(Reads read){
|
||||||
return KickReason.values()[read.b()];
|
return KickReason.all[read.b()];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeMarkerControl(Writes write, LMarkerControl reason){
|
public static void writeMarkerControl(Writes write, LMarkerControl reason){
|
||||||
@@ -786,7 +786,7 @@ public class TypeIO{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static AdminAction readAction(Reads read){
|
public static AdminAction readAction(Reads read){
|
||||||
return AdminAction.values()[read.b()];
|
return AdminAction.all[read.b()];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeUnitType(Writes write, UnitType effect){
|
public static void writeUnitType(Writes write, UnitType effect){
|
||||||
|
|||||||
@@ -164,6 +164,12 @@ public class LCanvas extends Table{
|
|||||||
this.statements.layout();
|
this.statements.layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearStatements(){
|
||||||
|
jumps.clear();
|
||||||
|
statements.clearChildren();
|
||||||
|
statements.layout();
|
||||||
|
}
|
||||||
|
|
||||||
StatementElem checkHovered(){
|
StatementElem checkHovered(){
|
||||||
Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
|
Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
|
||||||
if(e != null){
|
if(e != null){
|
||||||
|
|||||||
@@ -1480,7 +1480,7 @@ public class LExecutor{
|
|||||||
if(t == null) t = Team.derelict;
|
if(t == null) t = Team.derelict;
|
||||||
|
|
||||||
if(tile.block() != b || tile.team() != t){
|
if(tile.block() != b || tile.team() != t){
|
||||||
tile.setNet(b, t, Mathf.clamp(exec.numi(rotation), 0, 3));
|
tile.setBlock(b, t, Mathf.clamp(exec.numi(rotation), 0, 3));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import mindustry.logic.LExecutor.*;
|
|||||||
import mindustry.logic.LStatements.*;
|
import mindustry.logic.LStatements.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
import mindustry.ui.dialogs.*;
|
import mindustry.ui.dialogs.*;
|
||||||
|
import mindustry.world.blocks.logic.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
import static mindustry.logic.LCanvas.*;
|
import static mindustry.logic.LCanvas.*;
|
||||||
@@ -92,11 +93,29 @@ public class LogicDialog extends BaseDialog{
|
|||||||
TextButtonStyle style = Styles.flatt;
|
TextButtonStyle style = Styles.flatt;
|
||||||
t.defaults().size(280f, 60f).left();
|
t.defaults().size(280f, 60f).left();
|
||||||
|
|
||||||
|
if(privileged && executor != null && executor.build != null && !ui.editor.isShown()){
|
||||||
|
t.button("@editor.worldprocessors.editname", Icon.edit, style, () -> {
|
||||||
|
ui.showTextInput("", "@editor.name", LogicBlock.maxNameLength, executor.build.tag == null ? "" : executor.build.tag, tag -> {
|
||||||
|
if(privileged && executor != null && executor.build != null){
|
||||||
|
executor.build.configure(tag);
|
||||||
|
//just in case of privilege shenanigans...
|
||||||
|
executor.build.tag = tag;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialog.hide();
|
||||||
|
}).marginLeft(12f).row();
|
||||||
|
}
|
||||||
|
|
||||||
|
t.button("@clear", Icon.cancel, style, () -> {
|
||||||
|
ui.showConfirm("@logic.clear.confirm", () -> canvas.clearStatements());
|
||||||
|
dialog.hide();
|
||||||
|
}).marginLeft(12f).row();
|
||||||
|
|
||||||
t.button("@schematic.copy", Icon.copy, style, () -> {
|
t.button("@schematic.copy", Icon.copy, style, () -> {
|
||||||
dialog.hide();
|
dialog.hide();
|
||||||
Core.app.setClipboardText(canvas.save());
|
Core.app.setClipboardText(canvas.save());
|
||||||
}).marginLeft(12f);
|
}).marginLeft(12f).row();
|
||||||
t.row();
|
|
||||||
t.button("@schematic.copy.import", Icon.download, style, () -> {
|
t.button("@schematic.copy.import", Icon.download, style, () -> {
|
||||||
dialog.hide();
|
dialog.hide();
|
||||||
try{
|
try{
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class Maps{
|
|||||||
NoiseFilter::new, ScatterFilter::new, TerrainFilter::new, DistortFilter::new,
|
NoiseFilter::new, ScatterFilter::new, TerrainFilter::new, DistortFilter::new,
|
||||||
RiverNoiseFilter::new, OreFilter::new, OreMedianFilter::new, MedianFilter::new,
|
RiverNoiseFilter::new, OreFilter::new, OreMedianFilter::new, MedianFilter::new,
|
||||||
BlendFilter::new, MirrorFilter::new, ClearFilter::new, CoreSpawnFilter::new,
|
BlendFilter::new, MirrorFilter::new, ClearFilter::new, CoreSpawnFilter::new,
|
||||||
EnemySpawnFilter::new, SpawnPathFilter::new
|
EnemySpawnFilter::new, SpawnPathFilter::new, LogicFilter::new
|
||||||
};
|
};
|
||||||
|
|
||||||
/** List of all built-in maps. Filenames only. */
|
/** List of all built-in maps. Filenames only. */
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class BlendFilter extends GenerateFilter{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public char icon(){
|
public char icon(){
|
||||||
return Iconc.blockSand;
|
return Iconc.blockSandFloor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
72
core/src/mindustry/maps/filters/LogicFilter.java
Normal file
72
core/src/mindustry/maps/filters/LogicFilter.java
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
package mindustry.maps.filters;
|
||||||
|
|
||||||
|
import arc.scene.ui.layout.*;
|
||||||
|
import mindustry.*;
|
||||||
|
import mindustry.gen.*;
|
||||||
|
import mindustry.logic.*;
|
||||||
|
import mindustry.maps.filters.FilterOption.*;
|
||||||
|
import mindustry.world.*;
|
||||||
|
|
||||||
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
public class LogicFilter extends GenerateFilter{
|
||||||
|
/** max available execution for logic filter */
|
||||||
|
public static int maxInstructionsExecution = 500 * 500 * 25;
|
||||||
|
public String code;
|
||||||
|
public boolean loop;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FilterOption[] options(){
|
||||||
|
return new FilterOption[]{
|
||||||
|
new FilterOption(){
|
||||||
|
final String name;
|
||||||
|
{
|
||||||
|
name = "code";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void build(Table table){
|
||||||
|
table.button(b -> b.image(Icon.pencil).size(iconSmall), () -> {
|
||||||
|
ui.logic.show(code, null, true, code -> LogicFilter.this.code = code);
|
||||||
|
}).pad(4).margin(12f);
|
||||||
|
|
||||||
|
table.add("@filter.option." + name);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new ToggleOption("loop", () -> loop, f -> loop = f)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Tiles tiles, GenerateInput in){
|
||||||
|
LExecutor executor = new LExecutor();
|
||||||
|
executor.privileged = true;
|
||||||
|
|
||||||
|
try{
|
||||||
|
//assembler has no variables, all the standard ones are null
|
||||||
|
executor.load(LAssembler.assemble(code, true));
|
||||||
|
}catch(Throwable ignored){
|
||||||
|
//if loading code
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//this updates map width/height global variables
|
||||||
|
logicVars.update();
|
||||||
|
|
||||||
|
//NOTE: all tile operations will call setNet for tiles, but that should have no overhead during world loading
|
||||||
|
//executions are limited to prevent infinite generation
|
||||||
|
for(int i = 1; i < maxInstructionsExecution; i++){
|
||||||
|
if(!loop && (executor.counter.numval >= executor.instructions.length || executor.counter.numval < 0)) break;
|
||||||
|
executor.runOnce();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public char icon(){
|
||||||
|
return Iconc.blockMicroProcessor;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPost(){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,7 +28,7 @@ public class SpawnPathFilter extends GenerateFilter{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public char icon(){
|
public char icon(){
|
||||||
return Iconc.blockCommandCenter;
|
return Iconc.blockCoreZone;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,6 +6,11 @@ import mindustry.*;
|
|||||||
|
|
||||||
public abstract class Mod{
|
public abstract class Mod{
|
||||||
|
|
||||||
|
/** @return the folder where configuration files for this mod should go.*/
|
||||||
|
public Fi getConfigFolder(){
|
||||||
|
return Vars.mods.getConfigFolder(this);
|
||||||
|
}
|
||||||
|
|
||||||
/** @return the config file for this plugin, as the file 'mods/[plugin-name]/config.json'.*/
|
/** @return the config file for this plugin, as the file 'mods/[plugin-name]/config.json'.*/
|
||||||
public Fi getConfig(){
|
public Fi getConfig(){
|
||||||
return Vars.mods.getConfig(this);
|
return Vars.mods.getConfig(this);
|
||||||
@@ -26,7 +31,7 @@ public abstract class Mod{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Register any commands to be used on the client side, e.g. sent from an in-game player.. */
|
/** Register any commands to be used on the client side, e.g. sent from an in-game player. */
|
||||||
public void registerClientCommands(CommandHandler handler){
|
public void registerClientCommands(CommandHandler handler){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,12 +62,18 @@ public class Mods implements Loadable{
|
|||||||
return mainLoader;
|
return mainLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns a file named 'config.json' in a special folder for the specified plugin.
|
/** @return the folder where configuration files for this mod should go. The folder may not exist yet; call mkdirs() before writing to it.
|
||||||
* Call this in init(). */
|
* Call this in init(). */
|
||||||
public Fi getConfig(Mod mod){
|
public Fi getConfigFolder(Mod mod){
|
||||||
ModMeta load = metas.get(mod.getClass());
|
ModMeta load = metas.get(mod.getClass());
|
||||||
if(load == null) throw new IllegalArgumentException("Mod is not loaded yet (or missing)!");
|
if(load == null) throw new IllegalArgumentException("Mod is not loaded yet (or missing)!");
|
||||||
return modDirectory.child(load.name).child("config.json");
|
return modDirectory.child(load.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return a file named 'config.json' in the config folder for the specified mod.
|
||||||
|
* Call this in init(). */
|
||||||
|
public Fi getConfig(Mod mod){
|
||||||
|
return getConfigFolder(mod).child("config.json");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns a list of files per mod subdirectory. */
|
/** Returns a list of files per mod subdirectory. */
|
||||||
@@ -722,6 +728,11 @@ public class Mods implements Loadable{
|
|||||||
Seq<LoadRun> runs = new Seq<>();
|
Seq<LoadRun> runs = new Seq<>();
|
||||||
|
|
||||||
for(LoadedMod mod : orderedMods()){
|
for(LoadedMod mod : orderedMods()){
|
||||||
|
Seq<LoadRun> unorderedContent = new Seq<>();
|
||||||
|
ObjectMap<String, LoadRun> orderedContent = new ObjectMap<>();
|
||||||
|
String[] contentOrder = mod.meta.contentOrder;
|
||||||
|
ObjectSet<String> orderSet = contentOrder == null ? null : ObjectSet.with(contentOrder);
|
||||||
|
|
||||||
if(mod.root.child("content").exists()){
|
if(mod.root.child("content").exists()){
|
||||||
Fi contentRoot = mod.root.child("content");
|
Fi contentRoot = mod.root.child("content");
|
||||||
for(ContentType type : ContentType.all){
|
for(ContentType type : ContentType.all){
|
||||||
@@ -729,15 +740,34 @@ public class Mods implements Loadable{
|
|||||||
Fi folder = contentRoot.child(lower + (lower.endsWith("s") ? "" : "s"));
|
Fi folder = contentRoot.child(lower + (lower.endsWith("s") ? "" : "s"));
|
||||||
if(folder.exists()){
|
if(folder.exists()){
|
||||||
for(Fi file : folder.findAll(f -> f.extension().equals("json") || f.extension().equals("hjson"))){
|
for(Fi file : folder.findAll(f -> f.extension().equals("json") || f.extension().equals("hjson"))){
|
||||||
runs.add(new LoadRun(type, file, mod));
|
|
||||||
|
//if this is part of the ordered content, put it aside to be dealt with later
|
||||||
|
if(orderSet != null && orderSet.contains(file.nameWithoutExtension())){
|
||||||
|
orderedContent.put(file.nameWithoutExtension(), new LoadRun(type, file, mod));
|
||||||
|
}else{
|
||||||
|
unorderedContent.add(new LoadRun(type, file, mod));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//make sure mod content is in proper order
|
//ordered content will be loaded first, if it exists
|
||||||
runs.sort();
|
if(contentOrder != null){
|
||||||
|
for(String contentName : contentOrder){
|
||||||
|
LoadRun run = orderedContent.get(contentName);
|
||||||
|
if(run != null){
|
||||||
|
runs.add(run);
|
||||||
|
}else{
|
||||||
|
Log.warn("Cannot find content defined in contentOrder: @", contentName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//unordered content is sorted alphabetically per mod
|
||||||
|
runs.addAll(unorderedContent.sort());
|
||||||
|
}
|
||||||
|
|
||||||
for(LoadRun l : runs){
|
for(LoadRun l : runs){
|
||||||
Content current = content.getLastAdded();
|
Content current = content.getLastAdded();
|
||||||
try{
|
try{
|
||||||
@@ -1204,6 +1234,8 @@ public class Mods implements Loadable{
|
|||||||
public float texturescale = 1.0f;
|
public float texturescale = 1.0f;
|
||||||
/** If true, bleeding is skipped and no content icons are generated. */
|
/** If true, bleeding is skipped and no content icons are generated. */
|
||||||
public boolean pregenerated;
|
public boolean pregenerated;
|
||||||
|
/** If set, load the mod content in this order by content names */
|
||||||
|
public String[] contentOrder;
|
||||||
|
|
||||||
public String displayName(){
|
public String displayName(){
|
||||||
//useless, kept for legacy reasons
|
//useless, kept for legacy reasons
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ public class Packets{
|
|||||||
nameInUse, idInUse, nameEmpty, customClient, serverClose, vote, typeMismatch,
|
nameInUse, idInUse, nameEmpty, customClient, serverClose, vote, typeMismatch,
|
||||||
whitelist, playerLimit, serverRestarting;
|
whitelist, playerLimit, serverRestarting;
|
||||||
|
|
||||||
|
public static final KickReason[] all = values();
|
||||||
|
|
||||||
public final boolean quiet;
|
public final boolean quiet;
|
||||||
|
|
||||||
KickReason(){
|
KickReason(){
|
||||||
@@ -38,7 +40,9 @@ public class Packets{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public enum AdminAction{
|
public enum AdminAction{
|
||||||
kick, ban, trace, wave, switchTeam
|
kick, ban, trace, wave, switchTeam;
|
||||||
|
|
||||||
|
public static final AdminAction[] all = values();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Generic client connection event. */
|
/** Generic client connection event. */
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ public class GameService{
|
|||||||
});
|
});
|
||||||
|
|
||||||
Events.on(SectorLaunchLoadoutEvent.class, e -> {
|
Events.on(SectorLaunchLoadoutEvent.class, e -> {
|
||||||
if(!schematics.isDefaultLoadout(e.loadout)){
|
if(e.sector.planet == Planets.serpulo && !schematics.isDefaultLoadout(e.loadout)){
|
||||||
launchCoreSchematic.complete();
|
launchCoreSchematic.complete();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -142,6 +142,11 @@ public class StatusEffect extends UnlockableContent{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Called when status effect is removed. */
|
||||||
|
public void onRemoved(Unit unit){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
protected void trans(StatusEffect effect, TransitionHandler handler){
|
protected void trans(StatusEffect effect, TransitionHandler handler){
|
||||||
transitions.put(effect, handler);
|
transitions.put(effect, handler);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -288,6 +288,8 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
|
|
||||||
/** Function used for calculating cost of moving with ControlPathfinder. Does not affect "normal" flow field pathfinding. */
|
/** Function used for calculating cost of moving with ControlPathfinder. Does not affect "normal" flow field pathfinding. */
|
||||||
public @Nullable PathCost pathCost;
|
public @Nullable PathCost pathCost;
|
||||||
|
/** ID for path cost, to be used in the control path finder. This is the value that actually matters; do not assign manually. Set in init(). */
|
||||||
|
public int pathCostId;
|
||||||
/** A sample of the unit that this type creates. Do not modify! */
|
/** A sample of the unit that this type creates. Do not modify! */
|
||||||
public @Nullable Unit sample;
|
public @Nullable Unit sample;
|
||||||
|
|
||||||
@@ -427,10 +429,13 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
|
|
||||||
//(undocumented, you shouldn't need to use these, and if you do just check how they're drawn and copy that)
|
//(undocumented, you shouldn't need to use these, and if you do just check how they're drawn and copy that)
|
||||||
public TextureRegion baseRegion, legRegion, region, previewRegion, shadowRegion, cellRegion, itemCircleRegion,
|
public TextureRegion baseRegion, legRegion, region, previewRegion, shadowRegion, cellRegion, itemCircleRegion,
|
||||||
softShadowRegion, jointRegion, footRegion, legBaseRegion, baseJointRegion, outlineRegion, treadRegion;
|
softShadowRegion, jointRegion, footRegion, legBaseRegion, baseJointRegion, outlineRegion, treadRegion,
|
||||||
|
mineLaserRegion, mineLaserEndRegion;
|
||||||
public TextureRegion[] wreckRegions, segmentRegions, segmentOutlineRegions;
|
public TextureRegion[] wreckRegions, segmentRegions, segmentOutlineRegions;
|
||||||
public TextureRegion[][] treadRegions;
|
public TextureRegion[][] treadRegions;
|
||||||
|
|
||||||
|
//INTERNAL REQUIREMENTS
|
||||||
|
|
||||||
protected float buildTime = -1f;
|
protected float buildTime = -1f;
|
||||||
protected @Nullable ItemStack[] totalRequirements, cachedRequirements, firstRequirements;
|
protected @Nullable ItemStack[] totalRequirements, cachedRequirements, firstRequirements;
|
||||||
|
|
||||||
@@ -691,6 +696,9 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
ControlPathfinder.costGround;
|
ControlPathfinder.costGround;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pathCostId = ControlPathfinder.costTypes.indexOf(pathCost);
|
||||||
|
if(pathCostId == -1) pathCostId = 0;
|
||||||
|
|
||||||
if(flying){
|
if(flying){
|
||||||
envEnabled |= Env.space;
|
envEnabled |= Env.space;
|
||||||
}
|
}
|
||||||
@@ -842,7 +850,7 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
if(stances.length == 0){
|
if(stances.length == 0){
|
||||||
if(canAttack){
|
if(canAttack){
|
||||||
Seq<UnitStance> seq = Seq.with(UnitStance.stop, UnitStance.shoot, UnitStance.holdFire, UnitStance.pursueTarget, UnitStance.patrol);
|
Seq<UnitStance> seq = Seq.with(UnitStance.stop, UnitStance.shoot, UnitStance.holdFire, UnitStance.pursueTarget, UnitStance.patrol);
|
||||||
if(crushDamage > 0){
|
if(!flying){
|
||||||
seq.add(UnitStance.ram);
|
seq.add(UnitStance.ram);
|
||||||
}
|
}
|
||||||
stances = seq.toArray(UnitStance.class);
|
stances = seq.toArray(UnitStance.class);
|
||||||
@@ -910,6 +918,9 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
legBaseRegion = Core.atlas.find(name + "-leg-base", name + "-leg");
|
legBaseRegion = Core.atlas.find(name + "-leg-base", name + "-leg");
|
||||||
baseRegion = Core.atlas.find(name + "-base");
|
baseRegion = Core.atlas.find(name + "-base");
|
||||||
cellRegion = Core.atlas.find(name + "-cell", Core.atlas.find("power-cell"));
|
cellRegion = Core.atlas.find(name + "-cell", Core.atlas.find("power-cell"));
|
||||||
|
|
||||||
|
mineLaserRegion = Core.atlas.find("minelaser");
|
||||||
|
mineLaserEndRegion = Core.atlas.find("minelaser-end");
|
||||||
//when linear filtering is on, it's acceptable to use the relatively low-res 'particle' region
|
//when linear filtering is on, it's acceptable to use the relatively low-res 'particle' region
|
||||||
softShadowRegion =
|
softShadowRegion =
|
||||||
squareShape ? Core.atlas.find("square-shadow") :
|
squareShape ? Core.atlas.find("square-shadow") :
|
||||||
@@ -1186,6 +1197,10 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
public void draw(Unit unit){
|
public void draw(Unit unit){
|
||||||
if(unit.inFogTo(Vars.player.team())) return;
|
if(unit.inFogTo(Vars.player.team())) return;
|
||||||
|
|
||||||
|
unit.drawBuilding();
|
||||||
|
|
||||||
|
drawMining(unit);
|
||||||
|
|
||||||
boolean isPayload = !unit.isAdded();
|
boolean isPayload = !unit.isAdded();
|
||||||
|
|
||||||
Mechc mech = unit instanceof Mechc ? (Mechc)unit : null;
|
Mechc mech = unit instanceof Mechc ? (Mechc)unit : null;
|
||||||
@@ -1289,6 +1304,32 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
Draw.reset();
|
Draw.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void drawMining(Unit unit){
|
||||||
|
if(!unit.mining()) return;
|
||||||
|
float focusLen = unit.hitSize / 2f + Mathf.absin(Time.time, 1.1f, 0.5f);
|
||||||
|
float swingScl = 12f, swingMag = tilesize / 8f;
|
||||||
|
float flashScl = 0.3f;
|
||||||
|
|
||||||
|
float px = unit.x + Angles.trnsx(unit.rotation, focusLen);
|
||||||
|
float py = unit.y + Angles.trnsy(unit.rotation, focusLen);
|
||||||
|
|
||||||
|
float ex = unit.mineTile.worldx() + Mathf.sin(Time.time + 48, swingScl, swingMag);
|
||||||
|
float ey = unit.mineTile.worldy() + Mathf.sin(Time.time + 48, swingScl + 2f, swingMag);
|
||||||
|
|
||||||
|
Draw.z(Layer.flyingUnit + 0.1f);
|
||||||
|
|
||||||
|
Draw.color(Color.lightGray, Color.white, 1f - flashScl + Mathf.absin(Time.time, 0.5f, flashScl));
|
||||||
|
|
||||||
|
Drawf.laser(mineLaserRegion, mineLaserEndRegion, px, py, ex, ey, 0.75f);
|
||||||
|
|
||||||
|
if(unit.isLocal()){
|
||||||
|
Lines.stroke(1f, Pal.accent);
|
||||||
|
Lines.poly(unit.mineTile.worldx(), unit.mineTile.worldy(), 4, tilesize / 2f * Mathf.sqrt2, Time.time);
|
||||||
|
}
|
||||||
|
|
||||||
|
Draw.color();
|
||||||
|
}
|
||||||
|
|
||||||
public <T extends Unit & Payloadc> void drawPayload(T unit){
|
public <T extends Unit & Payloadc> void drawPayload(T unit){
|
||||||
if(unit.hasPayload()){
|
if(unit.hasPayload()){
|
||||||
Payload pay = unit.payloads().first();
|
Payload pay = unit.payloads().first();
|
||||||
@@ -1465,6 +1506,7 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public <T extends Unit & Tankc> void drawTank(T unit){
|
public <T extends Unit & Tankc> void drawTank(T unit){
|
||||||
|
applyColor(unit);
|
||||||
Draw.rect(treadRegion, unit.x, unit.y, unit.rotation - 90);
|
Draw.rect(treadRegion, unit.x, unit.y, unit.rotation - 90);
|
||||||
|
|
||||||
if(treadRegion.found()){
|
if(treadRegion.found()){
|
||||||
@@ -1636,6 +1678,10 @@ public class UnitType extends UnlockableContent implements Senseable{
|
|||||||
if(unit.drownTime > 0 && unit.lastDrownFloor != null){
|
if(unit.drownTime > 0 && unit.lastDrownFloor != null){
|
||||||
Draw.mixcol(Tmp.c1.set(unit.lastDrownFloor.mapColor).mul(0.83f), unit.drownTime * 0.9f);
|
Draw.mixcol(Tmp.c1.set(unit.lastDrownFloor.mapColor).mul(0.83f), unit.drownTime * 0.9f);
|
||||||
}
|
}
|
||||||
|
//this is horribly scuffed.
|
||||||
|
if(renderer != null && renderer.overlays != null){
|
||||||
|
renderer.overlays.checkApplySelection(unit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ public class Fonts{
|
|||||||
private static final String mainFont = "fonts/font.woff";
|
private static final String mainFont = "fonts/font.woff";
|
||||||
private static final ObjectSet<String> unscaled = ObjectSet.with("iconLarge");
|
private static final ObjectSet<String> unscaled = ObjectSet.with("iconLarge");
|
||||||
private static ObjectIntMap<String> unicodeIcons = new ObjectIntMap<>();
|
private static ObjectIntMap<String> unicodeIcons = new ObjectIntMap<>();
|
||||||
|
private static IntMap<String> unicodeToName = new IntMap<>();
|
||||||
private static ObjectMap<String, String> stringIcons = new ObjectMap<>();
|
private static ObjectMap<String, String> stringIcons = new ObjectMap<>();
|
||||||
private static ObjectMap<String, TextureRegion> largeIcons = new ObjectMap<>();
|
private static ObjectMap<String, TextureRegion> largeIcons = new ObjectMap<>();
|
||||||
private static TextureRegion[] iconTable;
|
private static TextureRegion[] iconTable;
|
||||||
@@ -95,12 +96,16 @@ public class Fonts{
|
|||||||
}})).loaded = f -> Fonts.logic = f;
|
}})).loaded = f -> Fonts.logic = f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static @Nullable String unicodeToName(int unicode){
|
||||||
|
return unicodeToName.get(unicode, () -> Iconc.codeToName.get(unicode));
|
||||||
|
}
|
||||||
|
|
||||||
public static TextureRegion getLargeIcon(String name){
|
public static TextureRegion getLargeIcon(String name){
|
||||||
return largeIcons.get(name, () -> {
|
return largeIcons.get(name, () -> {
|
||||||
var region = new TextureRegion();
|
var region = new TextureRegion();
|
||||||
int code = Iconc.codes.get(name, '\uF8D4');
|
int code = Iconc.codes.get(name, '\uF8D4');
|
||||||
var glyph = iconLarge.getData().getGlyph((char)code);
|
var glyph = iconLarge.getData().getGlyph((char)code);
|
||||||
if(glyph == null) return Core.atlas.find("error");
|
if(glyph == null) return Core.atlas.find(name);
|
||||||
region.set(iconLarge.getRegion().texture);
|
region.set(iconLarge.getRegion().texture);
|
||||||
region.set(glyph.u, glyph.v2, glyph.u2, glyph.v);
|
region.set(glyph.u, glyph.v2, glyph.u2, glyph.v);
|
||||||
return region;
|
return region;
|
||||||
@@ -127,6 +132,7 @@ public class Fonts{
|
|||||||
|
|
||||||
unicodeIcons.put(nametex[0], ch);
|
unicodeIcons.put(nametex[0], ch);
|
||||||
stringIcons.put(nametex[0], ((char)ch) + "");
|
stringIcons.put(nametex[0], ((char)ch) + "");
|
||||||
|
unicodeToName.put(ch, texture);
|
||||||
|
|
||||||
Vec2 out = Scaling.fit.apply(region.width, region.height, size, size);
|
Vec2 out = Scaling.fit.apply(region.width, region.height, size, size);
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ package mindustry.ui;
|
|||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.input.*;
|
import arc.input.*;
|
||||||
|
import arc.math.*;
|
||||||
import arc.scene.*;
|
import arc.scene.*;
|
||||||
import arc.scene.event.*;
|
import arc.scene.event.*;
|
||||||
import arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
|
import arc.util.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
@@ -20,6 +22,22 @@ public class Minimap extends Table{
|
|||||||
add(new Element(){
|
add(new Element(){
|
||||||
{
|
{
|
||||||
setSize(Scl.scl(140f));
|
setSize(Scl.scl(140f));
|
||||||
|
|
||||||
|
addListener(new ClickListener(KeyCode.mouseRight){
|
||||||
|
@Override
|
||||||
|
public void clicked(InputEvent event, float cx, float cy){
|
||||||
|
var region = renderer.minimap.getRegion();
|
||||||
|
if(region == null) return;
|
||||||
|
|
||||||
|
float
|
||||||
|
sx = (cx - x) / width,
|
||||||
|
sy = (cy - y) / height,
|
||||||
|
scaledX = Mathf.lerp(region.u, region.u2, sx) * world.width() * tilesize,
|
||||||
|
scaledY = Mathf.lerp(1f - region.v2, 1f - region.v, sy) * world.height() * tilesize;
|
||||||
|
|
||||||
|
control.input.panCamera(Tmp.v1.set(scaledX, scaledY));
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ public class Styles{
|
|||||||
geni,
|
geni,
|
||||||
/** Gray, toggleable, no background. */
|
/** Gray, toggleable, no background. */
|
||||||
grayi,
|
grayi,
|
||||||
|
/** Gray square background, standard behavior. Equivalent to grayt. */
|
||||||
|
graySquarei,
|
||||||
/** Flat, square, black background. */
|
/** Flat, square, black background. */
|
||||||
flati,
|
flati,
|
||||||
/** Square border. */
|
/** Square border. */
|
||||||
@@ -288,6 +290,14 @@ public class Styles{
|
|||||||
imageUpColor = Color.lightGray;
|
imageUpColor = Color.lightGray;
|
||||||
imageDownColor = Color.white;
|
imageDownColor = Color.white;
|
||||||
}};
|
}};
|
||||||
|
graySquarei = new ImageButtonStyle(){{
|
||||||
|
imageUpColor = Color.white;
|
||||||
|
imageDownColor = Color.lightGray;
|
||||||
|
|
||||||
|
over = flatOver;
|
||||||
|
down = flatOver;
|
||||||
|
up = grayPanel;
|
||||||
|
}};
|
||||||
flati = new ImageButtonStyle(){{
|
flati = new ImageButtonStyle(){{
|
||||||
down = flatOver;
|
down = flatOver;
|
||||||
up = black;
|
up = black;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package mindustry.ui.dialogs;
|
package mindustry.ui.dialogs;
|
||||||
|
|
||||||
|
import arc.*;
|
||||||
import arc.scene.ui.*;
|
import arc.scene.ui.*;
|
||||||
import arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
@@ -39,7 +40,7 @@ public class AdminsDialog extends BaseDialog{
|
|||||||
res.labelWrap("[lightgray]" + info.lastName).width(w - h - 24f);
|
res.labelWrap("[lightgray]" + info.lastName).width(w - h - 24f);
|
||||||
res.add().growX();
|
res.add().growX();
|
||||||
res.button(Icon.cancel, () -> {
|
res.button(Icon.cancel, () -> {
|
||||||
ui.showConfirm("@confirm", "@confirmunadmin", () -> {
|
ui.showConfirm("@confirm", Core.bundle.format("@confirmunadmin", info.lastName), () -> {
|
||||||
netServer.admins.unAdminPlayer(info.id);
|
netServer.admins.unAdminPlayer(info.id);
|
||||||
Groups.player.each(player -> {
|
Groups.player.each(player -> {
|
||||||
if(player != null && !player.isLocal() && player.uuid().equals(info.id)){
|
if(player != null && !player.isLocal() && player.uuid().equals(info.id)){
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package mindustry.ui.dialogs;
|
|||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.func.*;
|
import arc.func.*;
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.input.KeyCode;
|
|
||||||
import arc.scene.style.*;
|
import arc.scene.style.*;
|
||||||
import arc.scene.ui.*;
|
import arc.scene.ui.*;
|
||||||
import arc.scene.ui.ImageButton.*;
|
import arc.scene.ui.ImageButton.*;
|
||||||
@@ -193,9 +192,12 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
cont.clear();
|
cont.clear();
|
||||||
cont.table(t -> {
|
cont.table(t -> {
|
||||||
t.add("@search").padRight(10);
|
t.add("@search").padRight(10);
|
||||||
t.field(ruleSearch, text ->
|
var field = t.field(ruleSearch, text -> {
|
||||||
ruleSearch = text.trim().replaceAll(" +", " ").toLowerCase()
|
ruleSearch = text.trim().replaceAll(" +", " ").toLowerCase();
|
||||||
).grow().pad(8).get().keyDown(KeyCode.enter, this::setup);
|
setup();
|
||||||
|
}).grow().pad(8).get();
|
||||||
|
field.setCursorPosition(ruleSearch.length());
|
||||||
|
Core.scene.setKeyboardFocus(field);
|
||||||
t.button(Icon.cancel, Styles.emptyi, () -> {
|
t.button(Icon.cancel, Styles.emptyi, () -> {
|
||||||
ruleSearch = "";
|
ruleSearch = "";
|
||||||
setup();
|
setup();
|
||||||
@@ -234,7 +236,7 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
setup();
|
setup();
|
||||||
}
|
}
|
||||||
}, () -> rules.infiniteResources);
|
}, () -> rules.infiniteResources);
|
||||||
withInfo("@rules.onlydepositcore.info", () -> check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore));
|
check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore);
|
||||||
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
||||||
check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
|
check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
|
||||||
check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed);
|
check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed);
|
||||||
@@ -282,7 +284,7 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
category("enemy");
|
category("enemy");
|
||||||
check("@rules.attack", b -> rules.attackMode = b, () -> rules.attackMode);
|
check("@rules.attack", b -> rules.attackMode = b, () -> rules.attackMode);
|
||||||
check("@rules.corecapture", b -> rules.coreCapture = b, () -> rules.coreCapture);
|
check("@rules.corecapture", b -> rules.coreCapture = b, () -> rules.coreCapture);
|
||||||
withInfo("@rules.placerangecheck.info",() -> check("@rules.placerangecheck", b -> rules.placeRangeCheck = b, () -> rules.placeRangeCheck));
|
check("@rules.placerangecheck", b -> rules.placeRangeCheck = b, () -> rules.placeRangeCheck);
|
||||||
check("@rules.polygoncoreprotection", b -> rules.polygonCoreProtection = b, () -> rules.polygonCoreProtection);
|
check("@rules.polygoncoreprotection", b -> rules.polygonCoreProtection = b, () -> rules.polygonCoreProtection);
|
||||||
number("@rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200), () -> !rules.polygonCoreProtection);
|
number("@rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200), () -> !rules.polygonCoreProtection);
|
||||||
|
|
||||||
@@ -490,27 +492,15 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
|
|
||||||
public void check(String text, Boolc cons, Boolp prov, Boolp condition){
|
public void check(String text, Boolc cons, Boolp prov, Boolp condition){
|
||||||
if(!Core.bundle.get(text.substring(1)).toLowerCase().contains(ruleSearch)) return;
|
if(!Core.bundle.get(text.substring(1)).toLowerCase().contains(ruleSearch)) return;
|
||||||
current.check(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())).padRight(100f).get().left();
|
String infoText = text.substring(1) + ".info";
|
||||||
|
var cell = current.check(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())).padRight(100f);
|
||||||
|
if(Core.bundle.has(infoText)){
|
||||||
|
cell.tooltip(text + ".info");
|
||||||
|
}
|
||||||
|
cell.get().left();
|
||||||
current.row();
|
current.row();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void withInfo(String info, Runnable add){
|
|
||||||
Table wasCurrent = current;
|
|
||||||
current = new Table();
|
|
||||||
current.left().defaults().fillX().left();
|
|
||||||
|
|
||||||
current.button(Icon.infoSmall, () -> ui.showInfo(info)).size(32f).padRight(10f);
|
|
||||||
add.run();
|
|
||||||
|
|
||||||
// rule does not match search pattern (runnable returned without adding anything)
|
|
||||||
if(current.getCells().size < 2){
|
|
||||||
current.clear();
|
|
||||||
}else{
|
|
||||||
wasCurrent.add(current).row();
|
|
||||||
}
|
|
||||||
current = wasCurrent;
|
|
||||||
}
|
|
||||||
|
|
||||||
Cell<TextField> field(Table table, float value, Floatc setter){
|
Cell<TextField> field(Table table, float value, Floatc setter){
|
||||||
return table.field(Strings.autoFixed(value, 2), v -> setter.get(Strings.parseFloat(v)))
|
return table.field(Strings.autoFixed(value, 2), v -> setter.get(Strings.parseFloat(v)))
|
||||||
.valid(Strings::canParsePositiveFloat)
|
.valid(Strings::canParsePositiveFloat)
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class DatabaseDialog extends BaseDialog{
|
|||||||
|
|
||||||
void rebuild(){
|
void rebuild(){
|
||||||
all.clear();
|
all.clear();
|
||||||
var text = search.getText();
|
var text = search.getText().toLowerCase();
|
||||||
|
|
||||||
Seq<Content>[] allContent = Vars.content.getContentMap();
|
Seq<Content>[] allContent = Vars.content.getContentMap();
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ public class DatabaseDialog extends BaseDialog{
|
|||||||
|
|
||||||
Seq<UnlockableContent> array = allContent[j]
|
Seq<UnlockableContent> array = allContent[j]
|
||||||
.select(c -> c instanceof UnlockableContent u && !u.isHidden() &&
|
.select(c -> c instanceof UnlockableContent u && !u.isHidden() &&
|
||||||
(text.isEmpty() || u.localizedName.toLowerCase().contains(text.toLowerCase()))).as();
|
(text.isEmpty() || u.localizedName.toLowerCase().contains(text))).as();
|
||||||
if(array.size == 0) continue;
|
if(array.size == 0) continue;
|
||||||
|
|
||||||
all.add("@content." + type.name() + ".name").growX().left().color(Pal.accent);
|
all.add("@content." + type.name() + ".name").growX().left().color(Pal.accent);
|
||||||
|
|||||||
74
core/src/mindustry/ui/dialogs/IconSelectDialog.java
Normal file
74
core/src/mindustry/ui/dialogs/IconSelectDialog.java
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
package mindustry.ui.dialogs;
|
||||||
|
|
||||||
|
import arc.*;
|
||||||
|
import arc.func.*;
|
||||||
|
import arc.scene.style.*;
|
||||||
|
import arc.scene.ui.*;
|
||||||
|
import arc.scene.ui.layout.*;
|
||||||
|
import arc.util.*;
|
||||||
|
import mindustry.ctype.*;
|
||||||
|
import mindustry.gen.*;
|
||||||
|
import mindustry.graphics.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
|
|
||||||
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
public class IconSelectDialog extends Dialog{
|
||||||
|
private Intc consumer = i -> Log.info("you have mere seconds");
|
||||||
|
|
||||||
|
public IconSelectDialog(){
|
||||||
|
closeOnBack();
|
||||||
|
setFillParent(true);
|
||||||
|
|
||||||
|
cont.pane(t -> {
|
||||||
|
resized(true, () -> {
|
||||||
|
t.clearChildren();
|
||||||
|
t.marginRight(19f);
|
||||||
|
t.defaults().size(48f);
|
||||||
|
|
||||||
|
t.button(Icon.none, Styles.flati, () -> {
|
||||||
|
hide();
|
||||||
|
consumer.get(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
int cols = (int)Math.min(20, Core.graphics.getWidth() / Scl.scl(52f));
|
||||||
|
|
||||||
|
int i = 1;
|
||||||
|
for(var key : accessibleIcons){
|
||||||
|
var value = Icon.icons.get(key);
|
||||||
|
|
||||||
|
t.button(value, Styles.flati, () -> {
|
||||||
|
hide();
|
||||||
|
consumer.get(Iconc.codes.get(key));
|
||||||
|
});
|
||||||
|
|
||||||
|
if(++i % cols == 0) t.row();
|
||||||
|
}
|
||||||
|
|
||||||
|
for(ContentType ctype : defaultContentIcons){
|
||||||
|
t.row();
|
||||||
|
t.image().colspan(cols).growX().width(Float.NEGATIVE_INFINITY).height(3f).color(Pal.accent);
|
||||||
|
t.row();
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
for(UnlockableContent u : content.getBy(ctype).<UnlockableContent>as()){
|
||||||
|
if(!u.isHidden() && u.unlocked()){
|
||||||
|
t.button(new TextureRegionDrawable(u.uiIcon), Styles.flati, iconMed, () -> {
|
||||||
|
hide();
|
||||||
|
consumer.get(u.emojiChar());
|
||||||
|
});
|
||||||
|
|
||||||
|
if(++i % cols == 0) t.row();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
buttons.button("@back", Icon.left, this::hide).size(210f, 64f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show(Intc listener){
|
||||||
|
consumer = listener;
|
||||||
|
super.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -213,7 +213,6 @@ public class KeybindDialog extends Dialog{
|
|||||||
@Override
|
@Override
|
||||||
public boolean keyDown(InputEvent event, KeyCode keycode){
|
public boolean keyDown(InputEvent event, KeyCode keycode){
|
||||||
rebindDialog.hide();
|
rebindDialog.hide();
|
||||||
if(keycode == KeyCode.escape) return false;
|
|
||||||
rebind(section, name, keycode);
|
rebind(section, name, keycode);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class MapPlayDialog extends BaseDialog{
|
|||||||
ScrollPane pane = new ScrollPane(table);
|
ScrollPane pane = new ScrollPane(table);
|
||||||
pane.setFadeScrollBars(false);
|
pane.setFadeScrollBars(false);
|
||||||
table.row();
|
table.row();
|
||||||
for(Gamemode mode : Gamemode.values()){
|
for(Gamemode mode : Gamemode.all){
|
||||||
if(mode.hidden) continue;
|
if(mode.hidden) continue;
|
||||||
table.labelWrap("[accent]" + mode + ":[] [lightgray]" + mode.description()).width(400f);
|
table.labelWrap("[accent]" + mode + ":[] [lightgray]" + mode.description()).width(400f);
|
||||||
table.row();
|
table.row();
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package mindustry.ui.dialogs;
|
package mindustry.ui.dialogs;
|
||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
|
import mindustry.editor.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class PausedDialog extends BaseDialog{
|
public class PausedDialog extends BaseDialog{
|
||||||
|
private MapProcessorsDialog processors = new MapProcessorsDialog();
|
||||||
private SaveDialog save = new SaveDialog();
|
private SaveDialog save = new SaveDialog();
|
||||||
private LoadDialog load = new LoadDialog();
|
private LoadDialog load = new LoadDialog();
|
||||||
private boolean wasClient = false;
|
private boolean wasClient = false;
|
||||||
@@ -49,13 +51,22 @@ public class PausedDialog extends BaseDialog{
|
|||||||
|
|
||||||
cont.row();
|
cont.row();
|
||||||
|
|
||||||
cont.button("@hostserver", Icon.host, () -> {
|
//the button runs out of space when the editor button is added, so use the mobile text
|
||||||
|
cont.button(state.isEditor() ? "@hostserver.mobile" : "@hostserver", Icon.host, () -> {
|
||||||
if(net.server() && steam){
|
if(net.server() && steam){
|
||||||
platform.inviteFriends();
|
platform.inviteFriends();
|
||||||
}else{
|
}else{
|
||||||
ui.host.show();
|
ui.host.show();
|
||||||
}
|
}
|
||||||
}).disabled(b -> !((steam && net.server()) || !net.active())).colspan(2).width(dw * 2 + 10f).update(e -> e.setText(net.server() && steam ? "@invitefriends" : "@hostserver"));
|
}).disabled(b -> !((steam && net.server()) || !net.active())).colspan(state.isEditor() ? 1 : 2).width(state.isEditor() ? dw : dw * 2 + 10f)
|
||||||
|
.update(e -> e.setText(net.server() && steam ? "@invitefriends" : state.isEditor() ? "@hostserver.mobile" : "@hostserver"));
|
||||||
|
|
||||||
|
if(state.isEditor()){
|
||||||
|
cont.button("@editor.worldprocessors", Icon.logic, () -> {
|
||||||
|
hide();
|
||||||
|
processors.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
cont.row();
|
cont.row();
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user