Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let doLog = true;
- let logLevel = 1;
- //-----GUI SETTINGS-----//
- let doGUI = true;
- let showKarma = true;
- let showKillCount = true;
- let showScriptIncome = true;
- let showScriptExp = true;
- let showHacknetIncome = true;
- let showFactions = true;
- const doc = globalThis['document'];
- const hook0 = doc.getElementById('overview-extra-hook-0');
- const hook1 = doc.getElementById('overview-extra-hook-1');
- /** @param {NS} ns */
- async function updateGUI(ns) {
- try {
- let headers = ["--"];
- let values = ["--"];
- let player = ns.getPlayer();
- if (showKarma) {
- headers.push("Karma");
- values.push(ns.heart.break().toPrecision(5));
- }
- if (showKillCount) {
- headers.push("Kills");
- values.push(player.numPeopleKilled);
- }
- if (showScriptIncome) {
- let income = ns.getScriptIncome();
- headers.push("Script $");
- values.push(ns.nFormat(income[1], "(0.00 a)") + "/s");
- }
- if (showScriptExp) {
- let exp = ns.getScriptExpGain();
- headers.push("Script EXP");
- values.push(ns.nFormat(exp, "(0.00 a)") + "/s");
- }
- headers.push("--");
- values.push("--");
- if (showFactions){
- for (let faction of player.factions){
- headers.push(faction);
- values.push(ns.nFormat(ns.singularity.getFactionRep(faction),"(0.00 a)"));
- //values.push(" ");
- }
- }
- /*if (showHacknetIncome) {
- let hnIncome = 0;
- for (let i = 0; i < ns.hacknet.numNodes(); i++) {
- hnIncome += ns.hacknet.getNodeStats(i).production;
- }
- headers.push("Hacknet $ ");
- values.push(ns.nFormat(hnIncome, "(0.00 a)") + "/s");
- }*/
- headers.push("--");
- values.push("--");
- let data = columnizeOverview(ns, [headers, values], 0);
- headers = data[0];
- values = data[1];
- hook0.innerText = headers.join(" \n");
- hook1.innerText = values.join(" \n");
- } catch (err) {
- ns.print("Error updating the GUI! - " + String(err));
- }
- }
- export function columnizeOverview(ns, array, spacing) {
- let cols = array[0].length;
- let longest = [0, 0];
- for (let columnNum = 0; columnNum < array.length; columnNum++) {
- //look for the longest string in each column
- let s = array[columnNum];
- for (let i = 0; i < s.length; i++) {
- let entryLength = s[i].toString().length;
- if (entryLength > longest[columnNum]) longest[columnNum] = entryLength;
- }
- }
- //ns.tprint(longest);
- for (let columnNum = 0; columnNum < array.length; columnNum++) {
- for (let i = 0; i < cols; i++) {
- array[columnNum][i] = array[columnNum][i].toString();
- if (array[columnNum][i] == "--") {
- array[columnNum][i] = "";
- for (let p = 0; p < longest[columnNum] + spacing + 1; p++) {
- array[columnNum][i] += "-";
- }
- } else if (columnNum == 0) {
- //add padding and spacing if not last column
- let padding = longest[columnNum] - array[columnNum][i].length;
- //ns.tprint("Padding for [" + columnNum + "," + i + "] - " + padding);
- for (let p = 0; p < padding + spacing; p++) {
- array[columnNum][i] += "-";
- }
- array[columnNum][i] += "|";
- } else {
- //add an extra space to the beggining of the longest entry in the last column
- if (array[columnNum][i].length == longest[columnNum]) {
- array[columnNum][i] = " " + array[columnNum][i];
- }
- }
- }
- }
- return array;
- }
- /** @param {NS} ns */
- export async function main(ns) {
- while (true) {
- await updateGUI(ns);
- await ns.sleep(500);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment