71 lines
2.4 KiB
JavaScript
71 lines
2.4 KiB
JavaScript
/** @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.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("-------------------------------------------------------------------------");
|
|
}
|
|
}
|
|
} |