def all_comics_for_series(series_obj):
    """
    Get all published or announced comics for a series.

    :param series_obj: :class:`marvelous.Series` instance
    :return: `list` of :class:`marvelous.Comic` instances
    """
    limit = 100
    offset = 0
    total = None
    comics = []
    fetches = 0

    while total is None or offset < total:
        print(f'Fetching {limit} comics from {offset} offset, out of {total}')
        response = series_obj.comics({
            'format': 'comic',
            'formatType': 'comic',
            'noVariants': True,
            'limit': limit,
            'offset': offset,
            'orderBy': 'issueNumber'
        })
        comics += response.comics
        total = response.response['data']['total']
        offset += limit
        fetches += 1

        # Just a safety break. No comic has more than 1k issues
        if fetches > 10:
            break

    return comics