protected Vector2 ApplySeparation(AIAgent requester, Vector2 requesterPosition, Vector2 currentDesiredPostion, bool linearWeight) { Vector2?localSepTemp = SteeringBehaviour.Separation(requester, requesterPosition, (currentDesiredPostion - requesterPosition).normalized, out AIAgent closestSiblin, out Vector2 directionToclosestSiblin); if (UseLocalSeparation(requester, localSepTemp, directionToclosestSiblin, currentDesiredPostion, requester.data.separationIgnoreBiggerAngles, requester.data.separationIgnoreSmallerAngles)) { float multiplier = requester.data.separationWieghtMultiplier; currentDesiredPostion = Vector2.Lerp(currentDesiredPostion, localSepTemp.Value, GetSeparationWeight(requester, closestSiblin, linearWeight) * multiplier); } return(currentDesiredPostion); }