def find_rivals_and_build_action_message(game_state) -> tuple[str, list[str], list]:
    """
    Helper function used to build message for current player when there is a need to choose target for played card.
    :param game_state: GameState object with all game data inside
    :return: tuple with string message to be shown to player, list of possible actions and list of rivals
    """
    shelter = game_state.active_player
    rivals, possible_actions = [], []
    choice_message = ''
    for rival in game_state.players_still_in_game:
        if rival != shelter and not rival.defeated:
            rivals.append(rival)
    for index, rival in enumerate(rivals):
        choice_message += f'[{index}]: "{rival.name}" shelter\n'
        possible_actions.append(str(index))
    choice_message += '>'
    return choice_message, possible_actions, rivals