Add Id field to ProvidesTechPrerequisite.

This commit is contained in:
Paul Chote
2016-05-19 14:37:01 +01:00
parent 038a10b676
commit d27d265bdd
5 changed files with 29 additions and 1 deletions

View File

@@ -15,7 +15,14 @@ namespace OpenRA.Mods.Common.Traits
{ {
public class ProvidesTechPrerequisiteInfo : ITechTreePrerequisiteInfo public class ProvidesTechPrerequisiteInfo : ITechTreePrerequisiteInfo
{ {
[Desc("Internal id for this tech level.")]
public readonly string Id;
[Translate]
[Desc("Name shown in the lobby options.")]
public readonly string Name; public readonly string Name;
[Desc("Prerequisites to grant when this tech level is active.")]
public readonly string[] Prerequisites = { }; public readonly string[] Prerequisites = { };
public object Create(ActorInitializer init) { return new ProvidesTechPrerequisite(this, init); } public object Create(ActorInitializer init) { return new ProvidesTechPrerequisite(this, init); }
@@ -23,8 +30,9 @@ namespace OpenRA.Mods.Common.Traits
public class ProvidesTechPrerequisite : ITechTreePrerequisite public class ProvidesTechPrerequisite : ITechTreePrerequisite
{ {
ProvidesTechPrerequisiteInfo info; readonly ProvidesTechPrerequisiteInfo info;
bool enabled; bool enabled;
static readonly string[] NoPrerequisites = new string[0]; static readonly string[] NoPrerequisites = new string[0];
public string Name { get { return info.Name; } } public string Name { get { return info.Name; } }

View File

@@ -804,6 +804,13 @@ namespace OpenRA.Mods.Common.UtilityCommands
} }
} }
if (engineVersion < 20160604 && node.Key.StartsWith("ProvidesTechPrerequisite"))
{
var name = node.Value.Nodes.First(n => n.Key == "Name");
var id = name.Value.Value.ToLowerInvariant().Replace(" ", "");
node.Value.Nodes.Add(new MiniYamlNode("Id", id));
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
} }
} }

View File

@@ -19,14 +19,18 @@ Player:
ProvidesTechPrerequisite@low: ProvidesTechPrerequisite@low:
Name: Low Name: Low
Prerequisites: techlevel.low Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium: ProvidesTechPrerequisite@medium:
Name: Medium Name: Medium
Prerequisites: techlevel.low, techlevel.medium Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper: ProvidesTechPrerequisite@nosuper:
Name: No Powers Name: No Powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all: ProvidesTechPrerequisite@all:
Name: Unrestricted Name: Unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
GlobalUpgradeManager: GlobalUpgradeManager:
ResourceStorageWarning: ResourceStorageWarning:

View File

@@ -73,15 +73,19 @@ Player:
ProvidesTechPrerequisite@low: ProvidesTechPrerequisite@low:
Name: Low Name: Low
Prerequisites: techlevel.low Prerequisites: techlevel.low
Id: low
ProvidesTechPrerequisite@medium: ProvidesTechPrerequisite@medium:
Name: Medium Name: Medium
Prerequisites: techlevel.low, techlevel.medium Prerequisites: techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@nosuper: ProvidesTechPrerequisite@nosuper:
Name: No Powers Name: No Powers
Prerequisites: techlevel.low, techlevel.medium, techlevel.high Prerequisites: techlevel.low, techlevel.medium, techlevel.high
Id: nopowers
ProvidesTechPrerequisite@all: ProvidesTechPrerequisite@all:
Name: Unrestricted Name: Unrestricted
Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons Prerequisites: techlevel.low, techlevel.medium, techlevel.high, techlevel.superweapons
Id: unrestricted
EnemyWatcher: EnemyWatcher:
HarvesterInsurance: HarvesterInsurance:
GlobalUpgradeManager: GlobalUpgradeManager:

View File

@@ -55,18 +55,23 @@ Player:
ProvidesTechPrerequisite@infonly: ProvidesTechPrerequisite@infonly:
Name: Infantry Only Name: Infantry Only
Prerequisites: techlevel.infonly Prerequisites: techlevel.infonly
Id: infantryonly
ProvidesTechPrerequisite@low: ProvidesTechPrerequisite@low:
Name: Low Name: Low
Prerequisites: techlevel.infonly, techlevel.low Prerequisites: techlevel.infonly, techlevel.low
Id: low
ProvidesTechPrerequisite@medium: ProvidesTechPrerequisite@medium:
Name: Medium Name: Medium
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium
Id: medium
ProvidesTechPrerequisite@high: ProvidesTechPrerequisite@high:
Name: No Superweapons Name: No Superweapons
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high
Id: nosuperweapons
ProvidesTechPrerequisite@unrestricted: ProvidesTechPrerequisite@unrestricted:
Name: Unrestricted Name: Unrestricted
Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high, techlevel.unrestricted Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.high, techlevel.unrestricted
Id: unrestricted
GlobalUpgradeManager: GlobalUpgradeManager:
EnemyWatcher: EnemyWatcher:
VeteranProductionIconOverlay: VeteranProductionIconOverlay: