grow helpers

This commit is contained in:
2022-09-10 20:42:31 +02:00
parent b0abc2a614
commit 7b393a7ffc
12 changed files with 281 additions and 111 deletions
+30 -8
View File
@@ -4,12 +4,13 @@ export async function main(ns) {
ns.disableLog('ALL');
let nodeCostThreshold = ns.args.length > 0 ? ns.args[0] : 0.1;
let upgradeCostThreshold = ns.args.length > 1 ? ns.args[1] : 0.03;
let upgradeCostThreshold = ns.args.length > 1 ? ns.args[1] : 0.05;
let upgradeCount = ns.args.length > 2 ? ns.args[2] : 1;
let levelCap = 150;
let ramCap = 64;
let coreCap = 4;
ns.tprint(`Bot started {nodeCostThreshold: ${nodeCostThreshold}, upgradeCostThreshold: ${upgradeCostThreshold}, upgradeCount: ${upgradeCount}}`);
await ns.sleep(10000);
while (true) {
let currentMoney = ns.getServerMoneyAvailable("home");
let nodePurchaseCost = ns.hacknet.getPurchaseNodeCost();
@@ -22,22 +23,43 @@ export async function main(ns) {
}
for (let index = 0; index < nodeCount; ++index) {
if (ns.hacknet.getLevelUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
let nodeStats = ns.hacknet.getNodeStats(index);
if (nodeStats.level < levelCap && ns.hacknet.getLevelUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeLevel(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
if (ns.hacknet.getRamUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
if (nodeStats.ram < ramCap && ns.hacknet.getRamUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeRam(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
if (ns.hacknet.getCoreUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
if (nodeStats.cores < coreCap && ns.hacknet.getCoreUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeCore(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
}
let portData = ns.readPort(1);
if (portData != 'NULL PORT DATA') ns.write('hack-log.js', portData, 'a');
let serverCost = ns.getPurchasedServerCost(16);
if (serverCost < currentMoney) {
let newServer = ns.purchaseServer('home', 16);
if (newServer != '') {
ns.tprint(`Bought a server`);
ns.scp('grow-helper.js', newServer);
let execExitCode = ns.exec('grow-helper.js', newServer, 5, 20);
ns.tprint(`Exec 'grow-helper.js' exit code: ${execExitCode}`);
}
}
let logFiles = ['hack-log.js', 'nuke-log.js'];
for (let index = 0; index < logFiles.length; index++) {
const logFile = logFiles[index];
let portData = ns.readPort(index + 1);
if (portData != 'NULL PORT DATA') ns.write(logFile, portData, 'a');
}
await ns.sleep(10);
}