Files
BitburnerOLD/money-stats.js
T
2023-09-09 02:05:43 +02:00

46 lines
1.9 KiB
JavaScript

/** @param {import(".").NS } ns */
export async function main(ns) {
// ns.disableLog('ALL');
const doc = eval('document');
function numberToUnits(number) {
let numberString = Math.floor(number);
if (Math.abs(number) / 1000 >= 1) {
numberString = Math.floor(number / 1000) + 'k';
}
if (Math.abs(number) / 1000000 >= 1) {
numberString = Math.floor(number / 1000000) + 'm';
}
if (Math.abs(number) / 1000000000 >= 1) {
numberString = Math.floor(number / 1000000000) + 'b';
}
if (Math.abs(number) / 1000000000000 >= 1) {
numberString = Math.floor(number / 1000000000000) + 't';
}
return numberString;
}
let lastMoney = ns.getServerMoneyAvailable('home');
let lastTime = Date.now();
const firstMoney = ns.getServerMoneyAvailable('home');
const firstTime = Date.now();
while (true) {
const currentMoney = ns.getServerMoneyAvailable('home');
const moneyDiff = currentMoney - lastMoney;
const currentTime = Date.now();
const timeDiff = (currentTime - lastTime) / 1000;
const moneyPerSecond = moneyDiff / timeDiff;
const moneyDiffLife = currentMoney - firstMoney;
const timeDiffLife = (currentTime - firstTime) / 1000;
const moneyPerSecondLife = moneyDiffLife / timeDiffLife;
const moneyString = `${numberToUnits(Math.floor(moneyPerSecond))} | ${numberToUnits(Math.floor(moneyPerSecondLife))} $/s`;
ns.print(`${lastMoney} ${currentMoney} ${moneyDiff} ${numberToUnits(Math.floor(moneyPerSecondLife)) }\n ${currentTime} ${currentTime} ${timeDiff}`);
doc.querySelector("#root > div.react-draggable > div.drag.MuiBox-root > div > p").innerText = moneyString;
ns.write('moneyStats.txt', moneyString+'\n', 'a');
lastMoney = currentMoney;
lastTime = currentTime;
await ns.sleep(5000);
}
}