/** @param {NS} ns */ export async function main(ns) { const sNode = ns.args[0]; // target server //logs ns.disableLog("getServerSecurityLevel"); ns.disableLog("getServerMoneyAvailable"); //server info const nMinSec = ns.getServerMinSecurityLevel(sNode); const nMaxCash = ns.getServerMaxMoney(sNode); while (true) { //timestamp let currentDate = new Date(); let ntimeStamp = currentDate.toLocaleTimeString('sw-SV') + " -"; const nCurrSec = ns.getServerSecurityLevel(sNode); const nCurrCash = ns.getServerMoneyAvailable(sNode); ns.print(ntimeStamp + "---------------------------------------------------------------"); ns.print("Cash: " + (Math.floor(nCurrCash * 1000) / 1000) + " / " + nMaxCash); ns.print("Security: " + (Math.floor(nCurrSec * 1000) / 1000) + " / " + nMinSec); if (nCurrSec > (nMinSec + 1)) { //Calculate estimate time of completion let nOffset = ns.getWeakenTime(sNode); let nWeakTime = new Date(currentDate.getTime() + nOffset); let sWeakTime = nWeakTime.toLocaleTimeString('sw-SV'); //Print estimated time of completion ns.print("Weakening " + sNode + " Estimated complete at " + sWeakTime); //run weaken await ns.weaken(sNode); //ns.spawn(sWeakenScript, {threads: 1, spawnDelay: 0}); ns.print("-------------------------------------------------------------------------"); } else if (nCurrCash < (nMaxCash * 0.9)) { //Calculate estimate time of completion let nOffset = ns.getGrowTime(sNode); let nGrowTime = new Date(currentDate.getTime() + nOffset); let sGrowTime = nGrowTime.toLocaleTimeString('sw-SV'); //Print estimated time of completion ns.print("Growing " + sNode + " Estimated complete at " + sGrowTime); //run grow await ns.grow(sNode); ns.print("-------------------------------------------------------------------------"); } else { //Calculate estimate time of completion let nOffset = ns.getHackTime(sNode); let nHackTime = new Date(currentDate.getTime() + nOffset); let sHackTime = nHackTime.toLocaleTimeString('sw-SV'); //Print estimated time of completion ns.print("Hacking " + sNode + " Estimated complete at " + sHackTime); //run hack await ns.hack(sNode); //await ns.singularity.manualHack(); ns.print("-------------------------------------------------------------------------"); } } }