public override void Update(GameTime time) { base.Update(time); // Updates the Unit target overlay unitTargets.Update(time); hitEffectList.Update(time); // Remove unitTargets that are done unitTargets.ForEach(obj => { TargetPositionOverlay uto = obj as TargetPositionOverlay; if (uto.Finished) { unitTargets.RemoveChild(obj); } }); //If we have a selected unit; if there is a path to follow, we start walking using Walk(), otherwise we move to target location if (walkingUnits.Count > 0) { for (int i = walkingUnits.Count - 1; i >= 0; --i) { WalkingUnit walkingUnit = walkingUnits[i]; if (walkingUnit.MovingUnit.Vectors.Count > 0) { Walk(walkingUnit.MovingUnit, walkingUnit.MovingUnit.Vectors[0]); } else { OnUnitFinishMoving(walkingUnit); walkingUnits.Remove(walkingUnit); } } } }