Files

66 lines
2.7 KiB
JavaScript

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 < npServ.length && 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("----------------------------------------------------------------------");
}