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>