# HG changeset patch # User IBBoard # Date 1324654566 0 # Node ID dbd779cdc0f9b75ee06d3521c1d6d43a6ac0e8ad # Parent 4fbb7f205f7e4877f50c2a954cd0793b7a1e93ac Re #350: Add requirement to allow N of unit for specific other units * Fix limit checking when "limited count" is not 1 (e.g. "need 2 for every 3") diff -r 4fbb7f205f7e -r dbd779cdc0f9 API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs --- a/API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs Tue Dec 20 21:03:33 2011 +0000 +++ b/API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs Fri Dec 23 15:36:06 2011 +0000 @@ -101,9 +101,9 @@ private bool IsValidByRequirement(UnitCountRequirementData limit, int allowedTypeCount, int limitedTypeCount) { - double limitedTypeMultiplier = limitedTypeCount / (limit.Count * 1.0); - double allowedTypeMultiplier = allowedTypeCount / (limit.AllowsCount * 1.0); - return allowedTypeMultiplier <= limitedTypeMultiplier; + int wholeNumLimited = (limitedTypeCount / limit.Count); + double allowedRatio = (limit.AllowsCount / (limit.Count * 1.0)); + return allowedRatio * wholeNumLimited >= allowedTypeCount; } public override Validation AllowsAdding(WarFoundryObject wfObject, Army toArmy)