diff options
author | Julien Dessaux | 2023-06-02 00:00:09 +0200 |
---|---|---|
committer | Julien Dessaux | 2023-06-02 00:00:09 +0200 |
commit | 7008c91c6fb74f7106c4d9903849d3f1fc17b2f1 (patch) | |
tree | a180768c196025bb4b4e5b27c81a3e1a521bb40d /automation | |
parent | Another big refactoring (diff) | |
download | spacetraders-7008c91c6fb74f7106c4d9903849d3f1fc17b2f1.tar.gz spacetraders-7008c91c6fb74f7106c4d9903849d3f1fc17b2f1.tar.bz2 spacetraders-7008c91c6fb74f7106c4d9903849d3f1fc17b2f1.zip |
Improved ships lib with ships db caching
Diffstat (limited to '')
-rw-r--r-- | automation/automation.js | 2 | ||||
-rw-r--r-- | automation/contracting.js | 12 | ||||
-rw-r--r-- | automation/mining.js | 6 |
3 files changed, 10 insertions, 10 deletions
diff --git a/automation/automation.js b/automation/automation.js index c7fa6f7..3184c2f 100644 --- a/automation/automation.js +++ b/automation/automation.js @@ -21,6 +21,6 @@ export async function register(symbol, faction) { } dbConfig.registerAgent(json.data); exploration.init(); - // TODO ship + dbShips.setShip(json.data.ship); // TODO contract } diff --git a/automation/contracting.js b/automation/contracting.js index b5c7292..4eff9d5 100644 --- a/automation/contracting.js +++ b/automation/contracting.js @@ -5,7 +5,7 @@ import * as ships from '../lib/ships.js'; import * as systems from '../lib/systems.js'; export async function auto(ctx) { - let ship = await ships.ship({ship: ctx.ship}); + let ship = await ships.ship({symbol: ctx.ship}); // Fetch our contracts in the system the ship currently is in let cs = await contracts.contracts(); cs = cs.data.filter(c => c.terms.deliver[0].destinationSymbol.startsWith(ship.data.nav.systemSymbol)); @@ -20,7 +20,7 @@ export async function auto(ctx) { const asteroidFields = await systems.type({symbol: ship.data.nav.systemSymbol, type: 'ASTEROID_FIELD'}); const asteroidField = asteroidFields[0].symbol; while (true) { - ship = await ships.ship({ship: ctx.ship}); // TODO we should not need to fetch this + ship = await ships.ship({symbol: ctx.ship}); // TODO we should not need to fetch this // If we are in transit, we wait until we arrive const delay = new Date(ship.data.nav.route.arrival) - new Date(); if (delay > 0) await api.sleep(delay); @@ -31,16 +31,16 @@ export async function auto(ctx) { case asteroidField: let response = await mining.mineUntilFullOf({good: good, ship: ctx.ship}); //console.log(`${ctx.ship}'s cargo is full with ${response.units} of ${good}!`); - await ships.navigate({ship: ctx.ship, waypoint: deliveryPoint}); + await ships.navigate({symbol: ctx.ship, waypoint: deliveryPoint}); break; case deliveryPoint: await ships.dock({symbol: ctx.ship}); - await ships.refuel({ship: ctx.ship}); + await ships.refuel({symbol: ctx.ship}); console.log(`delivering ${goodCargo.units} of ${good}`); await contracts.deliver({contract: contract.id, ship: ctx.ship, good: good, units: goodCargo.units }); - await ships.navigate({ship: ctx.ship, waypoint: asteroidField}); + await ships.navigate({symbol: ctx.ship, waypoint: asteroidField}); await ships.dock({symbol: ctx.ship}); - await ships.refuel({ship: ctx.ship}); + await ships.refuel({symbol: ctx.ship}); await ships.orbit({symbol: ctx.ship}); break; default: diff --git a/automation/mining.js b/automation/mining.js index a719bff..113425b 100644 --- a/automation/mining.js +++ b/automation/mining.js @@ -6,7 +6,7 @@ import * as ships from '../lib/ships.js'; export async function mineUntilFullOf(ctx) { while(true) { let response = await mineUntilFull({ship: ctx.ship}); - if (response === null) response = await ships.ship({ship: ctx.ship}); // TODO we should not need to fetch this + if (response === null) response = await ships.ship({symbol: ctx.ship}); // TODO we should not need to fetch this let good = response.data.cargo.inventory.filter(i => i.symbol === ctx.good)[0]; const inventory = response.data.cargo.inventory.filter(i => i.symbol !== ctx.good); const antimatter = response.data.cargo.inventory.filter(i => i.symbol === 'ANTIMATTER')[0]; @@ -17,7 +17,7 @@ export async function mineUntilFullOf(ctx) { for (let i=0; i<inventory.length; ++i) { if (inventory[i].symbol === 'ANTIMATTER') continue; //console.log(`selling ${inventory[i].units} of ${inventory[i].symbol}`); - await ships.sell({ship: ctx.ship, good: inventory[i].symbol, units: inventory[i].units}); + await ships.sell({symbol: ctx.ship, good: inventory[i].symbol, units: inventory[i].units}); } await ships.orbit({symbol: ctx.ship}); } @@ -28,7 +28,7 @@ export async function mineUntilFullOf(ctx) { // returns the last ship's extract api response async function mineUntilFull(ctx) { while(true) { - const response = await ships.extract(ctx); + const response = await ships.extract({symbol: ctx.ship}); if (response === null) return null; //console.log(`${ctx.ship}: extracted ${response.data.extraction.yield.units} of ${response.data.extraction.yield.symbol}`); if (response.data.cargo.units >= response.data.cargo.capacity * 0.9) return response; |