Mercurial > repos > IBBoard.WarFoundry.API
diff api/Objects/ArmyCategory.cs @ 58:e53ed2d613a1
Re #61 - Complete structure of WarFoundry API objects
* Migrate AddUnit/RemoveUnit methods to Army for easier army loading
* Migrate requirement checking call to Army, since ArmyCategory just called parent army anyway
Also:
* Use genericed collections in Army
* Remove failed unit requirements from ArmyCategory
* Alter army.xsd to stop negatives in equipment amounts
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 07 Apr 2009 15:28:06 +0000 |
parents | 306558904c2a |
children | 3ea0ab04352b |
line wrap: on
line diff
--- a/api/Objects/ArmyCategory.cs Tue Apr 07 14:43:04 2009 +0000 +++ b/api/Objects/ArmyCategory.cs Tue Apr 07 15:28:06 2009 +0000 @@ -22,7 +22,6 @@ public event DoubleValChangedDelegate PointsValueChanged; public event ObjectAddDelegate UnitAdded; public event ObjectRemoveDelegate UnitRemoved; - public event FailedUnitRequirementDelegate RequirementsFailed; public ArmyCategory(Army army, Category cat) : base() { @@ -65,30 +64,25 @@ } } - public void AddUnit(Unit unit) + internal void AddUnit(Unit unit) { - List<FailedUnitRequirement> failedReqs = ParentArmy.CanAddUnit(unit); - units.Add(unit); - unit.Army = ParentArmy; unit.Category = this; unit.PointsValueChanged+= PointsValueChangedMethod; int unitTypeCount; unitTypes.TryGetValue(unit.UnitType.ID, out unitTypeCount); unitTypes[unit.UnitType.ID] = (int)unitTypeCount + 1; - TotalPoints+= unit.PointsValue; - OnUnitAdded(unit, failedReqs); + TotalPoints+= unit.PointsValue; + OnUnitAdded(unit); } - public void RemoveUnit(Unit unit) + internal void RemoveUnit(Unit unit) { - List<FailedUnitRequirement> failedReqs = ParentArmy.CanRemoveUnit(unit); - units.Remove(unit); - unit.Army = null; + units.Remove(unit); unitTypes[unit.UnitType.ID] = ((int)unitTypes[unit.UnitType.ID])-1; TotalPoints-= unit.PointsValue; - unit.PointsValueChanged-= PointsValueChangedMethod; - OnUnitRemoved(unit, failedReqs); + unit.PointsValueChanged-= PointsValueChangedMethod; + OnUnitRemoved(unit); } public int GetUnitTypeCount(UnitType unitType) @@ -130,30 +124,20 @@ } } - private void OnUnitAdded(Unit unit, List<FailedUnitRequirement> failedReqs) + private void OnUnitAdded(Unit unit) { if (UnitAdded!=null) { UnitAdded(unit); } - - if (RequirementsFailed!=null && failedReqs!=null && failedReqs.Count > 0) - { - RequirementsFailed(failedReqs); - } } - private void OnUnitRemoved(Unit unit, List<FailedUnitRequirement> failedReqs) + private void OnUnitRemoved(Unit unit) { if (UnitRemoved!=null) { UnitRemoved(unit); } - - if (RequirementsFailed!=null && failedReqs!=null && failedReqs.Count>0) - { - RequirementsFailed(failedReqs); - } } protected virtual void OnPointsValueChanged(double oldValue, double newValue)