The3vilM0nk3y

hud.js

May 6th, 2022
1,132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let doLog = true;
  2. let logLevel = 1;
  3. //-----GUI SETTINGS-----//
  4.  
  5. let doGUI = true;
  6. let showKarma = true;
  7. let showKillCount = true;
  8. let showScriptIncome = true;
  9. let showScriptExp = true;
  10. let showHacknetIncome = true;
  11. let showFactions = true;
  12.  
  13. const doc = globalThis['document'];
  14. const hook0 = doc.getElementById('overview-extra-hook-0');
  15. const hook1 = doc.getElementById('overview-extra-hook-1');
  16. /** @param {NS} ns */
  17. async function updateGUI(ns) {
  18.     try {
  19.         let headers = ["--"];
  20.         let values = ["--"];
  21.         let player = ns.getPlayer();
  22.         if (showKarma) {
  23.             headers.push("Karma");
  24.             values.push(ns.heart.break().toPrecision(5));
  25.         }
  26.         if (showKillCount) {
  27.             headers.push("Kills");
  28.             values.push(player.numPeopleKilled);
  29.         }
  30.         if (showScriptIncome) {
  31.             let income = ns.getScriptIncome();
  32.             headers.push("Script $");
  33.             values.push(ns.nFormat(income[1], "(0.00 a)") + "/s");
  34.         }
  35.         if (showScriptExp) {
  36.             let exp = ns.getScriptExpGain();
  37.             headers.push("Script EXP");
  38.             values.push(ns.nFormat(exp, "(0.00 a)") + "/s");
  39.         }
  40.         headers.push("--");
  41.         values.push("--");
  42.         if (showFactions){
  43.             for (let faction of player.factions){
  44.                 headers.push(faction);
  45.                 values.push(ns.nFormat(ns.singularity.getFactionRep(faction),"(0.00 a)"));
  46.                 //values.push(" ");
  47.             }
  48.         }
  49.        
  50.         /*if (showHacknetIncome) {
  51.             let hnIncome = 0;
  52.             for (let i = 0; i < ns.hacknet.numNodes(); i++) {
  53.                 hnIncome += ns.hacknet.getNodeStats(i).production;
  54.             }
  55.             headers.push("Hacknet $  ");
  56.             values.push(ns.nFormat(hnIncome, "(0.00 a)") + "/s");
  57.         }*/
  58.         headers.push("--");
  59.         values.push("--");
  60.         let data = columnizeOverview(ns, [headers, values], 0);
  61.         headers = data[0];
  62.         values = data[1];
  63.         hook0.innerText = headers.join(" \n");
  64.         hook1.innerText = values.join(" \n");
  65.  
  66.     } catch (err) {
  67.         ns.print("Error updating the GUI! - " + String(err));
  68.     }
  69.  
  70. }
  71. export function columnizeOverview(ns, array, spacing) {
  72.     let cols = array[0].length;
  73.     let longest = [0, 0];
  74.     for (let columnNum = 0; columnNum < array.length; columnNum++) {
  75.         //look for the longest string in each column
  76.         let s = array[columnNum];
  77.         for (let i = 0; i < s.length; i++) {
  78.             let entryLength = s[i].toString().length;
  79.             if (entryLength > longest[columnNum]) longest[columnNum] = entryLength;
  80.         }
  81.     }
  82.     //ns.tprint(longest);
  83.     for (let columnNum = 0; columnNum < array.length; columnNum++) {
  84.         for (let i = 0; i < cols; i++) {
  85.             array[columnNum][i] = array[columnNum][i].toString();
  86.             if (array[columnNum][i] == "--") {
  87.                 array[columnNum][i] = "";
  88.                 for (let p = 0; p < longest[columnNum] + spacing + 1; p++) {
  89.                     array[columnNum][i] += "-";
  90.                 }
  91.             } else if (columnNum == 0) {
  92.                 //add padding and spacing if not last column
  93.                 let padding = longest[columnNum] - array[columnNum][i].length;
  94.                 //ns.tprint("Padding for [" + columnNum + "," + i + "] - " + padding);
  95.                 for (let p = 0; p < padding + spacing; p++) {
  96.                     array[columnNum][i] += "-";
  97.                 }
  98.                 array[columnNum][i] += "|";
  99.             } else {
  100.                 //add an extra space to the beggining of the longest entry in the last column
  101.                 if (array[columnNum][i].length == longest[columnNum]) {
  102.                     array[columnNum][i] = " " + array[columnNum][i];
  103.                 }
  104.             }
  105.         }
  106.     }
  107.     return array;
  108. }
  109. /** @param {NS} ns */
  110. export async function main(ns) {
  111.     while (true) {
  112.     await updateGUI(ns);
  113.     await ns.sleep(500);
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment