Mercurial > repos > IBBoard.WarFoundry.API
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 } |