mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-26 09:33:49 +01:00
Merged pull requests and fixed merge conflicts
This commit is contained in:
commit
bbb5f04c87
442
dist/engine.bundle.js
vendored
442
dist/engine.bundle.js
vendored
@ -499,6 +499,18 @@ PlayerObject.prototype.getHomeComputer = function() {
|
||||
return _Server_js__WEBPACK_IMPORTED_MODULE_12__["AllServers"][this.homeComputer];
|
||||
}
|
||||
|
||||
PlayerObject.prototype.getUpgradeHomeRamCost = function() {
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
const currentRam = Player.getHomeComputer().maxRam;
|
||||
const numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
const mult = Math.pow(1.58, numUpgrades);
|
||||
var cost = currentRam * _Constants_js__WEBPACK_IMPORTED_MODULE_3__["CONSTANTS"].BaseCostFor1GBOfRamHome * mult;
|
||||
return cost;
|
||||
}
|
||||
|
||||
//Calculates skill level based on experience. The same formula will be used for every skill
|
||||
PlayerObject.prototype.calculateSkill = function(exp) {
|
||||
return Math.max(Math.floor(32 * Math.log(exp + 534.5) - 200), 1);
|
||||
@ -3416,6 +3428,8 @@ let CONSTANTS = {
|
||||
|
||||
LatestUpdate:
|
||||
"v0.37.3<br>" +
|
||||
"* New BitNode: BN-7 Bladeburner 2079<br>" +
|
||||
"* New BitNode: BN-12 The Recursion<br>" +
|
||||
"* Bladeburner Changes:<br>" +
|
||||
"*** Bladeburner progress is no longer reset when installing Augmentations<br>" +
|
||||
"*** The number of successess needed to increase a Contract/Operation's max level now scales with the current max level (gradually gets harder)<br>" +
|
||||
@ -5218,16 +5232,8 @@ function initLocationButtons() {
|
||||
});
|
||||
|
||||
purchaseHomeRam.addEventListener("click", function() {
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
var currentRam = _Player_js__WEBPACK_IMPORTED_MODULE_8__["Player"].getHomeComputer().maxRam;
|
||||
var newRam = currentRam * 2;
|
||||
var numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
var cost = currentRam * _Constants_js__WEBPACK_IMPORTED_MODULE_3__["CONSTANTS"].BaseCostFor1GBOfRamHome;
|
||||
var mult = Math.pow(1.58, numUpgrades);
|
||||
cost = cost * mult;
|
||||
const cost = _Player_js__WEBPACK_IMPORTED_MODULE_8__["Player"].getUpgradeHomeRamCost();
|
||||
const ram = _Player_js__WEBPACK_IMPORTED_MODULE_8__["Player"].getHomeComputer().maxRam;
|
||||
|
||||
var yesBtn = Object(_utils_YesNoBox_js__WEBPACK_IMPORTED_MODULE_17__["yesNoBoxGetYesButton"])(), noBtn = Object(_utils_YesNoBox_js__WEBPACK_IMPORTED_MODULE_17__["yesNoBoxGetNoButton"])();
|
||||
yesBtn.innerHTML = "Purchase"; noBtn.innerHTML = "Cancel";
|
||||
@ -5239,8 +5245,8 @@ function initLocationButtons() {
|
||||
Object(_utils_YesNoBox_js__WEBPACK_IMPORTED_MODULE_17__["yesNoBoxClose"])();
|
||||
});
|
||||
Object(_utils_YesNoBox_js__WEBPACK_IMPORTED_MODULE_17__["yesNoBoxCreate"])("Would you like to purchase additional RAM for your home computer? <br><br>" +
|
||||
"This will upgrade your RAM from " + currentRam + "GB to " + newRam + "GB. <br><br>" +
|
||||
"This will cost $" + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_16__["formatNumber"])(cost, 2));
|
||||
"This will upgrade your RAM from " + ram + "GB to " + ram*2 + "GB. <br><br>" +
|
||||
"This will cost " + numeral_min_numeral_min__WEBPACK_IMPORTED_MODULE_15___default()(cost).format('$0.000a'));
|
||||
});
|
||||
|
||||
purchaseHomeCores.addEventListener("click", function() {
|
||||
@ -5666,7 +5672,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _Augmentations_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Augmentations.js */ 19);
|
||||
/* harmony import */ var _BitNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./BitNode.js */ 15);
|
||||
/* harmony import */ var _Bladeburner_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Bladeburner.js */ 26);
|
||||
/* harmony import */ var _CinematicText_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CinematicText.js */ 69);
|
||||
/* harmony import */ var _CinematicText_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CinematicText.js */ 68);
|
||||
/* harmony import */ var _Company_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Company.js */ 9);
|
||||
/* harmony import */ var _CompanyManagement_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CompanyManagement.js */ 41);
|
||||
/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Constants.js */ 3);
|
||||
@ -7476,7 +7482,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _BitNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BitNode.js */ 15);
|
||||
/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ 3);
|
||||
/* harmony import */ var _Player_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Player.js */ 0);
|
||||
/* harmony import */ var _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 68);
|
||||
/* harmony import */ var _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 67);
|
||||
/* harmony import */ var _NetscriptWorker_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptWorker.js */ 20);
|
||||
/* harmony import */ var _Server_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Server.js */ 10);
|
||||
/* harmony import */ var _Settings_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Settings.js */ 22);
|
||||
@ -10923,14 +10929,14 @@ function displayFactionContent(factionName) {
|
||||
favorGain = favorGain[0];
|
||||
elements.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_11__["createElement"])("p", {
|
||||
innerText: "Reputation: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_14__["formatNumber"])(faction.playerReputation, 4),
|
||||
tooltip:"You will earn " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_14__["formatNumber"])(favorGain, 4) +
|
||||
tooltip:"You will earn " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_14__["formatNumber"])(favorGain, 0) +
|
||||
" faction favor upon resetting after installing an Augmentation"
|
||||
}))
|
||||
elements.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_11__["createElement"])("p", {
|
||||
innerText:"---------------",
|
||||
}));
|
||||
elements.push(Object(_utils_HelperFunctions_js__WEBPACK_IMPORTED_MODULE_11__["createElement"])("p", {
|
||||
innerText:"Faction Favor: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_14__["formatNumber"])(faction.favor, 4),
|
||||
innerText:"Faction Favor: " + Object(_utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_14__["formatNumber"])(faction.favor, 0),
|
||||
tooltip:"Faction favor increases the rate at which " +
|
||||
"you earn reputation for this faction by 1% per favor. Faction favor " +
|
||||
"is gained whenever you reset after installing an Augmentation. The amount of " +
|
||||
@ -12441,7 +12447,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _DarkWeb_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DarkWeb.js */ 34);
|
||||
/* 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 */ 70);
|
||||
/* harmony import */ var _HelpText_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./HelpText.js */ 69);
|
||||
/* 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 */ 52);
|
||||
/* harmony import */ var _Message_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Message.js */ 28);
|
||||
@ -17155,9 +17161,9 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _ActiveScriptsUI_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActiveScriptsUI.js */ 40);
|
||||
/* 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 _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 68);
|
||||
/* harmony import */ var _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 67);
|
||||
/* harmony import */ var _NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptEvaluator.js */ 6);
|
||||
/* harmony import */ var _NetscriptJSEvaluator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptJSEvaluator.js */ 62);
|
||||
/* harmony import */ var _NetscriptJSEvaluator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptJSEvaluator.js */ 82);
|
||||
/* harmony import */ var _NetscriptPort_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NetscriptPort.js */ 45);
|
||||
/* harmony import */ var _Server_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Server.js */ 10);
|
||||
/* harmony import */ var _Settings_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Settings.js */ 22);
|
||||
@ -30210,7 +30216,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _TextFile_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./TextFile.js */ 42);
|
||||
/* harmony import */ var _NetscriptWorker_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./NetscriptWorker.js */ 20);
|
||||
/* harmony import */ var _NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./NetscriptEvaluator.js */ 6);
|
||||
/* harmony import */ var _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 68);
|
||||
/* harmony import */ var _NetscriptEnvironment_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./NetscriptEnvironment.js */ 67);
|
||||
/* harmony import */ var _NetscriptPort_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./NetscriptPort.js */ 45);
|
||||
/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! decimal.js */ 23);
|
||||
/* harmony import */ var _utils_DialogBox_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/DialogBox.js */ 7);
|
||||
@ -30218,8 +30224,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _utils_IPAddress_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../utils/IPAddress.js */ 16);
|
||||
/* harmony import */ var _utils_StringHelperFunctions_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../utils/StringHelperFunctions.js */ 2);
|
||||
/* harmony import */ var _utils_YesNoBox_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../utils/YesNoBox.js */ 12);
|
||||
var sprintf = __webpack_require__(/*! sprintf-js */ 67).sprintf,
|
||||
vsprintf = __webpack_require__(/*! sprintf-js */ 67).vsprintf
|
||||
var sprintf = __webpack_require__(/*! sprintf-js */ 66).sprintf,
|
||||
vsprintf = __webpack_require__(/*! sprintf-js */ 66).vsprintf
|
||||
|
||||
|
||||
|
||||
@ -32712,15 +32718,7 @@ function NetscriptFunctions(workerScript) {
|
||||
}
|
||||
}
|
||||
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
var currentRam = _Player_js__WEBPACK_IMPORTED_MODULE_15__["Player"].getHomeComputer().maxRam;
|
||||
var numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
var cost = currentRam * _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].BaseCostFor1GBOfRamHome;
|
||||
var mult = Math.pow(1.55, numUpgrades);
|
||||
cost = cost * mult;
|
||||
const cost = _Player_js__WEBPACK_IMPORTED_MODULE_15__["Player"].getUpgradeHomeRamCost();
|
||||
|
||||
if (_Player_js__WEBPACK_IMPORTED_MODULE_15__["Player"].money.lt(cost)) {
|
||||
workerScript.scriptRef.log("ERROR: upgradeHomeRam() failed because you don't have enough money");
|
||||
@ -32752,15 +32750,7 @@ function NetscriptFunctions(workerScript) {
|
||||
}
|
||||
}
|
||||
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
var currentRam = _Player_js__WEBPACK_IMPORTED_MODULE_15__["Player"].getHomeComputer().maxRam;
|
||||
var numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
var cost = currentRam * _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].BaseCostFor1GBOfRamHome;
|
||||
var mult = Math.pow(1.55, numUpgrades);
|
||||
return cost * mult;
|
||||
return _Player_js__WEBPACK_IMPORTED_MODULE_15__["Player"].getUpgradeHomeRamCost();
|
||||
},
|
||||
workForCompany : function() {
|
||||
var ramCost = _Constants_js__WEBPACK_IMPORTED_MODULE_6__["CONSTANTS"].ScriptSingularityFn2RamCost;
|
||||
@ -33765,7 +33755,7 @@ function NetscriptFunctions(workerScript) {
|
||||
|
||||
var support = __webpack_require__(/*! ./support */ 49);
|
||||
var base64 = __webpack_require__(/*! ./base64 */ 105);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 64);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 63);
|
||||
var setImmediate = __webpack_require__(/*! core-js/library/fn/set-immediate */ 167);
|
||||
var external = __webpack_require__(/*! ./external */ 57);
|
||||
|
||||
@ -59564,7 +59554,7 @@ function logBoxUpdateText() {
|
||||
|
||||
/*<replacement>*/
|
||||
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 66).nextTick;
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 65).nextTick;
|
||||
/*</replacement>*/
|
||||
|
||||
/*<replacement>*/
|
||||
@ -59584,7 +59574,7 @@ util.inherits = __webpack_require__(/*! inherits */ 54);
|
||||
/*</replacement>*/
|
||||
|
||||
var Readable = __webpack_require__(/*! ./_stream_readable */ 111);
|
||||
var Writable = __webpack_require__(/*! ./_stream_writable */ 79);
|
||||
var Writable = __webpack_require__(/*! ./_stream_writable */ 78);
|
||||
|
||||
util.inherits(Duplex, Readable);
|
||||
|
||||
@ -60208,7 +60198,7 @@ if (typeof Object.create === 'function') {
|
||||
|
||||
var utils = __webpack_require__(/*! ./utils */ 31);
|
||||
var support = __webpack_require__(/*! ./support */ 49);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 64);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 63);
|
||||
var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 38);
|
||||
|
||||
/**
|
||||
@ -60496,7 +60486,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _Augmentations_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentations.js */ 19);
|
||||
/* harmony import */ var _BitNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BitNode.js */ 15);
|
||||
/* harmony import */ var _Bladeburner_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Bladeburner.js */ 26);
|
||||
/* harmony import */ var _CinematicText_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CinematicText.js */ 69);
|
||||
/* harmony import */ var _CinematicText_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CinematicText.js */ 68);
|
||||
/* harmony import */ var _Company_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Company.js */ 9);
|
||||
/* harmony import */ var _CreateProgram_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CreateProgram.js */ 14);
|
||||
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./engine.js */ 5);
|
||||
@ -62972,130 +62962,6 @@ function isnan (val) {
|
||||
/***/ }),
|
||||
/* 61 */,
|
||||
/* 62 */
|
||||
/*!*************************************!*\
|
||||
!*** ./src/NetscriptJSEvaluator.js ***!
|
||||
\*************************************/
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeScriptBlob", function() { return makeScriptBlob; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeJSScript", function() { return executeJSScript; });
|
||||
/* harmony import */ var _NetscriptJSPreamble_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NetscriptJSPreamble.js */ 128);
|
||||
/* harmony import */ var _NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NetscriptEvaluator.js */ 6);
|
||||
|
||||
|
||||
|
||||
// Makes a blob that contains the code of a given script.
|
||||
function makeScriptBlob(code) {
|
||||
return new Blob([code], {type: "text/javascript"});
|
||||
}
|
||||
|
||||
// Begin executing a user JS script, and return a promise that resolves
|
||||
// or rejects when the script finishes.
|
||||
// - script is a script to execute (see Script.js). We depend only on .filename and .code.
|
||||
// scripts is an array of other scripts on the server.
|
||||
// env is the global environment that should be visible to all the scripts
|
||||
// (i.e. hack, grow, etc.).
|
||||
// When the promise returned by this resolves, we'll have finished
|
||||
// running the main function of the script.
|
||||
async function executeJSScript(scripts = [], workerScript) {
|
||||
let loadedModule;
|
||||
let urlStack = null;
|
||||
let script = workerScript.getScript();
|
||||
if (script.module === "") {
|
||||
// The URL at the top is the one we want to import. It will
|
||||
// recursively import all the other modules in the urlStack.
|
||||
//
|
||||
// Webpack likes to turn the import into a require, which sort of
|
||||
// but not really behaves like import. Particularly, it cannot
|
||||
// load fully dynamic content. So we hide the import from webpack
|
||||
// by placing it inside an eval call.
|
||||
urlStack = _getScriptUrls(script, scripts, []);
|
||||
script.module = await eval('import(urlStack[urlStack.length - 1])');
|
||||
}
|
||||
loadedModule = script.module;
|
||||
|
||||
let ns = workerScript.env.vars;
|
||||
//ns.threads = workerScript.threads;
|
||||
//ns.args = workerScript.args;
|
||||
|
||||
try {
|
||||
// TODO: putting await in a non-async function yields unhelpful
|
||||
// "SyntaxError: unexpected reserved word" with no line number information.
|
||||
if (!loadedModule.main) {
|
||||
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_1__["makeRuntimeRejectMsg"])(script.filename +
|
||||
" did not have a main function, cannot run it.");
|
||||
}
|
||||
return loadedModule.main(ns);
|
||||
} finally {
|
||||
// Revoke the generated URLs
|
||||
if (urlStack != null) {
|
||||
for (const url in urlStack) URL.revokeObjectURL(url);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Gets a stack of blob urls, the top/right-most element being
|
||||
// the blob url for the named script on the named server.
|
||||
//
|
||||
// - script -- the script for whom we are getting a URL.
|
||||
// - scripts -- all the scripts available on this server
|
||||
// - envHeader -- the preamble that goes at the start of every NSJS script.
|
||||
// - seen -- The modules above this one -- to prevent mutual dependency.
|
||||
//
|
||||
// TODO We don't make any effort to cache a given module when it is imported at
|
||||
// different parts of the tree. That hasn't presented any problem with during
|
||||
// testing, but it might be an idea for the future. Would require a topo-sort
|
||||
// then url-izing from leaf-most to root-most.
|
||||
function _getScriptUrls(script, scripts, seen) {
|
||||
// Inspired by: https://stackoverflow.com/a/43834063/91401
|
||||
const urlStack = [];
|
||||
seen.push(script);
|
||||
try {
|
||||
// Replace every import statement with an import to a blob url containing
|
||||
// the corresponding script. E.g.
|
||||
//
|
||||
// import {foo} from "bar.js";
|
||||
//
|
||||
// becomes
|
||||
//
|
||||
// import {foo} from "blob://<uuid>"
|
||||
//
|
||||
// Where the blob URL contains the script content.
|
||||
const transformedCode = script.code.replace(/((?:from|import)\s+(?:'|"))([^'"]+)('|";)/g,
|
||||
(unmodified, prefix, filename, suffix) => {
|
||||
const isAllowedImport = scripts.some(s => s.filename == filename);
|
||||
if (!isAllowedImport) return unmodified;
|
||||
|
||||
// Find the corresponding script.
|
||||
const [importedScript] = scripts.filter(s => s.filename == filename);
|
||||
|
||||
// Try to get a URL for the requested script and its dependencies.
|
||||
const urls = _getScriptUrls(importedScript, scripts, seen);
|
||||
|
||||
// The top url in the stack is the replacement import file for this script.
|
||||
urlStack.push(...urls);
|
||||
return [prefix, urls[urls.length - 1], suffix].join('');
|
||||
});
|
||||
|
||||
|
||||
// If we successfully transformed the code, create a blob url for it and
|
||||
// push that URL onto the top of the stack.
|
||||
urlStack.push(URL.createObjectURL(makeScriptBlob(transformedCode)));
|
||||
return urlStack;
|
||||
} catch (err) {
|
||||
// If there is an error, we need to clean up the URLs.
|
||||
for (const url in urlStack) URL.revokeObjectURL(url);
|
||||
throw err;
|
||||
} finally {
|
||||
seen.pop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 63 */
|
||||
/*!****************************************************************************!*\
|
||||
!*** ./node_modules/jszip/node_modules/core-js/library/modules/_global.js ***!
|
||||
\****************************************************************************/
|
||||
@ -63107,7 +62973,7 @@ var global = module.exports = typeof window != 'undefined' && window.Math == Mat
|
||||
if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
|
||||
|
||||
/***/ }),
|
||||
/* 64 */
|
||||
/* 63 */
|
||||
/*!***********************************************!*\
|
||||
!*** ./node_modules/jszip/lib/nodejsUtils.js ***!
|
||||
\***********************************************/
|
||||
@ -63170,7 +63036,7 @@ module.exports = {
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ 60).Buffer))
|
||||
|
||||
/***/ }),
|
||||
/* 65 */
|
||||
/* 64 */
|
||||
/*!*******************************************!*\
|
||||
!*** ./node_modules/safe-buffer/index.js ***!
|
||||
\*******************************************/
|
||||
@ -63241,7 +63107,7 @@ SafeBuffer.allocUnsafeSlow = function (size) {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 66 */
|
||||
/* 65 */
|
||||
/*!****************************************************!*\
|
||||
!*** ./node_modules/process-nextick-args/index.js ***!
|
||||
\****************************************************/
|
||||
@ -63296,7 +63162,7 @@ function nextTick(fn, arg1, arg2, arg3) {
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ 59)))
|
||||
|
||||
/***/ }),
|
||||
/* 67 */
|
||||
/* 66 */
|
||||
/*!************************************************!*\
|
||||
!*** ./node_modules/sprintf-js/src/sprintf.js ***!
|
||||
\************************************************/
|
||||
@ -63524,7 +63390,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 68 */
|
||||
/* 67 */
|
||||
/*!*************************************!*\
|
||||
!*** ./src/NetscriptEnvironment.js ***!
|
||||
\*************************************/
|
||||
@ -63635,7 +63501,7 @@ Environment.prototype = {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 69 */
|
||||
/* 68 */
|
||||
/*!******************************!*\
|
||||
!*** ./src/CinematicText.js ***!
|
||||
\******************************/
|
||||
@ -63748,7 +63614,7 @@ function cinematicTextEnd() {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 70 */
|
||||
/* 69 */
|
||||
/*!*************************!*\
|
||||
!*** ./src/HelpText.js ***!
|
||||
\*************************/
|
||||
@ -63978,10 +63844,10 @@ let HelpTexts = {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 70 */,
|
||||
/* 71 */,
|
||||
/* 72 */,
|
||||
/* 73 */,
|
||||
/* 74 */
|
||||
/* 73 */
|
||||
/*!************************************************!*\
|
||||
!*** ./node_modules/pako/lib/zlib/messages.js ***!
|
||||
\************************************************/
|
||||
@ -64023,7 +63889,7 @@ module.exports = {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 75 */
|
||||
/* 74 */
|
||||
/*!*****************************************!*\
|
||||
!*** ./node_modules/jszip/lib/crc32.js ***!
|
||||
\*****************************************/
|
||||
@ -64110,7 +63976,7 @@ module.exports = function crc32wrapper(input, crc) {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 76 */
|
||||
/* 75 */
|
||||
/*!****************************************************!*\
|
||||
!*** ./node_modules/jszip/lib/compressedObject.js ***!
|
||||
\****************************************************/
|
||||
@ -64195,7 +64061,7 @@ module.exports = CompressedObject;
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 77 */
|
||||
/* 76 */
|
||||
/*!*********************************************************************************!*\
|
||||
!*** ./node_modules/jszip/node_modules/core-js/library/modules/_descriptors.js ***!
|
||||
\*********************************************************************************/
|
||||
@ -64207,7 +64073,7 @@ module.exports = !__webpack_require__(/*! ./_fails */ 102)(function(){
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
/* 78 */
|
||||
/* 77 */
|
||||
/*!*******************************************************************************!*\
|
||||
!*** ./node_modules/jszip/node_modules/core-js/library/modules/_is-object.js ***!
|
||||
\*******************************************************************************/
|
||||
@ -64218,7 +64084,7 @@ module.exports = function(it){
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 79 */
|
||||
/* 78 */
|
||||
/*!**************************************************************!*\
|
||||
!*** ./node_modules/readable-stream/lib/_stream_writable.js ***!
|
||||
\**************************************************************/
|
||||
@ -64254,7 +64120,7 @@ module.exports = function(it){
|
||||
|
||||
/*<replacement>*/
|
||||
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 66).nextTick;
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 65).nextTick;
|
||||
/*</replacement>*/
|
||||
|
||||
module.exports = Writable;
|
||||
@ -64307,7 +64173,7 @@ var Stream = __webpack_require__(/*! ./internal/streams/stream */ 110);
|
||||
|
||||
/*<replacement>*/
|
||||
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 65).Buffer;
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 64).Buffer;
|
||||
var OurUint8Array = global.Uint8Array || function () {};
|
||||
function _uint8ArrayToBuffer(chunk) {
|
||||
return Buffer.from(chunk);
|
||||
@ -64905,7 +64771,7 @@ Writable.prototype._destroy = function (err, cb) {
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ 59), __webpack_require__(/*! ./../../timers-browserify/main.js */ 108).setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 47)))
|
||||
|
||||
/***/ }),
|
||||
/* 80 */
|
||||
/* 79 */
|
||||
/*!**********************************************************!*\
|
||||
!*** ./node_modules/readable-stream/readable-browser.js ***!
|
||||
\**********************************************************/
|
||||
@ -64914,14 +64780,14 @@ Writable.prototype._destroy = function (err, cb) {
|
||||
exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ 111);
|
||||
exports.Stream = exports;
|
||||
exports.Readable = exports;
|
||||
exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 79);
|
||||
exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 78);
|
||||
exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ 51);
|
||||
exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ 106);
|
||||
exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ 172);
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 81 */
|
||||
/* 80 */
|
||||
/*!***************************************!*\
|
||||
!*** ./node_modules/events/events.js ***!
|
||||
\***************************************/
|
||||
@ -65232,7 +65098,7 @@ function isUndefined(arg) {
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 82 */
|
||||
/* 81 */
|
||||
/*!***************************************!*\
|
||||
!*** (webpack)/buildin/amd-define.js ***!
|
||||
\***************************************/
|
||||
@ -65243,6 +65109,130 @@ module.exports = function() {
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 82 */
|
||||
/*!*************************************!*\
|
||||
!*** ./src/NetscriptJSEvaluator.js ***!
|
||||
\*************************************/
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeScriptBlob", function() { return makeScriptBlob; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeJSScript", function() { return executeJSScript; });
|
||||
/* harmony import */ var _NetscriptJSPreamble_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NetscriptJSPreamble.js */ 128);
|
||||
/* harmony import */ var _NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NetscriptEvaluator.js */ 6);
|
||||
|
||||
|
||||
|
||||
// Makes a blob that contains the code of a given script.
|
||||
function makeScriptBlob(code) {
|
||||
return new Blob([code], {type: "text/javascript"});
|
||||
}
|
||||
|
||||
// Begin executing a user JS script, and return a promise that resolves
|
||||
// or rejects when the script finishes.
|
||||
// - script is a script to execute (see Script.js). We depend only on .filename and .code.
|
||||
// scripts is an array of other scripts on the server.
|
||||
// env is the global environment that should be visible to all the scripts
|
||||
// (i.e. hack, grow, etc.).
|
||||
// When the promise returned by this resolves, we'll have finished
|
||||
// running the main function of the script.
|
||||
async function executeJSScript(scripts = [], workerScript) {
|
||||
let loadedModule;
|
||||
let urlStack = null;
|
||||
let script = workerScript.getScript();
|
||||
if (script.module === "") {
|
||||
// The URL at the top is the one we want to import. It will
|
||||
// recursively import all the other modules in the urlStack.
|
||||
//
|
||||
// Webpack likes to turn the import into a require, which sort of
|
||||
// but not really behaves like import. Particularly, it cannot
|
||||
// load fully dynamic content. So we hide the import from webpack
|
||||
// by placing it inside an eval call.
|
||||
urlStack = _getScriptUrls(script, scripts, []);
|
||||
script.module = await eval('import(urlStack[urlStack.length - 1])');
|
||||
}
|
||||
loadedModule = script.module;
|
||||
|
||||
let ns = workerScript.env.vars;
|
||||
//ns.threads = workerScript.threads;
|
||||
//ns.args = workerScript.args;
|
||||
|
||||
try {
|
||||
// TODO: putting await in a non-async function yields unhelpful
|
||||
// "SyntaxError: unexpected reserved word" with no line number information.
|
||||
if (!loadedModule.main) {
|
||||
throw Object(_NetscriptEvaluator_js__WEBPACK_IMPORTED_MODULE_1__["makeRuntimeRejectMsg"])(script.filename +
|
||||
" did not have a main function, cannot run it.");
|
||||
}
|
||||
return loadedModule.main(ns);
|
||||
} finally {
|
||||
// Revoke the generated URLs
|
||||
if (urlStack != null) {
|
||||
for (const url in urlStack) URL.revokeObjectURL(url);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Gets a stack of blob urls, the top/right-most element being
|
||||
// the blob url for the named script on the named server.
|
||||
//
|
||||
// - script -- the script for whom we are getting a URL.
|
||||
// - scripts -- all the scripts available on this server
|
||||
// - envHeader -- the preamble that goes at the start of every NSJS script.
|
||||
// - seen -- The modules above this one -- to prevent mutual dependency.
|
||||
//
|
||||
// TODO We don't make any effort to cache a given module when it is imported at
|
||||
// different parts of the tree. That hasn't presented any problem with during
|
||||
// testing, but it might be an idea for the future. Would require a topo-sort
|
||||
// then url-izing from leaf-most to root-most.
|
||||
function _getScriptUrls(script, scripts, seen) {
|
||||
// Inspired by: https://stackoverflow.com/a/43834063/91401
|
||||
const urlStack = [];
|
||||
seen.push(script);
|
||||
try {
|
||||
// Replace every import statement with an import to a blob url containing
|
||||
// the corresponding script. E.g.
|
||||
//
|
||||
// import {foo} from "bar.js";
|
||||
//
|
||||
// becomes
|
||||
//
|
||||
// import {foo} from "blob://<uuid>"
|
||||
//
|
||||
// Where the blob URL contains the script content.
|
||||
const transformedCode = script.code.replace(/((?:from|import)\s+(?:'|"))([^'"]+)('|";)/g,
|
||||
(unmodified, prefix, filename, suffix) => {
|
||||
const isAllowedImport = scripts.some(s => s.filename == filename);
|
||||
if (!isAllowedImport) return unmodified;
|
||||
|
||||
// Find the corresponding script.
|
||||
const [importedScript] = scripts.filter(s => s.filename == filename);
|
||||
|
||||
// Try to get a URL for the requested script and its dependencies.
|
||||
const urls = _getScriptUrls(importedScript, scripts, seen);
|
||||
|
||||
// The top url in the stack is the replacement import file for this script.
|
||||
urlStack.push(...urls);
|
||||
return [prefix, urls[urls.length - 1], suffix].join('');
|
||||
});
|
||||
|
||||
|
||||
// If we successfully transformed the code, create a blob url for it and
|
||||
// push that URL onto the top of the stack.
|
||||
urlStack.push(URL.createObjectURL(makeScriptBlob(transformedCode)));
|
||||
return urlStack;
|
||||
} catch (err) {
|
||||
// If there is an error, we need to clean up the URLs.
|
||||
for (const url in urlStack) URL.revokeObjectURL(url);
|
||||
throw err;
|
||||
} finally {
|
||||
seen.pop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
/* 83 */
|
||||
/*!********************************!*\
|
||||
@ -66274,7 +66264,7 @@ exports.DEFLATE = __webpack_require__(/*! ./flate */ 147);
|
||||
|
||||
|
||||
var GenericWorker = __webpack_require__(/*! ./GenericWorker */ 38);
|
||||
var crc32 = __webpack_require__(/*! ../crc32 */ 75);
|
||||
var crc32 = __webpack_require__(/*! ../crc32 */ 74);
|
||||
var utils = __webpack_require__(/*! ../utils */ 31);
|
||||
|
||||
/**
|
||||
@ -66713,8 +66703,8 @@ module.exports = StreamHelper;
|
||||
\********************************************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var isObject = __webpack_require__(/*! ./_is-object */ 78)
|
||||
, document = __webpack_require__(/*! ./_global */ 63).document
|
||||
var isObject = __webpack_require__(/*! ./_is-object */ 77)
|
||||
, document = __webpack_require__(/*! ./_global */ 62).document
|
||||
// in old IE typeof document.createElement is 'object'
|
||||
, is = isObject(document) && isObject(document.createElement);
|
||||
module.exports = function(it){
|
||||
@ -67123,7 +67113,7 @@ function done(stream, er, data) {
|
||||
"use strict";
|
||||
|
||||
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 65).Buffer;
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 64).Buffer;
|
||||
|
||||
var isEncoding = Buffer.isEncoding || function (encoding) {
|
||||
encoding = '' + encoding;
|
||||
@ -67476,7 +67466,7 @@ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
|
||||
|
||||
/*<replacement>*/
|
||||
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 66).nextTick;
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 65).nextTick;
|
||||
/*</replacement>*/
|
||||
|
||||
// undocumented cb() API, needed for core, not for public API
|
||||
@ -67554,7 +67544,7 @@ module.exports = {
|
||||
\*****************************************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! events */ 81).EventEmitter;
|
||||
module.exports = __webpack_require__(/*! events */ 80).EventEmitter;
|
||||
|
||||
|
||||
/***/ }),
|
||||
@ -67590,7 +67580,7 @@ module.exports = __webpack_require__(/*! events */ 81).EventEmitter;
|
||||
|
||||
/*<replacement>*/
|
||||
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 66).nextTick;
|
||||
var processNextTick = __webpack_require__(/*! process-nextick-args */ 65).nextTick;
|
||||
/*</replacement>*/
|
||||
|
||||
module.exports = Readable;
|
||||
@ -67606,7 +67596,7 @@ var Duplex;
|
||||
Readable.ReadableState = ReadableState;
|
||||
|
||||
/*<replacement>*/
|
||||
var EE = __webpack_require__(/*! events */ 81).EventEmitter;
|
||||
var EE = __webpack_require__(/*! events */ 80).EventEmitter;
|
||||
|
||||
var EElistenerCount = function (emitter, type) {
|
||||
return emitter.listeners(type).length;
|
||||
@ -67619,7 +67609,7 @@ var Stream = __webpack_require__(/*! ./internal/streams/stream */ 110);
|
||||
|
||||
/*<replacement>*/
|
||||
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 65).Buffer;
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 64).Buffer;
|
||||
var OurUint8Array = global.Uint8Array || function () {};
|
||||
function _uint8ArrayToBuffer(chunk) {
|
||||
return Buffer.from(chunk);
|
||||
@ -69908,7 +69898,7 @@ var saveAs = saveAs || (function(view) {
|
||||
|
||||
if (typeof module !== "undefined" && module.exports) {
|
||||
module.exports.saveAs = saveAs;
|
||||
} else if (("function" !== "undefined" && __webpack_require__(/*! !webpack amd define */ 82) !== null) && (__webpack_require__(/*! !webpack amd options */ 130) !== null)) {
|
||||
} else if (("function" !== "undefined" && __webpack_require__(/*! !webpack amd define */ 81) !== null) && (__webpack_require__(/*! !webpack amd options */ 130) !== null)) {
|
||||
!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
|
||||
return saveAs;
|
||||
}).call(exports, __webpack_require__, exports, module),
|
||||
@ -70070,7 +70060,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeEnvHeader", function() { return makeEnvHeader; });
|
||||
/* harmony import */ var uuid_v4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uuid/v4 */ 115);
|
||||
/* harmony import */ var uuid_v4__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(uuid_v4__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ 67);
|
||||
/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sprintf-js */ 66);
|
||||
/* harmony import */ var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__);
|
||||
// A utility function that adds a preamble to each Netscript JS
|
||||
// script. This preamble will set all the global functions and
|
||||
@ -75449,8 +75439,8 @@ module.exports = __webpack_amd_options__;
|
||||
|
||||
var readerFor = __webpack_require__(/*! ./reader/readerFor */ 88);
|
||||
var utils = __webpack_require__(/*! ./utils */ 31);
|
||||
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 76);
|
||||
var crc32fn = __webpack_require__(/*! ./crc32 */ 75);
|
||||
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 75);
|
||||
var crc32fn = __webpack_require__(/*! ./crc32 */ 74);
|
||||
var utf8 = __webpack_require__(/*! ./utf8 */ 55);
|
||||
var compressions = __webpack_require__(/*! ./compressions */ 95);
|
||||
var support = __webpack_require__(/*! ./support */ 49);
|
||||
@ -76104,7 +76094,7 @@ var utf8 = __webpack_require__(/*! ./utf8 */ 55);
|
||||
var utils = __webpack_require__(/*! ./utils */ 31);
|
||||
var ZipEntries = __webpack_require__(/*! ./zipEntries */ 134);
|
||||
var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 96);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 64);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 63);
|
||||
|
||||
/**
|
||||
* Check the CRC32 of an entry.
|
||||
@ -76278,7 +76268,7 @@ module.exports = NodejsStreamInputAdapter;
|
||||
var utils = __webpack_require__(/*! ../utils */ 31);
|
||||
var GenericWorker = __webpack_require__(/*! ../stream/GenericWorker */ 38);
|
||||
var utf8 = __webpack_require__(/*! ../utf8 */ 55);
|
||||
var crc32 = __webpack_require__(/*! ../crc32 */ 75);
|
||||
var crc32 = __webpack_require__(/*! ../crc32 */ 74);
|
||||
var signature = __webpack_require__(/*! ../signature */ 89);
|
||||
|
||||
/**
|
||||
@ -79172,7 +79162,7 @@ var zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ 141);
|
||||
var utils = __webpack_require__(/*! ./utils/common */ 48);
|
||||
var strings = __webpack_require__(/*! ./utils/strings */ 92);
|
||||
var c = __webpack_require__(/*! ./zlib/constants */ 90);
|
||||
var msg = __webpack_require__(/*! ./zlib/messages */ 74);
|
||||
var msg = __webpack_require__(/*! ./zlib/messages */ 73);
|
||||
var ZStream = __webpack_require__(/*! ./zlib/zstream */ 91);
|
||||
var GZheader = __webpack_require__(/*! ./zlib/gzheader */ 138);
|
||||
|
||||
@ -80848,7 +80838,7 @@ var utils = __webpack_require__(/*! ../utils/common */ 48);
|
||||
var trees = __webpack_require__(/*! ./trees */ 143);
|
||||
var adler32 = __webpack_require__(/*! ./adler32 */ 94);
|
||||
var crc32 = __webpack_require__(/*! ./crc32 */ 93);
|
||||
var msg = __webpack_require__(/*! ./messages */ 74);
|
||||
var msg = __webpack_require__(/*! ./messages */ 73);
|
||||
|
||||
/* Public constants ==========================================================*/
|
||||
/* ===========================================================================*/
|
||||
@ -82713,7 +82703,7 @@ exports.deflateTune = deflateTune;
|
||||
var zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ 144);
|
||||
var utils = __webpack_require__(/*! ./utils/common */ 48);
|
||||
var strings = __webpack_require__(/*! ./utils/strings */ 92);
|
||||
var msg = __webpack_require__(/*! ./zlib/messages */ 74);
|
||||
var msg = __webpack_require__(/*! ./zlib/messages */ 73);
|
||||
var ZStream = __webpack_require__(/*! ./zlib/zstream */ 91);
|
||||
|
||||
var toString = Object.prototype.toString;
|
||||
@ -83308,7 +83298,7 @@ exports.generateWorker = function (zip, options, comment) {
|
||||
var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 100);
|
||||
var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 98);
|
||||
var utf8 = __webpack_require__(/*! ./utf8 */ 55);
|
||||
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 76);
|
||||
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 75);
|
||||
var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 38);
|
||||
|
||||
/**
|
||||
@ -83889,7 +83879,7 @@ module.exports = function(it){
|
||||
\**************************************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! ./_global */ 63).document && document.documentElement;
|
||||
module.exports = __webpack_require__(/*! ./_global */ 62).document && document.documentElement;
|
||||
|
||||
/***/ }),
|
||||
/* 156 */
|
||||
@ -83926,7 +83916,7 @@ var ctx = __webpack_require__(/*! ./_ctx */ 103)
|
||||
, invoke = __webpack_require__(/*! ./_invoke */ 156)
|
||||
, html = __webpack_require__(/*! ./_html */ 155)
|
||||
, cel = __webpack_require__(/*! ./_dom-create */ 101)
|
||||
, global = __webpack_require__(/*! ./_global */ 63)
|
||||
, global = __webpack_require__(/*! ./_global */ 62)
|
||||
, process = global.process
|
||||
, setTask = global.setImmediate
|
||||
, clearTask = global.clearImmediate
|
||||
@ -84022,7 +84012,7 @@ module.exports = function(bitmap, value){
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// 7.1.1 ToPrimitive(input [, PreferredType])
|
||||
var isObject = __webpack_require__(/*! ./_is-object */ 78);
|
||||
var isObject = __webpack_require__(/*! ./_is-object */ 77);
|
||||
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
|
||||
// and the second argument - flag - preferred type is a string
|
||||
module.exports = function(it, S){
|
||||
@ -84041,7 +84031,7 @@ module.exports = function(it, S){
|
||||
\************************************************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = !__webpack_require__(/*! ./_descriptors */ 77) && !__webpack_require__(/*! ./_fails */ 102)(function(){
|
||||
module.exports = !__webpack_require__(/*! ./_descriptors */ 76) && !__webpack_require__(/*! ./_fails */ 102)(function(){
|
||||
return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ 101)('div'), 'a', {get: function(){ return 7; }}).a != 7;
|
||||
});
|
||||
|
||||
@ -84052,7 +84042,7 @@ module.exports = !__webpack_require__(/*! ./_descriptors */ 77) && !__webpack_re
|
||||
\*******************************************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var isObject = __webpack_require__(/*! ./_is-object */ 78);
|
||||
var isObject = __webpack_require__(/*! ./_is-object */ 77);
|
||||
module.exports = function(it){
|
||||
if(!isObject(it))throw TypeError(it + ' is not an object!');
|
||||
return it;
|
||||
@ -84070,7 +84060,7 @@ var anObject = __webpack_require__(/*! ./_an-object */ 161)
|
||||
, toPrimitive = __webpack_require__(/*! ./_to-primitive */ 159)
|
||||
, dP = Object.defineProperty;
|
||||
|
||||
exports.f = __webpack_require__(/*! ./_descriptors */ 77) ? Object.defineProperty : function defineProperty(O, P, Attributes){
|
||||
exports.f = __webpack_require__(/*! ./_descriptors */ 76) ? Object.defineProperty : function defineProperty(O, P, Attributes){
|
||||
anObject(O);
|
||||
P = toPrimitive(P, true);
|
||||
anObject(Attributes);
|
||||
@ -84091,7 +84081,7 @@ exports.f = __webpack_require__(/*! ./_descriptors */ 77) ? Object.definePropert
|
||||
|
||||
var dP = __webpack_require__(/*! ./_object-dp */ 162)
|
||||
, createDesc = __webpack_require__(/*! ./_property-desc */ 158);
|
||||
module.exports = __webpack_require__(/*! ./_descriptors */ 77) ? function(object, key, value){
|
||||
module.exports = __webpack_require__(/*! ./_descriptors */ 76) ? function(object, key, value){
|
||||
return dP.f(object, key, createDesc(1, value));
|
||||
} : function(object, key, value){
|
||||
object[key] = value;
|
||||
@ -84117,7 +84107,7 @@ module.exports = function(it){
|
||||
\****************************************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var global = __webpack_require__(/*! ./_global */ 63)
|
||||
var global = __webpack_require__(/*! ./_global */ 62)
|
||||
, core = __webpack_require__(/*! ./_core */ 104)
|
||||
, ctx = __webpack_require__(/*! ./_ctx */ 103)
|
||||
, hide = __webpack_require__(/*! ./_hide */ 163)
|
||||
@ -84210,7 +84200,7 @@ module.exports = __webpack_require__(/*! ../modules/_core */ 104).setImmediate;
|
||||
\*****************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! ./readable */ 80).PassThrough
|
||||
module.exports = __webpack_require__(/*! ./readable */ 79).PassThrough
|
||||
|
||||
|
||||
/***/ }),
|
||||
@ -84220,7 +84210,7 @@ module.exports = __webpack_require__(/*! ./readable */ 80).PassThrough
|
||||
\***************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! ./readable */ 80).Transform
|
||||
module.exports = __webpack_require__(/*! ./readable */ 79).Transform
|
||||
|
||||
|
||||
/***/ }),
|
||||
@ -84240,7 +84230,7 @@ module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 51);
|
||||
\**********************************************************/
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 79);
|
||||
module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 78);
|
||||
|
||||
|
||||
/***/ }),
|
||||
@ -84593,7 +84583,7 @@ function config (name) {
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 65).Buffer;
|
||||
var Buffer = __webpack_require__(/*! safe-buffer */ 64).Buffer;
|
||||
var util = __webpack_require__(/*! util */ 175);
|
||||
|
||||
function copyBuffer(src, target, offset) {
|
||||
@ -84708,11 +84698,11 @@ if (util && util.inspect && util.inspect.custom) {
|
||||
|
||||
module.exports = Stream;
|
||||
|
||||
var EE = __webpack_require__(/*! events */ 81).EventEmitter;
|
||||
var EE = __webpack_require__(/*! events */ 80).EventEmitter;
|
||||
var inherits = __webpack_require__(/*! inherits */ 54);
|
||||
|
||||
inherits(Stream, EE);
|
||||
Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 80);
|
||||
Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 79);
|
||||
Stream.Writable = __webpack_require__(/*! readable-stream/writable.js */ 171);
|
||||
Stream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ 170);
|
||||
Stream.Transform = __webpack_require__(/*! readable-stream/transform.js */ 169);
|
||||
@ -85047,10 +85037,10 @@ var utils = __webpack_require__(/*! ./utils */ 31);
|
||||
var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 38);
|
||||
var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 100);
|
||||
var defaults = __webpack_require__(/*! ./defaults */ 99);
|
||||
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 76);
|
||||
var CompressedObject = __webpack_require__(/*! ./compressedObject */ 75);
|
||||
var ZipObject = __webpack_require__(/*! ./zipObject */ 149);
|
||||
var generate = __webpack_require__(/*! ./generate */ 148);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 64);
|
||||
var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 63);
|
||||
var NodejsStreamInputAdapter = __webpack_require__(/*! ./nodejs/NodejsStreamInputAdapter */ 136);
|
||||
|
||||
|
||||
@ -101400,7 +101390,7 @@ init(true);function init(packaged) {
|
||||
if (!global || !global.document)
|
||||
return;
|
||||
|
||||
options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(/*! !webpack amd define */ 82).packaged);
|
||||
options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(/*! !webpack amd define */ 81).packaged);
|
||||
|
||||
var scriptOptions = {};
|
||||
var scriptUrl = "";
|
||||
@ -117427,7 +117417,7 @@ exports.config = acequire("./config");
|
||||
exports.acequire = acequire;
|
||||
|
||||
if (true)
|
||||
exports.define = __webpack_require__(/*! !webpack amd define */ 82);
|
||||
exports.define = __webpack_require__(/*! !webpack amd define */ 81);
|
||||
exports.edit = function(el) {
|
||||
if (typeof el == "string") {
|
||||
var _id = el;
|
||||
|
@ -489,6 +489,8 @@ let CONSTANTS = {
|
||||
|
||||
LatestUpdate:
|
||||
"v0.37.3<br>" +
|
||||
"* New BitNode: BN-7 Bladeburner 2079<br>" +
|
||||
"* New BitNode: BN-12 The Recursion<br>" +
|
||||
"* Bladeburner Changes:<br>" +
|
||||
"*** Bladeburner progress is no longer reset when installing Augmentations<br>" +
|
||||
"*** The number of successess needed to increase a Contract/Operation's max level now scales with the current max level (gradually gets harder)<br>" +
|
||||
|
@ -185,14 +185,14 @@ function displayFactionContent(factionName) {
|
||||
favorGain = favorGain[0];
|
||||
elements.push(createElement("p", {
|
||||
innerText: "Reputation: " + formatNumber(faction.playerReputation, 4),
|
||||
tooltip:"You will earn " + formatNumber(favorGain, 4) +
|
||||
tooltip:"You will earn " + formatNumber(favorGain, 0) +
|
||||
" faction favor upon resetting after installing an Augmentation"
|
||||
}))
|
||||
elements.push(createElement("p", {
|
||||
innerText:"---------------",
|
||||
}));
|
||||
elements.push(createElement("p", {
|
||||
innerText:"Faction Favor: " + formatNumber(faction.favor, 4),
|
||||
innerText:"Faction Favor: " + formatNumber(faction.favor, 0),
|
||||
tooltip:"Faction favor increases the rate at which " +
|
||||
"you earn reputation for this faction by 1% per favor. Faction favor " +
|
||||
"is gained whenever you reset after installing an Augmentation. The amount of " +
|
||||
|
@ -1761,16 +1761,8 @@ function initLocationButtons() {
|
||||
});
|
||||
|
||||
purchaseHomeRam.addEventListener("click", function() {
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
var currentRam = Player.getHomeComputer().maxRam;
|
||||
var newRam = currentRam * 2;
|
||||
var numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
var cost = currentRam * CONSTANTS.BaseCostFor1GBOfRamHome;
|
||||
var mult = Math.pow(1.58, numUpgrades);
|
||||
cost = cost * mult;
|
||||
const cost = Player.getUpgradeHomeRamCost();
|
||||
const ram = Player.getHomeComputer().maxRam;
|
||||
|
||||
var yesBtn = yesNoBoxGetYesButton(), noBtn = yesNoBoxGetNoButton();
|
||||
yesBtn.innerHTML = "Purchase"; noBtn.innerHTML = "Cancel";
|
||||
@ -1782,8 +1774,8 @@ function initLocationButtons() {
|
||||
yesNoBoxClose();
|
||||
});
|
||||
yesNoBoxCreate("Would you like to purchase additional RAM for your home computer? <br><br>" +
|
||||
"This will upgrade your RAM from " + currentRam + "GB to " + newRam + "GB. <br><br>" +
|
||||
"This will cost $" + formatNumber(cost, 2));
|
||||
"This will upgrade your RAM from " + ram + "GB to " + ram*2 + "GB. <br><br>" +
|
||||
"This will cost " + numeral(cost).format('$0.000a'));
|
||||
});
|
||||
|
||||
purchaseHomeCores.addEventListener("click", function() {
|
||||
|
@ -2510,15 +2510,7 @@ function NetscriptFunctions(workerScript) {
|
||||
}
|
||||
}
|
||||
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
var currentRam = Player.getHomeComputer().maxRam;
|
||||
var numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
var cost = currentRam * CONSTANTS.BaseCostFor1GBOfRamHome;
|
||||
var mult = Math.pow(1.55, numUpgrades);
|
||||
cost = cost * mult;
|
||||
const cost = Player.getUpgradeHomeRamCost();
|
||||
|
||||
if (Player.money.lt(cost)) {
|
||||
workerScript.scriptRef.log("ERROR: upgradeHomeRam() failed because you don't have enough money");
|
||||
@ -2550,15 +2542,7 @@ function NetscriptFunctions(workerScript) {
|
||||
}
|
||||
}
|
||||
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
var currentRam = Player.getHomeComputer().maxRam;
|
||||
var numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
var cost = currentRam * CONSTANTS.BaseCostFor1GBOfRamHome;
|
||||
var mult = Math.pow(1.55, numUpgrades);
|
||||
return cost * mult;
|
||||
return Player.getUpgradeHomeRamCost();
|
||||
},
|
||||
workForCompany : function() {
|
||||
var ramCost = CONSTANTS.ScriptSingularityFn2RamCost;
|
||||
|
@ -401,6 +401,18 @@ PlayerObject.prototype.getHomeComputer = function() {
|
||||
return AllServers[this.homeComputer];
|
||||
}
|
||||
|
||||
PlayerObject.prototype.getUpgradeHomeRamCost = function() {
|
||||
//Calculate how many times ram has been upgraded (doubled)
|
||||
const currentRam = Player.getHomeComputer().maxRam;
|
||||
const numUpgrades = Math.log2(currentRam);
|
||||
|
||||
//Calculate cost
|
||||
//Have cost increase by some percentage each time RAM has been upgraded
|
||||
const mult = Math.pow(1.58, numUpgrades);
|
||||
var cost = currentRam * CONSTANTS.BaseCostFor1GBOfRamHome * mult;
|
||||
return cost;
|
||||
}
|
||||
|
||||
//Calculates skill level based on experience. The same formula will be used for every skill
|
||||
PlayerObject.prototype.calculateSkill = function(exp) {
|
||||
return Math.max(Math.floor(32 * Math.log(exp + 534.5) - 200), 1);
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -19,11 +19,10 @@ module.exports = {
|
||||
"dist/engine": "./src/engine.js",
|
||||
"tests/tests": "./tests/index.js",
|
||||
},
|
||||
devtool: "nosources-source-map",
|
||||
devtool: "source-map",
|
||||
output: {
|
||||
path: path.resolve(__dirname, "./"),
|
||||
filename: "[name].bundle.js",
|
||||
devtoolModuleFilenameTemplate: "[id]"
|
||||
filename: "[name].bundle.js"
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
|
Loading…
Reference in New Issue
Block a user