Migrate StrategicVictoryConditions.RatioRequired to int percentage
Remove bogus CriticalRatioRequired from RA Hopes Anchor.
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user