omuretsu

deepestScan.ns (Updated for Bitburner 1.2.0)

May 10th, 2021 (edited)
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let doc=eval("document"),
  2.     f=["CSEC","avmnite-02h","I.I.I.I","run4theh111z","w0r1d_d43m0n"],
  3.     css=`<style id="scanCSS">.sc{white-space:pre;color:#ccc;font:14px monospace;}.sc .s{color:#080;cursor:pointer;text-decoration:underline}.sc .f{color:#088}.sc .r{color:#6f3}.sc .r.f{color:#0ff}.sc .s::before{content:"◉";color:red}.sc .r::before{color:#6f3}</style>`,
  4.     tprint=html=>doc.getElementById("terminal").insertAdjacentHTML('beforeend',`<li>${html}</li>`);
  5. export let main=ns=>{
  6.     doc.head.insertAdjacentHTML('beforeend',doc.getElementById("scanCSS")?"":css);
  7.     let s=["home"],p=[""],r={home:"home"},
  8.         fName=x=>`<a class="s${f.includes(x)?" f":""}${ns.hasRootAccess(x)?" r":""}">${x}</a>`;
  9.     let tcommand=x=>{
  10.         let tIn=doc.getElementById("terminal-input");
  11.         tIn.value=x;
  12.         tIn[Object.keys(tIn)[1]].onChange({target:tIn});
  13.         tIn[Object.keys(tIn)[1]].onKeyDown({keyCode:13,preventDefault:()=>0});
  14.     };
  15.    
  16.     let addSc=(x=s[0],p1=["\n"],o=p1.join("")+fName(x))=>{
  17.         for (let i=0;i<s.length;i++){
  18.             if (p[i]!=x) continue;
  19.             let p2=p1.slice();
  20.             p2[p2.length-1]=p2[p2.push(p.slice(i+1).includes(p[i])?"├>":"└>")-2].replace("├>","│ ").replace("└>","  ");
  21.             o+=addSc(s[i],p2);
  22.         }
  23.         return o;
  24.     };
  25.     for (let i=0,j;i<s.length;i++)for(j of ns.scan(s[i]))if(!s.includes(j))s.push(j),p.push(s[i]),r[j]=r[s[i]]+";connect "+j;
  26.     tprint(`<div class="sc new">${addSc()}</div>`);
  27.     doc.querySelectorAll(".sc.new .s").forEach(q=>q.addEventListener('click',tcommand.bind(null,r[q.childNodes[0].nodeValue])));
  28.     doc.querySelector(".sc.new").classList.remove("new");
  29. };
Add Comment
Please, Sign In to add comment