comparison api/Util/UnitEquipmentUtil.cs @ 185:3577bfb7702b

Re #198: Add equipment slots * Add GetMinEquipmentAmount method
author IBBoard <dev@ibboard.co.uk>
date Tue, 27 Oct 2009 20:17:40 +0000
parents 36adabb1c3ea
children c8682d206a73
comparison
equal deleted inserted replaced
184:cedf8bba1d52 185:3577bfb7702b
100 return areMutex; 100 return areMutex;
101 } 101 }
102 102
103 public static int GetMaxEquipmentCount (Unit unit, UnitEquipmentItem equip) 103 public static int GetMaxEquipmentCount (Unit unit, UnitEquipmentItem equip)
104 { 104 {
105 int max = equip.MaxLimit.GetLimit(unit.Size); 105 return GetEquipmentCountLimit (unit, equip);
106 AbstractLimit limit = unit.UnitType.GetEquipmentSlotLimit(equip.SlotName); 106 }
107
108 private static int GetEquipmentCountLimit (Unit unit, UnitEquipmentItem equip)
109 {
110 int unitSize = unit.Size;
111 int max = Math.Min (equip.MinLimit.GetLimit (unitSize), equip.MaxLimit.GetLimit (unitSize));
112 AbstractLimit limit = unit.UnitType.GetEquipmentSlotLimit (equip.SlotName);
107 113
108 if (!(limit is UnlimitedLimit)) 114 if (!(limit is UnlimitedLimit))
109 { 115 {
110 int slotMax = limit.GetLimit(unit.Size) - unit.GetEquipmentAmountInSlot(equip.SlotName); 116 int slotMax = limit.GetLimit (unitSize) - unit.GetEquipmentAmountInSlot (equip.SlotName);
111 max = Math.Min(slotMax, max); 117 max = Math.Min (slotMax, max);
112 } 118 }
113 119
114 return max; 120 return max;
115 } 121 }
122
123
124 public static int GetMinEquipmentCount (Unit unit, UnitEquipmentItem equip)
125 {
126 return GetEquipmentCountLimit (unit, equip);
127 }
116 } 128 }
117 } 129 }