Mercurial > repos > IBBoard.WarFoundry.API
comparison API/Objects/Army.cs @ 424:d992758b0150
Re #344: Show unit requirement failures
* Add event to Army so we can see when anything that might affect validation changes
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 15 Oct 2011 16:03:22 +0100 |
parents | 314b8b8bf4f1 |
children | 676f5ce04176 |
comparison
equal
deleted
inserted
replaced
423:314b8b8bf4f1 | 424:d992758b0150 |
---|---|
33 | 33 |
34 public event ObjectAddDelegate UnitAdded; | 34 public event ObjectAddDelegate UnitAdded; |
35 public event ObjectRemoveDelegate UnitRemoved; | 35 public event ObjectRemoveDelegate UnitRemoved; |
36 public event IntValChangedDelegate MaxPointsValueChanged; | 36 public event IntValChangedDelegate MaxPointsValueChanged; |
37 public event DoubleValChangedDelegate PointsValueChanged; | 37 public event DoubleValChangedDelegate PointsValueChanged; |
38 public event MethodInvoker ArmyCompositionChanged; | |
38 private DoubleValChangedDelegate PointsValueChangedMethod; | 39 private DoubleValChangedDelegate PointsValueChangedMethod; |
39 | 40 |
40 public Army(Race race, string armyName, int maxArmyPoints) : this(race, armyName, maxArmyPoints, null) | 41 public Army(Race race, string armyName, int maxArmyPoints) : this(race, armyName, maxArmyPoints, null) |
41 { | 42 { |
42 } | 43 } |
238 return count; | 239 return count; |
239 } | 240 } |
240 | 241 |
241 private void Army_UnitAdded(WarFoundryObject val) | 242 private void Army_UnitAdded(WarFoundryObject val) |
242 { | 243 { |
243 OnUnitAdded((Unit)val); | 244 Unit unit = (Unit)val; |
245 OnUnitAdded(unit); | |
246 OnArmyCompositionChanged(); | |
247 unit.UnitEquipmentAmountChanged += HandleUnitUnitEquipmentAmountChanged; | |
248 unit.UnitSizeChanged += HandleUnitUnitSizeChanged; | |
244 } | 249 } |
245 | 250 |
246 private void Army_UnitRemoved(WarFoundryObject val) | 251 private void Army_UnitRemoved(WarFoundryObject val) |
247 { | 252 { |
248 OnUnitRemoved((Unit)val); | 253 Unit unit = (Unit)val; |
254 OnUnitRemoved(unit); | |
255 OnArmyCompositionChanged(); | |
256 unit.UnitEquipmentAmountChanged -= HandleUnitUnitEquipmentAmountChanged; | |
257 unit.UnitSizeChanged -= HandleUnitUnitSizeChanged; | |
258 } | |
259 | |
260 private void HandleUnitUnitEquipmentAmountChanged (WarFoundryObject obj, double oldValue, double newValue) | |
261 { | |
262 OnArmyCompositionChanged(); | |
263 } | |
264 | |
265 private void HandleUnitUnitSizeChanged (WarFoundryObject obj, int oldValue, int newValue) | |
266 { | |
267 OnArmyCompositionChanged(); | |
249 } | 268 } |
250 | 269 |
251 public ICollection<IRequirement> GetRequirements () | 270 public ICollection<IRequirement> GetRequirements () |
252 { | 271 { |
253 return Race.GetRequirements(); | 272 return Race.GetRequirements(); |
273 } | |
274 | |
275 internal void OnArmyCompositionChanged() | |
276 { | |
277 if (ArmyCompositionChanged != null) | |
278 { | |
279 ArmyCompositionChanged(); | |
280 } | |
254 } | 281 } |
255 } | 282 } |
256 } | 283 } |