Advertisement
Arinek

Batch.js

Mar 16th, 2023
554
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { getWeakenThreads, getGrowThreads, getHackThreads } from "Utilities/lib.js";
  2.  
  3. /** @param {NS} ns */
  4. export async function main(ns) {
  5.     //The comments will be used for examples
  6.     const delay = ns.args[0]; // 200ms
  7.     const target = ns.args[1];
  8.     const minimumCashReserves = ns.getServerMaxMoney(target) * 0.9;
  9.  
  10.     const timeWeaken = ns.getWeakenTime(target); // 30s
  11.     const timeGrow = ns.getGrowTime(target);     // 15s
  12.     const timeHack = ns.getHackTime(target);     // 5s
  13.  
  14.     const threadsHack = getHackThreads(ns, target, minimumCashReserves);
  15.     const weakenZeroThreads = getWeakenThreads(ns, target, ns.hackAnalyzeSecurity(threadsHack));
  16.     const threadsGrow = getGrowThreads(ns, target, minimumCashReserves);
  17.     const weakenOneThreads = getWeakenThreads(ns, target, ns.growthAnalyzeSecurity(threadsGrow));
  18.  
  19.     //Weaken 0
  20.     ns.exec("./weaken.js", ns.getHostname(), weakenZeroThreads, target)
  21.     const weakenZeroDelay = 2 * delay; // 0.4s + 30s = 30.4s so next weaken happens the 3rd tick.
  22.     ns.sleep(weakenZeroDelay); // On 0.4s
  23.  
  24.     //Weaken 1
  25.     ns.exec("./weaken.js", ns.getHostname(), weakenOneThreads, target)
  26.     const weakenOneDelay = timeWeaken - timeGrow - delay // 30 - 15 - 0.2 = 14.8s. 14.8s delay plus previous 0.4s = 15.2s + 15 = 30.2s so grow happens on 2nd tick.
  27.     ns.sleep(weakenOneDelay); // On 15.2s
  28.  
  29.     //Grow
  30.     ns.exec("./grow.js", ns.getHostname(), threadsGrow, target)
  31.     const growDelay = timeWeaken + 3 * delay - timeHack - weakenZeroDelay - weakenOneDelay;
  32.     /** 30 + 0.6 = 30.6s this is the 4th tick and when the hack is suppossed to happen.
  33.      * 30.6 - 5s = 25.6s this is how many seconds the delay is from T0
  34.      * 25.6s - 0.4s - 14.8 = 10.4s delay from the current 15.2s so 25.6s then + 5 = 30.6 when the hack occurs */
  35.     ns.sleep(growDelay); // On 25.6
  36.  
  37.     //Hack
  38.     ns.exec("./hack.js", ns.getHostname(), threadsHack, target)
  39.  
  40.     /** Weaken Zero: 0s - 30s
  41.      *  Grow: 15.2s - 30.2s
  42.      *  Weaken One: 0.4s - 30.4s
  43.      *  Hack: 25.6s - 30.6s
  44.      *
  45.      *  Exactly one delay between each step.
  46.      */
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement