# HG changeset patch # User IBBoard # Date 1324412814 0 # Node ID ca1e8f7c8b7308e617a94185434d143fb1aff4db # Parent 2d1bdd679f821f8c8b9e81393b431e9f6ea92714 Re: #350: Add requirement to allow N of unit for specific other units * Update army validation to support required amounts other than 1 diff -r 2d1bdd679f82 -r ca1e8f7c8b73 API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs --- a/API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs Thu Dec 15 20:59:21 2011 +0000 +++ b/API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs Tue Dec 20 20:26:54 2011 +0000 @@ -162,7 +162,7 @@ foreach (UnitCountRequirementData limit in requiredTypes) { - int limitedTypeCount = army.GetUnitTypeCount(limit.UnitType); + int limitedTypeCount = GetUnitTypesCount(army, limit.UnitTypes); typeFound |= (limitedTypeCount > 0); if (!IsValidByRequirement(limit, allowedTypeCount, limitedTypeCount)) @@ -196,17 +196,23 @@ foreach (UnitCountRequirementData limit in requiredTypes) { - int limitedTypeCount = army.GetUnitTypeCount(limit.UnitType); + int limitedTypeCount = GetUnitTypesCount(army, limit.UnitTypes); if (!IsValidByRequirement(limit, allowedTypeCount, limitedTypeCount)) { - failures.Add(String.Format("{0} {1} for every {2} {3} (have {4} for {5})", limit.Count, limit.UnitType.Name, limit.AllowsCount, allowedType.Name, limitedTypeCount, allowedTypeCount)); + string unitTypeList = GetUnitTypeList(limit); + failures.Add(String.Format("{0} {1} for every {2} {3} (have {4} for {5})", limit.Count, unitTypeList, limit.AllowsCount, allowedType.Name, limitedTypeCount, allowedTypeCount)); } } return failures; } + private int GetUnitTypesCount(Army army, UnitType[] unitTypes) + { + return GetUnitTypesCount(army, unitTypes, null); + } + public override string RequirementID { get