diff API/Objects/UnitType.cs @ 356:51cccccf3669

Re #27: Unit requirements * Initial work to try to make unit types return requirements for count limits * Add requirements when limits aren't defaults * Start adding equality/hash code methods
author IBBoard <dev@ibboard.co.uk>
date Mon, 25 Apr 2011 15:11:20 +0000
parents d34ae0057a39
children 50d0d3b39a0b
line wrap: on
line diff
--- a/API/Objects/UnitType.cs	Mon Apr 25 10:32:51 2011 +0000
+++ b/API/Objects/UnitType.cs	Mon Apr 25 15:11:20 2011 +0000
@@ -19,7 +19,9 @@
 	{
 		private Category mainCat;
 		private Race race;
-		private int min, max, baseSize = 0;
+		private int min = 0;
+		private int max = WarFoundryCore.INFINITY;
+		private int baseSize = 0;
 		private int minSize, maxSize;
 		private double baseUnitCost;
 		private double costPerTrooper;
@@ -465,7 +467,23 @@
 
 		public IRequirement[] GetRequirements()
 		{
-			return requirements.ToArray();
+			List<IRequirement> reqs = new List<IRequirement>(requirements);
+
+			if (MinNumber != 0)
+			{
+				RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement();
+				req.AddUnitTypeRequirement(this, MinNumber);
+				reqs.Add(req);
+			}
+
+			if (MaxNumber != WarFoundryCore.INFINITY)
+			{
+				RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement();
+				req.AddUnitTypeRequirement(this, MaxNumber);
+				reqs.Add(req);
+			}
+
+			return reqs.ToArray();
 		}
 
 		[Obsolete]