diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index db845b31c3..69a6b4cc3f 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -627,6 +627,22 @@ namespace OpenRA.Mods.Common.UtilityCommands node.Key = "KillsSelf"; node.Value.Nodes.Add(new MiniYamlNode("RemoveInstead", new MiniYaml("true"))); } + + if (depth == 1 && node.Key.StartsWith("UnitUpgradeCrateAction")) + { + var parts = node.Key.Split('@'); + node.Key = "GrantUpgradeCrateAction"; + if (parts.Length > 1) + node.Key += "@" + parts[1]; + } + + if (depth == 1 && node.Key.StartsWith("-UnitUpgradeCrateAction")) + { + var parts = node.Key.Split('@'); + node.Key = "-GrantUpgradeCrateAction"; + if (parts.Length > 1) + node.Key += "@" + parts[1]; + } } UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); diff --git a/OpenRA.Mods.RA/Crates/UnitUpgradeCrateAction.cs b/OpenRA.Mods.RA/Crates/GrantUpgradeCrateAction.cs similarity index 88% rename from OpenRA.Mods.RA/Crates/UnitUpgradeCrateAction.cs rename to OpenRA.Mods.RA/Crates/GrantUpgradeCrateAction.cs index 47228af0ea..6a9e7be7dc 100644 --- a/OpenRA.Mods.RA/Crates/UnitUpgradeCrateAction.cs +++ b/OpenRA.Mods.RA/Crates/GrantUpgradeCrateAction.cs @@ -14,7 +14,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA.Crates { [Desc("Grants an upgrade to the collector.")] - public class UnitUpgradeCrateActionInfo : CrateActionInfo + public class GrantUpgradeCrateActionInfo : CrateActionInfo { [Desc("The upgrades to apply.")] public readonly string[] Upgrades = { }; @@ -28,15 +28,15 @@ namespace OpenRA.Mods.RA.Crates [Desc("The maximum number of extra collectors to grant the crate action to.", "-1 = no limit")] public readonly int MaxExtraCollectors = 4; - public override object Create(ActorInitializer init) { return new UnitUpgradeCrateAction(init.self, this); } + public override object Create(ActorInitializer init) { return new GrantUpgradeCrateAction(init.self, this); } } - public class UnitUpgradeCrateAction : CrateAction + public class GrantUpgradeCrateAction : CrateAction { readonly Actor self; - readonly UnitUpgradeCrateActionInfo info; + readonly GrantUpgradeCrateActionInfo info; - public UnitUpgradeCrateAction(Actor self, UnitUpgradeCrateActionInfo info) + public GrantUpgradeCrateAction(Actor self, GrantUpgradeCrateActionInfo info) : base(self, info) { this.self = self; diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index cf8c78884a..6161f5ef86 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -127,7 +127,6 @@ - @@ -568,6 +567,7 @@ + diff --git a/mods/cnc/maps/gdi04a/map.yaml b/mods/cnc/maps/gdi04a/map.yaml index 29f30066c1..78413c9b44 100644 --- a/mods/cnc/maps/gdi04a/map.yaml +++ b/mods/cnc/maps/gdi04a/map.yaml @@ -568,7 +568,7 @@ Rules: -GiveMcvCrateAction: -GiveCashCrateAction: -ExplodeCrateAction@fire: - -UnitUpgradeCrateAction@cloak: + -GrantUpgradeCrateAction@cloak: ScriptTriggers: Sequences: diff --git a/mods/cnc/maps/gdi04b/map.yaml b/mods/cnc/maps/gdi04b/map.yaml index 89b76c6ea6..1221868408 100644 --- a/mods/cnc/maps/gdi04b/map.yaml +++ b/mods/cnc/maps/gdi04b/map.yaml @@ -650,7 +650,7 @@ Rules: -GiveMcvCrateAction: -GiveCashCrateAction: -ExplodeCrateAction@fire: - -UnitUpgradeCrateAction@cloak: + -GrantUpgradeCrateAction@cloak: Sequences: diff --git a/mods/cnc/maps/the-hot-box/map.yaml b/mods/cnc/maps/the-hot-box/map.yaml index dc896e5f10..0953efc9e6 100644 --- a/mods/cnc/maps/the-hot-box/map.yaml +++ b/mods/cnc/maps/the-hot-box/map.yaml @@ -211,7 +211,7 @@ Rules: -GiveMcvCrateAction: -RevealMapCrateAction: -HideMapCrateAction: - -UnitUpgradeCrateAction@cloak: + -GrantUpgradeCrateAction@cloak: -ExplodeCrateAction@nuke: -ExplodeCrateAction@boom: -ExplodeCrateAction@fire: diff --git a/mods/cnc/rules/misc.yaml b/mods/cnc/rules/misc.yaml index f432decebe..decde903ac 100644 --- a/mods/cnc/rules/misc.yaml +++ b/mods/cnc/rules/misc.yaml @@ -14,7 +14,7 @@ CRATE: ExplodeCrateAction@fire: Weapon: Napalm.Crate SelectionShares: 5 - UnitUpgradeCrateAction@cloak: + GrantUpgradeCrateAction@cloak: SelectionShares: 5 Effect: cloak Upgrades: cloak diff --git a/mods/ra/rules/misc.yaml b/mods/ra/rules/misc.yaml index 2dd34bf0fe..08bbc5973b 100644 --- a/mods/ra/rules/misc.yaml +++ b/mods/ra/rules/misc.yaml @@ -147,7 +147,7 @@ CRATE: Units: e1,e1,e4,e4,e3,e3,e3 ValidRaces: soviet TimeDelay: 4500 - UnitUpgradeCrateAction@invuln: + GrantUpgradeCrateAction@invuln: SelectionShares: 5 Effect: invuln Notification: ironcur9.aud