public void Add(RTSUnit u)
{
// Units Cannot Be Added Twice
if(u.Squad == this) return;
// Squad Invariant Performed Here
if(u.Squad != null) u.Squad.Remove(u);
u.Squad = this;
units.Add(u);
u.OnDestruction += OnUnitDestruction;
if(OnUnitAddition != null)
OnUnitAddition(this, u);
}