-
Notifications
You must be signed in to change notification settings - Fork 0
/
Preparer.js
49 lines (43 loc) · 974 Bytes
/
Preparer.js
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
/** @param {NS} ns */
/*
Our only job is to prepare a server for hacking by weakening and growing it
before sending a message to the master server. Args can skip preparation and
only message the master server.
args:
[0] - Skip preparation?
RAM Usage: 2.35GB
*/
export async function main(ns)
{
let skipPreparation = false;
if (ns.args[0] != null)
{
skipPreparation = ns.args[0];
}
if (!skipPreparation)
{
let ready = false;
let hostname = ns.getHostname();
while (!ready)
{
if (ns.getServerSecurityLevel(hostname) > ns.getServerMinSecurityLevel(hostname))
{
await ns.weaken(hostname);
}
else if (ns.getServerMoneyAvailable(hostname) < ns.getServerMaxMoney(hostname))
{
await ns.grow(hostname);
}
else
{
ready = true;
}
}
}
// Send message to master server
let message = [];
message.hostname = ns.getHostname();
message.scriptname = "Preparer.js";
message.type = "Prepared";
ns.tryWritePort(1, message);
}