41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
/** @param {NS} ns **/
|
|
export async function main(ns) {
|
|
function myMoney() {
|
|
return ns.getServerMoneyAvailable("home");
|
|
}
|
|
//this script is designed to manage the hacknet nodes
|
|
//to prevent excess spending i've limited it from spending
|
|
//more than half the players money
|
|
var nodes = 0;
|
|
var ref = 0;
|
|
ns.disableLog("ALL");
|
|
while (true) {
|
|
//sleep for second to prevent the loop from crashing the game
|
|
await ns.sleep(50);
|
|
//buy a node if we have more than twice the money needed
|
|
if (ns.hacknet.getPurchaseNodeCost() < myMoney() / 10) {
|
|
ref = ns.hacknet.purchaseNode();
|
|
ns.print("bought node hn-" + ref);
|
|
}
|
|
nodes = ns.hacknet.numNodes()
|
|
for (var i = 0; i < nodes; i++) {
|
|
//check if nodes level is a multiple of 10
|
|
var mod = ns.hacknet.getNodeStats(i).level % 10;
|
|
//buy level node to the nearest multiple of 10 if we have double the money needed
|
|
if (ns.hacknet.getLevelUpgradeCost(i, 10 - mod) < myMoney() / 10) {
|
|
ns.hacknet.upgradeLevel(i, 10 - mod);
|
|
ns.print("node hn-" + i + " leveled up");
|
|
}
|
|
//same for ram
|
|
if (ns.hacknet.getRamUpgradeCost(i) < myMoney() / 10) {
|
|
ns.hacknet.upgradeRam(i);
|
|
ns.print("node hn-" + i + " ram upgraded");
|
|
}
|
|
//and cores
|
|
if (ns.hacknet.getCoreUpgradeCost(i) < myMoney() / 10) {
|
|
ns.hacknet.upgradeCore(i);
|
|
ns.print("node hn-" + i + " core upgraded");
|
|
}
|
|
}
|
|
}
|
|
} |