def can_travel_to_system(fleet_id: int, start: TargetSystem, target: TargetSystem, ensure_return: bool = False) -> List[TargetSystem]: """ Return list systems to be visited. """ if start == target: return [TargetSystem(start.id)] debug("Requesting path for fleet %s from %s to %s" % (fo.getUniverse().getFleet(fleet_id), start, target)) target_distance_from_supply = -min(get_system_supply(target.id), 0) # low-aggression AIs may not travel far from supply if not get_aistate().character.may_travel_beyond_supply( target_distance_from_supply): debug("May not move %d out of supply" % target_distance_from_supply) return [] min_fuel_at_target = target_distance_from_supply if ensure_return else 0 path_info = pathfinding.find_path_with_resupply( start.id, target.id, fleet_id, minimum_fuel_at_target=min_fuel_at_target) if path_info is None: debug("Found no valid path.") return [] debug("Found valid path: %s" % str(path_info)) return [TargetSystem(sys_id) for sys_id in path_info.path]
def can_travel_to_system(fleet_id, start, target, ensure_return=False): """ Return list systems to be visited. :param fleet_id: :type fleet_id: int :param start: :type start: target.TargetSystem :param target: :type target: target.TargetSystem :param ensure_return: :type ensure_return: bool :return: :rtype: list """ if start == target: return [TargetSystem(start.id)] debug("Requesting path for fleet %s from %s to %s" % (fo.getUniverse().getFleet(fleet_id), start, target)) target_distance_from_supply = -min(state.get_system_supply(target.id), 0) # low-aggression AIs may not travel far from supply if not get_aistate().character.may_travel_beyond_supply(target_distance_from_supply): debug("May not move %d out of supply" % target_distance_from_supply) return [] min_fuel_at_target = target_distance_from_supply if ensure_return else 0 path_info = pathfinding.find_path_with_resupply(start.id, target.id, fleet_id, minimum_fuel_at_target=min_fuel_at_target) if path_info is None: debug("Found no valid path.") return [] debug("Found valid path: %s" % str(path_info)) return [TargetSystem(sys_id) for sys_id in path_info.path]
def can_travel_to_system(fleet_id, start, target, ensure_return=False): """ Return list systems to be visited. :param fleet_id: :type fleet_id: int :param start: :type start: universe_object.System :param target: :type target: universe_object.System :param ensure_return: :type ensure_return: bool :return: :rtype: list """ if start == target: return [universe_object.System(start.id)] debug("Requesting path for fleet %s from %s to %s" % (fo.getUniverse().getFleet(fleet_id), start, target)) target_distance_from_supply = -min(state.get_system_supply(target.id), 0) # low-aggression AIs may not travel far from supply if not foAI.foAIstate.character.may_travel_beyond_supply( target_distance_from_supply): debug("May not move %d out of supply" % target_distance_from_supply) return [] min_fuel_at_target = target_distance_from_supply if ensure_return else 0 path_info = pathfinding.find_path_with_resupply( start.id, target.id, fleet_id, minimum_fuel_at_target=min_fuel_at_target) if path_info is None: debug("Found no valid path.") return [] debug("Found valid path: %s" % str(path_info)) return [universe_object.System(sys_id) for sys_id in path_info.path]