diff api/Objects/Unit.cs @ 134:57f7b80757ea

Re #68: Export army to another format * Add styling to table * Add in text for equipment * Add method to Unit to get equipment amount strings * Refactor unit equipment handling to reduce duplication
author IBBoard <dev@ibboard.co.uk>
date Tue, 01 Sep 2009 18:56:38 +0000
parents c60fd5664698
children 7f13ffcb8765
line wrap: on
line diff
--- a/api/Objects/Unit.cs	Tue Sep 01 18:21:27 2009 +0000
+++ b/api/Objects/Unit.cs	Tue Sep 01 18:56:38 2009 +0000
@@ -269,13 +269,45 @@
 
 		public bool GetEquipmentAmountIsRatio(UnitEquipmentItem item)
 		{
-			return (DictionaryUtils.GetValue(equipment, item) is UnitEquipmentRatioSelection);
+			return IsEquipmentAmountRatio(GetEquipmentSelection(item));
+		}
+
+		private AbstractUnitEquipmentItemSelection GetEquipmentSelection(UnitEquipmentItem item)
+		{
+			return DictionaryUtils.GetValue(equipment, item);
+		}
+
+		private bool IsEquipmentAmountRatio(AbstractUnitEquipmentItemSelection selection)
+		{
+			return (selection is UnitEquipmentRatioSelection);
 		}
 
 		public bool GetEquipmentAmountIsRatio(string itemID)
 		{
 			return GetEquipmentAmountIsRatio(UnitType.GetEquipmentItem(itemID));
 		}
+
+		public string GetEquipmentAmountString(string equipID)
+		{
+			return GetEquipmentAmountString(UnitType.GetEquipmentItem(equipID));
+		}
+
+		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;
+		}
 		
 		public void SetEquipmentAmount(UnitEquipmentItem equip, int amount)
 		{