diff --git a/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs b/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs index 0270fe8e79..969468ad30 100644 --- a/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs +++ b/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs @@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Orders readonly BuildingInfo buildingInfo; readonly PlaceBuildingInfo placeBuildingInfo; readonly BuildingInfluence buildingInfluence; - readonly string race; + readonly string faction; readonly Sprite buildOk; readonly Sprite buildBlocked; IActorPreview[] preview; @@ -50,7 +50,8 @@ namespace OpenRA.Mods.Common.Orders var buildableInfo = info.Traits.Get(); var mostLikelyProducer = queue.MostLikelyProducer(); - race = buildableInfo.ForceRace ?? (mostLikelyProducer.Trait != null ? mostLikelyProducer.Trait.Race : producer.Owner.Faction.InternalName); + faction = buildableInfo.ForceFaction + ?? (mostLikelyProducer.Trait != null ? mostLikelyProducer.Trait.Faction : producer.Owner.Faction.InternalName); buildOk = map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); buildBlocked = map.SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0); @@ -170,7 +171,7 @@ namespace OpenRA.Mods.Common.Orders { var td = new TypeDictionary() { - new FactionInit(race), + new FactionInit(faction), new OwnerInit(producer.Owner), new HideBibPreviewInit() }; diff --git a/OpenRA.Mods.Common/Traits/Buildable.cs b/OpenRA.Mods.Common/Traits/Buildable.cs index 98cae3f1db..29dca7abc0 100644 --- a/OpenRA.Mods.Common/Traits/Buildable.cs +++ b/OpenRA.Mods.Common/Traits/Buildable.cs @@ -29,8 +29,8 @@ namespace OpenRA.Mods.Common.Traits [Desc("Disable production when there are more than this many of this actor on the battlefield. Set to 0 to disable.")] public readonly int BuildLimit = 0; - [Desc("Force a specific race variant, overriding the race of the producing actor.")] - public readonly string ForceRace = null; + [Desc("Force a specific faction variant, overriding the faction of the producing actor.")] + public readonly string ForceFaction = null; [Desc("Palette used for the production icon.")] public readonly string IconPalette = "chrome"; diff --git a/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs index 40907694ad..d43bbfc17d 100644 --- a/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs +++ b/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs @@ -107,7 +107,7 @@ namespace OpenRA.Mods.Common.Traits foreach (var p in producers.Where(p => !p.Actor.IsDisabled())) { - if (p.Trait.Produce(p.Actor, ai, p.Trait.Race)) + if (p.Trait.Produce(p.Actor, ai, p.Trait.Faction)) { FinishProduction(); return true; diff --git a/OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs b/OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs index 5bc22c9b97..07113bad52 100644 --- a/OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs +++ b/OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs @@ -62,12 +62,12 @@ namespace OpenRA.Mods.Common.Traits return; var producer = queue.MostLikelyProducer(); - var race = producer.Trait != null ? producer.Trait.Race : self.Owner.Faction.InternalName; + var faction = producer.Trait != null ? producer.Trait.Faction : self.Owner.Faction.InternalName; var buildingInfo = unit.Traits.Get(); var buildableInfo = unit.Traits.GetOrDefault(); - if (buildableInfo != null && buildableInfo.ForceRace != null) - race = buildableInfo.ForceRace; + if (buildableInfo != null && buildableInfo.ForceFaction != null) + faction = buildableInfo.ForceFaction; if (os == "LineBuild") { @@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.Traits { new LocationInit(t), new OwnerInit(order.Player), - new FactionInit(race) + new FactionInit(faction) }); if (playSounds) @@ -119,7 +119,7 @@ namespace OpenRA.Mods.Common.Traits { new LocationInit(order.TargetLocation), new OwnerInit(order.Player), - new FactionInit(race), + new FactionInit(faction), }); foreach (var s in buildingInfo.BuildSounds) diff --git a/OpenRA.Mods.Common/Traits/Player/ProvidesPrerequisite.cs b/OpenRA.Mods.Common/Traits/Player/ProvidesPrerequisite.cs index 3928c7f164..804708bc4c 100644 --- a/OpenRA.Mods.Common/Traits/Player/ProvidesPrerequisite.cs +++ b/OpenRA.Mods.Common/Traits/Player/ProvidesPrerequisite.cs @@ -23,7 +23,7 @@ namespace OpenRA.Mods.Common.Traits public readonly string[] RequiresPrerequisites = { }; [Desc("Only grant this prerequisite for certain factions.")] - public readonly string[] Race = { }; + public readonly string[] Factions = { }; [Desc("Should it recheck everything when it is captured?")] public readonly bool ResetOnOwnerChange = false; @@ -45,9 +45,9 @@ namespace OpenRA.Mods.Common.Traits if (string.IsNullOrEmpty(prerequisite)) prerequisite = init.Self.Info.Name; - var race = init.Contains() ? init.Get() : init.Self.Owner.Faction.InternalName; + var faction = init.Contains() ? init.Get() : init.Self.Owner.Faction.InternalName; - Update(init.Self.Owner, race); + Update(init.Self.Owner, faction); } public IEnumerable ProvidesPrerequisites @@ -67,12 +67,12 @@ namespace OpenRA.Mods.Common.Traits Update(newOwner, newOwner.Faction.InternalName); } - void Update(Player owner, string race) + void Update(Player owner, string faction) { enabled = true; - if (info.Race.Any()) - enabled = info.Race.Contains(race); + if (info.Factions.Any()) + enabled = info.Factions.Contains(faction); if (info.RequiresPrerequisites.Any() && enabled) enabled = owner.PlayerActor.Trait().HasPrerequisites(info.RequiresPrerequisites); diff --git a/OpenRA.Mods.Common/Traits/Production.cs b/OpenRA.Mods.Common/Traits/Production.cs index 09920c678e..b359243b46 100644 --- a/OpenRA.Mods.Common/Traits/Production.cs +++ b/OpenRA.Mods.Common/Traits/Production.cs @@ -33,16 +33,16 @@ namespace OpenRA.Mods.Common.Traits readonly Lazy rp; public ProductionInfo Info; - public string Race { get; private set; } + public string Faction { get; private set; } public Production(ActorInitializer init, ProductionInfo info) { Info = info; rp = Exts.Lazy(() => init.Self.IsDead ? null : init.Self.TraitOrDefault()); - Race = init.Contains() ? init.Get() : init.Self.Owner.Faction.InternalName; + Faction = init.Contains() ? init.Get() : init.Self.Owner.Faction.InternalName; } - public void DoProduction(Actor self, ActorInfo producee, ExitInfo exitinfo, string raceVariant) + public void DoProduction(Actor self, ActorInfo producee, ExitInfo exitinfo, string factionVariant) { var exit = self.Location + exitinfo.ExitCell; var spawn = self.CenterPosition + exitinfo.SpawnOffset; @@ -55,8 +55,8 @@ namespace OpenRA.Mods.Common.Traits var target = Target.FromCell(self.World, exitLocation); var bi = producee.Traits.GetOrDefault(); - if (bi != null && bi.ForceRace != null) - raceVariant = bi.ForceRace; + if (bi != null && bi.ForceFaction != null) + factionVariant = bi.ForceFaction; self.World.AddFrameEndTask(w => { @@ -68,8 +68,8 @@ namespace OpenRA.Mods.Common.Traits new FacingInit(initialFacing) }; - if (raceVariant != null) - td.Add(new FactionInit(raceVariant)); + if (factionVariant != null) + td.Add(new FactionInit(factionVariant)); var newUnit = self.World.CreateActor(producee.Name, td); @@ -102,7 +102,7 @@ namespace OpenRA.Mods.Common.Traits }); } - public virtual bool Produce(Actor self, ActorInfo producee, string raceVariant) + public virtual bool Produce(Actor self, ActorInfo producee, string factionVariant) { if (Reservable.IsReserved(self)) return false; @@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Traits if (exit != null) { - DoProduction(self, producee, exit, raceVariant); + DoProduction(self, producee, exit, factionVariant); return true; } diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index 4aa6ab9782..c7cb371426 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -1663,6 +1663,23 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + if (engineVersion < 20150731) + { + if (node.Key.StartsWith("ProvidesPrerequisite")) + { + var raceNode = node.Value.Nodes.FirstOrDefault(x => x.Key == "Race"); + if (raceNode != null) + raceNode.Key = "Factions"; + } + + if (node.Key.StartsWith("Buildable")) + { + var raceNode = node.Value.Nodes.FirstOrDefault(x => x.Key == "ForceRace"); + if (raceNode != null) + raceNode.Key = "ForceFaction"; + } + } + UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); } } diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/ObserverShroudSelectorLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/ObserverShroudSelectorLogic.cs index 7e0ffe29ff..4bae0fcf9e 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/ObserverShroudSelectorLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/ObserverShroudSelectorLogic.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic public readonly Player Player; public readonly string Label; public readonly Color Color; - public readonly string Race; + public readonly string Faction; public readonly Func IsSelected; public readonly Action OnClick; @@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Player = p; Label = p.PlayerName; Color = p.Color.RGB; - Race = p.Faction.InternalName; + Faction = p.Faction.InternalName; IsSelected = () => p.World.RenderPlayer == p; OnClick = () => { p.World.RenderPlayer = p; logic.selected = this; p.World.Selection.Clear(); }; } @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Player = p; Label = label; Color = Color.White; - Race = null; + Faction = null; IsSelected = () => w.RenderPlayer == p; OnClick = () => { w.RenderPlayer = p; logic.selected = this; }; } @@ -85,7 +85,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Func setupItem = (option, template) => { var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick); - var showFlag = option.Race != null; + var showFlag = option.Faction != null; var label = item.Get("LABEL"); label.IsVisible = () => showFlag; @@ -95,7 +95,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic var flag = item.Get("FLAG"); flag.IsVisible = () => showFlag; flag.GetImageCollection = () => "flags"; - flag.GetImageName = () => option.Race; + flag.GetImageName = () => option.Faction; var labelAlt = item.Get("NOFLAG_LABEL"); labelAlt.IsVisible = () => !showFlag; @@ -109,17 +109,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic }; var shroudLabel = shroudSelector.Get("LABEL"); - shroudLabel.IsVisible = () => selected.Race != null; + shroudLabel.IsVisible = () => selected.Faction != null; shroudLabel.GetText = () => selected.Label; shroudLabel.GetColor = () => selected.Color; var shroudFlag = shroudSelector.Get("FLAG"); - shroudFlag.IsVisible = () => selected.Race != null; + shroudFlag.IsVisible = () => selected.Faction != null; shroudFlag.GetImageCollection = () => "flags"; - shroudFlag.GetImageName = () => selected.Race; + shroudFlag.GetImageName = () => selected.Faction; var shroudLabelAlt = shroudSelector.Get("NOFLAG_LABEL"); - shroudLabelAlt.IsVisible = () => selected.Race == null; + shroudLabelAlt.IsVisible = () => selected.Faction == null; shroudLabelAlt.GetText = () => selected.Label; shroudLabelAlt.GetColor = () => selected.Color; diff --git a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs index 01ef0161ed..6a4654a255 100644 --- a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs @@ -301,7 +301,7 @@ namespace OpenRA.Mods.Common.Widgets var ks = Game.Settings.Keys; var rb = RenderBounds; - var race = producer.Trait.Race; + var faction = producer.Trait.Faction; foreach (var item in AllBuildables.Skip(IconRowOffset * Columns).Take(MaxIconRowOffset * Columns)) { @@ -310,7 +310,7 @@ namespace OpenRA.Mods.Common.Widgets var rect = new Rectangle(rb.X + x * (IconSize.X + IconMargin.X), rb.Y + y * (IconSize.Y + IconMargin.Y), IconSize.X, IconSize.Y); var rsi = item.Traits.Get(); - var icon = new Animation(World, rsi.GetImage(item, World.Map.SequenceProvider, race)); + var icon = new Animation(World, rsi.GetImage(item, World.Map.SequenceProvider, faction)); icon.Play(item.Traits.Get().Icon); var bi = item.Traits.Get(); diff --git a/mods/cnc/rules/structures.yaml b/mods/cnc/rules/structures.yaml index 970cdbb171..44861f0a3b 100644 --- a/mods/cnc/rules/structures.yaml +++ b/mods/cnc/rules/structures.yaml @@ -78,7 +78,7 @@ FACT.GDI: Queue: Building.GDI, Building.Nod BuildPaletteOrder: 1000 Prerequisites: ~disabled - ForceRace: gdi + ForceFaction: gdi Tooltip: Name: Construction Yard (GDI) @@ -90,7 +90,7 @@ FACT.NOD: Queue: Building.GDI, Building.Nod BuildPaletteOrder: 1000 Prerequisites: ~disabled - ForceRace: nod + ForceFaction: nod Tooltip: Name: Construction Yard (Nod) diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index f0be15a0e5..91270d1dd4 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -149,16 +149,16 @@ barracks: ProductionBar: ProvidesPrerequisite@atreides: Prerequisite: barracks.atreides - Race: atreides + Factions: atreides ProvidesPrerequisite@ordos: Prerequisite: barracks.ordos - Race: ordos + Factions: ordos ProvidesPrerequisite@harkonnen: Prerequisite: barracks.harkonnen - Race: harkonnen + Factions: harkonnen ProvidesPrerequisite@medics: Prerequisite: barracks.medics - Race: atreides, ordos + Factions: atreides, ordos Power: Amount: -20 RenderBuilding: @@ -297,16 +297,16 @@ light: ProductionBar: ProvidesPrerequisite@atreides: Prerequisite: light.atreides - Race: atreides + Factions: atreides ProvidesPrerequisite@ordos: Prerequisite: light.ordos - Race: ordos + Factions: ordos ProvidesPrerequisite@harkonnen: Prerequisite: light.harkonnen - Race: harkonnen + Factions: harkonnen ProvidesPrerequisite@trikes: Prerequisite: light.regulartrikes - Race: atreides, harkonnen + Factions: atreides, harkonnen ProvidesPrerequisite@buildingname: WithProductionOverlay@WELDING: Sequence: production-welding @@ -349,16 +349,16 @@ heavy: ProductionBar: ProvidesPrerequisite@atreides: Prerequisite: heavy.atreides - Race: atreides + Factions: atreides ProvidesPrerequisite@ordos: Prerequisite: heavy.ordos - Race: ordos + Factions: ordos ProvidesPrerequisite@harkonnen: Prerequisite: heavy.harkonnen - Race: harkonnen + Factions: harkonnen ProvidesPrerequisite@missiletank: Prerequisite: heavy.missiletank - Race: atreides, harkonnen + Factions: atreides, harkonnen RenderBuilding: Image: heavy.harkonnen RaceImages: @@ -465,13 +465,13 @@ starport: DisabledOverlay: ProvidesPrerequisite@atreides: Prerequisite: starport.atreides - Race: atreides + Factions: atreides ProvidesPrerequisite@ordos: Prerequisite: starport.ordos - Race: ordos + Factions: ordos ProvidesPrerequisite@harkonnen: Prerequisite: starport.harkonnen - Race: harkonnen + Factions: harkonnen Power: Amount: -40 ProvidesPrerequisite@buildingname: @@ -712,7 +712,7 @@ hightech: ordos: hightech.ordos ProvidesPrerequisite@upgrade: Prerequisite: hightech.atreides - Race: atreides + Factions: atreides ProvidesPrerequisite@buildingname: AirstrikePower: Icon: ornistrike @@ -816,7 +816,7 @@ palace: Amount: -50 ProvidesPrerequisite@nuke: Prerequisite: palace.nuke - Race: harkonnen + Factions: harkonnen NukePower: Cursor: nuke Icon: deathhand @@ -846,7 +846,7 @@ conyard.atreides: Queue: Building BuildPaletteOrder: 1000 Prerequisites: ~disabled - ForceRace: atreides + ForceFaction: atreides RenderBuilding: Image: conyard.atreides -RaceImages: @@ -857,7 +857,7 @@ conyard.harkonnen: Queue: Building BuildPaletteOrder: 1000 Prerequisites: ~disabled - ForceRace: harkonnen + ForceFaction: harkonnen RenderBuilding: Image: conyard.harkonnen -RaceImages: @@ -868,7 +868,7 @@ conyard.ordos: Queue: Building BuildPaletteOrder: 1000 Prerequisites: ~disabled - ForceRace: ordos + ForceFaction: ordos RenderBuilding: Image: conyard.ordos -RaceImages: diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 1f350cde88..8bfd5f2124 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -141,16 +141,16 @@ SPEN: Power: Amount: -30 ProvidesPrerequisite@soviet: - Race: soviet, russia, ukraine + Factions: soviet, russia, ukraine Prerequisite: ships.soviet ProvidesPrerequisite@sovietvanilla: - Race: soviet + Factions: soviet Prerequisite: ships.sovietvanilla ProvidesPrerequisite@russia: - Race: russia + Factions: russia Prerequisite: ships.russia ProvidesPrerequisite@ukraine: - Race: ukraine + Factions: ukraine Prerequisite: ships.ukraine ProvidesPrerequisite@sovietstructure: RequiresPrerequisites: structures.soviet @@ -222,19 +222,19 @@ SYRD: Power: Amount: -30 ProvidesPrerequisite@allies: - Race: allies, england, france, germany + Factions: allies, england, france, germany Prerequisite: ships.allies ProvidesPrerequisite@alliesvanilla: - Race: allies + Factions: allies Prerequisite: ships.alliesvanilla ProvidesPrerequisite@england: - Race: england + Factions: england Prerequisite: ships.england ProvidesPrerequisite@france: - Race: france + Factions: france Prerequisite: ships.france ProvidesPrerequisite@germany: - Race: germany + Factions: germany Prerequisite: ships.germany ProvidesPrerequisite@alliedstructure: RequiresPrerequisites: structures.allies @@ -330,7 +330,7 @@ PDOX: Bib: HasMinibib: Yes ProvidesPrerequisite@germany: - Race: germany + Factions: germany Prerequisite: pdox.germany ProvidesPrerequisite@germanstructure: RequiresPrerequisites: structures.germany @@ -797,31 +797,31 @@ WEAP: Production: Produces: Vehicle ProvidesPrerequisite@allies: - Race: allies, england, france, germany + Factions: allies, england, france, germany Prerequisite: vehicles.allies ProvidesPrerequisite@alliesvanilla: - Race: allies + Factions: allies Prerequisite: vehicles.alliesvanilla ProvidesPrerequisite@england: - Race: england + Factions: england Prerequisite: vehicles.england ProvidesPrerequisite@france: - Race: france + Factions: france Prerequisite: vehicles.france ProvidesPrerequisite@germany: - Race: germany + Factions: germany Prerequisite: vehicles.germany ProvidesPrerequisite@soviet: - Race: soviet, russia, ukraine + Factions: soviet, russia, ukraine Prerequisite: vehicles.soviet ProvidesPrerequisite@sovietvanilla: - Race: soviet + Factions: soviet Prerequisite: vehicles.sovietvanilla ProvidesPrerequisite@russia: - Race: russia + Factions: russia Prerequisite: vehicles.russia ProvidesPrerequisite@ukraine: - Race: ukraine + Factions: ukraine Prerequisite: vehicles.ukraine ProvidesPrerequisite@alliedstructure: RequiresPrerequisites: structures.allies @@ -870,31 +870,31 @@ FACT: BuildPaletteOrder: 1000 Prerequisites: ~disabled ProvidesPrerequisite@allies: - Race: allies, england, france, germany + Factions: allies, england, france, germany Prerequisite: structures.allies ProvidesPrerequisite@alliesvanilla: - Race: allies + Factions: allies Prerequisite: structures.alliesvanilla ProvidesPrerequisite@england: - Race: england + Factions: england Prerequisite: structures.england ProvidesPrerequisite@france: - Race: france + Factions: france Prerequisite: structures.france ProvidesPrerequisite@germany: - Race: germany + Factions: germany Prerequisite: structures.germany ProvidesPrerequisite@soviet: - Race: soviet, russia, ukraine + Factions: soviet, russia, ukraine Prerequisite: structures.soviet ProvidesPrerequisite@sovietvanilla: - Race: soviet + Factions: soviet Prerequisite: structures.sovietvanilla ProvidesPrerequisite@russia: - Race: russia + Factions: russia Prerequisite: structures.russia ProvidesPrerequisite@ukraine: - Race: ukraine + Factions: ukraine Prerequisite: structures.ukraine Health: HP: 1500 @@ -1053,19 +1053,19 @@ HPAD: Power: Amount: -10 ProvidesPrerequisite@allies: - Race: allies, england, france, germany + Factions: allies, england, france, germany Prerequisite: aircraft.allies ProvidesPrerequisite@alliesvanilla: - Race: allies + Factions: allies Prerequisite: aircraft.alliesvanilla ProvidesPrerequisite@england: - Race: england + Factions: england Prerequisite: aircraft.england ProvidesPrerequisite@france: - Race: france + Factions: france Prerequisite: aircraft.france ProvidesPrerequisite@germany: - Race: germany + Factions: germany Prerequisite: aircraft.germany ProvidesPrerequisite@alliedstructure: RequiresPrerequisites: structures.allies @@ -1118,16 +1118,16 @@ AFLD: Produces: Aircraft, Plane Reservable: ProvidesPrerequisite@soviet: - Race: soviet, russia, ukraine + Factions: soviet, russia, ukraine Prerequisite: aircraft.soviet ProvidesPrerequisite@sovietvanilla: - Race: soviet + Factions: soviet Prerequisite: aircraft.sovietvanilla ProvidesPrerequisite@russia: - Race: russia + Factions: russia Prerequisite: aircraft.russia ProvidesPrerequisite@ukraine: - Race: ukraine + Factions: ukraine Prerequisite: aircraft.ukraine ProvidesPrerequisite@sovietstructure: RequiresPrerequisites: structures.soviet @@ -1337,16 +1337,16 @@ BARR: ProvidesPrerequisite: Prerequisite: barracks ProvidesPrerequisite@soviet: - Race: soviet, russia, ukraine + Factions: soviet, russia, ukraine Prerequisite: infantry.soviet ProvidesPrerequisite@sovietvanilla: - Race: soviet + Factions: soviet Prerequisite: infantry.sovietvanilla ProvidesPrerequisite@russia: - Race: russia + Factions: russia Prerequisite: infantry.russia ProvidesPrerequisite@ukraine: - Race: ukraine + Factions: ukraine Prerequisite: infantry.ukraine ProvidesPrerequisite@sovietstructure: RequiresPrerequisites: structures.soviet @@ -1438,19 +1438,19 @@ TENT: ProvidesPrerequisite@barracks: Prerequisite: barracks ProvidesPrerequisite@allies: - Race: allies, england, france, germany + Factions: allies, england, france, germany Prerequisite: infantry.allies ProvidesPrerequisite@alliesvanilla: - Race: allies + Factions: allies Prerequisite: infantry.alliesvanilla ProvidesPrerequisite@england: - Race: england + Factions: england Prerequisite: infantry.england ProvidesPrerequisite@france: - Race: france + Factions: france Prerequisite: infantry.france ProvidesPrerequisite@germany: - Race: germany + Factions: germany Prerequisite: infantry.germany ProvidesPrerequisite@alliedstructure: RequiresPrerequisites: structures.allies diff --git a/mods/ts/rules/shared-structures.yaml b/mods/ts/rules/shared-structures.yaml index 0b5b0f0401..75a54d8b45 100644 --- a/mods/ts/rules/shared-structures.yaml +++ b/mods/ts/rules/shared-structures.yaml @@ -44,10 +44,10 @@ GACNST: Selectable: Bounds: 144, 60, 0, -6 ProvidesPrerequisite@gdi: - Race: gdi + Factions: gdi Prerequisite: structures.gdi ProvidesPrerequisite@nod: - Race: nod + Factions: nod Prerequisite: structures.nod SelectionDecorations: VisualBounds: 144, 80, 0, -12