1
0
Fork 0

[node] send probes to visit all markets

This commit is contained in:
Julien Dessaux 2024-05-24 00:29:04 +02:00
parent 3306159369
commit d0f6c4343e
Signed by: adyxax
GPG key ID: F92E51B86E07177E
2 changed files with 60 additions and 30 deletions

View file

@ -3,7 +3,7 @@ import {
} from './api.ts';
import { PriorityQueue } from './priority_queue.ts';
import { getShips } from './ships.ts';
import { market } from './systems.ts';
import { market, trait } from './systems.ts';
import {
Cargo,
CargoManifest,
@ -25,6 +25,19 @@ type Price = {
price: number;
};
export async function are_we_done_visiting_all_markets(): Promise<boolean> {
const marketplaceWaypoints = await trait(getShips()[0].nav.systemSymbol, 'MARKETPLACE');
let done = true;
for (const w of marketplaceWaypoints) {
const marketplaceData = await market(w);
if (marketplaceData.tradeGoods !== undefined) continue;
if (is_there_a_ship_at_this_waypoint(w)) continue;
done = false;
break;
}
return done;
}
// cargo is a ship.cargo object, want is an optional symbol
export function categorizeCargo(cargo: Cargo, want?: string): CategorizedCargo {
const wanted = cargo.inventory.filter(i => i.symbol === want || i.symbol === 'ANTIMATTER');