Expose lobby options to localisation.

This commit is contained in:
Matthias Mailänder
2022-10-25 21:40:49 +02:00
committed by Gustas
parent aefa49a831
commit 8297fcff30
30 changed files with 287 additions and 96 deletions

View File

@@ -18,11 +18,13 @@ namespace OpenRA.Traits
[Desc("Required for shroud and fog visibility checks. Add this to the player actor.")]
public class ShroudInfo : TraitInfo, ILobbyOptions
{
[TranslationReference]
[Desc("Descriptive label for the fog checkbox in the lobby.")]
public readonly string FogCheckboxLabel = "Fog of War";
public readonly string FogCheckboxLabel = "fog-of-war.label";
[TranslationReference]
[Desc("Tooltip description for the fog checkbox in the lobby.")]
public readonly string FogCheckboxDescription = "Line of sight is required to view enemy forces";
public readonly string FogCheckboxDescription = "fog-of-war.description";
[Desc("Default value of the fog checkbox in the lobby.")]
public readonly bool FogCheckboxEnabled = true;
@@ -36,11 +38,13 @@ namespace OpenRA.Traits
[Desc("Display order for the fog checkbox in the lobby.")]
public readonly int FogCheckboxDisplayOrder = 0;
[TranslationReference]
[Desc("Descriptive label for the explored map checkbox in the lobby.")]
public readonly string ExploredMapCheckboxLabel = "Explored Map";
public readonly string ExploredMapCheckboxLabel = "explored-map.label";
[TranslationReference]
[Desc("Tooltip description for the explored map checkbox in the lobby.")]
public readonly string ExploredMapCheckboxDescription = "Initial map shroud is revealed";
public readonly string ExploredMapCheckboxDescription = "explored-map.description";
[Desc("Default value of the explore map checkbox in the lobby.")]
public readonly bool ExploredMapCheckboxEnabled = false;
@@ -56,9 +60,11 @@ namespace OpenRA.Traits
IEnumerable<LobbyOption> ILobbyOptions.LobbyOptions(MapPreview map)
{
yield return new LobbyBooleanOption("explored", ExploredMapCheckboxLabel, ExploredMapCheckboxDescription,
yield return new LobbyBooleanOption("explored", Game.ModData.Translation.GetString(ExploredMapCheckboxLabel),
Game.ModData.Translation.GetString(ExploredMapCheckboxDescription),
ExploredMapCheckboxVisible, ExploredMapCheckboxDisplayOrder, ExploredMapCheckboxEnabled, ExploredMapCheckboxLocked);
yield return new LobbyBooleanOption("fog", FogCheckboxLabel, FogCheckboxDescription,
yield return new LobbyBooleanOption("fog", Game.ModData.Translation.GetString(FogCheckboxLabel),
Game.ModData.Translation.GetString(FogCheckboxDescription),
FogCheckboxVisible, FogCheckboxDisplayOrder, FogCheckboxEnabled, FogCheckboxLocked);
}

View File

@@ -540,8 +540,8 @@ namespace OpenRA.Traits
IReadOnlyDictionary<string, string> values, string defaultValue, bool locked)
{
Id = id;
Name = name;
Description = description;
Name = Game.ModData.Translation.GetString(name);
Description = Game.ModData.Translation.GetString(description);
IsVisible = visible;
DisplayOrder = displayorder;
Values = values;

View File

@@ -20,11 +20,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Attach this to the player actor.")]
public class DeveloperModeInfo : TraitInfo, ILobbyOptions
{
[TranslationReference]
[Desc("Descriptive label for the developer mode checkbox in the lobby.")]
public readonly string CheckboxLabel = "Debug Menu";
public readonly string CheckboxLabel = "debug-menu.label";
[TranslationReference]
[Desc("Tooltip description for the developer mode checkbox in the lobby.")]
public readonly string CheckboxDescription = "Enables cheats and developer commands";
public readonly string CheckboxDescription = "debug-menu.description";
[Desc("Default value of the developer mode checkbox in the lobby.")]
public readonly bool CheckboxEnabled = false;

View File

@@ -22,10 +22,12 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Internal id for this checkbox.")]
public readonly string ID = null;
[TranslationReference]
[FieldLoader.Require]
[Desc("Display name for this checkbox.")]
public readonly string Label = null;
[TranslationReference]
[Desc("Description name for this checkbox.")]
public readonly string Description = null;

View File

@@ -21,6 +21,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Internal id for this tech level.")]
public readonly string Id;
[TranslationReference]
[Desc("Name shown in the lobby options.")]
public readonly string Name;

View File

@@ -21,11 +21,13 @@ namespace OpenRA.Mods.Common.Traits
[TraitLocation(SystemActors.World)]
public class CrateSpawnerInfo : TraitInfo, ILobbyOptions
{
[TranslationReference]
[Desc("Descriptive label for the crates checkbox in the lobby.")]
public readonly string CheckboxLabel = "Crates";
public readonly string CheckboxLabel = "crates.label";
[TranslationReference]
[Desc("Tooltip description for the crates checkbox in the lobby.")]
public readonly string CheckboxDescription = "Collect crates with units to receive random bonuses or penalties";
public readonly string CheckboxDescription = "crates.description";
[Desc("Default value of the crates checkbox in the lobby.")]
public readonly bool CheckboxEnabled = true;

View File

@@ -18,11 +18,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Controls the build radius checkboxes in the lobby options.")]
public class MapBuildRadiusInfo : TraitInfo, ILobbyOptions
{
[TranslationReference]
[Desc("Descriptive label for the ally build radius checkbox in the lobby.")]
public readonly string AllyBuildRadiusCheckboxLabel = "Build off Allies";
public readonly string AllyBuildRadiusCheckboxLabel = "ally-build-radius.label";
[TranslationReference]
[Desc("Tooltip description for the ally build radius checkbox in the lobby.")]
public readonly string AllyBuildRadiusCheckboxDescription = "Allow allies to place structures inside your build area";
public readonly string AllyBuildRadiusCheckboxDescription = "ally-build-radius.description";
[Desc("Default value of the ally build radius checkbox in the lobby.")]
public readonly bool AllyBuildRadiusCheckboxEnabled = true;
@@ -36,11 +38,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Display order for the ally build radius checkbox in the lobby.")]
public readonly int AllyBuildRadiusCheckboxDisplayOrder = 0;
[TranslationReference]
[Desc("Tooltip description for the build radius checkbox in the lobby.")]
public readonly string BuildRadiusCheckboxLabel = "Limit Build Area";
public readonly string BuildRadiusCheckboxLabel = "build-radius.label";
[TranslationReference]
[Desc("Tooltip description for the build radius checkbox in the lobby.")]
public readonly string BuildRadiusCheckboxDescription = "Limits structure placement to areas around Construction Yards";
public readonly string BuildRadiusCheckboxDescription = "build-radius.description";
[Desc("Default value of the build radius checkbox in the lobby.")]
public readonly bool BuildRadiusCheckboxEnabled = true;

View File

@@ -18,11 +18,13 @@ namespace OpenRA.Mods.Common.Traits
[TraitLocation(SystemActors.World)]
public class MapCreepsInfo : TraitInfo, ILobbyOptions
{
[TranslationReference]
[Desc("Descriptive label for the creeps checkbox in the lobby.")]
public readonly string CheckboxLabel = "Creep Actors";
public readonly string CheckboxLabel = "map-creeps.label";
[TranslationReference]
[Desc("Tooltip description for the creeps checkbox in the lobby.")]
public readonly string CheckboxDescription = "Hostile forces spawn on the battlefield";
public readonly string CheckboxDescription = "map-creeps.description";
[Desc("Default value of the creeps checkbox in the lobby.")]
public readonly bool CheckboxEnabled = true;

View File

@@ -19,11 +19,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Controls the game speed, tech level, and short game lobby options.")]
public class MapOptionsInfo : TraitInfo, ILobbyOptions, IRulesetLoaded
{
[TranslationReference]
[Desc("Descriptive label for the short game checkbox in the lobby.")]
public readonly string ShortGameCheckboxLabel = "Short Game";
public readonly string ShortGameCheckboxLabel = "short-game.label";
[TranslationReference]
[Desc("Tooltip description for the short game checkbox in the lobby.")]
public readonly string ShortGameCheckboxDescription = "Players are defeated when their bases are destroyed";
public readonly string ShortGameCheckboxDescription = "short-game.description";
[Desc("Default value of the short game checkbox in the lobby.")]
public readonly bool ShortGameCheckboxEnabled = true;
@@ -37,11 +39,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Display order for the short game checkbox in the lobby.")]
public readonly int ShortGameCheckboxDisplayOrder = 0;
[TranslationReference]
[Desc("Descriptive label for the tech level option in the lobby.")]
public readonly string TechLevelDropdownLabel = "Tech Level";
public readonly string TechLevelDropdownLabel = "tech-level.label";
[TranslationReference]
[Desc("Tooltip description for the tech level option in the lobby.")]
public readonly string TechLevelDropdownDescription = "The units and abilities that players can use";
public readonly string TechLevelDropdownDescription = "tech-level.description";
[Desc("Default tech level.")]
public readonly string TechLevel = "unrestricted";
@@ -55,11 +59,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Display order for the tech level option in the lobby.")]
public readonly int TechLevelDropdownDisplayOrder = 0;
[TranslationReference]
[Desc("Tooltip description for the game speed option in the lobby.")]
public readonly string GameSpeedDropdownLabel = "Game Speed";
public readonly string GameSpeedDropdownLabel = "game-speed.label";
[TranslationReference]
[Desc("Description of the game speed option in the lobby.")]
public readonly string GameSpeedDropdownDescription = "The rate at which time passes";
public readonly string GameSpeedDropdownDescription = "game-speed.description";
[Desc("Default game speed (leave empty to use the default defined in mod.yaml).")]
public readonly string GameSpeed = null;
@@ -79,7 +85,7 @@ namespace OpenRA.Mods.Common.Traits
ShortGameCheckboxVisible, ShortGameCheckboxDisplayOrder, ShortGameCheckboxEnabled, ShortGameCheckboxLocked);
var techLevels = map.PlayerActorInfo.TraitInfos<ProvidesTechPrerequisiteInfo>()
.ToDictionary(t => t.Id, t => t.Name);
.ToDictionary(t => t.Id, t => Game.ModData.Translation.GetString(t.Name));
if (techLevels.Count > 0)
yield return new LobbyOption("techlevel", TechLevelDropdownLabel, TechLevelDropdownDescription, TechLevelDropdownVisible, TechLevelDropdownDisplayOrder,

View File

@@ -25,11 +25,13 @@ namespace OpenRA.Mods.Common.Traits
{
public readonly WDist InitialExploreRange = WDist.FromCells(5);
[TranslationReference]
[Desc("Descriptive label for the spawn positions checkbox in the lobby.")]
public readonly string SeparateTeamSpawnsCheckboxLabel = "Separate Team Spawns";
public readonly string SeparateTeamSpawnsCheckboxLabel = "separate-team-spawns.label";
[TranslationReference]
[Desc("Tooltip description for the spawn positions checkbox in the lobby.")]
public readonly string SeparateTeamSpawnsCheckboxDescription = "Players without assigned spawn points will start as far as possible from enemy players";
public readonly string SeparateTeamSpawnsCheckboxDescription = "separate-team-spawns.description";
[Desc("Default value of the spawn positions checkbox in the lobby.")]
public readonly bool SeparateTeamSpawnsCheckboxEnabled = true;

View File

@@ -22,6 +22,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Internal class ID.")]
public readonly string Class = "none";
[TranslationReference]
[Desc("Exposed via the UI to the player.")]
public readonly string ClassName = "Unlabeled";

View File

@@ -24,11 +24,13 @@ namespace OpenRA.Mods.Common.Traits
{
public readonly string StartingUnitsClass = "none";
[TranslationReference]
[Desc("Descriptive label for the starting units option in the lobby.")]
public readonly string DropdownLabel = "Starting Units";
public readonly string DropdownLabel = "starting-units.label";
[TranslationReference]
[Desc("Tooltip description for the starting units option in the lobby.")]
public readonly string DropdownDescription = "The units that players start the game with";
public readonly string DropdownDescription = "starting-units.description";
[Desc("Prevent the starting units option from being changed in the lobby.")]
public readonly bool DropdownLocked = false;
@@ -45,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits
// Duplicate classes are defined for different race variants
foreach (var t in map.WorldActorInfo.TraitInfos<StartingUnitsInfo>())
startingUnits[t.Class] = t.ClassName;
startingUnits[t.Class] = Game.ModData.Translation.GetString(t.ClassName);
if (startingUnits.Count > 0)
yield return new LobbyOption("startingunits", DropdownLabel, DropdownDescription, DropdownVisible, DropdownDisplayOrder,

View File

@@ -21,11 +21,13 @@ namespace OpenRA.Mods.Common.Traits
[Desc("This trait allows setting a time limit on matches. Attach this to the World actor.")]
public class TimeLimitManagerInfo : TraitInfo, ILobbyOptions, IRulesetLoaded
{
[TranslationReference]
[Desc("Label that will be shown for the time limit option in the lobby.")]
public readonly string TimeLimitLabel = "Time Limit";
public readonly string TimeLimitLabel = "time-limit.label";
[TranslationReference]
[Desc("Tooltip description that will be shown for the time limit option in the lobby.")]
public readonly string TimeLimitDescription = "Player or team with the highest score after this time wins";
public readonly string TimeLimitDescription = "time-limit.description";
[Desc("Time Limit options that will be shown in the lobby dropdown. Values are in minutes.")]
public readonly int[] TimeLimitOptions = { 0, 10, 20, 30, 40, 60, 90 };
@@ -74,14 +76,20 @@ namespace OpenRA.Mods.Common.Traits
throw new YamlException("TimeLimitDefault must be a value from TimeLimitOptions");
}
[TranslationReference]
const string NoTimeLimit = "no-time-limit";
[TranslationReference("minutes")]
const string TimeLimitOption = "time-limit-options";
IEnumerable<LobbyOption> ILobbyOptions.LobbyOptions(MapPreview map)
{
var timelimits = TimeLimitOptions.ToDictionary(c => c.ToString(), c =>
var timelimits = TimeLimitOptions.ToDictionary(m => m.ToString(), m =>
{
if (c == 0)
return "No limit";
if (m == 0)
return Game.ModData.Translation.GetString(NoTimeLimit);
else
return c.ToString() + $" minute{(c > 1 ? "s" : null)}";
return Game.ModData.Translation.GetString(TimeLimitOption, Translation.Arguments("minutes", m));
});
yield return new LobbyOption("timelimit", TimeLimitLabel, TimeLimitDescription, TimeLimitDropdownVisible, TimeLimitDisplayOrder,
@@ -93,6 +101,9 @@ namespace OpenRA.Mods.Common.Traits
public class TimeLimitManager : INotifyTimeLimit, ITick, IWorldLoaded
{
[TranslationReference]
const string TimeLimitExpired = "time-limit-expired";
readonly TimeLimitManagerInfo info;
readonly int ticksPerSecond;
LabelWidget countdownLabel;
@@ -170,7 +181,7 @@ namespace OpenRA.Mods.Common.Traits
countdownLabel.GetText = () => null;
if (!info.SkipTimerExpiredNotification)
TextNotificationsManager.AddSystemLine("Time limit has expired.");
TextNotificationsManager.AddSystemLine(Game.ModData.Translation.GetString(TimeLimitExpired));
}
}
}

View File

@@ -0,0 +1,22 @@
## Player
low = Low
medium = Medium
no-powers = No Powers
unrestricted = Unrestricted
redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
stealth-deliveries =
.label = Stealth Deliveries
.description = Nod's delivery plane is cloaked
## World
mcv-only = MCV Only
light-support = Light Support
heavy-support = Heavy Support
map-creeps =
.label = Creep Actors
.description = Hostile forces spawn on the battlefield

View File

@@ -144,6 +144,7 @@ ChromeLayout:
Translations:
common|languages/en.ftl
cnc|languages/rules/en.ftl
Voices:
cnc|audio/voices.yaml

View File

@@ -42,15 +42,15 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
ID: factundeploy
Label: Redeployable MCVs
Description: Allow undeploying Construction Yard
Label: redeployable-mcvs.label
Description: redeployable-mcvs.description
Enabled: True
DisplayOrder: 7
Prerequisites: global-factundeploy
LobbyPrerequisiteCheckbox@GLOBALC17STEALTH:
ID: C17-Stealth
Label: Stealth Deliveries
Description: Nod's delivery plane is cloaked
Label: stealth-deliveries.label
Description: stealth-deliveries.description
Enabled: False
DisplayOrder: 8
Prerequisites: global-C17-stealth
@@ -58,19 +58,19 @@ Player:
FrozenActorLayer:
PlaceBeacon:
ProvidesTechPrerequisite@low:
Name: Low
Name: low
Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: Medium
Name: medium
Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper:
Name: No Powers
Name: no-powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all:
Name: Unrestricted
Name: unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
GrantConditionOnPrerequisiteManager:

View File

@@ -208,42 +208,42 @@ World:
CreateMapPlayers:
StartingUnits@mcvonly:
Class: none
ClassName: MCV Only
ClassName: mcv-only
Factions: gdi, nod
BaseActor: mcv
StartingUnits@defaultgdia:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e3,e3,jeep
StartingUnits@defaultnoda:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e1,e3,e3,bggy
StartingUnits@heavynoda:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e3,e3,ltnk,ltnk,ftnk
StartingUnits@heavynodb:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e3,e3,e3,ftnk,ftnk
StartingUnits@heavygdia:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e3,e3,jeep,mtnk,mtnk
StartingUnits@heavygdib:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,e1,e1,e2,e2,e2,e3,e3,apc,mtnk

View File

@@ -663,3 +663,68 @@ path-debug-description = toggles a visualization of path searching.
## TerrainGeometryOverlay
terrain-geometry-overlay = toggles the terrain geometry overlay.
## Shroud
fog-of-war =
.label = Fog of War
.description = Line of sight is required to view enemy forces
explored-map =
.label = Explored Map
.description = Initial map shroud is revealed
## DeveloperMode
debug-menu =
.label = Debug Menu
.description = Enables cheats and developer commands
## CrateSpawner
crates =
.label = Crates
.description = Collect crates with units to receive random bonuses or penalties
## MapBuildRadius
ally-build-radius =
.label = Build off Allies
.description = Allow allies to place structures inside your build area
build-radius =
.label = Limit Build Area
.description = Limits structure placement to areas around Construction Yards
## MapOptions
short-game =
.label = Short Game
.description = Players are defeated when their bases are destroyed
tech-level =
.label = Tech Level
.description = The units and abilities that players can use
game-speed =
.label = Game Speed
.description = The rate at which time passes
## MapStartingLocations
separate-team-spawns =
.label = Separate Team Spawns
.description = Players without assigned spawn points will start as far as possible from enemy players
## SpawnStartingUnits
starting-units =
.label = Starting Units
.description = The units that players start the game with
## TimeLimitManager
time-limit =
.label = Time Limit
.description = Player or team with the highest score after this time wins
no-time-limit = No limit
time-limit-options =
{ $minutes ->
[one] { $minutes } minute
*[other] { $minutes } minutes
}
time-limit-expired = Time limit has expired.

View File

@@ -0,0 +1,18 @@
## Player
low = Low
medium = Medium
no-powers = No Powers
unrestricted = Unrestricted
automatic-concrete =
.label = Automatic Concrete
.description = Concrete foundations are automatically created beneath buildings
## World
map-worms =
.label = Worms
.description = Worms roam the map and devour unprepared forces
mcv-only = MCV Only
light-support = Light Support
heavy-support = Heavy Support

View File

@@ -124,6 +124,7 @@ ChromeLayout:
Translations:
common|languages/en.ftl
d2k|languages/rules/en.ftl
Weapons:
d2k|weapons/debris.yaml

View File

@@ -126,8 +126,8 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@AUTOCONCRETE:
ID: autoconcrete
Label: Automatic Concrete
Description: Concrete foundations are automatically created beneath buildings
Label: automatic-concrete.label
Description: automatic-concrete.description
Enabled: False
DisplayOrder: 7
Prerequisites: global-auto-concrete
@@ -158,19 +158,19 @@ Player:
Prerequisite: player.smuggler
Factions: smuggler
ProvidesTechPrerequisite@low:
Name: Low
Name: low
Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: Medium
Name: medium
Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper:
Name: No Powers
Name: no-powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all:
Name: Unrestricted
Name: unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
EnemyWatcher:

View File

@@ -157,8 +157,8 @@ World:
Type: SandCrater
Sequence: sandcraters
MapCreeps:
CheckboxLabel: Worms
CheckboxDescription: Worms roam the map and devour unprepared forces
CheckboxLabel: map-worms.label
CheckboxDescription: map-worms.description
CheckboxDisplayOrder: 5
SpawnMapActors:
MapBuildRadius:
@@ -173,12 +173,12 @@ World:
SeparateTeamSpawnsCheckboxDisplayOrder: 6
StartingUnits@mcv:
Class: none
ClassName: MCV Only
ClassName: mcv-only
BaseActor: mcv
Factions: atreides, ordos, harkonnen
StartingUnits@lightatreides:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: atreides
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, grenadier, trike, quad
@@ -186,7 +186,7 @@ World:
OuterSupportRadius: 5
StartingUnits@lightharkonnen:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: harkonnen
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, trooper, trike, quad
@@ -194,7 +194,7 @@ World:
OuterSupportRadius: 5
StartingUnits@lightordos:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: ordos
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, engineer, raider, quad
@@ -202,7 +202,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyatreides:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: atreides
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, grenadier, trike, combat_tank_a, missile_tank
@@ -210,7 +210,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyharkonnen:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: harkonnen
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, engineer, quad, combat_tank_h, siege_tank
@@ -218,7 +218,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyordos:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: ordos
BaseActor: mcv
SupportActors: light_inf, light_inf, light_inf, trooper, engineer, raider, combat_tank_o, missile_tank

View File

@@ -0,0 +1,23 @@
## Player
infantry-only = Infantry Only
low = Low
medium = Medium
no-superweapons = No Superweapons
unrestricted = Unrestricted
kill-bounties =
.label = Kill Bounties
.description = Players receive cash bonuses when killing enemy units
redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
reusable-engineers =
.label = Reusable Engineers
.description = Engineers remain on the battlefield after capturing a structure
## World
mcv-only = MCV Only
light-support = Light Support
heavy-support = Heavy Support

View File

@@ -140,6 +140,7 @@ ChromeLayout:
Translations:
common|languages/en.ftl
ra|languages/rules/en.ftl
Weapons:
ra|weapons/explosions.yaml

View File

@@ -125,22 +125,22 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALBOUNTY:
ID: bounty
Label: Kill Bounties
Description: Players receive cash bonuses when killing enemy units
Label: kill-bounties.label
Description: kill-bounties.description
Enabled: False
DisplayOrder: 8
Prerequisites: global-bounty
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
ID: factundeploy
Label: Redeployable MCVs
Description: Allow undeploying Construction Yard
Label: redeployable-mcvs.label
Description: redeployable-mcvs.description
Enabled: True
DisplayOrder: 7
Prerequisites: global-factundeploy
LobbyPrerequisiteCheckbox@REUSABLEENGINEERS:
ID: reusable-engineers
Label: Reusable Engineers
Description: Engineers remain on the battlefield after capturing a structure
Label: reusable-engineers.label
Description: reusable-engineers.description
Enabled: False
DisplayOrder: 9
Prerequisites: global-reusable-engineers
@@ -151,23 +151,23 @@ Player:
PlayerStatistics:
PlaceBeacon:
ProvidesTechPrerequisite@infonly:
Name: Infantry Only
Name: infantry-only
Prerequisites: techlevel.infonly
Id: infantryonly
ProvidesTechPrerequisite@low:
Name: Low
Name: low
Prerequisites: techlevel.infonly, techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: Medium
Name: medium
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@high:
Name: No Superweapons
Name: no-superweapons
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high
Id: nosuperweapons
ProvidesTechPrerequisite@unrestricted:
Name: Unrestricted
Name: unrestricted
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high, techlevel.unrestricted
Id: unrestricted
GrantConditionOnPrerequisiteManager:

View File

@@ -228,12 +228,12 @@ World:
CreateMapPlayers:
StartingUnits@mcvonly:
Class: none
ClassName: MCV Only
ClassName: mcv-only
Factions: allies, england, france, germany, soviet, russia, ukraine
BaseActor: mcv
StartingUnits@lightallies:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: allies, england, france, germany
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk
@@ -241,7 +241,7 @@ World:
OuterSupportRadius: 5
StartingUnits@lightsoviet:
Class: light
ClassName: Light Support
ClassName: light-support
Factions: soviet, russia, ukraine
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,apc,ftrk
@@ -249,7 +249,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavyallies:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: allies, england, france, germany
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk,2tnk,2tnk,2tnk
@@ -257,7 +257,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavysoviet:
Class: heavy
ClassName: Heavy Support
ClassName: heavy-support
Factions: soviet, russia, ukraine
BaseActor: mcv
SupportActors: e1,e1,e1,e3,e3,apc,ftrk,3tnk,3tnk

View File

@@ -0,0 +1,18 @@
## Player
low = Low
medium = Medium
no-powers = No Powers
unrestricted = Unrestricted
redeployable-mcvs =
.label = Redeployable MCVs
.description = Allow undeploying Construction Yard
## World
mcv-only = MCV Only
light = Light
heavy = Heavy
map-creeps =
.label = Creep Actors
.description = Hostile forces spawn on the battlefield

View File

@@ -185,6 +185,7 @@ ChromeLayout:
Translations:
common|languages/en.ftl
ts|languages/rules/en.ftl
Voices:
ts|audio/voices.yaml

View File

@@ -107,8 +107,8 @@ Player:
FogCheckboxDisplayOrder: 3
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:
ID: factundeploy
Label: Redeployable MCVs
Description: Allow undeploying Construction Yard
Label: redeployable-mcvs.label
Description: redeployable-mcvs.description
Enabled: True
DisplayOrder: 7
Prerequisites: global-factundeploy
@@ -127,19 +127,19 @@ Player:
ArrowSequence:
CircleSequence:
ProvidesTechPrerequisite@low:
Name: Low
Name: low
Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium:
Name: Medium
Name: medium
Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper:
Name: No Powers
Name: no-powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all:
Name: Unrestricted
Name: unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
ResourceStorageWarning:

View File

@@ -307,12 +307,12 @@ World:
CreateMapPlayers:
StartingUnits@MCV:
Class: none
ClassName: MCV Only
ClassName: mcv-only
Factions: gdi, nod
BaseActor: mcv
StartingUnits@light.gdi:
Class: light
ClassName: Light
ClassName: light
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e1,smech
@@ -320,7 +320,7 @@ World:
OuterSupportRadius: 5
StartingUnits@light.nod:
Class: light
ClassName: Light
ClassName: light
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e1,bggy
@@ -328,7 +328,7 @@ World:
OuterSupportRadius: 5
StartingUnits@med.gdi:
Class: medium
ClassName: Medium
ClassName: medium
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e2,e2,jumpjet,smech
@@ -336,7 +336,7 @@ World:
OuterSupportRadius: 5
StartingUnits@med.nod:
Class: medium
ClassName: Medium
ClassName: medium
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e3,e3,cyborg,bggy
@@ -344,7 +344,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavy.gdi:
Class: heavy
ClassName: Heavy
ClassName: heavy
Factions: gdi
BaseActor: mcv
SupportActors: e1,e1,e2,e2,jumpjet,smech,smech,mmch
@@ -352,7 +352,7 @@ World:
OuterSupportRadius: 5
StartingUnits@heavy.nod:
Class: heavy
ClassName: Heavy
ClassName: heavy
Factions: nod
BaseActor: mcv
SupportActors: e1,e1,e3,e3,cyborg,bggy,bike,ttnk