Mercurial > repos > IBDev-IBBoard.WarFoundry.API
diff api/Util/UnitEquipmentUtil.cs @ 212:dce340f9cedc
Re #217: Rounding problem with equipment cost calculations
* Temporary solution (which I thought I'd already committed yesterday) to make sure that rounding of amount doesn't round outside limit if limit and item rounding directions are different
Re #220: Make percentage and numeric amounts more obvious
* Deprecate some calculation and presentation methods and move them to UnitEquipmentUtils
* Add method to return the number of equipment items taken rather than the amount taken
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 21 Nov 2009 16:40:54 +0000 |
parents | e586ea79c102 |
children | 6fe0cb1bf74f |
line wrap: on
line diff
--- a/api/Util/UnitEquipmentUtil.cs Sat Nov 21 11:50:48 2009 +0000 +++ b/api/Util/UnitEquipmentUtil.cs Sat Nov 21 16:40:54 2009 +0000 @@ -178,5 +178,29 @@ { return GetMinOfSlotLimitAndEquipmentLimit(equip, equip.MinLimit, unit); } + + public static double GetEquipmentAmount(Unit unit, UnitEquipmentItem item) + { + double amount = 0; + AbstractUnitEquipmentItemSelection selection = unit.GetEquipmentSelection(item); + + if (selection != null) + { + amount = selection.AmountTaken; + } + + return amount; + } + + public static bool GetEquipmentAmountIsRatio(Unit unit, UnitEquipmentItem item) + { + return (unit.GetEquipmentSelection(item) is UnitEquipmentRatioSelection); + } + + public static int GetEquipmentAmountTaken(Unit unit, UnitEquipmentItem item) + { + AbstractUnitEquipmentItemSelection selection = unit.GetEquipmentSelection(item); + return (selection == null ? 0 : selection.NumberTaken); + } } }