/** @param {import(".").NS } ns */ export async function main(ns) { ns.disableLog('ALL'); let excludeServers = ['home']; for (let index = 0; index < 25; index++) { excludeServers.push(`home-${index}`); } excludeServers.push('CSEC'); excludeServers.push('avmnite-02h'); async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) { if (depth <= maxDepth) { let availableServers = ns.scan(currentServer); for (let i = 0; i < availableServers.length; ++i) { let nextServer = availableServers[i]; if (nextServer != currentServer && nextServer != previousServer) { if (excludeServers.indexOf(nextServer) == -1 && ns.scriptRunning('simple-hack.js', nextServer)) { let maxMoney = ns.getServerMaxMoney(nextServer); let currentMoney = ns.getServerMoneyAvailable(nextServer); if (currentMoney < 0.2 * maxMoney) { await ns.grow(nextServer); } } await scanServer(nextServer, maxDepth, depth + 1, currentServer); } } } await ns.sleep(10); } let runDepth = ns.args.length ? ns.args[0] : 1; while (true) { ns.print(`Running scan depth: ${runDepth}`); await scanServer('home', runDepth); } }