comparison 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
comparison
equal deleted inserted replaced
91:571d8ddc7d9a 92:729d9e54162c
23 private double costMultiplier; 23 private double costMultiplier;
24 private RoundType roundType; 24 private RoundType roundType;
25 private string mutexGroup; 25 private string mutexGroup;
26 private UnitType unitType; 26 private UnitType unitType;
27 27
28 public UnitEquipmentItem(EquipmentItem equipmentItem) 28 public UnitEquipmentItem(EquipmentItem equipmentItem, UnitType equipmentFor)
29 { 29 {
30 item = equipmentItem; 30 item = equipmentItem;
31 unitType = equipmentFor;
32 unitType.AddEquipmentItem(this);
31 } 33 }
32 34
33 public override string Name 35 public override string Name
34 { 36 {
35 get { 37 get
38 {
36 return item.Name; 39 return item.Name;
37 } 40 }
38 set { 41 set
42 {
39 base.Name = value; 43 base.Name = value;
40 } 44 }
41 } 45 }
46
47 public override string ID {
48 get
49 {
50 return (EquipmentForUnit == null ? base.ID : EquipmentForUnit.ID) + EquipmentItemID;
51 }
52 set
53 {
54 base.ID = value;
55 }
56 }
57
42 58
43 public string EquipmentItemID 59 public string EquipmentItemID
44 { 60 {
45 get { return item.ID; } 61 get { return item.ID; }
46 } 62 }
90 } 106 }
91 107
92 public UnitType EquipmentForUnit 108 public UnitType EquipmentForUnit
93 { 109 {
94 get { return unitType; } 110 get { return unitType; }
95 set
96 {
97 if (value != null)
98 {
99 unitType = value;
100 unitType.AddEquipmentItem(this);
101 }
102 }
103 } 111 }
104 112
105 public bool IsRatioLimit 113 public bool IsRatioLimit
106 { 114 {
107 get { return minPercentage!=100 || maxPercentage!=100; } 115 get { return minPercentage!=100 || maxPercentage!=100; }
219 } 227 }
220 else 228 else
221 { 229 {
222 if (amount == WarFoundryCore.INFINITY) 230 if (amount == WarFoundryCore.INFINITY)
223 { 231 {
224 return "all"; 232 return "all"; //TODO: Translate
225 } 233 }
226 else 234 else
227 { 235 {
228 return amount.ToString(); 236 return amount.ToString();
229 } 237 }