from nullptr.analyzer import solve_tsp from random import randrange def assign_probe(c, s): system = s.location.system m = [m.waypoint for m in c.store.all_members(system, 'Marketplace')] m = solve_tsp(c, m) hops = [w.symbol for w in m] start_hop = randrange(0, len(hops)) s.log(f'Assigning {s} to probe {len(hops)} starting at {hops[start_hop]}') c.captain.init_mission(s, 'probe') c.captain.smipa(s, 'hops', hops) c.captain.smipa(s, 'next-hop', start_hop)