import { listPurchasedServers, getSetting } from "myLibrary.js"; // Custom color coding. const cCyan = "\u001b[36m"; const cGreen = "\u001b[32m"; const cRed = "\u001b[31m"; const cReset = "\u001b[0m"; /** @param {NS} ns */ export async function main(ns) { ns.disableLog("ALL"); //host and script info const sThisRunner = ns.getHostname(); //open log for this script ns.tail(ns.pid, sThisRunner); //const npServ = ["pserv-0", "pserv-1", "pserv-2", "pserv-3", "pserv-4", "pserv-5", "pserv-6", "pserv-7", "pserv-8", "pserv-9", "pserv-10", "pserv-11", "pserv-12", "pserv-13", "pserv-14", "pserv-15", "pserv-16", "pserv-17", "pserv-18", "pserv-19", "pserv-20", "pserv-21", "pserv-22", "pserv-23", "pserv-24"]; const npServ = listPurchasedServers(ns); let nCurrentRAM = 4; let nMyMoney = ns.getServerMoneyAvailable("home"); let bAutoUpgrade = getSetting(ns, "autoUpgrades"); while (bAutoUpgrade && nCurrentRAM < 2 ** 20) { //for (let i = 0; i < npServ.length; i++) { for (let i = 0; i < 1 && bAutoUpgrade; i++) { ns.print("----------------------------------------------------------------------"); nMyMoney = ns.getServerMoneyAvailable("home"); let nNextRAM = nCurrentRAM * 2; let nUpgradeCost = ns.getPurchasedServerUpgradeCost(npServ[i], nNextRAM); ns.print("npServ = " + npServ[i]); ns.print("nMyMoney = " + Math.ceil(nMyMoney).toLocaleString()); ns.print("nCurrentRAM = " + nCurrentRAM.toLocaleString()); ns.print("nNextRAM = " + nNextRAM); ns.print("nUpgradeCost = " + Math.ceil(nUpgradeCost).toLocaleString()); while (bAutoUpgrade && nMyMoney < nUpgradeCost) { ns.print("Money Treshold = " + Math.ceil(nMyMoney).toLocaleString() + " / " + Math.ceil(nUpgradeCost).toLocaleString()); await ns.sleep(1000); bAutoUpgrade = getSetting(ns, "autoUpgrades"); if (bAutoUpgrade === false) { return; } nMyMoney = ns.getServerMoneyAvailable("home"); } if (ns.upgradePurchasedServer(npServ[i], nNextRAM)) { ns.print("Server: " + npServ[i] + " upgraded to: " + nNextRAM + "GB"); ns.tprint(cCyan + "Server: " + npServ[i] + " upgraded to: " + nNextRAM.toLocaleString() + " GB" + cReset); ns.toast("Server: " + npServ[i] + " upgraded to: " + nNextRAM.toLocaleString() + " GB", "info", 10000); } else { ns.print("Server: " + npServ[i] + " could not be upgraded to : " + nNextRAM + "GB it is currently at: " + ns.getServerMaxRam(npServ[i]) + "GB"); } bAutoUpgrade = getSetting(ns, "autoUpgrades"); if (bAutoUpgrade === false) { return; } } nCurrentRAM *= 2; } ns.print("----------------------------------------------------------------------"); }