Mercurial > repos > IBBoard.WarFoundry.API
diff api/Objects/Unit.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 | e8e9026dd4ea |
children | c6713a1b4c0d |
line wrap: on
line diff
--- a/api/Objects/Unit.cs Sat Nov 21 11:50:48 2009 +0000 +++ b/api/Objects/Unit.cs Sat Nov 21 16:40:54 2009 +0000 @@ -248,67 +248,48 @@ } } - return list.ToArray(); + return list.ToArray(); + } + + internal AbstractUnitEquipmentItemSelection GetEquipmentSelection(UnitEquipmentItem item) + { + return DictionaryUtils.GetValue(equipment, item); } + [Obsolete("Use UnitEquipmentUtil method instead")] public double GetEquipmentAmount(UnitEquipmentItem item) - { - double amount = 0; - AbstractUnitEquipmentItemSelection selection = DictionaryUtils.GetValue(equipment, item); - - if (selection != null) - { - amount = selection.AmountTaken; - } - - return amount; - } - + { + return UnitEquipmentUtil.GetEquipmentAmount(this, item); + } + + [Obsolete("Use UnitEquipmentUtil method instead")] public double GetEquipmentAmount(string equipID) { return GetEquipmentAmount(UnitType.GetEquipmentItem(equipID)); - } - + } + + [Obsolete("Use UnitEquipmentUtil method instead")] public bool GetEquipmentAmountIsRatio(UnitEquipmentItem item) - { - return IsEquipmentAmountRatio(GetEquipmentSelection(item)); - } - - private AbstractUnitEquipmentItemSelection GetEquipmentSelection(UnitEquipmentItem item) - { - return DictionaryUtils.GetValue(equipment, item); - } - - private bool IsEquipmentAmountRatio(AbstractUnitEquipmentItemSelection selection) - { - return (selection is UnitEquipmentRatioSelection); - } - + { + return UnitEquipmentUtil.GetEquipmentAmountIsRatio(this, item); + } + + [Obsolete("Use UnitEquipmentUtil method instead")] public bool GetEquipmentAmountIsRatio(string itemID) { return GetEquipmentAmountIsRatio(UnitType.GetEquipmentItem(itemID)); } + [Obsolete("Implementation is down to the UI")] public string GetEquipmentAmountString(string equipID) { - return GetEquipmentAmountString(UnitType.GetEquipmentItem(equipID)); - } - + return ""; + } + + [Obsolete("Implementation is down to the UI")] public string GetEquipmentAmountString(UnitEquipmentItem item) - { - String amountString = ""; - AbstractUnitEquipmentItemSelection selection = GetEquipmentSelection(item); - - if (IsEquipmentAmountRatio(selection)) - { - amountString = UnitEquipmentRatioSelection.GetEquipmentAmountString(GetEquipmentAmount(item)); - } - else - { - amountString = UnitEquipmentNumericSelection.GetEquipmentAmountString(GetEquipmentAmount(item)); - } - - return amountString; + { + return ""; } public void SetEquipmentAmount(UnitEquipmentItem equip, int amount) @@ -508,9 +489,9 @@ public int GetEquipmentAmountInSlot (string slotName) { - int amount = 0; - - List<AbstractUnitEquipmentItemSelection> selections = DictionaryUtils.GetValue(equipmentSlots, slotName); + int amount = 0; + + List<AbstractUnitEquipmentItemSelection> selections = GetEquipmentSlotSelections(slotName); if (selections != null) { @@ -518,6 +499,11 @@ } return amount; + } + + internal List<AbstractUnitEquipmentItemSelection> GetEquipmentSlotSelections(string slotName) + { + return DictionaryUtils.GetValue(equipmentSlots, slotName); } /// <summary>