# HG changeset patch # User IBBoard # Date 1301341303 0 # Node ID 2cb3bd9b11ea0446c8b82d991f1de710dfef6b99 # Parent e1d1b81b192a957ac02bad53d90b0b3c3a36797e Re #27: Define unit requirements * Add new method for validating an existing army * Refactor existing code into new method diff -r e1d1b81b192a -r 2cb3bd9b11ea api/Objects/Requirement/RequiresAtLeastNUnitsRequirement.cs --- a/api/Objects/Requirement/RequiresAtLeastNUnitsRequirement.cs Sun Mar 27 19:50:33 2011 +0000 +++ b/api/Objects/Requirement/RequiresAtLeastNUnitsRequirement.cs Mon Mar 28 19:41:43 2011 +0000 @@ -38,11 +38,30 @@ /// public bool AllowsAdding(WarFoundryObject wfObject, Army toArmy) { + return this.ValidatesArmy(toArmy); + } + + public void AddUnitTypeRequirement(UnitType unitType, int minCount) + { + requiredTypes.Add(new UnitCountRequirementData(unitType, minCount)); + } + + /// + /// Checks whether the supplied army is currently valid according to this requirement. + /// + /// + /// true if the army is valid, else false + /// + /// + /// The army to validate + /// + public bool ValidatesArmy(Army toValidate) + { bool canAdd = true; foreach (UnitCountRequirementData requirement in requiredTypes) { - if (toArmy.GetUnitTypeCount(requirement.UnitType) < requirement.Count) + if (toValidate.GetUnitTypeCount(requirement.UnitType) < requirement.Count) { canAdd = false; break; @@ -51,11 +70,6 @@ return canAdd; } - - public void AddUnitTypeRequirement(UnitType unitType, int minCount) - { - requiredTypes.Add(new UnitCountRequirementData(unitType, minCount)); - } } }