Refactor support powers to use ticks instead of seconds for all delays - code changes
Also renamed ChargeTime to ChargeInterval.
This commit is contained in:
@@ -15,8 +15,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
public abstract class SupportPowerInfo : PausableConditionalTraitInfo
|
||||
{
|
||||
[Desc("Measured in seconds.")]
|
||||
public readonly int ChargeTime = 0;
|
||||
[Desc("Measured in ticks.")]
|
||||
public readonly int ChargeInterval = 0;
|
||||
public readonly string Icon = null;
|
||||
public readonly string Description = "";
|
||||
public readonly string LongDesc = "";
|
||||
|
||||
@@ -62,8 +62,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
Powers.Add(key, new SupportPowerInstance(key, this)
|
||||
{
|
||||
Instances = new List<SupportPower>(),
|
||||
RemainingTime = t.Info.StartFullyCharged ? 0 : t.Info.ChargeTime * 25,
|
||||
TotalTime = t.Info.ChargeTime * 25,
|
||||
RemainingTime = t.Info.StartFullyCharged ? 0 : t.Info.ChargeInterval,
|
||||
TotalTime = t.Info.ChargeInterval,
|
||||
});
|
||||
|
||||
if (t.Info.Prerequisites.Any())
|
||||
|
||||
@@ -1606,6 +1606,35 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
}
|
||||
|
||||
if (engineVersion < 20171228)
|
||||
{
|
||||
var chargeTime = node.Value.Nodes.FirstOrDefault(n => n.Key == "ChargeTime");
|
||||
if (chargeTime != null)
|
||||
{
|
||||
var chargeTimeValue = FieldLoader.GetValue<int>("ChargeTime", chargeTime.Value.Value);
|
||||
if (chargeTimeValue > 0)
|
||||
chargeTime.Value.Value = (chargeTimeValue * 25).ToString();
|
||||
|
||||
RenameNodeKey(chargeTime, "ChargeInterval");
|
||||
}
|
||||
|
||||
if (node.Key.StartsWith("GpsPower", StringComparison.Ordinal))
|
||||
{
|
||||
var revealDelay = node.Value.Nodes.FirstOrDefault(n => n.Key == "RevealDelay");
|
||||
var revealDelayValue = revealDelay != null ? FieldLoader.GetValue<int>("RevealDelay", revealDelay.Value.Value) : 0;
|
||||
if (revealDelay != null && revealDelayValue > 0)
|
||||
revealDelay.Value.Value = (revealDelayValue * 25).ToString();
|
||||
}
|
||||
|
||||
if (node.Key.StartsWith("ChronoshiftPower", StringComparison.Ordinal))
|
||||
{
|
||||
var duration = node.Value.Nodes.FirstOrDefault(n => n.Key == "Duration");
|
||||
var durationValue = duration != null ? FieldLoader.GetValue<int>("Duration", duration.Value.Value) : 0;
|
||||
if (duration != null && durationValue > 0)
|
||||
duration.Value.Value = (durationValue * 25).ToString();
|
||||
}
|
||||
}
|
||||
|
||||
UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
var descSize = descFont.Measure(descLabel.Text);
|
||||
|
||||
var remaining = WidgetUtils.FormatTime(sp.RemainingTime, world.Timestep);
|
||||
var total = WidgetUtils.FormatTime(sp.Info.ChargeTime * 25, world.Timestep);
|
||||
var total = WidgetUtils.FormatTime(sp.Info.ChargeInterval, world.Timestep);
|
||||
timeLabel.Text = "{0} / {1}".F(remaining, total);
|
||||
var timeSize = timeFont.Measure(timeLabel.Text);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user