sleepy time update
This commit is contained in:
70
Mizzajl/home/ManagePserv.js
Normal file
70
Mizzajl/home/ManagePserv.js
Normal file
@@ -0,0 +1,70 @@
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
ns.tail();
|
||||
let aPserv = ns.getPurchasedServers(); //array of purchased servers
|
||||
let nPserv = aPserv.length; //amount of purchased servers we have
|
||||
let nMoney = ns.getServerMoneyAvailable("home"); //player money
|
||||
let nPrevSize = 4; //nPrevSize is 4 so the first server we will buy is 8
|
||||
|
||||
|
||||
//Purchase Servers
|
||||
//idea is to purchase the first server at 8 gb, next one at 16, next at 32 and so on
|
||||
|
||||
for (let i = 0; nPserv < i; i++) {
|
||||
nMoney = ns.getServerMoneyAvailable("home"); //check money for each iteration
|
||||
if (nMoney >= ns.getPurchasedServerCost(nPrevSize * 2)) { //can we afford next server?
|
||||
const sServer = ns.purchaseServer(`pserv-${toString(i).padStart(2, "0")}`, nPrevSize * 2); //purchase server with name pserv- + 0i
|
||||
ns.print(`Purchased ${sServer} for ${nPrevSize * 2}`); //print tail message that we purchased server
|
||||
nPrevSize *= 2; //increase nPrevSize for next iteration
|
||||
nPserv++ //increase number of purchased servers
|
||||
}
|
||||
else {
|
||||
ns.print(`Insufficient funds for pserv-${toString(i).padStart(2, "0")} ${nMoney} / ${ns.getPurchasedServerCost(nPrevSize * 2)}`);
|
||||
await ns.sleep(5000);
|
||||
}
|
||||
}
|
||||
ns.tprint("for loop purchase complete");
|
||||
|
||||
|
||||
//upgrade servers
|
||||
//idea is to upgrade the lowest server to match the highest (which should be 2^20 in size)
|
||||
|
||||
let nCurrentRAM;
|
||||
let nLowestRAM = 2 ** 21;
|
||||
let nHighestRAM = 0;
|
||||
let sLowestPserv;
|
||||
let sHighestPserv;
|
||||
let nTotalPServRAM = 0;
|
||||
|
||||
for (let i = 0; i < nPserv; i++) {
|
||||
nCurrentRAM = ns.getServerMaxRam(aPserv[i]);
|
||||
|
||||
nTotalPServRAM += nCurrentRAM;
|
||||
|
||||
if (nCurrentRAM < nLowestRAM) {
|
||||
nLowestRAM = nCurrentRAM
|
||||
sLowestPserv = aPservers[i];
|
||||
}
|
||||
|
||||
if (nCurrentRAM > nHighestRAM) {
|
||||
nHighestRAM = nCurrentRAM
|
||||
sHighestPserv = aPserv[i];
|
||||
}
|
||||
}
|
||||
|
||||
//sLowestPserv should now be the lowest server
|
||||
//sHighestPserv should now be the highest server
|
||||
|
||||
for (let i = 0; sLowestPserv < sHighestPserv ; i++) {
|
||||
if (nMoney >= ns.getPurchasedServerUpgradeCost(sLowestPserv, 2^20)){
|
||||
ns.upgradePurchasedServer(sLowestPserv, 2^20);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user