diff --git a/OpenRa.TechTreeTest/Building.cs b/OpenRa.TechTreeTest/Building.cs index d11b8882d5..6347c72f8e 100644 --- a/OpenRa.TechTreeTest/Building.cs +++ b/OpenRa.TechTreeTest/Building.cs @@ -46,6 +46,12 @@ namespace OpenRa.TechTreeTest public bool ShouldMakeBuildable(IEnumerable buildings) { + if (techLevel > 10 || techLevel < 0) + return false; + + if (prerequisites.Length == 0) + return true; + List p = new List(prerequisites); foreach (string b in buildings) p.Remove(b); @@ -55,6 +61,9 @@ namespace OpenRa.TechTreeTest public bool ShouldMakeUnbuildable(IEnumerable buildings) { + if (prerequisites.Length == 0) + return false; + List p = new List(prerequisites); foreach (string b in buildings) p.Remove(b); diff --git a/OpenRa.TechTreeTest/TechTree.cs b/OpenRa.TechTreeTest/TechTree.cs index 92c9c0100e..b310f58a03 100644 --- a/OpenRa.TechTreeTest/TechTree.cs +++ b/OpenRa.TechTreeTest/TechTree.cs @@ -29,7 +29,7 @@ namespace OpenRa.TechTreeTest IniSection section = rulesFile.GetSection(key); Building b = buildings[key]; string s = section.GetValue("Prerequisite", "").ToUpper(); - b.Prerequisites = s.Split(','); + b.Prerequisites = s.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); b.TechLevel = int.Parse(section.GetValue("TechLevel", "-1")); } }