diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index 688b0680f2..6db88ddb75 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -2253,6 +2253,19 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + // ChargeTime is now replaced by ChargeDelay. + // ChargeDelay uses 500 as a default now. + if (engineVersion < 20151022) + { + if (depth == 2 && parentKey == "PortableChrono" && node.Key == "ChargeTime") + { + node.Key = "ChargeDelay"; + + if (node.Value.Value != null) + node.Value.Value = (Exts.ParseIntegerInvariant(node.Value.Value) * 25).ToString(); + } + } + UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); } } diff --git a/OpenRA.Mods.RA/Traits/PortableChrono.cs b/OpenRA.Mods.RA/Traits/PortableChrono.cs index d25c5a1e13..e6babe13db 100644 --- a/OpenRA.Mods.RA/Traits/PortableChrono.cs +++ b/OpenRA.Mods.RA/Traits/PortableChrono.cs @@ -20,8 +20,8 @@ namespace OpenRA.Mods.RA.Traits { class PortableChronoInfo : ITraitInfo { - [Desc("Cooldown in seconds until the unit can teleport.")] - public readonly int ChargeTime = 20; + [Desc("Cooldown in ticks until the unit can teleport.")] + public readonly int ChargeDelay = 500; [Desc("Can the unit teleport only a certain distance?")] public readonly bool HasDistanceLimit = true; @@ -97,7 +97,7 @@ namespace OpenRA.Mods.RA.Traits public void ResetChargeTime() { - chargeTick = 25 * Info.ChargeTime; + chargeTick = Info.ChargeDelay; } public bool CanTeleport @@ -107,7 +107,7 @@ namespace OpenRA.Mods.RA.Traits public float GetValue() { - return (float)((chargeTick - (25 * Info.ChargeTime)) * (Info.ChargeTime * -0.0001)); + return (float)(Info.ChargeDelay - chargeTick) / Info.ChargeDelay; } public Color GetColor() { return Color.Magenta; }