diff --git a/dist/engine.bundle.js b/dist/engine.bundle.js
index 0a78aa288..304ea3477 100644
--- a/dist/engine.bundle.js
+++ b/dist/engine.bundle.js
@@ -314,6 +314,7 @@ function PlayerObject() {
this.lastUpdate = 0;
this.totalPlaytime = 0;
this.playtimeSinceLastAug = 0;
+ this.playtimeSinceLastBitnode = 0;
//Production since last Augmentation installation
this.scriptProdSinceLastAug = 0;
@@ -503,6 +504,7 @@ PlayerObject.prototype.prestigeSourceFile = function() {
this.corporation = 0;
this.playtimeSinceLastAug = 0;
+ this.playtimeSinceLastBitnode = 0;
this.scriptProdSinceLastAug = 0;
}
@@ -5733,7 +5735,7 @@ function purchaseServerBoxCreate(ram, cost) {
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Engine", function() { return Engine; });
/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
-/* harmony import */ var _utils_GameOptions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/GameOptions.js */ 52);
+/* harmony import */ var _utils_GameOptions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/GameOptions.js */ 53);
/* harmony import */ var _utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/HelperFunctions.js */ 1);
/* harmony import */ var numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! numeral/min/numeral.min */ 13);
/* harmony import */ var numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_3__);
@@ -5754,13 +5756,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Gang_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Gang.js */ 34);
/* harmony import */ var _HacknetNode_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./HacknetNode.js */ 36);
/* harmony import */ var _InteractiveTutorial_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./InteractiveTutorial.js */ 24);
-/* harmony import */ var _Literature_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Literature.js */ 51);
+/* harmony import */ var _Literature_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Literature.js */ 52);
/* harmony import */ var _Message_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Message.js */ 28);
/* harmony import */ var _Missions_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Missions.js */ 33);
/* harmony import */ var _NetscriptFunctions_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./NetscriptFunctions.js */ 30);
/* harmony import */ var _NetscriptWorker_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./NetscriptWorker.js */ 19);
/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Player.js */ 0);
-/* harmony import */ var _Prestige_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Prestige.js */ 55);
+/* harmony import */ var _Prestige_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Prestige.js */ 56);
/* harmony import */ var _RedPill_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./RedPill.js */ 37);
/* harmony import */ var _SaveObject_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./SaveObject.js */ 45);
/* harmony import */ var _Script_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Script.js */ 25);
@@ -6324,6 +6326,11 @@ let Engine = {
intText = 'Intelligence: ' + (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].intelligence).toLocaleString() + "
";
}
+ let bitNodeTimeText = "";
+ if(_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].sourceFiles.length > 0) {
+ bitNodeTimeText = 'Time played since last Bitnode destroyed: ' + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_4__["convertTimeMsToTimeElapsedString"])(_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode) + '
';
+ }
+
Engine.Display.characterInfo.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_2__["createElement"])("pre", {
innerHTML:
'General
' +
@@ -6377,6 +6384,7 @@ let Engine = {
'Hacknet Nodes owned: ' + _Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].hacknetNodes.length + '
' +
'Augmentations installed: ' + _Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].augmentations.length + '
' +
'Time played since last Augmentation: ' + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_4__["convertTimeMsToTimeElapsedString"])(_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug) + '
' +
+ bitNodeTimeText +
'Time played: ' + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_4__["convertTimeMsToTimeElapsedString"])(_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime),
}));
@@ -6662,8 +6670,10 @@ let Engine = {
var time = numCycles * Engine._idleSpeed;
if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime == null) {_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime = 0;}
if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug == null) {_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug = 0;}
+ if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode == null) {_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode = 0;}
_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime += time;
_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug += time;
+ _Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode += time;
//Start Manual hack
if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].startAction == true) {
@@ -7083,8 +7093,10 @@ let Engine = {
var time = numCyclesOffline * Engine._idleSpeed;
if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime == null) {_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime = 0;}
if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug == null) {_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug = 0;}
+ if (_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode == null) {_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode = 0;}
_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].totalPlaytime += time;
_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastAug += time;
+ _Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].playtimeSinceLastBitnode += time;
_Player_js__WEBPACK_IMPORTED_MODULE_26__["Player"].lastUpdate = Engine._lastUpdate;
Engine.start(); //Run main game loop and Scripts loop
@@ -12196,7 +12208,29 @@ function initBitNodes() {
"Level 1: 8%
" +
"Level 2: 12%
" +
"Level 3: 14%");
- BitNodes["BitNode7"] = new BitNode(7, "Hacktocracy", "COMING SOON"); //Healthy Hacknet balancing mechanic
+ BitNodes["BitNode7"] = new BitNode(7, "Bladeburners 2079", "More human than humans",
+ "In the middle of the 21st century, you were doing cutting-edge work at OmniTek Incorporated as part of the AI design team " +
+ "for advanced synthetic androids, or Synthoids for short. You helped achieve a major technological " +
+ "breakthrough in the sixth generation of the company's Synthoid design, called MK-VI, by developing a hyperintelligent AI. " +
+ "Many argue that this was the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, " +
+ "and more intelligent than the humans that had created them.
" +
+ "In this BitNode you will be able to access the Bladeburner API, which allows you to access Bladeburner " +
+ "functionality through Netscript. Furthermore:
" +
+ "The rank you gain from Bladeburner contracts/operations is reduced by 50%
" +
+ "Bladeburner skills cost twice as many skill points
" +
+ "Augmentations are 3x more expensive
" +
+ "Hacking and Hacknet Nodes will be significantly less profitable
" +
+ "Your hacking level is reduced by 50%
" +
+ "Hacking experience gain from scripts is reduced by 75%
" +
+ "Corporations have 80% lower valuations and are therefore less profitable
" +
+ "Working for companies is 50% less profitable
" +
+ "Crimes and Infiltration are 50% less profitable
" +
+ "Destroying this BitNode will give you Source-File 6, or if you already have this Source-File it will upgrade " +
+ "its level up to a maximum of 3. This Source-File allows you to access the Bladeburner Netscript API in other " +
+ "BitNodes. In addition, this Source-File will increase all of your Bladeburner multipliers by:
" +
+ "Level 1: 8%
" +
+ "Level 2: 12%
" +
+ "Level 3: 14%");
BitNodes["BitNode8"] = new BitNode(8, "Ghost of Wall Street", "Money never sleeps",
"You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.
" +
"In this BitNode:
" +
@@ -12289,6 +12323,9 @@ let BitNodeMultipliers = {
InfiltrationRep: 1,
CorporationValuation: 1,
+
+ BladeburnerRank: 1,
+ BladeburnerSkillCost: 1,
}
function initBitNodeMultipliers() {
@@ -12365,6 +12402,23 @@ function initBitNodeMultipliers() {
BitNodeMultipliers.FactionPassiveRepGain = 0;
BitNodeMultipliers.HackExpGain = 0.25;
break;
+ case 7: //Bladeburner 2079
+ BitNodeMultipliers.BladeburnerRank = 0.5;
+ BitNodeMultipliers.BladeburnerSkillCost = 2;
+ BitNodeMultipliers.AugmentationMoneyCost = 3;
+ BitNodeMultipliers.HackingLevelMultiplier = 0.5;
+ BitNodeMultipliers.ServerMaxMoney = 0.5;
+ BitNodeMultipliers.ServerStartingMoney = 0.5;
+ BitNodeMultipliers.ServerStartingSecurity = 1.5;
+ BitNodeMultipliers.ScriptHackMoney = 0.5;
+ BitNodeMultipliers.CompanyWorkMoney = 0.5;
+ BitNodeMultipliers.CrimeMoney = 0.5;
+ BitNodeMultipliers.InfiltrationMoney = 0.5;
+ BitNodeMultipliers.CorporationValuation = 0.2;
+ BitNodeMultipliers.HacknetNodeMoney = 0.2;
+ BitNodeMultipliers.FactionPassiveRepGain = 0;
+ BitNodeMultipliers.HackExpGain = 0.25;
+ break;
case 8: //Ghost of Wall Street
BitNodeMultipliers.ScriptHackMoney = 0;
BitNodeMultipliers.ManualHackMoney = 0;
@@ -12800,7 +12854,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _NetscriptFunctions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptFunctions.js */ 30);
/* harmony import */ var _NetscriptWorker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptWorker.js */ 19);
/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Player.js */ 0);
-/* harmony import */ var _Prestige_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Prestige.js */ 55);
+/* harmony import */ var _Prestige_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Prestige.js */ 56);
/* harmony import */ var _SaveObject_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SaveObject.js */ 45);
/* harmony import */ var _Script_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Script.js */ 25);
/* harmony import */ var _Server_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Server.js */ 8);
@@ -15718,7 +15772,7 @@ function runScriptsLoop() {
} else {
try {
var ast = Object(_utils_acorn_js__WEBPACK_IMPORTED_MODULE_9__["parse"])(workerScripts[i].code, {sourceType:"module"});
- console.log(ast);
+ //console.log(ast);
} catch (e) {
console.log("Error parsing script: " + workerScripts[i].name);
Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_10__["dialogBoxCreate"])("Syntax ERROR in " + workerScripts[i].name + ":
" + e);
@@ -17254,12 +17308,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Alias_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Alias.js */ 29);
/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ 3);
/* harmony import */ var _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CreateProgram.js */ 16);
-/* harmony import */ var _DarkWeb_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DarkWeb.js */ 56);
+/* harmony import */ var _DarkWeb_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DarkWeb.js */ 50);
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./engine.js */ 5);
/* harmony import */ var _Fconf_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Fconf.js */ 32);
-/* harmony import */ var _HelpText_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./HelpText.js */ 69);
+/* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./HelpText */ 69);
+/* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_HelpText__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _InteractiveTutorial_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./InteractiveTutorial.js */ 24);
-/* harmony import */ var _Literature_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Literature.js */ 51);
+/* harmony import */ var _Literature_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Literature.js */ 52);
/* harmony import */ var _Message_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Message.js */ 28);
/* harmony import */ var _NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./NetscriptEvaluator.js */ 6);
/* harmony import */ var _NetscriptWorker_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./NetscriptWorker.js */ 19);
@@ -17269,7 +17324,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Server_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Server.js */ 8);
/* harmony import */ var _Settings_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Settings.js */ 22);
/* harmony import */ var _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./SpecialServerIps.js */ 18);
-/* harmony import */ var _TextFile_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./TextFile.js */ 43);
+/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./TextFile */ 43);
+/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
/* harmony import */ var _utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/HelperFunctions.js */ 1);
/* harmony import */ var _utils_LogBox_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/LogBox.js */ 49);
@@ -17672,9 +17728,12 @@ function determineAllPossibilitiesForTabCompletion(input, index=0) {
}
if (input.startsWith ("buy ")) {
- return [_CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].BruteSSHProgram, _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].FTPCrackProgram, _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].RelaySMTPProgram,
- _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].HTTPWormProgram, _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].SQLInjectProgram, _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].DeepscanV1,
- _CreateProgram_js__WEBPACK_IMPORTED_MODULE_2__["Programs"].DeepscanV2].concat(Object.keys(_Alias_js__WEBPACK_IMPORTED_MODULE_0__["GlobalAliases"]));
+ let options = [];
+ for(const i in _DarkWeb_js__WEBPACK_IMPORTED_MODULE_3__["DarkWebItems"]) {
+ const item = _DarkWeb_js__WEBPACK_IMPORTED_MODULE_3__["DarkWebItems"][i]
+ options.push(item.program);
+ }
+ return options.concat(Object.keys(_Alias_js__WEBPACK_IMPORTED_MODULE_0__["GlobalAliases"]));
}
if (input.startsWith("scp ") && index == 1) {
@@ -18054,7 +18113,7 @@ let Terminal = {
switch(_InteractiveTutorial_js__WEBPACK_IMPORTED_MODULE_7__["currITutorialStep"]) {
case _InteractiveTutorial_js__WEBPACK_IMPORTED_MODULE_7__["iTutorialSteps"].TerminalHelp:
if (commandArray[0] == "help") {
- post(_HelpText_js__WEBPACK_IMPORTED_MODULE_6__["TerminalHelpText"]);
+ post(_HelpText__WEBPACK_IMPORTED_MODULE_6__["TerminalHelpText"]);
Object(_InteractiveTutorial_js__WEBPACK_IMPORTED_MODULE_7__["iTutorialNextStep"])();
} else {post("Bad command. Please follow the tutorial");}
break;
@@ -18346,7 +18405,7 @@ let Terminal = {
}
} else if (fn.endsWith(".txt")) {
//Download a single text file
- var txtFile = Object(_TextFile_js__WEBPACK_IMPORTED_MODULE_18__["getTextFile"])(fn, s);
+ var txtFile = Object(_TextFile__WEBPACK_IMPORTED_MODULE_18__["getTextFile"])(fn, s);
if (txtFile !== null) {
return txtFile.download();
}
@@ -18385,10 +18444,10 @@ let Terminal = {
post("Incorrect usage of help command. Usage: help"); return;
}
if (commandArray.length == 1) {
- post(_HelpText_js__WEBPACK_IMPORTED_MODULE_6__["TerminalHelpText"]);
+ post(_HelpText__WEBPACK_IMPORTED_MODULE_6__["TerminalHelpText"]);
} else {
var cmd = commandArray[1];
- var txt = _HelpText_js__WEBPACK_IMPORTED_MODULE_6__["HelpTexts"][cmd];
+ var txt = _HelpText__WEBPACK_IMPORTED_MODULE_6__["HelpTexts"][cmd];
if (txt == null) {
post("Error: No help topics match '" + cmd + "'");
return;
@@ -18700,7 +18759,7 @@ let Terminal = {
return post(scriptname + " copied over to " + destServer.hostname);
}
}
- var newFile = new _TextFile_js__WEBPACK_IMPORTED_MODULE_18__["TextFile"](txtFile.fn, txtFile.text);
+ var newFile = new _TextFile__WEBPACK_IMPORTED_MODULE_18__["TextFile"](txtFile.fn, txtFile.text);
destServer.textFiles.push(newFile);
return post(scriptname + " copied over to " + destServer.hostname);
}
@@ -24951,7 +25010,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Server_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Server.js */ 8);
/* harmony import */ var _Settings_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Settings.js */ 22);
/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Terminal.js */ 21);
-/* harmony import */ var _TextFile_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TextFile.js */ 43);
+/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TextFile */ 43);
+/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _utils_acorn_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn.js */ 35);
/* harmony import */ var _utils_acorn_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn_js__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
@@ -25274,7 +25334,7 @@ function saveAndCloseScriptEditor() {
return;
}
}
- var textFile = new _TextFile_js__WEBPACK_IMPORTED_MODULE_11__["TextFile"](filename, code);
+ var textFile = new _TextFile__WEBPACK_IMPORTED_MODULE_11__["TextFile"](filename, code);
s.textFiles.push(textFile);
} else {
Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_13__["dialogBoxCreate"])("Invalid filename. Must be either a script (.script) or " +
@@ -25430,19 +25490,32 @@ function parseOnlyRamCalculate(server, code, workerScript) {
//
// TODO it would be simpler to just reference a dictionary.
try {
- var func = workerScript.env.get(ref);
- if (typeof func === "function") {
- try {
- var res = func.apply(null, []);
- if (typeof res === "number") {
- ram += res;
+ function applyFuncRam(func) {
+ if (typeof func === "function") {
+ try {
+ let res = func.apply(null, []);
+ if (typeof res === "number") {
+ return res;
+ }
+ return 0;
+ } catch(e) {
+ console.log("ERROR applying function: " + e);
+ return 0;
}
- } catch(e) {
- console.log("ERROR applying function: " + e);
+ } else {
+ return 0;
}
}
- } catch (error) { continue; }
+ //Special logic for Bladeburner
+ var func;
+ if (ref in workerScript.env.vars.bladeburner) {
+ func = workerScript.env.vars.bladeburner[ref];
+ } else {
+ func = workerScript.env.get(ref);
+ }
+ ram += applyFuncRam(func);
+ } catch (error) {continue;}
}
return ram;
@@ -25958,19 +26031,21 @@ _utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_14__["Reviver"].constructors.AllS
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Bladeburner", function() { return Bladeburner; });
/* harmony import */ var _Augmentations_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentations.js */ 17);
-/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ 3);
-/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./engine.js */ 5);
-/* harmony import */ var _Faction_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction.js */ 11);
-/* harmony import */ var _Location_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Location.js */ 4);
-/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Player.js */ 0);
-/* harmony import */ var _RedPill_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RedPill.js */ 37);
-/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Terminal.js */ 21);
-/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
-/* harmony import */ var _utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/HelperFunctions.js */ 1);
-/* harmony import */ var _utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/JSONReviver.js */ 9);
-/* harmony import */ var numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! numeral/min/numeral.min */ 13);
-/* harmony import */ var numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_11__);
-/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
+/* harmony import */ var _BitNode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BitNode.js */ 14);
+/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Constants.js */ 3);
+/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./engine.js */ 5);
+/* harmony import */ var _Faction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Faction.js */ 11);
+/* harmony import */ var _Location_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Location.js */ 4);
+/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Player.js */ 0);
+/* harmony import */ var _RedPill_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./RedPill.js */ 37);
+/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Terminal.js */ 21);
+/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
+/* harmony import */ var _utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/HelperFunctions.js */ 1);
+/* harmony import */ var _utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/JSONReviver.js */ 9);
+/* harmony import */ var numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! numeral/min/numeral.min */ 13);
+/* harmony import */ var numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_12__);
+/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
+
@@ -26105,25 +26180,25 @@ var consoleHelpText = {
//Keypresses for Console
$(document).keydown(function(event) {
- if (_engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].Page.Bladeburner) {
+ if (_engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].Page.Bladeburner) {
//if (DomElems.consoleInput && !event.ctrlKey && !event.shiftKey && !event.altKey) {
// DomElems.consoleInput.focus();
//}
- if (!(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner instanceof Bladeburner)) {return;}
+ if (!(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner instanceof Bladeburner)) {return;}
//NOTE: Keycodes imported from Terminal.js
- if (event.keyCode === _Terminal_js__WEBPACK_IMPORTED_MODULE_7__["KEY"].ENTER) {
+ if (event.keyCode === _Terminal_js__WEBPACK_IMPORTED_MODULE_8__["KEY"].ENTER) {
event.preventDefault();
var command = DomElems.consoleInput.value;
if (command.length > 0) {
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner.postToConsole("> " + command);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner.resetConsoleInput();
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner.executeConsoleCommands(command);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner.postToConsole("> " + command);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner.resetConsoleInput();
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner.executeConsoleCommands(command);
}
}
- if (event.keyCode === _Terminal_js__WEBPACK_IMPORTED_MODULE_7__["KEY"].UPARROW) {
+ if (event.keyCode === _Terminal_js__WEBPACK_IMPORTED_MODULE_8__["KEY"].UPARROW) {
if (DomElems.consoleInput == null) {return;}
var i = consoleHistoryIndex;
var len = consoleHistory.length;
@@ -26142,7 +26217,7 @@ $(document).keydown(function(event) {
setTimeout(function(){DomElems.consoleInput.selectionStart = DomElems.consoleInput.selectionEnd = 10000; }, 0);
}
- if (event.keyCode === _Terminal_js__WEBPACK_IMPORTED_MODULE_7__["KEY"].DOWNARROW) {
+ if (event.keyCode === _Terminal_js__WEBPACK_IMPORTED_MODULE_8__["KEY"].DOWNARROW) {
if (DomElems.consoleInput == null) {return;}
var i = consoleHistoryIndex;
var len = consoleHistory.length;
@@ -26166,15 +26241,15 @@ $(document).keydown(function(event) {
});
function City(params={}) {
- this.name = params.name ? params.name : _Location_js__WEBPACK_IMPORTED_MODULE_4__["Locations"].Sector12;
+ this.name = params.name ? params.name : _Location_js__WEBPACK_IMPORTED_MODULE_5__["Locations"].Sector12;
//Synthoid population and estimate
- this.pop = params.pop ? params.pop : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(800e6, 1.2*PopulationThreshold);
+ this.pop = params.pop ? params.pop : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(800e6, 1.2*PopulationThreshold);
this.popEst = this.pop * (Math.random() + 0.5);
//Number of Synthoid communities population and estimate
- this.comms = params.comms ? params.comms : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1, 40);
- this.commsEst = this.comms + Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(-2, 2);
+ this.comms = params.comms ? params.comms : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1, 40);
+ this.commsEst = this.comms + Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(-2, 2);
if (this.commsEst < 0) {this.commsEst = 0;}
this.chaos = 0;
}
@@ -26223,7 +26298,7 @@ City.prototype.changePopulationByCount = function(n, params={}) {
this.pop += n;
if (params.estChange && !isNaN(params.estChange)) {this.popEst += params.estChange;}
if (params.estOffset) {
- this.popEst = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(this.popEst, params.estOffset);
+ this.popEst = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(this.popEst, params.estOffset);
}
this.popEst = Math.max(this.popEst, 0);
}
@@ -26267,12 +26342,12 @@ City.prototype.changeChaosByPercentage = function(p) {
}
City.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("City", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("City", this);
}
City.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(City, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(City, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.City = City;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.City = City;
function Skill(params={name:"foo", desc:"foo"}) {
if (params.name) {
@@ -26316,6 +26391,10 @@ function Skill(params={name:"foo", desc:"foo"}) {
if (params.weaponAbility) {this.weaponAbility = params.weaponAbility;}
if (params.gunAbility) {this.gunAbility = params.gunAbility;}
}
+
+Skill.prototype.calculateCost = function(currentLevel) {
+ return (this.baseCost + (currentLevel * this.costInc)) * _BitNode_js__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].BladeburnerSkillCost;
+}
var Skills = {};
var SkillNames = {
BladesIntuition: "Blade's Intuition",
@@ -26344,7 +26423,7 @@ function Action(params={}) {
this.level = 1;
this.maxLevel = 1;
this.autoLevel = true;
- this.baseDifficulty = params.baseDifficulty ? Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(params.baseDifficulty, 10) : 100;
+ this.baseDifficulty = params.baseDifficulty ? Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(params.baseDifficulty, 10) : 100;
this.difficultyFac = params.difficultyFac ? params.difficultyFac : 1.01;
//Rank increase/decrease is affected by this exponent
@@ -26367,8 +26446,8 @@ function Action(params={}) {
//Number of this contract remaining, and its growth rate
//Growth rate is an integer and the count will increase by that integer every "cycle"
- this.count = params.count ? params.count : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1e3, 25e3);
- this.countGrowth = params.countGrowth ? params.countGrowth : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1, 5);
+ this.count = params.count ? params.count : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1e3, 25e3);
+ this.countGrowth = params.countGrowth ? params.countGrowth : Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1, 5);
//Weighting of each stat in determining action success rate
var defaultWeights = {hack:1/7,str:1/7,def:1/7,dex:1/7,agi:1/7,cha:1/7,int:1/7};
@@ -26415,7 +26494,7 @@ Action.prototype.getSuccessChance = function(inst, params={}) {
var competence = 0;
for (var stat in this.weights) {
if (this.weights.hasOwnProperty(stat)) {
- var playerStatLvl = _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].queryStatFromString(stat);
+ var playerStatLvl = _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].queryStatFromString(stat);
var key = "eff" + stat.charAt(0).toUpperCase() + stat.slice(1);
var effMultiplier = inst.skillMultipliers[key];
if (effMultiplier == null) {
@@ -26474,7 +26553,7 @@ Action.prototype.getSuccessChance = function(inst, params={}) {
}
//Augmentation multiplier
- competence *= _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_success_chance_mult;
+ competence *= _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_success_chance_mult;
if (isNaN(competence)) {throw new Error("Competence calculated as NaN in Action.getSuccessChance()");}
return Math.min(1, competence / difficulty);
@@ -26491,8 +26570,8 @@ Action.prototype.getActionTime = function(inst) {
var baseTime = difficulty / DifficultyToTimeFactor;
var skillFac = inst.skillMultipliers.actionTime; //Always < 1
- var effAgility = _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].agility * inst.skillMultipliers.effAgi;
- var effDexterity = _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].dexterity * inst.skillMultipliers.effDex;
+ var effAgility = _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].agility * inst.skillMultipliers.effAgi;
+ var effDexterity = _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].dexterity * inst.skillMultipliers.effDex;
var statFac = 0.5 * (Math.pow(effAgility, EffAgiExponentialFactor) +
Math.pow(effDexterity, EffDexExponentialFactor) +
(effAgility / EffAgiLinearFactor) +
@@ -26522,12 +26601,12 @@ Action.prototype.setMaxLevel = function(baseSuccessesPerLevel) {
}
Action.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("Action", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("Action", this);
}
Action.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(Action, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(Action, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.Action = Action;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.Action = Action;
var GeneralActions = {}; //Training, Field Analysis, Recruitment, etc.
//Action Identifier
@@ -26547,12 +26626,12 @@ function ActionIdentifier(params={}) {
if (params.type) {this.type = params.type;}
}
ActionIdentifier.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("ActionIdentifier", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("ActionIdentifier", this);
}
ActionIdentifier.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(ActionIdentifier, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(ActionIdentifier, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.ActionIdentifier = ActionIdentifier;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.ActionIdentifier = ActionIdentifier;
//Contracts
function Contract(params={}) {
@@ -26560,12 +26639,12 @@ function Contract(params={}) {
}
Contract.prototype = Object.create(Action.prototype);
Contract.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("Contract", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("Contract", this);
}
Contract.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(Contract, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(Contract, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.Contract = Contract;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.Contract = Contract;
//Operations
function Operation(params={}) {
@@ -26575,12 +26654,12 @@ function Operation(params={}) {
}
Operation.prototype = Object.create(Action.prototype);
Operation.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("Operation", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("Operation", this);
}
Operation.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(Operation, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(Operation, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.Operation = Operation;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.Operation = Operation;
//Black Operations
function BlackOperation(params={}) {
@@ -26592,12 +26671,12 @@ function BlackOperation(params={}) {
}
BlackOperation.prototype = Object.create(Action.prototype);
BlackOperation.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("BlackOperation", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("BlackOperation", this);
}
BlackOperation.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(BlackOperation, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(BlackOperation, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.BlackOperation = BlackOperation;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.BlackOperation = BlackOperation;
var BlackOperations = {};
function Bladeburner(params={}) {
@@ -26614,7 +26693,7 @@ function Bladeburner(params={}) {
this.storedCycles = 0;
- this.randomEventCounter = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(300, 600); //5-10 minutes
+ this.randomEventCounter = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(300, 600); //5-10 minutes
//These times are in seconds
this.actionTimeToComplete = 0; //0 or -1 is an infinite running action (like training)
@@ -26628,7 +26707,7 @@ function Bladeburner(params={}) {
for (var i = 0; i < CityNames.length; ++i) {
this.cities[CityNames[i]] = new City({name:CityNames[i]});
}
- this.city = _Location_js__WEBPACK_IMPORTED_MODULE_4__["Locations"].Sector12;
+ this.city = _Location_js__WEBPACK_IMPORTED_MODULE_5__["Locations"].Sector12;
//Map of SkillNames -> level
this.skills = {};
@@ -26674,9 +26753,9 @@ function Bladeburner(params={}) {
Bladeburner.prototype.prestige = function() {
this.resetAction();
- var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_3__["Factions"]["Bladeburners"];
+ var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_4__["Factions"]["Bladeburners"];
if (this.rank >= RankNeededForFaction) {
- Object(_Faction_js__WEBPACK_IMPORTED_MODULE_3__["joinFaction"])(bladeburnerFac);
+ Object(_Faction_js__WEBPACK_IMPORTED_MODULE_4__["joinFaction"])(bladeburnerFac);
}
}
@@ -26689,7 +26768,7 @@ Bladeburner.prototype.create = function() {
"whatever city you are currently in.",
baseDifficulty:125,difficultyFac:1.02,rewardFac:1.041,
rankGain:0.3, hpLoss:0.5,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(300, 800), countGrowth:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1, 5),
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(300, 800), countGrowth:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1, 5),
weights:{hack:0,str:0.05,def:0.05,dex:0.35,agi:0.35,cha:0.1, int:0.05},
decays:{hack:0,str:0.91,def:0.91,dex:0.91,agi:0.91,cha:0.9, int:1},
isStealth:true
@@ -26701,7 +26780,7 @@ Bladeburner.prototype.create = function() {
"current city, and will also increase its chaos level.",
baseDifficulty:250, difficultyFac:1.04,rewardFac:1.085,
rankGain:0.9, hpLoss:1,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(200, 750), countGrowth:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1, 3),
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(200, 750), countGrowth:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1, 3),
weights:{hack:0,str:0.15,def:0.15,dex:0.25,agi:0.25,cha:0.1, int:0.1},
decays:{hack:0,str:0.91,def:0.91,dex:0.91,agi:0.91,cha:0.8, int:0.9},
isKill:true
@@ -26713,7 +26792,7 @@ Bladeburner.prototype.create = function() {
"city, and will also increase its chaos level.",
baseDifficulty:200, difficultyFac:1.03, rewardFac:1.065,
rankGain:0.6, hpLoss:1,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(300, 900), countGrowth:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1,4),
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(300, 900), countGrowth:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1,4),
weights:{hack:0,str:0.2,def:0.2,dex:0.2,agi:0.2,cha:0.1, int:0.1},
decays:{hack:0,str:0.91,def:0.91,dex:0.91,agi:0.91,cha:0.8, int:0.9},
isKill:true
@@ -26728,7 +26807,7 @@ Bladeburner.prototype.create = function() {
"You will NOT lose HP from failed Investigation ops.",
baseDifficulty:400, difficultyFac:1.03,rewardFac:1.07,reqdRank:25,
rankGain:2, rankLoss:0.2,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(50, 400), countGrowth:1,
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(50, 400), countGrowth:1,
weights:{hack:0.25,str:0.05,def:0.05,dex:0.2,agi:0.1,cha:0.25, int:0.1},
decays:{hack:0.85,str:0.9,def:0.9,dex:0.9,agi:0.9,cha:0.7, int:0.9},
isStealth:true
@@ -26741,7 +26820,7 @@ Bladeburner.prototype.create = function() {
"data.",
baseDifficulty:500, difficultyFac:1.04, rewardFac:1.09, reqdRank:100,
rankGain:4, rankLoss:0.4, hpLoss:2,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(50, 300), countGrowth:1,
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(50, 300), countGrowth:1,
weights:{hack:0.2,str:0.05,def:0.05,dex:0.2,agi:0.2,cha:0.2, int:0.1},
decays:{hack:0.8,str:0.9,def:0.9,dex:0.9,agi:0.9,cha:0.7, int:0.9},
isStealth:true
@@ -26752,7 +26831,7 @@ Bladeburner.prototype.create = function() {
"notorious Synthoid criminals.",
baseDifficulty:650, difficultyFac:1.04, rewardFac:1.095, reqdRank:500,
rankGain:5, rankLoss:0.5, hpLoss:2.5,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(25,400), countGrowth:0.75,
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(25,400), countGrowth:0.75,
weights:{hack:0.25,str:0.05,def:0.05,dex:0.25,agi:0.1,cha:0.2, int:0.1},
decays:{hack:0.8,str:0.85,def:0.85,dex:0.85,agi:0.85,cha:0.7, int:0.9},
isStealth:true
@@ -26764,7 +26843,7 @@ Bladeburner.prototype.create = function() {
"in order for this Operation to be successful",
baseDifficulty:800, difficultyFac:1.045, rewardFac:1.1, reqdRank:3000,
rankGain:50,rankLoss:2.5,hpLoss:50,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(25, 150), countGrowth:0.2,
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(25, 150), countGrowth:0.2,
weights:{hack:0.1,str:0.2,def:0.2,dex:0.2,agi:0.2,cha:0, int:0.1},
decays:{hack:0.7,str:0.8,def:0.8,dex:0.8,agi:0.8,cha:0, int:0.9},
isKill:true
@@ -26776,7 +26855,7 @@ Bladeburner.prototype.create = function() {
"drawing any attention. Stealth and discretion are key.",
baseDifficulty:1000, difficultyFac:1.05, rewardFac:1.11, reqdRank:20e3,
rankGain:20, rankLoss:2, hpLoss:10,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(25, 250), countGrowth:0.1,
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(25, 250), countGrowth:0.1,
weights:{hack:0.1,str:0.1,def:0.1,dex:0.3,agi:0.3,cha:0, int:0.1},
decays:{hack:0.7,str:0.8,def:0.8,dex:0.8,agi:0.8,cha:0, int:0.9},
isStealth:true, isKill:true
@@ -26788,7 +26867,7 @@ Bladeburner.prototype.create = function() {
"in the Synthoid communities.",
baseDifficulty:1500, difficultyFac:1.06, rewardFac:1.14, reqdRank:50e3,
rankGain:40, rankLoss:4, hpLoss:5,
- count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(25, 200), countGrowth:0.1,
+ count:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(25, 200), countGrowth:0.1,
weights:{hack:0.1,str:0.1,def:0.1,dex:0.3,agi:0.3,cha:0, int:0.1},
decays:{hack:0.6,str:0.8,def:0.8,dex:0.8,agi:0.8,cha:0, int:0.8},
isStealth:true, isKill:true
@@ -26801,14 +26880,14 @@ Bladeburner.prototype.storeCycles = function(numCycles=1) {
Bladeburner.prototype.process = function() {
//Extreme condition...if Operation Daedalus is complete trigger the BitNode
- if (_RedPill_js__WEBPACK_IMPORTED_MODULE_6__["redPillFlag"] === false && this.blackops.hasOwnProperty("Operation Daedalus")) {
- return Object(_RedPill_js__WEBPACK_IMPORTED_MODULE_6__["hackWorldDaemon"])(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bitNodeN);
+ if (_RedPill_js__WEBPACK_IMPORTED_MODULE_7__["redPillFlag"] === false && this.blackops.hasOwnProperty("Operation Daedalus")) {
+ return Object(_RedPill_js__WEBPACK_IMPORTED_MODULE_7__["hackWorldDaemon"])(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bitNodeN);
}
//If the Player starts doing some other actions, set action to idle and alert
- if (_Augmentations_js__WEBPACK_IMPORTED_MODULE_0__["Augmentations"][_Augmentations_js__WEBPACK_IMPORTED_MODULE_0__["AugmentationNames"].BladesSimulacrum].owned === false && _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].isWorking) {
+ if (_Augmentations_js__WEBPACK_IMPORTED_MODULE_0__["Augmentations"][_Augmentations_js__WEBPACK_IMPORTED_MODULE_0__["AugmentationNames"].BladesSimulacrum].owned === false && _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].isWorking) {
if (this.action.type !== ActionTypes["Idle"]) {
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("Your Bladeburner action was cancelled because you started " +
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("Your Bladeburner action was cancelled because you started " +
"doing something else");
}
this.resetAction();
@@ -26851,7 +26930,7 @@ Bladeburner.prototype.process = function() {
this.randomEventCounter -= seconds;
if (this.randomEventCounter <= 0) {
this.randomEvent();
- this.randomEventCounter = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(300, 600);
+ this.randomEventCounter = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(300, 600);
}
this.processAction(seconds);
@@ -26871,26 +26950,26 @@ Bladeburner.prototype.process = function() {
}
}
- if (_engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].Page.Bladeburner) {
+ if (_engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].Page.Bladeburner) {
this.updateContent();
}
}
}
Bladeburner.prototype.calculateMaxStamina = function() {
- var effAgility = _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].agility * this.skillMultipliers.effAgi;
+ var effAgility = _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].agility * this.skillMultipliers.effAgi;
var maxStamina = (Math.pow(effAgility, 0.8) + this.staminaBonus);
maxStamina *= this.skillMultipliers.stamina;
- maxStamina *= _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_max_stamina_mult;
+ maxStamina *= _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_max_stamina_mult;
if (isNaN(maxStamina)) {throw new Error("Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()");}
this.maxStamina = maxStamina;
}
Bladeburner.prototype.calculateStaminaGainPerSecond = function() {
- var effAgility = _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].agility * this.skillMultipliers.effAgi;
+ var effAgility = _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].agility * this.skillMultipliers.effAgi;
var maxStaminaBonus = this.maxStamina / MaxStaminaToGainFactor;
var gain = (StaminaGainPerSecond + maxStaminaBonus) * Math.pow(effAgility, 0.17);
- return gain * (this.skillMultipliers.stamina * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_stamina_gain_mult);
+ return gain * (this.skillMultipliers.stamina * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_stamina_gain_mult);
}
Bladeburner.prototype.calculateStaminaPenalty = function() {
@@ -26904,14 +26983,14 @@ Bladeburner.prototype.changeRank = function(change) {
this.maxRank = Math.max(this.rank, this.maxRank);
var bladeburnersFactionName = "Bladeburners";
- if (Object(_Faction_js__WEBPACK_IMPORTED_MODULE_3__["factionExists"])(bladeburnersFactionName)) {
- var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_3__["Factions"][bladeburnersFactionName];
- if (!(bladeburnerFac instanceof _Faction_js__WEBPACK_IMPORTED_MODULE_3__["Faction"])) {
+ if (Object(_Faction_js__WEBPACK_IMPORTED_MODULE_4__["factionExists"])(bladeburnersFactionName)) {
+ var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_4__["Factions"][bladeburnersFactionName];
+ if (!(bladeburnerFac instanceof _Faction_js__WEBPACK_IMPORTED_MODULE_4__["Faction"])) {
throw new Error("Could not properly get Bladeburner Faction object in Bladeburner UI Overview Faction button");
}
if (bladeburnerFac.isMember) {
var favorBonus = 1 + (bladeburnerFac.favor / 100);
- bladeburnerFac.playerReputation += (RankToFactionRepFactor * change * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].faction_rep_mult * favorBonus);
+ bladeburnerFac.playerReputation += (RankToFactionRepFactor * change * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].faction_rep_mult * favorBonus);
}
}
@@ -27039,7 +27118,7 @@ Bladeburner.prototype.startAction = function(actionId) {
if (action.count < 1) {return this.resetAction();}
this.actionTimeToComplete = action.getActionTime(this);
} catch(e) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["exceptionAlert"])(e);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["exceptionAlert"])(e);
}
break;
case ActionTypes["Operation"]:
@@ -27051,7 +27130,7 @@ Bladeburner.prototype.startAction = function(actionId) {
if (action.count < 1) {return this.resetAction();}
this.actionTimeToComplete = action.getActionTime(this);
} catch(e) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["exceptionAlert"])(e);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["exceptionAlert"])(e);
}
break;
case ActionTypes["BlackOp"]:
@@ -27063,7 +27142,7 @@ Bladeburner.prototype.startAction = function(actionId) {
}
this.actionTimeToComplete = action.getActionTime(this);
} catch(e) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["exceptionAlert"])(e);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["exceptionAlert"])(e);
}
break;
case ActionTypes["Training"]:
@@ -27126,7 +27205,7 @@ Bladeburner.prototype.completeAction = function() {
var moneyGain = 0;
if (!isOperation) {
moneyGain = ContractBaseMoneyGain * rewardMultiplier;
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainMoney(moneyGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainMoney(moneyGain);
}
if (isOperation) {
@@ -27135,12 +27214,12 @@ Bladeburner.prototype.completeAction = function() {
action.setMaxLevel(ContractSuccessesPerLevel);
}
if (action.rankGain) {
- var gain = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(action.rankGain * rewardMultiplier, 10);
+ var gain = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(action.rankGain * rewardMultiplier * _BitNode_js__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].BladeburnerRank, 10);
this.changeRank(gain);
if (isOperation && this.logging.ops) {
- this.log(action.name + " successfully completed! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(gain, 3) + " rank");
+ this.log(action.name + " successfully completed! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(gain, 3) + " rank");
} else if (!isOperation && this.logging.contracts) {
- this.log(action.name + " contract successfully completed! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(gain, 3) + " rank and " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_11___default()(moneyGain).format("$0.000a"));
+ this.log(action.name + " contract successfully completed! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(gain, 3) + " rank and " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_12___default()(moneyGain).format("$0.000a"));
}
}
isOperation ? this.completeOperation(true) : this.completeContract(true);
@@ -27149,21 +27228,21 @@ Bladeburner.prototype.completeAction = function() {
++action.failures;
var loss = 0, damage = 0;
if (action.rankLoss) {
- loss = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(action.rankLoss * rewardMultiplier, 10);
+ loss = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(action.rankLoss * rewardMultiplier, 10);
this.changeRank(-1 * loss);
}
if (action.hpLoss) {
damage = action.hpLoss * difficultyMultiplier;
- damage = Math.ceil(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(damage, 10));
+ damage = Math.ceil(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(damage, 10));
this.hpLost += damage;
- if (_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].takeDamage(damage)) {
+ if (_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].takeDamage(damage)) {
++this.numHosp;
- this.moneyLost += (_Constants_js__WEBPACK_IMPORTED_MODULE_1__["CONSTANTS"].HospitalCostPerHp * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].max_hp);
+ this.moneyLost += (_Constants_js__WEBPACK_IMPORTED_MODULE_2__["CONSTANTS"].HospitalCostPerHp * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].max_hp);
}
}
var logLossText = "";
- if (loss > 0) {logLossText += "Lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(loss, 3) + " rank.";}
- if (damage > 0) {logLossText += "Took " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(damage, 0) + " damage.";}
+ if (loss > 0) {logLossText += "Lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(loss, 3) + " rank.";}
+ if (damage > 0) {logLossText += "Took " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(damage, 0) + " damage.";}
if (isOperation && this.logging.ops) {
this.log(action.name + " failed! " + logLossText);
} else if (!isOperation && this.logging.contracts) {
@@ -27174,7 +27253,7 @@ Bladeburner.prototype.completeAction = function() {
if (action.autoLevel) {action.level = action.maxLevel;} //Autolevel
this.startAction(this.action); //Repeat action
} catch(e) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["exceptionAlert"])(e);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["exceptionAlert"])(e);
}
break;
case ActionTypes["BlackOp"]:
@@ -27200,7 +27279,7 @@ Bladeburner.prototype.completeAction = function() {
this.blackops[action.name] = true;
var rankGain = 0;
if (action.rankGain) {
- rankGain = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(action.rankGain, 10);
+ rankGain = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(action.rankGain * _BitNode_js__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].BladeburnerRank, 10);
this.changeRank(rankGain);
}
teamLossMax = Math.ceil(teamCount/2);
@@ -27208,35 +27287,35 @@ Bladeburner.prototype.completeAction = function() {
//Operation Daedalus
if (action.name === "Operation Daedalus") {
this.resetAction();
- return Object(_RedPill_js__WEBPACK_IMPORTED_MODULE_6__["hackWorldDaemon"])(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bitNodeN);
+ return Object(_RedPill_js__WEBPACK_IMPORTED_MODULE_7__["hackWorldDaemon"])(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bitNodeN);
}
- if (_engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].Page.Bladeburner) {
+ if (_engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].Page.Bladeburner) {
this.createActionAndSkillsContent();
}
if (this.logging.blackops) {
- this.log(action.name + " successful! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(rankGain, 1) + " rank");
+ this.log(action.name + " successful! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(rankGain, 1) + " rank");
}
} else {
this.gainActionStats(action, false);
var rankLoss = 0, damage = 0;
if (action.rankLoss) {
- rankLoss = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(action.rankLoss, 10);
+ rankLoss = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(action.rankLoss, 10);
this.changeRank(-1 * rankLoss);
}
if (action.hpLoss) {
damage = action.hpLoss * difficultyMultiplier;
- damage = Math.ceil(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["addOffset"])(damage, 10));
- if (_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].takeDamage(damage)) {
+ damage = Math.ceil(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["addOffset"])(damage, 10));
+ if (_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].takeDamage(damage)) {
++this.numHosp;
- this.moneyLost += (_Constants_js__WEBPACK_IMPORTED_MODULE_1__["CONSTANTS"].HospitalCostPerHp * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].max_hp);
+ this.moneyLost += (_Constants_js__WEBPACK_IMPORTED_MODULE_2__["CONSTANTS"].HospitalCostPerHp * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].max_hp);
}
}
teamLossMax = Math.floor(teamCount);
if (this.logging.blackops) {
- this.log(action.name + " failed! Lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(rankLoss, 1) + " rank and took" + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(damage, 0) + " damage");
+ this.log(action.name + " failed! Lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(rankLoss, 1) + " rank and took" + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(damage, 0) + " damage");
}
}
@@ -27244,59 +27323,59 @@ Bladeburner.prototype.completeAction = function() {
//Calculate team lossses
if (teamCount >= 1) {
- var losses = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1, teamLossMax);
+ var losses = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1, teamLossMax);
this.teamSize -= losses;
this.teamLost += losses;
if (this.logging.blackops) {
- this.log("You lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(losses, 0) + " team members during " + action.name);
+ this.log("You lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(losses, 0) + " team members during " + action.name);
}
}
} catch(e) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["exceptionAlert"])(e);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["exceptionAlert"])(e);
}
break;
case ActionTypes["Training"]:
this.stamina -= (0.5 * BaseStaminaLoss);
- var strExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].strength_exp_mult,
- defExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].defense_exp_mult,
- dexExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].dexterity_exp_mult,
- agiExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].agility_exp_mult,
+ var strExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].strength_exp_mult,
+ defExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].defense_exp_mult,
+ dexExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].dexterity_exp_mult,
+ agiExpGain = 30 * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].agility_exp_mult,
staminaGain = 0.04 * this.skillMultipliers.stamina;
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainStrengthExp(strExpGain);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainDefenseExp(defExpGain);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainDexterityExp(dexExpGain);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainAgilityExp(agiExpGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainStrengthExp(strExpGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainDefenseExp(defExpGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainDexterityExp(dexExpGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainAgilityExp(agiExpGain);
this.staminaBonus += (staminaGain);
if (this.logging.general) {
this.log("Training completed. Gained: " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(strExpGain, 1) + " str exp, " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(defExpGain, 1) + " def exp, " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(dexExpGain, 1) + " dex exp, " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(agiExpGain, 1) + " agi exp, " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(staminaGain, 3) + " max stamina");
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(strExpGain, 1) + " str exp, " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(defExpGain, 1) + " def exp, " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(dexExpGain, 1) + " dex exp, " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(agiExpGain, 1) + " agi exp, " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(staminaGain, 3) + " max stamina");
}
this.startAction(this.action); //Repeat action
break;
case ActionTypes["FieldAnalysis"]:
case ActionTypes["Field Analysis"]:
//Does not use stamina. Effectiveness depends on hacking, int, and cha
- var eff = 0.04 * Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].hacking_skill, 0.3) +
- 0.04 * Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].intelligence, 0.9) +
- 0.02 * Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].charisma, 0.3);
- eff *= _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_analysis_mult;
+ var eff = 0.04 * Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].hacking_skill, 0.3) +
+ 0.04 * Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].intelligence, 0.9) +
+ 0.02 * Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].charisma, 0.3);
+ eff *= _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_analysis_mult;
if (isNaN(eff) || eff < 0) {
throw new Error("Field Analysis Effectiveness calculated to be NaN or negative");
}
- var hackingExpGain = 20 * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].hacking_exp_mult,
- charismaExpGain = 20 * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].charisma_exp_mult;
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainHackingExp(hackingExpGain);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainIntelligenceExp(BaseIntGain);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainCharismaExp(charismaExpGain);
+ var hackingExpGain = 20 * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].hacking_exp_mult,
+ charismaExpGain = 20 * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].charisma_exp_mult;
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainHackingExp(hackingExpGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainIntelligenceExp(BaseIntGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainCharismaExp(charismaExpGain);
this.changeRank(0.1);
console.log("DEBUG: Field Analysis effectiveness is " + (eff * this.skillMultipliers.successChanceEstimate));
this.getCurrentCity().improvePopulationEstimateByPercentage(eff * this.skillMultipliers.successChanceEstimate);
if (this.logging.general) {
- this.log("Field analysis completed. Gained 0.1 rank, " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(hackingExpGain, 1) + " hacking exp, and " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(charismaExpGain, 1) + " charisma exp");
+ this.log("Field analysis completed. Gained 0.1 rank, " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(hackingExpGain, 1) + " hacking exp, and " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(charismaExpGain, 1) + " charisma exp");
}
this.startAction(this.action); //Repeat action
break;
@@ -27305,16 +27384,16 @@ Bladeburner.prototype.completeAction = function() {
console.log("Bladeburner recruitment success chance: " + successChance);
if (Math.random() < successChance) {
var expGain = 2 * BaseStatGain * this.actionTimeToComplete;
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainCharismaExp(expGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainCharismaExp(expGain);
++this.teamSize;
if (this.logging.general) {
- this.log("Successfully recruited a team member! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(expGain, 1) + " charisma exp");
+ this.log("Successfully recruited a team member! Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(expGain, 1) + " charisma exp");
}
} else {
var expGain = BaseStatGain * this.actionTimeToComplete;
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainCharismaExp(expGain);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainCharismaExp(expGain);
if (this.logging.general) {
- this.log("Failed to recruit a team member. Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(expGain, 1) + " charisma exp");
+ this.log("Failed to recruit a team member. Gained " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(expGain, 1) + " charisma exp");
}
}
this.startAction(this.action); //Repeat action
@@ -27333,7 +27412,7 @@ Bladeburner.prototype.completeContract = function(success) {
switch (this.action.name) {
case "Tracking":
//Increase estimate accuracy by a relatively small amount
- city.improvePopulationEstimateByCount(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(100, 1e3));
+ city.improvePopulationEstimateByCount(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(100, 1e3));
break;
case "Bounty Hunter":
city.changePopulationByCount(-1, {estChange:-1});
@@ -27366,11 +27445,11 @@ Bladeburner.prototype.completeOperation = function(success) {
} else {
max = Math.floor(teamCount)
}
- var losses = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(0, max);
+ var losses = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(0, max);
this.teamSize -= losses;
this.teamLost += losses;
if (this.logging.ops && losses > 0) {
- this.log("Lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(losses, 0) + " team members during this " + action.name);
+ this.log("Lost " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(losses, 0) + " team members during this " + action.name);
}
}
@@ -27415,22 +27494,22 @@ Bladeburner.prototype.completeOperation = function(success) {
--city.comms;
--city.commsEst;
} else {
- var change = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(-3, -1);
+ var change = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(-3, -1);
city.changePopulationByPercentage(change, {nonZero:true});
}
- city.changeChaosByPercentage(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(1, 5));
+ city.changeChaosByPercentage(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(1, 5));
break;
case "Stealth Retirement Operation":
if (success) {
city.changePopulationByPercentage(-0.5, {changeEstEqually:true,nonZero:true});
}
- city.changeChaosByPercentage(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(-3, -1));
+ city.changeChaosByPercentage(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(-3, -1));
break;
case "Assassination":
if (success) {
city.changePopulationByCount(-1, {estChange:-1});
}
- city.changeChaosByPercentage(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(-5, 5));
+ city.changeChaosByPercentage(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(-5, 5));
break;
default:
throw new Error("Invalid Action name in completeOperation: " + this.action.name);
@@ -27438,13 +27517,13 @@ Bladeburner.prototype.completeOperation = function(success) {
}
Bladeburner.prototype.getRecruitmentTime = function() {
- var effCharisma = _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].charisma * this.skillMultipliers.effCha;
+ var effCharisma = _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].charisma * this.skillMultipliers.effCha;
var charismaFactor = Math.pow(effCharisma, 0.81) + effCharisma / 90;
return Math.max(10, Math.round(BaseRecruitmentTimeNeeded - charismaFactor));
}
Bladeburner.prototype.getRecruitmentSuccessChance = function() {
- return Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].charisma, 0.45) / (this.teamSize + 1);
+ return Math.pow(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].charisma, 0.45) / (this.teamSize + 1);
}
//Process stat gains from Contracts, Operations, and Black Operations
@@ -27462,28 +27541,28 @@ Bladeburner.prototype.gainActionStats = function(action, success) {
var unweightedGain = time * BaseStatGain * successMult * difficultyMult;
var unweightedIntGain = time * BaseIntGain * successMult * difficultyMult;
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainHackingExp(unweightedGain * action.weights.hack * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].hacking_exp_mult);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainStrengthExp(unweightedGain * action.weights.str * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].strength_exp_mult);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainDefenseExp(unweightedGain * action.weights.def * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].defense_exp_mult);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainDexterityExp(unweightedGain * action.weights.dex * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].dexterity_exp_mult);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainAgilityExp(unweightedGain * action.weights.agi * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].agility_exp_mult);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainCharismaExp(unweightedGain * action.weights.cha * _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].charisma_exp_mult);
- _Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].gainIntelligenceExp(unweightedIntGain * action.weights.int);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainHackingExp(unweightedGain * action.weights.hack * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].hacking_exp_mult);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainStrengthExp(unweightedGain * action.weights.str * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].strength_exp_mult);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainDefenseExp(unweightedGain * action.weights.def * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].defense_exp_mult);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainDexterityExp(unweightedGain * action.weights.dex * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].dexterity_exp_mult);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainAgilityExp(unweightedGain * action.weights.agi * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].agility_exp_mult);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainCharismaExp(unweightedGain * action.weights.cha * _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].charisma_exp_mult);
+ _Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].gainIntelligenceExp(unweightedIntGain * action.weights.int);
}
Bladeburner.prototype.randomEvent = function() {
var chance = Math.random();
//Choose random source/destination city for events
- var sourceCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(0, 5)];
+ var sourceCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(0, 5)];
var sourceCity = this.cities[sourceCityName];
if (!(sourceCity instanceof City)) {
throw new Error("sourceCity was not a City object in Bladeburner.randomEvent()");
}
- var destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(0, 5)];
+ var destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(0, 5)];
while (destCityName === sourceCityName) {
- destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(0, 5)];
+ destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(0, 5)];
}
var destCity = this.cities[destCityName];
@@ -27494,7 +27573,7 @@ Bladeburner.prototype.randomEvent = function() {
if (chance <= 0.05) {
//New Synthoid Community, 5%
++sourceCity.comms;
- var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(10, 20) / 100;
+ var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(10, 20) / 100;
var count = Math.round(sourceCity.pop * percentage);
sourceCity.pop += count;
if (this.logging.events) {
@@ -27505,7 +27584,7 @@ Bladeburner.prototype.randomEvent = function() {
if (sourceCity.comms <= 0) {
//If no comms in source city, then instead trigger a new Synthoid community event
++sourceCity.comms;
- var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(10, 20) / 100;
+ var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(10, 20) / 100;
var count = Math.round(sourceCity.pop * percentage);
sourceCity.pop += count;
if (this.logging.events) {
@@ -27516,7 +27595,7 @@ Bladeburner.prototype.randomEvent = function() {
++destCity.comms;
//Change pop
- var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(10, 20) / 100;
+ var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(10, 20) / 100;
var count = Math.round(sourceCity.pop * percentage);
sourceCity.pop -= count;
destCity.pop += count;
@@ -27527,7 +27606,7 @@ Bladeburner.prototype.randomEvent = function() {
}
} else if (chance <= 0.3) {
//New Synthoids (non community), 20%
- var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(8, 24) / 100;
+ var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(8, 24) / 100;
var count = Math.round(sourceCity.pop * percentage);
sourceCity.pop += count;
if (this.logging.events) {
@@ -27542,13 +27621,13 @@ Bladeburner.prototype.randomEvent = function() {
} else if (chance <= 0.7) {
//Synthoid Riots (+chaos), 20%
sourceCity.chaos += 1;
- sourceCity.chaos *= (1 + Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(5, 10) / 100);
+ sourceCity.chaos *= (1 + Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(5, 10) / 100);
if (this.logging.events) {
this.log("Tensions between Synthoids and humans lead to riots in " + sourceCityName + "! Chaos increased");
}
} else if (chance <= 0.9) {
//Less Synthoids, 20%
- var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(5, 20) / 100;
+ var percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(5, 20) / 100;
var count = Math.round(sourceCity.pop * percentage);
sourceCity.pop -= count;
if (this.logging.events) {
@@ -27567,19 +27646,19 @@ Bladeburner.prototype.triggerPotentialMigration = function(sourceCityName, chanc
}
Bladeburner.prototype.triggerMigration = function(sourceCityName) {
- var destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(0, 5)];
+ var destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(0, 5)];
while (destCityName === sourceCityName) {
- destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(0, 5)];
+ destCityName = CityNames[Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(0, 5)];
}
var destCity = this.cities[destCityName];
var sourceCity = this.cities[sourceCityName];
if (destCity == null || sourceCity == null) {
throw new Error("Failed to find City with name: " + destCityName);
}
- var rand = Math.random(), percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(3, 15) / 100;
+ var rand = Math.random(), percentage = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(3, 15) / 100;
if (rand < 0.05 && sourceCity.comms > 0) { //5% chance for community migration
- percentage *= Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["getRandomInt"])(2, 4); //Migration increases population change
+ percentage *= Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["getRandomInt"])(2, 4); //Migration increases population change
--sourceCity.comms;
++destCity.comms;
}
@@ -27636,21 +27715,21 @@ Bladeburner.prototype.initializeDomElementRefs = function() {
}
Bladeburner.prototype.createContent = function() {
- DomElems.bladeburnerDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.bladeburnerDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
id:"bladeburner-container", position:"fixed", class:"generic-menupage-container",
});
//Parent Div for Overview and Console
- DomElems.overviewConsoleParentDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.overviewConsoleParentDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
height:"60%", display:"block", position:"relative",
});
//Overview and Action/Skill pane
- DomElems.overviewDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.overviewDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
width:"30%", display:"inline-block", border:"1px solid white",
});
- DomElems.actionAndSkillsDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.actionAndSkillsDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
height:"60%", width:"70%", display:"block",
border:"1px solid white", margin:"6px", padding:"6px",
});
@@ -27661,7 +27740,7 @@ Bladeburner.prototype.createContent = function() {
this.createActionAndSkillsContent();
//Console
- DomElems.consoleDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.consoleDiv = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
class:"bladeburner-console-div",
clickListener:()=>{
if (DomElems.consoleInput instanceof Element) {
@@ -27670,11 +27749,11 @@ Bladeburner.prototype.createContent = function() {
return false;
}
});
- DomElems.consoleTable = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("table", {class:"bladeburner-console-table"});
- DomElems.consoleInputRow = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("tr", {class:"bladeburner-console-input-row", id:"bladeubrner-console-input-row"});
- DomElems.consoleInputCell = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("td", {class:"bladeburner-console-input-cell"});
- DomElems.consoleInputHeader = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", {innerText:"> "});
- DomElems.consoleInput = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", {
+ DomElems.consoleTable = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("table", {class:"bladeburner-console-table"});
+ DomElems.consoleInputRow = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("tr", {class:"bladeburner-console-input-row", id:"bladeubrner-console-input-row"});
+ DomElems.consoleInputCell = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("td", {class:"bladeburner-console-input-cell"});
+ DomElems.consoleInputHeader = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("pre", {innerText:"> "});
+ DomElems.consoleInput = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("input", {
type:"text", class:"bladeburner-console-input", tabIndex:1,
onfocus:()=>{DomElems.consoleInput.value = DomElems.consoleInput.value}
});
@@ -27699,10 +27778,10 @@ Bladeburner.prototype.createContent = function() {
Bladeburner.prototype.clearContent = function() {
if (DomElems.bladeburnerDiv instanceof Element) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(DomElems.bladeburnerDiv);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElement"])(DomElems.bladeburnerDiv);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(DomElems.bladeburnerDiv);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElement"])(DomElems.bladeburnerDiv);
}
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["clearObject"])(DomElems);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["clearObject"])(DomElems);
this.initializeDomElementRefs();
}
@@ -27711,20 +27790,20 @@ Bladeburner.prototype.createOverviewContent = function() {
throw new Error("Bladeburner.createOverviewContent() called with DomElems.overviewDiv = null");
}
- DomElems.overviewRank = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.overviewRank = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
innerText:"Rank: ",
display:"inline-block",
tooltip:"Your rank within the Bladeburner division",
});
- DomElems.overviewStamina = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.overviewStamina = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"inline-block",
});
- DomElems.overviewStaminaHelpTip = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.overviewStaminaHelpTip = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
innerText:"?", class:"help-tip",
clickListener:()=>{
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("Performing actions will use up your stamina.
" +
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("Performing actions will use up your stamina.
" +
"Your max stamina is determined primarily by your agility stat.
" +
"Your stamina gain rate is determined by both your agility and your " +
"max stamina. Higher max stamina leads to a higher gain rate.
" +
@@ -27738,21 +27817,21 @@ Bladeburner.prototype.createOverviewContent = function() {
}
});
- DomElems.overviewGen1 = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.overviewGen1 = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block",
});
- DomElems.overviewEstPop = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.overviewEstPop = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
innerText:"Est. Synthoid Population: ",
display:"inline-block",
tooltip:"This is your Bladeburner division's estimate of how many Synthoids exist " +
"in your current city."
});
- DomElems.overviewEstPopHelpTip = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.overviewEstPopHelpTip = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
innerText:"?", class:"help-tip",
clickListener:()=>{
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("The success rate of your contracts/operations depends on " +
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("The success rate of your contracts/operations depends on " +
"the population of Synthoids in your current city. " +
"The success rate that is shown to you is only an estimate, " +
"and it is based on your Synthoid population estimate.
" +
@@ -27767,61 +27846,61 @@ Bladeburner.prototype.createOverviewContent = function() {
}
});
- DomElems.overviewEstComms = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.overviewEstComms = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
innerText:"Est. Synthoid Communities: ",
display:"inline-block",
tooltip:"This is your Bladeburner divison's estimate of how many Synthoid " +
"communities exist in your current city.",
});
- DomElems.overviewChaos = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.overviewChaos = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
innerText:"City Chaos: ",
display:"inline-block",
tooltip:"The city's chaos level due to tensions and conflicts between humans and Synthoids. " +
"Having too high of a chaos level can make contracts and operations harder."
});
- DomElems.overviewSkillPoints = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display:"block"});
+ DomElems.overviewSkillPoints = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {display:"block"});
- DomElems.overviewAugSuccessMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display:"block"});
- DomElems.overviewAugMaxStaminaMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display:"block"});
- DomElems.overviewAugStaminaGainMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display:"block"});
- DomElems.overviewAugAnalysisMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display:"block"});
+ DomElems.overviewAugSuccessMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {display:"block"});
+ DomElems.overviewAugMaxStaminaMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {display:"block"});
+ DomElems.overviewAugStaminaGainMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {display:"block"});
+ DomElems.overviewAugAnalysisMult = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {display:"block"});
DomElems.overviewDiv.appendChild(DomElems.overviewRank);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(DomElems.overviewDiv, 1);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(DomElems.overviewDiv, 1);
DomElems.overviewDiv.appendChild(DomElems.overviewStamina);
DomElems.overviewDiv.appendChild(DomElems.overviewStaminaHelpTip);
DomElems.overviewDiv.appendChild(DomElems.overviewGen1);
DomElems.overviewDiv.appendChild(DomElems.overviewEstPop);
DomElems.overviewDiv.appendChild(DomElems.overviewEstPopHelpTip);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(DomElems.overviewDiv, 1);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(DomElems.overviewDiv, 1);
DomElems.overviewDiv.appendChild(DomElems.overviewEstComms);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(DomElems.overviewDiv, 1);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(DomElems.overviewDiv, 1);
DomElems.overviewDiv.appendChild(DomElems.overviewChaos);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(DomElems.overviewDiv, 2);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(DomElems.overviewDiv, 2);
DomElems.overviewDiv.appendChild(DomElems.overviewSkillPoints);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(DomElems.overviewDiv, 1);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(DomElems.overviewDiv, 1);
DomElems.overviewDiv.appendChild(DomElems.overviewAugSuccessMult);
DomElems.overviewDiv.appendChild(DomElems.overviewAugMaxStaminaMult);
DomElems.overviewDiv.appendChild(DomElems.overviewAugStaminaGainMult);
DomElems.overviewDiv.appendChild(DomElems.overviewAugAnalysisMult);
//Travel to new city button
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(DomElems.overviewDiv, 1);
- DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(DomElems.overviewDiv, 1);
+ DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerHTML:"Travel", class:"a-link-button", display:"inline-block",
clickListener:()=>{
var popupId = "bladeburner-travel-popup-cancel-btn";
var popupArguments = [];
- popupArguments.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { //Cancel Button
+ popupArguments.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", { //Cancel Button
innerText:"Cancel", class:"a-link-button",
clickListener:()=>{
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElementById"])(popupId); return false;
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(popupId); return false;
}
}))
- popupArguments.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { //Info Text
+ popupArguments.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", { //Info Text
innerText:"Travel to a different city for your Bladeburner " +
"activities. This does not cost any money. The city you are " +
"in for your Bladeburner duties does not affect " +
@@ -27829,46 +27908,46 @@ Bladeburner.prototype.createOverviewContent = function() {
}));
for (var i = 0; i < CityNames.length; ++i) {
(function(inst, i) {
- popupArguments.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ popupArguments.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
//Reusing this css class...it adds a border and makes it
//so that background color changes when you hover
class:"cmpy-mgmt-find-employee-option",
innerText:CityNames[i],
clickListener:()=>{
inst.city = CityNames[i];
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElementById"])(popupId);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(popupId);
inst.updateOverviewContent();
return false;
}
}));
})(this, i);
}
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createPopup"])(popupId, popupArguments);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, popupArguments);
}
}));
//Faction button
const bladeburnersFactionName = "Bladeburners";
- if (Object(_Faction_js__WEBPACK_IMPORTED_MODULE_3__["factionExists"])(bladeburnersFactionName)) {
- var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_3__["Factions"][bladeburnersFactionName];
- if (!(bladeburnerFac instanceof _Faction_js__WEBPACK_IMPORTED_MODULE_3__["Faction"])) {
+ if (Object(_Faction_js__WEBPACK_IMPORTED_MODULE_4__["factionExists"])(bladeburnersFactionName)) {
+ var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_4__["Factions"][bladeburnersFactionName];
+ if (!(bladeburnerFac instanceof _Faction_js__WEBPACK_IMPORTED_MODULE_4__["Faction"])) {
throw new Error("Could not properly get Bladeburner Faction object in Bladeburner UI Overview Faction button");
}
- DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Faction", class:"a-link-button", display:"inline-block",
tooltip:"Apply to the Bladeburner Faction, or go to the faction page if you are already a member",
clickListener:()=>{
if (bladeburnerFac.isMember) {
- _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].loadFactionContent();
- Object(_Faction_js__WEBPACK_IMPORTED_MODULE_3__["displayFactionContent"])(bladeburnersFactionName);
+ _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].loadFactionContent();
+ Object(_Faction_js__WEBPACK_IMPORTED_MODULE_4__["displayFactionContent"])(bladeburnersFactionName);
} else {
if (this.rank >= RankNeededForFaction) {
- Object(_Faction_js__WEBPACK_IMPORTED_MODULE_3__["joinFaction"])(bladeburnerFac);
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("Congratulations! You were accepted into the Bladeburners faction");
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(DomElems.overviewDiv);
+ Object(_Faction_js__WEBPACK_IMPORTED_MODULE_4__["joinFaction"])(bladeburnerFac);
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("Congratulations! You were accepted into the Bladeburners faction");
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(DomElems.overviewDiv);
this.createOverviewContent();
} else {
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("You need a rank of 25 to join the Bladeburners Faction!")
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("You need a rank of 25 to join the Bladeburners Faction!")
}
}
return false;
@@ -27876,8 +27955,8 @@ Bladeburner.prototype.createOverviewContent = function() {
}));
}
- DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"));
- DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"));
+ DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("br"));
+ DomElems.overviewDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("br"));
this.updateOverviewContent();
}
@@ -27885,12 +27964,12 @@ Bladeburner.prototype.createOverviewContent = function() {
Bladeburner.prototype.createActionAndSkillsContent = function() {
if (DomElems.currentTab == null) {DomElems.currentTab = "general";}
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(DomElems.actionAndSkillsDiv);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["clearObject"])(DomElems.generalActions);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["clearObject"])(DomElems.contracts);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["clearObject"])(DomElems.operations);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["clearObject"])(DomElems.blackops);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["clearObject"])(DomElems.skills);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(DomElems.actionAndSkillsDiv);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["clearObject"])(DomElems.generalActions);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["clearObject"])(DomElems.contracts);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["clearObject"])(DomElems.operations);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["clearObject"])(DomElems.blackops);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["clearObject"])(DomElems.skills);
//Navigation buttons
var currTab = DomElems.currentTab.toLowerCase();
@@ -27898,7 +27977,7 @@ Bladeburner.prototype.createActionAndSkillsContent = function() {
for (var i = 0; i < buttons.length; ++i) {
(function(buttons, i, inst, currTab) {
- DomElems.actionAndSkillsDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ DomElems.actionAndSkillsDiv.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:buttons[i],
class:currTab === buttons[i].toLowerCase() ? "bladeburner-nav-button-inactive" : "bladeburner-nav-button",
clickListener:()=>{
@@ -27911,13 +27990,13 @@ Bladeburner.prototype.createActionAndSkillsContent = function() {
}
//General info/description for each action
- DomElems.actionsAndSkillsDesc = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ DomElems.actionsAndSkillsDesc = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block", margin:"4px", padding:"4px"
});
//List for actions/skills
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(DomElems.actionsAndSkillsList);
- DomElems.actionsAndSkillsList = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("ul");
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(DomElems.actionsAndSkillsList);
+ DomElems.actionsAndSkillsList = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("ul");
switch(currTab) {
case "general":
@@ -27956,7 +28035,7 @@ Bladeburner.prototype.createGeneralActionsContent = function() {
for (var actionName in GeneralActions) {
if (GeneralActions.hasOwnProperty(actionName)) {
- DomElems.generalActions[actionName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.generalActions[actionName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
class:"bladeburner-action", name:actionName
});
DomElems.actionsAndSkillsList.appendChild(DomElems.generalActions[actionName]);
@@ -27978,7 +28057,7 @@ Bladeburner.prototype.createContractsContent = function() {
for (var contractName in this.contracts) {
if (this.contracts.hasOwnProperty(contractName)) {
- DomElems.contracts[contractName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.contracts[contractName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
class:"bladeburner-action", name:contractName
});
DomElems.actionsAndSkillsList.appendChild(DomElems.contracts[contractName]);
@@ -28007,7 +28086,7 @@ Bladeburner.prototype.createOperationsContent = function() {
for (var operationName in this.operations) {
if (this.operations.hasOwnProperty(operationName)) {
- DomElems.operations[operationName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.operations[operationName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
class:"bladeburner-action", name:operationName
});
DomElems.actionsAndSkillsList.appendChild(DomElems.operations[operationName]);
@@ -28040,7 +28119,7 @@ Bladeburner.prototype.createBlackOpsContent = function() {
});
for (var i = 0; i < blackops.length; ++i) {
- DomElems.blackops[blackops[i].name] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.blackops[blackops[i].name] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
class:"bladeburner-action", name:blackops[i].name
});
DomElems.actionsAndSkillsList.appendChild(DomElems.blackops[blackops[i].name]);
@@ -28063,7 +28142,7 @@ Bladeburner.prototype.createSkillsContent = function() {
for (var i = 0; i < multKeys.length; ++i) {
var mult = this.skillMultipliers[multKeys[i]];
if (mult && mult !== 1) {
- mult = Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(mult, 3);
+ mult = Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(mult, 3);
switch(multKeys[i]) {
case "successChanceAll":
DomElems.actionsAndSkillsDesc.innerHTML += "Total Success Chance: x" + mult + "
";
@@ -28124,15 +28203,15 @@ Bladeburner.prototype.createSkillsContent = function() {
}
//Skill Points
- DomElems.skillPointsDisplay = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
- innerHTML:"
Skill Points: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.skillPoints, 0) + ""
+ DomElems.skillPointsDisplay = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
+ innerHTML:"
Skill Points: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.skillPoints, 0) + ""
});
DomElems.actionAndSkillsDiv.appendChild(DomElems.skillPointsDisplay);
//UI Element for each skill
for (var skillName in Skills) {
if (Skills.hasOwnProperty(skillName)) {
- DomElems.skills[skillName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {
+ DomElems.skills[skillName] = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("div", {
class:"bladeburner-action", name:skillName
});
DomElems.actionsAndSkillsList.appendChild(DomElems.skills[skillName]);
@@ -28146,25 +28225,25 @@ Bladeburner.prototype.updateContent = function() {
}
Bladeburner.prototype.updateOverviewContent = function() {
- if (_engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].currentPage !== _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].Page.Bladeburner) {return;}
- DomElems.overviewRank.childNodes[0].nodeValue = "Rank: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.rank, 2);
- DomElems.overviewStamina.innerText = "Stamina: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.stamina, 3) + " / " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.maxStamina, 3);
+ if (_engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].currentPage !== _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].Page.Bladeburner) {return;}
+ DomElems.overviewRank.childNodes[0].nodeValue = "Rank: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.rank, 2);
+ DomElems.overviewStamina.innerText = "Stamina: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.stamina, 3) + " / " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.maxStamina, 3);
DomElems.overviewGen1.innerHTML =
- "Stamina Penalty: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])((1-this.calculateStaminaPenalty())*100, 1) + "%
" +
- "Team Size: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.teamSize, 0) + "
" +
- "Team Members Lost: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.teamLost, 0) + "
" +
+ "Stamina Penalty: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])((1-this.calculateStaminaPenalty())*100, 1) + "%
" +
+ "Team Size: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.teamSize, 0) + "
" +
+ "Team Members Lost: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.teamLost, 0) + "
" +
"Num Times Hospitalized: " + this.numHosp + "
" +
- "Money Lost From Hospitalizations: " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_11___default()(this.moneyLost).format("$0.000a") + "
" +
+ "Money Lost From Hospitalizations: " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_12___default()(this.moneyLost).format("$0.000a") + "
" +
"Current City: " + this.city + "
";
- DomElems.overviewEstPop.childNodes[0].nodeValue = "Est. Synthoid Population: " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_11___default()(this.getCurrentCity().popEst).format("0.000a");
- DomElems.overviewEstComms.childNodes[0].nodeValue = "Est. Synthoid Communities: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.getCurrentCity().comms, 0);
- DomElems.overviewChaos.childNodes[0].nodeValue = "City Chaos: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.getCurrentCity().chaos);
- DomElems.overviewSkillPoints.innerText = "Skill Points: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.skillPoints, 0);
- DomElems.overviewAugSuccessMult.innerText = "Aug. Success Chance Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_success_chance_mult*100, 1) + "%";
- DomElems.overviewAugMaxStaminaMult.innerText = "Aug. Max Stamina Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_max_stamina_mult*100, 1) + "%";
- DomElems.overviewAugStaminaGainMult.innerText = "Aug. Stamina Gain Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_stamina_gain_mult*100, 1) + "%";
- DomElems.overviewAugAnalysisMult.innerText = "Aug. Field Analysis Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_5__["Player"].bladeburner_analysis_mult*100, 1) + "%";
+ DomElems.overviewEstPop.childNodes[0].nodeValue = "Est. Synthoid Population: " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_12___default()(this.getCurrentCity().popEst).format("0.000a");
+ DomElems.overviewEstComms.childNodes[0].nodeValue = "Est. Synthoid Communities: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.getCurrentCity().comms, 0);
+ DomElems.overviewChaos.childNodes[0].nodeValue = "City Chaos: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.getCurrentCity().chaos);
+ DomElems.overviewSkillPoints.innerText = "Skill Points: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.skillPoints, 0);
+ DomElems.overviewAugSuccessMult.innerText = "Aug. Success Chance Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_success_chance_mult*100, 1) + "%";
+ DomElems.overviewAugMaxStaminaMult.innerText = "Aug. Max Stamina Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_max_stamina_mult*100, 1) + "%";
+ DomElems.overviewAugStaminaGainMult.innerText = "Aug. Stamina Gain Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_stamina_gain_mult*100, 1) + "%";
+ DomElems.overviewAugAnalysisMult.innerText = "Aug. Field Analysis Mult: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(_Player_js__WEBPACK_IMPORTED_MODULE_6__["Player"].bladeburner_analysis_mult*100, 1) + "%";
}
Bladeburner.prototype.updateActionAndSkillsContent = function() {
@@ -28239,7 +28318,7 @@ Bladeburner.prototype.updateActionAndSkillsContent = function() {
}
break;
case "skills":
- DomElems.skillPointsDisplay.innerHTML = "
Skill Points: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.skillPoints, 0) + "";
+ DomElems.skillPointsDisplay.innerHTML = "
Skill Points: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.skillPoints, 0) + "";
var skillElems = Object.keys(DomElems.skills);
for (var i = 0; i < skillElems.length; ++i) {
@@ -28258,26 +28337,26 @@ Bladeburner.prototype.updateActionAndSkillsContent = function() {
}
Bladeburner.prototype.updateGeneralActionsUIElement = function(el, action) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(el);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(el);
var isActive = el.classList.contains(ActiveActionCssClass);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { //Header
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("h2", { //Header
innerText:isActive ? action.name + " (IN PROGRESS - " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
: action.name,
display:"inline-block",
}));
if (isActive) { //Progress bar if its active
var progress = this.actionTimeCurrent / this.actionTimeToComplete;
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block",
- innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createProgressBarText"])({progress:progress})
+ innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createProgressBarText"])({progress:progress})
}));
} else {
//Start button
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Start", class: "a-link-button",
margin:"3px", padding:"3px",
clickListener:()=>{
@@ -28290,8 +28369,8 @@ Bladeburner.prototype.updateGeneralActionsUIElement = function(el, action) {
}));
}
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { //Info
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("pre", { //Info
innerHTML:action.desc, display:"inline-block"
}));
@@ -28299,26 +28378,26 @@ Bladeburner.prototype.updateGeneralActionsUIElement = function(el, action) {
}
Bladeburner.prototype.updateContractsUIElement = function(el, action) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(el);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(el);
var isActive = el.classList.contains(ActiveActionCssClass);
var estimatedSuccessChance = action.getSuccessChance(this, {est:true});
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { //Header
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("h2", { //Header
innerText:isActive ? action.name + " (IN PROGRESS - " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
: action.name,
display:"inline-block"
}));
if (isActive) { //Progress bar if its active
var progress = this.actionTimeCurrent / this.actionTimeToComplete;
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block",
- innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createProgressBarText"])({progress:progress})
+ innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createProgressBarText"])({progress:progress})
}));
} else { //Start button
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Start", class: "a-link-button",
padding:"3px", margin:"3px",
clickListener:()=>{
@@ -28333,14 +28412,14 @@ Bladeburner.prototype.updateContractsUIElement = function(el, action) {
//Level and buttons to change level
var maxLevel = (action.level >= action.maxLevel);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", {
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("pre", {
display:"inline-block",
innerText:"Level: " + action.level + " / " + action.maxLevel,
tooltip:action.getSuccessesNeededForNextLevel(ContractSuccessesPerLevel) + " successes " +
"needed for next level"
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
class: maxLevel ? "a-link-button-inactive" : "a-link-button", innerHTML:"↑",
padding:"2px", margin:"2px",
tooltip: isActive ? "WARNING: changing the level will restart the contract" : "",
@@ -28352,7 +28431,7 @@ Bladeburner.prototype.updateContractsUIElement = function(el, action) {
return false;
}
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
class: (action.level <= 1) ? "a-link-button-inactive" : "a-link-button", innerHTML:"↓",
padding:"2px", margin:"2px",
tooltip: isActive ? "WARNING: changing the level will restart the contract" : "",
@@ -28366,25 +28445,25 @@ Bladeburner.prototype.updateContractsUIElement = function(el, action) {
}));
var actionTime = action.getActionTime(this);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { //Info
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("pre", { //Info
display:"inline-block",
innerHTML:action.desc + "\n\n" +
- "Estimated success chance: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(estimatedSuccessChance*100, 1) + "%\n" +
- "Time Required (s): " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(actionTime, 0) + "\n" +
+ "Estimated success chance: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(estimatedSuccessChance*100, 1) + "%\n" +
+ "Time Required (s): " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(actionTime, 0) + "\n" +
"Contracts remaining: " + Math.floor(action.count) + "\n" +
"Successes: " + action.successes + "\n" +
"Failures: " + action.failures,
}));
//Autolevel Checkbox
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"));
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("br"));
var autolevelCheckboxId = "bladeburner-" + action.name + "-autolevel-checkbox";
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("label", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("label", {
for:autolevelCheckboxId, innerText:"Autolevel",color:"white",
tooltip:"Automatically increase contract level when possible"
}));
- var autolevelCheckbox = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", {
+ var autolevelCheckbox = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("input", {
type:"checkbox", id:autolevelCheckboxId, margin:"4px",
checked:action.autoLevel,
changeListener:()=>{
@@ -28395,25 +28474,25 @@ Bladeburner.prototype.updateContractsUIElement = function(el, action) {
}
Bladeburner.prototype.updateOperationsUIElement = function(el, action) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(el);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(el);
var isActive = el.classList.contains(ActiveActionCssClass);
var estimatedSuccessChance = action.getSuccessChance(this, {est:true});
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { //Header
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("h2", { //Header
innerText:isActive ? action.name + " (IN PROGRESS - " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
: action.name,
display:"inline-block"
}));
if (isActive) { //Progress bar if its active
var progress = this.actionTimeCurrent / this.actionTimeToComplete;
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block",
- innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createProgressBarText"])({progress:progress})
+ innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createProgressBarText"])({progress:progress})
}));
} else { //Start button and set Team Size button
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Start", class: "a-link-button",
margin:"3px", padding:"3px",
clickListener:()=>{
@@ -28424,57 +28503,57 @@ Bladeburner.prototype.updateOperationsUIElement = function(el, action) {
return false;
}
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
- innerText:"Set Team Size (Curr Size: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(action.teamCount, 0) + ")", class:"a-link-button",
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
+ innerText:"Set Team Size (Curr Size: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(action.teamCount, 0) + ")", class:"a-link-button",
margin:"3px", padding:"3px",
clickListener:()=>{
var popupId = "bladeburner-operation-set-team-size-popup";
- var txt = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ var txt = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
innerText:"Enter the amount of team members you would like to take on these " +
"operations. If you do not have the specified number of team members, " +
"then as many as possible will be used. Note that team members may " +
"be lost during operations."
});
- var input = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", {
+ var input = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("input", {
type:"number", placeholder: "Team Members"
});
- var setBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ var setBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Confirm", class:"a-link-button",
clickListener:()=>{
var num = Math.round(parseFloat(input.value));
if (isNaN(num)) {
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("Invalid value entered for number of Team Members (must be numeric)")
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("Invalid value entered for number of Team Members (must be numeric)")
} else {
action.teamCount = num;
this.updateOperationsUIElement(el, action);
}
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElementById"])(popupId);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(popupId);
return false;
}
});
- var cancelBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ var cancelBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Cancel", class:"a-link-button",
clickListener:()=>{
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElementById"])(popupId);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(popupId);
return false;
}
});
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createPopup"])(popupId, [txt, input, setBtn, cancelBtn]);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, [txt, input, setBtn, cancelBtn]);
}
}));
}
//Level and buttons to change level
var maxLevel = (action.level >= action.maxLevel);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", {
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("pre", {
display:"inline-block",
innerText:"Level: " + action.level + " / " + action.maxLevel,
tooltip:action.getSuccessesNeededForNextLevel(OperationSuccessesPerLevel) + " successes " +
"needed for next level"
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
class: maxLevel ? "a-link-button-inactive" : "a-link-button", innerHTML:"↑",
padding:"2px", margin:"2px",
tooltip: isActive ? "WARNING: changing the level will restart the Operation" : "",
@@ -28486,7 +28565,7 @@ Bladeburner.prototype.updateOperationsUIElement = function(el, action) {
return false;
}
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
class: (action.level <= 1) ? "a-link-button-inactive" : "a-link-button", innerHTML:"↓",
padding:"2px", margin:"2px",
tooltip: isActive ? "WARNING: changing the level will restart the Operation" : "",
@@ -28502,25 +28581,25 @@ Bladeburner.prototype.updateOperationsUIElement = function(el, action) {
//General Info
var difficulty = action.getDifficulty();
var actionTime = action.getActionTime(this);
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", {
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("pre", {
display:"inline-block",
innerHTML:action.desc + "\n\n" +
- "Estimated success chance: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(estimatedSuccessChance*100, 1) + "%\n" +
- "Time Required(s): " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(actionTime, 1) + "\n" +
+ "Estimated success chance: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(estimatedSuccessChance*100, 1) + "%\n" +
+ "Time Required(s): " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(actionTime, 1) + "\n" +
"Operations remaining: " + Math.floor(action.count) + "\n" +
"Successes: " + action.successes + "\n" +
"Failures: " + action.failures,
}));
//Autolevel Checkbox
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"));
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("br"));
var autolevelCheckboxId = "bladeburner-" + action.name + "-autolevel-checkbox";
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("label", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("label", {
for:autolevelCheckboxId, innerText:"Autolevel",color:"white",
tooltip:"Automatically increase operation level when possible"
}));
- var autolevelCheckbox = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", {
+ var autolevelCheckbox = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("input", {
type:"checkbox", id:autolevelCheckboxId, margin:"4px",
checked:action.autoLevel,
changeListener:()=>{
@@ -28531,7 +28610,7 @@ Bladeburner.prototype.updateOperationsUIElement = function(el, action) {
}
Bladeburner.prototype.updateBlackOpsUIElement = function(el, action) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(el);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(el);
var isActive = el.classList.contains(ActiveActionCssClass);
var isCompleted = (this.blackops[action.name] != null);
var estimatedSuccessChance = action.getSuccessChance(this, {est:true});
@@ -28541,28 +28620,28 @@ Bladeburner.prototype.updateBlackOpsUIElement = function(el, action) {
//UI for Completed Black Op
if (isCompleted) {
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("h2", {
innerText:action.name + " (COMPLETED)", display:"block",
}));
return;
}
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { //Header
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("h2", { //Header
innerText:isActive ? action.name + " (IN PROGRESS - " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeCurrent, 0) + " / " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.actionTimeToComplete, 0) + ")"
: action.name,
display:"inline-block",
}));
if (isActive) { //Progress bar if its active
var progress = this.actionTimeCurrent / this.actionTimeToComplete;
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block",
- innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createProgressBarText"])({progress:progress})
+ innerText:Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createProgressBarText"])({progress:progress})
}));
} else {
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { //Start button
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", { //Start button
innerText:"Start", margin:"3px", padding:"3px",
class:hasReqdRank ? "a-link-button" : "a-link-button-inactive",
clickListener:()=>{
@@ -28573,80 +28652,80 @@ Bladeburner.prototype.updateBlackOpsUIElement = function(el, action) {
return false;
}
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { //Set Team Size Button
- innerText:"Set Team Size (Curr Size: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(action.teamCount, 0) + ")", class:"a-link-button",
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", { //Set Team Size Button
+ innerText:"Set Team Size (Curr Size: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(action.teamCount, 0) + ")", class:"a-link-button",
margin:"3px", padding:"3px",
clickListener:()=>{
var popupId = "bladeburner-operation-set-team-size-popup";
- var txt = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ var txt = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
innerText:"Enter the amount of team members you would like to take on this " +
"BlackOp. If you do not have the specified number of team members, " +
"then as many as possible will be used. Note that team members may " +
"be lost during operations."
});
- var input = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", {
+ var input = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("input", {
type:"number", placeholder: "Team Members"
});
- var setBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ var setBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Confirm", class:"a-link-button",
clickListener:()=>{
var num = Math.round(parseFloat(input.value));
if (isNaN(num)) {
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_8__["dialogBoxCreate"])("Invalid value entered for number of Team Members (must be numeric)")
+ Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_9__["dialogBoxCreate"])("Invalid value entered for number of Team Members (must be numeric)")
} else {
action.teamCount = num;
this.updateBlackOpsUIElement(el, action);
}
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElementById"])(popupId);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(popupId);
return false;
}
});
- var cancelBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", {
+ var cancelBtn = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", {
innerText:"Cancel", class:"a-link-button",
clickListener:()=>{
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeElementById"])(popupId);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(popupId);
return false;
}
});
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createPopup"])(popupId, [txt, input, setBtn, cancelBtn]);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, [txt, input, setBtn, cancelBtn]);
}
}));
}
//Info
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"inline-block",
innerHTML:"
" + action.desc + "
",
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block", color:hasReqdRank ? "white" : "red",
- innerHTML:"Required Rank: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(action.reqdRank, 0) + "
"
+ innerHTML:"Required Rank: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(action.reqdRank, 0) + "
"
}));
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"inline-block",
- innerHTML:"Estimated Success Chance: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(estimatedSuccessChance*100, 1) + "%\n" +
- "Time Required(s): " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(actionTime, 1),
+ innerHTML:"Estimated Success Chance: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(estimatedSuccessChance*100, 1) + "%\n" +
+ "Time Required(s): " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(actionTime, 1),
}))
}
Bladeburner.prototype.updateSkillsUIElement = function(el, skill) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(el);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(el);
var skillName = skill.name;
var currentLevel = 0;
if (this.skills[skillName] && !isNaN(this.skills[skillName])) {
currentLevel = this.skills[skillName];
}
- var pointCost = skill.baseCost + (currentLevel * skill.costInc);
+ var pointCost = skill.calculateCost(currentLevel);
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { //Header
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("h2", { //Header
innerText:skill.name + " (Lvl " + currentLevel + ")", display:"inline-block"
}));
var canLevel = this.skillPoints >= pointCost;
var maxLvl = skill.maxLvl ? currentLevel >= skill.maxLvl : false;
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { //Level up button
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("a", { //Level up button
innerText:"Level", display:"inline-block",
class: canLevel && !maxLvl ? "a-link-button" : "a-link-button-inactive",
margin:"3px", padding:"3px",
@@ -28658,19 +28737,19 @@ Bladeburner.prototype.updateSkillsUIElement = function(el, skill) {
return false;
}
}));
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["appendLineBreaks"])(el, 2);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["appendLineBreaks"])(el, 2);
if (maxLvl) {
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
color:"red", display:"block",
innerText:"MAX LEVEL"
}));
} else {
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", {
display:"block",
- innerText:"Skill Points required: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(pointCost, 0),
+ innerText:"Skill Points required: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(pointCost, 0),
}));
}
- el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { //Info/Description
+ el.appendChild(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["createElement"])("p", { //Info/Description
innerHTML:skill.desc, display:"inline-block",
}));
}
@@ -28723,7 +28802,7 @@ Bladeburner.prototype.executeConsoleCommands = function(commands) {
this.executeConsoleCommand(arrayOfCommands[i]);
}
} catch(e) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["exceptionAlert"])(e);
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["exceptionAlert"])(e);
}
}
@@ -28806,10 +28885,10 @@ Bladeburner.prototype.executeAutomateConsoleCommand = function(args) {
if (flag.toLowerCase() === "status") {
this.postToConsole("Automation: " + (this.automateEnabled ? "enabled" : "disabled"));
if (this.automateEnabled) {
- this.postToConsole("When your stamina drops to " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.automateThreshLow, 0) +
+ this.postToConsole("When your stamina drops to " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.automateThreshLow, 0) +
", you will automatically switch to " + this.automateActionLow.name +
". When your stamina recovers to " +
- Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.automateThreshHigh, 0) + ", you will automatically " +
+ Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.automateThreshHigh, 0) + ", you will automatically " +
"switch to " + this.automateActionHigh.name + ".");
}
@@ -28992,7 +29071,7 @@ Bladeburner.prototype.executeSkillConsoleCommand = function(args) {
var skill = Skills[skillNames[i]];
var level = 0;
if (this.skills[skill.name] != null) {level = this.skills[skill.name];}
- this.postToConsole(skill.name + ": Level " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(level, 0));
+ this.postToConsole(skill.name + ": Level " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(level, 0));
}
this.postToConsole(" ");
this.postToConsole("Effects: ");
@@ -29000,7 +29079,7 @@ Bladeburner.prototype.executeSkillConsoleCommand = function(args) {
for (var i = 0; i < multKeys.length; ++i) {
var mult = this.skillMultipliers[multKeys[i]];
if (mult && mult !== 1) {
- mult = Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(mult, 3);
+ mult = Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(mult, 3);
switch(multKeys[i]) {
case "successChanceAll":
this.postToConsole("Total Success Chance: x" + mult);
@@ -29071,20 +29150,20 @@ Bladeburner.prototype.executeSkillConsoleCommand = function(args) {
return this.postToConsole("Invalid skill name (Note that this is case-sensitive): " + skillName);
}
if (args[1].toLowerCase() === "list") {
- this.postToConsole(skill.name + ": Level " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.skills[skill.name]), 0);
+ this.postToConsole(skill.name + ": Level " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(this.skills[skill.name]), 0);
} else if (args[1].toLowerCase() === "level") {
var currentLevel = 0;
if (this.skills[skillName] && !isNaN(this.skills[skillName])) {
currentLevel = this.skills[skillName];
}
- var pointCost = skill.baseCost + (currentLevel * skill.costInc);
+ var pointCost = skill.calculateCost(currentLevel);
if (this.skillPoints >= pointCost) {
this.skillPoints -= pointCost;
this.upgradeSkill(skill);
this.log(skill.name + " upgraded to Level " + this.skills[skillName]);
this.createActionAndSkillsContent();
} else {
- this.postToConsole("You do not have enough Skill Points to upgrade this. You need " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(pointCost, 0));
+ this.postToConsole("You do not have enough Skill Points to upgrade this. You need " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_13__["formatNumber"])(pointCost, 0));
}
} else {
@@ -29230,24 +29309,25 @@ Bladeburner.prototype.getActionIdFromTypeAndName = function(type="", name="") {
}
}
-Bladeburner.prototype.isContractNameNetscriptFn = function(name) {
- return this.contracts.hasOwnProperty(name);
+Bladeburner.prototype.getContractNamesNetscriptFn = function(name) {
+ return Object.keys(this.contracts);
}
-Bladeburner.prototype.isOperationNameNetscriptFn = function(name) {
- return this.operations.hasOwnProperty(name);
+Bladeburner.prototype.getOperationNamesNetscriptFn = function(name) {
+ return Object.keys(this.operations);
}
-Bladeburner.prototype.isBlackOpNameNetscriptFn = function(name) {
- return BlackOperations.hasOwnProperty(name);
+Bladeburner.prototype.getBlackOpNamesNetscriptFn = function(name) {
+ return Object.keys(BlackOperations);
}
-Bladeburner.prototype.isGeneralActionNameNetscriptFn = function(name) {
- return GeneralActions.hasOwnProperty(name);
+Bladeburner.prototype.getGeneralActionNamesNetscriptFn = function(name) {
+ return Object.keys(GeneralActions);
}
-Bladeburner.prototype.isSkillNameNetscriptFn = function(name) {
+Bladeburner.prototype.getSkillNamesNetscriptFn = function(name) {
return Skills.hasOwnProperty(name);
+ return Object.keys(Skills);
}
Bladeburner.prototype.startActionNetscriptFn = function(type, name, workerScript) {
@@ -29329,7 +29409,7 @@ Bladeburner.prototype.getActionEstimatedSuccessChanceNetscriptFn = function(type
case ActionTypes["Operation"]:
case ActionTypes["BlackOp"]:
case ActionTypes["BlackOperation"]:
- return actionObj.getSuccessChance(this);
+ return actionObj.getSuccessChance(this, {est:true});
case ActionTypes["Training"]:
case ActionTypes["Field Analysis"]:
case ActionTypes["FieldAnalysis"]:
@@ -29405,7 +29485,7 @@ Bladeburner.prototype.upgradeSkillNetscriptFn = function(skillName, workerScript
if (this.skills[skillName] && !isNaN(this.skills[skillName])) {
currentLevel = this.skills[skillName];
}
- var cost = skill.baseCost + (currentLevel * skill.costInc);
+ var cost = skill.calculateCost(currentLevel);
if (this.skillPoints < cost) {
if (workerScript.shouldLog("upgradeSkill")) {
@@ -29418,7 +29498,7 @@ Bladeburner.prototype.upgradeSkillNetscriptFn = function(skillName, workerScript
this.skillPoints -= cost;
this.upgradeSkill(skill);
- if (_engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].Page.Bladeburner && DomElems.currentTab.toLowerCase() === "skills") {
+ if (_engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].Page.Bladeburner && DomElems.currentTab.toLowerCase() === "skills") {
this.createActionAndSkillsContent();
}
if (workerScript.shouldLog("upgradeSkill")) {
@@ -29532,16 +29612,16 @@ Bladeburner.prototype.switchCityNetscriptFn = function(cityName, workerScript) {
}
Bladeburner.prototype.joinBladeburnerFactionNetscriptFn = function(workerScript) {
- var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_3__["Factions"]["Bladeburners"];
+ var bladeburnerFac = _Faction_js__WEBPACK_IMPORTED_MODULE_4__["Factions"]["Bladeburners"];
if (bladeburnerFac.isMember) {
return true;
} else if (this.rank >= RankNeededForFaction) {
- Object(_Faction_js__WEBPACK_IMPORTED_MODULE_3__["joinFaction"])(bladeburnerFac);
+ Object(_Faction_js__WEBPACK_IMPORTED_MODULE_4__["joinFaction"])(bladeburnerFac);
if (workerScript.shouldLog("joinBladeburnerFaction")) {
workerScript.log("Joined Bladeburners Faction");
}
- if (_engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_2__["Engine"].Page.Bladeburner) {
- Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_9__["removeChildrenFromElement"])(DomElems.overviewDiv);
+ if (_engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].currentPage === _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"].Page.Bladeburner) {
+ Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_10__["removeChildrenFromElement"])(DomElems.overviewDiv);
this.createOverviewContent();
}
return true;
@@ -29555,12 +29635,12 @@ Bladeburner.prototype.joinBladeburnerFactionNetscriptFn = function(workerScript)
}
Bladeburner.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_toJSON"])("Bladeburner", this);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_toJSON"])("Bladeburner", this);
}
Bladeburner.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Generic_fromJSON"])(Bladeburner, value.data);
+ return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Generic_fromJSON"])(Bladeburner, value.data);
}
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_10__["Reviver"].constructors.Bladeburner = Bladeburner;
+_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_11__["Reviver"].constructors.Bladeburner = Bladeburner;
//This initialized Bladeburner-related data that is NOT saved/loaded
// eg: Skill Objects, BLack Operations
@@ -30686,7 +30766,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Company_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Company.js */ 10);
/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Constants.js */ 3);
/* harmony import */ var _CreateProgram_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CreateProgram.js */ 16);
-/* harmony import */ var _DarkWeb_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DarkWeb.js */ 56);
+/* harmony import */ var _DarkWeb_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DarkWeb.js */ 50);
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./engine.js */ 5);
/* harmony import */ var _Gang_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Gang.js */ 34);
/* harmony import */ var _Faction_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Faction.js */ 11);
@@ -30701,7 +30781,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./SpecialServerIps.js */ 18);
/* harmony import */ var _StockMarket_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./StockMarket.js */ 20);
/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Terminal.js */ 21);
-/* harmony import */ var _TextFile_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./TextFile.js */ 43);
+/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./TextFile */ 43);
+/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var _NetscriptWorker_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./NetscriptWorker.js */ 19);
/* harmony import */ var _NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./NetscriptEvaluator.js */ 6);
/* harmony import */ var _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 67);
@@ -30844,8 +30925,8 @@ function NetscriptFunctions(workerScript) {
workerScript.dynamicRamUsage += ramCost;
if (workerScript.dynamicRamUsage > 1.01 * workerScript.ramUsage) {
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript,
- "Dynamic RAM usage calculated to be greater than initial RAM usage. " +
- "This is probably because you somehow circumvented the static RAM " +
+ "Dynamic RAM usage calculated to be greater than initial RAM usage on fn: " + fnName +
+ ". This is probably because you somehow circumvented the static RAM " +
"calculation.
Please don't do that :(");
}
};
@@ -31542,7 +31623,7 @@ function NetscriptFunctions(workerScript) {
return true;
}
}
- var newFile = new _TextFile_js__WEBPACK_IMPORTED_MODULE_23__["TextFile"](txtFile.fn, txtFile.text);
+ var newFile = new _TextFile__WEBPACK_IMPORTED_MODULE_23__["TextFile"](txtFile.fn, txtFile.text);
destServer.textFiles.push(newFile);
if (workerScript.disableLogs.ALL == null && workerScript.disableLogs.scp == null) {
workerScript.scriptRef.log(scriptname + " copied over to " + destServer.hostname);
@@ -31940,7 +32021,7 @@ function NetscriptFunctions(workerScript) {
return true;
}
}
- var txtFile = Object(_TextFile_js__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(filename, server);
+ var txtFile = Object(_TextFile__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(filename, server);
if (txtFile != null) {
return true;
}
@@ -32395,9 +32476,9 @@ function NetscriptFunctions(workerScript) {
if (server == null) {
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "Error getting Server for this script in write(). This is a bug please contact game dev");
}
- var txtFile = Object(_TextFile_js__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(fn, server);
+ var txtFile = Object(_TextFile__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(fn, server);
if (txtFile == null) {
- txtFile = Object(_TextFile_js__WEBPACK_IMPORTED_MODULE_23__["createTextFile"])(fn, data, server);
+ txtFile = Object(_TextFile__WEBPACK_IMPORTED_MODULE_23__["createTextFile"])(fn, data, server);
return true;
}
if (mode === "w") {
@@ -32432,7 +32513,7 @@ function NetscriptFunctions(workerScript) {
if (server == null) {
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "Error getting Server for this script in read(). This is a bug please contact game dev");
}
- var txtFile = Object(_TextFile_js__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(fn, server);
+ var txtFile = Object(_TextFile__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(fn, server);
if (txtFile !== null) {
return txtFile.text;
} else {
@@ -32481,7 +32562,7 @@ function NetscriptFunctions(workerScript) {
if (server == null) {
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "Error getting Server for this script in clear(). This is a bug please contact game dev");
}
- var txtFile = Object(_TextFile_js__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(fn, server);
+ var txtFile = Object(_TextFile__WEBPACK_IMPORTED_MODULE_23__["getTextFile"])(fn, server);
if (txtFile != null) {
txtFile.write("");
}
@@ -33911,59 +33992,59 @@ function NetscriptFunctions(workerScript) {
//Bladeburner API
bladeburner : {
- isContractName : function(name) {
+ getContractNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isContractName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getContractNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isContractName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getContractNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
if (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner instanceof _Bladeburner_js__WEBPACK_IMPORTED_MODULE_4__["Bladeburner"] && (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bitNodeN === 7 || hasBladeburner2079SF)) {
- return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.isContractNameNetscriptFn(name);
+ return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.getContractNamesNetscriptFn(name);
}
- throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "isContractName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "getContractNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isOperationName : function(name) {
+ getOperationNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isOperationName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getOperationNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isOperationName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getOperationNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
if (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner instanceof _Bladeburner_js__WEBPACK_IMPORTED_MODULE_4__["Bladeburner"] && (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bitNodeN === 7 || hasBladeburner2079SF)) {
- return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.isOperationNameNetscriptFn(name);
+ return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.getOperationNamesNetscriptFn(name);
}
- throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "isOperationName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "getOperationNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isBlackOpName : function(name) {
+ getBlackOpNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isBlackOpName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getBlackOpNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isBlackOpName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getBlackOpNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
if (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner instanceof _Bladeburner_js__WEBPACK_IMPORTED_MODULE_4__["Bladeburner"] && (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bitNodeN === 7 || hasBladeburner2079SF)) {
- return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.isBlackOpNameNetscriptFn(name);
+ return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.getBlackOpNamesNetscriptFn(name);
}
- throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "isBlackOpName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "getBlackOpNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isGeneralActionName : function(name) {
+ getGeneralActionNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isGeneralActionName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getGeneralActionNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isGeneralActionName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getGeneralActionNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
if (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner instanceof _Bladeburner_js__WEBPACK_IMPORTED_MODULE_4__["Bladeburner"] && (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bitNodeN === 7 || hasBladeburner2079SF)) {
- return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.isGeneralActionNameNetscriptFn(name);
+ return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.getGeneralActionNamesNetscriptFn(name);
}
- throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "isGeneralActionName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "getGeneralActionNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isSkillName : function(name) {
+ getSkillNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isSkillName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getSkillNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isSkillName", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getSkillNames", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 10);
if (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner instanceof _Bladeburner_js__WEBPACK_IMPORTED_MODULE_4__["Bladeburner"] && (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bitNodeN === 7 || hasBladeburner2079SF)) {
- return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.isSkillNameNetscriptFn(name);
+ return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.getSkillNamesNetscriptFn(name);
}
- throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "isSkillName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "getSkillNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
startAction : function(type="", name="") {
@@ -33981,15 +34062,15 @@ function NetscriptFunctions(workerScript) {
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "startAction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- stopAction : function() {
+ stopBladeburnerAction : function() {
if (workerScript.checkingRam) {
- return updateStaticRam("stopAction", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 2);
+ return updateStaticRam("stopBladeburnerAction", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 2);
}
- updateDynamicRam("stopAction", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 2);
+ updateDynamicRam("stopBladeburnerAction", _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptBladeburnerApiBaseRamCost / 2);
if (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner instanceof _Bladeburner_js__WEBPACK_IMPORTED_MODULE_4__["Bladeburner"] && (_Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bitNodeN === 7 || hasBladeburner2079SF)) {
return _Player_js__WEBPACK_IMPORTED_MODULE_16__["Player"].bladeburner.resetAction();
}
- throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "stopAction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "stopBladeburnerAction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
getActionTime : function(type="", name="") {
@@ -34200,7 +34281,7 @@ function NetscriptFunctions(workerScript) {
}
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_25__["makeRuntimeRejectMsg"])(workerScript, "joinBladeburnerFaction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
- }
+ },
}
} //End return
} //End NetscriptFunction()
@@ -42196,7 +42277,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BitNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BitNode.js */ 14);
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./engine.js */ 5);
/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Player.js */ 0);
-/* harmony import */ var _Prestige_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Prestige.js */ 55);
+/* harmony import */ var _Prestige_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Prestige.js */ 56);
/* harmony import */ var _SourceFile_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SourceFile.js */ 40);
/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Terminal.js */ 21);
/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
@@ -42409,7 +42490,8 @@ function loadBitVerse(destroyedBitNodeNum, flume=false) {
var elemId = "bitnode-" + i.toString();
var elem = Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_7__["clearEventListeners"])(elemId);
if (elem == null) {return;}
- if (i === 1 || i === 2 || i === 3 || i === 4 || i === 5 || i === 6 || i === 8 || i === 11 || i === 12) {
+ if (i === 1 || i === 2 || i === 3 || i === 4 || i === 5 ||
+ i === 6 || i === 7 || i === 8 || i === 11 || i === 12) {
elem.addEventListener("click", function() {
var bitNodeKey = "BitNode" + i;
var bitNode = _BitNode_js__WEBPACK_IMPORTED_MODULE_0__["BitNodes"][bitNodeKey];
@@ -53359,6 +53441,17 @@ function applySourceFile(srcFile) {
_Player_js__WEBPACK_IMPORTED_MODULE_0__["Player"].dexterity_exp_mult *= incMult;
_Player_js__WEBPACK_IMPORTED_MODULE_0__["Player"].agility_exp_mult *= incMult;
break;
+ case 7: //Bladeburner 2079
+ var mult = 0;
+ for (var i = 0; i < srcFile.lvl; ++i) {
+ mult += (8 / (Math.pow(2, i)));
+ }
+ var incMult = 1 + (mult / 100);
+ _Player_js__WEBPACK_IMPORTED_MODULE_0__["Player"].bladeburner_max_stamina_mult *= incMult;
+ _Player_js__WEBPACK_IMPORTED_MODULE_0__["Player"].bladeburner_stamina_gain_mult *= incMult;
+ _Player_js__WEBPACK_IMPORTED_MODULE_0__["Player"].bladeburner_analysis_mult *= incMult;
+ _Player_js__WEBPACK_IMPORTED_MODULE_0__["Player"].bladeburner_success_chance_mult *= incMult;
+ break;
case 8: //Ghost of Wall Street
var mult = 0;
for (var i = 0; i < srcFile.lvl; ++i) {
@@ -53739,7 +53832,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _BitNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BitNode.js */ 14);
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./engine.js */ 5);
/* harmony import */ var _Faction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Faction.js */ 11);
-/* harmony import */ var _Literature_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Literature.js */ 51);
+/* harmony import */ var _Literature_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Literature.js */ 52);
/* harmony import */ var _Location_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Location.js */ 4);
/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Player.js */ 0);
/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! decimal.js */ 23);
@@ -58670,99 +58763,128 @@ _utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_9__["Reviver"].constructors.Corpo
/***/ }),
/* 43 */
/*!*************************!*\
- !*** ./src/TextFile.js ***!
+ !*** ./src/TextFile.ts ***!
\*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ (function(module, exports, __webpack_require__) {
"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFile", function() { return TextFile; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextFile", function() { return getTextFile; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createTextFile", function() { return createTextFile; });
-/* harmony import */ var _Server_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Server.js */ 8);
-/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
-/* harmony import */ var _utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/JSONReviver.js */ 9);
-
-
-
-function TextFile(fn="", txt="") {
- this.fn = fn.endsWith(".txt") ? fn : fn + ".txt";
- this.fn = this.fn.replace(/\s+/g, '');
- this.text = String(txt);
-}
-
-TextFile.prototype.append = function(txt) {
- this.text += String(txt);
-}
-
-TextFile.prototype.write = function(txt) {
- this.text = String(txt);
-}
-
-TextFile.prototype.read = function() {
- return this.txt;
-}
-
-TextFile.prototype.show = function() {
- Object(_utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_1__["dialogBoxCreate"])(this.fn + "
" + this.text, true);
-}
-
-TextFile.prototype.download = function() {
- var filename = this.fn;
- var file = new Blob([this.text], {type: 'text/plain'});
- if (window.navigator.msSaveOrOpenBlob) {// IE10+
- window.navigator.msSaveOrOpenBlob(file, filename);
- } else { // Others
- var a = document.createElement("a"),
- url = URL.createObjectURL(file);
- a.href = url;
- a.download = this.fn;
- document.body.appendChild(a);
- a.click();
- setTimeout(function() {
- document.body.removeChild(a);
- window.URL.revokeObjectURL(url);
- }, 0);
+Object.defineProperty(exports, "__esModule", { value: true });
+const DialogBox_1 = __webpack_require__(/*! ../utils/DialogBox */ 7);
+const JSONReviver_1 = __webpack_require__(/*! ../utils/JSONReviver */ 9);
+/**
+ * Represents a plain text file that is typically stored on a server.
+ */
+class TextFile {
+ /**
+ * Initiatizes a TextFile from a JSON save state.
+ */
+ static fromJSON(value) {
+ return JSONReviver_1.Generic_fromJSON(TextFile, value.data);
+ }
+ constructor(fn = "", txt = "") {
+ this.fn = (fn.endsWith(".txt") ? fn : `${fn}.txt`).replace(/\s+/g, "");
+ this.text = txt;
+ }
+ /**
+ * Concatenates the raw values to the end of current content.
+ */
+ append(txt) {
+ this.text += txt;
+ }
+ /**
+ * Serves the file to the user as a downloadable resource through the browser.
+ */
+ download() {
+ const filename = this.fn;
+ const file = new Blob([this.text], { type: "text/plain" });
+ /* tslint:disable-next-line:strict-boolean-expressions */
+ if (window.navigator.msSaveOrOpenBlob) {
+ // IE10+
+ window.navigator.msSaveOrOpenBlob(file, filename);
+ }
+ else {
+ // Others
+ const a = document.createElement("a");
+ const url = URL.createObjectURL(file);
+ a.href = url;
+ a.download = this.fn;
+ document.body.appendChild(a);
+ a.click();
+ setTimeout(() => {
+ document.body.removeChild(a);
+ window.URL.revokeObjectURL(url);
+ }, 0);
+ }
+ }
+ /**
+ * Retrieve the content of the file.
+ */
+ read() {
+ return this.text;
+ }
+ /**
+ * Shows the content to the user via the game's dialog box.
+ */
+ show() {
+ DialogBox_1.dialogBoxCreate(`${this.fn}
${this.text}`, true);
+ }
+ /**
+ * Serialize the current file to a JSON save state.
+ */
+ toJSON() {
+ return JSONReviver_1.Generic_toJSON("TextFile", this);
+ }
+ /**
+ * Replaces the current content with the text provided.
+ */
+ write(txt) {
+ this.text = txt;
}
}
-
-TextFile.prototype.toJSON = function() {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_2__["Generic_toJSON"])("TextFile", this);
-}
-
-TextFile.fromJSON = function(value) {
- return Object(_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_2__["Generic_fromJSON"])(TextFile, value.data);
-}
-
-_utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_2__["Reviver"].constructors.TextFile = TextFile;
-
+exports.TextFile = TextFile;
+JSONReviver_1.Reviver.constructors.TextFile = TextFile;
+/**
+ * Retrieve the file object for the filename on the specified server.
+ * @param fn The file name to look for
+ * @param server The server object to look in
+ * @returns The file object, or null if it couldn't find it.
+ */
function getTextFile(fn, server) {
- if (!fn.endsWith(".txt")) {fn += ".txt";}
- for (var i = 0; i < server.textFiles.length; ++i) {
- if (server.textFiles[i].fn === fn) {
- return server.textFiles[i];
+ const filename = !fn.endsWith(".txt") ? `${fn}.txt` : fn;
+ for (const file of server.textFiles) {
+ if (file.fn === filename) {
+ return file;
}
}
return null;
}
-
-//Returns the TextFile object that was just created
+exports.getTextFile = getTextFile;
+/**
+ * Creates a TextFile on the target server.
+ * @param fn The file name to create.
+ * @param txt The contents of the file.
+ * @param server The server that the file should be created on.
+ * @returns The instance of the file.
+ */
function createTextFile(fn, txt, server) {
if (getTextFile(fn, server) !== null) {
- console.log("ERROR: createTextFile failed because the specified " +
- "server already has a text file with the same fn");
- return;
+ // This should probably be a `throw`...
+ /* tslint:disable-next-line:no-console */
+ console.error(`A file named "${fn}" already exists on server ${server.hostname}.`);
+ return undefined;
}
- var file = new TextFile(fn, txt);
+ const file = new TextFile(fn, txt);
server.textFiles.push(file);
return file;
}
-
+exports.createTextFile = createTextFile;
+/* tslint:disable-next-line:no-unused-variable */
function deleteTextFile(fn, server) {
- if (!fn.endsWith(".txt")) {fn += ".txt";}
- for (var i = 0; i < server.textFiles.length; ++i) {
- if (server.textFiles[i].fn === fn) {
+ const filename = !fn.endsWith(".txt") ? `${fn}.txt` : fn;
+ /* tslint:disable-next-line:typedef */
+ for (let i = 0; i < server.textFiles.length; ++i) {
+ if (server.textFiles[i].fn === filename) {
server.textFiles.splice(i, 1);
return true;
}
@@ -58771,8 +58893,6 @@ function deleteTextFile(fn, server) {
}
-
-
/***/ }),
/* 44 */
/*!******************************!*\
@@ -58864,7 +58984,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./SpecialServerIps.js */ 18);
/* harmony import */ var _StockMarket_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./StockMarket.js */ 20);
/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
-/* harmony import */ var _utils_GameOptions_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/GameOptions.js */ 52);
+/* harmony import */ var _utils_GameOptions_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/GameOptions.js */ 53);
/* harmony import */ var _utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/HelperFunctions.js */ 1);
/* harmony import */ var _utils_JSONReviver_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/JSONReviver.js */ 9);
/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
@@ -59368,8 +59488,10 @@ function loadImportedGame(saveObj, saveString) {
var time = numCyclesOffline * _engine_js__WEBPACK_IMPORTED_MODULE_3__["Engine"]._idleSpeed;
if (_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].totalPlaytime == null) {_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].totalPlaytime = 0;}
if (_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].playtimeSinceLastAug == null) {_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].playtimeSinceLastAug = 0;}
+ if (_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].playtimeSinceLastBitnode == null) {_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].playtimeSinceLastBitnode = 0;}
_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].totalPlaytime += time;
_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].playtimeSinceLastAug += time;
+ _Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].playtimeSinceLastBitnode += time;
//Re-apply augmentations
_Player_js__WEBPACK_IMPORTED_MODULE_9__["Player"].reapplyAllAugmentations();
@@ -59767,6 +59889,142 @@ function logBoxUpdateText() {
/***/ }),
/* 50 */
+/*!************************!*\
+ !*** ./src/DarkWeb.js ***!
+ \************************/
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkIfConnectedToDarkweb", function() { return checkIfConnectedToDarkweb; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeDarkwebTerminalCommand", function() { return executeDarkwebTerminalCommand; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DarkWebItems", function() { return DarkWebItems; });
+/* harmony import */ var _CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateProgram.js */ 16);
+/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Player.js */ 0);
+/* harmony import */ var _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SpecialServerIps.js */ 18);
+/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Terminal.js */ 21);
+/* harmony import */ var _utils_IPAddress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/IPAddress.js */ 15);
+/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
+
+
+
+
+
+
+
+
+
+/* DarkWeb.js */
+//Posts a "help" message if connected to DarkWeb
+function checkIfConnectedToDarkweb() {
+ if (_SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_2__["SpecialServerIps"].hasOwnProperty("Darkweb Server")) {
+ var darkwebIp = _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_2__["SpecialServerIps"]["Darkweb Server"];
+ if (!Object(_utils_IPAddress_js__WEBPACK_IMPORTED_MODULE_4__["isValidIPAddress"])(darkwebIp)) {return;}
+ if (darkwebIp == _Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].getCurrentServer().ip) {
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("You are now connected to the dark web. From the dark web you can purchase illegal items. " +
+ "Use the 'buy -l' command to display a list of all the items you can buy. Use 'buy [item-name] " +
+ "to purchase an item");
+ }
+ }
+}
+
+//Handler for dark web commands. The terminal's executeCommand() function will pass
+//dark web-specific commands into this. It will pass in the raw split command array
+//rather than the command string
+function executeDarkwebTerminalCommand(commandArray) {
+ if (commandArray.length == 0) {return;}
+ switch (commandArray[0]) {
+ case "buy":
+ if (commandArray.length != 2) {
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Incorrect number of arguments. Usage: ");
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("buy -l");
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("buy [item name]");
+ return;
+ }
+ var arg = commandArray[1];
+ if (arg == "-l") {
+ listAllDarkwebItems();
+ } else {
+ buyDarkwebItem(arg);
+ }
+ break;
+ default:
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Command not found");
+ break;
+ }
+}
+
+function listAllDarkwebItems() {
+ for(const key in DarkWebItems) {
+ const item = DarkWebItems[key];
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])(item.toString());
+ }
+}
+
+function buyDarkwebItem(itemName) {
+ itemName = itemName.toLowerCase();
+
+ // find the program that matches, if any
+ let item = null;
+ for(const key in DarkWebItems) {
+ const i = DarkWebItems[key];
+ if(i.program.toLowerCase() == itemName) {
+ item = i;
+ }
+ }
+
+ // return if invalid
+ if(item === null) {
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Unrecognized item: "+itemName);
+ return;
+ }
+
+ // return if the player already has it.
+ if(_Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].hasProgram(item.program)) {
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])('You already have the '+item.program+' program');
+ return;
+ }
+
+ // return if the player doesn't have enough money
+ if(_Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].money.lt(item.price)) {
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Not enough money to purchase " + item.program);
+ return;
+ }
+
+ // buy and push
+ _Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].loseMoney(item.price);
+ _Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].getHomeComputer().programs.push(item.program);
+ Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])('You have purchased the '+item.program+' program. The new program can be found on your home computer.');
+}
+
+function DarkWebItem(program, price, description) {
+ this.program = program;
+ this.price = price;
+ this.description = description;
+}
+
+// formats the item for the terminal (eg. "BruteSSH.exe - $500,000 - Opens up SSH Ports")
+DarkWebItem.prototype.toString = function() {
+ return [this.program, "$"+Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_5__["formatNumber"])(this.price), this.description].join(' - ');
+}
+
+const DarkWebItems = {
+ BruteSSHProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].BruteSSHProgram, 500000, "Opens up SSH Ports"),
+ FTPCrackProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].FTPCrackProgram, 1500000, "Opens up FTP Ports"),
+ RelaySMTPProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].RelaySMTPProgram, 5000000, "Opens up SMTP Ports"),
+ HTTPWormProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].HTTPWormProgram, 30000000, "Opens up HTTP Ports"),
+ SQLInjectProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].SQLInjectProgram, 250000000, "Opens up SQL Ports"),
+ DeepscanV1: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].DeepscanV1, 500000, "Enables 'scan-analyze' with a depth up to 5"),
+ DeepscanV2: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].DeepscanV2, 25000000, "Enables 'scan-analyze' with a depth up to 10"),
+ AutolinkProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].AutoLink, 1000000, "Enables direct connect via 'scan-analyze'"),
+};
+
+
+
+
+
+/***/ }),
+/* 51 */
/*!************************************************************!*\
!*** ./node_modules/readable-stream/lib/_stream_duplex.js ***!
\************************************************************/
@@ -59819,7 +60077,7 @@ module.exports = Duplex;
/**/
var util = __webpack_require__(/*! core-util-is */ 58);
-util.inherits = __webpack_require__(/*! inherits */ 53);
+util.inherits = __webpack_require__(/*! inherits */ 54);
/**/
var Readable = __webpack_require__(/*! ./_stream_readable */ 113);
@@ -59899,7 +60157,7 @@ function forEach(xs, f) {
}
/***/ }),
-/* 51 */
+/* 52 */
/*!***************************!*\
!*** ./src/Literature.js ***!
\***************************/
@@ -60345,7 +60603,7 @@ function initLiterature() {
/***/ }),
-/* 52 */
+/* 53 */
/*!******************************!*\
!*** ./utils/GameOptions.js ***!
\******************************/
@@ -60404,7 +60662,7 @@ function gameOptionsBoxOpen() {
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 39)))
/***/ }),
-/* 53 */
+/* 54 */
/*!***************************************************!*\
!*** ./node_modules/inherits/inherits_browser.js ***!
\***************************************************/
@@ -60436,7 +60694,7 @@ if (typeof Object.create === 'function') {
/***/ }),
-/* 54 */
+/* 55 */
/*!****************************************!*\
!*** ./node_modules/jszip/lib/utf8.js ***!
\****************************************/
@@ -60721,7 +60979,7 @@ exports.Utf8EncodeWorker = Utf8EncodeWorker;
/***/ }),
-/* 55 */
+/* 56 */
/*!*************************!*\
!*** ./src/Prestige.js ***!
\*************************/
@@ -61069,141 +61327,6 @@ function prestigeSourceFile() {
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 39)))
-/***/ }),
-/* 56 */
-/*!************************!*\
- !*** ./src/DarkWeb.js ***!
- \************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkIfConnectedToDarkweb", function() { return checkIfConnectedToDarkweb; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeDarkwebTerminalCommand", function() { return executeDarkwebTerminalCommand; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DarkWebItems", function() { return DarkWebItems; });
-/* harmony import */ var _CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateProgram.js */ 16);
-/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Player.js */ 0);
-/* harmony import */ var _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SpecialServerIps.js */ 18);
-/* harmony import */ var _Terminal_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Terminal.js */ 21);
-/* harmony import */ var _utils_IPAddress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/IPAddress.js */ 15);
-/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
-
-
-
-
-
-
-
-
-
-/* DarkWeb.js */
-//Posts a "help" message if connected to DarkWeb
-function checkIfConnectedToDarkweb() {
- if (_SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_2__["SpecialServerIps"].hasOwnProperty("Darkweb Server")) {
- var darkwebIp = _SpecialServerIps_js__WEBPACK_IMPORTED_MODULE_2__["SpecialServerIps"]["Darkweb Server"];
- if (!Object(_utils_IPAddress_js__WEBPACK_IMPORTED_MODULE_4__["isValidIPAddress"])(darkwebIp)) {return;}
- if (darkwebIp == _Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].getCurrentServer().ip) {
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("You are now connected to the dark web. From the dark web you can purchase illegal items. " +
- "Use the 'buy -l' command to display a list of all the items you can buy. Use 'buy [item-name] " +
- "to purchase an item");
- }
- }
-}
-
-//Handler for dark web commands. The terminal's executeCommand() function will pass
-//dark web-specific commands into this. It will pass in the raw split command array
-//rather than the command string
-function executeDarkwebTerminalCommand(commandArray) {
- if (commandArray.length == 0) {return;}
- switch (commandArray[0]) {
- case "buy":
- if (commandArray.length != 2) {
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Incorrect number of arguments. Usage: ");
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("buy -l");
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("buy [item name]");
- return;
- }
- var arg = commandArray[1];
- if (arg == "-l") {
- listAllDarkwebItems();
- } else {
- buyDarkwebItem(arg);
- }
- break;
- default:
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Command not found");
- break;
- }
-}
-
-function listAllDarkwebItems() {
- for(const key in DarkWebItems) {
- const item = DarkWebItems[key];
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])(item.toString());
- }
-}
-
-function buyDarkwebItem(itemName) {
- itemName = itemName.toLowerCase();
-
- // find the program that matches, if any
- let item = null;
- for(const key in DarkWebItems) {
- const i = DarkWebItems[key];
- if(i.program.toLowerCase() == itemName) {
- item = i;
- }
- }
-
- // return if invalid
- if(item === null) {
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Unrecognized item: "+itemName);
- return;
- }
-
- // return if the player already has it.
- if(_Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].hasProgram(item.program)) {
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])('You already have the '+item.program+' program');
- return;
- }
-
- // return if the player doesn't have enough money
- if(_Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].money.lt(item.price)) {
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])("Not enough money to purchase " + item.program);
- return;
- }
-
- // buy and push
- _Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].loseMoney(item.price);
- _Player_js__WEBPACK_IMPORTED_MODULE_1__["Player"].getHomeComputer().programs.push(item.program);
- Object(_Terminal_js__WEBPACK_IMPORTED_MODULE_3__["post"])('You have purchased the '+item.program+' program. The new program can be found on your home computer.');
-}
-
-function DarkWebItem(program, price, description) {
- this.program = program;
- this.price = price;
- this.description = description;
-}
-
-// formats the item for the terminal (eg. "BruteSSH.exe - $500,000 - Opens up SSH Ports")
-DarkWebItem.prototype.toString = function() {
- return [this.program, "$"+Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_5__["formatNumber"])(this.price), this.description].join(' - ');
-}
-
-const DarkWebItems = {
- BruteSSHProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].BruteSSHProgram, 500000, "Opens up SSH Ports"),
- FTPCrackProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].FTPCrackProgram, 1500000, "Opens up FTP Ports"),
- RelaySMTPProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].RelaySMTPProgram, 5000000, "Opens up SMTP Ports"),
- HTTPWormProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].HTTPWormProgram, 30000000, "Opens up HTTP Ports"),
- SQLInjectProgram: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].SQLInjectProgram, 250000000, "Opens up SQL Ports"),
- DeepscanV1: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].DeepscanV1, 500000, "Enables 'scan-analyze' with a depth up to 5"),
- DeepscanV2: new DarkWebItem(_CreateProgram_js__WEBPACK_IMPORTED_MODULE_0__["Programs"].DeepscanV2, 25000000, "Enables 'scan-analyze' with a depth up to 10"),
-};
-
-
-
-
-
/***/ }),
/* 57 */
/*!********************************************!*\
@@ -64000,231 +64123,225 @@ function cinematicTextEnd() {
/***/ }),
/* 69 */
/*!*************************!*\
- !*** ./src/HelpText.js ***!
+ !*** ./src/HelpText.ts ***!
\*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ (function(module, exports, __webpack_require__) {
"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TerminalHelpText", function() { return TerminalHelpText; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HelpTexts", function() { return HelpTexts; });
-/* HelpText.js */
-let TerminalHelpText =
- "Type 'help name' to learn more about the command 'name'
" +
- 'alias [-g] [name="value"] Create or display Terminal aliases
' +
- "analyze Get information about the current machine
" +
- "buy [-l/program] Purchase a program through the Dark Web
" +
- "cat [file] Display a .msg, .lit, or .txt file
" +
- "check [script] [args...] Print a script's logs to Terminal
" +
- "clear Clear all text on the terminal
" +
- "cls See 'clear' command
" +
- "connect [ip/hostname] Connects to a remote server
" +
- "download [script/text file] Downloads scripts or text files to your computer
" +
- "free Check the machine's memory (RAM) usage
" +
- "hack Hack the current machine
" +
- "help [command] Display this help text, or the help text for a command
" +
- "home Connect to home computer
" +
- "hostname Displays the hostname of the machine
" +
- "ifconfig Displays the IP address of the machine
" +
- "kill [script] [args...] Stops the specified script on the current server
" +
- "killall Stops all running scripts on the current machine
" +
- "ls [| grep pattern] Displays all files on the machine
" +
- "lscpu Displays the number of CPU cores on the machine
" +
- "mem [script] [-t] [n] Displays the amount of RAM required to run the script
" +
- "nano [file] Text editor - Open up and edit a script or text file
" +
- "ps Display all scripts that are currently running
" +
- "rm [file] Delete a file from the server
" +
- "run [name] [-t] [n] [args...] Execute a program or script
" +
- "scan Prints all immediately-available network connections
" +
- "scan-analyze [d] [-a] Prints info for all servers up to d nodes away
" +
- "scp [file] [server] Copies a file to a destination server
" +
- "sudov Shows whether you have root access on this computer
" +
- "tail [script] [args...] Displays dynamic logs for the specified script
" +
- "theme [preset] | bg txt hlgt Change the color scheme of the UI
" +
- "top Displays all running scripts and their RAM usage
" +
- 'unalias "[alias name]" Deletes the specified alias
';
-let HelpTexts = {
- alias: 'alias [-g] [name="value"]
' +
- "Create or display aliases. An alias enables a replacement of a word with another string. " +
- "It can be used to abbreviate a commonly used command, or commonly used parts of a command. The NAME " +
- "of an alias defines the word that will be replaced, while the VALUE defines what it will be replaced by. For example, " +
- "you could create the alias 'nuke' for the Terminal command 'run NUKE.exe' using the following:
" +
- 'alias nuke="run NUKE.exe"
' +
- "Then, to run the NUKE.exe program you would just have to enter 'nuke' in Terminal rather than the full command. " +
- "It is important to note that 'default' aliases will only be substituted for the first word of a Terminal command. For " +
- "example, if the following alias was set:
" +
- 'alias worm="HTTPWorm.exe"
' +
- "and then you tried to run the following terminal command:
" +
- "run worm
" +
- "This would fail because the worm alias is not the first word of a Terminal command. To allow an alias to be substituted " +
- "anywhere in a Terminal command, rather than just the first word, you must set it to be a global alias using the -g flag:
" +
- 'alias -g worm="HTTPWorm.exe"
' +
- "Now, the 'worm' alias will be substituted anytime it shows up as an individual word in a Terminal command.
" +
- "Entering just the command 'alias' without any arguments prints the list of all defined aliases in the reusable form " +
- "'alias NAME=VALUE' on the Terminal.
" +
- "The 'unalias' command can be used to remove aliases.
",
- analyze: "analze
" +
- "Prints details and statistics about the current server. The information that is printed includes basic " +
- "server details such as the hostname, whether the player has root access, what ports are opened/closed, and also " +
- "hacking-related information such as an estimated chance to successfully hack, an estimate of how much money is " +
- "available on the server, etc.",
- buy: "buy [-l / program]
" +
- "Purchase a program through the Dark Web. Requires a TOR router to use.
" +
- "If this command is ran with the '-l' flag, it will display a list of all programs that can be bought through the " +
- "dark web to the Terminal, as well as their costs.
" +
- "Otherwise, the name of the program must be passed in as a parameter. This is name is NOT case-sensitive.",
- cat: "cat [file]
" +
- "Display message (.msg), literature (.lit), or text (.txt) files. Examples:
" +
- "cat j1.msg
" +
- "cat foo.lit
" +
- "cat servers.txt",
- check: "check [script name] [args...]
" +
- "Print the logs of the script specified by the script name and arguments to the Terminal. Each argument must be separated by " +
- "a space. Remember that a running script is uniquely " +
- "identified both by its name and the arguments that are used to start it. So, if a script was ran with the following arguments:
" +
- "run foo.script 1 2 foodnstuff
" +
- "Then to run the 'check' command on this script you would have to pass the same arguments in:
" +
- "check foo.script 1 2 foodnstuff",
- clear: "clear
" +
- "Clear the Terminal screen, deleting all of the text. Note that this does not delete the user's command history, so using the up " +
- "and down arrow keys is still valid. Also note that this is permanent and there is no way to undo this. Synonymous with 'cls' command",
- cls: "cls
" +
- "Clear the Terminal screen, deleting all of the text. Note that this does not delete the user's command history, so using the up " +
- "and down arrow keys is still valid. Also note that this is permanent and there is no way to undo this. Synonymous with 'clear' command",
- connect: "connect [hostname/ip]
" +
- "Connect to a remote server. The hostname or IP address of the remote server must be given as the argument " +
- "to this command. Note that only servers that are immediately adjacent to the current server in the network can be connected to. To " +
- "see which servers can be connected to, use the 'scan' command.",
- download: "download [script/text file]
" +
- "Downloads a script or text file to your computer (like your real life computer).
" +
- "You can also download all of your scripts/text files as a zip file using the following Terminal commands:
" +
- "Download all scripts and text files: download *
" +
- "Download all scripts: download *.script
" +
- "Download all text files: download *.txt
",
- free: "free
" +
- "Display's the memory usage on the current machine. Print the amount of RAM that is available on the current server as well as " +
- "how much of it is being used.",
- hack: "hack
" +
- "Attempt to hack the current server. Requires root access in order to be run. See the wiki page for hacking mechanics
",
- help: "help [command]
" +
- "Display Terminal help information. Without arguments, 'help' prints a list of all valid Terminal commands and a brief " +
- "description of their functionality. You can also pass the name of a Terminal command as an argument to 'help' to print " +
- "more detailed information about the Terminal command. Examples:
" +
- "help alias
" +
- "help scan-analyze",
- home: "home
" +
- "Connect to your home computer. This will work no matter what server you are currently connected to.",
- hostname: "hostname
" +
- "Prints the hostname of the current server",
- ifconfig: "ipconfig
" +
- "Prints the IP address of the current server",
- kill: "kill [script name] [args...]
" +
- "Kill the script specified by the script name and arguments. Each argument must be separated by " +
- "a space. Remember that a running script is uniquely identified by " +
- "both its name and the arguments that are used to start it. So, if a script was ran with the following arguments:
" +
- "run foo.script 1 sigma-cosmetics
" +
- "Then to kill this script the same arguments would have to be used:
" +
- "kill foo.script 1 sigma-cosmetics
" +
- "Note that after issuing the 'kill' command for a script, it may take a while for the script to actually stop running. " +
- "This will happen if the script is in the middle of a command such as grow() or weaken() that takes time to execute. " +
- "The script will not be stopped/killed until after that time has elapsed.",
- killall: "killall
" +
- "Kills all scripts on the current server. " +
- "Note that after the 'kill' command is issued for a script, it may take a while for the script to actually stop running. " +
- "This will happen if the script is in the middle of a command such as grow() or weaken() that takes time to execute. " +
- "The script will not be stopped/killed until after that time has elapsed.",
- ls: "ls [| grep pattern]
" +
- "The ls command, with no arguments, prints all files on the current server to the Terminal screen. " +
- "This includes all scripts, programs, and message files. " +
- "The files will be displayed in alphabetical order.
" +
- "The '| grep pattern' optional parameter can be used to only display files whose filenames match the specified pattern. " +
- "For example, if you wanted to only display files with the .script extension, you could use:
" +
- "ls | grep .script
" +
- "Alternatively, if you wanted to display all files with the word purchase in the filename, you could use:
" +
- "ls | grep purchase",
- lscpu: "lscpu
" +
- "Prints the number of CPU Cores the current server has",
- mem: "mem [script name] [-t] [num threads]
" +
- "Displays the amount of RAM needed to run the specified script with a single thread. The command can also be used to print " +
- "the amount of RAM needed to run a script with multiple threads using the '-t' flag. If the '-t' flag is specified, then " +
- "an argument for the number of threads must be passed in afterwards. Examples:
" +
- "mem foo.script
" +
- "mem foo.script -t 50
" +
- "The first example above will print the amount of RAM needed to run 'foo.script' with a single thread. The second example " +
- "above will print the amount of RAM needed to run 'foo.script' with 50 threads.",
- nano: "nano [file name]
" +
- "Opens up the specified file in the Text Editor. Only scripts (.script) or text files (.txt) can be " +
- "edited using the Text Editor. If the file does not already exist, then a new, empty one " +
- "will be created",
- ps: "ps
" +
- "Prints all scripts that are running on the current server",
- rm: "rm [file]
" +
- "Removes the specified file from the current server. A file can be a script, a program, or a message file.
" +
- "WARNING: This is permanent and cannot be undone",
- run: "run [file name] [-t] [num threads] [args...]
" +
- "Execute a program or a script.
" +
- "The '[-t]', '[num threads]', and '[args...]' arguments are only valid when running a script. The '-t' flag is used " +
- "to indicate that the script should be run with the specified number of threads. If the flag is omitted, " +
- "then the script will be run with a single thread by default. " +
- "If the '-t' flag is used, then it MUST come immediately " +
- "after the script name, and the [num threads] argument MUST come immediately afterwards.
" +
- "[args...] represents a variable number of arguments that will be passed into the script. See the documentation " +
- "about script arguments. Each specified argument must be separated by a space.
",
- scan: "scan
" +
- "Prints all immediately-available network connection. This will print a list of all servers that you can currently connect " +
- "to using the 'connect' Terminal command.",
+Object.defineProperty(exports, "__esModule", { value: true });
+/* tslint:disable:max-line-length completed-docs variable-name*/
+exports.TerminalHelpText = "Type 'help name' to learn more about the command 'name'
" +
+ 'alias [-g] [name="value"] Create or display Terminal aliases
' +
+ "analyze Get information about the current machine
" +
+ "buy [-l/program] Purchase a program through the Dark Web
" +
+ "cat [file] Display a .msg, .lit, or .txt file
" +
+ "check [script] [args...] Print a script's logs to Terminal
" +
+ "clear Clear all text on the terminal
" +
+ "cls See 'clear' command
" +
+ "connect [ip/hostname] Connects to a remote server
" +
+ "download [script/text file] Downloads scripts or text files to your computer
" +
+ "free Check the machine's memory (RAM) usage
" +
+ "hack Hack the current machine
" +
+ "help [command] Display this help text, or the help text for a command
" +
+ "home Connect to home computer
" +
+ "hostname Displays the hostname of the machine
" +
+ "ifconfig Displays the IP address of the machine
" +
+ "kill [script] [args...] Stops the specified script on the current server
" +
+ "killall Stops all running scripts on the current machine
" +
+ "ls [| grep pattern] Displays all files on the machine
" +
+ "lscpu Displays the number of CPU cores on the machine
" +
+ "mem [script] [-t] [n] Displays the amount of RAM required to run the script
" +
+ "nano [file] Text editor - Open up and edit a script or text file
" +
+ "ps Display all scripts that are currently running
" +
+ "rm [file] Delete a file from the server
" +
+ "run [name] [-t] [n] [args...] Execute a program or script
" +
+ "scan Prints all immediately-available network connections
" +
+ "scan-analyze [d] [-a] Prints info for all servers up to d nodes away
" +
+ "scp [file] [server] Copies a file to a destination server
" +
+ "sudov Shows whether you have root access on this computer
" +
+ "tail [script] [args...] Displays dynamic logs for the specified script
" +
+ "theme [preset] | bg txt hlgt Change the color scheme of the UI
" +
+ "top Displays all running scripts and their RAM usage
" +
+ 'unalias "[alias name]" Deletes the specified alias
';
+exports.HelpTexts = {
+ alias: 'alias [-g] [name="value"]
' +
+ "Create or display aliases. An alias enables a replacement of a word with another string. " +
+ "It can be used to abbreviate a commonly used command, or commonly used parts of a command. The NAME " +
+ "of an alias defines the word that will be replaced, while the VALUE defines what it will be replaced by. For example, " +
+ "you could create the alias 'nuke' for the Terminal command 'run NUKE.exe' using the following:
" +
+ 'alias nuke="run NUKE.exe"
' +
+ "Then, to run the NUKE.exe program you would just have to enter 'nuke' in Terminal rather than the full command. " +
+ "It is important to note that 'default' aliases will only be substituted for the first word of a Terminal command. For " +
+ "example, if the following alias was set:
" +
+ 'alias worm="HTTPWorm.exe"
' +
+ "and then you tried to run the following terminal command:
" +
+ "run worm
" +
+ "This would fail because the worm alias is not the first word of a Terminal command. To allow an alias to be substituted " +
+ "anywhere in a Terminal command, rather than just the first word, you must set it to be a global alias using the -g flag:
" +
+ 'alias -g worm="HTTPWorm.exe"
' +
+ "Now, the 'worm' alias will be substituted anytime it shows up as an individual word in a Terminal command.
" +
+ "Entering just the command 'alias' without any arguments prints the list of all defined aliases in the reusable form " +
+ "'alias NAME=VALUE' on the Terminal.
" +
+ "The 'unalias' command can be used to remove aliases.
",
+ analyze: "analze
" +
+ "Prints details and statistics about the current server. The information that is printed includes basic " +
+ "server details such as the hostname, whether the player has root access, what ports are opened/closed, and also " +
+ "hacking-related information such as an estimated chance to successfully hack, an estimate of how much money is " +
+ "available on the server, etc.",
+ buy: "buy [-l / program]
" +
+ "Purchase a program through the Dark Web. Requires a TOR router to use.
" +
+ "If this command is ran with the '-l' flag, it will display a list of all programs that can be bought through the " +
+ "dark web to the Terminal, as well as their costs.
" +
+ "Otherwise, the name of the program must be passed in as a parameter. This is name is NOT case-sensitive.",
+ cat: "cat [file]
" +
+ "Display message (.msg), literature (.lit), or text (.txt) files. Examples:
" +
+ "cat j1.msg
" +
+ "cat foo.lit
" +
+ "cat servers.txt",
+ check: "check [script name] [args...]
" +
+ "Print the logs of the script specified by the script name and arguments to the Terminal. Each argument must be separated by " +
+ "a space. Remember that a running script is uniquely " +
+ "identified both by its name and the arguments that are used to start it. So, if a script was ran with the following arguments:
" +
+ "run foo.script 1 2 foodnstuff
" +
+ "Then to run the 'check' command on this script you would have to pass the same arguments in:
" +
+ "check foo.script 1 2 foodnstuff",
+ clear: "clear
" +
+ "Clear the Terminal screen, deleting all of the text. Note that this does not delete the user's command history, so using the up " +
+ "and down arrow keys is still valid. Also note that this is permanent and there is no way to undo this. Synonymous with 'cls' command",
+ cls: "cls
" +
+ "Clear the Terminal screen, deleting all of the text. Note that this does not delete the user's command history, so using the up " +
+ "and down arrow keys is still valid. Also note that this is permanent and there is no way to undo this. Synonymous with 'clear' command",
+ connect: "connect [hostname/ip]
" +
+ "Connect to a remote server. The hostname or IP address of the remote server must be given as the argument " +
+ "to this command. Note that only servers that are immediately adjacent to the current server in the network can be connected to. To " +
+ "see which servers can be connected to, use the 'scan' command.",
+ download: "download [script/text file]
" +
+ "Downloads a script or text file to your computer (like your real life computer).
" +
+ "You can also download all of your scripts/text files as a zip file using the following Terminal commands:
" +
+ "Download all scripts and text files: download *
" +
+ "Download all scripts: download *.script
" +
+ "Download all text files: download *.txt
",
+ free: "free
" +
+ "Display's the memory usage on the current machine. Print the amount of RAM that is available on the current server as well as " +
+ "how much of it is being used.",
+ hack: "hack
" +
+ "Attempt to hack the current server. Requires root access in order to be run. See the wiki page for hacking mechanics
",
+ help: "help [command]
" +
+ "Display Terminal help information. Without arguments, 'help' prints a list of all valid Terminal commands and a brief " +
+ "description of their functionality. You can also pass the name of a Terminal command as an argument to 'help' to print " +
+ "more detailed information about the Terminal command. Examples:
" +
+ "help alias
" +
+ "help scan-analyze",
+ home: "home
" +
+ "Connect to your home computer. This will work no matter what server you are currently connected to.",
+ hostname: "hostname
" +
+ "Prints the hostname of the current server",
+ ifconfig: "ipconfig
" +
+ "Prints the IP address of the current server",
+ kill: "kill [script name] [args...]
" +
+ "Kill the script specified by the script name and arguments. Each argument must be separated by " +
+ "a space. Remember that a running script is uniquely identified by " +
+ "both its name and the arguments that are used to start it. So, if a script was ran with the following arguments:
" +
+ "run foo.script 1 sigma-cosmetics
" +
+ "Then to kill this script the same arguments would have to be used:
" +
+ "kill foo.script 1 sigma-cosmetics
" +
+ "Note that after issuing the 'kill' command for a script, it may take a while for the script to actually stop running. " +
+ "This will happen if the script is in the middle of a command such as grow() or weaken() that takes time to execute. " +
+ "The script will not be stopped/killed until after that time has elapsed.",
+ killall: "killall
" +
+ "Kills all scripts on the current server. " +
+ "Note that after the 'kill' command is issued for a script, it may take a while for the script to actually stop running. " +
+ "This will happen if the script is in the middle of a command such as grow() or weaken() that takes time to execute. " +
+ "The script will not be stopped/killed until after that time has elapsed.",
+ ls: "ls [| grep pattern]
" +
+ "The ls command, with no arguments, prints all files on the current server to the Terminal screen. " +
+ "This includes all scripts, programs, and message files. " +
+ "The files will be displayed in alphabetical order.
" +
+ "The '| grep pattern' optional parameter can be used to only display files whose filenames match the specified pattern. " +
+ "For example, if you wanted to only display files with the .script extension, you could use:
" +
+ "ls | grep .script
" +
+ "Alternatively, if you wanted to display all files with the word purchase in the filename, you could use:
" +
+ "ls | grep purchase",
+ lscpu: "lscpu
" +
+ "Prints the number of CPU Cores the current server has",
+ mem: "mem [script name] [-t] [num threads]
" +
+ "Displays the amount of RAM needed to run the specified script with a single thread. The command can also be used to print " +
+ "the amount of RAM needed to run a script with multiple threads using the '-t' flag. If the '-t' flag is specified, then " +
+ "an argument for the number of threads must be passed in afterwards. Examples:
" +
+ "mem foo.script
" +
+ "mem foo.script -t 50
" +
+ "The first example above will print the amount of RAM needed to run 'foo.script' with a single thread. The second example " +
+ "above will print the amount of RAM needed to run 'foo.script' with 50 threads.",
+ nano: "nano [file name]
" +
+ "Opens up the specified file in the Text Editor. Only scripts (.script) or text files (.txt) can be " +
+ "edited using the Text Editor. If the file does not already exist, then a new, empty one " +
+ "will be created",
+ ps: "ps
" +
+ "Prints all scripts that are running on the current server",
+ rm: "rm [file]
" +
+ "Removes the specified file from the current server. A file can be a script, a program, or a message file.
" +
+ "WARNING: This is permanent and cannot be undone",
+ run: "run [file name] [-t] [num threads] [args...]
" +
+ "Execute a program or a script.
" +
+ "The '[-t]', '[num threads]', and '[args...]' arguments are only valid when running a script. The '-t' flag is used " +
+ "to indicate that the script should be run with the specified number of threads. If the flag is omitted, " +
+ "then the script will be run with a single thread by default. " +
+ "If the '-t' flag is used, then it MUST come immediately " +
+ "after the script name, and the [num threads] argument MUST come immediately afterwards.
" +
+ "[args...] represents a variable number of arguments that will be passed into the script. See the documentation " +
+ "about script arguments. Each specified argument must be separated by a space.
",
+ scan: "scan
" +
+ "Prints all immediately-available network connection. This will print a list of all servers that you can currently connect " +
+ "to using the 'connect' Terminal command.",
"scan-analyze": "scan-analyze [depth] [-a]
" +
- "Prints detailed information about all servers up to [depth] nodes away on the network. Calling " +
- "'scan-analyze 1' will display information for the same servers that are shown by the 'scan' Terminal " +
- "command. This command also shows the relative paths to reach each server.
" +
- "By default, the maximum depth that can be specified for 'scan-analyze' is 3. However, once you have " +
- "the DeepscanV1.exe and DeepscanV2.exe programs, you can execute 'scan-analyze' with a depth up to " +
- "5 and 10, respectively.
" +
- "The information 'scan-analyze' displays about each server includes whether or not you have root access to it, " +
- "its required hacking level, the number of open ports required to run NUKE.exe on it, and how much RAM " +
- "it has.
" +
- "By default, this command will not display servers that you have purchased. However, you can pass in the " +
- "-a flag at the end of the command if you would like to enable that.",
- scp: "scp [filename] [target server]
" +
- "Copies the specified file from the current server to the target server. " +
- "This command only works for script files (.script extension), literature files (.lit extension), " +
- "and text files (.txt extension). " +
- "The second argument passed in must be the hostname or IP of the target server.",
- sudov: "sudov
" +
- "Prints whether or not you have root access to the current machine",
- tail: "tail [script name] [args...]
" +
- "Displays dynamic logs for the script specified by the script name and arguments. Each argument must be separated " +
- "by a space. Remember that a running script is uniquely identified by both its name and the arguments that were used " +
- "to run it. So, if a script was ran with the following arguments:
" +
- "run foo.script 10 50000
" +
- "Then in order to check its logs with 'tail' the same arguments must be used:
" +
- "tail foo.script 10 50000",
- theme: "theme [preset] | [#background #text #highlight]
" +
- "Change the color of the game's user interface
" +
- "This command can be called with a preset theme. Currently, the supported presets are 'default', 'muted', and 'solarized'. " +
- "However, you can also specify your own color scheme using hex values. To do so, you must specify three hex color values " +
- "for the background color, the text color, and the highlight color. These hex values must be preceded by a pound sign (#) and " +
- "must be either 3 or 6 digits. Example:
" +
- "theme #ffffff #385 #235012
" +
- "A color picker such as " +
- "Google's " +
- "can be used to get your desired hex color values
" +
- "Themes are not saved, so when the game is closed and then re-opened or reloaded then it will revert back to the default theme.",
- top: "top
" +
- "Prints a list of all scripts running on the current server as well as their thread count and how much " +
- "RAM they are using in total.",
- unalias: 'unalias "[alias name]"
' +
- "Deletes the specified alias. Note that the double quotation marks are required.
" +
- "As an example, if an alias was declared using:
" +
- 'alias r="run"
' +
- "Then it could be removed using:
" +
- 'unalias "r"
' +
- "It is not necessary to differentiate between global and non-global aliases when using 'unalias'",
-
-}
-
-
+ "Prints detailed information about all servers up to [depth] nodes away on the network. Calling " +
+ "'scan-analyze 1' will display information for the same servers that are shown by the 'scan' Terminal " +
+ "command. This command also shows the relative paths to reach each server.
" +
+ "By default, the maximum depth that can be specified for 'scan-analyze' is 3. However, once you have " +
+ "the DeepscanV1.exe and DeepscanV2.exe programs, you can execute 'scan-analyze' with a depth up to " +
+ "5 and 10, respectively.
" +
+ "The information 'scan-analyze' displays about each server includes whether or not you have root access to it, " +
+ "its required hacking level, the number of open ports required to run NUKE.exe on it, and how much RAM " +
+ "it has.
" +
+ "By default, this command will not display servers that you have purchased. However, you can pass in the " +
+ "-a flag at the end of the command if you would like to enable that.",
+ scp: "scp [filename] [target server]
" +
+ "Copies the specified file from the current server to the target server. " +
+ "This command only works for script files (.script extension), literature files (.lit extension), " +
+ "and text files (.txt extension). " +
+ "The second argument passed in must be the hostname or IP of the target server.",
+ sudov: "sudov
" +
+ "Prints whether or not you have root access to the current machine",
+ tail: "tail [script name] [args...]
" +
+ "Displays dynamic logs for the script specified by the script name and arguments. Each argument must be separated " +
+ "by a space. Remember that a running script is uniquely identified by both its name and the arguments that were used " +
+ "to run it. So, if a script was ran with the following arguments:
" +
+ "run foo.script 10 50000
" +
+ "Then in order to check its logs with 'tail' the same arguments must be used:
" +
+ "tail foo.script 10 50000",
+ theme: "theme [preset] | [#background #text #highlight]
" +
+ "Change the color of the game's user interface
" +
+ "This command can be called with a preset theme. Currently, the supported presets are 'default', 'muted', and 'solarized'. " +
+ "However, you can also specify your own color scheme using hex values. To do so, you must specify three hex color values " +
+ "for the background color, the text color, and the highlight color. These hex values must be preceded by a pound sign (#) and " +
+ "must be either 3 or 6 digits. Example:
" +
+ "theme #ffffff #385 #235012
" +
+ "A color picker such as " +
+ "Google's " +
+ "can be used to get your desired hex color values
" +
+ "Themes are not saved, so when the game is closed and then re-opened or reloaded then it will revert back to the default theme.",
+ top: "top
" +
+ "Prints a list of all scripts running on the current server as well as their thread count and how much " +
+ "RAM they are using in total.",
+ unalias: 'unalias "[alias name]"
' +
+ "Deletes the specified alias. Note that the double quotation marks are required.
" +
+ "As an example, if an alias was declared using:
" +
+ 'alias r="run"
' +
+ "Then it could be removed using:
" +
+ 'unalias "r"
' +
+ "It is not necessary to differentiate between global and non-global aliases when using 'unalias'",
+};
/***/ }),
@@ -64542,7 +64659,7 @@ Writable.WritableState = WritableState;
/**/
var util = __webpack_require__(/*! core-util-is */ 58);
-util.inherits = __webpack_require__(/*! inherits */ 53);
+util.inherits = __webpack_require__(/*! inherits */ 54);
/**/
/**/
@@ -64575,7 +64692,7 @@ util.inherits(Writable, Stream);
function nop() {}
function WritableState(options, stream) {
- Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 50);
+ Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 51);
options = options || {};
@@ -64725,7 +64842,7 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot
}
function Writable(options) {
- Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 50);
+ Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 51);
// Writable ctor is applied to Duplexes, too.
// `realHasInstance` is necessary because using plain `instanceof`
@@ -65165,7 +65282,7 @@ exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */
exports.Stream = exports;
exports.Readable = exports;
exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 78);
-exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ 50);
+exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ 51);
exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ 108);
exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ 174);
@@ -71214,11 +71331,11 @@ exports.decode = function(input) {
module.exports = Transform;
-var Duplex = __webpack_require__(/*! ./_stream_duplex */ 50);
+var Duplex = __webpack_require__(/*! ./_stream_duplex */ 51);
/**/
var util = __webpack_require__(/*! core-util-is */ 58);
-util.inherits = __webpack_require__(/*! inherits */ 53);
+util.inherits = __webpack_require__(/*! inherits */ 54);
/**/
util.inherits(Transform, Duplex);
@@ -71884,7 +72001,7 @@ function _isUint8Array(obj) {
/**/
var util = __webpack_require__(/*! core-util-is */ 58);
-util.inherits = __webpack_require__(/*! inherits */ 53);
+util.inherits = __webpack_require__(/*! inherits */ 54);
/**/
/**/
@@ -71918,7 +72035,7 @@ function prependListener(emitter, event, fn) {
}
function ReadableState(options, stream) {
- Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 50);
+ Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 51);
options = options || {};
@@ -71995,7 +72112,7 @@ function ReadableState(options, stream) {
}
function Readable(options) {
- Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 50);
+ Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ 51);
if (!(this instanceof Readable)) return new Readable(options);
@@ -79703,7 +79820,7 @@ var readerFor = __webpack_require__(/*! ./reader/readerFor */ 90);
var utils = __webpack_require__(/*! ./utils */ 31);
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 75);
var crc32fn = __webpack_require__(/*! ./crc32 */ 74);
-var utf8 = __webpack_require__(/*! ./utf8 */ 54);
+var utf8 = __webpack_require__(/*! ./utf8 */ 55);
var compressions = __webpack_require__(/*! ./compressions */ 97);
var support = __webpack_require__(/*! ./support */ 48);
@@ -80082,7 +80199,7 @@ var readerFor = __webpack_require__(/*! ./reader/readerFor */ 90);
var utils = __webpack_require__(/*! ./utils */ 31);
var sig = __webpack_require__(/*! ./signature */ 91);
var ZipEntry = __webpack_require__(/*! ./zipEntry */ 133);
-var utf8 = __webpack_require__(/*! ./utf8 */ 54);
+var utf8 = __webpack_require__(/*! ./utf8 */ 55);
var support = __webpack_require__(/*! ./support */ 48);
// class ZipEntries {{{
/**
@@ -80352,7 +80469,7 @@ module.exports = ZipEntries;
var utils = __webpack_require__(/*! ./utils */ 31);
var external = __webpack_require__(/*! ./external */ 57);
-var utf8 = __webpack_require__(/*! ./utf8 */ 54);
+var utf8 = __webpack_require__(/*! ./utf8 */ 55);
var utils = __webpack_require__(/*! ./utils */ 31);
var ZipEntries = __webpack_require__(/*! ./zipEntries */ 136);
var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 98);
@@ -80529,7 +80646,7 @@ module.exports = NodejsStreamInputAdapter;
var utils = __webpack_require__(/*! ../utils */ 31);
var GenericWorker = __webpack_require__(/*! ../stream/GenericWorker */ 38);
-var utf8 = __webpack_require__(/*! ../utf8 */ 54);
+var utf8 = __webpack_require__(/*! ../utf8 */ 55);
var crc32 = __webpack_require__(/*! ../crc32 */ 74);
var signature = __webpack_require__(/*! ../signature */ 91);
@@ -87559,7 +87676,7 @@ exports.generateWorker = function (zip, options, comment) {
var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 102);
var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 100);
-var utf8 = __webpack_require__(/*! ./utf8 */ 54);
+var utf8 = __webpack_require__(/*! ./utf8 */ 55);
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 75);
var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 38);
@@ -88482,7 +88599,7 @@ module.exports = __webpack_require__(/*! ./readable */ 79).Transform
\********************************************************/
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 50);
+module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 51);
/***/ }),
@@ -88536,7 +88653,7 @@ var Transform = __webpack_require__(/*! ./_stream_transform */ 108);
/**/
var util = __webpack_require__(/*! core-util-is */ 58);
-util.inherits = __webpack_require__(/*! inherits */ 53);
+util.inherits = __webpack_require__(/*! inherits */ 54);
/**/
util.inherits(PassThrough, Transform);
@@ -88961,7 +89078,7 @@ if (util && util.inspect && util.inspect.custom) {
module.exports = Stream;
var EE = __webpack_require__(/*! events */ 80).EventEmitter;
-var inherits = __webpack_require__(/*! inherits */ 53);
+var inherits = __webpack_require__(/*! inherits */ 54);
inherits(Stream, EE);
Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 79);
@@ -89329,7 +89446,7 @@ function fromByteArray (uint8) {
"use strict";
-var utf8 = __webpack_require__(/*! ./utf8 */ 54);
+var utf8 = __webpack_require__(/*! ./utf8 */ 55);
var utils = __webpack_require__(/*! ./utils */ 31);
var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 38);
var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 102);
diff --git a/package-lock.json b/package-lock.json
index 73b7d5e88..035eb1c79 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -999,9 +999,9 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000856",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000856.tgz",
- "integrity": "sha512-x3mYcApHMQemyaHuH/RyqtKCGIYTgEA63fdi+VBvDz8xUSmRiVWTLeyKcoGQCGG6UPR9/+4qG4OKrTa6aSQRKg==",
+ "version": "1.0.30000858",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000858.tgz",
+ "integrity": "sha512-oJRGfVfwHr0VKcoy2UqIoRmQcDOugnNAQsWYI3/JTzExrlzxSKtmLW1N4h+gmjgpYCEJthHmaIjok894H5il/g==",
"dev": true
},
"ccount": {
@@ -10300,7 +10300,7 @@
"dev": true,
"requires": {
"browserslist": "3.2.8",
- "caniuse-lite": "1.0.30000856",
+ "caniuse-lite": "1.0.30000858",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
"postcss": "6.0.23",
@@ -10324,7 +10324,7 @@
"integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
"dev": true,
"requires": {
- "caniuse-lite": "1.0.30000856",
+ "caniuse-lite": "1.0.30000858",
"electron-to-chromium": "1.3.50"
}
},
diff --git a/src/BitNode.js b/src/BitNode.js
index 5327e5f54..80be78a22 100644
--- a/src/BitNode.js
+++ b/src/BitNode.js
@@ -115,7 +115,29 @@ function initBitNodes() {
"Level 1: 8%
" +
"Level 2: 12%
" +
"Level 3: 14%");
- BitNodes["BitNode7"] = new BitNode(7, "Hacktocracy", "COMING SOON"); //Healthy Hacknet balancing mechanic
+ BitNodes["BitNode7"] = new BitNode(7, "Bladeburners 2079", "More human than humans",
+ "In the middle of the 21st century, you were doing cutting-edge work at OmniTek Incorporated as part of the AI design team " +
+ "for advanced synthetic androids, or Synthoids for short. You helped achieve a major technological " +
+ "breakthrough in the sixth generation of the company's Synthoid design, called MK-VI, by developing a hyperintelligent AI. " +
+ "Many argue that this was the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, " +
+ "and more intelligent than the humans that had created them.
" +
+ "In this BitNode you will be able to access the Bladeburner API, which allows you to access Bladeburner " +
+ "functionality through Netscript. Furthermore:
" +
+ "The rank you gain from Bladeburner contracts/operations is reduced by 50%
" +
+ "Bladeburner skills cost twice as many skill points
" +
+ "Augmentations are 3x more expensive
" +
+ "Hacking and Hacknet Nodes will be significantly less profitable
" +
+ "Your hacking level is reduced by 50%
" +
+ "Hacking experience gain from scripts is reduced by 75%
" +
+ "Corporations have 80% lower valuations and are therefore less profitable
" +
+ "Working for companies is 50% less profitable
" +
+ "Crimes and Infiltration are 50% less profitable
" +
+ "Destroying this BitNode will give you Source-File 6, or if you already have this Source-File it will upgrade " +
+ "its level up to a maximum of 3. This Source-File allows you to access the Bladeburner Netscript API in other " +
+ "BitNodes. In addition, this Source-File will increase all of your Bladeburner multipliers by:
" +
+ "Level 1: 8%
" +
+ "Level 2: 12%
" +
+ "Level 3: 14%");
BitNodes["BitNode8"] = new BitNode(8, "Ghost of Wall Street", "Money never sleeps",
"You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.
" +
"In this BitNode:
" +
@@ -208,6 +230,9 @@ let BitNodeMultipliers = {
InfiltrationRep: 1,
CorporationValuation: 1,
+
+ BladeburnerRank: 1,
+ BladeburnerSkillCost: 1,
}
function initBitNodeMultipliers() {
@@ -284,6 +309,23 @@ function initBitNodeMultipliers() {
BitNodeMultipliers.FactionPassiveRepGain = 0;
BitNodeMultipliers.HackExpGain = 0.25;
break;
+ case 7: //Bladeburner 2079
+ BitNodeMultipliers.BladeburnerRank = 0.5;
+ BitNodeMultipliers.BladeburnerSkillCost = 2;
+ BitNodeMultipliers.AugmentationMoneyCost = 3;
+ BitNodeMultipliers.HackingLevelMultiplier = 0.5;
+ BitNodeMultipliers.ServerMaxMoney = 0.5;
+ BitNodeMultipliers.ServerStartingMoney = 0.5;
+ BitNodeMultipliers.ServerStartingSecurity = 1.5;
+ BitNodeMultipliers.ScriptHackMoney = 0.5;
+ BitNodeMultipliers.CompanyWorkMoney = 0.5;
+ BitNodeMultipliers.CrimeMoney = 0.5;
+ BitNodeMultipliers.InfiltrationMoney = 0.5;
+ BitNodeMultipliers.CorporationValuation = 0.2;
+ BitNodeMultipliers.HacknetNodeMoney = 0.2;
+ BitNodeMultipliers.FactionPassiveRepGain = 0;
+ BitNodeMultipliers.HackExpGain = 0.25;
+ break;
case 8: //Ghost of Wall Street
BitNodeMultipliers.ScriptHackMoney = 0;
BitNodeMultipliers.ManualHackMoney = 0;
diff --git a/src/Bladeburner.js b/src/Bladeburner.js
index 3dfee17fb..55e8000c5 100644
--- a/src/Bladeburner.js
+++ b/src/Bladeburner.js
@@ -1,4 +1,5 @@
import {Augmentations, AugmentationNames} from "./Augmentations.js";
+import {BitNodeMultipliers} from "./BitNode.js";
import {CONSTANTS} from "./Constants.js";
import {Engine} from "./engine.js";
import {Faction, Factions, factionExists,
@@ -349,6 +350,10 @@ function Skill(params={name:"foo", desc:"foo"}) {
if (params.weaponAbility) {this.weaponAbility = params.weaponAbility;}
if (params.gunAbility) {this.gunAbility = params.gunAbility;}
}
+
+Skill.prototype.calculateCost = function(currentLevel) {
+ return (this.baseCost + (currentLevel * this.costInc)) * BitNodeMultipliers.BladeburnerSkillCost;
+}
var Skills = {};
var SkillNames = {
BladesIntuition: "Blade's Intuition",
@@ -1168,7 +1173,7 @@ Bladeburner.prototype.completeAction = function() {
action.setMaxLevel(ContractSuccessesPerLevel);
}
if (action.rankGain) {
- var gain = addOffset(action.rankGain * rewardMultiplier, 10);
+ var gain = addOffset(action.rankGain * rewardMultiplier * BitNodeMultipliers.BladeburnerRank, 10);
this.changeRank(gain);
if (isOperation && this.logging.ops) {
this.log(action.name + " successfully completed! Gained " + formatNumber(gain, 3) + " rank");
@@ -1233,7 +1238,7 @@ Bladeburner.prototype.completeAction = function() {
this.blackops[action.name] = true;
var rankGain = 0;
if (action.rankGain) {
- rankGain = addOffset(action.rankGain, 10);
+ rankGain = addOffset(action.rankGain * BitNodeMultipliers.BladeburnerRank, 10);
this.changeRank(rankGain);
}
teamLossMax = Math.ceil(teamCount/2);
@@ -2671,7 +2676,7 @@ Bladeburner.prototype.updateSkillsUIElement = function(el, skill) {
if (this.skills[skillName] && !isNaN(this.skills[skillName])) {
currentLevel = this.skills[skillName];
}
- var pointCost = skill.baseCost + (currentLevel * skill.costInc);
+ var pointCost = skill.calculateCost(currentLevel);
el.appendChild(createElement("h2", { //Header
innerText:skill.name + " (Lvl " + currentLevel + ")", display:"inline-block"
@@ -3110,7 +3115,7 @@ Bladeburner.prototype.executeSkillConsoleCommand = function(args) {
if (this.skills[skillName] && !isNaN(this.skills[skillName])) {
currentLevel = this.skills[skillName];
}
- var pointCost = skill.baseCost + (currentLevel * skill.costInc);
+ var pointCost = skill.calculateCost(currentLevel);
if (this.skillPoints >= pointCost) {
this.skillPoints -= pointCost;
this.upgradeSkill(skill);
@@ -3263,24 +3268,25 @@ Bladeburner.prototype.getActionIdFromTypeAndName = function(type="", name="") {
}
}
-Bladeburner.prototype.isContractNameNetscriptFn = function(name) {
- return this.contracts.hasOwnProperty(name);
+Bladeburner.prototype.getContractNamesNetscriptFn = function(name) {
+ return Object.keys(this.contracts);
}
-Bladeburner.prototype.isOperationNameNetscriptFn = function(name) {
- return this.operations.hasOwnProperty(name);
+Bladeburner.prototype.getOperationNamesNetscriptFn = function(name) {
+ return Object.keys(this.operations);
}
-Bladeburner.prototype.isBlackOpNameNetscriptFn = function(name) {
- return BlackOperations.hasOwnProperty(name);
+Bladeburner.prototype.getBlackOpNamesNetscriptFn = function(name) {
+ return Object.keys(BlackOperations);
}
-Bladeburner.prototype.isGeneralActionNameNetscriptFn = function(name) {
- return GeneralActions.hasOwnProperty(name);
+Bladeburner.prototype.getGeneralActionNamesNetscriptFn = function(name) {
+ return Object.keys(GeneralActions);
}
-Bladeburner.prototype.isSkillNameNetscriptFn = function(name) {
+Bladeburner.prototype.getSkillNamesNetscriptFn = function(name) {
return Skills.hasOwnProperty(name);
+ return Object.keys(Skills);
}
Bladeburner.prototype.startActionNetscriptFn = function(type, name, workerScript) {
@@ -3362,7 +3368,7 @@ Bladeburner.prototype.getActionEstimatedSuccessChanceNetscriptFn = function(type
case ActionTypes["Operation"]:
case ActionTypes["BlackOp"]:
case ActionTypes["BlackOperation"]:
- return actionObj.getSuccessChance(this);
+ return actionObj.getSuccessChance(this, {est:true});
case ActionTypes["Training"]:
case ActionTypes["Field Analysis"]:
case ActionTypes["FieldAnalysis"]:
@@ -3438,7 +3444,7 @@ Bladeburner.prototype.upgradeSkillNetscriptFn = function(skillName, workerScript
if (this.skills[skillName] && !isNaN(this.skills[skillName])) {
currentLevel = this.skills[skillName];
}
- var cost = skill.baseCost + (currentLevel * skill.costInc);
+ var cost = skill.calculateCost(currentLevel);
if (this.skillPoints < cost) {
if (workerScript.shouldLog("upgradeSkill")) {
diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js
index bbe707e84..285077099 100644
--- a/src/NetscriptFunctions.js
+++ b/src/NetscriptFunctions.js
@@ -148,8 +148,8 @@ function NetscriptFunctions(workerScript) {
workerScript.dynamicRamUsage += ramCost;
if (workerScript.dynamicRamUsage > 1.01 * workerScript.ramUsage) {
throw makeRuntimeRejectMsg(workerScript,
- "Dynamic RAM usage calculated to be greater than initial RAM usage. " +
- "This is probably because you somehow circumvented the static RAM " +
+ "Dynamic RAM usage calculated to be greater than initial RAM usage on fn: " + fnName +
+ ". This is probably because you somehow circumvented the static RAM " +
"calculation.
Please don't do that :(");
}
};
@@ -3215,59 +3215,59 @@ function NetscriptFunctions(workerScript) {
//Bladeburner API
bladeburner : {
- isContractName : function(name) {
+ getContractNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isContractName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getContractNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isContractName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getContractNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
- return Player.bladeburner.isContractNameNetscriptFn(name);
+ return Player.bladeburner.getContractNamesNetscriptFn(name);
}
- throw makeRuntimeRejectMsg(workerScript, "isContractName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw makeRuntimeRejectMsg(workerScript, "getContractNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isOperationName : function(name) {
+ getOperationNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isOperationName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getOperationNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isOperationName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getOperationNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
- return Player.bladeburner.isOperationNameNetscriptFn(name);
+ return Player.bladeburner.getOperationNamesNetscriptFn(name);
}
- throw makeRuntimeRejectMsg(workerScript, "isOperationName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw makeRuntimeRejectMsg(workerScript, "getOperationNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isBlackOpName : function(name) {
+ getBlackOpNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isBlackOpName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getBlackOpNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isBlackOpName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getBlackOpNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
- return Player.bladeburner.isBlackOpNameNetscriptFn(name);
+ return Player.bladeburner.getBlackOpNamesNetscriptFn(name);
}
- throw makeRuntimeRejectMsg(workerScript, "isBlackOpName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw makeRuntimeRejectMsg(workerScript, "getBlackOpNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isGeneralActionName : function(name) {
+ getGeneralActionNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isGeneralActionName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getGeneralActionNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isGeneralActionName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getGeneralActionNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
- return Player.bladeburner.isGeneralActionNameNetscriptFn(name);
+ return Player.bladeburner.getGeneralActionNamesNetscriptFn(name);
}
- throw makeRuntimeRejectMsg(workerScript, "isGeneralActionName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw makeRuntimeRejectMsg(workerScript, "getGeneralActionNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- isSkillName : function(name) {
+ getSkillNames : function(name) {
if (workerScript.checkingRam) {
- return updateStaticRam("isSkillName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ return updateStaticRam("getSkillNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
}
- updateDynamicRam("isSkillName", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
+ updateDynamicRam("getSkillNames", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 10);
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
- return Player.bladeburner.isSkillNameNetscriptFn(name);
+ return Player.bladeburner.getSkillNamesNetscriptFn(name);
}
- throw makeRuntimeRejectMsg(workerScript, "isSkillName() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw makeRuntimeRejectMsg(workerScript, "getSkillNames() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
startAction : function(type="", name="") {
@@ -3285,15 +3285,15 @@ function NetscriptFunctions(workerScript) {
throw makeRuntimeRejectMsg(workerScript, "startAction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
- stopAction : function() {
+ stopBladeburnerAction : function() {
if (workerScript.checkingRam) {
- return updateStaticRam("stopAction", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 2);
+ return updateStaticRam("stopBladeburnerAction", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 2);
}
- updateDynamicRam("stopAction", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 2);
+ updateDynamicRam("stopBladeburnerAction", CONSTANTS.ScriptBladeburnerApiBaseRamCost / 2);
if (Player.bladeburner instanceof Bladeburner && (Player.bitNodeN === 7 || hasBladeburner2079SF)) {
return Player.bladeburner.resetAction();
}
- throw makeRuntimeRejectMsg(workerScript, "stopAction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
+ throw makeRuntimeRejectMsg(workerScript, "stopBladeburnerAction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
},
getActionTime : function(type="", name="") {
@@ -3504,7 +3504,7 @@ function NetscriptFunctions(workerScript) {
}
throw makeRuntimeRejectMsg(workerScript, "joinBladeburnerFaction() failed because you do not currently have access to the Bladeburner API. This is either because you are not currently employed " +
"at the Bladeburner division or because you do not have Source-File 7");
- }
+ },
}
} //End return
} //End NetscriptFunction()
diff --git a/src/NetscriptWorker.js b/src/NetscriptWorker.js
index 7686bcca4..28902f47d 100644
--- a/src/NetscriptWorker.js
+++ b/src/NetscriptWorker.js
@@ -194,7 +194,7 @@ function runScriptsLoop() {
} else {
try {
var ast = parse(workerScripts[i].code, {sourceType:"module"});
- console.log(ast);
+ //console.log(ast);
} catch (e) {
console.log("Error parsing script: " + workerScripts[i].name);
dialogBoxCreate("Syntax ERROR in " + workerScripts[i].name + ":
" + e);
diff --git a/src/RedPill.js b/src/RedPill.js
index 60ad4104e..31f89a7f3 100644
--- a/src/RedPill.js
+++ b/src/RedPill.js
@@ -208,7 +208,8 @@ function loadBitVerse(destroyedBitNodeNum, flume=false) {
var elemId = "bitnode-" + i.toString();
var elem = clearEventListeners(elemId);
if (elem == null) {return;}
- if (i === 1 || i === 2 || i === 3 || i === 4 || i === 5 || i === 6 || i === 8 || i === 11 || i === 12) {
+ if (i === 1 || i === 2 || i === 3 || i === 4 || i === 5 ||
+ i === 6 || i === 7 || i === 8 || i === 11 || i === 12) {
elem.addEventListener("click", function() {
var bitNodeKey = "BitNode" + i;
var bitNode = BitNodes[bitNodeKey];
diff --git a/src/Script.js b/src/Script.js
index 462c86a99..a636b8506 100644
--- a/src/Script.js
+++ b/src/Script.js
@@ -474,19 +474,32 @@ function parseOnlyRamCalculate(server, code, workerScript) {
//
// TODO it would be simpler to just reference a dictionary.
try {
- var func = workerScript.env.get(ref);
- if (typeof func === "function") {
- try {
- var res = func.apply(null, []);
- if (typeof res === "number") {
- ram += res;
+ function applyFuncRam(func) {
+ if (typeof func === "function") {
+ try {
+ let res = func.apply(null, []);
+ if (typeof res === "number") {
+ return res;
+ }
+ return 0;
+ } catch(e) {
+ console.log("ERROR applying function: " + e);
+ return 0;
}
- } catch(e) {
- console.log("ERROR applying function: " + e);
+ } else {
+ return 0;
}
}
- } catch (error) { continue; }
+ //Special logic for Bladeburner
+ var func;
+ if (ref in workerScript.env.vars.bladeburner) {
+ func = workerScript.env.vars.bladeburner[ref];
+ } else {
+ func = workerScript.env.get(ref);
+ }
+ ram += applyFuncRam(func);
+ } catch (error) {continue;}
}
return ram;
diff --git a/src/SourceFile.js b/src/SourceFile.js
index 3071d6760..99eb5e72d 100644
--- a/src/SourceFile.js
+++ b/src/SourceFile.js
@@ -164,6 +164,17 @@ function applySourceFile(srcFile) {
Player.dexterity_exp_mult *= incMult;
Player.agility_exp_mult *= incMult;
break;
+ case 7: //Bladeburner 2079
+ var mult = 0;
+ for (var i = 0; i < srcFile.lvl; ++i) {
+ mult += (8 / (Math.pow(2, i)));
+ }
+ var incMult = 1 + (mult / 100);
+ Player.bladeburner_max_stamina_mult *= incMult;
+ Player.bladeburner_stamina_gain_mult *= incMult;
+ Player.bladeburner_analysis_mult *= incMult;
+ Player.bladeburner_success_chance_mult *= incMult;
+ break;
case 8: //Ghost of Wall Street
var mult = 0;
for (var i = 0; i < srcFile.lvl; ++i) {