# HG changeset patch # User IBBoard # Date 1252438071 0 # Node ID 413a7a049e41c43b0e11917aeebe0768111a444f # Parent a37cdcbcad14b61c6ad879115174912b8d832036 Fixes #146: Incorrect logic in Unit.AddEquipmentAmount() * Logic error was in UnitEquipmentNumericForRatioSelection where we didn't treat percentages as decimal numbers and got ranges of "125 to 500" for a unit of 5! diff -r a37cdcbcad14 -r 413a7a049e41 api/Objects/UnitEquipmentNumericForRatioSelection.cs --- a/api/Objects/UnitEquipmentNumericForRatioSelection.cs Fri Sep 04 18:43:52 2009 +0000 +++ b/api/Objects/UnitEquipmentNumericForRatioSelection.cs Tue Sep 08 19:27:51 2009 +0000 @@ -23,10 +23,10 @@ protected override bool IsInRange (double newValue) { - int minLimit = (int) IBBMath.Round(EquipmentForUnit.Size * EquipmentItem.MinPercentage, EquipmentItem.RoundNumberUp); - int maxLimit = (int) IBBMath.Round(EquipmentForUnit.Size * EquipmentItem.MaxPercentage, EquipmentItem.RoundNumberUp); + int minLimit = (int) IBBMath.Round(EquipmentForUnit.Size * EquipmentItem.MinPercentage / 100, EquipmentItem.RoundNumberUp); + int maxLimit = (int)IBBMath.Round(EquipmentForUnit.Size * EquipmentItem.MaxPercentage / 100, EquipmentItem.RoundNumberUp); + newValue = (newValue == WarFoundryCore.INFINITY ? EquipmentForUnit.Size : newValue); bool isInRange = (minLimit <= newValue) && (newValue <= maxLimit); - newValue = (newValue == WarFoundryCore.INFINITY ? EquipmentForUnit.Size : newValue); return isInRange && IsWholeNumber(newValue); } }