From 719a9c1a77733040de8e1c4256b92111dcc53c13 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Fri, 29 Mar 2024 00:24:51 +0100 Subject: [node] fixed mining and selling loop issues --- nodejs/automation/contracting.ts | 8 +++++--- nodejs/automation/mining.ts | 7 ++----- nodejs/automation/selling.ts | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) (limited to 'nodejs/automation') diff --git a/nodejs/automation/contracting.ts b/nodejs/automation/contracting.ts index 344672a..ab3c606 100644 --- a/nodejs/automation/contracting.ts +++ b/nodejs/automation/contracting.ts @@ -58,9 +58,11 @@ async function runProcurement(contract: Contract, ships: Array) { await libShips.navigate(ship, asteroidSymbol); break; default: - // we were either selling or started contracting - await selling.sell(ship, wantedCargo); - await libShips.navigate(ship, asteroidSymbol); + if (libShips.isFull(ship)) { + await selling.sell(ship, wantedCargo); + } else { + await libShips.navigate(ship, asteroidSymbol); + } } } // TODO repurpose the ship diff --git a/nodejs/automation/mining.ts b/nodejs/automation/mining.ts index e1230fd..b9db7d4 100644 --- a/nodejs/automation/mining.ts +++ b/nodejs/automation/mining.ts @@ -20,12 +20,9 @@ export async function mineUntilFullOf(good: string, ship: Ship, asteroidSymbol: } } -// example ctx { symbol: 'ADYXAX-2' } -// extract the ship's cargo contents when more than 80% full then returns the ships cargo object async function mineUntilFull(ship: Ship): Promise { - ship = dbShips.getShip(ship.symbol) as Ship; - while (ship.cargo.units <= ship.cargo.capacity * 0.9) { - ship.cargo = await libShips.extract(ship); + while (!libShips.isFull(ship)) { + await libShips.extract(ship); } } diff --git a/nodejs/automation/selling.ts b/nodejs/automation/selling.ts index 987b8ae..04b0e9d 100644 --- a/nodejs/automation/selling.ts +++ b/nodejs/automation/selling.ts @@ -19,10 +19,10 @@ export async function sell(ship: Ship, good: string): Promise { // can we sell anything here? const goods = whatCanBeTradedAt(cargo.goods, market.imports.concat(market.exchange)); for (let i = 0; i < goods.length; i++) { - const symbol = goods[i].symbol; - await libShips.sell(ship, good); + await libShips.sell(ship, goods[i].symbol); }; // are we done selling everything we can? + ship = dbShips.getShip(ship.symbol); cargo = utils.categorizeCargo(ship.cargo, good); if (Object.keys(cargo.goods).length === 0) { return ship; -- cgit v1.2.3