diff --git a/OpenRA.Mods.Common/Activities/RepairBridge.cs b/OpenRA.Mods.Common/Activities/RepairBridge.cs index 58e18e4197..561467b522 100644 --- a/OpenRA.Mods.Common/Activities/RepairBridge.cs +++ b/OpenRA.Mods.Common/Activities/RepairBridge.cs @@ -16,27 +16,27 @@ namespace OpenRA.Mods.Common.Activities { class RepairBridge : Enter { - readonly BridgeHut hut; + readonly LegacyBridgeHut legacyHut; readonly string notification; public RepairBridge(Actor self, Actor target, EnterBehaviour enterBehaviour, string notification) : base(self, target, enterBehaviour) { - hut = target.Trait(); + legacyHut = target.Trait(); this.notification = notification; } protected override bool CanReserve(Actor self) { - return hut.BridgeDamageState != DamageState.Undamaged && !hut.Repairing && hut.Bridge.GetHut(0) != null && hut.Bridge.GetHut(1) != null; + return legacyHut.BridgeDamageState != DamageState.Undamaged && !legacyHut.Repairing && legacyHut.Bridge.GetHut(0) != null && legacyHut.Bridge.GetHut(1) != null; } protected override void OnInside(Actor self) { - if (hut.BridgeDamageState == DamageState.Undamaged || hut.Repairing || hut.Bridge.GetHut(0) == null || hut.Bridge.GetHut(1) == null) + if (legacyHut.BridgeDamageState == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.GetHut(0) == null || legacyHut.Bridge.GetHut(1) == null) return; - hut.Repair(self); + legacyHut.Repair(self); Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", notification, self.Owner.Faction.InternalName); } diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index 12f913b9e7..6b2b65d5be 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -274,7 +274,7 @@ - + diff --git a/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs b/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs index 979ecdf9c1..fcde0b6f0b 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs @@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.Traits { readonly BuildingInfo building; readonly Bridge[] neighbours = new Bridge[2]; - readonly BridgeHut[] huts = new BridgeHut[2]; // Huts before this / first & after this / last + readonly LegacyBridgeHut[] huts = new LegacyBridgeHut[2]; // Huts before this / first & after this / last readonly Health health; readonly Actor self; readonly BridgeInfo info; @@ -88,7 +88,7 @@ namespace OpenRA.Mods.Common.Traits ushort template; Dictionary footprint; - public BridgeHut Hut { get; private set; } + public LegacyBridgeHut Hut { get; private set; } public bool IsDangling { get { return isDangling.Value; } } public Bridge(Actor self, BridgeInfo info) @@ -152,7 +152,7 @@ namespace OpenRA.Mods.Common.Traits } } - internal void AddHut(BridgeHut hut) + internal void AddHut(LegacyBridgeHut hut) { // TODO: This method is incomprehensible and fragile, and should be rewritten. if (huts[0] == huts[1]) @@ -170,7 +170,7 @@ namespace OpenRA.Mods.Common.Traits Hut = null; } - public BridgeHut GetHut(int index) { return huts[index]; } + public LegacyBridgeHut GetHut(int index) { return huts[index]; } public Bridge GetNeighbor(int[] offset, BridgeLayer bridges) { if (offset == null) diff --git a/OpenRA.Mods.Common/Traits/Buildings/BridgeHut.cs b/OpenRA.Mods.Common/Traits/Buildings/LegacyBridgeHut.cs similarity index 87% rename from OpenRA.Mods.Common/Traits/Buildings/BridgeHut.cs rename to OpenRA.Mods.Common/Traits/Buildings/LegacyBridgeHut.cs index f0f5449750..6b18a5b73a 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/BridgeHut.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/LegacyBridgeHut.cs @@ -15,14 +15,14 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("Allows bridges to be targeted for demolition and repair.")] - class BridgeHutInfo : IDemolishableInfo, ITraitInfo + class LegacyBridgeHutInfo : IDemolishableInfo, ITraitInfo { public bool IsValidTarget(ActorInfo actorInfo, Actor saboteur) { return false; } // TODO: bridges don't support frozen under fog - public object Create(ActorInitializer init) { return new BridgeHut(init); } + public object Create(ActorInitializer init) { return new LegacyBridgeHut(init); } } - class BridgeHut : IDemolishable + class LegacyBridgeHut : IDemolishable { public readonly Bridge FirstBridge; public readonly Bridge Bridge; @@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Traits public bool Repairing { get { return repairDirections > 0; } } int repairDirections = 0; - public BridgeHut(ActorInitializer init) + public LegacyBridgeHut(ActorInitializer init) { Bridge = init.Get().ActorValue.Trait(); Bridge.AddHut(this); diff --git a/OpenRA.Mods.Common/Traits/RepairsBridges.cs b/OpenRA.Mods.Common/Traits/RepairsBridges.cs index d7c730e288..dc61231a35 100644 --- a/OpenRA.Mods.Common/Traits/RepairsBridges.cs +++ b/OpenRA.Mods.Common/Traits/RepairsBridges.cs @@ -17,7 +17,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - [Desc("Can enter a BridgeHut to trigger a repair.")] + [Desc("Can enter a LegacyBridgeHut to trigger a repair.")] class RepairsBridgesInfo : ITraitInfo { [VoiceReference] public readonly string Voice = "Action"; @@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits "Possible values are Exit, Suicide, Dispose.")] public readonly EnterBehaviour EnterBehaviour = EnterBehaviour.Dispose; - [Desc("Cursor to use when targeting a BridgeHut of an unrepaired bridge.")] + [Desc("Cursor to use when targeting a LegacyBridgeHut of an unrepaired bridge.")] public readonly string TargetCursor = "goldwrench"; [Desc("Cursor to use when repairing is denied.")] @@ -65,22 +65,22 @@ namespace OpenRA.Mods.Common.Traits if (order.OrderString != "RepairBridge") return null; - var hut = order.TargetActor.TraitOrDefault(); - if (hut == null) + var legacyHut = order.TargetActor.TraitOrDefault(); + if (legacyHut == null) return null; - return hut.BridgeDamageState == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling ? null : info.Voice; + return legacyHut.BridgeDamageState == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.IsDangling ? null : info.Voice; } public void ResolveOrder(Actor self, Order order) { if (order.OrderString == "RepairBridge") { - var hut = order.TargetActor.TraitOrDefault(); - if (hut == null) + var legacyHut = order.TargetActor.TraitOrDefault(); + if (legacyHut == null) return; - if (hut.BridgeDamageState == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling) + if (legacyHut.BridgeDamageState == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.IsDangling) return; self.SetTargetLine(Target.FromOrder(self.World, order), Color.Yellow); @@ -102,12 +102,12 @@ namespace OpenRA.Mods.Common.Traits public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor) { - var hut = target.TraitOrDefault(); - if (hut == null) + var legacyHut = target.TraitOrDefault(); + if (legacyHut == null) return false; // Require force attack to heal partially damaged bridges to avoid unnecessary cursor noise - var damage = hut.BridgeDamageState; + var damage = legacyHut.BridgeDamageState; if (!modifiers.HasModifier(TargetModifiers.ForceAttack) && damage != DamageState.Dead) return false; @@ -116,7 +116,7 @@ namespace OpenRA.Mods.Common.Traits return false; // Can't repair a bridge that is undamaged, already under repair, or dangling - if (damage == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling) + if (damage == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.IsDangling) cursor = info.TargetBlockedCursor; return true; diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index d0bac4db7c..ed928992d7 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -532,6 +532,12 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + if (engineVersion < 20161210) + { + if (node.Key == "BridgeHut") + RenameNodeKey(node, "LegacyBridgeHut"); + } + UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1); } diff --git a/mods/cnc/rules/civilian.yaml b/mods/cnc/rules/civilian.yaml index 7dd62fbb2f..4c8e909a46 100644 --- a/mods/cnc/rules/civilian.yaml +++ b/mods/cnc/rules/civilian.yaml @@ -448,7 +448,7 @@ BRIDGEHUT: Dimensions: 2,2 CustomSelectionSize: CustomBounds: 48,48 - BridgeHut: + LegacyBridgeHut: Targetable: TargetTypes: BridgeHut, C4 diff --git a/mods/ra/rules/civilian.yaml b/mods/ra/rules/civilian.yaml index a9152de423..cb8f2da866 100644 --- a/mods/ra/rules/civilian.yaml +++ b/mods/ra/rules/civilian.yaml @@ -522,7 +522,7 @@ BRIDGEHUT: Selectable: Bounds: 48,48 Priority: 2 - BridgeHut: + LegacyBridgeHut: Targetable: TargetTypes: BridgeHut, C4 @@ -534,7 +534,7 @@ BRIDGEHUT.small: Selectable: Bounds: 24,24 Priority: 2 - BridgeHut: + LegacyBridgeHut: Targetable: TargetTypes: BridgeHut, C4