Make GainsExperience upgrades explicit.
This commit is contained in:
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
public class GainsExperienceInfo : ITraitInfo, Requires<ValuedInfo>, Requires<UpgradeManagerInfo>
|
||||
{
|
||||
[FieldLoader.LoadUsing("LoadUpgrades")]
|
||||
[Desc("Upgrades to grant at each level",
|
||||
[Desc("Upgrades to grant at each level. (Required property)",
|
||||
"Key is the XP requirements for each level as a percentage of our own value.",
|
||||
"Value is a list of the upgrade types to grant")]
|
||||
public readonly Dictionary<int, string[]> Upgrades = null;
|
||||
@@ -39,15 +39,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
MiniYaml upgrades;
|
||||
|
||||
if (!y.ToDictionary().TryGetValue("Upgrades", out upgrades))
|
||||
{
|
||||
return new Dictionary<int, string[]>()
|
||||
{
|
||||
{ 200, new[] { "firepower", "damage", "speed", "reload", "inaccuracy", "rank" } },
|
||||
{ 400, new[] { "firepower", "damage", "speed", "reload", "inaccuracy", "rank" } },
|
||||
{ 800, new[] { "firepower", "damage", "speed", "reload", "inaccuracy", "rank" } },
|
||||
{ 1600, new[] { "firepower", "damage", "speed", "reload", "inaccuracy", "rank", "eliteweapon", "selfheal" } }
|
||||
};
|
||||
}
|
||||
throw new YamlException("GainsExperience is missing Upgrades.");
|
||||
|
||||
return upgrades.Nodes.ToDictionary(
|
||||
kv => FieldLoader.GetValue<int>("(key)", kv.Key),
|
||||
|
||||
@@ -1367,6 +1367,19 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
node.Value.Nodes.RemoveAll(n => n.Key == "InitialActivity");
|
||||
}
|
||||
|
||||
// Make default upgrades explicit for GainsExperience
|
||||
if (engineVersion < 20150709)
|
||||
{
|
||||
if (depth == 1 && (node.Key == "GainsExperience" || node.Key.StartsWith("GainsExperience@"))
|
||||
&& node.Value.Nodes.FirstOrDefault(n => n.Key == "Upgrades") == null)
|
||||
node.Value.Nodes.Add(new MiniYamlNode("Upgrades", new MiniYaml("", new List<MiniYamlNode> {
|
||||
new MiniYamlNode("200", "firepower, damage, speed, reload, inaccuracy, rank"),
|
||||
new MiniYamlNode("400", "firepower, damage, speed, reload, inaccuracy, rank"),
|
||||
new MiniYamlNode("800", "firepower, damage, speed, reload, inaccuracy, rank"),
|
||||
new MiniYamlNode("1600", "firepower, damage, speed, reload, inaccuracy, rank, eliteweapon, selfheal")
|
||||
})));
|
||||
}
|
||||
|
||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
|
||||
^GainsExperience:
|
||||
GainsExperience:
|
||||
Upgrades:
|
||||
200: firepower, damage, speed, reload, inaccuracy, rank
|
||||
400: firepower, damage, speed, reload, inaccuracy, rank
|
||||
800: firepower, damage, speed, reload, inaccuracy, rank
|
||||
1600: firepower, damage, speed, reload, inaccuracy, rank, eliteweapon, selfheal
|
||||
GainsStatUpgrades:
|
||||
SelfHealing@ELITE:
|
||||
Step: 2
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
|
||||
^GainsExperience:
|
||||
GainsExperience:
|
||||
Upgrades:
|
||||
200: firepower, damage, speed, reload, inaccuracy, rank
|
||||
400: firepower, damage, speed, reload, inaccuracy, rank
|
||||
800: firepower, damage, speed, reload, inaccuracy, rank
|
||||
1600: firepower, damage, speed, reload, inaccuracy, rank, eliteweapon, selfheal
|
||||
GainsStatUpgrades:
|
||||
SelfHealing@ELITE:
|
||||
Step: 2
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
|
||||
^GainsExperience:
|
||||
GainsExperience:
|
||||
Upgrades:
|
||||
200: firepower, damage, speed, reload, inaccuracy, rank
|
||||
400: firepower, damage, speed, reload, inaccuracy, rank
|
||||
800: firepower, damage, speed, reload, inaccuracy, rank
|
||||
1600: firepower, damage, speed, reload, inaccuracy, rank, eliteweapon, selfheal
|
||||
GainsStatUpgrades:
|
||||
SelfHealing@ELITE:
|
||||
Step: 2
|
||||
|
||||
Reference in New Issue
Block a user