/// <summary>
 /// Adds a child to the UnitList. Only add's the child if it is a UnitComponent.
 /// Fires off an UnitAddedEvent.
 /// </summary>
 /// <param name="child">The ModelComponent to be added.</param>
 public override void AddChild(ModelComponent child)
 {
     if (child is UnitComponent)
     {
         base.AddChild(child);
         UnitAddedEventArgs args = new UnitAddedEventArgs();
         args.Unit = (UnitComponent) child;
         if (UnitAddedEvent != null)
         {
             UnitAddedEvent(this, args);
         }
     }
 }
 /// <summary>
 /// Trigger fucntion in the event of new unit being added
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void onUnitAdded(object sender, UnitAddedEventArgs e)
 {
     ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance;
     UnitUI unitUI = factory.BuildUnitUI(e.Unit);
     unitUI.DrawBox = new Rectangle((int)(e.Unit.PointLocation.X * cellDimension), (int)(e.Unit.PointLocation.Y * cellDimension), unitUI.DrawBox.Width, unitUI.DrawBox.Height);
     AddChild(unitUI);
     componentToUI.Add(e.Unit, unitUI);
     e.Unit.MovedEventHandlers += updateLocationOfUnit;
     e.Unit.HPChangedEventHandlers += killUnit;
 }