Migrate StrategicVictoryConditions.RatioRequired to int percentage

Remove bogus CriticalRatioRequired from RA Hopes Anchor.
This commit is contained in:
reaperrr
2016-03-24 18:20:32 +01:00
parent 01f15d7917
commit 251b1b44d4
3 changed files with 19 additions and 4 deletions

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits
public readonly bool ResetOnHoldLost = true; public readonly bool ResetOnHoldLost = true;
[Desc("Percentage of all strategic points the player has to hold to win.")] [Desc("Percentage of all strategic points the player has to hold to win.")]
public readonly float RatioRequired = 0.5f; public readonly int RatioRequired = 50;
[Desc("Delay for the end game notification in milliseconds.")] [Desc("Delay for the end game notification in milliseconds.")]
public readonly int NotificationDelay = 1500; public readonly int NotificationDelay = 1500;
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.Common.Traits
public int Total { get { return AllPoints.Count(); } } public int Total { get { return AllPoints.Count(); } }
int Owned { get { return AllPoints.Count(a => WorldUtils.AreMutualAllies(player, a.Owner)); } } int Owned { get { return AllPoints.Count(a => WorldUtils.AreMutualAllies(player, a.Owner)); } }
public bool Holding { get { return Owned >= info.RatioRequired * Total; } } public bool Holding { get { return Owned >= info.RatioRequired * Total / 100; } }
public void Tick(Actor self) public void Tick(Actor self)
{ {

View File

@@ -660,6 +660,22 @@ namespace OpenRA.Mods.Common.UtilityCommands
} }
} }
// Migrated StrategicVictoryConditions RatioRequired to use int percentage instead of float
if (engineVersion < 20160325)
{
if (node.Key.StartsWith("StrategicVictoryConditions"))
{
var ratioNode = node.Value.Nodes.FirstOrDefault(x => x.Key == "RatioRequired");
if (ratioNode != null)
{
// The RatioRequired value is now an int percentage, so multiply the float with 100.
var oldValue = FieldLoader.GetValue<float>("RatioRequired", ratioNode.Value.Value);
var newValue = (int)(oldValue * 100);
ratioNode.Value.Value = newValue.ToString();
}
}
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
} }
} }

View File

@@ -18,6 +18,5 @@ Player:
StrategicVictoryConditions: StrategicVictoryConditions:
HoldDuration: 3000 HoldDuration: 3000
ResetOnHoldLost: true ResetOnHoldLost: true
RatioRequired: 0.65 RatioRequired: 65
CriticalRatioRequired: 0.65
-ConquestVictoryConditions: -ConquestVictoryConditions: