def copy_polygon(polygon_coords=None, move_coords=None, limit_x=None, limit_y=None):
    """
    Generate coordinate pairs in a list by copying a polygon list of coordinates by a given offset

    :param polygon_coords: a list of coordinate pairs
    :param move_coords: a coordinate pair that holds offset values for the x and y directions
    :param limit_x: a value that represents the maximum x value
    :param limit_y: a value that represents the maximum y value
    :returns: Updated coordinate pair list or False
    :raises TypeError: none
    """
    if polygon_coords and move_coords:
        # print("Initial first point: ", polygon_coords[0], end=" ")
        new_polygon_coords = []
        for polygon_coord_pair in polygon_coords:
            new_x = polygon_coord_pair[0] + move_coords[0]
            new_y = polygon_coord_pair[1] + move_coords[1]

            if new_x < 0:
                new_x = 0
            if limit_x is not None and new_x > limit_x:
                new_x = limit_x

            if new_y < 0:
                new_y = 0
            if limit_y is not None and new_y > limit_y:
                new_y = limit_y

            new_polygon_coords.append([new_x, new_y])
        # print("Original first point: ", polygon_coords[0], end=" ")
        # print("Move Vector: ", move_coords, end=" ")
        # print("Updated first point: ", new_polygon_coords[0])
        # print(new_polygon_coords)
        return new_polygon_coords
    else:
        return False