From 9a1ba31753c181107dc73e203f1876d32aac6210 Mon Sep 17 00:00:00 2001 From: atlimit8 Date: Thu, 16 Mar 2017 18:13:03 -0500 Subject: [PATCH] Added upgrade rule for PauseOnLowPower removal & AffectedByPowerOutage condition granting. --- .../UtilityCommands/UpgradeRules.cs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index e350aabe96..8c9fba8305 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -601,6 +601,34 @@ namespace OpenRA.Mods.Common.UtilityCommands if (node.Key == "SoundFile" && parent.Key.StartsWith("AmbientSound", StringComparison.Ordinal)) RenameNodeKey(node, "SoundFiles"); + // PauseOnLowPower property has been replaced with PauseOnCondition/RequiresCondition + if (engineVersion < 20170501) + { + if (node.Key.StartsWith("WithRearmAnimation", StringComparison.Ordinal) || node.Key.StartsWith("WithRepairAnimation", StringComparison.Ordinal) + || node.Key.StartsWith("WithIdleAnimation", StringComparison.Ordinal)) + { + var pauseOnLowPowerNode = node.Value.Nodes.FirstOrDefault(n => n.Key == "PauseOnLowPower"); + if (pauseOnLowPowerNode != null) + { + node.Value.Nodes.Remove(pauseOnLowPowerNode); + Console.WriteLine("PauseOnLowPower has been removed from {0}; use RequiresCondition instead.".F(node.Key)); + } + } + else if (node.Key.StartsWith("WithIdleOverlay", StringComparison.Ordinal) || node.Key.StartsWith("WithRepairOverlay", StringComparison.Ordinal)) + { + var pauseOnLowPowerNode = node.Value.Nodes.FirstOrDefault(n => n.Key == "PauseOnLowPower"); + if (pauseOnLowPowerNode != null) + { + node.Value.Nodes.Remove(pauseOnLowPowerNode); + Console.WriteLine("PauseOnLowPower has been removed from {0}; use PauseOnCondition or RequiresCondition instead.".F(node.Key)); + } + } + else if (node.Key.StartsWith("AffectedByPowerOutage", StringComparison.Ordinal)) + { + Console.WriteLine("Actor {0} has AffectedByPowerOutage; use the Condition property to apply its effects.".F(node.Key)); + } + } + UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1); }