/// <summary>
        /// Calculate forces using weights map to each behavior.
        /// Currently all behavior have the same weight.
        /// </summary>
        private void CalculateWeightsSum(double timeElapsed)
        {
            // Check for each behavior
            if (IsSeekOn)
            {
                SteeringForce += Seek(Target.Pos) * _weights[BehaviorType.Seek];
            }
            if (IsFleeOn)
            {
                SteeringForce += Flee(ToAvoid.Pos) * _weights[BehaviorType.Flee];
            }
            if (IsArriveOn)
            {
                SteeringForce += Arrive(Target.Pos) * _weights[BehaviorType.Arrive];
            }
            if (IsPursuitOn)
            {
                SteeringForce += Pursuit(Target) * _weights[BehaviorType.Pursuit];
            }
            if (IsEvadeOn)
            {
                SteeringForce += Evade(ToAvoid) * _weights[BehaviorType.Evade];
            }
            if (IsWanderOn)
            {
                SteeringForce += Wander(timeElapsed) * _weights[BehaviorType.Wander];
            }
            if (IsSeparationOn)
            {
                SteeringForce += Separation(_neighbors) * _weights[BehaviorType.Separation];
            }
            if (IsAlignmentOn)
            {
                SteeringForce += Alignment(_neighbors) * _weights[BehaviorType.Alignment];
            }
            if (IsCohesionOn)
            {
                SteeringForce += Cohesion(_neighbors) * _weights[BehaviorType.Cohesion];
            }
            // if ( IsOffsetPursuitOn )   { SteeringForce += OffsetPursuit(Target, new Vector2(30f, 30f)) * _weights["Cohesion"]; }

            // Make sure force does not exceed max agent Force
            SteeringForce = SteeringForce.TruncateExt(Agent.MaxForce);
        }