diff api/Objects/UnitEquipmentItem.cs @ 92:729d9e54162c

Re #111: "Replace" button doesn't always enable * Implement better fix: * Make UnitEquipmentItem ID based on unit type ID and equipment item ID * Make UnitEquipmentItem require UnitType at construction again * Remove setter from EquipmentItemForUnit * Make AddEquipmentItem method internal so that the UnitEquipmentItem and not the factory is responsible for setting up the reverse link no-open-ticket
author IBBoard <dev@ibboard.co.uk>
date Fri, 07 Aug 2009 19:49:21 +0000
parents 46ad6f478203
children 49a83020174e
line wrap: on
line diff
--- a/api/Objects/UnitEquipmentItem.cs	Fri Aug 07 19:22:08 2009 +0000
+++ b/api/Objects/UnitEquipmentItem.cs	Fri Aug 07 19:49:21 2009 +0000
@@ -25,20 +25,36 @@
 		private string mutexGroup;
 		private UnitType unitType;
 
-		public UnitEquipmentItem(EquipmentItem equipmentItem)
+		public UnitEquipmentItem(EquipmentItem equipmentItem, UnitType equipmentFor)
 		{
 			item = equipmentItem;
+			unitType = equipmentFor;
+			unitType.AddEquipmentItem(this);
 		}
 		
 		public override string Name
 		{
-			get {
+			get 
+			{
 				return item.Name;
 			}
-			set {
+			set
+			{
 				base.Name = value;
 			}
 		}
+
+		public override string ID {
+			get
+			{
+				return (EquipmentForUnit == null ? base.ID : EquipmentForUnit.ID) + EquipmentItemID;
+			}
+			set
+			{
+				base.ID = value;
+			}
+		}
+
 		
 		public string EquipmentItemID
 		{
@@ -92,14 +108,6 @@
 		public UnitType EquipmentForUnit
 		{
 			get { return unitType; }
-			set 
-			{ 
-				if (value != null)
-				{
-					unitType = value;
-					unitType.AddEquipmentItem(this);
-				}
-			}
 		}
 		
 		public bool IsRatioLimit
@@ -221,7 +229,7 @@
 			{
 				if (amount == WarFoundryCore.INFINITY)
 				{
-					return "all";
+					return "all"; //TODO: Translate
 				}
 				else
 				{