Mercurial > repos > IBBoard.WarFoundry.API
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]