summaryrefslogtreecommitdiff
path: root/main.js
blob: e19a059700eff08ddef26a7be95903d44ea4beca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import * as agent from './lib/agent.js';
import * as api from './lib/api.js';
import * as ships from './lib/ships.js';
import * as systems from './lib/systems.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 'asteroids':
		api.debugLog(await systems.type({symbol: process.argv[3], type: 'ASTEROID_FIELD'}));
		break;
	case 'shipyards':
		api.debugLog(await systems.trait({symbol: process.argv[3], trait: 'SHIPYARD'}));
		break;
	default:
		usage();
	}
}