From efdf50a55a32c18c3563b883563f271531a6c38b Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 14 May 2023 01:50:19 +0200 Subject: Implemented a basic extraction loop --- main.js | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100755 main.js (limited to 'main.js') diff --git a/main.js b/main.js new file mode 100755 index 0000000..6be7931 --- /dev/null +++ b/main.js @@ -0,0 +1,84 @@ +import * as agent from './lib/agent.js'; +import * as api from './lib/api.js'; +import * as ships from './lib/ships.js'; + +function usage() { + console.log(`contracts\t\t\tList all of your contracts. +extract [ship] [good]\t\tExtracts a good from the asteroid field the ship is orbiting and sell locally the unwanted ores until cargo is full +init [symbol] [faction] [token]\tinits the database in case we have an already registered game +my-agent\t\t\tFetch your agent's details. +register [symbol] [faction]\tRegisters your agent then inits the database +ships\t\t\tRetrieve all of your ships.`); +} + +switch(process.argv[2]) { +case 'contracts': + api.send({ endpoint: '/my/contracts'}); + break; +case 'extract': + if (process.argv[3] !== undefined && process.argv[4] !== undefined) { + agent.extract({ship: process.argv[3], good: process.argv[4]}); + } else { + usage(); + } + break; +case 'init': + if (process.argv[3] !== undefined && process.argv[4] !== undefined && process.argv[5] !== undefined) { + agent.init(process.argv[3], process.argv[4], process.argv[5]); + } else { + usage(); + } + break; +case 'my-agent': + api.send({endpoint: '/my/agent'}); + break; +case 'register': + if (process.argv[3] !== undefined && process.argv[4] !== undefined) { + agent.register(process.argv[3], process.argv[4]); + } else { + usage(); + } + break; +case 'ships': + api.send({endpoint: '/my/ships'}); + break; +default: + // wip and manual actions + switch(process.argv[2]) { + case 'contract-accept': + api.send({endpoint: `/my/contracts/${process.argv[3]}/accept`, method: 'POST'}); + break; + case 'dock': + ships.dock({ship: process.argv[3]}); + break; + case 'market': + api.send({endpoint: `/systems/${process.argv[3]}/waypoints/${process.argv[4]}/market`}); + break; + case 'navigate': + ships.navigate({ship: process.argv[3], waypoint: process.argv[4]}); + break; + case 'orbit': + ships.orbit({ship: process.argv[3]}); + break; + case 'purchase': + api.send({endpoint: '/my/ships', method: 'POST', payload: { + shipType: 'SHIP_MINING_DRONE', + waypointSymbol: process.argv[3], + }}); + break; + case 'refuel': + ships.refuel({ship: process.argv[3]}); + break; + case 'sell': + ships.sell({ship: process.argv[3], good: process.argv[4], units: process.argv[5]}); + break; + case 'shipyard': + api.send({endpoint: `/systems/${process.argv[3]}/waypoints/${process.argv[4]}/shipyard`}); + break; + case 'waypoints': + api.send({endpoint: `/systems/${process.argv[3]}/waypoints?limit=20&page=1`}); + break; + default: + usage(); + } +} -- cgit v1.2.3