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)