diff --git a/css/characteroverview.scss b/css/characteroverview.scss new file mode 100644 index 000000000..0fabea40f --- /dev/null +++ b/css/characteroverview.scss @@ -0,0 +1,89 @@ +@import "mixins"; +@import "theme"; + +/** + * Styling for the Character Overview Panel (top-right) + */ + +#character-overview-wrapper { + position: relative; +} + +#character-overview-container { + display: none; + position: absolute; /* Stay in place */ + right: 0; + top: 0; + height: auto; /* Full height */ + padding: 10px 2px; + border: 2px solid var(--my-highlight-color); + width: auto; + max-width: 280px; + overflow: auto; /* Enable scroll if needed */ + background-color: rgba(57, 54, 54, 0.9); /* Fallback color */ + z-index: 1; +} + +#character-overview-text { + color: $my-stat-physical; + + table { + border-collapse: collapse; + margin: auto; + } + + td { + padding: 2px; + vertical-align: middle; + } +} + +.character-stat-text { + color: #fff; + background-color: #444; +} + + .character-stat-cell { + text-align: right; + } + +#character-hack-wrapper td, +#character-agi-wrapper td { + border-bottom: 1px #aaa solid; + padding-bottom: 10px; +} + +#character-str-wrapper td, +#character-cha-wrapper td { + padding-top: 10px; +} + +#character-hp-wrapper { color: $my-stat-hp-color; } +#character-money-wrapper { color: $my-stat-money-color; } +#character-hack-wrapper { color: $my-stat-hack-color; } +#character-cha-wrapper { color: $my-stat-cha-color; } +#character-int-wrapper { color: $my-stat-int-color; } + +.character-overview-btn { + @include borderRadius(12px); + @include boxShadow(1px 1px 3px #000); + color: #cecece; + display: inline-block; + font-size: $defaultFontSize * 0.875; + font-weight: bold; + height: 25px; + background-color: #000; + padding: 5px 8px; +} + +.character-quick-options { + margin-top: 10px; + text-align: center; +} + +.character-overview-btn:hover, +.character-overview-btn:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} diff --git a/css/styles.scss b/css/styles.scss index 1dfb98033..79be765c7 100644 --- a/css/styles.scss +++ b/css/styles.scss @@ -296,93 +296,6 @@ a:visited { width: auto; } -/* Character Overview */ -#character-overview-wrapper { - position: relative; -} - -#character-overview-container { - display: none; - position: absolute; /* Stay in place */ - right: 0; - top: 0; - height: auto; /* Full height */ - padding: 10px 2px; - border: 2px solid var(--my-highlight-color); - width: auto; - max-width: 280px; - overflow: auto; /* Enable scroll if needed */ - background-color: rgba(57, 54, 54, 0.9); /* Fallback color */ - z-index: 1; -} - -#character-overview-text { - color: $my-stat-physical; - - table { - border-collapse: collapse; - margin: auto; - } - - td { - padding: 2px; - vertical-align: middle; - } -} - -.character-stat-text { - color: #fff; - background-color: #444; -} - -.character-stat-cell { - text-align: right; -} - -#character-hack-wrapper td, -#character-agi-wrapper td { - border-bottom: 1px #aaa solid; - padding-bottom: 10px; -} - -#character-str-wrapper td, -#character-cha-wrapper td { - padding-top: 10px; -} - -#character-hp-wrapper { color: $my-stat-hp-color; } -#character-money-wrapper { color: $my-stat-money-color; } -#character-hack-wrapper { color: $my-stat-hack-color; } -#character-cha-wrapper { color: $my-stat-cha-color; } -#character-int-wrapper { color: $my-stat-int-color; } - -#character-overview-save-button, -#character-overview-options-button { - @include borderRadius(12px); - @include boxShadow(1px 1px 3px #000); - color: #cecece; - display: inline-block; - font-size: $defaultFontSize * 0.875; - font-weight: bold; - height: 25px; - background-color: #000; - padding: 5px 8px; -} - -.character-quick-options { - margin-top: 10px; - text-align: center; -} - -#character-overview-save-button:hover, -#character-overview-save-button:focus, -#character-overview-options-button:hover, -#character-overview-options-button:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} - /* Scan analyze links from AutoLink */ .scan-analyze-link { cursor: pointer; diff --git a/dist/engine.bundle.js b/dist/engine.bundle.js index 76fdbdc54..9cd486479 100644 --- a/dist/engine.bundle.js +++ b/dist/engine.bundle.js @@ -167,11 +167,11 @@ /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentations */ 21); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BitNodeMultipliers */ 10); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CodingContracts */ 38); +/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CodingContracts */ 40); /* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_CodingContracts__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Company/Company */ 69); /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Company_Company__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Company/Companies */ 17); +/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Company/Companies */ 18); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Company/GetNextCompanyPosition */ 92); /* harmony import */ var _Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_5__); @@ -179,31 +179,33 @@ /* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Company/CompanyPositions */ 25); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Constants */ 1); -/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _CompanyManagement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CompanyManagement */ 58); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CreateProgram */ 22); -/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Crimes */ 34); -/* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./engine */ 8); -/* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Gang */ 52); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Locations */ 4); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); -/* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Server */ 11); -/* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Settings */ 19); -/* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./SourceFile */ 64); -/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! decimal.js */ 31); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); -/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 16); -/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__); -/* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/IPAddress */ 55); -/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); -/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); -/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__); +/* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Company/data/CompanyPositionNames */ 34); +/* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Constants */ 1); +/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _CompanyManagement__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CompanyManagement */ 56); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CreateProgram */ 23); +/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Crimes */ 35); +/* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./engine */ 8); +/* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Faction */ 12); +/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Gang */ 47); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Locations */ 5); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_16__); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); +/* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Server */ 11); +/* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Settings */ 19); +/* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_19__); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./SourceFile */ 64); +/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! decimal.js */ 31); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); +/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/DialogBox */ 9); +/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 16); +/* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__); +/* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/IPAddress */ 55); +/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); +/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); +/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__); @@ -233,7 +235,8 @@ -const CYCLES_PER_SEC = 1000 / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MilliPerCycle; + +const CYCLES_PER_SEC = 1000 / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MilliPerCycle; function PlayerObject() { //Skills and stats @@ -286,15 +289,15 @@ function PlayerObject() { this.faction_rep_mult = 1; //Money - this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](1000); - this.total_money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](0); //Total money ever earned in this "simulation" - this.lifetime_money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](0); //Total money ever earned + this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](1000); + this.total_money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](0); //Total money ever earned in this "simulation" + this.lifetime_money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](0); //Total money ever earned //IP Address of Starting (home) computer this.homeComputer = ""; //Location information - this.city = _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12; + this.city = _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12; this.location = ""; //Company Information @@ -395,7 +398,6 @@ function PlayerObject() { //Flags for determining whether certain "thresholds" have been achieved this.firstFacInvRecvd = false; this.firstAugPurchased = false; - this.firstJobRecvd = false; this.firstTimeTraveled = false; this.firstProgramAvailable = false; @@ -414,15 +416,15 @@ function PlayerObject() { PlayerObject.prototype.init = function() { /* Initialize Player's home computer */ - var t_homeComp = new _Server__WEBPACK_IMPORTED_MODULE_17__[/* Server */ "d"]({ - ip:Object(_utils_IPAddress__WEBPACK_IMPORTED_MODULE_25__[/* createRandomIp */ "a"])(), hostname:"home", organizationName:"Home PC", + var t_homeComp = new _Server__WEBPACK_IMPORTED_MODULE_18__[/* Server */ "d"]({ + ip:Object(_utils_IPAddress__WEBPACK_IMPORTED_MODULE_26__[/* createRandomIp */ "a"])(), hostname:"home", organizationName:"Home PC", isConnectedTo:true, adminRights:true, purchasedByPlayer:true, maxRam:8 }); this.homeComputer = t_homeComp.ip; this.currentServer = t_homeComp.ip; - Object(_Server__WEBPACK_IMPORTED_MODULE_17__[/* AddToAllServers */ "a"])(t_homeComp); + Object(_Server__WEBPACK_IMPORTED_MODULE_18__[/* AddToAllServers */ "a"])(t_homeComp); - this.getHomeComputer().programs.push(_CreateProgram__WEBPACK_IMPORTED_MODULE_10__[/* Programs */ "a"].NukeProgram.name); + this.getHomeComputer().programs.push(_CreateProgram__WEBPACK_IMPORTED_MODULE_11__[/* Programs */ "a"].NukeProgram.name); } PlayerObject.prototype.prestigeAugmentation = function() { @@ -450,9 +452,9 @@ PlayerObject.prototype.prestigeAugmentation = function() { this.agility_exp = 0; this.charisma_exp = 0; - this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](1000); + this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](1000); - this.city = _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12; + this.city = _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12; this.location = ""; this.companyName = ""; @@ -530,9 +532,9 @@ PlayerObject.prototype.prestigeSourceFile = function() { this.agility_exp = 0; this.charisma_exp = 0; - this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](1000); + this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](1000); - this.city = _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12; + this.city = _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12; this.location = ""; this.companyName = ""; @@ -580,7 +582,7 @@ PlayerObject.prototype.prestigeSourceFile = function() { //Gang this.gang = null; - Object(_Gang__WEBPACK_IMPORTED_MODULE_14__[/* resetGangs */ "d"])(); + Object(_Gang__WEBPACK_IMPORTED_MODULE_15__[/* resetGangs */ "d"])(); //Reset Stock market this.hasWseAccount = false; @@ -589,7 +591,7 @@ PlayerObject.prototype.prestigeSourceFile = function() { this.has4SDataTixApi = false; //BitNode 3: Corporatocracy - if (this.bitNodeN === 3) {this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](150e9);} + if (this.bitNodeN === 3) {this.money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](150e9);} this.corporation = 0; this.playtimeSinceLastAug = 0; @@ -601,11 +603,11 @@ PlayerObject.prototype.prestigeSourceFile = function() { } PlayerObject.prototype.getCurrentServer = function() { - return _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][this.currentServer]; + return _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][this.currentServer]; } PlayerObject.prototype.getHomeComputer = function() { - return _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][this.homeComputer]; + return _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][this.homeComputer]; } PlayerObject.prototype.getUpgradeHomeRamCost = function() { @@ -616,7 +618,7 @@ PlayerObject.prototype.getUpgradeHomeRamCost = function() { //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__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].BaseCostFor1GBOfRamHome * mult; + var cost = currentRam * _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].BaseCostFor1GBOfRamHome * mult; return cost; } @@ -789,7 +791,7 @@ PlayerObject.prototype.gainIntelligenceExp = function(exp) { if (isNaN(exp)) { console.log("ERROR: NaN passed into Player.gainIntelligenceExp()"); return; } - if (_NetscriptFunctions__WEBPACK_IMPORTED_MODULE_16__[/* hasAISF */ "b"] || this.intelligence > 0) { + if (_NetscriptFunctions__WEBPACK_IMPORTED_MODULE_17__[/* hasAISF */ "b"] || this.intelligence > 0) { this.intelligence_exp += exp; } else { console.log("Not gaining intelligence experience bc it hasn't been unlocked yet"); @@ -869,7 +871,7 @@ PlayerObject.prototype.processWorkEarnings = function(numCycles=1) { PlayerObject.prototype.startWork = function() { this.resetWorkStatus(); this.isWorking = true; - this.workType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCompany; + this.workType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCompany; this.workHackExpGainRate = this.getWorkHackExpGain(); this.workStrExpGainRate = this.getWorkStrExpGain(); @@ -880,10 +882,10 @@ PlayerObject.prototype.startWork = function() { this.workRepGainRate = this.getWorkRepGain(); this.workMoneyGainRate = this.getWorkMoneyGain(); - this.timeNeededToCompleteWork = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours; + this.timeNeededToCompleteWork = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours; //Remove all old event listeners from Cancel button - var newCancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__["clearEventListeners"])("work-in-progress-cancel-button"); + var newCancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__["clearEventListeners"])("work-in-progress-cancel-button"); newCancelButton.innerHTML = "Cancel Work"; newCancelButton.addEventListener("click", function() { Player.finishWork(true); @@ -891,24 +893,24 @@ PlayerObject.prototype.startWork = function() { }); //Display Work In Progress Screen - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadWorkInProgressContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadWorkInProgressContent(); } PlayerObject.prototype.work = function(numCycles) { //Cap the number of cycles being processed to whatever would put you at //the work time limit (8 hours) var overMax = false; - if (this.timeWorked + (_engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles) >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours) { + if (this.timeWorked + (_engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles) >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours) { overMax = true; - numCycles = Math.round((_Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours - this.timeWorked) / _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed); + numCycles = Math.round((_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours - this.timeWorked) / _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed); } - this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles; + this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles; this.workRepGainRate = this.getWorkRepGain(); this.processWorkEarnings(numCycles); //If timeWorked == 8 hours, then finish. You can only gain 8 hours worth of exp and money - if (overMax || this.timeWorked >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours) { + if (overMax || this.timeWorked >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours) { return this.finishWork(false); } @@ -922,17 +924,17 @@ PlayerObject.prototype.work = function(numCycles) { var txt = document.getElementById("work-in-progress-text"); txt.innerHTML = "You are currently working as a " + this.companyPosition + " at " + this.companyName + " (Current Company Reputation: " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(companyRep, '0,0') + ")

" + - "You have been working for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(companyRep, '0,0') + ")

" + + "You have been working for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "You have earned:

" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " ($" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGainRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) reputation for this company

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp

" + + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " ($" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGainRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) reputation for this company

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp

" + "You will automatically finish after working for 8 hours. You can cancel earlier if you wish, " + "but you will only gain half of the reputation you've earned so far." } @@ -951,38 +953,38 @@ PlayerObject.prototype.finishWork = function(cancelled, sing=false) { this.updateSkillLevels(); var txt = "You earned a total of:
" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation for the company
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation for the company
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; if (cancelled) { - txt = "You worked a short shift of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + txt = "You worked a short shift of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "Since you cancelled your work early, you only gained half of the reputation you earned.

" + txt; } else { txt = "You worked a full shift of 8 hours!

" + txt; } - if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])(txt);} + if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])(txt);} var mainMenu = document.getElementById("mainmenu-container"); mainMenu.style.visibility = "visible"; this.isWorking = false; - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); if (sing) { - var res = "You worked a short shift of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + " and " + - "earned $" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + ", " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp, and " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp."; + var res = "You worked a short shift of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + " and " + + "earned $" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + ", " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp, and " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp."; this.resetWorkStatus(); return res; } @@ -992,7 +994,7 @@ PlayerObject.prototype.finishWork = function(cancelled, sing=false) { PlayerObject.prototype.startWorkPartTime = function() { this.resetWorkStatus(); this.isWorking = true; - this.workType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCompanyPartTime; + this.workType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCompanyPartTime; this.workHackExpGainRate = this.getWorkHackExpGain(); this.workStrExpGainRate = this.getWorkStrExpGain(); @@ -1003,9 +1005,9 @@ PlayerObject.prototype.startWorkPartTime = function() { this.workRepGainRate = this.getWorkRepGain(); this.workMoneyGainRate = this.getWorkMoneyGain(); - this.timeNeededToCompleteWork = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours; + this.timeNeededToCompleteWork = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours; - var newCancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__["clearEventListeners"])("work-in-progress-cancel-button"); + var newCancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__["clearEventListeners"])("work-in-progress-cancel-button"); newCancelButton.innerHTML = "Stop Working"; newCancelButton.addEventListener("click", function() { Player.finishWorkPartTime(); @@ -1013,24 +1015,24 @@ PlayerObject.prototype.startWorkPartTime = function() { }); //Display Work In Progress Screen - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadWorkInProgressContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadWorkInProgressContent(); } PlayerObject.prototype.workPartTime = function(numCycles) { //Cap the number of cycles being processed to whatever would put you at the //work time limit (8 hours) var overMax = false; - if (this.timeWorked + (_engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles) >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours) { + if (this.timeWorked + (_engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles) >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours) { overMax = true; - numCycles = Math.round((_Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours - this.timeWorked) / _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed); + numCycles = Math.round((_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours - this.timeWorked) / _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed); } - this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles; + this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles; this.workRepGainRate = this.getWorkRepGain(); this.processWorkEarnings(numCycles); //If timeWorked == 8 hours, then finish. You can only gain 8 hours worth of exp and money - if (overMax || this.timeWorked >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer8Hours) { + if (overMax || this.timeWorked >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer8Hours) { return this.finishWorkPartTime(); } @@ -1044,17 +1046,17 @@ PlayerObject.prototype.workPartTime = function(numCycles) { var txt = document.getElementById("work-in-progress-text"); txt.innerHTML = "You are currently working as a " + this.companyPosition + " at " + Player.companyName + " (Current Company Reputation: " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(companyRep, '0,0') + ")

" + - "You have been working for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(companyRep, '0,0') + ")

" + + "You have been working for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "You have earned:

" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " ($" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGainRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) reputation for this company

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp

" + + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " ($" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGainRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) reputation for this company

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp

" + "You will automatically finish after working for 8 hours. You can cancel earlier if you wish,
" + "and there will be no penalty because this is a part-time job."; @@ -1069,32 +1071,32 @@ PlayerObject.prototype.finishWorkPartTime = function(sing=false) { this.updateSkillLevels(); var txt = "You earned a total of:
" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation for the company
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; - txt = "You worked for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + txt; - if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])(txt);} + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation for the company
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; + txt = "You worked for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + txt; + if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])(txt);} var mainMenu = document.getElementById("mainmenu-container"); mainMenu.style.visibility = "visible"; this.isWorking = false; - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); if (sing) { - var res = "You worked for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + " and " + + var res = "You worked for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + " and " + "earned a total of " + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + ", " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp, and " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp"; + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + ", " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp, and " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp"; this.resetWorkStatus(); return res; } @@ -1110,12 +1112,12 @@ PlayerObject.prototype.startFactionWork = function(faction) { this.workRepGainRate *= _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].FactionWorkRepGain; this.isWorking = true; - this.workType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeFaction; + this.workType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeFaction; this.currentWorkFactionName = faction.name; - this.timeNeededToCompleteWork = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer20Hours; + this.timeNeededToCompleteWork = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer20Hours; - var cancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__["clearEventListeners"])("work-in-progress-cancel-button"); + var cancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__["clearEventListeners"])("work-in-progress-cancel-button"); cancelButton.innerHTML = "Stop Faction Work"; cancelButton.addEventListener("click", function() { Player.finishFactionWork(true); @@ -1123,16 +1125,16 @@ PlayerObject.prototype.startFactionWork = function(faction) { }); //Display Work In Progress Screen - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadWorkInProgressContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadWorkInProgressContent(); } PlayerObject.prototype.startFactionHackWork = function(faction) { this.resetWorkStatus(); this.workHackExpGainRate = .15 * this.hacking_exp_mult * _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].FactionWorkExpGain; - this.workRepGainRate = this.workRepGainRate = (this.hacking_skill + this.intelligence) / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel * this.faction_rep_mult; + this.workRepGainRate = this.workRepGainRate = (this.hacking_skill + this.intelligence) / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel * this.faction_rep_mult; - this.factionWorkType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].FactionWorkHacking; + this.factionWorkType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].FactionWorkHacking; this.currentWorkFactionDescription = "carrying out hacking contracts"; this.startFactionWork(faction); @@ -1149,7 +1151,7 @@ PlayerObject.prototype.startFactionFieldWork = function(faction) { this.workChaExpGainRate = .1 * this.charisma_exp_mult * _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].FactionWorkExpGain; this.workRepGainRate = this.getFactionFieldWorkRepGain(); - this.factionWorkType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].FactionWorkField; + this.factionWorkType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].FactionWorkField; this.currentWorkFactionDescription = "carrying out field missions" this.startFactionWork(faction); @@ -1166,24 +1168,24 @@ PlayerObject.prototype.startFactionSecurityWork = function(faction) { this.workChaExpGainRate = 0.00 * this.charisma_exp_mult * _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].FactionWorkExpGain; this.workRepGainRate = this.getFactionSecurityWorkRepGain(); - this.factionWorkType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].FactionWorkSecurity; + this.factionWorkType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].FactionWorkSecurity; this.currentWorkFactionDescription = "performing security detail" this.startFactionWork(faction); } PlayerObject.prototype.workForFaction = function(numCycles) { - var faction = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"][this.currentWorkFactionName]; + var faction = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"][this.currentWorkFactionName]; //Constantly update the rep gain rate switch (this.factionWorkType) { - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].FactionWorkHacking: - this.workRepGainRate = (this.hacking_skill + this.intelligence) / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel * this.faction_rep_mult; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].FactionWorkHacking: + this.workRepGainRate = (this.hacking_skill + this.intelligence) / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel * this.faction_rep_mult; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].FactionWorkField: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].FactionWorkField: this.workRepGainRate = this.getFactionFieldWorkRepGain(); break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].FactionWorkSecurity: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].FactionWorkSecurity: this.workRepGainRate = this.getFactionSecurityWorkRepGain(); break; default: @@ -1198,74 +1200,74 @@ PlayerObject.prototype.workForFaction = function(numCycles) { //Cap the number of cycles being processed to whatever would put you at limit (20 hours) var overMax = false; - if (this.timeWorked + (_engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles) >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer20Hours) { + if (this.timeWorked + (_engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles) >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer20Hours) { overMax = true; - numCycles = Math.round((_Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer20Hours - this.timeWorked) / _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed); + numCycles = Math.round((_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer20Hours - this.timeWorked) / _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed); } - this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles; + this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles; this.processWorkEarnings(numCycles); //If timeWorked == 20 hours, then finish. You can only work for the faction for 20 hours - if (overMax || this.timeWorked >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MillisecondsPer20Hours) { + if (overMax || this.timeWorked >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MillisecondsPer20Hours) { return this.finishFactionWork(false); } var txt = document.getElementById("work-in-progress-text"); txt.innerHTML = "You are currently " + this.currentWorkFactionDescription + " for your faction " + faction.name + - " (Current Faction Reputation: " + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(faction.playerReputation, '0,0') + ").
" + - "You have been doing this for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + " (Current Faction Reputation: " + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(faction.playerReputation, '0,0') + ").
" + + "You have been doing this for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "You have earned:

" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGainRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) reputation for this faction

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp

" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp

" + + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGainRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) reputation for this faction

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp

" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp

" + "You will automatically finish after working for 20 hours. You can cancel earlier if you wish.
" + "There is no penalty for cancelling earlier."; } PlayerObject.prototype.finishFactionWork = function(cancelled, sing=false) { - var faction = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"][this.currentWorkFactionName]; + var faction = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"][this.currentWorkFactionName]; faction.playerReputation += (this.workRepGained); this.gainMoney(this.workMoneyGained); this.updateSkillLevels(); - var txt = "You worked for your faction " + faction.name + " for a total of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + var txt = "You worked for your faction " + faction.name + " for a total of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "You earned a total of:
" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation for the faction
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; - if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])(txt);} + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " reputation for the faction
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; + if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])(txt);} var mainMenu = document.getElementById("mainmenu-container"); mainMenu.style.visibility = "visible"; this.isWorking = false; - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadFactionContent(); - Object(_Faction__WEBPACK_IMPORTED_MODULE_13__[/* displayFactionContent */ "c"])(faction.name); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadFactionContent(); + Object(_Faction__WEBPACK_IMPORTED_MODULE_14__[/* displayFactionContent */ "c"])(faction.name); if (sing) { - var res="You worked for your faction " + faction.name + " for a total of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + ". " + + var res="You worked for your faction " + faction.name + " for a total of " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + ". " + "You earned " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " rep, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " str exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " def exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dex exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agi exp, and " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " cha exp."; + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workRepGained, '0,0.0000') + " rep, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " str exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " def exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dex exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agi exp, and " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " cha exp."; this.resetWorkStatus(); return res; } @@ -1277,7 +1279,7 @@ PlayerObject.prototype.getWorkMoneyGain = function() { // If player has SF-11, calculate salary multiplier from favor let bn11Mult = 1; const company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.companyName]; - if (_NetscriptFunctions__WEBPACK_IMPORTED_MODULE_16__[/* hasBn11SF */ "d"]) { bn11Mult = 1 + (company.favor / 100); } + if (_NetscriptFunctions__WEBPACK_IMPORTED_MODULE_17__[/* hasBn11SF */ "d"]) { bn11Mult = 1 + (company.favor / 100); } // Get base salary const companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][this.companyPosition]; @@ -1389,7 +1391,7 @@ PlayerObject.prototype.getWorkRepGain = function() { this.agility, this.charisma); //Intelligence provides a flat bonus to job performance - jobPerformance += (this.intelligence / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel); + jobPerformance += (this.intelligence / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel); //Update reputation gain rate to account for company favor var favorMult = 1 + (company.favor / 100); @@ -1398,22 +1400,22 @@ PlayerObject.prototype.getWorkRepGain = function() { } PlayerObject.prototype.getFactionSecurityWorkRepGain = function() { - var t = 0.9 * (this.hacking_skill / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.strength / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.defense / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.dexterity / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.agility / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel) / 4.5; + var t = 0.9 * (this.hacking_skill / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.strength / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.defense / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.dexterity / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.agility / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel) / 4.5; return t * this.faction_rep_mult; } PlayerObject.prototype.getFactionFieldWorkRepGain = function() { - var t = 0.9 * (this.hacking_skill / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.strength / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.defense / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.dexterity / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.agility / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.charisma / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel + - this.intelligence / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].MaxSkillLevel) / 5.5; + var t = 0.9 * (this.hacking_skill / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.strength / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.defense / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.dexterity / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.agility / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.charisma / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel + + this.intelligence / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MaxSkillLevel) / 5.5; return t * this.faction_rep_mult; } @@ -1421,7 +1423,7 @@ PlayerObject.prototype.getFactionFieldWorkRepGain = function() { PlayerObject.prototype.startCreateProgramWork = function(programName, time, reqLevel) { this.resetWorkStatus(); this.isWorking = true; - this.workType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCreateProgram; + this.workType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCreateProgram; //Time needed to complete work affected by hacking skill (linearly based on //ratio of (your skill - required level) to MAX skill) @@ -1446,7 +1448,7 @@ PlayerObject.prototype.startCreateProgramWork = function(programName, time, reqL this.createProgramName = programName; - var cancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__["clearEventListeners"])("work-in-progress-cancel-button"); + var cancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__["clearEventListeners"])("work-in-progress-cancel-button"); cancelButton.innerHTML = "Cancel work on creating program"; cancelButton.addEventListener("click", function() { Player.finishCreateProgramWork(true); @@ -1454,7 +1456,7 @@ PlayerObject.prototype.startCreateProgramWork = function(programName, time, reqL }); //Display Work In Progress Screen - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadWorkInProgressContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadWorkInProgressContent(); } PlayerObject.prototype.createProgramWork = function(numCycles) { @@ -1464,8 +1466,8 @@ PlayerObject.prototype.createProgramWork = function(numCycles) { skillMult = 1 + ((skillMult - 1) / 5); //The divider constant can be adjusted as necessary //Skill multiplier directly applied to "time worked" - this.timeWorked += (_engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles); - this.timeWorkedCreateProgram += (_engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles * skillMult); + this.timeWorked += (_engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles); + this.timeWorkedCreateProgram += (_engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles * skillMult); var programName = this.createProgramName; if (this.timeWorkedCreateProgram >= this.timeNeededToCompleteWork) { @@ -1474,7 +1476,7 @@ PlayerObject.prototype.createProgramWork = function(numCycles) { var txt = document.getElementById("work-in-progress-text"); txt.innerHTML = "You are currently working on coding " + programName + ".

" + - "You have been working for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + "You have been working for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "The program is " + (this.timeWorkedCreateProgram / this.timeNeededToCompleteWork * 100).toFixed(2) + "% complete.
" + "If you cancel, your work will be saved and you can come back to complete the program later."; } @@ -1482,7 +1484,7 @@ PlayerObject.prototype.createProgramWork = function(numCycles) { PlayerObject.prototype.finishCreateProgramWork = function(cancelled, sing=false) { var programName = this.createProgramName; if (cancelled === false) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("You've finished creating " + programName + "!
" + + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("You've finished creating " + programName + "!
" + "The new program can be found on your home computer."); this.getHomeComputer().programs.push(programName); @@ -1493,7 +1495,7 @@ PlayerObject.prototype.finishCreateProgramWork = function(cancelled, sing=false) } if (!cancelled) { - this.gainIntelligenceExp(this.createProgramReqLvl / _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].IntelligenceProgramBaseExpGain); + this.gainIntelligenceExp(this.createProgramReqLvl / _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].IntelligenceProgramBaseExpGain); } var mainMenu = document.getElementById("mainmenu-container"); @@ -1501,7 +1503,7 @@ PlayerObject.prototype.finishCreateProgramWork = function(cancelled, sing=false) this.isWorking = false; - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadTerminalContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadTerminalContent(); this.resetWorkStatus(); } @@ -1509,11 +1511,11 @@ PlayerObject.prototype.finishCreateProgramWork = function(cancelled, sing=false) PlayerObject.prototype.startClass = function(costMult, expMult, className) { this.resetWorkStatus(); this.isWorking = true; - this.workType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeStudyClass; + this.workType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeStudyClass; this.className = className; - var gameCPS = 1000 / _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed; + var gameCPS = 1000 / _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed; //Base exp gains per second var baseStudyComputerScienceExp = 0.5; @@ -1528,43 +1530,43 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) { var cost = 0; var hackExp = 0, strExp = 0, defExp = 0, dexExp = 0, agiExp = 0, chaExp = 0; switch (className) { - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassStudyComputerScience: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassStudyComputerScience: hackExp = baseStudyComputerScienceExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassDataStructures: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassDataStructuresBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassDataStructures: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassDataStructuresBaseCost * costMult / gameCPS; hackExp = baseDataStructuresExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassNetworks: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassNetworksBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassNetworks: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassNetworksBaseCost * costMult / gameCPS; hackExp = baseNetworksExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassAlgorithms: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassAlgorithmsBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassAlgorithms: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassAlgorithmsBaseCost * costMult / gameCPS; hackExp = baseAlgorithmsExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassManagement: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassManagementBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassManagement: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassManagementBaseCost * costMult / gameCPS; chaExp = baseManagementExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassLeadership: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassLeadershipBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassLeadership: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassLeadershipBaseCost * costMult / gameCPS; chaExp = baseLeadershipExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymStrength: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymStrength: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; strExp = baseGymExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymDefense: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymDefense: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; defExp = baseGymExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymDexterity: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymDexterity: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; dexExp = baseGymExp * expMult / gameCPS; break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymAgility: - cost = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymAgility: + cost = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymBaseCost * costMult / gameCPS; agiExp = baseGymExp * expMult / gameCPS; break; default: @@ -1580,11 +1582,11 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) { this.workAgiExpGainRate = agiExp * this.agility_exp_mult * _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].ClassGymExpGain;; this.workChaExpGainRate = chaExp * this.charisma_exp_mult * _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].ClassGymExpGain;; - var cancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__["clearEventListeners"])("work-in-progress-cancel-button"); - if (className == _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymStrength || - className == _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymDefense || - className == _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymDexterity || - className == _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].ClassGymAgility) { + var cancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__["clearEventListeners"])("work-in-progress-cancel-button"); + if (className == _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymStrength || + className == _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymDefense || + className == _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymDexterity || + className == _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ClassGymAgility) { cancelButton.innerHTML = "Stop training at gym"; } else { cancelButton.innerHTML = "Stop taking course"; @@ -1595,33 +1597,33 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) { }); //Display Work In Progress Screen - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadWorkInProgressContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadWorkInProgressContent(); } PlayerObject.prototype.takeClass = function(numCycles) { - this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles; + this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles; var className = this.className; this.processWorkEarnings(numCycles); var txt = document.getElementById("work-in-progress-text"); - txt.innerHTML = "You have been " + className + " for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + + txt.innerHTML = "You have been " + className + " for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + "

" + "This has cost you:
" + - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " ($" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyLossRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + " ($" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyLossRate * CYCLES_PER_SEC, '0,0.00') + " / sec)

" + "You have gained:
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) hacking exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) agility exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " (" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGainRate * CYCLES_PER_SEC, '0,0.0000') + " / sec) charisma exp
" + "You may cancel at any time"; } //The 'sing' argument defines whether or not this function was called //through a Singularity Netscript function PlayerObject.prototype.finishClass = function(sing=false) { - this.gainIntelligenceExp(_Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].IntelligenceClassBaseExpGain * Math.round(this.timeWorked / 1000)); + this.gainIntelligenceExp(_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].IntelligenceClassBaseExpGain * Math.round(this.timeWorked / 1000)); if (this.workMoneyGained > 0) { throw new Error("ERR: Somehow gained money while taking class"); @@ -1629,33 +1631,33 @@ PlayerObject.prototype.finishClass = function(sing=false) { this.loseMoney(this.workMoneyGained * -1); this.updateSkillLevels(); - var txt = "After " + this.className + " for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + ",
" + - "you spent a total of $" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained * -1, '0,0.00') + ".

" + + var txt = "After " + this.className + " for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + ",
" + + "you spent a total of $" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained * -1, '0,0.00') + ".

" + "You earned a total of:
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; - if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])(txt);} + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp
"; + if (!sing) {Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])(txt);} var mainMenu = document.getElementById("mainmenu-container"); mainMenu.style.visibility = "visible"; this.isWorking = false; - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); if (sing) { - var res="After " + this.className + " for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + ", " + - "you spent a total of $" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained * -1, '0,0.00') + ". " + + var res="After " + this.className + " for " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeWorked) + ", " + + "you spent a total of $" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained * -1, '0,0.00') + ". " + "You earned a total of: " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp, and " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp"; + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility exp, and " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma exp"; this.resetWorkStatus(); return res; } @@ -1666,7 +1668,7 @@ PlayerObject.prototype.finishClass = function(sing=false) { PlayerObject.prototype.startCrime = function(hackExp, strExp, defExp, dexExp, agiExp, chaExp, money, time, singParams=null) { this.resetWorkStatus(); this.isWorking = true; - this.workType = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCrime; + this.workType = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCrime; if (singParams && singParams.workerscript) { this.committingCrimeThruSingFn = true; @@ -1684,7 +1686,7 @@ PlayerObject.prototype.startCrime = function(hackExp, strExp, defExp, dexExp, ag this.timeNeededToCompleteWork = time; //Remove all old event listeners from Cancel button - var newCancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_24__["clearEventListeners"])("work-in-progress-cancel-button") + var newCancelButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_25__["clearEventListeners"])("work-in-progress-cancel-button") newCancelButton.innerHTML = "Cancel crime" newCancelButton.addEventListener("click", function() { Player.finishCrime(true); @@ -1692,11 +1694,11 @@ PlayerObject.prototype.startCrime = function(hackExp, strExp, defExp, dexExp, ag }); //Display Work In Progress Screen - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadWorkInProgressContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadWorkInProgressContent(); } PlayerObject.prototype.commitCrime = function (numCycles) { - this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"]._idleSpeed * numCycles; + this.timeWorked += _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"]._idleSpeed * numCycles; if (this.timeWorked >= this.timeNeededToCompleteWork) {this.finishCrime(false); return;} @@ -1708,7 +1710,7 @@ PlayerObject.prototype.commitCrime = function (numCycles) { var txt = document.getElementById("work-in-progress-text"); txt.innerHTML = "You are attempting to " + this.crimeType + ".
" + - "Time remaining: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_27__["convertTimeMsToTimeElapsedString"])(this.timeNeededToCompleteWork - this.timeWorked) + "
" + + "Time remaining: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_28__["convertTimeMsToTimeElapsedString"])(this.timeNeededToCompleteWork - this.timeWorked) + "
" + progressBar.replace( / /g, " " ); } @@ -1716,18 +1718,18 @@ PlayerObject.prototype.finishCrime = function(cancelled) { //Determine crime success/failure if (!cancelled) { var statusText = ""; //TODO, unique message for each crime when you succeed - if (Object(_Crimes__WEBPACK_IMPORTED_MODULE_11__[/* determineCrimeSuccess */ "b"])(this.crimeType, this.workMoneyGained)) { + if (Object(_Crimes__WEBPACK_IMPORTED_MODULE_12__[/* determineCrimeSuccess */ "b"])(this.crimeType, this.workMoneyGained)) { //Handle Karma and crime statistics let crime = null; - for(const i in _Crimes__WEBPACK_IMPORTED_MODULE_11__[/* Crimes */ "a"]) { - if(_Crimes__WEBPACK_IMPORTED_MODULE_11__[/* Crimes */ "a"][i].type == this.crimeType) { - crime = _Crimes__WEBPACK_IMPORTED_MODULE_11__[/* Crimes */ "a"][i]; + for(const i in _Crimes__WEBPACK_IMPORTED_MODULE_12__[/* Crimes */ "a"]) { + if(_Crimes__WEBPACK_IMPORTED_MODULE_12__[/* Crimes */ "a"][i].type == this.crimeType) { + crime = _Crimes__WEBPACK_IMPORTED_MODULE_12__[/* Crimes */ "a"][i]; break; } } if(crime == null) { console.log(this.crimeType); - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); } this.karma -= crime.karma; this.numPeopleKilled += crime.kills; @@ -1745,24 +1747,24 @@ PlayerObject.prototype.finishCrime = function(cancelled) { if (this.committingCrimeThruSingFn) { if(this.singFnCrimeWorkerScript.disableLogs.ALL == null && this.singFnCrimeWorkerScript.disableLogs.commitCrime == null) { this.singFnCrimeWorkerScript.scriptRef.log("Crime successful! Gained " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, "$0.000a") + ", " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hack exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " str exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " def exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dex exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agi exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " cha exp."); + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, "$0.000a") + ", " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hack exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " str exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " def exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dex exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agi exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " cha exp."); } } else { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Crime successful!

" + + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Crime successful!

" + "You gained:
"+ - "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma experience"); + "$" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workMoneyGained, '0,0.00') + "
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma experience"); } } else { @@ -1776,22 +1778,22 @@ PlayerObject.prototype.finishCrime = function(cancelled) { if (this.committingCrimeThruSingFn) { if(this.singFnCrimeWorkerScript.disableLogs.ALL == null && this.singFnCrimeWorkerScript.disableLogs.commitCrime == null) { this.singFnCrimeWorkerScript.scriptRef.log("Crime failed! Gained " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hack exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " str exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " def exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dex exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agi exp, " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " cha exp."); + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hack exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " str exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " def exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dex exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agi exp, " + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " cha exp."); } } else { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Crime failed!

" + + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Crime failed!

" + "You gained:
"+ - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility experience
" + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma experience"); + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workHackExpGained, '0,0.0000') + " hacking experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workStrExpGained, '0,0.0000') + " strength experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDefExpGained, '0,0.0000') + " defense experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workDexExpGained, '0,0.0000') + " dexterity experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workAgiExpGained, '0,0.0000') + " agility experience
" + + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.workChaExpGained, '0,0.0000') + " charisma experience"); } } @@ -1808,7 +1810,7 @@ PlayerObject.prototype.finishCrime = function(cancelled) { mainMenu.style.visibility = "visible"; this.isWorking = false; this.resetWorkStatus(); - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); } //Cancels the player's current "work" assignment and gives the proper rewards @@ -1817,22 +1819,22 @@ PlayerObject.prototype.singularityStopWork = function() { if (!this.isWorking) {return "";} var res; //Earnings text for work switch (this.workType) { - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeStudyClass: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeStudyClass: res = this.finishClass(true); break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCompany: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCompany: res = this.finishWork(true, true); break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCompanyPartTime: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCompanyPartTime: res = this.finishWorkPartTime(true); break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeFaction: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeFaction: res = this.finishFactionWork(true, true); break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCreateProgram: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCreateProgram: res = this.finishCreateProgramWork(true, true); break; - case _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].WorkTypeCrime: + case _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].WorkTypeCrime: res = this.finishCrime(true); break; default: @@ -1855,15 +1857,15 @@ PlayerObject.prototype.takeDamage = function(amt) { } PlayerObject.prototype.hospitalize = function() { - if (_Settings__WEBPACK_IMPORTED_MODULE_18__["Settings"].SuppressHospitalizationPopup === false) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])( + if (_Settings__WEBPACK_IMPORTED_MODULE_19__["Settings"].SuppressHospitalizationPopup === false) { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])( "You were in critical condition! You were taken to the hospital where " + "luckily they were able to save your life. You were charged " + - _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(this.max_hp * _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].HospitalCostPerHp, '$0.000a') + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(this.max_hp * _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].HospitalCostPerHp, '$0.000a') ); } - this.loseMoney(this.max_hp * _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].HospitalCostPerHp); + this.loseMoney(this.max_hp * _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].HospitalCostPerHp); this.hp = this.max_hp; } @@ -1895,7 +1897,7 @@ PlayerObject.prototype.applyForJob = function(entryPosType, sing=false) { if (!this.isQualified(company, pos)) { var reqText = Object(_Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_6__["getJobRequirementText"])(company, pos); if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position
" + reqText); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position
" + reqText); return; } @@ -1922,14 +1924,14 @@ PlayerObject.prototype.applyForJob = function(entryPosType, sing=false) { var nextPos = Object(_Company_GetNextCompanyPosition__WEBPACK_IMPORTED_MODULE_5__["getNextCompanyPosition"])(pos); if (nextPos == null) { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("You are already at the highest position for your field! No promotion available"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("You are already at the highest position for your field! No promotion available"); } else if (company.hasPosition(nextPos)) { if (sing) {return false;} var reqText = Object(_Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_6__["getJobRequirementText"])(company, nextPos); - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unfortunately, you do not qualify for a promotion
" + reqText); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unfortunately, you do not qualify for a promotion
" + reqText); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("You are already at the highest position for your field! No promotion available"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("You are already at the highest position for your field! No promotion available"); } return; //Same job, do nothing } @@ -1951,16 +1953,19 @@ PlayerObject.prototype.applyForJob = function(entryPosType, sing=false) { this.companyName = company.name; this.companyPosition = pos.name; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); + if (leaveCompany) { if (sing) { return true; } - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])([`Congratulations! You were offered a new job at ${this.companyName} as a ${pos.name}!`, + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])([`Congratulations! You were offered a new job at ${this.companyName} as a ${pos.name}!`, `You lost 1000 reputation at your old company ${oldCompanyName} because you left.`].join("
")); } else { if (sing) { return true; } - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Congratulations! You were offered a new job at " + this.companyName + " as a " + pos.name + "!"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Congratulations! You were offered a new job at " + this.companyName + " as a " + pos.name + "!"); } - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); } //Returns your next position at a company given the field (software, business, etc.) @@ -1996,137 +2001,122 @@ PlayerObject.prototype.getNextCompanyPosition = function(company, entryPosType) } PlayerObject.prototype.applyForSoftwareJob = function(sing=false) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].SoftwareIntern, sing); + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["SoftwareCompanyPositions"][0]], sing); } PlayerObject.prototype.applyForSoftwareConsultantJob = function(sing=false) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].SoftwareConsultant, sing); + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["SoftwareConsultantCompanyPositions"][0]], sing); } PlayerObject.prototype.applyForItJob = function(sing=false) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].ITIntern, sing); + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["ITCompanyPositions"][0]], sing); } PlayerObject.prototype.applyForSecurityEngineerJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].SecurityEngineer)) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].SecurityEngineer, sing); + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["SecurityEngineerCompanyPositions"][0]])) { + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["SecurityEngineerCompanyPositions"][0]], sing); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } PlayerObject.prototype.applyForNetworkEngineerJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].NetworkEngineer)) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].NetworkEngineer, sing); + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["NetworkEngineerCompanyPositions"][0]])) { + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["NetworkEngineerCompanyPositions"][0]], sing); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } PlayerObject.prototype.applyForBusinessJob = function(sing=false) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].BusinessIntern, sing); + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["BusinessCompanyPositions"][0]], sing); } PlayerObject.prototype.applyForBusinessConsultantJob = function(sing=false) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].BusinessConsultant, sing); + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["BusinessConsultantCompanyPositions"][0]], sing); } PlayerObject.prototype.applyForSecurityJob = function(sing=false) { - //TODO If case for POlice departments - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].SecurityGuard, sing); + // TODO Police Jobs + // Indexing starts at 2 because 0 is for police officer + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["SecurityCompanyPositions"][2]], sing); } PlayerObject.prototype.applyForAgentJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].FieldAgent)) { - return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].FieldAgent, sing); + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["AgentCompanyPositions"][0]])) { + return this.applyForJob(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["AgentCompanyPositions"][0]], sing); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].Employee)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["MiscCompanyPositions"][1]])) { this.companyName = company.companyName; - this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].Employee; + this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["MiscCompanyPositions"][1]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Congratulations, you are now employed at " + this.companyName); - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Congratulations, you are now employed at " + this.companyName); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].PartTimeEmployee)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["PartTimeCompanyPositions"][1]])) { this.companyName = company.companyName; - this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].PartTimeEmployee; + this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["PartTimeCompanyPositions"][1]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Congratulations, you are now employed part-time at " + this.companyName); - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Congratulations, you are now employed part-time at " + this.companyName); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } PlayerObject.prototype.applyForWaiterJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].Waiter)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["MiscCompanyPositions"][0]])) { this.companyName = company.companyName; - this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].Waiter; + this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["MiscCompanyPositions"][0]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Congratulations, you are now employed as a waiter at " + this.companyName); - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Congratulations, you are now employed as a waiter at " + this.companyName); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } PlayerObject.prototype.applyForPartTimeWaiterJob = function(sing=false) { var company = _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][this.location]; //Company being applied to - if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].PartTimeWaiter)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["PartTimeCompanyPositions"][0]])) { this.companyName = company.companyName; - this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"].PartTimeWaiter; + this.companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_8__["PartTimeCompanyPositions"][0]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Congratulations, you are now employed as a part-time waiter at " + this.companyName); - _engine__WEBPACK_IMPORTED_MODULE_12__["Engine"].loadLocationContent(); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Congratulations, you are now employed as a part-time waiter at " + this.companyName); + _engine__WEBPACK_IMPORTED_MODULE_13__["Engine"].loadLocationContent(); } else { if (sing) {return false;} - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_23__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_24__["dialogBoxCreate"])("Unforunately, you do not qualify for this position"); } } @@ -2189,12 +2179,12 @@ PlayerObject.prototype.reapplyAllSourceFiles = function() { for (let i = 0; i < this.sourceFiles.length; ++i) { var srcFileKey = "SourceFile" + this.sourceFiles[i].n; - var sourceFileObject = _SourceFile__WEBPACK_IMPORTED_MODULE_20__[/* SourceFiles */ "b"][srcFileKey]; + var sourceFileObject = _SourceFile__WEBPACK_IMPORTED_MODULE_21__[/* SourceFiles */ "b"][srcFileKey]; if (sourceFileObject == null) { console.log("ERROR: Invalid source file number: " + this.sourceFiles[i].n); continue; } - Object(_SourceFile__WEBPACK_IMPORTED_MODULE_20__[/* applySourceFile */ "c"])(this.sourceFiles[i]); + Object(_SourceFile__WEBPACK_IMPORTED_MODULE_21__[/* applySourceFile */ "c"])(this.sourceFiles[i]); } } @@ -2214,7 +2204,7 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //Illuminati - var illuminatiFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Illuminati"]; + var illuminatiFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Illuminati"]; if (!illuminatiFac.isBanned && !illuminatiFac.isMember && !illuminatiFac.alreadyInvited && numAugmentations >= 30 && this.money.gte(150000000000) && @@ -2225,7 +2215,7 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //Daedalus - var daedalusFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Daedalus"]; + var daedalusFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Daedalus"]; if (!daedalusFac.isBanned && !daedalusFac.isMember && !daedalusFac.alreadyInvited && numAugmentations >= 30 && this.money.gte(100000000000) && @@ -2236,7 +2226,7 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //The Covenant - var covenantFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["The Covenant"]; + var covenantFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["The Covenant"]; if (!covenantFac.isBanned && !covenantFac.isMember && !covenantFac.alreadyInvited && numAugmentations >= 30 && this.money.gte(75000000000) && @@ -2249,88 +2239,88 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //ECorp - var ecorpFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["ECorp"]; + var ecorpFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["ECorp"]; if (!ecorpFac.isBanned && !ecorpFac.isMember && !ecorpFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].AevumECorp && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].AevumECorp && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(ecorpFac); } //MegaCorp - var megacorpFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["MegaCorp"]; + var megacorpFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["MegaCorp"]; if (!megacorpFac.isBanned && !megacorpFac.isMember && !megacorpFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12MegaCorp && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12MegaCorp && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(megacorpFac); } //Bachman & Associates - var bachmanandassociatesFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Bachman & Associates"]; + var bachmanandassociatesFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Bachman & Associates"]; if (!bachmanandassociatesFac.isBanned && !bachmanandassociatesFac.isMember && !bachmanandassociatesFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].AevumBachmanAndAssociates && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].AevumBachmanAndAssociates && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(bachmanandassociatesFac); } //Blade Industries - var bladeindustriesFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Blade Industries"]; + var bladeindustriesFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Blade Industries"]; if (!bladeindustriesFac.isBanned && !bladeindustriesFac.isMember && !bladeindustriesFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12BladeIndustries && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12BladeIndustries && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(bladeindustriesFac); } //NWO - var nwoFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["NWO"]; + var nwoFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["NWO"]; if (!nwoFac.isBanned && !nwoFac.isMember && !nwoFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].VolhavenNWO && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].VolhavenNWO && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(nwoFac); } //Clarke Incorporated - var clarkeincorporatedFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Clarke Incorporated"]; + var clarkeincorporatedFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Clarke Incorporated"]; if (!clarkeincorporatedFac.isBanned && !clarkeincorporatedFac.isMember && !clarkeincorporatedFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].AevumClarkeIncorporated && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].AevumClarkeIncorporated && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(clarkeincorporatedFac); } //OmniTek Incorporated - var omnitekincorporatedFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["OmniTek Incorporated"]; + var omnitekincorporatedFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["OmniTek Incorporated"]; if (!omnitekincorporatedFac.isBanned && !omnitekincorporatedFac.isMember && !omnitekincorporatedFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].VolhavenOmniTekIncorporated && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].VolhavenOmniTekIncorporated && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(omnitekincorporatedFac); } //Four Sigma - var foursigmaFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Four Sigma"]; + var foursigmaFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Four Sigma"]; if (!foursigmaFac.isBanned && !foursigmaFac.isMember && !foursigmaFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12FourSigma && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12FourSigma && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(foursigmaFac); } //KuaiGong International - var kuaigonginternationalFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["KuaiGong International"]; + var kuaigonginternationalFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["KuaiGong International"]; if (!kuaigonginternationalFac.isBanned && !kuaigonginternationalFac.isMember && !kuaigonginternationalFac.alreadyInvited && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].ChongqingKuaiGongInternational && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CorpFactionRepRequirement) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].ChongqingKuaiGongInternational && companyRep >= _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CorpFactionRepRequirement) { invitedFactions.push(kuaigonginternationalFac); } //Fulcrum Secret Technologies - If u've unlocked fulcrum secret technolgoies server and have a high rep with the company - var fulcrumsecrettechonologiesFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Fulcrum Secret Technologies"]; - var fulcrumSecretServer = _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerNames */ "b"].FulcrumSecretTechnologies]]; + var fulcrumsecrettechonologiesFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Fulcrum Secret Technologies"]; + var fulcrumSecretServer = _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerNames */ "b"].FulcrumSecretTechnologies]]; if (fulcrumSecretServer == null) { console.log("ERROR: Could not find Fulcrum Secret Technologies Server"); } else { if (!fulcrumsecrettechonologiesFac.isBanned && !fulcrumsecrettechonologiesFac.isMember && !fulcrumsecrettechonologiesFac.alreadyInvited && fulcrumSecretServer.manuallyHacked && - this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].AevumFulcrumTechnologies && companyRep >= 250000) { + this.companyName == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].AevumFulcrumTechnologies && companyRep >= 250000) { invitedFactions.push(fulcrumsecrettechonologiesFac); } } //BitRunners - var bitrunnersFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["BitRunners"]; + var bitrunnersFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["BitRunners"]; var homeComp = this.getHomeComputer(); - var bitrunnersServer = _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerNames */ "b"].BitRunnersServer]]; + var bitrunnersServer = _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerNames */ "b"].BitRunnersServer]]; if (bitrunnersServer == null) { console.log("ERROR: Could not find BitRunners Server"); } else if (!bitrunnersFac.isBanned && !bitrunnersFac.isMember && bitrunnersServer.manuallyHacked && @@ -2339,8 +2329,8 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //The Black Hand - var theblackhandFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["The Black Hand"]; - var blackhandServer = _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerNames */ "b"].TheBlackHandServer]]; + var theblackhandFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["The Black Hand"]; + var blackhandServer = _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerNames */ "b"].TheBlackHandServer]]; if (blackhandServer == null) { console.log("ERROR: Could not find The Black Hand Server"); } else if (!theblackhandFac.isBanned && !theblackhandFac.isMember && blackhandServer.manuallyHacked && @@ -2349,8 +2339,8 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //NiteSec - var nitesecFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["NiteSec"]; - var nitesecServer = _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerNames */ "b"].NiteSecServer]]; + var nitesecFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["NiteSec"]; + var nitesecServer = _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerNames */ "b"].NiteSecServer]]; if (nitesecServer == null) { console.log("ERROR: Could not find NiteSec Server"); } else if (!nitesecFac.isBanned && !nitesecFac.isMember && nitesecServer.manuallyHacked && @@ -2359,80 +2349,80 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //Chongqing - var chongqingFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Chongqing"]; + var chongqingFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Chongqing"]; if (!chongqingFac.isBanned && !chongqingFac.isMember && !chongqingFac.alreadyInvited && - this.money.gte(20000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Chongqing) { + this.money.gte(20000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Chongqing) { invitedFactions.push(chongqingFac); } //Sector-12 - var sector12Fac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Sector-12"]; + var sector12Fac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Sector-12"]; if (!sector12Fac.isBanned && !sector12Fac.isMember && !sector12Fac.alreadyInvited && - this.money.gte(15000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12) { + this.money.gte(15000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12) { invitedFactions.push(sector12Fac); } //New Tokyo - var newtokyoFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["New Tokyo"]; + var newtokyoFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["New Tokyo"]; if (!newtokyoFac.isBanned && !newtokyoFac.isMember && !newtokyoFac.alreadyInvited && - this.money.gte(20000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].NewTokyo) { + this.money.gte(20000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].NewTokyo) { invitedFactions.push(newtokyoFac); } //Aevum - var aevumFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Aevum"]; + var aevumFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Aevum"]; if (!aevumFac.isBanned && !aevumFac.isMember && !aevumFac.alreadyInvited && - this.money.gte(40000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Aevum) { + this.money.gte(40000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Aevum) { invitedFactions.push(aevumFac); } //Ishima - var ishimaFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Ishima"]; + var ishimaFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Ishima"]; if (!ishimaFac.isBanned && !ishimaFac.isMember && !ishimaFac.alreadyInvited && - this.money.gte(30000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Ishima) { + this.money.gte(30000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Ishima) { invitedFactions.push(ishimaFac); } //Volhaven - var volhavenFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Volhaven"]; + var volhavenFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Volhaven"]; if (!volhavenFac.isBanned && !volhavenFac.isMember && !volhavenFac.alreadyInvited && - this.money.gte(50000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Volhaven) { + this.money.gte(50000000) && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Volhaven) { invitedFactions.push(volhavenFac); } //Speakers for the Dead - var speakersforthedeadFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Speakers for the Dead"]; + var speakersforthedeadFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Speakers for the Dead"]; if (!speakersforthedeadFac.isBanned && !speakersforthedeadFac.isMember && !speakersforthedeadFac.alreadyInvited && this.hacking_skill >= 100 && this.strength >= 300 && this.defense >= 300 && this.dexterity >= 300 && this.agility >= 300 && this.numPeopleKilled >= 30 && - this.karma <= -45 && this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12CIA && - this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12NSA) { + this.karma <= -45 && this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12CIA && + this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12NSA) { invitedFactions.push(speakersforthedeadFac); } //The Dark Army - var thedarkarmyFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["The Dark Army"]; + var thedarkarmyFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["The Dark Army"]; if (!thedarkarmyFac.isBanned && !thedarkarmyFac.isMember && !thedarkarmyFac.alreadyInvited && this.hacking_skill >= 300 && this.strength >= 300 && this.defense >= 300 && - this.dexterity >= 300 && this.agility >= 300 && this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Chongqing && - this.numPeopleKilled >= 5 && this.karma <= -45 && this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12CIA && - this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12NSA) { + this.dexterity >= 300 && this.agility >= 300 && this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Chongqing && + this.numPeopleKilled >= 5 && this.karma <= -45 && this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12CIA && + this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12NSA) { invitedFactions.push(thedarkarmyFac); } //The Syndicate - var thesyndicateFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["The Syndicate"]; + var thesyndicateFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["The Syndicate"]; if (!thesyndicateFac.isBanned && !thesyndicateFac.isMember && !thesyndicateFac.alreadyInvited && this.hacking_skill >= 200 && this.strength >= 200 && this.defense >= 200 && this.dexterity >= 200 && this.agility >= 200 && - (this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Aevum || this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12) && + (this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Aevum || this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12) && this.money.gte(10000000) && this.karma <= -90 && - this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12CIA && this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Sector12NSA) { + this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12CIA && this.companyName != _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Sector12NSA) { invitedFactions.push(thesyndicateFac); } //Silhouette - var silhouetteFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Silhouette"]; + var silhouetteFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Silhouette"]; const companyPosition = _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_7__["CompanyPositions"][this.companyPosition]; if (!silhouetteFac.isBanned && !silhouetteFac.isMember && !silhouetteFac.alreadyInvited && companyPosition != null && @@ -2444,16 +2434,16 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //Tetrads - var tetradsFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Tetrads"]; + var tetradsFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Tetrads"]; if (!tetradsFac.isBanned && !tetradsFac.isMember && !tetradsFac.alreadyInvited && - (this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Chongqing || this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].NewTokyo || - this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Ishima) && this.strength >= 75 && this.defense >= 75 && + (this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Chongqing || this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].NewTokyo || + this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Ishima) && this.strength >= 75 && this.defense >= 75 && this.dexterity >= 75 && this.agility >= 75 && this.karma <= -18) { invitedFactions.push(tetradsFac); } //SlumSnakes - var slumsnakesFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Slum Snakes"]; + var slumsnakesFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Slum Snakes"]; if (!slumsnakesFac.isBanned && !slumsnakesFac.isMember && !slumsnakesFac.alreadyInvited && this.strength >= 30 && this.defense >= 30 && this.dexterity >= 30 && this.agility >= 30 && this.karma <= -9 && this.money.gte(1000000)) { @@ -2461,7 +2451,7 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //Netburners - var netburnersFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Netburners"]; + var netburnersFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Netburners"]; var totalHacknetRam = 0; var totalHacknetCores = 0; var totalHacknetLevels = 0; @@ -2477,17 +2467,17 @@ PlayerObject.prototype.checkForFactionInvitations = function() { } //Tian Di Hui - var tiandihuiFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["Tian Di Hui"]; + var tiandihuiFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["Tian Di Hui"]; if (!tiandihuiFac.isBanned && !tiandihuiFac.isMember && !tiandihuiFac.alreadyInvited && this.money.gte(1000000) && this.hacking_skill >= 50 && - (this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Chongqing || this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].NewTokyo || - this.city == _Locations__WEBPACK_IMPORTED_MODULE_15__["Locations"].Ishima)) { + (this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Chongqing || this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].NewTokyo || + this.city == _Locations__WEBPACK_IMPORTED_MODULE_16__["Locations"].Ishima)) { invitedFactions.push(tiandihuiFac); } //CyberSec - var cybersecFac = _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"]["CyberSec"]; - var cybersecServer = _Server__WEBPACK_IMPORTED_MODULE_17__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_19__[/* SpecialServerNames */ "b"].CyberSecServer]]; + var cybersecFac = _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"]["CyberSec"]; + var cybersecServer = _Server__WEBPACK_IMPORTED_MODULE_18__[/* AllServers */ "b"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerIps */ "a"][_SpecialServerIps__WEBPACK_IMPORTED_MODULE_20__[/* SpecialServerNames */ "b"].CyberSecServer]]; if (cybersecServer == null) { console.log("ERROR: Could not find CyberSec Server"); } else if (!cybersecFac.isBanned && !cybersecFac.isMember && cybersecServer.manuallyHacked && @@ -2503,11 +2493,11 @@ PlayerObject.prototype.checkForFactionInvitations = function() { //Returns true if Player is in a gang and false otherwise PlayerObject.prototype.inGang = function() { if (this.gang == null || this.gang == undefined) {return false;} - return (this.gang instanceof _Gang__WEBPACK_IMPORTED_MODULE_14__[/* Gang */ "b"]); + return (this.gang instanceof _Gang__WEBPACK_IMPORTED_MODULE_15__[/* Gang */ "b"]); } PlayerObject.prototype.startGang = function(factionName, hacking) { - this.gang = new _Gang__WEBPACK_IMPORTED_MODULE_14__[/* Gang */ "b"](factionName, hacking); + this.gang = new _Gang__WEBPACK_IMPORTED_MODULE_15__[/* Gang */ "b"](factionName, hacking); } /************* BitNodes **************/ @@ -2543,16 +2533,16 @@ PlayerObject.prototype.gainCodingContractReward = function(reward, difficulty=1) /* eslint-disable no-case-declarations */ switch (reward.type) { case _CodingContracts__WEBPACK_IMPORTED_MODULE_2__["CodingContractRewardType"].FactionReputation: - if (reward.name == null || !(_Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"][reward.name] instanceof _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Faction */ "a"])) { + if (reward.name == null || !(_Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"][reward.name] instanceof _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Faction */ "a"])) { // If no/invalid faction was designated, just give rewards to all factions reward.type = _CodingContracts__WEBPACK_IMPORTED_MODULE_2__["CodingContractRewardType"].FactionReputationAll; return this.gainCodingContractReward(reward); } - var repGain = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CodingContractBaseFactionRepGain * difficulty; - _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"][reward.name].playerReputation += repGain; + var repGain = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CodingContractBaseFactionRepGain * difficulty; + _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"][reward.name].playerReputation += repGain; return `Gained ${repGain} faction reputation for ${reward.name}`; case _CodingContracts__WEBPACK_IMPORTED_MODULE_2__["CodingContractRewardType"].FactionReputationAll: - const totalGain = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CodingContractBaseFactionRepGain * difficulty; + const totalGain = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CodingContractBaseFactionRepGain * difficulty; // Ignore Bladeburners and other special factions for this calculation const specialFactions = ["Bladeburners"]; @@ -2569,8 +2559,8 @@ PlayerObject.prototype.gainCodingContractReward = function(reward, difficulty=1) const gainPerFaction = Math.floor(totalGain / factions.length); for (const facName of factions) { - if (!(_Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"][facName] instanceof _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Faction */ "a"])) { continue; } - _Faction__WEBPACK_IMPORTED_MODULE_13__[/* Factions */ "b"][facName].playerReputation += gainPerFaction; + if (!(_Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"][facName] instanceof _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Faction */ "a"])) { continue; } + _Faction__WEBPACK_IMPORTED_MODULE_14__[/* Factions */ "b"][facName].playerReputation += gainPerFaction; } return `Gained ${gainPerFaction} reputation for each of the following factions: ${factions.toString()}`; break; @@ -2580,15 +2570,15 @@ PlayerObject.prototype.gainCodingContractReward = function(reward, difficulty=1) reward.type = _CodingContracts__WEBPACK_IMPORTED_MODULE_2__["CodingContractRewardType"].FactionReputationAll; return this.gainCodingContractReward(reward); } - var repGain = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CodingContractBaseCompanyRepGain * difficulty; + var repGain = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CodingContractBaseCompanyRepGain * difficulty; _Company_Companies__WEBPACK_IMPORTED_MODULE_4__["Companies"][reward.name].playerReputation += repGain; return `Gained ${repGain} company reputation for ${reward.name}`; break; case _CodingContracts__WEBPACK_IMPORTED_MODULE_2__["CodingContractRewardType"].Money: default: - var moneyGain = _Constants__WEBPACK_IMPORTED_MODULE_8__["CONSTANTS"].CodingContractBaseMoneyGain * difficulty; + var moneyGain = _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].CodingContractBaseMoneyGain * difficulty; this.gainMoney(moneyGain); - return `Gained ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__[/* numeralWrapper */ "a"].format(moneyGain, '$0.000a')}`; + return `Gained ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__[/* numeralWrapper */ "a"].format(moneyGain, '$0.000a')}`; break; } /* eslint-enable no-case-declarations */ @@ -2596,37 +2586,37 @@ PlayerObject.prototype.gainCodingContractReward = function(reward, difficulty=1) /* Functions for saving and loading the Player data */ function loadPlayer(saveString) { - Player = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_26__["Reviver"]); + Player = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_27__["Reviver"]); //Parse Decimal.js objects - Player.money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](Player.money); - Player.total_money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](Player.total_money); - Player.lifetime_money = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](Player.lifetime_money); + Player.money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](Player.money); + Player.total_money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](Player.total_money); + Player.lifetime_money = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](Player.lifetime_money); - if (Player.corporation instanceof _CompanyManagement__WEBPACK_IMPORTED_MODULE_9__[/* Corporation */ "a"]) { - Player.corporation.funds = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](Player.corporation.funds); - Player.corporation.revenue = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](Player.corporation.revenue); - Player.corporation.expenses = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](Player.corporation.expenses); + if (Player.corporation instanceof _CompanyManagement__WEBPACK_IMPORTED_MODULE_10__[/* Corporation */ "a"]) { + Player.corporation.funds = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](Player.corporation.funds); + Player.corporation.revenue = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](Player.corporation.revenue); + Player.corporation.expenses = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](Player.corporation.expenses); for (var i = 0; i < Player.corporation.divisions.length; ++i) { var ind = Player.corporation.divisions[i]; - ind.lastCycleRevenue = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](ind.lastCycleRevenue); - ind.lastCycleExpenses = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](ind.lastCycleExpenses); - ind.thisCycleRevenue = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](ind.thisCycleRevenue); - ind.thisCycleExpenses = new decimal_js__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"](ind.thisCycleExpenses); + ind.lastCycleRevenue = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](ind.lastCycleRevenue); + ind.lastCycleExpenses = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](ind.lastCycleExpenses); + ind.thisCycleRevenue = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](ind.thisCycleRevenue); + ind.thisCycleExpenses = new decimal_js__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"](ind.thisCycleExpenses); } } } PlayerObject.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_26__["Generic_toJSON"])("PlayerObject", this); + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_27__["Generic_toJSON"])("PlayerObject", this); } PlayerObject.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_26__["Generic_fromJSON"])(PlayerObject, value.data); + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_27__["Generic_fromJSON"])(PlayerObject, value.data); } -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_26__["Reviver"].constructors.PlayerObject = PlayerObject; +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_27__["Reviver"].constructors.PlayerObject = PlayerObject; let Player = new PlayerObject(); @@ -2645,7 +2635,7 @@ let Player = new PlayerObject(); Object.defineProperty(exports, "__esModule", { value: true }); exports.CONSTANTS = { - Version: "0.41.0", + Version: "0.41.2", //Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then //the player will have this level assuming no multipliers. Multipliers can cause skills to go above this. @@ -3103,16 +3093,13 @@ exports.CONSTANTS = { "RAM and CPU Core Upgrades on your home computer
" + "World Stock Exchange account and TIX API Access
", LatestUpdate: ` - v0.41.1 - * Stock Market changes: - *** Stocks now have "maximum prices" - *** If a stock reaches its "maximum price", it will most likely drop in value (although it might still rise) - *** Each stock has its own, unique maximum price - *** Maximum price for each stock are randomly generated and change during each 'reset' - *** Stock Market cycles are now accumulated/stored, much like it is for Gangs and Bladeburners - *** Accumulated/stored cycles cause stock prices to update up to 50% faster (from every 6 seconds to 4 seconds) - ****** This means that after coming back from being offline, stock prices will update faster to make up for offline time + v0.41.2 + * IMPORTANT - Netscript Changes: + ** rm() now takes an optional parameter that lets you specify on which server to delete the file + * Gang Changes: + ** UI now displays your chance to win a clash with other gangs + ** Added getChanceToWinClash() function to the Gang API ` }; @@ -3302,7 +3289,7 @@ exports.createElement = createElement; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const isString_1 = __webpack_require__(/*! ./helpers/isString */ 35); +const isString_1 = __webpack_require__(/*! ./helpers/isString */ 36); // Netburner String helper functions // Replaces the character at an index with a new character function replaceAt(base, index, character) { @@ -3405,6 +3392,88 @@ exports.generateRandomString = generateRandomString; /***/ }), /* 4 */ +/*!*********************************!*\ + !*** ./src/ui/numeralFormat.js ***! + \*********************************/ +/*! exports provided: numeralWrapper */ +/*! exports used: numeralWrapper */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return numeralWrapper; }); +/* harmony import */ var numeral__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! numeral */ 68); +/* harmony import */ var numeral__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(numeral__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var numeral_locales_bg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! numeral/locales/bg */ 257); +/* harmony import */ var numeral_locales_bg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_bg__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var numeral_locales_cs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! numeral/locales/cs */ 256); +/* harmony import */ var numeral_locales_cs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_cs__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var numeral_locales_da_dk__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! numeral/locales/da-dk */ 255); +/* harmony import */ var numeral_locales_da_dk__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_da_dk__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var numeral_locales_de__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! numeral/locales/de */ 254); +/* harmony import */ var numeral_locales_de__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_de__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var numeral_locales_en_au__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! numeral/locales/en-au */ 253); +/* harmony import */ var numeral_locales_en_au__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_en_au__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var numeral_locales_en_gb__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! numeral/locales/en-gb */ 252); +/* harmony import */ var numeral_locales_en_gb__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_en_gb__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var numeral_locales_es__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! numeral/locales/es */ 251); +/* harmony import */ var numeral_locales_es__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_es__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var numeral_locales_fr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! numeral/locales/fr */ 250); +/* harmony import */ var numeral_locales_fr__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_fr__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var numeral_locales_hu__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! numeral/locales/hu */ 249); +/* harmony import */ var numeral_locales_hu__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_hu__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var numeral_locales_it__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! numeral/locales/it */ 248); +/* harmony import */ var numeral_locales_it__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_it__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var numeral_locales_lv__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! numeral/locales/lv */ 247); +/* harmony import */ var numeral_locales_lv__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_lv__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var numeral_locales_no__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! numeral/locales/no */ 246); +/* harmony import */ var numeral_locales_no__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_no__WEBPACK_IMPORTED_MODULE_12__); +/* harmony import */ var numeral_locales_pl__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! numeral/locales/pl */ 245); +/* harmony import */ var numeral_locales_pl__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_pl__WEBPACK_IMPORTED_MODULE_13__); +/* harmony import */ var numeral_locales_ru__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! numeral/locales/ru */ 244); +/* harmony import */ var numeral_locales_ru__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_ru__WEBPACK_IMPORTED_MODULE_14__); + + + + + + + + + + + + + + + + +/* eslint-disable class-methods-use-this */ + +class NumeralFormatter { + constructor() { + this.defaultLocale = 'en'; + } + + updateLocale(l) { + if (numeral__WEBPACK_IMPORTED_MODULE_0___default.a.locale(l) == null) { + console.warn(`Invalid locale for numeral: ${l}`); + + numeral__WEBPACK_IMPORTED_MODULE_0___default.a.locale(this.defaultLocale); + return false; + } + return true; + } + + format(n, format) { + return numeral__WEBPACK_IMPORTED_MODULE_0___default()(n).format(format); + } +} + +const numeralWrapper = new NumeralFormatter(); + + +/***/ }), +/* 5 */ /*!**************************!*\ !*** ./src/Locations.ts ***! \**************************/ @@ -3498,88 +3567,6 @@ exports.Locations = { }; -/***/ }), -/* 5 */ -/*!*********************************!*\ - !*** ./src/ui/numeralFormat.js ***! - \*********************************/ -/*! exports provided: numeralWrapper */ -/*! exports used: numeralWrapper */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return numeralWrapper; }); -/* harmony import */ var numeral__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! numeral */ 68); -/* harmony import */ var numeral__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(numeral__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var numeral_locales_bg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! numeral/locales/bg */ 255); -/* harmony import */ var numeral_locales_bg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_bg__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var numeral_locales_cs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! numeral/locales/cs */ 254); -/* harmony import */ var numeral_locales_cs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_cs__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var numeral_locales_da_dk__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! numeral/locales/da-dk */ 253); -/* harmony import */ var numeral_locales_da_dk__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_da_dk__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var numeral_locales_de__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! numeral/locales/de */ 252); -/* harmony import */ var numeral_locales_de__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_de__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var numeral_locales_en_au__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! numeral/locales/en-au */ 251); -/* harmony import */ var numeral_locales_en_au__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_en_au__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var numeral_locales_en_gb__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! numeral/locales/en-gb */ 250); -/* harmony import */ var numeral_locales_en_gb__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_en_gb__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var numeral_locales_es__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! numeral/locales/es */ 249); -/* harmony import */ var numeral_locales_es__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_es__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var numeral_locales_fr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! numeral/locales/fr */ 248); -/* harmony import */ var numeral_locales_fr__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_fr__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var numeral_locales_hu__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! numeral/locales/hu */ 247); -/* harmony import */ var numeral_locales_hu__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_hu__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var numeral_locales_it__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! numeral/locales/it */ 246); -/* harmony import */ var numeral_locales_it__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_it__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var numeral_locales_lv__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! numeral/locales/lv */ 245); -/* harmony import */ var numeral_locales_lv__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_lv__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var numeral_locales_no__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! numeral/locales/no */ 244); -/* harmony import */ var numeral_locales_no__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_no__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var numeral_locales_pl__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! numeral/locales/pl */ 243); -/* harmony import */ var numeral_locales_pl__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_pl__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var numeral_locales_ru__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! numeral/locales/ru */ 242); -/* harmony import */ var numeral_locales_ru__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(numeral_locales_ru__WEBPACK_IMPORTED_MODULE_14__); - - - - - - - - - - - - - - - - -/* eslint-disable class-methods-use-this */ - -class NumeralFormatter { - constructor() { - this.defaultLocale = 'en'; - } - - updateLocale(l) { - if (numeral__WEBPACK_IMPORTED_MODULE_0___default.a.locale(l) == null) { - console.warn(`Invalid locale for numeral: ${l}`); - - numeral__WEBPACK_IMPORTED_MODULE_0___default.a.locale(this.defaultLocale); - return false; - } - return true; - } - - format(n, format) { - return numeral__WEBPACK_IMPORTED_MODULE_0___default()(n).format(format); - } -} - -const numeralWrapper = new NumeralFormatter(); - - /***/ }), /* 6 */ /*!***********************************!*\ @@ -3607,14 +3594,14 @@ const numeralWrapper = new NumeralFormatter(); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Script */ 29); -/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/acorn */ 44); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Script */ 28); +/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/acorn */ 45); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 50); +/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 51); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/helpers/isValidIPAddress */ 81); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_11__); @@ -3630,7 +3617,7 @@ const numeralWrapper = new NumeralFormatter(); -var Promise = __webpack_require__(/*! bluebird */ 226); +var Promise = __webpack_require__(/*! bluebird */ 228); Promise.config({ warnings: false, @@ -4543,7 +4530,7 @@ function isScriptErrorMessage(msg) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const getElementById_1 = __webpack_require__(/*! ../../utils/uiHelpers/getElementById */ 48); +const getElementById_1 = __webpack_require__(/*! ../../utils/uiHelpers/getElementById */ 50); /** * Adds some output to the terminal. * @param input Text or HTML to output to the terminal @@ -4596,7 +4583,7 @@ function scrollTerminalToBottom() { __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__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/GameOptions */ 79); +/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/GameOptions */ 78); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); @@ -4605,86 +4592,88 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); /* harmony import */ var _utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/uiHelpers/removeLoadingScreen */ 107); /* harmony import */ var _utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeLoadingScreen__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/LogBox */ 74); +/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/LogBox */ 73); /* harmony import */ var _ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ActiveScriptsUI */ 62); /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Augmentations */ 21); /* harmony import */ var _BitNode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./BitNode */ 54); -/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Bladeburner */ 30); +/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Bladeburner */ 29); /* harmony import */ var _CharacterOverview__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./CharacterOverview */ 116); /* harmony import */ var _CinematicText__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./CinematicText */ 91); /* harmony import */ var _CodingContractGenerator__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./CodingContractGenerator */ 90); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Company/CompanyPositions */ 25); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Company/Companies */ 17); +/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Company/Companies */ 18); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var _CompanyManagement__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./CompanyManagement */ 58); +/* harmony import */ var _CompanyManagement__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./CompanyManagement */ 56); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./CreateProgram */ 22); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./CreateProgram */ 23); /* harmony import */ var _DevMenu__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./DevMenu */ 104); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Fconf */ 42); +/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Fconf */ 43); /* harmony import */ var _Location__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Location */ 84); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Locations */ 4); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_27__); /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./HacknetNode */ 61); /* harmony import */ var _InteractiveTutorial__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./InteractiveTutorial */ 33); -/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Literature */ 76); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Message */ 36); -/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./Missions */ 49); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Literature */ 75); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Message */ 37); +/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./Missions */ 52); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Prestige__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Prestige */ 82); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./RedPill */ 53); /* harmony import */ var _SaveObject__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./SaveObject */ 70); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./Script */ 29); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./Script */ 28); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_41__); /* harmony import */ var _ui_setSettingsLabels__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./ui/setSettingsLabels */ 115); /* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./SourceFile */ 64); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./StockMarket */ 23); -/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Terminal */ 46); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./StockMarket */ 22); +/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Terminal */ 48); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 32); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_47___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_47__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_48___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_48__); -/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! normalize.css */ 190); +/* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! normalize.css */ 192); /* harmony import */ var normalize_css__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(normalize_css__WEBPACK_IMPORTED_MODULE_49__); -/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../css/styles.scss */ 165); +/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../css/styles.scss */ 167); /* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_50___default = /*#__PURE__*/__webpack_require__.n(_css_styles_scss__WEBPACK_IMPORTED_MODULE_50__); -/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../css/buttons.scss */ 163); +/* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../css/buttons.scss */ 165); /* harmony import */ var _css_buttons_scss__WEBPACK_IMPORTED_MODULE_51___default = /*#__PURE__*/__webpack_require__.n(_css_buttons_scss__WEBPACK_IMPORTED_MODULE_51__); -/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../css/mainmenu.scss */ 161); +/* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../css/mainmenu.scss */ 163); /* harmony import */ var _css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_52___default = /*#__PURE__*/__webpack_require__.n(_css_mainmenu_scss__WEBPACK_IMPORTED_MODULE_52__); -/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../css/terminal.scss */ 159); -/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_53___default = /*#__PURE__*/__webpack_require__.n(_css_terminal_scss__WEBPACK_IMPORTED_MODULE_53__); -/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../css/menupages.scss */ 157); -/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_54___default = /*#__PURE__*/__webpack_require__.n(_css_menupages_scss__WEBPACK_IMPORTED_MODULE_54__); -/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../css/workinprogress.scss */ 155); -/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_55___default = /*#__PURE__*/__webpack_require__.n(_css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_55__); -/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../css/popupboxes.scss */ 153); -/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_56___default = /*#__PURE__*/__webpack_require__.n(_css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_56__); -/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../css/interactivetutorial.scss */ 151); -/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_57___default = /*#__PURE__*/__webpack_require__.n(_css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_57__); -/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../css/loader.scss */ 149); -/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_58___default = /*#__PURE__*/__webpack_require__.n(_css_loader_scss__WEBPACK_IMPORTED_MODULE_58__); -/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../css/missions.scss */ 147); -/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_59___default = /*#__PURE__*/__webpack_require__.n(_css_missions_scss__WEBPACK_IMPORTED_MODULE_59__); -/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../css/companymanagement.scss */ 145); -/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_60___default = /*#__PURE__*/__webpack_require__.n(_css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_60__); -/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../css/bladeburner.scss */ 143); -/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_61___default = /*#__PURE__*/__webpack_require__.n(_css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_61__); -/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../css/gang.scss */ 141); -/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_62___default = /*#__PURE__*/__webpack_require__.n(_css_gang_scss__WEBPACK_IMPORTED_MODULE_62__); +/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../css/characteroverview.scss */ 161); +/* harmony import */ var _css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_53___default = /*#__PURE__*/__webpack_require__.n(_css_characteroverview_scss__WEBPACK_IMPORTED_MODULE_53__); +/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../css/terminal.scss */ 159); +/* harmony import */ var _css_terminal_scss__WEBPACK_IMPORTED_MODULE_54___default = /*#__PURE__*/__webpack_require__.n(_css_terminal_scss__WEBPACK_IMPORTED_MODULE_54__); +/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../css/menupages.scss */ 157); +/* harmony import */ var _css_menupages_scss__WEBPACK_IMPORTED_MODULE_55___default = /*#__PURE__*/__webpack_require__.n(_css_menupages_scss__WEBPACK_IMPORTED_MODULE_55__); +/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../css/workinprogress.scss */ 155); +/* harmony import */ var _css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_56___default = /*#__PURE__*/__webpack_require__.n(_css_workinprogress_scss__WEBPACK_IMPORTED_MODULE_56__); +/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../css/popupboxes.scss */ 153); +/* harmony import */ var _css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_57___default = /*#__PURE__*/__webpack_require__.n(_css_popupboxes_scss__WEBPACK_IMPORTED_MODULE_57__); +/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../css/interactivetutorial.scss */ 151); +/* harmony import */ var _css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_58___default = /*#__PURE__*/__webpack_require__.n(_css_interactivetutorial_scss__WEBPACK_IMPORTED_MODULE_58__); +/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../css/loader.scss */ 149); +/* harmony import */ var _css_loader_scss__WEBPACK_IMPORTED_MODULE_59___default = /*#__PURE__*/__webpack_require__.n(_css_loader_scss__WEBPACK_IMPORTED_MODULE_59__); +/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../css/missions.scss */ 147); +/* harmony import */ var _css_missions_scss__WEBPACK_IMPORTED_MODULE_60___default = /*#__PURE__*/__webpack_require__.n(_css_missions_scss__WEBPACK_IMPORTED_MODULE_60__); +/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../css/companymanagement.scss */ 145); +/* harmony import */ var _css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_61___default = /*#__PURE__*/__webpack_require__.n(_css_companymanagement_scss__WEBPACK_IMPORTED_MODULE_61__); +/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../css/bladeburner.scss */ 143); +/* harmony import */ var _css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_62___default = /*#__PURE__*/__webpack_require__.n(_css_bladeburner_scss__WEBPACK_IMPORTED_MODULE_62__); +/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../css/gang.scss */ 141); +/* harmony import */ var _css_gang_scss__WEBPACK_IMPORTED_MODULE_63___default = /*#__PURE__*/__webpack_require__.n(_css_gang_scss__WEBPACK_IMPORTED_MODULE_63__); @@ -4754,6 +4743,7 @@ __webpack_require__.r(__webpack_exports__); + /* Shortcuts to navigate through the game * Alt-t - Terminal * Alt-c - Character @@ -4837,6 +4827,7 @@ const Engine = { worldMainMenuButton: null, travelMainMenuButton: null, jobMainMenuButton: null, + stockmarketMainMenuButton: null, createProgramMainMenuButton: null, factionsMainMenuButton: null, augmentationsMainMenuButton: null, @@ -5851,6 +5842,7 @@ const Engine = { var city = document.getElementById("city-tab"); var travel = document.getElementById("travel-tab"); var job = document.getElementById("job-tab"); + var stockmarket = document.getElementById("stock-market-tab"); var bladeburner = document.getElementById("bladeburner-tab"); var corp = document.getElementById("corporation-tab"); var gang = document.getElementById("gang-tab"); @@ -5907,6 +5899,11 @@ const Engine = { //Passive faction rep gain offline Object(_Faction__WEBPACK_IMPORTED_MODULE_24__[/* processPassiveFactionRepGain */ "i"])(numCyclesOffline); + // Stock Market offline progress + if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].hasWseAccount) { + Object(_StockMarket__WEBPACK_IMPORTED_MODULE_45__[/* processStockPrices */ "m"])(numCyclesOffline); + } + //Gang progress for BitNode 2 if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].bitNodeN != null && _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].bitNodeN === 2 && _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].inGang()) { _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].gang.process(numCyclesOffline, _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"]); @@ -5939,12 +5936,14 @@ const Engine = { else {factions.style.display = "none";} if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].firstAugPurchased) {visibleMenuTabs.push(augmentations);} else {augmentations.style.display = "none";} - if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].firstJobRecvd) {visibleMenuTabs.push(job);} + if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].companyPosition !== "") {visibleMenuTabs.push(job);} else {job.style.display = "none";} if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].firstTimeTraveled) {visibleMenuTabs.push(travel);} else {travel.style.display = "none";} if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].firstProgramAvailable) {visibleMenuTabs.push(createProgram);} else {createProgram.style.display = "none";} + if (_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].hasWseAccount) {visibleMenuTabs.push(stockmarket);} + else {stockmarket.style.display = "none";} if(_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].bladeburner instanceof _Bladeburner__WEBPACK_IMPORTED_MODULE_14__[/* Bladeburner */ "a"]) {visibleMenuTabs.push(bladeburner);} else {bladeburner.style.display = "none";} if(_Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].corporation instanceof _CompanyManagement__WEBPACK_IMPORTED_MODULE_20__[/* Corporation */ "a"]) {visibleMenuTabs.push(corp);} @@ -5987,6 +5986,7 @@ const Engine = { factions.style.display = "none"; augmentations.style.display = "none"; job.style.display = "none"; + stockmarket.style.display = "none"; travel.style.display = "none"; createProgram.style.display = "none"; bladeburner.style.display = "none"; @@ -6203,28 +6203,38 @@ const Engine = { } worldHdr.onclick = function() { - var city = document.getElementById("city-tab"); - var cityLink = document.getElementById("city-menu-link"); - var travel = document.getElementById("travel-tab"); - var travelLink = document.getElementById("travel-menu-link"); - var job = document.getElementById("job-tab"); - var jobLink = document.getElementById("job-menu-link"); - var bladeburner = document.getElementById("bladeburner-tab"); - var bladeburnerLink = document.getElementById("bladeburner-menu-link"); - var corporation = document.getElementById("corporation-tab"); - var corporationLink = document.getElementById("corporation-menu-link"); - var gang = document.getElementById("gang-tab"); - var gangLink = document.getElementById("gang-menu-link"); + var city = document.getElementById("city-tab"); + var cityLink = document.getElementById("city-menu-link"); + var travel = document.getElementById("travel-tab"); + var travelLink = document.getElementById("travel-menu-link"); + var job = document.getElementById("job-tab"); + var jobLink = document.getElementById("job-menu-link"); + var stockmarket = document.getElementById("stock-market-tab"); + var stockmarketLink = document.getElementById("stock-market-menu-link"); + var bladeburner = document.getElementById("bladeburner-tab"); + var bladeburnerLink = document.getElementById("bladeburner-menu-link"); + var corporation = document.getElementById("corporation-tab"); + var corporationLink = document.getElementById("corporation-menu-link"); + var gang = document.getElementById("gang-tab"); + var gangLink = document.getElementById("gang-menu-link"); + + // Determine whether certain links should show up + job.style.display = _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].companyPosition !== "" ? "list-item" : "none"; + stockmarket.style.display = _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].hasWseAccount ? "list-item" : "none"; + bladeburner.style.display = _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].bladeburner instanceof _Bladeburner__WEBPACK_IMPORTED_MODULE_14__[/* Bladeburner */ "a"] ? "list-item" : "none"; + corporation.style.display = _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].corporation instanceof _CompanyManagement__WEBPACK_IMPORTED_MODULE_20__[/* Corporation */ "a"] ? "list-item" : "none"; + gang.style.display = _Player__WEBPACK_IMPORTED_MODULE_35__[/* Player */ "a"].inGang() ? "list-item" : "none"; + this.classList.toggle("opened"); if (city.style.maxHeight) { Engine.toggleMainMenuHeader(false, - [city, travel, job, bladeburner, corporation, gang], - [cityLink, travelLink, jobLink, bladeburnerLink, corporationLink, gangLink] + [city, travel, job, stockmarket, bladeburner, corporation, gang], + [cityLink, travelLink, jobLink, stockmarketLink, bladeburnerLink, corporationLink, gangLink] ); } else { Engine.toggleMainMenuHeader(true, - [city, travel, job, bladeburner, corporation, gang], - [cityLink, travelLink, jobLink, bladeburnerLink, corporationLink, gangLink] + [city, travel, job, stockmarket, bladeburner, corporation, gang], + [cityLink, travelLink, jobLink, stockmarketLink, bladeburnerLink, corporationLink, gangLink] ); } } @@ -6297,6 +6307,12 @@ const Engine = { return false; }); + Engine.Clickables.stockmarketMainMenuButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_4__["clearEventListeners"])("stock-market-menu-link"); + Engine.Clickables.stockmarketMainMenuButton.addEventListener("click", function() { + Engine.loadStockMarketContent(); + return false; + }); + Engine.Clickables.createProgramMainMenuButton = Object(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_4__["clearEventListeners"])("create-program-menu-link"); Engine.Clickables.createProgramMainMenuButton.addEventListener("click", function() { @@ -6645,15 +6661,15 @@ exports.BitNodeMultipliers = { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return prestigeHomeComputer; }); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BitNodeMultipliers */ 10); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContracts */ 38); +/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContracts */ 40); /* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_CodingContracts__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Script */ 29); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CreateProgram */ 22); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Script */ 28); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CreateProgram */ 23); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./TextFile */ 57); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./TextFile */ 58); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__); @@ -7008,12 +7024,15 @@ function processSingleServerGrowth(server, numCycles) { } function prestigeHomeComputer(homeComp) { + const hasBitflume = homeComp.programs.includes(_CreateProgram__WEBPACK_IMPORTED_MODULE_4__[/* Programs */ "a"].BitFlume.name); + homeComp.programs.length = 0; //Remove programs homeComp.runningScripts = []; homeComp.serversOnNetwork = []; homeComp.isConnectedTo = true; homeComp.ramUsed = 0; homeComp.programs.push(_CreateProgram__WEBPACK_IMPORTED_MODULE_4__[/* Programs */ "a"].NukeProgram.name); + if (hasBitflume) { homeComp.programs.push(_CreateProgram__WEBPACK_IMPORTED_MODULE_4__[/* Programs */ "a"].BitFlume.name); } //Update RAM usage on all scripts homeComp.scripts.forEach(function(script) { @@ -7153,7 +7172,7 @@ Directory.prototype.getPath = function(name) { /* harmony import */ var _FactionInfo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FactionInfo */ 106); /* harmony import */ var _FactionInfo__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_FactionInfo__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _Location__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Location */ 84); -/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Missions */ 49); +/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Missions */ 52); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _SettingEnums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SettingEnums */ 67); /* harmony import */ var _SettingEnums__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_SettingEnums__WEBPACK_IMPORTED_MODULE_8__); @@ -7161,7 +7180,7 @@ Directory.prototype.getPath = function(name) { /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_FactionInvitationBox__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/FactionInvitationBox */ 118); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); @@ -7171,7 +7190,7 @@ Directory.prototype.getPath = function(name) { /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -7565,7 +7584,6 @@ function displayFactionContent(factionName) { var hacking = false; if (factionName === "NiteSec" || factionName === "The Black Hand") {hacking = true;} _Player__WEBPACK_IMPORTED_MODULE_7__[/* Player */ "a"].startGang(factionName, hacking); - document.getElementById("gang-tab").style.display = "list-item"; document.getElementById("world-menu-header").click(); document.getElementById("world-menu-header").click(); _engine__WEBPACK_IMPORTED_MODULE_3__["Engine"].loadGangContent(); @@ -8201,7 +8219,7 @@ exports.getRandomInt = getRandomInt; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const getElementById_1 = __webpack_require__(/*! ./getElementById */ 48); +const getElementById_1 = __webpack_require__(/*! ./getElementById */ 50); /** * Given an element by its ID, removes all event listeners from that element by cloning and * replacing. Then returns the new cloned element. @@ -8227,49 +8245,6 @@ exports.clearEventListeners = clearEventListeners; /***/ }), /* 17 */ -/*!**********************************!*\ - !*** ./src/Company/Companies.ts ***! - \**********************************/ -/*! no static exports found */ -/*! exports used: Companies, companyExists, initCompanies, loadCompanies */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts -const CompaniesMetadata_1 = __webpack_require__(/*! ./data/CompaniesMetadata */ 182); -const Company_1 = __webpack_require__(/*! ./Company */ 69); -const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 14); -exports.Companies = {}; -function addCompany(params) { - if (exports.Companies[params.name] != null) { - console.warn(`Duplicate Company Position being defined: ${params.name}`); - } - exports.Companies[params.name] = new Company_1.Company(params); -} -// Used to initialize new Company objects for the Companies map -// Called when creating new game or after a prestige/reset -function initCompanies() { - CompaniesMetadata_1.companiesMetadata.forEach((e) => { - addCompany(e); - }); -} -exports.initCompanies = initCompanies; -// Used to load Companies map from a save -function loadCompanies(saveString) { - exports.Companies = JSON.parse(saveString, JSONReviver_1.Reviver); -} -exports.loadCompanies = loadCompanies; -// Utility function to check if a string is valid company name -function companyExists(name) { - return exports.Companies.hasOwnProperty(name); -} -exports.companyExists = companyExists; - - -/***/ }), -/* 18 */ /*!***************************!*\ !*** ./utils/YesNoBox.js ***! \***************************/ @@ -8378,6 +8353,49 @@ function yesNoTxtInpBoxCreate(txt) { +/***/ }), +/* 18 */ +/*!**********************************!*\ + !*** ./src/Company/Companies.ts ***! + \**********************************/ +/*! no static exports found */ +/*! exports used: Companies, companyExists, initCompanies, loadCompanies */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts +const CompaniesMetadata_1 = __webpack_require__(/*! ./data/CompaniesMetadata */ 184); +const Company_1 = __webpack_require__(/*! ./Company */ 69); +const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 14); +exports.Companies = {}; +function addCompany(params) { + if (exports.Companies[params.name] != null) { + console.warn(`Duplicate Company Position being defined: ${params.name}`); + } + exports.Companies[params.name] = new Company_1.Company(params); +} +// Used to initialize new Company objects for the Companies map +// Called when creating new game or after a prestige/reset +function initCompanies() { + CompaniesMetadata_1.companiesMetadata.forEach((e) => { + addCompany(e); + }); +} +exports.initCompanies = initCompanies; +// Used to load Companies map from a save +function loadCompanies(saveString) { + exports.Companies = JSON.parse(saveString, JSONReviver_1.Reviver); +} +exports.loadCompanies = loadCompanies; +// Utility function to check if a string is valid company name +function companyExists(name) { + return exports.Companies.hasOwnProperty(name); +} +exports.companyExists = companyExists; + + /***/ }), /* 19 */ /*!*************************!*\ @@ -8445,7 +8463,7 @@ exports.Settings = { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const getElementById_1 = __webpack_require__(/*! ./getElementById */ 48); +const getElementById_1 = __webpack_require__(/*! ./getElementById */ 50); const removeElement_1 = __webpack_require__(/*! ./removeElement */ 65); /** * Given its id, this function removes an element AND its children @@ -8488,12 +8506,12 @@ exports.removeElementById = removeElementById; /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./engine */ 8); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Prestige__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Prestige */ 82); /* harmony import */ var _SaveObject__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SaveObject */ 70); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Script */ 29); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Script */ 28); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _SettingEnums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./SettingEnums */ 67); /* harmony import */ var _SettingEnums__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_SettingEnums__WEBPACK_IMPORTED_MODULE_11__); @@ -8501,14 +8519,14 @@ exports.removeElementById = removeElementById; /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./SourceFile */ 64); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/createAccordionElement */ 72); +/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/createAccordionElement */ 71); /* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); -/* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/helpers/clearObject */ 73); +/* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/helpers/clearObject */ 72); /* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_17__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_19__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_20__); @@ -11175,185 +11193,6 @@ function displaySourceFiles(listElement, sourceFiles) { /***/ }), /* 22 */ -/*!******************************!*\ - !*** ./src/CreateProgram.js ***! - \******************************/ -/*! exports provided: Programs, displayCreateProgramContent, getNumAvailableCreateProgram, initCreateProgramButtons */ -/*! exports used: Programs, displayCreateProgramContent, getNumAvailableCreateProgram, initCreateProgramButtons */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Programs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return displayCreateProgramContent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getNumAvailableCreateProgram; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initCreateProgramButtons; }); -/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants */ 1); -/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__); - - - - -// a function that returns a requirement for a program that requires only that -// the player has at least the given skill level. -function requireLevel(lvl) { - return function() { - return _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hacking_skill >= lvl; - } -} - -function Program(name, create) { - this.name = name; - this.create = create; -} - -Program.prototype.htmlID = function() { - const name = this.name.endsWith('.exe') ? this.name.slice(0, -('.exe'.length)) : this.name; - return "create-program-"+name; -} - -/* Create programs */ -const Programs = { - NukeProgram: new Program("NUKE.exe", { - level: 1, - tooltip:"This virus is used to gain root access to a machine if enough ports are opened.", - req: requireLevel(1), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerFiveMinutes, - }), - BruteSSHProgram: new Program("BruteSSH.exe", { - level: 50, - tooltip:"This program executes a brute force attack that opens SSH ports", - req: requireLevel(50), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerFiveMinutes * 2, - }), - FTPCrackProgram: new Program("FTPCrack.exe", { - level: 100, - tooltip:"This program cracks open FTP ports", - req: requireLevel(100), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerHalfHour, - }), - RelaySMTPProgram: new Program("relaySMTP.exe", { - level: 250, - tooltip:"This program opens SMTP ports by redirecting data", - req: requireLevel(250), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer2Hours, - }), - HTTPWormProgram: new Program("HTTPWorm.exe", { - level: 500, - tooltip:"This virus opens up HTTP ports", - req: requireLevel(500), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer4Hours, - }), - SQLInjectProgram: new Program("SQLInject.exe", { - level: 750, - tooltip:"This virus opens SQL ports", - req: requireLevel(750), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer8Hours, - }), - DeepscanV1: new Program("DeepscanV1.exe", { - level: 75, - tooltip:"This program allows you to use the scan-analyze command with a depth up to 5", - req: requireLevel(75), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerQuarterHour, - }), - DeepscanV2: new Program("DeepscanV2.exe", { - level: 400, - tooltip:"This program allows you to use the scan-analyze command with a depth up to 10", - req: requireLevel(400), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer2Hours, - }), - ServerProfiler: new Program("ServerProfiler.exe", { - level: 75, - tooltip:"This program is used to display hacking and Netscript-related information about servers", - req: requireLevel(75), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerHalfHour, - }), - AutoLink: new Program("AutoLink.exe", { - level: 25, - tooltip:"This program allows you to directly connect to other servers through the 'scan-analyze' command", - req: requireLevel(25), - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerQuarterHour, - }), - BitFlume: new Program("b1t_flum3.exe", { - level: 1, - tooltip:"This program creates a portal to the BitNode Nexus (allows you to restart and switch BitNodes)", - req: function() {return _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].sourceFiles.length > 0 && _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hacking_skill >= 1}, - time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerFiveMinutes / 20, - }), - // special because you can't create it. - Flight: new Program("fl1ght.exe"), -}; - -// this has the same key as 'Programs', not program names -const aLinks = {}; - -function displayCreateProgramContent() { - for(const key in aLinks) { - const p = Programs[key] - aLinks[key].style.display = "none"; - if(!_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hasProgram(p.name) && p.create.req()){ - aLinks[key].style.display = "inline-block"; - } - } -} - -//Returns the number of programs that are currently available to be created -function getNumAvailableCreateProgram() { - var count = 0; - for(const key in Programs) { - if(Programs[key].create === undefined) { // a program we can't create - continue - } - if(_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hasProgram(Programs[key].name)) { // can't create it twice - continue - } - - if(!Programs[key].create.req()) { // if you don't fullfill the creation requirement - continue - } - - count++; - } - - if (_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].firstProgramAvailable === false && count > 0) { - _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].firstProgramAvailable = true; - document.getElementById("create-program-tab").style.display = "list-item"; - document.getElementById("hacking-menu-header").click(); - document.getElementById("hacking-menu-header").click(); - } - return count; -} - -function initCreateProgramButtons() { - var createProgramList = document.getElementById("create-program-list"); - for(const key in Programs) { - if(Programs[key].create === undefined) { - continue - } - const elem = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__["createElement"])("a", { - class: "a-link-button", id: Programs[key].htmlID(), innerText: Programs[key].name, - tooltip: Programs[key].create.tooltip, - }); - aLinks[key] = elem; - createProgramList.appendChild(elem); - } - - for(const key in aLinks) { - const p = Programs[key] - aLinks[key].addEventListener("click", function() { - _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].startCreateProgramWork(p.name, p.create.time, p.create.level); - return false; - }); - } -} - - - - -/***/ }), -/* 23 */ /*!****************************!*\ !*** ./src/StockMarket.js ***! \****************************/ @@ -11386,9 +11225,9 @@ function initCreateProgramButtons() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return PositionTypes; }); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Locations */ 4); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Stock__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Stock */ 26); @@ -11399,8 +11238,8 @@ function initCreateProgramButtons() { /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 32); @@ -11411,7 +11250,7 @@ function initCreateProgramButtons() { /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -11956,7 +11795,7 @@ function sellShort(stock, shares, workerScript=null) { } function processStockPrices(numCycles=1) { - if (isNaN(StockMarket.storedCycles)) { StockMarket.storedCycles = 0; } + if (StockMarket.storedCycles == null || isNaN(StockMarket.storedCycles)) { StockMarket.storedCycles = 0; } StockMarket.storedCycles += numCycles; // Stock Prices updated every 6 seconds on average. But if there are stored @@ -11981,10 +11820,10 @@ function processStockPrices(numCycles=1) { var chc = 50; if (stock.b) { - chc = (chc + stock.otlkMag)/100; + chc = (chc + stock.otlkMag) / 100; if (isNaN(chc)) {chc = 0.5;} } else { - chc = (chc - stock.otlkMag)/100; + chc = (chc - stock.otlkMag) / 100; if (isNaN(chc)) {chc = 0.5;} } if (stock.price >= stock.cap) { @@ -12152,6 +11991,7 @@ function displayStockMarketContent() { "Buy 4S Market Data Access - " + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__[/* numeralWrapper */ "a"].format(_Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MarketData4SCost, '($0.000a)'), "4S Market Data - Purchased"); marketDataButton.addEventListener("click", function() { + if (_Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].money.lt(_Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MarketData4SCost)) { return false; } _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].has4SData = true; _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].loseMoney(_Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MarketData4SCost); displayStockMarketContent(); @@ -12191,6 +12031,7 @@ function displayStockMarketContent() { "4S Market Data TIX API - Purchased"); if (_Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].hasTixApiAccess) { marketDataTixButton.addEventListener("click", function() { + if (_Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].money.lt(_Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MarketDataTixApi4SCost)) { return false; } _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].has4SDataTixApi = true; _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].loseMoney(_Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MarketDataTixApi4SCost); displayStockMarketContent(); @@ -12302,6 +12143,7 @@ function displayStockMarketContent() { //Switch to Portfolio Mode Button if (modeBtn) { + stockMarketPortfolioMode = false; modeBtn.innerHTML = "Switch to 'Portfolio' Mode" + "Displays only the stocks for which you have shares or orders"; modeBtn.addEventListener("click", switchToPortfolioMode); @@ -12887,6 +12729,185 @@ function updateStockOrderList(stock) { +/***/ }), +/* 23 */ +/*!******************************!*\ + !*** ./src/CreateProgram.js ***! + \******************************/ +/*! exports provided: Programs, displayCreateProgramContent, getNumAvailableCreateProgram, initCreateProgramButtons */ +/*! exports used: Programs, displayCreateProgramContent, getNumAvailableCreateProgram, initCreateProgramButtons */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Programs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return displayCreateProgramContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getNumAvailableCreateProgram; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initCreateProgramButtons; }); +/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants */ 1); +/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Player */ 0); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__); + + + + +// a function that returns a requirement for a program that requires only that +// the player has at least the given skill level. +function requireLevel(lvl) { + return function() { + return _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hacking_skill >= lvl; + } +} + +function Program(name, create) { + this.name = name; + this.create = create; +} + +Program.prototype.htmlID = function() { + const name = this.name.endsWith('.exe') ? this.name.slice(0, -('.exe'.length)) : this.name; + return "create-program-"+name; +} + +/* Create programs */ +const Programs = { + NukeProgram: new Program("NUKE.exe", { + level: 1, + tooltip:"This virus is used to gain root access to a machine if enough ports are opened.", + req: requireLevel(1), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerFiveMinutes, + }), + BruteSSHProgram: new Program("BruteSSH.exe", { + level: 50, + tooltip:"This program executes a brute force attack that opens SSH ports", + req: requireLevel(50), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerFiveMinutes * 2, + }), + FTPCrackProgram: new Program("FTPCrack.exe", { + level: 100, + tooltip:"This program cracks open FTP ports", + req: requireLevel(100), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerHalfHour, + }), + RelaySMTPProgram: new Program("relaySMTP.exe", { + level: 250, + tooltip:"This program opens SMTP ports by redirecting data", + req: requireLevel(250), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer2Hours, + }), + HTTPWormProgram: new Program("HTTPWorm.exe", { + level: 500, + tooltip:"This virus opens up HTTP ports", + req: requireLevel(500), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer4Hours, + }), + SQLInjectProgram: new Program("SQLInject.exe", { + level: 750, + tooltip:"This virus opens SQL ports", + req: requireLevel(750), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer8Hours, + }), + DeepscanV1: new Program("DeepscanV1.exe", { + level: 75, + tooltip:"This program allows you to use the scan-analyze command with a depth up to 5", + req: requireLevel(75), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerQuarterHour, + }), + DeepscanV2: new Program("DeepscanV2.exe", { + level: 400, + tooltip:"This program allows you to use the scan-analyze command with a depth up to 10", + req: requireLevel(400), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPer2Hours, + }), + ServerProfiler: new Program("ServerProfiler.exe", { + level: 75, + tooltip:"This program is used to display hacking and Netscript-related information about servers", + req: requireLevel(75), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerHalfHour, + }), + AutoLink: new Program("AutoLink.exe", { + level: 25, + tooltip:"This program allows you to directly connect to other servers through the 'scan-analyze' command", + req: requireLevel(25), + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerQuarterHour, + }), + BitFlume: new Program("b1t_flum3.exe", { + level: 1, + tooltip:"This program creates a portal to the BitNode Nexus (allows you to restart and switch BitNodes)", + req: function() {return _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].sourceFiles.length > 0 && _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hacking_skill >= 1}, + time: _Constants__WEBPACK_IMPORTED_MODULE_0__["CONSTANTS"].MillisecondsPerFiveMinutes / 20, + }), + // special because you can't create it. + Flight: new Program("fl1ght.exe"), +}; + +// this has the same key as 'Programs', not program names +const aLinks = {}; + +function displayCreateProgramContent() { + for(const key in aLinks) { + const p = Programs[key] + aLinks[key].style.display = "none"; + if(!_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hasProgram(p.name) && p.create.req()){ + aLinks[key].style.display = "inline-block"; + } + } +} + +//Returns the number of programs that are currently available to be created +function getNumAvailableCreateProgram() { + var count = 0; + for(const key in Programs) { + if(Programs[key].create === undefined) { // a program we can't create + continue + } + if(_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].hasProgram(Programs[key].name)) { // can't create it twice + continue + } + + if(!Programs[key].create.req()) { // if you don't fullfill the creation requirement + continue + } + + count++; + } + + if (_Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].firstProgramAvailable === false && count > 0) { + _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].firstProgramAvailable = true; + document.getElementById("create-program-tab").style.display = "list-item"; + document.getElementById("hacking-menu-header").click(); + document.getElementById("hacking-menu-header").click(); + } + return count; +} + +function initCreateProgramButtons() { + var createProgramList = document.getElementById("create-program-list"); + for(const key in Programs) { + if(Programs[key].create === undefined) { + continue + } + const elem = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__["createElement"])("a", { + class: "a-link-button", id: Programs[key].htmlID(), innerText: Programs[key].name, + tooltip: Programs[key].create.tooltip, + }); + aLinks[key] = elem; + createProgramList.appendChild(elem); + } + + for(const key in aLinks) { + const p = Programs[key] + aLinks[key].addEventListener("click", function() { + _Player__WEBPACK_IMPORTED_MODULE_1__[/* Player */ "a"].startCreateProgramWork(p.name, p.create.time, p.create.level); + return false; + }); + } +} + + + + /***/ }), /* 24 */ /*!********************************!*\ @@ -12912,7 +12933,7 @@ function updateStockOrderList(stock) { /* harmony import */ var _JSInterpreter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSInterpreter */ 117); /* harmony import */ var _NetscriptEnvironment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptEnvironment */ 102); /* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptEvaluator */ 6); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptJSEvaluator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./NetscriptJSEvaluator */ 103); /* harmony import */ var _NetscriptPort__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NetscriptPort */ 66); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Server */ 11); @@ -12920,14 +12941,14 @@ function updateStockOrderList(stock) { /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var escodegen__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! escodegen */ 97); /* harmony import */ var escodegen__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(escodegen__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn */ 44); +/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn */ 45); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/compareArrays */ 86); /* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 50); +/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 51); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 77); +/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 76); /* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_16__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_17__); @@ -13575,8 +13596,8 @@ function updateOnlineScriptTimes(numCycles = 1) { Object.defineProperty(exports, "__esModule", { value: true }); // Constructs all CompanyPosition objects using the metadata in data/companypositions.ts -const CompanyPositionsMetadata_1 = __webpack_require__(/*! ./data/CompanyPositionsMetadata */ 174); -const CompanyPosition_1 = __webpack_require__(/*! ./CompanyPosition */ 71); +const CompanyPositionsMetadata_1 = __webpack_require__(/*! ./data/CompanyPositionsMetadata */ 176); +const CompanyPosition_1 = __webpack_require__(/*! ./CompanyPosition */ 79); exports.CompanyPositions = {}; function addCompanyPosition(params) { if (exports.CompanyPositions[params.name] != null) { @@ -13650,8 +13671,8 @@ JSONReviver_1.Reviver.constructors.Stock = Stock; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const isString_1 = __webpack_require__(/*! ../helpers/isString */ 35); -const getElementById_1 = __webpack_require__(/*! ./getElementById */ 48); +const isString_1 = __webpack_require__(/*! ../helpers/isString */ 36); +const getElementById_1 = __webpack_require__(/*! ./getElementById */ 50); /** * Clears out all children from the provided element. * If a string is passed in, it will treat it as an ID and search for the element to delete all children from. @@ -13680,73 +13701,6 @@ exports.removeChildrenFromElement = removeChildrenFromElement; /***/ }), /* 28 */ -/*!*********************************!*\ - !*** ./src/SpecialServerIps.js ***! - \*********************************/ -/*! exports provided: SpecialServerNames, SpecialServerIps, SpecialServerIpsMap, loadSpecialServerIps, prestigeSpecialServerIps, initSpecialServerIps */ -/*! exports used: SpecialServerIps, SpecialServerNames, initSpecialServerIps, loadSpecialServerIps, prestigeSpecialServerIps */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpecialServerNames; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SpecialServerIps; }); -/* unused harmony export SpecialServerIpsMap */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return loadSpecialServerIps; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return prestigeSpecialServerIps; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return initSpecialServerIps; }); -/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); - - -/* Holds IP of Special Servers */ -let SpecialServerNames = { - FulcrumSecretTechnologies: "Fulcrum Secret Technologies Server", - CyberSecServer: "CyberSec Server", - NiteSecServer: "NiteSec Server", - TheBlackHandServer: "The Black Hand Server", - BitRunnersServer: "BitRunners Server", - TheDarkArmyServer: "The Dark Army Server", - DaedalusServer: "Daedalus Server", - WorldDaemon: "w0r1d_d43m0n", -} -function SpecialServerIpsMap() {} - -SpecialServerIpsMap.prototype.addIp = function(name, ip) { - this[name] = ip; -} - -SpecialServerIpsMap.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_toJSON"])("SpecialServerIpsMap", this); -} - -SpecialServerIpsMap.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_fromJSON"])(SpecialServerIpsMap, value.data); -} - -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"].constructors.SpecialServerIpsMap = SpecialServerIpsMap; - -let SpecialServerIps = new SpecialServerIpsMap(); - -function prestigeSpecialServerIps() { - for (var member in SpecialServerIps) { - delete SpecialServerIps[member]; - } - SpecialServerIps = null; - SpecialServerIps = new SpecialServerIpsMap(); -} - -function loadSpecialServerIps(saveString) { - SpecialServerIps = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"]); -} - -function initSpecialServerIps() { - SpecialServerIps = new SpecialServerIpsMap(); -} - - - - -/***/ }), -/* 29 */ /*!***********************!*\ !*** ./src/Script.js ***! \***********************/ @@ -13766,10 +13720,10 @@ function initSpecialServerIps() { /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./engine */ 8); -/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Fconf */ 42); +/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Fconf */ 43); /* harmony import */ var _InteractiveTutorial__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InteractiveTutorial */ 33); /* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NetscriptEvaluator */ 6); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Server */ 11); @@ -13777,13 +13731,13 @@ function initSpecialServerIps() { /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/postToTerminal */ 7); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_ui_postToTerminal__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TextFile */ 57); +/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TextFile */ 58); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn */ 44); +/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/acorn */ 45); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); /* harmony import */ var _utils_helpers_compareArrays__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/helpers/compareArrays */ 86); @@ -13792,23 +13746,23 @@ function initSpecialServerIps() { /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/helpers/getTimestamp */ 80); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 77); +/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 76); /* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_20__); -var ace = __webpack_require__(/*! brace */ 240); -var beautify = __webpack_require__(/*! js-beautify */ 239).js_beautify; -__webpack_require__(/*! brace/mode/javascript */ 238); -__webpack_require__(/*! ../netscript */ 175); -__webpack_require__(/*! brace/theme/chaos */ 237); -__webpack_require__(/*! brace/theme/chrome */ 236); -__webpack_require__(/*! brace/theme/monokai */ 235); -__webpack_require__(/*! brace/theme/solarized_dark */ 234); -__webpack_require__(/*! brace/theme/solarized_light */ 233); -__webpack_require__(/*! brace/theme/terminal */ 232); -__webpack_require__(/*! brace/theme/twilight */ 231); -__webpack_require__(/*! brace/theme/xcode */ 230); -__webpack_require__(/*! brace/keybinding/vim */ 229); -__webpack_require__(/*! brace/keybinding/emacs */ 228); -__webpack_require__(/*! brace/ext/language_tools */ 227); +var ace = __webpack_require__(/*! brace */ 242); +var beautify = __webpack_require__(/*! js-beautify */ 241).js_beautify; +__webpack_require__(/*! brace/mode/javascript */ 240); +__webpack_require__(/*! ../netscript */ 177); +__webpack_require__(/*! brace/theme/chaos */ 239); +__webpack_require__(/*! brace/theme/chrome */ 238); +__webpack_require__(/*! brace/theme/monokai */ 237); +__webpack_require__(/*! brace/theme/solarized_dark */ 236); +__webpack_require__(/*! brace/theme/solarized_light */ 235); +__webpack_require__(/*! brace/theme/terminal */ 234); +__webpack_require__(/*! brace/theme/twilight */ 233); +__webpack_require__(/*! brace/theme/xcode */ 232); +__webpack_require__(/*! brace/keybinding/vim */ 231); +__webpack_require__(/*! brace/keybinding/emacs */ 230); +__webpack_require__(/*! brace/ext/language_tools */ 229); // Importing this doesn't work for some reason. const walk = __webpack_require__(/*! acorn/dist/walk */ 135); @@ -14260,7 +14214,7 @@ async function parseOnlyRamCalculate(server, code, workerScript) { const nextModule = parseQueue.shift(); let code; - if (nextModule.startsWith("https://")) { + if (nextModule.startsWith("https://") || nextModule.startsWith("http://")) { try { const module = await eval('import(nextModule)'); code = ""; @@ -14892,7 +14846,7 @@ _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__["Reviver"].constructors.AllServ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) /***/ }), -/* 30 */ +/* 29 */ /*!****************************!*\ !*** ./src/Bladeburner.js ***! \****************************/ @@ -14909,14 +14863,14 @@ _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__["Reviver"].constructors.AllServ /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./engine */ 8); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Locations */ 4); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./RedPill */ 53); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 32); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 78); +/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 77); /* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); @@ -14924,17 +14878,17 @@ _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_16__["Reviver"].constructors.AllServ /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); /* harmony import */ var _utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/addOffset */ 59); /* harmony import */ var _utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_uiHelpers_appendLineBreaks__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/appendLineBreaks */ 56); +/* harmony import */ var _utils_uiHelpers_appendLineBreaks__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/appendLineBreaks */ 57); /* harmony import */ var _utils_uiHelpers_appendLineBreaks__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_appendLineBreaks__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/clearObject */ 73); +/* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/helpers/clearObject */ 72); /* harmony import */ var _utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_clearObject__WEBPACK_IMPORTED_MODULE_16__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); @@ -15019,7 +14973,6 @@ var ContractBaseMoneyGain = 50e3; //Base Money Gained per contract var ActiveActionCssClass = "bladeburner-active-action"; //Console related stuff -var consoleHistory = []; //Console command history var consoleHistoryIndex = 0; var consoleHelpText = { helpList:"Use 'help [command]' to get more information about a particular Bladeburner console command.

" + @@ -15098,6 +15051,7 @@ $(document).keydown(function(event) { //} if (!(_Player__WEBPACK_IMPORTED_MODULE_6__[/* Player */ "a"].bladeburner instanceof Bladeburner)) {return;} + let consoleHistory = _Player__WEBPACK_IMPORTED_MODULE_6__[/* Player */ "a"].bladeburner.consoleHistory; //NOTE: Keycodes imported from Terminal.js if (event.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_9__["KEY"].ENTER) { @@ -15657,6 +15611,10 @@ function Bladeburner(params={}) { this.automateActionLow = 0; this.automateThreshLow = 0; //Stamina Threshold + //Console command history + this.consoleHistory = []; + this.consoleLogs = []; + //Initialization initBladeburner(); this.initializeDomElementRefs(); @@ -15809,6 +15767,12 @@ Bladeburner.prototype.process = function() { this.resetAction(); } + // If the Player has no Stamina, set action to idle + if (this.stamina <= 0) { + this.log("Your Bladeburner action was cancelled because your stamina hit 0"); + this.resetAction(); + } + //A 'tick' for this mechanic is one second (= 5 game cycles) if (this.storedCycles >= CyclesPerSecond) { var seconds = Math.floor(this.storedCycles / CyclesPerSecond); @@ -16290,7 +16254,6 @@ Bladeburner.prototype.completeAction = function() { _Player__WEBPACK_IMPORTED_MODULE_6__[/* Player */ "a"].gainIntelligenceExp(BaseIntGain); _Player__WEBPACK_IMPORTED_MODULE_6__[/* Player */ "a"].gainCharismaExp(charismaExpGain); this.changeRank(0.1 * _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_1__["BitNodeMultipliers"].BladeburnerRank); - 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__WEBPACK_IMPORTED_MODULE_21__["formatNumber"])(hackingExpGain, 1) + " hacking exp, and " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__["formatNumber"])(charismaExpGain, 1) + " charisma exp"); @@ -16683,8 +16646,15 @@ Bladeburner.prototype.createContent = function() { document.getElementById("entire-game-container").appendChild(DomElems.bladeburnerDiv); - this.postToConsole("Bladeburner Console BETA"); - this.postToConsole("Type 'help' to see console commands"); + if (this.consoleLogs.length === 0) { + this.postToConsole("Bladeburner Console BETA"); + this.postToConsole("Type 'help' to see console commands"); + } else { + for (let i = 0; i < this.consoleLogs.length; ++i) { + this.postToConsole(this.consoleLogs[i], false); + } + } + DomElems.consoleInput.focus(); } @@ -17677,12 +17647,22 @@ Bladeburner.prototype.updateSkillsUIElement = function(el, skill) { } //Bladeburner Console Window -Bladeburner.prototype.postToConsole = function(input) { +Bladeburner.prototype.postToConsole = function(input, saveToLogs=true) { + const MaxConsoleEntries = 100; + if (saveToLogs === true) { + this.consoleLogs.push(input); + if (this.consoleLogs.length > MaxConsoleEntries) { + this.consoleLogs.shift(); + } + } + if (input == null || DomElems.consoleDiv == null) {return;} $("#bladeubrner-console-input-row").before('' + input + ''); - if (DomElems.consoleTable.childNodes.length > 200) { + + if (DomElems.consoleTable.childNodes.length > MaxConsoleEntries) { DomElems.consoleTable.removeChild(DomElems.consoleTable.firstChild); } + this.updateConsoleScroll(); } @@ -17698,6 +17678,8 @@ Bladeburner.prototype.clearConsole = function() { while (DomElems.consoleTable.childNodes.length > 1) { DomElems.consoleTable.removeChild(DomElems.consoleTable.firstChild); } + + this.consoleLogs.length = 0; } Bladeburner.prototype.log = function(input) { @@ -17709,13 +17691,13 @@ Bladeburner.prototype.log = function(input) { Bladeburner.prototype.executeConsoleCommands = function(commands) { try { //Console History - if (consoleHistory[consoleHistory.length-1] != commands) { - consoleHistory.push(commands); - if (consoleHistory.length > 50) { - consoleHistory.splice(0, 1); + if (this.consoleHistory[this.consoleHistory.length-1] != commands) { + this.consoleHistory.push(commands); + if (this.consoleHistory.length > 50) { + this.consoleHistory.splice(0, 1); } } - consoleHistoryIndex = consoleHistory.length; + consoleHistoryIndex = this.consoleHistory.length; var arrayOfCommands = commands.split(";"); for (var i = 0; i < arrayOfCommands.length; ++i) { @@ -18414,7 +18396,7 @@ Bladeburner.prototype.getActionCountRemainingNetscriptFn = function(type, name, switch (actionId.type) { case ActionTypes["Contract"]: case ActionTypes["Operation"]: - return actionObj.count; + return Math.floor( actionObj.count ); case ActionTypes["BlackOp"]: case ActionTypes["BlackOperation"]: if (this.blackops[name] != null) { @@ -19105,6 +19087,73 @@ function initBladeburner() { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) +/***/ }), +/* 30 */ +/*!*********************************!*\ + !*** ./src/SpecialServerIps.js ***! + \*********************************/ +/*! exports provided: SpecialServerNames, SpecialServerIps, SpecialServerIpsMap, loadSpecialServerIps, prestigeSpecialServerIps, initSpecialServerIps */ +/*! exports used: SpecialServerIps, SpecialServerNames, initSpecialServerIps, loadSpecialServerIps, prestigeSpecialServerIps */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpecialServerNames; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SpecialServerIps; }); +/* unused harmony export SpecialServerIpsMap */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return loadSpecialServerIps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return prestigeSpecialServerIps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return initSpecialServerIps; }); +/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); + + +/* Holds IP of Special Servers */ +let SpecialServerNames = { + FulcrumSecretTechnologies: "Fulcrum Secret Technologies Server", + CyberSecServer: "CyberSec Server", + NiteSecServer: "NiteSec Server", + TheBlackHandServer: "The Black Hand Server", + BitRunnersServer: "BitRunners Server", + TheDarkArmyServer: "The Dark Army Server", + DaedalusServer: "Daedalus Server", + WorldDaemon: "w0r1d_d43m0n", +} +function SpecialServerIpsMap() {} + +SpecialServerIpsMap.prototype.addIp = function(name, ip) { + this[name] = ip; +} + +SpecialServerIpsMap.prototype.toJSON = function() { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_toJSON"])("SpecialServerIpsMap", this); +} + +SpecialServerIpsMap.fromJSON = function(value) { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Generic_fromJSON"])(SpecialServerIpsMap, value.data); +} + +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"].constructors.SpecialServerIpsMap = SpecialServerIpsMap; + +let SpecialServerIps = new SpecialServerIpsMap(); + +function prestigeSpecialServerIps() { + for (var member in SpecialServerIps) { + delete SpecialServerIps[member]; + } + SpecialServerIps = null; + SpecialServerIps = new SpecialServerIpsMap(); +} + +function loadSpecialServerIps(saveString) { + SpecialServerIps = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_0__["Reviver"]); +} + +function initSpecialServerIps() { + SpecialServerIps = new SpecialServerIpsMap(); +} + + + + /***/ }), /* 31 */, /* 32 */ @@ -19173,7 +19222,7 @@ exports.KEY = { /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_6__); @@ -19690,6 +19739,81 @@ function iTutorialSetText(txt) { /***/ }), /* 34 */ +/*!**************************************************!*\ + !*** ./src/Company/data/CompanyPositionNames.ts ***! + \**************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// Defs for job titles, stored in arrays and categorized by job "type" +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SoftwareCompanyPositions = [ + "Software Engineering Intern", + "Junior Software Engineer", + "Senior Software Engineer", + "Lead Software Developer", + "Head of Software", + "Head of Engineering", + "Vice President of Technology", + "Chief Technology Officer" +]; +exports.ITCompanyPositions = [ + "IT Intern", + "IT Analyst", + "IT Manager", + "Systems Administrator" +]; +exports.SecurityEngineerCompanyPositions = [ + "Security Engineer" +]; +exports.NetworkEngineerCompanyPositions = [ + "Network Engineer", + "Network Administrator" +]; +exports.BusinessCompanyPositions = [ + "Business Intern", + "Business Analyst", + "Business Manager", + "Operations Manager", + "Chief Financial Officer", + "Chief Executive Officer" +]; +exports.SecurityCompanyPositions = [ + "Police Officer", + "Police Chief", + "Security Guard", + "Security Officer", + "Security Supervisor", + "Head of Security" +]; +exports.AgentCompanyPositions = [ + "Field Agent", + "Secret Agent", + "Special Operative" +]; +exports.MiscCompanyPositions = [ + "Waiter", + "Employee" +]; +exports.SoftwareConsultantCompanyPositions = [ + "Software Consultant", + "Senior Software Consultant" +]; +exports.BusinessConsultantCompanyPositions = [ + "Business Consultant", + "Senior Business Consultant" +]; +exports.PartTimeCompanyPositions = [ + "Part-time Waiter", + "Part-time Employee" +]; + + +/***/ }), +/* 35 */ /*!***********************!*\ !*** ./src/Crimes.js ***! \***********************/ @@ -19983,7 +20107,7 @@ function findCrime(roughName) { /***/ }), -/* 35 */ +/* 36 */ /*!***********************************!*\ !*** ./utils/helpers/isString.ts ***! \***********************************/ @@ -20005,7 +20129,7 @@ exports.isString = isString; /***/ }), -/* 36 */ +/* 37 */ /*!************************!*\ !*** ./src/Message.js ***! \************************/ @@ -20022,8 +20146,8 @@ exports.isString = isString; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initMessages; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Message; }); /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentations */ 21); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateProgram */ 22); -/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Missions */ 49); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateProgram */ 23); +/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Missions */ 52); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RedPill */ 53); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Server */ 11); @@ -20225,7 +20349,7 @@ function initMessages() { /***/ }), -/* 37 */ +/* 38 */ /*!****************************************!*\ !*** ./utils/uiHelpers/createPopup.ts ***! \****************************************/ @@ -20237,7 +20361,7 @@ function initMessages() { Object.defineProperty(exports, "__esModule", { value: true }); const createElement_1 = __webpack_require__(/*! ./createElement */ 2); -const getElementById_1 = __webpack_require__(/*! ./getElementById */ 48); +const getElementById_1 = __webpack_require__(/*! ./getElementById */ 50); /** * Creates the necessary DOM elements to present an in-game popup to the player. * @param id The (hopefully) unique identifier for the popup container. @@ -20265,7 +20389,39 @@ exports.createPopup = createPopup; /***/ }), -/* 38 */ +/* 39 */ +/*!******************************!*\ + !*** ./src/NetscriptGang.js ***! + \******************************/ +/*! exports provided: unknownGangApiExceptionMessage, checkGangApiAccess */ +/*! exports used: checkGangApiAccess, unknownGangApiExceptionMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return unknownGangApiExceptionMessage; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return checkGangApiAccess; }); +/* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Player */ 0); +/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Gang */ 47); +/* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NetscriptEvaluator */ 6); + + + + +function unknownGangApiExceptionMessage(functionName, err) { + return `gang.${functionName}() failed with exception: ` + err; +} + +function checkGangApiAccess(workerScript, functionName) { + const accessDenied = `gang.${functionName}() failed because you do not currently have a Gang`; + const hasAccess = _Player__WEBPACK_IMPORTED_MODULE_0__[/* Player */ "a"].gang instanceof _Gang__WEBPACK_IMPORTED_MODULE_1__[/* Gang */ "b"]; + if (!hasAccess) { + throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_2__[/* makeRuntimeRejectMsg */ "d"])(workerScript, accessDenied); + } +} + + +/***/ }), +/* 40 */ /*!********************************!*\ !*** ./src/CodingContracts.ts ***! \********************************/ @@ -20286,9 +20442,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge Object.defineProperty(exports, "__esModule", { value: true }); const JSONReviver_1 = __webpack_require__(/*! ../utils/JSONReviver */ 14); const createElement_1 = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); -const createPopup_1 = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); +const createPopup_1 = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); const removeElementById_1 = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); -const codingcontracttypes_1 = __webpack_require__(/*! ./data/codingcontracttypes */ 180); +const codingcontracttypes_1 = __webpack_require__(/*! ./data/codingcontracttypes */ 182); /* tslint:disable:no-magic-numbers completed-docs max-classes-per-file no-console */ /* Represents different types of problems that a Coding Contract can have */ class CodingContractType { @@ -20439,39 +20595,7 @@ JSONReviver_1.Reviver.constructors.CodingContract = CodingContract; /***/ }), -/* 39 */ -/*!******************************!*\ - !*** ./src/NetscriptGang.js ***! - \******************************/ -/*! exports provided: unknownGangApiExceptionMessage, checkGangApiAccess */ -/*! exports used: checkGangApiAccess, unknownGangApiExceptionMessage */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return unknownGangApiExceptionMessage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return checkGangApiAccess; }); -/* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Gang */ 52); -/* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NetscriptEvaluator */ 6); - - - - -function unknownGangApiExceptionMessage(functionName, err) { - return `gang.${functionName}() failed with exception: ` + err; -} - -function checkGangApiAccess(workerScript, functionName) { - const accessDenied = `gang.${functionName}() failed because you do not currently have a Gang`; - const hasAccess = _Player__WEBPACK_IMPORTED_MODULE_0__[/* Player */ "a"].gang instanceof _Gang__WEBPACK_IMPORTED_MODULE_1__[/* Gang */ "b"]; - if (!hasAccess) { - throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_2__[/* makeRuntimeRejectMsg */ "d"])(workerScript, accessDenied); - } -} - - -/***/ }), -/* 40 */ +/* 41 */ /*!***********************************!*\ !*** ./src/NetscriptFunctions.js ***! \***********************************/ @@ -20493,42 +20617,42 @@ function checkGangApiAccess(workerScript, functionName) { /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentations */ 21); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BitNodeMultipliers */ 10); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Crimes */ 34); -/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Bladeburner */ 30); +/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Crimes */ 35); +/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Bladeburner */ 29); /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Company/Company */ 69); /* harmony import */ var _Company_Company__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Company_Company__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Company/Companies */ 17); +/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Company/Companies */ 18); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Company/CompanyPosition */ 71); +/* harmony import */ var _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Company/CompanyPosition */ 79); /* harmony import */ var _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Company/CompanyPositions */ 25); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CreateProgram */ 22); -/* harmony import */ var _DarkWeb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DarkWeb */ 75); -/* harmony import */ var _Hacking__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Hacking */ 45); -/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Gang */ 52); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CreateProgram */ 23); +/* harmony import */ var _DarkWeb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DarkWeb */ 74); +/* harmony import */ var _Hacking__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Hacking */ 46); +/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Gang */ 47); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Faction */ 12); /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./HacknetNode */ 61); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Locations */ 4); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Message */ 36); -/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Missions */ 49); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Message */ 37); +/* harmony import */ var _Missions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Missions */ 52); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Script */ 29); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Script */ 28); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./SpecialServerIps */ 28); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./SpecialServerIps */ 30); /* harmony import */ var _Stock__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Stock */ 26); /* harmony import */ var _Stock__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_Stock__WEBPACK_IMPORTED_MODULE_24__); -/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./StockMarket */ 23); +/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./StockMarket */ 22); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ui/postToTerminal */ 7); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_ui_postToTerminal__WEBPACK_IMPORTED_MODULE_26__); -/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./TextFile */ 57); +/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./TextFile */ 58); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_27__); -/* harmony import */ var _NetscriptBladeburner__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./NetscriptBladeburner */ 47); +/* harmony import */ var _NetscriptBladeburner__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./NetscriptBladeburner */ 49); /* harmony import */ var _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./NetscriptGang */ 39); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./NetscriptEvaluator */ 6); @@ -20539,14 +20663,14 @@ function checkGangApiAccess(workerScript, functionName) { /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../utils/helpers/isPowerOfTwo */ 123); /* harmony import */ var _utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isPowerOfTwo__WEBPACK_IMPORTED_MODULE_36__); -/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 50); +/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 51); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_37__); /* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../utils/IPAddress */ 55); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_39__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_40__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); var sprintf = __webpack_require__(/*! sprintf-js */ 134).sprintf, vsprintf = __webpack_require__(/*! sprintf-js */ 134).vsprintf @@ -20636,11 +20760,14 @@ var possibleLogs = { getServerGrowth: true, getServerNumPortsRequired: true, getServerRam: true, + // TIX API buyStock: true, sellStock: true, shortStock: true, sellShort: true, + purchase4SMarketData: true, + purchase4SMarketDataTixApi: true, // Singularity Functions purchaseServer: true, @@ -21075,8 +21202,30 @@ function NetscriptFunctions(workerScript) { } return workerScript.disableLogs[fn] ? false : true; }, - getScriptLogs : function() { + getScriptLogs : function(fn, ip) { if (workerScript.checkingRam) {return 0;} + + if (fn != null && typeof fn === 'string') { + // Get Logs of another script + if (ip == null) { ip = workerScript.serverIp; } + const server = Object(_Server__WEBPACK_IMPORTED_MODULE_21__[/* getServer */ "e"])(ip); + if (server == null) { + workerScript.log(`getScriptLogs() failed. Invalid IP or hostname passed in: ${ip}`); + throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, `getScriptLogs() failed. Invalid IP or hostname passed in: ${ip}`); + } + + let argsForTarget = []; + for (let i = 2; i < arguments.length; ++i) { + argsForTarget.push(arguments[i]); + } + const runningScriptObj = Object(_Script__WEBPACK_IMPORTED_MODULE_20__[/* findRunningScript */ "d"])(fn, argsForTarget, server); + if (runningScriptObj == null) { + workerScript.scriptRef.log(`getScriptLogs() failed. No such script ${fn} on ${server.hostname} with args: ${Object(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_37__["arrayToString"])(argsForTarget)}`); + return ""; + } + return runningScriptObj.logs.slice(); + } + return workerScript.scriptRef.logs.slice(); }, nuke : function(ip){ @@ -21330,7 +21479,7 @@ function NetscriptFunctions(workerScript) { } NetscriptFunctions(workerScript).exit(); }, - kill : function(filename,ip) { + kill : function(filename, ip) { if (workerScript.checkingRam) { return updateStaticRam("kill", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptKillRamCost); } @@ -22226,6 +22375,68 @@ function NetscriptFunctions(workerScript) { stock.b ? forecast += stock.otlkMag : forecast -= stock.otlkMag; return forecast / 100; //Convert from percentage to decimal }, + purchase4SMarketData : function() { + if (workerScript.checkingRam) { + return updateStaticRam("purchase4SMarketData", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptBuySellStockRamCost); + } + updateDynamicRam("purchase4SMarketData", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptBuySellStockRamCost); + + if (!_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].hasTixApiAccess) { + throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, "You don't have TIX API Access! Cannot use purchase4SMarketData()"); + } + + if (_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].has4SData) { + if (workerScript.shouldLog("purchase4SMarketData")) { + workerScript.log("Already purchased 4S Market Data"); + } + return true; + } + + if (_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].money.lt(_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MarketData4SCost)) { + if (workerScript.shouldLog("purchase4SMarketData")) { + workerScript.log("Failed to purchase 4S Market Data - Not enough money"); + } + return false; + } + + _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].has4SData = true; + _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].loseMoney(_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MarketData4SCost); + if (workerScript.shouldLog("purchase4SMarketData")) { + workerScript.log("Purchased 4S Market Data"); + } + return true; + }, + purchase4SMarketDataTixApi : function() { + if (workerScript.checkingRam) { + return updateStaticRam("purchase4SMarketDataTixApi", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptBuySellStockRamCost); + } + updateDynamicRam("purchase4SMarketDataTixApi", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptBuySellStockRamCost); + + if (!_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].hasTixApiAccess) { + throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, "You don't have TIX API Access! Cannot use purchase4SMarketDataTixApi()"); + } + + if (_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].has4SDataTixApi) { + if (workerScript.shouldLog("purchase4SMarketDataTixApi")) { + workerScript.log("Already purchased 4S Market Data TIX API"); + } + return true; + } + + if (_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].money.lt(_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MarketDataTixApi4SCost)) { + if (workerScript.shouldLog("purchase4SMarketDataTixApi")) { + workerScript.log("Failed to purchase 4S Market Data TIX API - Not enough money"); + } + return false; + } + + _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].has4SDataTixApi = true; + _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].loseMoney(_Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].MarketDataTixApi4SCost); + if (workerScript.shouldLog("purchase4SMarketDataTixApi")) { + workerScript.log("Purchased 4S Market Data TIX API"); + } + return true; + }, getPurchasedServerLimit : function() { if (workerScript.checkingRam) { return updateStaticRam("getPurchasedServerLimit", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptGetPurchasedServerLimit); @@ -22253,7 +22464,7 @@ function NetscriptFunctions(workerScript) { cost = getPurchaseServerRamCostGuard(ram); } catch (e) { workerScript.scriptRef.log("ERROR: 'getPurchasedServerCost()' " + e.message); - return ""; + return Infinity; } return cost; @@ -22581,14 +22792,18 @@ function NetscriptFunctions(workerScript) { } return port; }, - rm : function(fn) { + rm : function(fn, ip) { if (workerScript.checkingRam) { return updateStaticRam("rm", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptReadWriteRamCost); } updateDynamicRam("rm", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptReadWriteRamCost); - var s = Object(_Server__WEBPACK_IMPORTED_MODULE_21__[/* getServer */ "e"])(workerScript.serverIp); + + if (ip == null || ip === "") { + ip = workerScript.serverIp; + } + var s = Object(_Server__WEBPACK_IMPORTED_MODULE_21__[/* getServer */ "e"])(ip); if (s == null) { - throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, "Error getting Server for this script in clear(). This is a bug please contact game dev"); + throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, `Invalid server specified for rm(): ${ip}`); } if (fn.includes(".exe")) { @@ -24312,7 +24527,7 @@ function NetscriptFunctions(workerScript) { _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* checkGangApiAccess */ "a"](workerScript, "purchaseEquipment"); try { - for (const member in _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang.members) { + for (const member of _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang.members) { if (member.name === memberName) { const res = member.buyUpgrade(equipName, _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"], _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang); if (workerScript.shouldLog("purchaseEquipment")) { @@ -24341,13 +24556,13 @@ function NetscriptFunctions(workerScript) { _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* checkGangApiAccess */ "a"](workerScript, "ascendMember"); try { - for (const member in _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang.members) { + for (const member of _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang.members) { if (member.name === name) { return _Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang.ascendMember(member, workerScript); } } - workerScript.log(`Invalid argument passed to gang.ascendMember(). No gang member could be found with name ${memberName}`); + workerScript.log(`Invalid argument passed to gang.ascendMember(). No gang member could be found with name ${name}`); return false; } catch(e) { throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* unknownGangApiExceptionMessage */ "b"]("ascendMember", e)); @@ -24376,6 +24591,27 @@ function NetscriptFunctions(workerScript) { throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* unknownGangApiExceptionMessage */ "b"]("setTerritoryWarfare", e)); } }, + getChanceToWinClash : function(otherGang) { + if (workerScript.checkingRam) { + return updateStaticRam("getChanceToWinClash", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptGangApiBaseRamCost); + } + updateDynamicRam("getChanceToWinClash", _Constants__WEBPACK_IMPORTED_MODULE_9__["CONSTANTS"].ScriptGangApiBaseRamCost); + _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* checkGangApiAccess */ "a"](workerScript, "getChanceToWinClash"); + + try { + if (_Gang__WEBPACK_IMPORTED_MODULE_13__[/* AllGangs */ "a"][otherGang] == null) { + workerScript.log(`Invalid gang specified in gang.getChanceToWinClash() : ${otherGang}`); + return 0; + } + + const playerPower = _Gang__WEBPACK_IMPORTED_MODULE_13__[/* AllGangs */ "a"][_Player__WEBPACK_IMPORTED_MODULE_19__[/* Player */ "a"].gang.facName].power; + const otherPower = _Gang__WEBPACK_IMPORTED_MODULE_13__[/* AllGangs */ "a"][otherGang].power; + + return playerPower / (otherPower + playerPower); + } catch(e) { + throw Object(_NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_31__[/* makeRuntimeRejectMsg */ "d"])(workerScript, _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* unknownGangApiExceptionMessage */ "b"]("getChanceToWinClash", e)); + } + }, getBonusTime : function() { if (workerScript.checkingRam) { return 0; } _NetscriptGang__WEBPACK_IMPORTED_MODULE_29__[/* checkGangApiAccess */ "a"](workerScript, "getBonusTime"); @@ -25002,7 +25238,7 @@ function NetscriptFunctions(workerScript) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) /***/ }), -/* 41 */ +/* 42 */ /*!**********************!*\ !*** ./src/Alias.js ***! \**********************/ @@ -25137,7 +25373,7 @@ function substituteAliases(origCommand) { /***/ }), -/* 42 */ +/* 43 */ /*!**********************!*\ !*** ./src/Fconf.js ***! \**********************/ @@ -25150,7 +25386,7 @@ function substituteAliases(origCommand) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return createFconf; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return parseFconfSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadFconf; }); -/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/acorn */ 44); +/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/acorn */ 45); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/DialogBox */ 9); @@ -25407,7 +25643,7 @@ function setMainMenuStyle() { /***/ }), -/* 43 */ +/* 44 */ /*!*****************************************!*\ !*** ./utils/helpers/exceptionAlert.js ***! \*****************************************/ @@ -25434,7 +25670,7 @@ function exceptionAlert(e) { /***/ }), -/* 44 */ +/* 45 */ /*!************************!*\ !*** ./utils/acorn.js ***! \************************/ @@ -29074,7 +29310,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); }))); /***/ }), -/* 45 */ +/* 46 */ /*!************************!*\ !*** ./src/Hacking.js ***! \************************/ @@ -29188,7 +29424,1933 @@ function calculateWeakenTime(server, hack, int) { /***/ }), -/* 46 */ +/* 47 */ +/*!*********************!*\ + !*** ./src/Gang.js ***! + \*********************/ +/*! exports provided: AllGangs, resetGangs, loadAllGangs, Gang */ +/*! exports used: AllGangs, Gang, loadAllGangs, resetGangs */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AllGangs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return resetGangs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadAllGangs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Gang; }); +/* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data/gangmembertasks */ 125); +/* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data/gangmemberupgrades */ 124); +/* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./engine */ 8); +/* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction */ 12); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); +/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/DialogBox */ 9); +/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); +/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 32); +/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/uiHelpers/createAccordionElement */ 71); +/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); +/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); +/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); +/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); +/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__); +/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); +/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__); +/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 65); +/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__); +/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); +/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); +/* +Also add police clashes +balance point to keep them from running out of control +*/ + + + + + + + + + + + + + + + + + + + + + + +// Constants +const GangRespectToReputationRatio = 5; // Respect is divided by this to get rep gain +const MaximumGangMembers = 30; +const GangRecruitCostMultiplier = 2; +const CyclesPerTerritoryAndPowerUpdate = 100; +const AscensionMultiplierRatio = 15 / 100; // Portion of upgrade multiplier that is kept after ascending + +// Switch between territory and management screen with 1 and 2 +$(document).keydown(function(event) { + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang) && event.altKey) { + if (UIElems.gangMemberFilter != null && UIElems.gangMemberFilter === document.activeElement) {return;} + if (event.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__["KEY"]["1"]) { + if(UIElems.gangTerritorySubpage.style.display === "block") { + UIElems.managementButton.click(); + } + } else if (event.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__["KEY"]["2"]) { + if (UIElems.gangManagementSubpage.style.display === "block") { + UIElems.territoryButton.click(); + } + } + } +}); + +//Delete upgrade box when clicking outside +$(document).mousedown(function(event) { + var boxId = "gang-member-upgrade-popup-box"; + var contentId = "gang-member-upgrade-popup-box-content"; + if (UIElems.gangMemberUpgradeBoxOpened) { + if ( $(event.target).closest("#" + contentId).get(0) == null ) { + //Delete the box + Object(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__["removeElement"])(UIElems.gangMemberUpgradeBox); + UIElems.gangMemberUpgradeBox = null; + UIElems.gangMemberUpgradeBoxContent = null; + UIElems.gangMemberUpgradeBoxOpened = false; + UIElems.gangMemberUpgradeBoxElements = null; + } + } +}); + +let GangNames = ["Slum Snakes", "Tetrads", "The Syndicate", "The Dark Army", "Speakers for the Dead", + "NiteSec", "The Black Hand"]; +let AllGangs = { + "Slum Snakes" : { + power: 1, + territory: 1/7, + }, + "Tetrads" : { + power: 1, + territory: 1/7, + }, + "The Syndicate" : { + power: 1, + territory: 1/7, + }, + "The Dark Army" : { + power: 1, + territory: 1/7, + }, + "Speakers for the Dead" : { + power: 1, + territory: 1/7, + }, + "NiteSec" : { + power: 1, + territory: 1/7, + }, + "The Black Hand" : { + power: 1, + territory: 1/7, + }, +} + +function resetGangs() { + AllGangs = { + "Slum Snakes" : { + power: 1, + territory: 1/7, + }, + "Tetrads" : { + power: 1, + territory: 1/7, + }, + "The Syndicate" : { + power: 1, + territory: 1/7, + }, + "The Dark Army" : { + power: 1, + territory: 1/7, + }, + "Speakers for the Dead" : { + power: 1, + territory: 1/7, + }, + "NiteSec" : { + power: 1, + territory: 1/7, + }, + "The Black Hand" : { + power: 1, + territory: 1/7, + }, + } +} + +function loadAllGangs(saveString) { + AllGangs = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"]); +} + +/** + * @param facName - Name of corresponding faction + * @param hacking - Boolean indicating whether or not its a hacking gang + */ +function Gang(facName, hacking=false) { + this.facName = facName; + this.members = []; //Array of GangMembers + this.wanted = 1; + this.respect = 1; + + this.isHackingGang = hacking; + + this.respectGainRate = 0; + this.wantedGainRate = 0; + this.moneyGainRate = 0; + + // When processing gains, this stores the number of cycles until some + // limit is reached, and then calculates and applies the gains only at that limit + this.storedCycles = 0; + + // Separate variable to keep track of cycles for Territry + Power gang, which + // happens on a slower "clock" than normal processing + this.storedTerritoryAndPowerCycles = 0; + + this.territoryClashChance = 0; + this.territoryWarfareEngaged = false; + + this.notifyMemberDeath = true; +} + +Gang.prototype.getPower = function() { + return AllGangs[this.facName].power; +} + +Gang.prototype.getTerritory = function() { + return AllGangs[this.facName].territory; +} + +Gang.prototype.process = function(numCycles=1, player) { + const CyclesPerSecond = 1000 / _engine__WEBPACK_IMPORTED_MODULE_2__["Engine"]._idleSpeed; + + if (isNaN(numCycles)) { + console.error(`NaN passed into Gang.process(): ${numCycles}`); + } + this.storedCycles += numCycles; + + // Only process if there are at least 2 seconds, and at most 5 seconds + if (this.storedCycles < 2 * CyclesPerSecond) { return; } + const cycles = Math.min(this.storedCycles, 5 * CyclesPerSecond); + + try { + this.processGains(cycles, player); + this.processExperienceGains(cycles); + this.processTerritoryAndPowerGains(cycles); + this.storedCycles -= cycles; + } catch(e) { + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_13__[/* exceptionAlert */ "a"])(`Exception caught when processing Gang: ${e}`); + } +} + +Gang.prototype.processGains = function(numCycles=1, player) { + //Get gains per cycle + var moneyGains = 0, respectGains = 0, wantedLevelGains = 0; + for (var i = 0; i < this.members.length; ++i) { + respectGains += (this.members[i].calculateRespectGain(this)); + wantedLevelGains += (this.members[i].calculateWantedLevelGain(this)); + moneyGains += (this.members[i].calculateMoneyGain(this)); + } + this.respectGainRate = respectGains; + this.wantedGainRate = wantedLevelGains; + this.moneyGainRate = moneyGains; + + if (typeof respectGains === "number") { + const gain = respectGains * numCycles; + this.respect += gain; + // Faction reputation gains is respect gain divided by some constant + const fac = _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Factions */ "b"][this.facName]; + if (!(fac instanceof _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Faction */ "a"])) { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("ERROR: Could not get Faction associates with your gang. This is a bug, please report to game dev"); + } else { + var favorMult = 1 + (fac.favor / 100); + fac.playerReputation += ((player.faction_rep_mult * gain * favorMult) / GangRespectToReputationRatio); + } + + // Keep track of respect gained per member + for (let i = 0; i < this.members.length; ++i) { + this.members[i].recordEarnedRespect(numCycles, this); + } + } else { + console.warn("respectGains calculated to be NaN"); + } + if (typeof wantedLevelGains === "number") { + if (this.wanted === 1 && wantedLevelGains < 0) { + // At minimum wanted, do nothing + } else { + const oldWanted = this.wanted; + let newWanted = oldWanted + (wantedLevelGains * numCycles); + + // Prevent overflow + if (wantedLevelGains <= 0 && newWanted > oldWanted) { + newWanted = 1; + } + + this.wanted = newWanted; + if (this.wanted < 1) {this.wanted = 1;} + } + } else { + console.warn("ERROR: wantedLevelGains is NaN"); + } + if (typeof moneyGains === "number") { + player.gainMoney(moneyGains * numCycles); + } else { + console.warn("ERROR: respectGains is NaN"); + } +} + +Gang.prototype.processTerritoryAndPowerGains = function(numCycles=1) { + this.storedTerritoryAndPowerCycles += numCycles; + if (this.storedTerritoryAndPowerCycles < CyclesPerTerritoryAndPowerUpdate) { return; } + this.storedTerritoryAndPowerCycles -= CyclesPerTerritoryAndPowerUpdate; + + // Process power first + var gangName = this.facName; + for (const name in AllGangs) { + if (AllGangs.hasOwnProperty(name)) { + if (name == gangName) { + AllGangs[name].power += this.calculatePower(); + } else { + // All NPC gangs get random power gains + const gainRoll = Math.random(); + if (gainRoll < 0.5) { + // Multiplicative gain (50% chance) + // This is capped per cycle, to prevent it from getting out of control + const multiplicativeGain = AllGangs[name].power * 0.008; + AllGangs[name].power += Math.min(0.9, multiplicativeGain); + } else { + // Additive gain (50% chance) + const additiveGain = 0.5 * gainRoll * AllGangs[name].territory; + AllGangs[name].power += (additiveGain); + } + } + } + } + + // Determine if territory should be processed + if (this.territoryWarfareEngaged) { + this.territoryClashChance = 1; + } else if (this.territoryClashChance > 0) { + // Engagement turned off, but still a positive clash chance. So there's + // still a chance of clashing but it slowly goes down over time + this.territoryClashChance = Math.max(0, this.territoryClashChance - 0.01); + } + + // Then process territory + for (var i = 0; i < GangNames.length; ++i) { + const others = GangNames.filter((e) => { + return e !== i; + }); + const other = Object(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__["getRandomInt"])(0, others.length - 1); + + const thisGang = GangNames[i]; + const otherGang = others[other]; + + // If either of the gangs involved in this clash is the player, determine + // whether to skip or process it using the clash chance + if (thisGang === gangName || otherGang === gangName) { + if (!(Math.random() < this.territoryClashChance)) { continue; } + } + + const thisPwr = AllGangs[thisGang].power; + const otherPwr = AllGangs[otherGang].power; + const thisChance = thisPwr / (thisPwr + otherPwr); + + if (Math.random() < thisChance) { + if (AllGangs[otherGang].territory <= 0) { + return; + } + AllGangs[thisGang].territory += 0.0001; + AllGangs[otherGang].territory -= 0.0001; + if (thisGang === gangName) { + this.clash(true); // Player won + } else if (otherGang === gangName) { + this.clash(false); // Player lost + } else { + AllGangs[otherGang].power *= (1 / 1.01); + } + } else { + if (AllGangs[thisGang].territory <= 0) { + return; + } + AllGangs[thisGang].territory -= 0.0001; + AllGangs[otherGang].territory += 0.0001; + if (thisGang === gangName) { + this.clash(false); // Player lost + } else if (otherGang === gangName) { + this.clash(true); // Player won + } else { + AllGangs[thisGang].power *= (1 / 1.01); + } + } + } +} + +Gang.prototype.canRecruitMember = function() { + if (this.members.length >= MaximumGangMembers) { return false; } + return (this.respect >= this.getRespectNeededToRecruitMember()); +} + +Gang.prototype.getRespectNeededToRecruitMember = function() { + // First N gang members are free (can be recruited at 0 respect) + const numFreeMembers = 3; + if (this.members.length < numFreeMembers) { return 0; } + + const i = this.members.length - (numFreeMembers - 1); + return Math.round(0.9 * Math.pow(i, 3) + Math.pow(i, 2)); +} + +Gang.prototype.recruitMember = function(name) { + name = String(name); + if (name === "" || !this.canRecruitMember()) { return false; } + + // Check for already-existing names + let sameNames = this.members.filter((m) => { + return m.name === name; + }); + if (sameNames.length >= 1) { return false; } + + let member = new GangMember(name); + this.members.push(member); + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang)) { + this.createGangMemberDisplayElement(member); + this.updateGangContent(); + } + return true; +} + +// Money and Respect gains multiplied by this number (< 1) +Gang.prototype.getWantedPenalty = function() { + return (this.respect) / (this.respect + this.wanted); +} + +Gang.prototype.processExperienceGains = function(numCycles=1) { + for (var i = 0; i < this.members.length; ++i) { + this.members[i].gainExperience(numCycles); + this.members[i].updateSkillLevels(); + } +} + +//Calculates power GAIN, which is added onto the Gang's existing power +Gang.prototype.calculatePower = function() { + var memberTotal = 0; + for (var i = 0; i < this.members.length; ++i) { + if (GangMemberTasks.hasOwnProperty(this.members[i].task) && this.members[i].task == "Territory Warfare") { + const gain = this.members[i].calculatePower(); + memberTotal += gain; + } + } + return (0.015 * this.getTerritory() * memberTotal); +} + +Gang.prototype.clash = function(won=false) { + // Determine if a gang member should die + let baseDeathChance = 0.01; + if (won) { baseDeathChance /= 2; } + + // If the clash was lost, the player loses a small percentage of power + if (!won) { + AllGangs[this.facName].power *= (1 / 1.008); + } + + // Deaths can only occur during X% of clashes + if (Math.random() < 0.65) { return; } + + for (let i = this.members.length - 1; i >= 0; --i) { + const member = this.members[i]; + + // Only members assigned to Territory Warfare can die + if (member.task !== "Territory Warfare") { continue; } + + // Chance to die is decreased based on defense + const modifiedDeathChance = baseDeathChance / Math.pow(member.def, 0.6); + if (Math.random() < modifiedDeathChance) { + this.killMember(member); + } + } +} + +Gang.prototype.killMember = function(memberObj) { + const gangName = this.facName; + + // Player loses a percentage of total respect, plus whatever respect that member has earned + const totalRespect = this.respect; + const lostRespect = (0.05 * totalRespect) + memberObj.earnedRespect; + this.respect = Math.max(0, totalRespect - lostRespect); + + for (let i = 0; i < this.members.length; ++i) { + if (memberObj.name === this.members[i].name) { + this.members.splice(i, 1); + break; + } + } + + // Notify of death + if (this.notifyMemberDeath) { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])(`${memberObj.name} was killed in a gang clash! You lost ${lostRespect} respect`); + } + + // Update UI + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang)) { + this.displayGangMemberList(); + } +} + +Gang.prototype.ascendMember = function(memberObj, workerScript) { + try { + /** + * res is an object with the following format: + * { + * respect: Amount of respect to deduct + * hack/str/def/dex/agi/cha: Ascension multipliers gained for each stat + * } + */ + const res = memberObj.ascend(); + this.respect = Math.max(1, this.respect - res.respect); + if (workerScript == null) { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])([`You ascended ${memberObj.name}!`, + "", + `Your gang lost ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.respect, "0.000a")} respect`, + "", + `${memberObj.name} gained the following stat multipliers for ascending:`, + `Hacking: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.hack, "0.000%")}`, + `Strength: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.str, "0.000%")}`, + `Defense: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.def, "0.000%")}`, + `Dexterity: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.dex, "0.000%")}`, + `Agility: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.agi, "0.000%")}`, + `Charisma: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.cha, "0.000%")}`].join("
")); + } else { + workerScript.log(`Ascended Gang member ${memberObj.name}`); + } + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang)) { + this.displayGangMemberList(); + } + return res; + } catch(e) { + if (workerScript == null) { + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_13__[/* exceptionAlert */ "a"])(e); + } else { + throw e; // Re-throw, will be caught in the Netscript Function + } + } +} + +// Cost of upgrade gets cheaper as gang increases in respect + power +Gang.prototype.getDiscount = function() { + const power = this.getPower(); + const respect = this.respect; + + const respectLinearFac = 5e6; + const powerLinearFac = 1e6; + const discount = Math.pow(respect, 0.01) + respect / respectLinearFac + Math.pow(power, 0.01) + power / powerLinearFac - 1; + return Math.max(1, discount); +} + +// Returns only valid tasks for this gang. Excludes 'Unassigned' +Gang.prototype.getAllTaskNames = function() { + let tasks = []; + const allTasks = Object.keys(GangMemberTasks); + if (this.isHackingGang) { + tasks = allTasks.filter((e) => { + let task = GangMemberTasks[e]; + if (task == null) { return false; } + if (e === "Unassigned") { return false; } + return task.isHacking; + }); + } else { + tasks = allTasks.filter((e) => { + let task = GangMemberTasks[e]; + if (task == null) { return false; } + if (e === "Unassigned") { return false; } + return task.isCombat; + }); + } + return tasks; +} + +Gang.prototype.getAllUpgradeNames = function() { + return Object.keys(GangMemberUpgrades); +} + +Gang.prototype.getUpgradeCost = function(upgName) { + if (GangMemberUpgrades[upgName] == null) { return Infinity; } + return GangMemberUpgrades[upgName].getCost(this); +} + +Gang.prototype.toJSON = function() { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("Gang", this); +} + +Gang.fromJSON = function(value) { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(Gang, value.data); +} + +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.Gang = Gang; + +/*** Gang Member object ***/ +function GangMember(name) { + this.name = name; + this.task = "Unassigned"; //GangMemberTask object + + this.earnedRespect = 0; + + this.hack = 1; + this.str = 1; + this.def = 1; + this.dex = 1; + this.agi = 1; + this.cha = 1; + + this.hack_exp = 0; + this.str_exp = 0; + this.def_exp = 0; + this.dex_exp = 0; + this.agi_exp = 0; + this.cha_exp = 0; + + this.hack_mult = 1; + this.str_mult = 1; + this.def_mult = 1; + this.dex_mult = 1; + this.agi_mult = 1; + this.cha_mult = 1; + + this.hack_asc_mult = 1; + this.str_asc_mult = 1; + this.def_asc_mult = 1; + this.dex_asc_mult = 1; + this.agi_asc_mult = 1; + this.cha_asc_mult = 1; + + this.upgrades = []; //Names of upgrades + this.augmentations = []; //Names only +} + +//Same formula for Player +GangMember.prototype.calculateSkill = function(exp, mult=1) { + return Math.max(Math.floor(mult * (32 * Math.log(exp + 534.5) - 200)), 1); +} + +GangMember.prototype.updateSkillLevels = function() { + this.hack = this.calculateSkill(this.hack_exp, this.hack_mult * this.hack_asc_mult); + this.str = this.calculateSkill(this.str_exp, this.str_mult * this.str_asc_mult); + this.def = this.calculateSkill(this.def_exp, this.def_mult * this.def_asc_mult); + this.dex = this.calculateSkill(this.dex_exp, this.dex_mult * this.dex_asc_mult); + this.agi = this.calculateSkill(this.agi_exp, this.agi_mult * this.agi_asc_mult); + this.cha = this.calculateSkill(this.cha_exp, this.cha_mult * this.cha_asc_mult); +} + +GangMember.prototype.calculatePower = function() { + return (this.hack + this.str + this.def + this.dex + this.agi + this.cha) / 95; +} + +GangMember.prototype.assignToTask = function(taskName) { + if (GangMemberTasks.hasOwnProperty(taskName)) { + this.task = taskName; + return true; + } else { + this.task = "Unassigned"; + return false; + } +} + +GangMember.prototype.unassignFromTask = function() { + this.task = "Unassigned"; +} + +GangMember.prototype.getTask = function() { + // Backwards compatibility + if (this.task instanceof GangMemberTask) { + this.task = this.task.name; + } + + if (GangMemberTasks.hasOwnProperty(this.task)) { + return GangMemberTasks[this.task]; + } + return GangMemberTasks["Unassigned"]; +} + +//Gains are per cycle +GangMember.prototype.calculateRespectGain = function(gang) { + const task = this.getTask(); + if (task == null || !(task instanceof GangMemberTask) || task.baseRespect === 0) {return 0;} + var statWeight = (task.hackWeight/100) * this.hack + + (task.strWeight/100) * this.str + + (task.defWeight/100) * this.def + + (task.dexWeight/100) * this.dex + + (task.agiWeight/100) * this.agi + + (task.chaWeight/100) * this.cha; + statWeight -= (4 * task.difficulty); + if (statWeight <= 0) { return 0; } + const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.respect) / 100; + if (isNaN(territoryMult) || territoryMult <= 0) { return 0; } + var respectMult = gang.getWantedPenalty(); + return 11 * task.baseRespect * statWeight * territoryMult * respectMult; +} + +GangMember.prototype.calculateWantedLevelGain = function(gang) { + const task = this.getTask(); + if (task == null || !(task instanceof GangMemberTask) || task.baseWanted === 0) {return 0;} + var statWeight = (task.hackWeight/100) * this.hack + + (task.strWeight/100) * this.str + + (task.defWeight/100) * this.def + + (task.dexWeight/100) * this.dex + + (task.agiWeight/100) * this.agi + + (task.chaWeight/100) * this.cha; + statWeight -= (3.5 * task.difficulty); + if (statWeight <= 0) { return 0; } + const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.wanted) / 100; + if (isNaN(territoryMult) || territoryMult <= 0) { return 0; } + if (task.baseWanted < 0) { + return 0.5 * task.baseWanted * statWeight * territoryMult; + } else { + return 7 * task.baseWanted / (3 * statWeight * territoryMult); + } +} + +GangMember.prototype.calculateMoneyGain = function(gang) { + const task = this.getTask(); + if (task == null || !(task instanceof GangMemberTask) || task.baseMoney === 0) {return 0;} + var statWeight = (task.hackWeight/100) * this.hack + + (task.strWeight/100) * this.str + + (task.defWeight/100) * this.def + + (task.dexWeight/100) * this.dex + + (task.agiWeight/100) * this.agi + + (task.chaWeight/100) * this.cha; + statWeight -= (3.2 * task.difficulty); + if (statWeight <= 0) { return 0; } + const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.money) / 100; + if (isNaN(territoryMult) || territoryMult <= 0) { return 0; } + var respectMult = gang.getWantedPenalty(); + return 5 * task.baseMoney * statWeight * territoryMult * respectMult; +} + +GangMember.prototype.gainExperience = function(numCycles=1) { + const task = this.getTask(); + if (task == null || !(task instanceof GangMemberTask) || task === GangMemberTasks["Unassigned"]) {return;} + const difficultyMult = Math.pow(task.difficulty, 0.9); + const difficultyPerCycles = difficultyMult * numCycles; + const weightDivisor = 1500; + this.hack_exp += (task.hackWeight / weightDivisor) * difficultyPerCycles; + this.str_exp += (task.strWeight / weightDivisor) * difficultyPerCycles; + this.def_exp += (task.defWeight / weightDivisor) * difficultyPerCycles; + this.dex_exp += (task.dexWeight / weightDivisor) * difficultyPerCycles; + this.agi_exp += (task.agiWeight / weightDivisor) * difficultyPerCycles; + this.cha_exp += (task.chaWeight / weightDivisor) * difficultyPerCycles; +} + +GangMember.prototype.recordEarnedRespect = function(numCycles=1, gang) { + this.earnedRespect += (this.calculateRespectGain(gang) * numCycles); +} + +GangMember.prototype.ascend = function() { + const res = this.getAscensionResults(); + const hackAscMult = res.hack; + const strAscMult = res.str; + const defAscMult = res.def; + const dexAscMult = res.dex; + const agiAscMult = res.agi; + const chaAscMult = res.cha; + this.hack_asc_mult += hackAscMult; + this.str_asc_mult += strAscMult; + this.def_asc_mult += defAscMult; + this.dex_asc_mult += dexAscMult; + this.agi_asc_mult += agiAscMult; + this.cha_asc_mult += chaAscMult; + + // Remove upgrades. Then re-calculate multipliers and stats + this.upgrades.length = 0; + this.hack_mult = 1; + this.str_mult = 1; + this.def_mult = 1; + this.dex_mult = 1; + this.agi_mult = 1; + this.cha_mult = 1; + for (let i = 0; i < this.augmentations.length; ++i) { + let aug = GangMemberUpgrades[this.augmentations[i]]; + aug.apply(this); + } + + // Clear exp and recalculate stats + this.hack_exp = 0; + this.str_exp = 0; + this.def_exp = 0; + this.dex_exp = 0; + this.agi_exp = 0; + this.cha_exp = 0; + this.updateSkillLevels(); + + const respectToDeduct = this.earnedRespect; + this.earnedRespect = 0; + return { + respect: respectToDeduct, + hack: hackAscMult, + str: strAscMult, + def: defAscMult, + dex: dexAscMult, + agi: agiAscMult, + cha: chaAscMult, + }; +} + +// Returns the multipliers that would be gained from ascension +GangMember.prototype.getAscensionResults = function() { + // Calculate ascension bonus to stat multipliers. + // This is based on the current number of multipliers from Non-Augmentation upgrades + // + Ascension Bonus = N% of current bonus from Augmentations + let hack = 1; + let str = 1; + let def = 1; + let dex = 1; + let agi = 1; + let cha = 1; + for (let i = 0; i < this.upgrades.length; ++i) { + let upg = GangMemberUpgrades[this.upgrades[i]]; + if (upg.mults.hack != null) { hack *= upg.mults.hack; } + if (upg.mults.str != null) { str *= upg.mults.str; } + if (upg.mults.def != null) { def *= upg.mults.def; } + if (upg.mults.dex != null) { dex *= upg.mults.dex; } + if (upg.mults.agi != null) { agi *= upg.mults.agi; } + if (upg.mults.cha != null) { cha *= upg.mults.cha; } + } + + // Subtract 1 because we're only interested in the actual "bonus" part + return { + hack: (Math.max(0, hack - 1) * AscensionMultiplierRatio), + str: (Math.max(0, str - 1) * AscensionMultiplierRatio), + def: (Math.max(0, def - 1) * AscensionMultiplierRatio), + dex: (Math.max(0, dex - 1) * AscensionMultiplierRatio), + agi: (Math.max(0, agi - 1) * AscensionMultiplierRatio), + cha: (Math.max(0, cha - 1) * AscensionMultiplierRatio), + } +} + +GangMember.prototype.buyUpgrade = function(upg, player, gang) { + if (typeof upg === 'string') { + upg = GangMemberUpgrades[upg]; + } + if (!(upg instanceof GangMemberUpgrade)) { + return false; + } + if (player.money.lt(upg.getCost(gang))) { return false; } + player.loseMoney(upg.getCost(gang)); + if (upg.type === "g") { + this.augmentations.push(upg.name); + } else { + this.upgrades.push(upg.name); + } + upg.apply(this); + if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang) && UIElems.gangMemberUpgradeBoxOpened) { + var initFilterValue = UIElems.gangMemberUpgradeBoxFilter.value.toString(); + gang.createGangMemberUpgradeBox(player, initFilterValue); + } + return true; +} + +GangMember.prototype.toJSON = function() { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("GangMember", this); +} + +GangMember.fromJSON = function(value) { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(GangMember, value.data); +} + +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.GangMember = GangMember; + +//Defines tasks that Gang Members can work on +function GangMemberTask(name="", desc="", isHacking=false, isCombat=false, + params={baseRespect: 0, baseWanted: 0, baseMoney: 0, + hackWeight: 0, strWeight: 0, defWeight: 0, + dexWeight: 0, agiWeight: 0, chaWeight: 0, + difficulty: 0}) { + this.name = name; + this.desc = desc; + + // Flags that describe whether this Task is applicable for Hacking/Combat gangs + this.isHacking = isHacking; + this.isCombat = isCombat; + + // Base gain rates for respect/wanted/money + this.baseRespect = params.baseRespect ? params.baseRespect : 0; + this.baseWanted = params.baseWanted ? params.baseWanted : 0; + this.baseMoney = params.baseMoney ? params.baseMoney : 0; + + // Weighting for the effect that each stat has on the tasks effectiveness. + // Weights must add up to 100 + this.hackWeight = params.hackWeight ? params.hackWeight : 0; + this.strWeight = params.strWeight ? params.strWeight : 0; + this.defWeight = params.defWeight ? params.defWeight : 0; + this.dexWeight = params.dexWeight ? params.dexWeight : 0; + this.agiWeight = params.agiWeight ? params.agiWeight : 0; + this.chaWeight = params.chaWeight ? params.chaWeight : 0; + + if (Math.round(this.hackWeight + this.strWeight + this.defWeight + this.dexWeight + this.agiWeight + this.chaWeight) != 100) { + console.error(`GangMemberTask ${this.name} weights do not add up to 100`); + } + + // 1 - 100 + this.difficulty = params.difficulty ? params.difficulty : 1; + + // Territory Factors. Exponential factors that dictate how territory affects gains + // Formula: Territory Mutiplier = (Territory * 100) ^ factor / 100 + // So factor should be > 1 if something should scale exponentially with territory + // and should be < 1 if it should have diminshing returns + this.territory = params.territory ? params.territory : {money: 1, respect: 1, wanted: 1}; +} + +GangMemberTask.prototype.toJSON = function() { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("GangMemberTask", this); +} + +GangMemberTask.fromJSON = function(value) { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(GangMemberTask, value.data); +} + +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.GangMemberTask = GangMemberTask; + +const GangMemberTasks = {}; + +function addGangMemberTask(name, desc, isHacking, isCombat, params) { + GangMemberTasks[name] = new GangMemberTask(name, desc, isHacking, isCombat, params); +} + +_data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__["gangMemberTasksMetadata"].forEach((e) => { + addGangMemberTask(e.name, e.desc, e.isHacking, e.isCombat, e.params); +}); + +function GangMemberUpgrade(name="", cost=0, type="w", mults={}) { + this.name = name; + this.cost = cost; + this.type = type; //w = weapon, a = armor, v = vehicle, r = rootkit, g = Aug + this.mults = mults; + + this.createDescription(); +} + +GangMemberUpgrade.prototype.getCost = function(gang) { + const discount = gang.getDiscount(); + return this.cost / discount; +} + +GangMemberUpgrade.prototype.createDescription = function() { + const lines = ["Increases:"]; + if (this.mults.str != null) { + lines.push(`* Strength by ${Math.round((this.mults.str - 1) * 100)}%`); + } + if (this.mults.def != null) { + lines.push(`* Defense by ${Math.round((this.mults.def - 1) * 100)}%`); + } + if (this.mults.dex != null) { + lines.push(`* Dexterity by ${Math.round((this.mults.dex - 1) * 100)}%`); + } + if (this.mults.agi != null) { + lines.push(`* Agility by ${Math.round((this.mults.agi - 1) * 100)}%`); + } + if (this.mults.cha != null) { + lines.push(`* Charisma by ${Math.round((this.mults.cha - 1) * 100)}%`); + } + if (this.mults.hack != null) { + lines.push(`* Hacking by ${Math.round((this.mults.hack - 1) * 100)}%`); + } + this.desc = lines.join("
"); +} + +//Passes in a GangMember object +GangMemberUpgrade.prototype.apply = function(member) { + if (this.mults.str != null) { member.str_mult *= this.mults.str; } + if (this.mults.def != null) { member.def_mult *= this.mults.def; } + if (this.mults.dex != null) { member.dex_mult *= this.mults.dex; } + if (this.mults.agi != null) { member.agi_mult *= this.mults.agi; } + if (this.mults.cha != null) { member.cha_mult *= this.mults.cha; } + if (this.mults.hack != null) { member.hack_mult *= this.mults.hack; } + return; +} + +GangMemberUpgrade.prototype.toJSON = function() { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("GangMemberUpgrade", this); +} + +GangMemberUpgrade.fromJSON = function(value) { + return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(GangMemberUpgrade, value.data); +} + +_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.GangMemberUpgrade = GangMemberUpgrade; + +// Initialize Gang Member Upgrades +const GangMemberUpgrades = {} + +function addGangMemberUpgrade(name, cost, type, mults) { + GangMemberUpgrades[name] = new GangMemberUpgrade(name, cost, type, mults); +} + +_data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__["gangMemberUpgradesMetadata"].forEach((e) => { + addGangMemberUpgrade(e.name, e.cost, e.upgType, e.mults); +}); + +// Create a pop-up box that lets player purchase upgrades +Gang.prototype.createGangMemberUpgradeBox = function(player, initialFilter="") { + const boxId = "gang-member-upgrade-popup-box"; + if (UIElems.gangMemberUpgradeBoxOpened) { + //Already opened, refreshing + if (UIElems.gangMemberUpgradeBoxElements == null || UIElems.gangMemberUpgradeBox == null || UIElems.gangMemberUpgradeBoxContent == null) { + console.error("Refreshing Gang member upgrade box throws error because required elements are null"); + return; + } + + for (var i = 2; i < UIElems.gangMemberUpgradeBoxElements.length; ++i) { + Object(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__["removeElement"])(UIElems.gangMemberUpgradeBoxElements[i]); + } + UIElems.gangMemberUpgradeBoxElements = [UIElems.gangMemberUpgradeBoxFilter, UIElems.gangMemberUpgradeBoxDiscount]; + + var filter = UIElems.gangMemberUpgradeBoxFilter.value.toString(); + for (var i = 0; i < this.members.length; ++i) { + if (this.members[i].name.indexOf(filter) > -1 || this.members[i].task.indexOf(filter) > -1) { + var newPanel = this.members[i].createGangMemberUpgradePanel(this, player); + UIElems.gangMemberUpgradeBoxContent.appendChild(newPanel); + UIElems.gangMemberUpgradeBoxElements.push(newPanel); + } + } + } else { + //New popup + UIElems.gangMemberUpgradeBoxFilter = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + type:"text", placeholder:"Filter gang members", + value:initialFilter, + onkeyup:()=>{ + var filterValue = UIElems.gangMemberUpgradeBoxFilter.value.toString(); + this.createGangMemberUpgradeBox(player, filterValue); + } + }); + + UIElems.gangMemberUpgradeBoxDiscount = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { + innerText: "Discount: -" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(1 - 1 / this.getDiscount(), "0.00%"), + marginLeft: "6px", + tooltip: "You get a discount on equipment and upgrades based on your gang's " + + "respect and power. More respect and power leads to more discounts." + }); + + UIElems.gangMemberUpgradeBoxElements = [UIElems.gangMemberUpgradeBoxFilter, UIElems.gangMemberUpgradeBoxDiscount]; + + var filter = UIElems.gangMemberUpgradeBoxFilter.value.toString(); + for (var i = 0; i < this.members.length; ++i) { + if (this.members[i].name.indexOf(filter) > -1 || this.members[i].task.indexOf(filter) > -1) { + UIElems.gangMemberUpgradeBoxElements.push(this.members[i].createGangMemberUpgradePanel(this, player)); + } + } + + UIElems.gangMemberUpgradeBox = Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(boxId, UIElems.gangMemberUpgradeBoxElements); + UIElems.gangMemberUpgradeBoxContent = document.getElementById(boxId + "-content"); + UIElems.gangMemberUpgradeBoxOpened = true; + } +} + +//Create upgrade panels for each individual Gang Member +GangMember.prototype.createGangMemberUpgradePanel = function(gangObj, player) { + var container = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + border:"1px solid white", + }); + + var header = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h1", { + innerText: this.name + " (" + this.task + ")" + }); + container.appendChild(header); + + var text = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { + fontSize:"14px", display: "inline-block", width:"20%", + innerText: + "Hack: " + this.hack + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.hack_mult * this.hack_asc_mult, 2) + ")\n" + + "Str: " + this.str + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.str_mult * this.str_asc_mult, 2) + ")\n" + + "Def: " + this.def + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.def_mult * this.def_asc_mult, 2) + ")\n" + + "Dex: " + this.dex + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.dex_mult * this.dex_asc_mult, 2) + ")\n" + + "Agi: " + this.agi + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.agi_mult * this.agi_asc_mult, 2) + ")\n" + + "Cha: " + this.cha + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.cha_mult * this.cha_asc_mult, 2) + ")\n", + }); + + //Already purchased upgrades + const ownedUpgradesElements = []; + function pushOwnedUpgrade(upgName) { + const upg = GangMemberUpgrades[upgName]; + if (upg == null) { + console.error(`Could not find GangMemberUpgrade object for name ${upgName}`); + return; + } + ownedUpgradesElements.push(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class: "gang-owned-upgrade", + innerText: upgName, + tooltip: upg.desc, + })); + } + for (const upgName of this.upgrades) { pushOwnedUpgrade(upgName); } + for (const upgName of this.augmentations) { pushOwnedUpgrade(upgName); } + + var ownedUpgrades = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class: "gang-owned-upgrades-div", + innerText: "Purchased Upgrades:", + }); + for (const elem of ownedUpgradesElements) { ownedUpgrades.appendChild(elem); } + container.appendChild(text); + container.appendChild(ownedUpgrades); + container.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br", {})); + + //Upgrade buttons. Only show upgrades that can be afforded + const weaponUpgrades = []; + const armorUpgrades = []; + const vehicleUpgrades = []; + const rootkitUpgrades = []; + const augUpgrades = []; + + for (let upgName in GangMemberUpgrades) { + if (GangMemberUpgrades.hasOwnProperty(upgName)) { + let upg = GangMemberUpgrades[upgName]; + if (player.money.lt(upg.getCost(gangObj))) { continue; } + if (this.upgrades.includes(upgName) || this.augmentations.includes(upgName)) { continue; } + switch (upg.type) { + case "w": + weaponUpgrades.push(upg); + break; + case "a": + armorUpgrades.push(upg); + break; + case "v": + vehicleUpgrades.push(upg); + break; + case "r": + rootkitUpgrades.push(upg); + break; + case "g": + augUpgrades.push(upg); + break; + default: + console.error(`ERROR: Invalid Gang Member Upgrade Type: ${upg.type}`); + } + } + } + + // Create separate columns for each upgrade type + const weaponDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); + const armorDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); + const vehicleDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); + const rootkitDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); + const augDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); + + // Add a title/labe for each column + weaponDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Weapons"})); + armorDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Armor"})); + vehicleDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Vehicles"})); + rootkitDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Rootkits"})); + augDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Augmentations"})); + + // Add buttons to purchase each upgrade + const upgrades = [weaponUpgrades, armorUpgrades, vehicleUpgrades, rootkitUpgrades, augUpgrades]; + const divs = [weaponDiv, armorDiv, vehicleDiv, rootkitDiv, augDiv]; + for (let i = 0; i < upgrades.length; ++i) { + let upgradeArray = upgrades[i]; + let div = divs[i]; + for (let j = 0; j < upgradeArray.length; ++j) { + let upg = upgradeArray[j]; + (function (upg, div, memberObj, i, gang) { + let createElementParams = { + innerText: upg.name + " - " + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(upg.getCost(gang), "$0.000a"), + class: "a-link-button", margin:"2px", padding:"2px", display:"block", + fontSize:"11px", + clickListener:()=>{ + memberObj.buyUpgrade(upg, player, gangObj); + return false; + } + } + + // For the last two divs, tooltip should be on the left + if (i >= 3) { + createElementParams.tooltipleft = upg.desc; + } else { + createElementParams.tooltip = upg.desc; + } + div.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", createElementParams)); + })(upg, div, this, i, gangObj); + } + } + + container.appendChild(weaponDiv); + container.appendChild(armorDiv); + container.appendChild(vehicleDiv); + container.appendChild(rootkitDiv); + container.appendChild(augDiv); + return container; +} + +// Gang UI Dom Elements +const UIElems = { + // Main elems + gangContentCreated: false, + gangContainer: null, + managementButton: null, + territoryButton: null, + + // Subpages + gangManagementSubpage: null, + gangTerritorySubpage: null, + + // Gang Management Subpage Elements + gangDesc: null, + gangInfo: null, + gangRecruitMemberButton: null, + gangRecruitRequirementText: null, + gangExpandAllButton: null, + gangCollapseAllButton: null, + gangMemberFilter: null, + gangManageEquipmentButton: null, + gangMemberList: null, + gangMemberPanels: {}, + + // Gang Equipment Upgrade Elements + gangMemberUpgradeBoxOpened: false, + gangMemberUpgradeBox: null, + gangMemberUpgradeBoxContent: null, + gangMemberUpgradeBoxFilter: null, + gangMemberUpgradeBoxDiscount: null, + gangMemberUpgradeBoxElements: null, + + // Gang Territory Elements + gangTerritoryDescText: null, + gangTerritoryWarfareCheckbox: null, + gangTerritoryWarfareCheckboxLabel: null, + gangTerritoryWarfareClashChance: null, + gangTerritoryDeathNotifyCheckbox: null, + gangTerritoryDeathNotifyCheckboxLabel: null, + gangTerritoryInfoText: null, +} + +Gang.prototype.displayGangContent = function(player) { + if (!UIElems.gangContentCreated || UIElems.gangContainer == null) { + UIElems.gangContentCreated = true; + + //Create gang container + UIElems.gangContainer = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + id:"gang-container", class:"generic-menupage-container", + }); + + //Get variables + var facName = this.facName, + members = this.members, + wanted = this.wanted, + respect = this.respect; + + //Back button + UIElems.gangContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + class:"a-link-button", display:"inline-block", innerText:"Back", + clickListener:()=>{ + _engine__WEBPACK_IMPORTED_MODULE_2__["Engine"].loadFactionContent(); + Object(_Faction__WEBPACK_IMPORTED_MODULE_3__[/* displayFactionContent */ "c"])(facName); + return false; + } + })); + + //Buttons to switch between panels + UIElems.managementButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + id:"gang-management-subpage-button", class:"a-link-button-inactive", + display:"inline-block", innerHTML: "Gang Management (Alt+1)", + clickListener:()=>{ + UIElems.gangManagementSubpage.style.display = "block"; + UIElems.gangTerritorySubpage.style.display = "none"; + UIElems.managementButton.classList.toggle("a-link-button-inactive"); + UIElems.managementButton.classList.toggle("a-link-button"); + UIElems.territoryButton.classList.toggle("a-link-button-inactive"); + UIElems.territoryButton.classList.toggle("a-link-button"); + this.updateGangContent(); + return false; + } + }) + UIElems.territoryButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + id:"gang-territory-subpage-button", class:"a-link-button", + display:"inline-block", innerHTML:"Gang Territory (Alt+2)", + clickListener:() => { + UIElems.gangManagementSubpage.style.display = "none"; + UIElems.gangTerritorySubpage.style.display = "block"; + UIElems.managementButton.classList.toggle("a-link-button-inactive"); + UIElems.managementButton.classList.toggle("a-link-button"); + UIElems.territoryButton.classList.toggle("a-link-button-inactive"); + UIElems.territoryButton.classList.toggle("a-link-button"); + this.updateGangContent(); + return false; + } + }); + UIElems.gangContainer.appendChild(UIElems.managementButton); + UIElems.gangContainer.appendChild(UIElems.territoryButton); + + //Subpage for managing gang members + UIElems.gangManagementSubpage = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + display:"block", id:"gang-management-subpage", + }); + + var lowerWantedTask = ""; + if (this.isHackingGang) { + lowerWantedTask = "Ethical Hacking"; + } else { + lowerWantedTask = "Vigilante Justice"; + } + UIElems.gangDesc = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {width:"70%", + innerHTML: + "This page is used to manage your gang members and get an overview of your " + + "gang's stats.

" + + "If a gang member is not earning much money or respect, the task that you " + + "have assigned to that member might be too difficult. Consider training that " + + "member's stats or choosing an easier task. The tasks closer to the " + + "top of the dropdown list are generally easier. Alternatively, the gang member's " + + "low production might be due to the fact that your wanted level is too high. " + + "Consider assigning a few members to the '" + lowerWantedTask + "' " + + "task to lower your wanted level.

" + + "Installing Augmentations does NOT reset your progress with your Gang. " + + "Furthermore, after installing Augmentations, you will " + + "automatically be a member of whatever Faction you created your gang with.

" + + "You can also manage your gang programmatically through Netscript using the Gang API" + }); + UIElems.gangManagementSubpage.appendChild(UIElems.gangDesc); + + UIElems.gangInfo = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {id:"gang-info", width:"70%"}); + UIElems.gangManagementSubpage.appendChild(UIElems.gangInfo); + + UIElems.gangRecruitMemberButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + id: "gang-management-recruit-member-btn", class:"a-link-button-inactive", + innerHTML:"Recruit Gang Member", display:"inline-block", margin:"10px", + clickListener:()=>{ + const popupId = "recruit-gang-member-popup"; + + let yesBtn; + const txt = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { + innerText:"Please enter a name for your new Gang member:", + }); + const br = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"); + const nameInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + onkeyup: (e) => { + if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__["KEY"].ENTER) { yesBtn.click(); } + }, + placeholder: "Name must be unique", + type: "text", + }); + yesBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + class: "std-button", + clickListener: () => { + let name = nameInput.value; + if (name === "") { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("You must enter a name for your Gang member!"); + return false; + } + if (!this.canRecruitMember()) { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("You cannot recruit another Gang member!"); + return false; + } + + // At this point, the only way this can fail is if you already + // have a gang member with the same name + if (!this.recruitMember(name)) { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("You already have a gang member with this name!"); + return false; + } + + Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); + return false; + }, + innerText: "Recruit Gang Member", + }); + const noBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + class: "std-button", + clickListener: () => { + Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); + return false; + }, + innerText: "Cancel", + }); + Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, [txt, br, nameInput, yesBtn, noBtn]); + } + }); + UIElems.gangManagementSubpage.appendChild(UIElems.gangRecruitMemberButton); + + // Text for how much reputation is required for recruiting next memberList + UIElems.gangRecruitRequirementText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { + color:"red", + id: "gang-recruit-requirement-text", + margin: "10px", + }); + UIElems.gangManagementSubpage.appendChild(UIElems.gangRecruitRequirementText); + + //Gang Member List management buttons (Expand/Collapse All, select a single member) + UIElems.gangManagementSubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br", {})); + UIElems.gangExpandAllButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + class:"a-link-button", display:"inline-block", + innerHTML:"Expand All", + clickListener:()=>{ + var allHeaders = UIElems.gangManagementSubpage.getElementsByClassName("accordion-header"); + for (var i = 0; i < allHeaders.length; ++i) { + var hdr = allHeaders[i]; + if (!hdr.classList.contains("active")) { + hdr.click(); + } + } + return false; + } + }); + UIElems.gangCollapseAllButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + class:"a-link-button", display:"inline-block", + innerHTML:"Collapse All", + clickListener:()=>{ + var allHeaders = UIElems.gangManagementSubpage.getElementsByClassName("accordion-header"); + for (var i = 0; i < allHeaders.length; ++i) { + var hdr = allHeaders[i]; + if (hdr.classList.contains("active")) { + hdr.click(); + } + } + return false; + } + }); + UIElems.gangMemberFilter = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + type:"text", placeholder:"Filter gang members", margin:"5px", padding:"5px", + onkeyup:()=>{ + this.displayGangMemberList(); + } + }); + UIElems.gangManageEquipmentButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { + class:"a-link-button", display:"inline-block", + innerHTML:"Manage Equipment", + clickListener: () => { + this.createGangMemberUpgradeBox(player); + } + }); + UIElems.gangManagementSubpage.appendChild(UIElems.gangExpandAllButton); + UIElems.gangManagementSubpage.appendChild(UIElems.gangCollapseAllButton); + UIElems.gangManagementSubpage.appendChild(UIElems.gangMemberFilter); + UIElems.gangManagementSubpage.appendChild(UIElems.gangManageEquipmentButton); + + //Gang Member list + UIElems.gangMemberList = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("ul", {id:"gang-member-list"}); + this.displayGangMemberList(); + UIElems.gangManagementSubpage.appendChild(UIElems.gangMemberList); + + //Subpage for seeing gang territory information + UIElems.gangTerritorySubpage = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + id:"gang-territory-subpage", display:"none" + }); + + //Info text for territory page + UIElems.gangTerritoryDescText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { + width:"70%", + innerHTML: + "This page shows how much territory your Gang controls. This statistic is listed as a percentage, " + + "which represents how much of the total territory you control.

" + + "Every ~20 seconds, your gang has a chance to 'clash' with other gangs. Your chance " + + "to win a clash depends on your gang's power, which is listed in the display below. " + + "Your gang's power slowly accumulates over time. The accumulation rate is determined by the stats " + + "of all Gang members you have assigned to the 'Territory Warfare' task. Gang members that are not " + + "assigned to this task do not contribute to your gang's power. Your gang also loses a small amount " + + "of power whenever you lose a clash

" + + "NOTE: Gang members assigned to 'Territory Warfare' can be killed during clashes. This can happen regardless of whether you win " + + "or lose the clash. A gang member being killed results in both respect and power loss for your gang.

" + + "The amount of territory you have affects all aspects of your Gang members' production, including " + + "money, respect, and wanted level. It is very beneficial to have high territory control.

" + }); + UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryDescText); + + // Checkbox for Engaging in Territory Warfare + UIElems.gangTerritoryWarfareCheckbox = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + display: "inline-block", + id: "gang-management-territory-warfare-checkbox", + changeListener: () => { + this.territoryWarfareEngaged = UIElems.gangTerritoryWarfareCheckbox.checked; + }, + margin: "2px", + type: "checkbox", + }); + UIElems.gangTerritoryWarfareCheckbox.checked = this.territoryWarfareEngaged; + + UIElems.gangTerritoryWarfareCheckboxLabel = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("label", { + color: "white", + display: "inline-block", + for: "gang-management-territory-warfare-checkbox", + innerText: "Engage in Territory Warfare", + tooltip: "Engaging in Territory Warfare sets your clash chance to 100%. " + + "Disengaging will cause your clash chance to gradually decrease until " + + "it reaches 0%", + }); + UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryWarfareCheckbox); + UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryWarfareCheckboxLabel); + + // Territory Clash chance + UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + UIElems.gangTerritoryWarfareClashChance = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display: "inline-block"}); + UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryWarfareClashChance); + + UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class: "help-tip", + display: "inline-block", + innerText: "?", + clickListener: () => { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("This percentage represents the chance you have of 'clashing' with " + + "with another gang. If you do not wish to gain/lose territory, " + + "then keep this percentage at 0% by not engaging in territory " + + "warfare.") + }, + })); + + // Checkbox for whether player wants to be notified of gang member death + UIElems.gangTerritoryDeathNotifyCheckbox = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + display: "inline-block", + id: "gang-management-notify-member-death-checkbox", + changeListener: () => { + this.notifyMemberDeath = UIElems.gangTerritoryDeathNotifyCheckbox.checked; + }, + margin: "2px", + type: "checkbox", + }); + UIElems.gangTerritoryDeathNotifyCheckbox.checked = this.notifyMemberDeath; + + UIElems.gangTerritoryDeathNotifyCheckboxLabel = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("label", { + color: "white", + display: "inline-block", + for: "gang-management-notify-member-death-checkbox", + innerText: "Notify about Gang Member Deaths", + tooltip: "If this is enabled, then you will receive a pop-up notifying you " + + "whenever one of your Gang Members dies in a territory clash.", + }); + UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryDeathNotifyCheckbox); + UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryDeathNotifyCheckboxLabel); + + // Territory info (percentages of territory owned for each gang) + UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + var territoryBorder = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("fieldset", { + display:"block", + margin: "6px", + width:"50%", + }); + + UIElems.gangTerritoryInfoText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p"); + + territoryBorder.appendChild(UIElems.gangTerritoryInfoText); + UIElems.gangTerritorySubpage.appendChild(territoryBorder); + + UIElems.gangContainer.appendChild(UIElems.gangTerritorySubpage); + UIElems.gangContainer.appendChild(UIElems.gangManagementSubpage); + document.getElementById("entire-game-container").appendChild(UIElems.gangContainer); + } + UIElems.gangContainer.style.display = "block"; + this.updateGangContent(); +} + +Gang.prototype.displayGangMemberList = function() { + Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__["removeChildrenFromElement"])(UIElems.gangMemberList); + UIElems.gangMemberPanels = {}; + const members = this.members; + const filter = UIElems.gangMemberFilter.value.toString(); + for (var i = 0; i < members.length; ++i) { + if (members[i].name.indexOf(filter) > -1 || members[i].task.indexOf(filter) > -1) { + this.createGangMemberDisplayElement(members[i]); + } + } +} + +Gang.prototype.updateGangContent = function() { + if (!UIElems.gangContentCreated) { return; } + + if (UIElems.gangMemberUpgradeBoxOpened) { + UIElems.gangMemberUpgradeBoxDiscount.childNodes[0].nodeValue = + "Discount: -" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(1 - 1 / this.getDiscount(), "0.00%"); + } + + if (UIElems.gangTerritorySubpage.style.display === "block") { + // Territory Warfare Clash Chance + UIElems.gangTerritoryWarfareClashChance.innerText = + `Territory Clash Chance: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(this.territoryClashChance, '0.000%')}`; + + // Engaged in Territory Warfare checkbox + UIElems.gangTerritoryWarfareCheckbox.checked = this.territoryWarfareEngaged; + + // Update territory information + UIElems.gangTerritoryInfoText.innerHTML = ""; + const playerPower = AllGangs[this.facName].power; + for (const gangname in AllGangs) { + if (AllGangs.hasOwnProperty(gangname)) { + const gangTerritoryInfo = AllGangs[gangname]; + let territory = gangTerritoryInfo.territory * 100; + + //Fix some rounding issues graphically + let displayNumber; + if (territory <= 0) { + displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(0, 2); + } else if (territory >= 100) { + displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(100, 2); + } else { + displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(territory, 2); + } + + if (gangname === this.facName) { + let newHTML = `${gangname}
Power: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(gangTerritoryInfo.power, 6)}
`; + newHTML += `Territory: ${displayNumber}%

`; + UIElems.gangTerritoryInfoText.innerHTML += newHTML; + } else { + const clashVictoryChance = playerPower / (gangTerritoryInfo.power + playerPower); + let newHTML = `${gangname}
Power: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(gangTerritoryInfo.power, 6)}
`; + newHTML += `Territory: ${displayNumber}%
`; + newHTML += `Chance to win clash with this gang: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(clashVictoryChance, "0.000%")}

`; + UIElems.gangTerritoryInfoText.innerHTML += newHTML; + } + } + } + } else { + //Update information for overall gang + if (UIElems.gangInfo instanceof Element) { + var faction = _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Factions */ "b"][this.facName]; + var rep; + if (!(faction instanceof _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Faction */ "a"])) { + rep = "ERROR"; + } else { + rep = faction.playerReputation; + } + Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__["removeChildrenFromElement"])(UIElems.gangInfo); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Respect + display: "inline-block", + innerText: "Respect: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.respect, 6) + + " (" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*this.respectGainRate, 6) + " / sec)", + tooltip: "Represents the amount of respect your gang has from other gangs and criminal " + + "organizations. Your respect affects the amount of money " + + "your gang members will earn, and also determines how much " + + "reputation you are earning with your gang's corresponding Faction." + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Wanted level + display: "inline-block", + innerText: "Wanted Level: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.wanted, 6) + + " (" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*this.wantedGainRate, 6) + " / sec)", + tooltip: "Represents how much the gang is wanted by law enforcement. The higher " + + "your gang's wanted level, the harder it will be for your gang members " + + "to make money and earn respect. Note that the minimum wanted level is 1." + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + + var wantedPenalty = this.getWantedPenalty(); + wantedPenalty = (1 - wantedPenalty) * 100; + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Wanted Level multiplier + display: "inline-block", + innerText: `Wanted Level Penalty: -${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(wantedPenalty, 2)}%`, + tooltip: "Penalty for respect and money gain rates due to Wanted Level" + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Money gain rate + display: "inline-block", + innerText: `Money gain rate: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(5 * this.moneyGainRate, "$0.000a")} / sec`, + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + + //Fix some rounding issues graphically + var territoryMult = AllGangs[this.facName].territory * 100; + let displayNumber; + if (territoryMult <= 0) { + displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(0, 2); + } else if (territoryMult >= 100) { + displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(100, 2); + } else { + displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(territoryMult, 2); + } + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Territory multiplier + display: "inline-block", + innerText: `Territory: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(displayNumber, 3)}%`, + tooltip: "The percentage of total territory your Gang controls" + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Faction reputation + display:"inline-block", + innerText:"Faction reputation: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(rep, 3) + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + + const CyclesPerSecond = 1000 / _engine__WEBPACK_IMPORTED_MODULE_2__["Engine"]._idleSpeed; + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Stored Cycles + innerText: `Bonus time(s): ${this.storedCycles / CyclesPerSecond}`, + display: "inline-block", + tooltip: "You gain bonus time while offline or when the game is inactive (e.g. when the tab is throttled by the browser). " + + "Bonus time makes the Gang mechanic progress faster, up to 5x the normal speed", + })); + UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + } else { + console.error("gang-info DOM element DNE"); + } + + //Toggle the 'Recruit member button' if valid + const numMembers = this.members.length; + const respectCost = this.getRespectNeededToRecruitMember(); + + const btn = UIElems.gangRecruitMemberButton; + if (numMembers >= MaximumGangMembers) { + btn.className = "a-link-button-inactive"; + UIElems.gangRecruitRequirementText.style.display = "inline-block"; + UIElems.gangRecruitRequirementText.innerHTML = "You have reached the maximum amount of gang members"; + } else if (this.canRecruitMember()) { + btn.className = "a-link-button"; + UIElems.gangRecruitRequirementText.style.display = "none"; + } else { + btn.className = "a-link-button-inactive"; + UIElems.gangRecruitRequirementText.style.display = "inline-block"; + UIElems.gangRecruitRequirementText.innerHTML = `${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(respectCost, 2)} respect needed to recruit next member`; + } + + //Update information for each gang member + for (let i = 0; i < this.members.length; ++i) { + this.updateGangMemberDisplayElement(this.members[i]); + } + } +} + +//Takes in a GangMember object +Gang.prototype.createGangMemberDisplayElement = function(memberObj) { + if (!UIElems.gangContentCreated) { return; } + const name = memberObj.name; + + // Clear/Update the UIElems map to keep track of this gang member's panel + UIElems.gangMemberPanels[name] = {}; + + // Create the accordion + var accordion = Object(_utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8__["createAccordionElement"])({ + id: name + "gang-member", + hdrText: name, + }); + const li = accordion[0]; + const hdr = accordion[1]; + const gangMemberDiv = accordion[2]; + + UIElems.gangMemberPanels[name]["panel"] = gangMemberDiv; + + // Gang member content divided into 3 panels: + // Panel 1 - Shows member's stats & Ascension stuff + const statsDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class: "gang-member-info-div", + id: name + "gang-member-stats", + tooltipsmall: [`Hk: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult * memberObj.hack_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_asc_mult, "0,0.00")} Asc)`, + `St: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult * memberObj.str_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_asc_mult, "0,0.00")} Asc)`, + `Df: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult * memberObj.def_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_asc_mult, "0,0.00")} Asc)`, + `Dx: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult * memberObj.dex_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_asc_mult, "0,0.00")} Asc)`, + `Ag: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult * memberObj.agi_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_asc_mult, "0,0.00")} Asc)`, + `Ch: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult * memberObj.cha_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_asc_mult, "0,0.00")} Asc)`].join("
"), + }); + UIElems.gangMemberPanels[name]["statsDiv"] = statsDiv; + const statsP = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { + display: "inline", + id: name + "gang-member-stats-text", + }); + const brElement = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"); + const ascendButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + class: "accordion-button", + innerText: "Ascend", + clickListener: () => { + const popupId = `gang-management-ascend-member ${memberObj.name}`; + const ascendBenefits = memberObj.getAscensionResults(); + const txt = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { + innerText: ["Are you sure you want to ascend this member? (S)he will lose all of", + "his non-Augmentation upgrades and his/her stats will reset back to 1.", + "", + `Furthermore, your gang will lose ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.earnedRespect, "0.000000")} respect`, + "", + "In return, (s)he will gain the following permanent boost to stat multipliers:\n", + `Hacking: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.hack, "0.00%")}`, + `Strength: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.str, "0.00%")}`, + `Defense: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.def, "0.00%")}`, + `Dexterity: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.dex, "0.00%")}`, + `Agility: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.agi, "0.00%")}`, + `Charisma: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.cha, "0.00%")}`].join("\n"), + }); + const confirmBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + class: "std-button", + clickListener: () => { + this.ascendMember(memberObj); + this.updateGangMemberDisplayElement(memberObj); + Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); + return false; + }, + innerText: "Ascend", + }); + const cancelBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + class: "std-button", + clickListener: () => { + Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); + return false; + }, + innerText: "Cancel", + }); + Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, [txt, confirmBtn, cancelBtn]); + } + }); + const ascendHelpTip = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class: "help-tip", + clickListener: () => { + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])(["Ascending a Gang Member resets the member's progress and stats in exchange", + "for a permanent boost to their stat multipliers.", + "

The additional stat multiplier that the Gang Member gains upon ascension", + "is based on the amount of multipliers the member has from non-Augmentation Equipment.", + "

Upon ascension, the member will lose all of its non-Augmentation Equipment and your", + "gang will lose respect equal to the total respect earned by the member."].join(" ")); + }, + innerText: "?", + marginTop: "5px", + }); + + statsDiv.appendChild(statsP); + statsDiv.appendChild(brElement); + statsDiv.appendChild(ascendButton); + statsDiv.appendChild(ascendHelpTip); + + // Panel 2 - Task Selection & Info + const taskDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class:"gang-member-info-div", + id: name + "gang-member-task", + }); + const taskSelector = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("select", { + id: name + "gang-member-task-selector", + }); + + // Get an array of the name of all tasks that are applicable for this Gang + let tasks = this.getAllTaskNames(); + tasks.unshift("---"); + + // Create selector for Gang member task + for (var i = 0; i < tasks.length; ++i) { + var option = document.createElement("option"); + option.text = tasks[i]; + taskSelector.add(option); + } + taskSelector.addEventListener("change", () => { + var task = taskSelector.options[taskSelector.selectedIndex].text; + memberObj.assignToTask(task); + this.setGangMemberTaskDescription(memberObj, task); + this.updateGangContent(); + }); + + // Set initial task in selector + if (GangMemberTasks.hasOwnProperty(memberObj.task)) { + var taskName = memberObj.task; + var taskIndex = 0; + for (let i = 0; i < tasks.length; ++i) { + if (taskName === tasks[i]) { + taskIndex = i; + break; + } + } + taskSelector.selectedIndex = taskIndex; + } + + var gainInfo = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {id:name + "gang-member-gain-info"}); + taskDiv.appendChild(taskSelector); + taskDiv.appendChild(gainInfo); + + //Panel for Description of task + var taskDescDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + class:"gang-member-info-div", + id: name + "gang-member-task-desc", + }); + + var taskDescP = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { + display:"inline", + id: name + "gang-member-task-description", + }); + taskDescDiv.appendChild(taskDescP); + + gangMemberDiv.appendChild(statsDiv); + gangMemberDiv.appendChild(taskDiv); + gangMemberDiv.appendChild(taskDescDiv); + + UIElems.gangMemberList.appendChild(li); + this.setGangMemberTaskDescription(memberObj, taskName); //Initialize description, TODO doesnt work rn + this.updateGangMemberDisplayElement(memberObj); +} + +Gang.prototype.updateGangMemberDisplayElement = function(memberObj) { + if (!UIElems.gangContentCreated) { return; } + var name = memberObj.name; + + // Update stats + exp + var stats = document.getElementById(name + "gang-member-stats-text"); + if (stats) { + stats.innerText = + [`Hacking: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.hack, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_exp, '(0.00a)')} exp)`, + `Strength: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.str, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_exp, '(0.00a)')} exp)`, + `Defense: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.def, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_exp, '(0.00a)')} exp)`, + `Dexterity: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.dex, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_exp, '(0.00a)')} exp)`, + `Agility: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.agi, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_exp, '(0.00a)')} exp)`, + `Charisma: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.cha, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_exp, '(0.00a)')} exp)`].join("\n"); + } + + // Update tooltip for stat multipliers + const panel = UIElems.gangMemberPanels[name]; + if (panel) { + const statsDiv = panel["statsDiv"]; + if (statsDiv) { + statsDiv.firstChild.innerHTML = + [`Hk: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult * memberObj.hack_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_asc_mult, "0,0.00")} Asc)`, + `St: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult * memberObj.str_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_asc_mult, "0,0.00")} Asc)`, + `Df: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult * memberObj.def_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_asc_mult, "0,0.00")} Asc)`, + `Dx: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult * memberObj.dex_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_asc_mult, "0,0.00")} Asc)`, + `Ag: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult * memberObj.agi_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_asc_mult, "0,0.00")} Asc)`, + `Ch: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult * memberObj.cha_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_asc_mult, "0,0.00")} Asc)`].join("
"); + } + } + + // Update info about gang member's earnings/gains + var gainInfo = document.getElementById(name + "gang-member-gain-info"); + if (gainInfo) { + gainInfo.innerHTML = + [`Money: $ ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*memberObj.calculateMoneyGain(this), 2)} / sec`, + `Respect: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*memberObj.calculateRespectGain(this), 6)} / sec`, + `Wanted Level: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*memberObj.calculateWantedLevelGain(this), 6)} / sec`, + `Total Respect Earned: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.earnedRespect, 6)}`].join("
"); + } +} + +Gang.prototype.setGangMemberTaskDescription = function(memberObj, taskName) { + const name = memberObj.name; + const taskDesc = document.getElementById(name + "gang-member-task-description"); + if (taskDesc) { + var task = GangMemberTasks[taskName]; + if (task == null) { task = GangMemberTasks["Unassigned"]; } + var desc = task.desc; + taskDesc.innerHTML = desc; + } +} + +Gang.prototype.clearUI = function() { + if (UIElems.gangContainer instanceof Element) { Object(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__["removeElement"])(UIElems.gangContainer); } + + for (const prop in UIElems) { + UIElems[prop] = null; + } + + UIElems.gangContentCreated = false; + UIElems.gangMemberUpgradeBoxOpened = false; + UIElems.gangMemberPanels = {}; +} + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) + +/***/ }), +/* 48 */ /*!*************************!*\ !*** ./src/Terminal.js ***! \*************************/ @@ -29199,48 +31361,48 @@ function calculateWeakenTime(server, hack, int) { "use strict"; /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return postNetburnerText; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Terminal; }); -/* harmony import */ var _Alias__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Alias */ 41); -/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContracts */ 38); +/* harmony import */ var _Alias__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Alias */ 42); +/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContracts */ 40); /* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_CodingContracts__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CreateProgram */ 22); -/* harmony import */ var _DarkWeb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DarkWeb */ 75); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CreateProgram */ 23); +/* harmony import */ var _DarkWeb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DarkWeb */ 74); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./engine */ 8); -/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Fconf */ 42); -/* harmony import */ var _Hacking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Hacking */ 45); +/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Fconf */ 43); +/* harmony import */ var _Hacking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Hacking */ 46); /* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./HelpText */ 94); /* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_HelpText__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var _InteractiveTutorial__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./InteractiveTutorial */ 33); -/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Literature */ 76); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Message */ 36); +/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Literature */ 75); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Message */ 37); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./RedPill */ 53); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Script */ 29); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Script */ 28); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./TextFile */ 57); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./TextFile */ 58); /* harmony import */ var _TextFile__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_TextFile__WEBPACK_IMPORTED_MODULE_19__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_20__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 32); /* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_23__); /* harmony import */ var _utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/helpers/addOffset */ 59); /* harmony import */ var _utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_addOffset__WEBPACK_IMPORTED_MODULE_24__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_25__); -/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 50); +/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 51); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_26__); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utils/helpers/getTimestamp */ 80); /* harmony import */ var _utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getTimestamp__WEBPACK_IMPORTED_MODULE_27__); -/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/LogBox */ 74); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/LogBox */ 73); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./ui/postToTerminal */ 7); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_ui_postToTerminal__WEBPACK_IMPORTED_MODULE_30__); /* harmony import */ var autosize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! autosize */ 138); @@ -31389,7 +33551,7 @@ let Terminal = { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) /***/ }), -/* 47 */ +/* 49 */ /*!*************************************!*\ !*** ./src/NetscriptBladeburner.js ***! \*************************************/ @@ -31402,7 +33564,7 @@ let Terminal = { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return unknownBladeburnerExceptionMessage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return checkBladeburnerAccess; }); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Bladeburner */ 30); +/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Bladeburner */ 29); /* harmony import */ var _NetscriptEvaluator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NetscriptEvaluator */ 6); @@ -31433,7 +33595,7 @@ function checkBladeburnerAccess(workerScript, functionName) { /***/ }), -/* 48 */ +/* 50 */ /*!*******************************************!*\ !*** ./utils/uiHelpers/getElementById.ts ***! \*******************************************/ @@ -31461,7 +33623,28 @@ exports.getElementById = getElementById; /***/ }), -/* 49 */ +/* 51 */ +/*!****************************************!*\ + !*** ./utils/helpers/arrayToString.ts ***! + \****************************************/ +/*! no static exports found */ +/*! exports used: arrayToString */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Returns the input array as a comma separated string. + */ +function arrayToString(a) { + return `[${a.join(", ")}]`; +} +exports.arrayToString = arrayToString; + + +/***/ }), +/* 52 */ /*!*************************!*\ !*** ./src/Missions.js ***! \*************************/ @@ -31488,9 +33671,9 @@ exports.getElementById = getElementById; /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var jsplumb__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! jsplumb */ 241); +/* harmony import */ var jsplumb__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! jsplumb */ 243); /* harmony import */ var jsplumb__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(jsplumb__WEBPACK_IMPORTED_MODULE_10__); @@ -33030,2023 +35213,6 @@ HackingMission.prototype.finishMission = function(win) { -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) - -/***/ }), -/* 50 */ -/*!****************************************!*\ - !*** ./utils/helpers/arrayToString.ts ***! - \****************************************/ -/*! no static exports found */ -/*! exports used: arrayToString */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -/** - * Returns the input array as a comma separated string. - */ -function arrayToString(a) { - return `[${a.join(", ")}]`; -} -exports.arrayToString = arrayToString; - - -/***/ }), -/* 51 */ -/*!**************************************************!*\ - !*** ./src/Company/data/CompanyPositionNames.ts ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// Defs for job titles, stored in arrays and categorized by job "type" -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SoftwareCompanyPositions = [ - "Software Engineering Intern", - "Junior Software Engineer", - "Senior Software Engineer", - "Lead Software Developer", - "Head of Software", - "Head of Engineering", - "Vice President of Technology", - "Chief Technology Officer" -]; -exports.ITCompanyPositions = [ - "IT Intern", - "IT Analyst", - "IT Manager", - "Systems Administrator" -]; -exports.SecurityEngineerCompanyPositions = [ - "Security Engineer" -]; -exports.NetworkEngineerCompanyPositions = [ - "Network Engineer", - "Network Administrator" -]; -exports.BusinessCompanyPositions = [ - "Business Intern", - "Business Analyst", - "Business Manager", - "Operations Manager", - "Chief Financial Officer", - "Chief Executive Officer" -]; -exports.SecurityCompanyPositions = [ - "Police Officer", - "Police Chief", - "Security Guard", - "Security Officer", - "Security Supervisor", - "Head of Security" -]; -exports.AgentCompanyPositions = [ - "Field Agent", - "Secret Agent", - "Special Operative" -]; -exports.MiscCompanyPositions = [ - "Waiter", - "Employee" -]; -exports.SoftwareConsultantCompanyPositions = [ - "Software Consultant", - "Senior Software Consultant" -]; -exports.BusinessConsultantCompanyPositions = [ - "Business Consultant", - "Senior Business Consultant" -]; -exports.PartTimeCompanyPositions = [ - "Part-time Waiter", - "Part-time Employee" -]; - - -/***/ }), -/* 52 */ -/*!*********************!*\ - !*** ./src/Gang.js ***! - \*********************/ -/*! exports provided: AllGangs, resetGangs, loadAllGangs, Gang */ -/*! exports used: AllGangs, Gang, loadAllGangs, resetGangs */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AllGangs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return resetGangs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadAllGangs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Gang; }); -/* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data/gangmembertasks */ 125); -/* harmony import */ var _data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data/gangmemberupgrades */ 124); -/* harmony import */ var _data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./engine */ 8); -/* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); -/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); -/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/helpers/keyCodes */ 32); -/* harmony import */ var _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/uiHelpers/createAccordionElement */ 72); -/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); -/* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); -/* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); -/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); -/* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); -/* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 65); -/* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); -/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); -/* -Also add police clashes -balance point to keep them from running out of control -*/ - - - - - - - - - - - - - - - - - - - - - - -// Constants -const GangRespectToReputationRatio = 5; // Respect is divided by this to get rep gain -const MaximumGangMembers = 30; -const GangRecruitCostMultiplier = 2; -const CyclesPerTerritoryAndPowerUpdate = 100; -const AscensionMultiplierRatio = 15 / 100; // Portion of upgrade multiplier that is kept after ascending - -// Switch between territory and management screen with 1 and 2 -$(document).keydown(function(event) { - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang) && event.altKey) { - if (UIElems.gangMemberFilter != null && UIElems.gangMemberFilter === document.activeElement) {return;} - if (event.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__["KEY"]["1"]) { - if(UIElems.gangTerritorySubpage.style.display === "block") { - UIElems.managementButton.click(); - } - } else if (event.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__["KEY"]["2"]) { - if (UIElems.gangManagementSubpage.style.display === "block") { - UIElems.territoryButton.click(); - } - } - } -}); - -//Delete upgrade box when clicking outside -$(document).mousedown(function(event) { - var boxId = "gang-member-upgrade-popup-box"; - var contentId = "gang-member-upgrade-popup-box-content"; - if (UIElems.gangMemberUpgradeBoxOpened) { - if ( $(event.target).closest("#" + contentId).get(0) == null ) { - //Delete the box - Object(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__["removeElement"])(UIElems.gangMemberUpgradeBox); - UIElems.gangMemberUpgradeBox = null; - UIElems.gangMemberUpgradeBoxContent = null; - UIElems.gangMemberUpgradeBoxOpened = false; - UIElems.gangMemberUpgradeBoxElements = null; - } - } -}); - -let GangNames = ["Slum Snakes", "Tetrads", "The Syndicate", "The Dark Army", "Speakers for the Dead", - "NiteSec", "The Black Hand"]; -let AllGangs = { - "Slum Snakes" : { - power: 1, - territory: 1/7, - }, - "Tetrads" : { - power: 1, - territory: 1/7, - }, - "The Syndicate" : { - power: 1, - territory: 1/7, - }, - "The Dark Army" : { - power: 1, - territory: 1/7, - }, - "Speakers for the Dead" : { - power: 1, - territory: 1/7, - }, - "NiteSec" : { - power: 1, - territory: 1/7, - }, - "The Black Hand" : { - power: 1, - territory: 1/7, - }, -} - -function resetGangs() { - AllGangs = { - "Slum Snakes" : { - power: 1, - territory: 1/7, - }, - "Tetrads" : { - power: 1, - territory: 1/7, - }, - "The Syndicate" : { - power: 1, - territory: 1/7, - }, - "The Dark Army" : { - power: 1, - territory: 1/7, - }, - "Speakers for the Dead" : { - power: 1, - territory: 1/7, - }, - "NiteSec" : { - power: 1, - territory: 1/7, - }, - "The Black Hand" : { - power: 1, - territory: 1/7, - }, - } -} - -function loadAllGangs(saveString) { - AllGangs = JSON.parse(saveString, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"]); -} - -/** - * @param facName - Name of corresponding faction - * @param hacking - Boolean indicating whether or not its a hacking gang - */ -function Gang(facName, hacking=false) { - this.facName = facName; - this.members = []; //Array of GangMembers - this.wanted = 1; - this.respect = 1; - - this.isHackingGang = hacking; - - this.respectGainRate = 0; - this.wantedGainRate = 0; - this.moneyGainRate = 0; - - // When processing gains, this stores the number of cycles until some - // limit is reached, and then calculates and applies the gains only at that limit - this.storedCycles = 0; - - // Separate variable to keep track of cycles for Territry + Power gang, which - // happens on a slower "clock" than normal processing - this.storedTerritoryAndPowerCycles = 0; - - this.territoryClashChance = 0; - this.territoryWarfareEngaged = false; - - this.notifyMemberDeath = true; -} - -Gang.prototype.getPower = function() { - return AllGangs[this.facName].power; -} - -Gang.prototype.getTerritory = function() { - return AllGangs[this.facName].territory; -} - -Gang.prototype.process = function(numCycles=1, player) { - const CyclesPerSecond = 1000 / _engine__WEBPACK_IMPORTED_MODULE_2__["Engine"]._idleSpeed; - - if (isNaN(numCycles)) { - console.error(`NaN passed into Gang.process(): ${numCycles}`); - } - this.storedCycles += numCycles; - - // Only process if there are at least 2 seconds, and at most 5 seconds - if (this.storedCycles < 2 * CyclesPerSecond) { return; } - const cycles = Math.min(this.storedCycles, 5 * CyclesPerSecond); - - try { - this.processGains(cycles, player); - this.processExperienceGains(cycles); - this.processTerritoryAndPowerGains(cycles); - this.storedCycles -= cycles; - } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_13__[/* exceptionAlert */ "a"])(`Exception caught when processing Gang: ${e}`); - } -} - -Gang.prototype.processGains = function(numCycles=1, player) { - //Get gains per cycle - var moneyGains = 0, respectGains = 0, wantedLevelGains = 0; - for (var i = 0; i < this.members.length; ++i) { - respectGains += (this.members[i].calculateRespectGain(this)); - wantedLevelGains += (this.members[i].calculateWantedLevelGain(this)); - moneyGains += (this.members[i].calculateMoneyGain(this)); - } - this.respectGainRate = respectGains; - this.wantedGainRate = wantedLevelGains; - this.moneyGainRate = moneyGains; - - if (typeof respectGains === "number") { - const gain = respectGains * numCycles; - this.respect += gain; - // Faction reputation gains is respect gain divided by some constant - const fac = _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Factions */ "b"][this.facName]; - if (!(fac instanceof _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Faction */ "a"])) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("ERROR: Could not get Faction associates with your gang. This is a bug, please report to game dev"); - } else { - var favorMult = 1 + (fac.favor / 100); - fac.playerReputation += ((player.faction_rep_mult * gain * favorMult) / GangRespectToReputationRatio); - } - - // Keep track of respect gained per member - for (let i = 0; i < this.members.length; ++i) { - this.members[i].recordEarnedRespect(numCycles, this); - } - } else { - console.warn("respectGains calculated to be NaN"); - } - if (typeof wantedLevelGains === "number") { - if (this.wanted === 1 && wantedLevelGains < 0) { - // At minimum wanted, do nothing - } else { - const oldWanted = this.wanted; - let newWanted = oldWanted + (wantedLevelGains * numCycles); - - // Prevent overflow - if (wantedLevelGains <= 0 && newWanted > oldWanted) { - newWanted = 1; - } - - this.wanted = newWanted; - if (this.wanted < 1) {this.wanted = 1;} - } - } else { - console.warn("ERROR: wantedLevelGains is NaN"); - } - if (typeof moneyGains === "number") { - player.gainMoney(moneyGains * numCycles); - } else { - console.warn("ERROR: respectGains is NaN"); - } -} - -Gang.prototype.processTerritoryAndPowerGains = function(numCycles=1) { - this.storedTerritoryAndPowerCycles += numCycles; - if (this.storedTerritoryAndPowerCycles < CyclesPerTerritoryAndPowerUpdate) { return; } - this.storedTerritoryAndPowerCycles -= CyclesPerTerritoryAndPowerUpdate; - - // Process power first - var gangName = this.facName; - for (const name in AllGangs) { - if (AllGangs.hasOwnProperty(name)) { - if (name == gangName) { - AllGangs[name].power += this.calculatePower(); - } else { - // All NPC gangs get random power gains - const gainRoll = Math.random(); - if (gainRoll < 0.5) { - // Multiplicative gain (50% chance) - // This is capped per cycle, to prevent it from getting out of control - const multiplicativeGain = AllGangs[name].power * 0.008; - AllGangs[name].power += Math.min(0.9, multiplicativeGain); - } else { - // Additive gain (50% chance) - const additiveGain = 0.5 * gainRoll * AllGangs[name].territory; - AllGangs[name].power += (additiveGain); - } - } - } - } - - // Determine if territory should be processed - if (this.territoryWarfareEngaged) { - this.territoryClashChance = 1; - } else if (this.territoryClashChance > 0) { - // Engagement turned off, but still a positive clash chance. So there's - // still a chance of clashing but it slowly goes down over time - this.territoryClashChance = Math.max(0, this.territoryClashChance - 0.01); - } - - // Then process territory - for (var i = 0; i < GangNames.length; ++i) { - const others = GangNames.filter((e) => { - return e !== i; - }); - const other = Object(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__["getRandomInt"])(0, others.length - 1); - - const thisGang = GangNames[i]; - const otherGang = others[other]; - - // If either of the gangs involved in this clash is the player, determine - // whether to skip or process it using the clash chance - if (thisGang === gangName || otherGang === gangName) { - if (!(Math.random() < this.territoryClashChance)) { continue; } - } - - const thisPwr = AllGangs[thisGang].power; - const otherPwr = AllGangs[otherGang].power; - const thisChance = thisPwr / (thisPwr + otherPwr); - - if (Math.random() < thisChance) { - if (AllGangs[otherGang].territory <= 0) { - return; - } - AllGangs[thisGang].territory += 0.0001; - AllGangs[otherGang].territory -= 0.0001; - if (thisGang === gangName) { - this.clash(true); // Player won - } else if (otherGang === gangName) { - this.clash(false); // Player lost - } else { - AllGangs[otherGang].power *= (1 / 1.01); - } - } else { - if (AllGangs[thisGang].territory <= 0) { - return; - } - AllGangs[thisGang].territory -= 0.0001; - AllGangs[otherGang].territory += 0.0001; - if (thisGang === gangName) { - this.clash(false); // Player lost - } else if (otherGang === gangName) { - this.clash(true); // Player won - } else { - AllGangs[thisGang].power *= (1 / 1.01); - } - } - } -} - -Gang.prototype.canRecruitMember = function() { - if (this.members.length >= MaximumGangMembers) { return false; } - return (this.respect >= this.getRespectNeededToRecruitMember()); -} - -Gang.prototype.getRespectNeededToRecruitMember = function() { - // First N gang members are free (can be recruited at 0 respect) - const numFreeMembers = 3; - if (this.members.length < numFreeMembers) { return 0; } - - const i = this.members.length - (numFreeMembers - 1); - return Math.round(0.9 * Math.pow(i, 3) + Math.pow(i, 2)); -} - -Gang.prototype.recruitMember = function(name) { - name = String(name); - if (name === "" || !this.canRecruitMember()) { return false; } - - // Check for already-existing names - let sameNames = this.members.filter((m) => { - return m.name === name; - }); - if (sameNames.length >= 1) { return false; } - - let member = new GangMember(name); - this.members.push(member); - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang)) { - this.createGangMemberDisplayElement(member); - this.updateGangContent(); - } - return true; -} - -// Money and Respect gains multiplied by this number (< 1) -Gang.prototype.getWantedPenalty = function() { - return (this.respect) / (this.respect + this.wanted); -} - -Gang.prototype.processExperienceGains = function(numCycles=1) { - for (var i = 0; i < this.members.length; ++i) { - this.members[i].gainExperience(numCycles); - this.members[i].updateSkillLevels(); - } -} - -//Calculates power GAIN, which is added onto the Gang's existing power -Gang.prototype.calculatePower = function() { - var memberTotal = 0; - for (var i = 0; i < this.members.length; ++i) { - if (GangMemberTasks.hasOwnProperty(this.members[i].task) && this.members[i].task == "Territory Warfare") { - const gain = this.members[i].calculatePower(); - memberTotal += gain; - } - } - return (0.015 * this.getTerritory() * memberTotal); -} - -Gang.prototype.clash = function(won=false) { - // Determine if a gang member should die - let baseDeathChance = 0.01; - if (won) { baseDeathChance /= 2; } - - // If the clash was lost, the player loses a small percentage of power - if (!won) { - AllGangs[this.facName].power *= (1 / 1.008); - } - - // Deaths can only occur during X% of clashes - if (Math.random() < 0.65) { return; } - - for (let i = this.members.length - 1; i >= 0; --i) { - const member = this.members[i]; - - // Only members assigned to Territory Warfare can die - if (member.task !== "Territory Warfare") { continue; } - - // Chance to die is decreased based on defense - const modifiedDeathChance = baseDeathChance / Math.pow(member.def, 0.6); - if (Math.random() < modifiedDeathChance) { - this.killMember(member); - } - } -} - -Gang.prototype.killMember = function(memberObj) { - const gangName = this.facName; - - // Player loses a percentage of total respect, plus whatever respect that member has earned - const totalRespect = this.respect; - const lostRespect = (0.05 * totalRespect) + memberObj.earnedRespect; - this.respect = Math.max(0, totalRespect - lostRespect); - - for (let i = 0; i < this.members.length; ++i) { - if (memberObj.name === this.members[i].name) { - this.members.splice(i, 1); - break; - } - } - - // Notify of death - if (this.notifyMemberDeath) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])(`${memberObj.name} was killed in a gang clash! You lost ${lostRespect} respect`); - } - - // Update UI - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang)) { - this.displayGangMemberList(); - } -} - -Gang.prototype.ascendMember = function(memberObj, workerScript) { - try { - /** - * res is an object with the following format: - * { - * respect: Amount of respect to deduct - * hack/str/def/dex/agi/cha: Ascension multipliers gained for each stat - * } - */ - const res = memberObj.ascend(); - this.respect = Math.max(1, this.respect - res.respect); - if (workerScript == null) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])([`You ascended ${memberObj.name}!`, - "", - `Your gang lost ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.respect, "0.000a")} respect`, - "", - `${memberObj.name} gained the following stat multipliers for ascending:`, - `Hacking: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.hack, "0.000%")}`, - `Strength: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.str, "0.000%")}`, - `Defense: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.def, "0.000%")}`, - `Dexterity: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.dex, "0.000%")}`, - `Agility: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.agi, "0.000%")}`, - `Charisma: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(res.cha, "0.000%")}`].join("
")); - } else { - workerScript.log(`Ascended Gang member ${memberObj.name}`); - } - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang)) { - this.displayGangMemberList(); - } - return res; - } catch(e) { - if (workerScript == null) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_13__[/* exceptionAlert */ "a"])(e); - } else { - throw e; // Re-throw, will be caught in the Netscript Function - } - } -} - -// Cost of upgrade gets cheaper as gang increases in respect + power -Gang.prototype.getDiscount = function() { - const power = this.getPower(); - const respect = this.respect; - - const respectLinearFac = 5e6; - const powerLinearFac = 1e6; - const discount = Math.pow(respect, 0.01) + respect / respectLinearFac + Math.pow(power, 0.01) + power / powerLinearFac - 1; - return Math.max(1, discount); -} - -// Returns only valid tasks for this gang. Excludes 'Unassigned' -Gang.prototype.getAllTaskNames = function() { - let tasks = []; - const allTasks = Object.keys(GangMemberTasks); - if (this.isHackingGang) { - tasks = allTasks.filter((e) => { - let task = GangMemberTasks[e]; - if (task == null) { return false; } - if (e === "Unassigned") { return false; } - return task.isHacking; - }); - } else { - tasks = allTasks.filter((e) => { - let task = GangMemberTasks[e]; - if (task == null) { return false; } - if (e === "Unassigned") { return false; } - return task.isCombat; - }); - } - return tasks; -} - -Gang.prototype.getAllUpgradeNames = function() { - return Object.keys(GangMemberUpgrades); -} - -Gang.prototype.getUpgradeCost = function(upgName) { - if (GangMemberUpgrades[upgName] == null) { return Infinity; } - return GangMemberUpgrades[upgName].getCost(this); -} - -Gang.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("Gang", this); -} - -Gang.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(Gang, value.data); -} - -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.Gang = Gang; - -/*** Gang Member object ***/ -function GangMember(name) { - this.name = name; - this.task = "Unassigned"; //GangMemberTask object - - this.earnedRespect = 0; - - this.hack = 1; - this.str = 1; - this.def = 1; - this.dex = 1; - this.agi = 1; - this.cha = 1; - - this.hack_exp = 0; - this.str_exp = 0; - this.def_exp = 0; - this.dex_exp = 0; - this.agi_exp = 0; - this.cha_exp = 0; - - this.hack_mult = 1; - this.str_mult = 1; - this.def_mult = 1; - this.dex_mult = 1; - this.agi_mult = 1; - this.cha_mult = 1; - - this.hack_asc_mult = 1; - this.str_asc_mult = 1; - this.def_asc_mult = 1; - this.dex_asc_mult = 1; - this.agi_asc_mult = 1; - this.cha_asc_mult = 1; - - this.upgrades = []; //Names of upgrades - this.augmentations = []; //Names only -} - -//Same formula for Player -GangMember.prototype.calculateSkill = function(exp, mult=1) { - return Math.max(Math.floor(mult * (32 * Math.log(exp + 534.5) - 200)), 1); -} - -GangMember.prototype.updateSkillLevels = function() { - this.hack = this.calculateSkill(this.hack_exp, this.hack_mult * this.hack_asc_mult); - this.str = this.calculateSkill(this.str_exp, this.str_mult * this.str_asc_mult); - this.def = this.calculateSkill(this.def_exp, this.def_mult * this.def_asc_mult); - this.dex = this.calculateSkill(this.dex_exp, this.dex_mult * this.dex_asc_mult); - this.agi = this.calculateSkill(this.agi_exp, this.agi_mult * this.agi_asc_mult); - this.cha = this.calculateSkill(this.cha_exp, this.cha_mult * this.cha_asc_mult); -} - -GangMember.prototype.calculatePower = function() { - return (this.hack + this.str + this.def + this.dex + this.agi + this.cha) / 95; -} - -GangMember.prototype.assignToTask = function(taskName) { - if (GangMemberTasks.hasOwnProperty(taskName)) { - this.task = taskName; - return true; - } else { - this.task = "Unassigned"; - return false; - } -} - -GangMember.prototype.unassignFromTask = function() { - this.task = "Unassigned"; -} - -GangMember.prototype.getTask = function() { - // Backwards compatibility - if (this.task instanceof GangMemberTask) { - this.task = this.task.name; - } - - if (GangMemberTasks.hasOwnProperty(this.task)) { - return GangMemberTasks[this.task]; - } - return GangMemberTasks["Unassigned"]; -} - -//Gains are per cycle -GangMember.prototype.calculateRespectGain = function(gang) { - const task = this.getTask(); - if (task == null || !(task instanceof GangMemberTask) || task.baseRespect === 0) {return 0;} - var statWeight = (task.hackWeight/100) * this.hack + - (task.strWeight/100) * this.str + - (task.defWeight/100) * this.def + - (task.dexWeight/100) * this.dex + - (task.agiWeight/100) * this.agi + - (task.chaWeight/100) * this.cha; - statWeight -= (4 * task.difficulty); - if (statWeight <= 0) { return 0; } - const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.respect) / 100; - if (isNaN(territoryMult) || territoryMult <= 0) { return 0; } - var respectMult = gang.getWantedPenalty(); - return 11 * task.baseRespect * statWeight * territoryMult * respectMult; -} - -GangMember.prototype.calculateWantedLevelGain = function(gang) { - const task = this.getTask(); - if (task == null || !(task instanceof GangMemberTask) || task.baseWanted === 0) {return 0;} - var statWeight = (task.hackWeight/100) * this.hack + - (task.strWeight/100) * this.str + - (task.defWeight/100) * this.def + - (task.dexWeight/100) * this.dex + - (task.agiWeight/100) * this.agi + - (task.chaWeight/100) * this.cha; - statWeight -= (3.5 * task.difficulty); - if (statWeight <= 0) { return 0; } - const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.wanted) / 100; - if (isNaN(territoryMult) || territoryMult <= 0) { return 0; } - if (task.baseWanted < 0) { - return 0.5 * task.baseWanted * statWeight * territoryMult; - } else { - return 7 * task.baseWanted / (3 * statWeight * territoryMult); - } -} - -GangMember.prototype.calculateMoneyGain = function(gang) { - const task = this.getTask(); - if (task == null || !(task instanceof GangMemberTask) || task.baseMoney === 0) {return 0;} - var statWeight = (task.hackWeight/100) * this.hack + - (task.strWeight/100) * this.str + - (task.defWeight/100) * this.def + - (task.dexWeight/100) * this.dex + - (task.agiWeight/100) * this.agi + - (task.chaWeight/100) * this.cha; - statWeight -= (3.2 * task.difficulty); - if (statWeight <= 0) { return 0; } - const territoryMult = Math.pow(AllGangs[gang.facName].territory * 100, task.territory.money) / 100; - if (isNaN(territoryMult) || territoryMult <= 0) { return 0; } - var respectMult = gang.getWantedPenalty(); - return 5 * task.baseMoney * statWeight * territoryMult * respectMult; -} - -GangMember.prototype.gainExperience = function(numCycles=1) { - const task = this.getTask(); - if (task == null || !(task instanceof GangMemberTask) || task === GangMemberTasks["Unassigned"]) {return;} - const difficultyMult = Math.pow(task.difficulty, 0.9); - const difficultyPerCycles = difficultyMult * numCycles; - const weightDivisor = 1500; - this.hack_exp += (task.hackWeight / weightDivisor) * difficultyPerCycles; - this.str_exp += (task.strWeight / weightDivisor) * difficultyPerCycles; - this.def_exp += (task.defWeight / weightDivisor) * difficultyPerCycles; - this.dex_exp += (task.dexWeight / weightDivisor) * difficultyPerCycles; - this.agi_exp += (task.agiWeight / weightDivisor) * difficultyPerCycles; - this.cha_exp += (task.chaWeight / weightDivisor) * difficultyPerCycles; -} - -GangMember.prototype.recordEarnedRespect = function(numCycles=1, gang) { - this.earnedRespect += (this.calculateRespectGain(gang) * numCycles); -} - -GangMember.prototype.ascend = function() { - const res = this.getAscensionResults(); - const hackAscMult = res.hack; - const strAscMult = res.str; - const defAscMult = res.def; - const dexAscMult = res.dex; - const agiAscMult = res.agi; - const chaAscMult = res.cha; - this.hack_asc_mult += hackAscMult; - this.str_asc_mult += strAscMult; - this.def_asc_mult += defAscMult; - this.dex_asc_mult += dexAscMult; - this.agi_asc_mult += agiAscMult; - this.cha_asc_mult += chaAscMult; - - // Remove upgrades. Then re-calculate multipliers and stats - this.upgrades.length = 0; - this.hack_mult = 1; - this.str_mult = 1; - this.def_mult = 1; - this.dex_mult = 1; - this.agi_mult = 1; - this.cha_mult = 1; - for (let i = 0; i < this.augmentations.length; ++i) { - let aug = GangMemberUpgrades[this.augmentations[i]]; - aug.apply(this); - } - - // Clear exp and recalculate stats - this.hack_exp = 0; - this.str_exp = 0; - this.def_exp = 0; - this.dex_exp = 0; - this.agi_exp = 0; - this.cha_exp = 0; - this.updateSkillLevels(); - - const respectToDeduct = this.earnedRespect; - this.earnedRespect = 0; - return { - respect: respectToDeduct, - hack: hackAscMult, - str: strAscMult, - def: defAscMult, - dex: dexAscMult, - agi: agiAscMult, - cha: chaAscMult, - }; -} - -// Returns the multipliers that would be gained from ascension -GangMember.prototype.getAscensionResults = function() { - // Calculate ascension bonus to stat multipliers. - // This is based on the current number of multipliers from Non-Augmentation upgrades - // + Ascension Bonus = N% of current bonus from Augmentations - let hack = 1; - let str = 1; - let def = 1; - let dex = 1; - let agi = 1; - let cha = 1; - for (let i = 0; i < this.upgrades.length; ++i) { - let upg = GangMemberUpgrades[this.upgrades[i]]; - if (upg.mults.hack != null) { hack *= upg.mults.hack; } - if (upg.mults.str != null) { str *= upg.mults.str; } - if (upg.mults.def != null) { def *= upg.mults.def; } - if (upg.mults.dex != null) { dex *= upg.mults.dex; } - if (upg.mults.agi != null) { agi *= upg.mults.agi; } - if (upg.mults.cha != null) { cha *= upg.mults.cha; } - } - - // Subtract 1 because we're only interested in the actual "bonus" part - return { - hack: (Math.max(0, hack - 1) * AscensionMultiplierRatio), - str: (Math.max(0, str - 1) * AscensionMultiplierRatio), - def: (Math.max(0, def - 1) * AscensionMultiplierRatio), - dex: (Math.max(0, dex - 1) * AscensionMultiplierRatio), - agi: (Math.max(0, agi - 1) * AscensionMultiplierRatio), - cha: (Math.max(0, cha - 1) * AscensionMultiplierRatio), - } -} - -GangMember.prototype.buyUpgrade = function(upg, player, gang) { - if (typeof upg === 'string') { - upg = GangMemberUpgrades[upg]; - } - if (!(upg instanceof GangMemberUpgrade)) { - return false; - } - if (player.money.lt(upg.getCost(gang))) { return false; } - player.loseMoney(upg.getCost(gang)); - if (upg.type === "g") { - this.augmentations.push(upg.name); - } else { - this.upgrades.push(upg.name); - } - upg.apply(this); - if (_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["routing"].isOn(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_11__["Page"].Gang) && UIElems.gangMemberUpgradeBoxOpened) { - var initFilterValue = UIElems.gangMemberUpgradeBoxFilter.value.toString(); - gang.createGangMemberUpgradeBox(player, initFilterValue); - } - return true; -} - -GangMember.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("GangMember", this); -} - -GangMember.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(GangMember, value.data); -} - -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.GangMember = GangMember; - -//Defines tasks that Gang Members can work on -function GangMemberTask(name="", desc="", isHacking=false, isCombat=false, - params={baseRespect: 0, baseWanted: 0, baseMoney: 0, - hackWeight: 0, strWeight: 0, defWeight: 0, - dexWeight: 0, agiWeight: 0, chaWeight: 0, - difficulty: 0}) { - this.name = name; - this.desc = desc; - - // Flags that describe whether this Task is applicable for Hacking/Combat gangs - this.isHacking = isHacking; - this.isCombat = isCombat; - - // Base gain rates for respect/wanted/money - this.baseRespect = params.baseRespect ? params.baseRespect : 0; - this.baseWanted = params.baseWanted ? params.baseWanted : 0; - this.baseMoney = params.baseMoney ? params.baseMoney : 0; - - // Weighting for the effect that each stat has on the tasks effectiveness. - // Weights must add up to 100 - this.hackWeight = params.hackWeight ? params.hackWeight : 0; - this.strWeight = params.strWeight ? params.strWeight : 0; - this.defWeight = params.defWeight ? params.defWeight : 0; - this.dexWeight = params.dexWeight ? params.dexWeight : 0; - this.agiWeight = params.agiWeight ? params.agiWeight : 0; - this.chaWeight = params.chaWeight ? params.chaWeight : 0; - - if (Math.round(this.hackWeight + this.strWeight + this.defWeight + this.dexWeight + this.agiWeight + this.chaWeight) != 100) { - console.error(`GangMemberTask ${this.name} weights do not add up to 100`); - } - - // 1 - 100 - this.difficulty = params.difficulty ? params.difficulty : 1; - - // Territory Factors. Exponential factors that dictate how territory affects gains - // Formula: Territory Mutiplier = (Territory * 100) ^ factor / 100 - // So factor should be > 1 if something should scale exponentially with territory - // and should be < 1 if it should have diminshing returns - this.territory = params.territory ? params.territory : {money: 1, respect: 1, wanted: 1}; -} - -GangMemberTask.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("GangMemberTask", this); -} - -GangMemberTask.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(GangMemberTask, value.data); -} - -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.GangMemberTask = GangMemberTask; - -const GangMemberTasks = {}; - -function addGangMemberTask(name, desc, isHacking, isCombat, params) { - GangMemberTasks[name] = new GangMemberTask(name, desc, isHacking, isCombat, params); -} - -_data_gangmembertasks__WEBPACK_IMPORTED_MODULE_0__["gangMemberTasksMetadata"].forEach((e) => { - addGangMemberTask(e.name, e.desc, e.isHacking, e.isCombat, e.params); -}); - -function GangMemberUpgrade(name="", cost=0, type="w", mults={}) { - this.name = name; - this.cost = cost; - this.type = type; //w = weapon, a = armor, v = vehicle, r = rootkit, g = Aug - this.mults = mults; - - this.createDescription(); -} - -GangMemberUpgrade.prototype.getCost = function(gang) { - const discount = gang.getDiscount(); - return this.cost / discount; -} - -GangMemberUpgrade.prototype.createDescription = function() { - const lines = ["Increases:"]; - if (this.mults.str != null) { - lines.push(`* Strength by ${Math.round((this.mults.str - 1) * 100)}%`); - } - if (this.mults.def != null) { - lines.push(`* Defense by ${Math.round((this.mults.def - 1) * 100)}%`); - } - if (this.mults.dex != null) { - lines.push(`* Dexterity by ${Math.round((this.mults.dex - 1) * 100)}%`); - } - if (this.mults.agi != null) { - lines.push(`* Agility by ${Math.round((this.mults.agi - 1) * 100)}%`); - } - if (this.mults.cha != null) { - lines.push(`* Charisma by ${Math.round((this.mults.cha - 1) * 100)}%`); - } - if (this.mults.hack != null) { - lines.push(`* Hacking by ${Math.round((this.mults.hack - 1) * 100)}%`); - } - this.desc = lines.join("
"); -} - -//Passes in a GangMember object -GangMemberUpgrade.prototype.apply = function(member) { - if (this.mults.str != null) { member.str_mult *= this.mults.str; } - if (this.mults.def != null) { member.def_mult *= this.mults.def; } - if (this.mults.dex != null) { member.dex_mult *= this.mults.dex; } - if (this.mults.agi != null) { member.agi_mult *= this.mults.agi; } - if (this.mults.cha != null) { member.cha_mult *= this.mults.cha; } - if (this.mults.hack != null) { member.hack_mult *= this.mults.hack; } - return; -} - -GangMemberUpgrade.prototype.toJSON = function() { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_toJSON"])("GangMemberUpgrade", this); -} - -GangMemberUpgrade.fromJSON = function(value) { - return Object(_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Generic_fromJSON"])(GangMemberUpgrade, value.data); -} - -_utils_JSONReviver__WEBPACK_IMPORTED_MODULE_6__["Reviver"].constructors.GangMemberUpgrade = GangMemberUpgrade; - -// Initialize Gang Member Upgrades -const GangMemberUpgrades = {} - -function addGangMemberUpgrade(name, cost, type, mults) { - GangMemberUpgrades[name] = new GangMemberUpgrade(name, cost, type, mults); -} - -_data_gangmemberupgrades__WEBPACK_IMPORTED_MODULE_1__["gangMemberUpgradesMetadata"].forEach((e) => { - addGangMemberUpgrade(e.name, e.cost, e.upgType, e.mults); -}); - -// Create a pop-up box that lets player purchase upgrades -Gang.prototype.createGangMemberUpgradeBox = function(player, initialFilter="") { - const boxId = "gang-member-upgrade-popup-box"; - if (UIElems.gangMemberUpgradeBoxOpened) { - //Already opened, refreshing - if (UIElems.gangMemberUpgradeBoxElements == null || UIElems.gangMemberUpgradeBox == null || UIElems.gangMemberUpgradeBoxContent == null) { - console.error("Refreshing Gang member upgrade box throws error because required elements are null"); - return; - } - - for (var i = 2; i < UIElems.gangMemberUpgradeBoxElements.length; ++i) { - Object(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__["removeElement"])(UIElems.gangMemberUpgradeBoxElements[i]); - } - UIElems.gangMemberUpgradeBoxElements = [UIElems.gangMemberUpgradeBoxFilter, UIElems.gangMemberUpgradeBoxDiscount]; - - var filter = UIElems.gangMemberUpgradeBoxFilter.value.toString(); - for (var i = 0; i < this.members.length; ++i) { - if (this.members[i].name.indexOf(filter) > -1 || this.members[i].task.indexOf(filter) > -1) { - var newPanel = this.members[i].createGangMemberUpgradePanel(this, player); - UIElems.gangMemberUpgradeBoxContent.appendChild(newPanel); - UIElems.gangMemberUpgradeBoxElements.push(newPanel); - } - } - } else { - //New popup - UIElems.gangMemberUpgradeBoxFilter = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { - type:"text", placeholder:"Filter gang members", - value:initialFilter, - onkeyup:()=>{ - var filterValue = UIElems.gangMemberUpgradeBoxFilter.value.toString(); - this.createGangMemberUpgradeBox(player, filterValue); - } - }); - - UIElems.gangMemberUpgradeBoxDiscount = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { - innerText: "Discount: -" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(1 - 1 / this.getDiscount(), "0.00%"), - marginLeft: "6px", - tooltip: "You get a discount on equipment and upgrades based on your gang's " + - "respect and power. More respect and power leads to more discounts." - }); - - UIElems.gangMemberUpgradeBoxElements = [UIElems.gangMemberUpgradeBoxFilter, UIElems.gangMemberUpgradeBoxDiscount]; - - var filter = UIElems.gangMemberUpgradeBoxFilter.value.toString(); - for (var i = 0; i < this.members.length; ++i) { - if (this.members[i].name.indexOf(filter) > -1 || this.members[i].task.indexOf(filter) > -1) { - UIElems.gangMemberUpgradeBoxElements.push(this.members[i].createGangMemberUpgradePanel(this, player)); - } - } - - UIElems.gangMemberUpgradeBox = Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(boxId, UIElems.gangMemberUpgradeBoxElements); - UIElems.gangMemberUpgradeBoxContent = document.getElementById(boxId + "-content"); - UIElems.gangMemberUpgradeBoxOpened = true; - } -} - -//Create upgrade panels for each individual Gang Member -GangMember.prototype.createGangMemberUpgradePanel = function(gangObj, player) { - var container = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - border:"1px solid white", - }); - - var header = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h1", { - innerText: this.name + " (" + this.task + ")" - }); - container.appendChild(header); - - var text = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { - fontSize:"14px", display: "inline-block", width:"20%", - innerText: - "Hack: " + this.hack + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.hack_mult * this.hack_asc_mult, 2) + ")\n" + - "Str: " + this.str + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.str_mult * this.str_asc_mult, 2) + ")\n" + - "Def: " + this.def + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.def_mult * this.def_asc_mult, 2) + ")\n" + - "Dex: " + this.dex + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.dex_mult * this.dex_asc_mult, 2) + ")\n" + - "Agi: " + this.agi + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.agi_mult * this.agi_asc_mult, 2) + ")\n" + - "Cha: " + this.cha + " (x" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.cha_mult * this.cha_asc_mult, 2) + ")\n", - }); - - //Already purchased upgrades - const ownedUpgradesElements = []; - function pushOwnedUpgrade(upgName) { - const upg = GangMemberUpgrades[upgName]; - if (upg == null) { - console.error(`Could not find GangMemberUpgrade object for name ${upgName}`); - return; - } - ownedUpgradesElements.push(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class: "gang-owned-upgrade", - innerText: upgName, - tooltip: upg.desc, - })); - } - for (const upgName of this.upgrades) { pushOwnedUpgrade(upgName); } - for (const upgName of this.augmentations) { pushOwnedUpgrade(upgName); } - - var ownedUpgrades = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class: "gang-owned-upgrades-div", - innerText: "Purchased Upgrades:", - }); - for (const elem of ownedUpgradesElements) { ownedUpgrades.appendChild(elem); } - container.appendChild(text); - container.appendChild(ownedUpgrades); - container.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br", {})); - - //Upgrade buttons. Only show upgrades that can be afforded - const weaponUpgrades = []; - const armorUpgrades = []; - const vehicleUpgrades = []; - const rootkitUpgrades = []; - const augUpgrades = []; - - for (let upgName in GangMemberUpgrades) { - if (GangMemberUpgrades.hasOwnProperty(upgName)) { - let upg = GangMemberUpgrades[upgName]; - if (player.money.lt(upg.getCost(gangObj))) { continue; } - if (this.upgrades.includes(upgName) || this.augmentations.includes(upgName)) { continue; } - switch (upg.type) { - case "w": - weaponUpgrades.push(upg); - break; - case "a": - armorUpgrades.push(upg); - break; - case "v": - vehicleUpgrades.push(upg); - break; - case "r": - rootkitUpgrades.push(upg); - break; - case "g": - augUpgrades.push(upg); - break; - default: - console.error(`ERROR: Invalid Gang Member Upgrade Type: ${upg.type}`); - } - } - } - - // Create separate columns for each upgrade type - const weaponDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); - const armorDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); - const vehicleDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); - const rootkitDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); - const augDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", {width: "20%", display: "inline-block"}); - - // Add a title/labe for each column - weaponDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Weapons"})); - armorDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Armor"})); - vehicleDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Vehicles"})); - rootkitDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Rootkits"})); - augDiv.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Augmentations"})); - - // Add buttons to purchase each upgrade - const upgrades = [weaponUpgrades, armorUpgrades, vehicleUpgrades, rootkitUpgrades, augUpgrades]; - const divs = [weaponDiv, armorDiv, vehicleDiv, rootkitDiv, augDiv]; - for (let i = 0; i < upgrades.length; ++i) { - let upgradeArray = upgrades[i]; - let div = divs[i]; - for (let j = 0; j < upgradeArray.length; ++j) { - let upg = upgradeArray[j]; - (function (upg, div, memberObj, i, gang) { - let createElementParams = { - innerText: upg.name + " - " + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(upg.getCost(gang), "$0.000a"), - class: "a-link-button", margin:"2px", padding:"2px", display:"block", - fontSize:"11px", - clickListener:()=>{ - memberObj.buyUpgrade(upg, player, gangObj); - return false; - } - } - - // For the last two divs, tooltip should be on the left - if (i >= 3) { - createElementParams.tooltipleft = upg.desc; - } else { - createElementParams.tooltip = upg.desc; - } - div.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", createElementParams)); - })(upg, div, this, i, gangObj); - } - } - - container.appendChild(weaponDiv); - container.appendChild(armorDiv); - container.appendChild(vehicleDiv); - container.appendChild(rootkitDiv); - container.appendChild(augDiv); - return container; -} - -// Gang UI Dom Elements -const UIElems = { - // Main elems - gangContentCreated: false, - gangContainer: null, - managementButton: null, - territoryButton: null, - - // Subpages - gangManagementSubpage: null, - gangTerritorySubpage: null, - - // Gang Management Subpage Elements - gangDesc: null, - gangInfo: null, - gangRecruitMemberButton: null, - gangRecruitRequirementText: null, - gangExpandAllButton: null, - gangCollapseAllButton: null, - gangMemberFilter: null, - gangManageEquipmentButton: null, - gangMemberList: null, - gangMemberPanels: {}, - - // Gang Equipment Upgrade Elements - gangMemberUpgradeBoxOpened: false, - gangMemberUpgradeBox: null, - gangMemberUpgradeBoxContent: null, - gangMemberUpgradeBoxFilter: null, - gangMemberUpgradeBoxDiscount: null, - gangMemberUpgradeBoxElements: null, - - // Gang Territory Elements - gangTerritoryDescText: null, - gangTerritoryWarfareCheckbox: null, - gangTerritoryWarfareCheckboxLabel: null, - gangTerritoryWarfareClashChance: null, - gangTerritoryDeathNotifyCheckbox: null, - gangTerritoryDeathNotifyCheckboxLabel: null, - gangTerritoryInfoText: null, -} - -Gang.prototype.displayGangContent = function(player) { - if (!UIElems.gangContentCreated || UIElems.gangContainer == null) { - UIElems.gangContentCreated = true; - - //Create gang container - UIElems.gangContainer = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - id:"gang-container", class:"generic-menupage-container", - }); - - //Get variables - var facName = this.facName, - members = this.members, - wanted = this.wanted, - respect = this.respect; - - //Back button - UIElems.gangContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - class:"a-link-button", display:"inline-block", innerText:"Back", - clickListener:()=>{ - _engine__WEBPACK_IMPORTED_MODULE_2__["Engine"].loadFactionContent(); - Object(_Faction__WEBPACK_IMPORTED_MODULE_3__[/* displayFactionContent */ "c"])(facName); - return false; - } - })); - - //Buttons to switch between panels - UIElems.managementButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - id:"gang-management-subpage-button", class:"a-link-button-inactive", - display:"inline-block", innerHTML: "Gang Management (Alt+1)", - clickListener:()=>{ - UIElems.gangManagementSubpage.style.display = "block"; - UIElems.gangTerritorySubpage.style.display = "none"; - UIElems.managementButton.classList.toggle("a-link-button-inactive"); - UIElems.managementButton.classList.toggle("a-link-button"); - UIElems.territoryButton.classList.toggle("a-link-button-inactive"); - UIElems.territoryButton.classList.toggle("a-link-button"); - this.updateGangContent(); - return false; - } - }) - UIElems.territoryButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - id:"gang-territory-subpage-button", class:"a-link-button", - display:"inline-block", innerHTML:"Gang Territory (Alt+2)", - clickListener:() => { - UIElems.gangManagementSubpage.style.display = "none"; - UIElems.gangTerritorySubpage.style.display = "block"; - UIElems.managementButton.classList.toggle("a-link-button-inactive"); - UIElems.managementButton.classList.toggle("a-link-button"); - UIElems.territoryButton.classList.toggle("a-link-button-inactive"); - UIElems.territoryButton.classList.toggle("a-link-button"); - this.updateGangContent(); - return false; - } - }); - UIElems.gangContainer.appendChild(UIElems.managementButton); - UIElems.gangContainer.appendChild(UIElems.territoryButton); - - //Subpage for managing gang members - UIElems.gangManagementSubpage = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - display:"block", id:"gang-management-subpage", - }); - - var lowerWantedTask = ""; - if (this.isHackingGang) { - lowerWantedTask = "Ethical Hacking"; - } else { - lowerWantedTask = "Vigilante Justice"; - } - UIElems.gangDesc = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {width:"70%", - innerHTML: - "This page is used to manage your gang members and get an overview of your " + - "gang's stats.

" + - "If a gang member is not earning much money or respect, the task that you " + - "have assigned to that member might be too difficult. Consider training that " + - "member's stats or choosing an easier task. The tasks closer to the " + - "top of the dropdown list are generally easier. Alternatively, the gang member's " + - "low production might be due to the fact that your wanted level is too high. " + - "Consider assigning a few members to the '" + lowerWantedTask + "' " + - "task to lower your wanted level.

" + - "Installing Augmentations does NOT reset your progress with your Gang. " + - "Furthermore, after installing Augmentations, you will " + - "automatically be a member of whatever Faction you created your gang with.

" + - "You can also manage your gang programmatically through Netscript using the Gang API" - }); - UIElems.gangManagementSubpage.appendChild(UIElems.gangDesc); - - UIElems.gangInfo = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {id:"gang-info", width:"70%"}); - UIElems.gangManagementSubpage.appendChild(UIElems.gangInfo); - - UIElems.gangRecruitMemberButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - id: "gang-management-recruit-member-btn", class:"a-link-button-inactive", - innerHTML:"Recruit Gang Member", display:"inline-block", margin:"10px", - clickListener:()=>{ - const popupId = "recruit-gang-member-popup"; - - let yesBtn; - const txt = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { - innerText:"Please enter a name for your new Gang member:", - }); - const br = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"); - const nameInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { - onkeyup: (e) => { - if (e.keyCode === _utils_helpers_keyCodes__WEBPACK_IMPORTED_MODULE_7__["KEY"].ENTER) { yesBtn.click(); } - }, - placeholder: "Name must be unique", - type: "text", - }); - yesBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - class: "std-button", - clickListener: () => { - let name = nameInput.value; - if (name === "") { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("You must enter a name for your Gang member!"); - return false; - } - if (!this.canRecruitMember()) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("You cannot recruit another Gang member!"); - return false; - } - - // At this point, the only way this can fail is if you already - // have a gang member with the same name - if (!this.recruitMember(name)) { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("You already have a gang member with this name!"); - return false; - } - - Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); - return false; - }, - innerText: "Recruit Gang Member", - }); - const noBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - class: "std-button", - clickListener: () => { - Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); - return false; - }, - innerText: "Cancel", - }); - Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, [txt, br, nameInput, yesBtn, noBtn]); - } - }); - UIElems.gangManagementSubpage.appendChild(UIElems.gangRecruitMemberButton); - - // Text for how much reputation is required for recruiting next memberList - UIElems.gangRecruitRequirementText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { - color:"red", - id: "gang-recruit-requirement-text", - margin: "10px", - }); - UIElems.gangManagementSubpage.appendChild(UIElems.gangRecruitRequirementText); - - //Gang Member List management buttons (Expand/Collapse All, select a single member) - UIElems.gangManagementSubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br", {})); - UIElems.gangExpandAllButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - class:"a-link-button", display:"inline-block", - innerHTML:"Expand All", - clickListener:()=>{ - var allHeaders = UIElems.gangManagementSubpage.getElementsByClassName("accordion-header"); - for (var i = 0; i < allHeaders.length; ++i) { - var hdr = allHeaders[i]; - if (!hdr.classList.contains("active")) { - hdr.click(); - } - } - return false; - } - }); - UIElems.gangCollapseAllButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - class:"a-link-button", display:"inline-block", - innerHTML:"Collapse All", - clickListener:()=>{ - var allHeaders = UIElems.gangManagementSubpage.getElementsByClassName("accordion-header"); - for (var i = 0; i < allHeaders.length; ++i) { - var hdr = allHeaders[i]; - if (hdr.classList.contains("active")) { - hdr.click(); - } - } - return false; - } - }); - UIElems.gangMemberFilter = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { - type:"text", placeholder:"Filter gang members", margin:"5px", padding:"5px", - onkeyup:()=>{ - this.displayGangMemberList(); - } - }); - UIElems.gangManageEquipmentButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("a", { - class:"a-link-button", display:"inline-block", - innerHTML:"Manage Equipment", - clickListener: () => { - this.createGangMemberUpgradeBox(player); - } - }); - UIElems.gangManagementSubpage.appendChild(UIElems.gangExpandAllButton); - UIElems.gangManagementSubpage.appendChild(UIElems.gangCollapseAllButton); - UIElems.gangManagementSubpage.appendChild(UIElems.gangMemberFilter); - UIElems.gangManagementSubpage.appendChild(UIElems.gangManageEquipmentButton); - - //Gang Member list - UIElems.gangMemberList = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("ul", {id:"gang-member-list"}); - this.displayGangMemberList(); - UIElems.gangManagementSubpage.appendChild(UIElems.gangMemberList); - - //Subpage for seeing gang territory information - UIElems.gangTerritorySubpage = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - id:"gang-territory-subpage", display:"none" - }); - - //Info text for territory page - UIElems.gangTerritoryDescText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { - width:"70%", - innerHTML: - "This page shows how much territory your Gang controls. This statistic is listed as a percentage, " + - "which represents how much of the total territory you control.

" + - "Every ~20 seconds, your gang has a chance to 'clash' with other gangs. Your chance " + - "to win a clash depends on your gang's power, which is listed in the display below. " + - "Your gang's power slowly accumulates over time. The accumulation rate is determined by the stats " + - "of all Gang members you have assigned to the 'Territory Warfare' task. Gang members that are not " + - "assigned to this task do not contribute to your gang's power. Your gang also loses a small amount " + - "of power whenever you lose a clash

" + - "NOTE: Gang members assigned to 'Territory Warfare' can be killed during clashes. This can happen regardless of whether you win " + - "or lose the clash. A gang member being killed results in both respect and power loss for your gang.

" + - "The amount of territory you have affects all aspects of your Gang members' production, including " + - "money, respect, and wanted level. It is very beneficial to have high territory control.

" - }); - UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryDescText); - - // Checkbox for Engaging in Territory Warfare - UIElems.gangTerritoryWarfareCheckbox = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { - display: "inline-block", - id: "gang-management-territory-warfare-checkbox", - changeListener: () => { - this.territoryWarfareEngaged = UIElems.gangTerritoryWarfareCheckbox.checked; - }, - margin: "2px", - type: "checkbox", - }); - UIElems.gangTerritoryWarfareCheckbox.checked = this.territoryWarfareEngaged; - - UIElems.gangTerritoryWarfareCheckboxLabel = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("label", { - color: "white", - display: "inline-block", - for: "gang-management-territory-warfare-checkbox", - innerText: "Engage in Territory Warfare", - tooltip: "Engaging in Territory Warfare sets your clash chance to 100%. " + - "Disengaging will cause your clash chance to gradually decrease until " + - "it reaches 0%", - }); - UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryWarfareCheckbox); - UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryWarfareCheckboxLabel); - - // Territory Clash chance - UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - UIElems.gangTerritoryWarfareClashChance = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {display: "inline-block"}); - UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryWarfareClashChance); - - UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class: "help-tip", - display: "inline-block", - innerText: "?", - clickListener: () => { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])("This percentage represents the chance you have of 'clashing' with " + - "with another gang. If you do not wish to gain/lose territory, " + - "then keep this percentage at 0% by not engaging in territory " + - "warfare.") - }, - })); - - // Checkbox for whether player wants to be notified of gang member death - UIElems.gangTerritoryDeathNotifyCheckbox = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { - display: "inline-block", - id: "gang-management-notify-member-death-checkbox", - changeListener: () => { - this.notifyMemberDeath = UIElems.gangTerritoryDeathNotifyCheckbox.checked; - }, - margin: "2px", - type: "checkbox", - }); - UIElems.gangTerritoryDeathNotifyCheckbox.checked = this.notifyMemberDeath; - - UIElems.gangTerritoryDeathNotifyCheckboxLabel = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("label", { - color: "white", - display: "inline-block", - for: "gang-management-notify-member-death-checkbox", - innerText: "Notify about Gang Member Deaths", - tooltip: "If this is enabled, then you will receive a pop-up notifying you " + - "whenever one of your Gang Members dies in a territory clash.", - }); - UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryDeathNotifyCheckbox); - UIElems.gangTerritorySubpage.appendChild(UIElems.gangTerritoryDeathNotifyCheckboxLabel); - - // Territory info (percentages of territory owned for each gang) - UIElems.gangTerritorySubpage.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - var territoryBorder = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("fieldset", { - display:"block", - margin: "6px", - width:"50%", - }); - - UIElems.gangTerritoryInfoText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p"); - - territoryBorder.appendChild(UIElems.gangTerritoryInfoText); - UIElems.gangTerritorySubpage.appendChild(territoryBorder); - - UIElems.gangContainer.appendChild(UIElems.gangTerritorySubpage); - UIElems.gangContainer.appendChild(UIElems.gangManagementSubpage); - document.getElementById("entire-game-container").appendChild(UIElems.gangContainer); - } - UIElems.gangContainer.style.display = "block"; - this.updateGangContent(); -} - -Gang.prototype.displayGangMemberList = function() { - Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__["removeChildrenFromElement"])(UIElems.gangMemberList); - UIElems.gangMemberPanels = {}; - const members = this.members; - const filter = UIElems.gangMemberFilter.value.toString(); - for (var i = 0; i < members.length; ++i) { - if (members[i].name.indexOf(filter) > -1 || members[i].task.indexOf(filter) > -1) { - this.createGangMemberDisplayElement(members[i]); - } - } -} - -Gang.prototype.updateGangContent = function() { - if (!UIElems.gangContentCreated) { return; } - - if (UIElems.gangMemberUpgradeBoxOpened) { - UIElems.gangMemberUpgradeBoxDiscount.childNodes[0].nodeValue = - "Discount: -" + _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(1 - 1 / this.getDiscount(), "0.00%"); - } - - if (UIElems.gangTerritorySubpage.style.display === "block") { - // Territory Warfare Clash Chance - UIElems.gangTerritoryWarfareClashChance.innerText = - `Territory Clash Chance: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(this.territoryClashChance, '0.000%')}`; - - // Engaged in Territory Warfare checkbox - UIElems.gangTerritoryWarfareCheckbox.checked = this.territoryWarfareEngaged; - - // Update territory information - UIElems.gangTerritoryInfoText.innerHTML = ""; - for (var gangname in AllGangs) { - if (AllGangs.hasOwnProperty(gangname)) { - var gangTerritoryInfo = AllGangs[gangname]; - let territory = gangTerritoryInfo.territory * 100; - - //Fix some rounding issues graphically - let displayNumber; - if (territory <= 0) { - displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(0, 2); - } else if (territory >= 100) { - displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(100, 2); - } else { - displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(territory, 2); - } - - if (gangname == this.facName) { - UIElems.gangTerritoryInfoText.innerHTML += ("" + gangname + "
(Power: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(gangTerritoryInfo.power, 6) + "): " + - displayNumber + "%

"); - } else { - UIElems.gangTerritoryInfoText.innerHTML += (gangname + "
(Power: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(gangTerritoryInfo.power, 6) + "): " + - displayNumber + "%

"); - } - } - } - } else { - //Update information for overall gang - if (UIElems.gangInfo instanceof Element) { - var faction = _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Factions */ "b"][this.facName]; - var rep; - if (!(faction instanceof _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Faction */ "a"])) { - rep = "ERROR"; - } else { - rep = faction.playerReputation; - } - Object(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_15__["removeChildrenFromElement"])(UIElems.gangInfo); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Respect - display: "inline-block", - innerText: "Respect: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.respect, 6) + - " (" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*this.respectGainRate, 6) + " / sec)", - tooltip: "Represents the amount of respect your gang has from other gangs and criminal " + - "organizations. Your respect affects the amount of money " + - "your gang members will earn, and also determines how much " + - "reputation you are earning with your gang's corresponding Faction." - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Wanted level - display: "inline-block", - innerText: "Wanted Level: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(this.wanted, 6) + - " (" + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*this.wantedGainRate, 6) + " / sec)", - tooltip: "Represents how much the gang is wanted by law enforcement. The higher " + - "your gang's wanted level, the harder it will be for your gang members " + - "to make money and earn respect. Note that the minimum wanted level is 1." - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - - var wantedPenalty = this.getWantedPenalty(); - wantedPenalty = (1 - wantedPenalty) * 100; - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Wanted Level multiplier - display: "inline-block", - innerText: `Wanted Level Penalty: -${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(wantedPenalty, 2)}%`, - tooltip: "Penalty for respect and money gain rates due to Wanted Level" - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Money gain rate - display: "inline-block", - innerText: `Money gain rate: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(5 * this.moneyGainRate, "$0.000a")} / sec`, - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - - //Fix some rounding issues graphically - var territoryMult = AllGangs[this.facName].territory * 100; - let displayNumber; - if (territoryMult <= 0) { - displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(0, 2); - } else if (territoryMult >= 100) { - displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(100, 2); - } else { - displayNumber = Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(territoryMult, 2); - } - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Territory multiplier - display: "inline-block", - innerText: `Territory: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(displayNumber, 3)}%`, - tooltip: "The percentage of total territory your Gang controls" - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Faction reputation - display:"inline-block", - innerText:"Faction reputation: " + Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(rep, 3) - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - - const CyclesPerSecond = 1000 / _engine__WEBPACK_IMPORTED_MODULE_2__["Engine"]._idleSpeed; - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { // Stored Cycles - innerText: `Bonus time(s): ${this.storedCycles / CyclesPerSecond}`, - display: "inline-block", - tooltip: "You gain bonus time while offline or when the game is inactive (e.g. when the tab is throttled by the browser). " + - "Bonus time makes the Gang mechanic progress faster, up to 5x the normal speed", - })); - UIElems.gangInfo.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); - } else { - console.error("gang-info DOM element DNE"); - } - - //Toggle the 'Recruit member button' if valid - const numMembers = this.members.length; - const respectCost = this.getRespectNeededToRecruitMember(); - - const btn = UIElems.gangRecruitMemberButton; - if (numMembers >= MaximumGangMembers) { - btn.className = "a-link-button-inactive"; - UIElems.gangRecruitRequirementText.style.display = "inline-block"; - UIElems.gangRecruitRequirementText.innerHTML = "You have reached the maximum amount of gang members"; - } else if (this.canRecruitMember()) { - btn.className = "a-link-button"; - UIElems.gangRecruitRequirementText.style.display = "none"; - } else { - btn.className = "a-link-button-inactive"; - UIElems.gangRecruitRequirementText.style.display = "inline-block"; - UIElems.gangRecruitRequirementText.innerHTML = `${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(respectCost, 2)} respect needed to recruit next member`; - } - - //Update information for each gang member - for (let i = 0; i < this.members.length; ++i) { - this.updateGangMemberDisplayElement(this.members[i]); - } - } -} - -//Takes in a GangMember object -Gang.prototype.createGangMemberDisplayElement = function(memberObj) { - if (!UIElems.gangContentCreated) { return; } - const name = memberObj.name; - - // Clear/Update the UIElems map to keep track of this gang member's panel - UIElems.gangMemberPanels[name] = {}; - - // Create the accordion - var accordion = Object(_utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_8__["createAccordionElement"])({ - id: name + "gang-member", - hdrText: name, - }); - const li = accordion[0]; - const hdr = accordion[1]; - const gangMemberDiv = accordion[2]; - - UIElems.gangMemberPanels[name]["panel"] = gangMemberDiv; - - // Gang member content divided into 3 panels: - // Panel 1 - Shows member's stats & Ascension stuff - const statsDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class: "gang-member-info-div", - id: name + "gang-member-stats", - tooltipsmall: [`Hk: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult * memberObj.hack_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_asc_mult, "0,0.00")} Asc)`, - `St: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult * memberObj.str_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_asc_mult, "0,0.00")} Asc)`, - `Df: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult * memberObj.def_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_asc_mult, "0,0.00")} Asc)`, - `Dx: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult * memberObj.dex_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_asc_mult, "0,0.00")} Asc)`, - `Ag: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult * memberObj.agi_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_asc_mult, "0,0.00")} Asc)`, - `Ch: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult * memberObj.cha_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_asc_mult, "0,0.00")} Asc)`].join("
"), - }); - UIElems.gangMemberPanels[name]["statsDiv"] = statsDiv; - const statsP = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { - display: "inline", - id: name + "gang-member-stats-text", - }); - const brElement = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br"); - const ascendButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { - class: "accordion-button", - innerText: "Ascend", - clickListener: () => { - const popupId = `gang-management-ascend-member ${memberObj.name}`; - const ascendBenefits = memberObj.getAscensionResults(); - const txt = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("pre", { - innerText: ["Are you sure you want to ascend this member? (S)he will lose all of", - "his non-Augmentation upgrades and his/her stats will reset back to 1.", - "", - `Furthermore, your gang will lose ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.earnedRespect, "0.000000")} respect`, - "", - "In return, (s)he will gain the following permanent boost to stat multipliers:\n", - `Hacking: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.hack, "0.00%")}`, - `Strength: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.str, "0.00%")}`, - `Defense: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.def, "0.00%")}`, - `Dexterity: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.dex, "0.00%")}`, - `Agility: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.agi, "0.00%")}`, - `Charisma: +${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(ascendBenefits.cha, "0.00%")}`].join("\n"), - }); - const confirmBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { - class: "std-button", - clickListener: () => { - this.ascendMember(memberObj); - this.updateGangMemberDisplayElement(memberObj); - Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); - return false; - }, - innerText: "Ascend", - }); - const cancelBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { - class: "std-button", - clickListener: () => { - Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__["removeElementById"])(popupId); - return false; - }, - innerText: "Cancel", - }); - Object(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_10__["createPopup"])(popupId, [txt, confirmBtn, cancelBtn]); - } - }); - const ascendHelpTip = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class: "help-tip", - clickListener: () => { - Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_5__["dialogBoxCreate"])(["Ascending a Gang Member resets the member's progress and stats in exchange", - "for a permanent boost to their stat multipliers.", - "

The additional stat multiplier that the Gang Member gains upon ascension", - "is based on the amount of multipliers the member has from non-Augmentation Equipment.", - "

Upon ascension, the member will lose all of its non-Augmentation Equipment and your", - "gang will lose respect equal to the total respect earned by the member."].join(" ")); - }, - innerText: "?", - marginTop: "5px", - }); - - statsDiv.appendChild(statsP); - statsDiv.appendChild(brElement); - statsDiv.appendChild(ascendButton); - statsDiv.appendChild(ascendHelpTip); - - // Panel 2 - Task Selection & Info - const taskDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class:"gang-member-info-div", - id: name + "gang-member-task", - }); - const taskSelector = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("select", { - id: name + "gang-member-task-selector", - }); - - // Get an array of the name of all tasks that are applicable for this Gang - let tasks = this.getAllTaskNames(); - tasks.unshift("---"); - - // Create selector for Gang member task - for (var i = 0; i < tasks.length; ++i) { - var option = document.createElement("option"); - option.text = tasks[i]; - taskSelector.add(option); - } - taskSelector.addEventListener("change", () => { - var task = taskSelector.options[taskSelector.selectedIndex].text; - memberObj.assignToTask(task); - this.setGangMemberTaskDescription(memberObj, task); - this.updateGangContent(); - }); - - // Set initial task in selector - if (GangMemberTasks.hasOwnProperty(memberObj.task)) { - var taskName = memberObj.task; - var taskIndex = 0; - for (let i = 0; i < tasks.length; ++i) { - if (taskName === tasks[i]) { - taskIndex = i; - break; - } - } - taskSelector.selectedIndex = taskIndex; - } - - var gainInfo = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", {id:name + "gang-member-gain-info"}); - taskDiv.appendChild(taskSelector); - taskDiv.appendChild(gainInfo); - - //Panel for Description of task - var taskDescDiv = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { - class:"gang-member-info-div", - id: name + "gang-member-task-desc", - }); - - var taskDescP = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("p", { - display:"inline", - id: name + "gang-member-task-description", - }); - taskDescDiv.appendChild(taskDescP); - - gangMemberDiv.appendChild(statsDiv); - gangMemberDiv.appendChild(taskDiv); - gangMemberDiv.appendChild(taskDescDiv); - - UIElems.gangMemberList.appendChild(li); - this.setGangMemberTaskDescription(memberObj, taskName); //Initialize description, TODO doesnt work rn - this.updateGangMemberDisplayElement(memberObj); -} - -Gang.prototype.updateGangMemberDisplayElement = function(memberObj) { - if (!UIElems.gangContentCreated) { return; } - var name = memberObj.name; - - // Update stats + exp - var stats = document.getElementById(name + "gang-member-stats-text"); - if (stats) { - stats.innerText = - [`Hacking: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.hack, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_exp, '(0.00a)')} exp)`, - `Strength: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.str, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_exp, '(0.00a)')} exp)`, - `Defense: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.def, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_exp, '(0.00a)')} exp)`, - `Dexterity: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.dex, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_exp, '(0.00a)')} exp)`, - `Agility: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.agi, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_exp, '(0.00a)')} exp)`, - `Charisma: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.cha, 0)} (${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_exp, '(0.00a)')} exp)`].join("\n"); - } - - // Update tooltip for stat multipliers - const panel = UIElems.gangMemberPanels[name]; - if (panel) { - const statsDiv = panel["statsDiv"]; - if (statsDiv) { - statsDiv.firstChild.innerHTML = - [`Hk: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult * memberObj.hack_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.hack_asc_mult, "0,0.00")} Asc)`, - `St: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult * memberObj.str_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.str_asc_mult, "0,0.00")} Asc)`, - `Df: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult * memberObj.def_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.def_asc_mult, "0,0.00")} Asc)`, - `Dx: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult * memberObj.dex_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.dex_asc_mult, "0,0.00")} Asc)`, - `Ag: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult * memberObj.agi_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.agi_asc_mult, "0,0.00")} Asc)`, - `Ch: x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult * memberObj.cha_asc_mult, "0,0.00")}(x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_mult, "0,0.00")} Eq, x${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_4__[/* numeralWrapper */ "a"].format(memberObj.cha_asc_mult, "0,0.00")} Asc)`].join("
"); - } - } - - // Update info about gang member's earnings/gains - var gainInfo = document.getElementById(name + "gang-member-gain-info"); - if (gainInfo) { - gainInfo.innerHTML = - [`Money: $ ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*memberObj.calculateMoneyGain(this), 2)} / sec`, - `Respect: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*memberObj.calculateRespectGain(this), 6)} / sec`, - `Wanted Level: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(5*memberObj.calculateWantedLevelGain(this), 6)} / sec`, - `Total Respect Earned: ${Object(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__["formatNumber"])(memberObj.earnedRespect, 6)}`].join("
"); - } -} - -Gang.prototype.setGangMemberTaskDescription = function(memberObj, taskName) { - const name = memberObj.name; - const taskDesc = document.getElementById(name + "gang-member-task-description"); - if (taskDesc) { - var task = GangMemberTasks[taskName]; - if (task == null) { task = GangMemberTasks["Unassigned"]; } - var desc = task.desc; - taskDesc.innerHTML = desc; - } -} - -Gang.prototype.clearUI = function() { - if (UIElems.gangContainer instanceof Element) { Object(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_16__["removeElement"])(UIElems.gangContainer); } - - for (const prop in UIElems) { - UIElems[prop] = null; - } - - UIElems.gangContentCreated = false; - UIElems.gangMemberUpgradeBoxOpened = false; - UIElems.gangMemberPanels = {}; -} - /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) /***/ }), @@ -35066,13 +35232,13 @@ Gang.prototype.clearUI = function() { /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Prestige__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Prestige */ 82); /* harmony import */ var _SourceFile__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SourceFile */ 64); -/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Terminal */ 46); +/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Terminal */ 48); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 16); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -35690,7 +35856,7 @@ function initBitNodeMultipliers() { _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].CorporationValuation = 0.5; break; case 6: //Bladeburner - _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].HackingLevelMultiplier = 0.5; + _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].HackingLevelMultiplier = 0.4; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].ServerMaxMoney = 0.5; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].ServerStartingMoney = 0.5; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].ServerStartingSecurity = 1.5; @@ -35707,7 +35873,7 @@ function initBitNodeMultipliers() { _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].BladeburnerRank = 0.6; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].BladeburnerSkillCost = 2; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].AugmentationMoneyCost = 3; - _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].HackingLevelMultiplier = 0.5; + _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].HackingLevelMultiplier = 0.4; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].ServerMaxMoney = 0.5; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].ServerStartingMoney = 0.5; _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__["BitNodeMultipliers"].ServerStartingSecurity = 1.5; @@ -35850,167 +36016,6 @@ function ipExists(ip) { /***/ }), /* 56 */ -/*!*********************************************!*\ - !*** ./utils/uiHelpers/appendLineBreaks.ts ***! - \*********************************************/ -/*! no static exports found */ -/*! exports used: appendLineBreaks */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const createElement_1 = __webpack_require__(/*! ./createElement */ 2); -/** - * Appends the specified number of breaks (as children) to the specified element - * @param el The element to add child break elements to. - * @param n The number of breaks to add. - */ -function appendLineBreaks(el, n) { - for (let i = 0; i < n; ++i) { - el.appendChild(createElement_1.createElement("br")); - } -} -exports.appendLineBreaks = appendLineBreaks; - - -/***/ }), -/* 57 */ -/*!*************************!*\ - !*** ./src/TextFile.ts ***! - \*************************/ -/*! no static exports found */ -/*! exports used: TextFile, createTextFile, getTextFile */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const DialogBox_1 = __webpack_require__(/*! ../utils/DialogBox */ 9); -const JSONReviver_1 = __webpack_require__(/*! ../utils/JSONReviver */ 14); -/** - * 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; - } -} -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) { - const filename = !fn.endsWith(".txt") ? `${fn}.txt` : fn; - for (const file of server.textFiles) { - if (file.fn === filename) { - return file; - } - } - return null; -} -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) { - // 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; - } - 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) { - 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; - } - } - return false; -} - - -/***/ }), -/* 58 */ /*!**********************************!*\ !*** ./src/CompanyManagement.js ***! \**********************************/ @@ -36023,19 +36028,19 @@ function deleteTextFile(fn, server) { /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BitNodeMultipliers */ 10); /* harmony import */ var _BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_BitNodeMultipliers__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Literature */ 76); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Locations */ 4); +/* harmony import */ var _Literature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Literature */ 75); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! decimal.js */ 31); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/uiHelpers/clearSelector */ 121); /* harmony import */ var _utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearSelector__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_12__); @@ -36043,13 +36048,13 @@ function deleteTextFile(fn, server) { /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_13__); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/helpers/getRandomInt */ 15); /* harmony import */ var _utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_getRandomInt__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_16__); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -40974,6 +40979,167 @@ _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_9__["Reviver"].constructors.Corporat +/***/ }), +/* 57 */ +/*!*********************************************!*\ + !*** ./utils/uiHelpers/appendLineBreaks.ts ***! + \*********************************************/ +/*! no static exports found */ +/*! exports used: appendLineBreaks */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const createElement_1 = __webpack_require__(/*! ./createElement */ 2); +/** + * Appends the specified number of breaks (as children) to the specified element + * @param el The element to add child break elements to. + * @param n The number of breaks to add. + */ +function appendLineBreaks(el, n) { + for (let i = 0; i < n; ++i) { + el.appendChild(createElement_1.createElement("br")); + } +} +exports.appendLineBreaks = appendLineBreaks; + + +/***/ }), +/* 58 */ +/*!*************************!*\ + !*** ./src/TextFile.ts ***! + \*************************/ +/*! no static exports found */ +/*! exports used: TextFile, createTextFile, getTextFile */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const DialogBox_1 = __webpack_require__(/*! ../utils/DialogBox */ 9); +const JSONReviver_1 = __webpack_require__(/*! ../utils/JSONReviver */ 14); +/** + * 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; + } +} +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) { + const filename = !fn.endsWith(".txt") ? `${fn}.txt` : fn; + for (const file of server.textFiles) { + if (file.fn === filename) { + return file; + } + } + return null; +} +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) { + // 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; + } + 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) { + 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; + } + } + return false; +} + + /***/ }), /* 59 */ /*!************************************!*\ @@ -41049,7 +41215,7 @@ exports.addOffset = addOffset; /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/uiHelpers/getElementById */ 48); +/* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/uiHelpers/getElementById */ 50); /* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_11__); @@ -41743,27 +41909,27 @@ function getHacknetNode(name) { /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Server */ 11); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/uiHelpers/createAccordionElement */ 72); +/* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/uiHelpers/createAccordionElement */ 71); /* harmony import */ var _utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createAccordionElement__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 50); +/* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/helpers/arrayToString */ 51); /* harmony import */ var _utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 78); +/* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/createProgressBarText */ 77); /* harmony import */ var _utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_createProgressBarText__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); -/* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/getElementById */ 48); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); +/* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/getElementById */ 50); /* harmony import */ var _utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_getElementById__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/LogBox */ 74); +/* harmony import */ var _utils_LogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/LogBox */ 73); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/uiHelpers/removeChildrenFromElement */ 27); /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_13__); /* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/uiHelpers/removeElement */ 65); /* harmony import */ var _utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElement__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 77); +/* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/helpers/roundToTwo */ 76); /* harmony import */ var _utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_roundToTwo__WEBPACK_IMPORTED_MODULE_15__); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui/navigationTracking */ 13); /* harmony import */ var _ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_ui_navigationTracking__WEBPACK_IMPORTED_MODULE_16__); @@ -42508,7 +42674,7 @@ var PurchaseAugmentationsOrderSetting; Object.defineProperty(exports, "__esModule", { value: true }); const JSONReviver_1 = __webpack_require__(/*! ../../utils/JSONReviver */ 14); -const CompanyPosition_1 = __webpack_require__(/*! ./CompanyPosition */ 71); +const CompanyPosition_1 = __webpack_require__(/*! ./CompanyPosition */ 79); const Constants_1 = __webpack_require__(/*! ../Constants */ 1); const DefaultConstructorParams = { name: "", @@ -42605,38 +42771,38 @@ JSONReviver_1.Reviver.constructors.Company = Company; "use strict"; /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return saveObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return loadGame; }); -/* harmony import */ var _Alias__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Alias */ 41); -/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Company/Companies */ 17); +/* harmony import */ var _Alias__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Alias */ 42); +/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Company/Companies */ 18); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Company/CompanyPosition */ 71); +/* harmony import */ var _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Company/CompanyPosition */ 79); /* harmony import */ var _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./engine */ 8); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Fconf */ 42); -/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Gang */ 52); +/* harmony import */ var _Fconf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Fconf */ 43); +/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Gang */ 47); /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./HacknetNode */ 61); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Message */ 36); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Message */ 37); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Script */ 29); +/* harmony import */ var _Script__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Script */ 28); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./StockMarket */ 23); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./StockMarket */ 22); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/DialogBox */ 9); -/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/GameOptions */ 79); +/* harmony import */ var _utils_GameOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/GameOptions */ 78); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 16); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_18__); /* harmony import */ var _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/JSONReviver */ 14); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_20__); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_21__); /* harmony import */ var _ui_createStatusText__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ui/createStatusText */ 93); /* harmony import */ var _ui_createStatusText__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_24__); /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! decimal.js */ 31); @@ -42749,6 +42915,31 @@ BitburnerSaveObject.prototype.saveGame = function(db) { Object(_ui_createStatusText__WEBPACK_IMPORTED_MODULE_22__["createStatusText"])("Game saved!"); } +// Makes necessary changes to the loaded/imported data to ensure +// the game stills works with new versions +function evaluateVersionCompatibility(ver) { + // This version refactored the Company/job-related code + if (ver <= "0.41.2") { + // Player's company position is now a string + if (_Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition != null && typeof _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition !== "string") { + console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); + _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition = _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition.positionName; + if (_Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition == null) { + _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition = ""; + } + } + + // The "companyName" property of all Companies is renamed to "name" + for (var companyName in _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"]) { + const company = _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"][companyName]; + if (company.name == null && company.companyName != null) { + console.log("Changed company name property to be compatible with v0.41.2"); + company.name = company.companyName; + } + } + } +} + function loadGame(saveString) { if (saveString === "" || saveString == null || saveString === undefined) { if (!window.localStorage.getItem("bitburnerSave")) { @@ -42826,23 +43017,8 @@ function loadGame(saveString) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_19__["Reviver"]); - // This version refactored the Company/job-related code - if (ver < "0.41.2") { - // Player's company position is now a string - if (_Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition !== "" || _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition instanceof _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2__["CompanyPosition"]) { - console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); - _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition = _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition.positionName; - } + evaluateVersionCompatibility(ver); - // The "companyName" property of all Companies is renamed to "name" - for (var companyName in _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"]) { - const company = _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"][companyName]; - if (company.name == null && company.companyName != null) { - console.log("Changed company name property to be compatible with v0.41.2"); - company.name = company.companyName; - } - } - } if (window.location.href.toLowerCase().includes("bitburner-beta")) { //Beta branch, always show changes createBetaUpdateText(); @@ -42940,23 +43116,7 @@ function loadImportedGame(saveObj, saveString) { if (tempSaveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(tempSaveObj.VersionSave, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_19__["Reviver"]); - // This version refactored the Company/job-related code - if (ver < "0.41.2") { - // Player's company position is now a string - if (_Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition !== "" || _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition instanceof _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2__["CompanyPosition"]) { - console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); - _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition = _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition.positionName; - } - - // The "companyName" property of all Companies is renamed to "name" - for (var companyName in _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"]) { - const company = _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"][companyName]; - if (company.name == null && company.companyName != null) { - console.log("Changed company name property to be compatible with v0.41.2"); - company.name = company.companyName; - } - } - } + evaluateVersionCompatibility(ver); } catch(e) { console.error("Parsing Version save failed: " + e); } @@ -43039,23 +43199,8 @@ function loadImportedGame(saveObj, saveString) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, _utils_JSONReviver__WEBPACK_IMPORTED_MODULE_19__["Reviver"]); - // This version refactored the Company/job-related code - if (ver < "0.41.2") { - // Player's company position is now a string - if (_Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition !== "" || _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition instanceof _Company_CompanyPosition__WEBPACK_IMPORTED_MODULE_2__["CompanyPosition"]) { - console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); - _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition = _Player__WEBPACK_IMPORTED_MODULE_10__[/* Player */ "a"].companyPosition.positionName; - } + evaluateVersionCompatibility(ver); - // The "companyName" property of all Companies is renamed to "name" - for (var companyName in _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"]) { - const company = _Company_Companies__WEBPACK_IMPORTED_MODULE_1__["Companies"][companyName]; - if (company.name == null && company.companyName != null) { - console.log("Changed company name property to be compatible with v0.41.2"); - company.name = company.companyName; - } - } - } if (ver != _Constants__WEBPACK_IMPORTED_MODULE_3__["CONSTANTS"].Version) { createNewUpdateText(); } @@ -43257,98 +43402,6 @@ function openImportFileHandler(evt) { /***/ }), /* 71 */ -/*!****************************************!*\ - !*** ./src/Company/CompanyPosition.ts ***! - \****************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const Constants_1 = __webpack_require__(/*! ../Constants */ 1); -const names = __webpack_require__(/*! ./data/CompanyPositionNames */ 51); -class CompanyPosition { - constructor(p) { - this.name = p.name; - this.nextPosition = p.nextPosition; - this.baseSalary = p.baseSalary; - this.repMultiplier = p.repMultiplier; - this.requiredHacking = (p.reqdHacking != null) ? p.reqdHacking : 0; - this.requiredStrength = (p.reqdStrength != null) ? p.reqdStrength : 0; - this.requiredDefense = (p.reqdDefense != null) ? p.reqdDefense : 0; - this.requiredDexterity = (p.reqdDexterity != null) ? p.reqdDexterity : 0; - this.requiredAgility = (p.reqdAgility != null) ? p.reqdAgility : 0; - this.requiredCharisma = (p.reqdCharisma != null) ? p.reqdCharisma : 0; - this.requiredReputation = (p.reqdReputation != null) ? p.reqdReputation : 0; - this.hackingEffectiveness = (p.hackingEffectiveness != null) ? p.hackingEffectiveness : 0; - this.strengthEffectiveness = (p.strengthEffectiveness != null) ? p.strengthEffectiveness : 0; - this.defenseEffectiveness = (p.defenseEffectiveness != null) ? p.defenseEffectiveness : 0; - this.dexterityEffectiveness = (p.dexterityEffectiveness != null) ? p.dexterityEffectiveness : 0; - this.agilityEffectiveness = (p.agilityEffectiveness != null) ? p.agilityEffectiveness : 0; - this.charismaEffectiveness = (p.charismaEffectiveness != null) ? p.charismaEffectiveness : 0; - if (Math.round(this.hackingEffectiveness + this.strengthEffectiveness + this.defenseEffectiveness + - this.dexterityEffectiveness + this.agilityEffectiveness + this.charismaEffectiveness) !== 100) { - console.error(`CompanyPosition ${this.name} parameters do not sum to 100`); - } - this.hackingExpGain = (p.hackingExpGain != null) ? p.hackingExpGain : 0; - this.strengthExpGain = (p.strengthExpGain != null) ? p.strengthExpGain : 0; - this.defenseExpGain = (p.defenseExpGain != null) ? p.defenseExpGain : 0; - this.dexterityExpGain = (p.dexterityExpGain != null) ? p.dexterityExpGain : 0; - this.agilityExpGain = (p.agilityExpGain != null) ? p.agilityExpGain : 0; - this.charismaExpGain = (p.charismaExpGain != null) ? p.charismaExpGain : 0; - } - calculateJobPerformance(hack, str, def, dex, agi, cha) { - const hackRatio = this.hackingEffectiveness * hack / Constants_1.CONSTANTS.MaxSkillLevel; - const strRatio = this.strengthEffectiveness * str / Constants_1.CONSTANTS.MaxSkillLevel; - const defRatio = this.defenseEffectiveness * def / Constants_1.CONSTANTS.MaxSkillLevel; - const dexRatio = this.dexterityEffectiveness * dex / Constants_1.CONSTANTS.MaxSkillLevel; - const agiRatio = this.agilityEffectiveness * agi / Constants_1.CONSTANTS.MaxSkillLevel; - const chaRatio = this.charismaEffectiveness * cha / Constants_1.CONSTANTS.MaxSkillLevel; - let reputationGain = this.repMultiplier * (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio) / 100; - if (isNaN(reputationGain)) { - console.error("Company reputation gain calculated to be NaN"); - reputationGain = 0; - } - return reputationGain; - } - isSoftwareJob() { - return names.SoftwareCompanyPositions.includes(this.name); - } - isITJob() { - return names.ITCompanyPositions.includes(this.name); - } - isSecurityEngineerJob() { - return names.SecurityEngineerCompanyPositions.includes(this.name); - } - isNetworkEngineerJob() { - return names.NetworkEngineerCompanyPositions.includes(this.name); - } - isBusinessJob() { - return names.BusinessCompanyPositions.includes(this.name); - } - isSecurityJob() { - return names.SecurityCompanyPositions.includes(this.name); - } - isAgentJob() { - return names.AgentCompanyPositions.includes(this.name); - } - isSoftwareConsultantJob() { - return names.SoftwareConsultantCompanyPositions.includes(this.name); - } - isBusinessConsultantJob() { - return names.BusinessConsultantCompanyPositions.includes(this.name); - } - isPartTimeJob() { - return names.PartTimeCompanyPositions.includes(this.name); - } -} -exports.CompanyPosition = CompanyPosition; - - -/***/ }), -/* 72 */ /*!***************************************************!*\ !*** ./utils/uiHelpers/createAccordionElement.ts ***! \***************************************************/ @@ -43393,7 +43446,7 @@ exports.createAccordionElement = createAccordionElement; /***/ }), -/* 73 */ +/* 72 */ /*!**************************************!*\ !*** ./utils/helpers/clearObject.ts ***! \**************************************/ @@ -43422,7 +43475,7 @@ exports.clearObject = clearObject; /***/ }), -/* 74 */ +/* 73 */ /*!*************************!*\ !*** ./utils/LogBox.js ***! \*************************/ @@ -43438,7 +43491,7 @@ exports.clearObject = clearObject; /* harmony import */ var _src_NetscriptWorker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/NetscriptWorker */ 24); /* harmony import */ var _uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uiHelpers/clearEventListeners */ 16); /* harmony import */ var _uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _helpers_arrayToString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/arrayToString */ 50); +/* harmony import */ var _helpers_arrayToString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/arrayToString */ 51); /* harmony import */ var _helpers_arrayToString__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_helpers_arrayToString__WEBPACK_IMPORTED_MODULE_2__); @@ -43512,7 +43565,7 @@ function logBoxUpdateText() { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) /***/ }), -/* 75 */ +/* 74 */ /*!************************!*\ !*** ./src/DarkWeb.js ***! \************************/ @@ -43524,9 +43577,9 @@ function logBoxUpdateText() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return checkIfConnectedToDarkweb; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return executeDarkwebTerminalCommand; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DarkWebItems; }); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateProgram */ 22); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateProgram */ 23); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SpecialServerIps */ 28); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SpecialServerIps */ 30); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ui/postToTerminal */ 7); /* harmony import */ var _ui_postToTerminal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ui_postToTerminal__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _utils_helpers_isValidIPAddress__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/helpers/isValidIPAddress */ 81); @@ -43652,7 +43705,7 @@ const DarkWebItems = { /***/ }), -/* 76 */ +/* 75 */ /*!***************************!*\ !*** ./src/Literature.js ***! \***************************/ @@ -44103,7 +44156,7 @@ function initLiterature() { /***/ }), -/* 77 */ +/* 76 */ /*!*************************************!*\ !*** ./utils/helpers/roundToTwo.ts ***! \*************************************/ @@ -44126,7 +44179,7 @@ exports.roundToTwo = roundToTwo; /***/ }), -/* 78 */ +/* 77 */ /*!************************************************!*\ !*** ./utils/helpers/createProgressBarText.ts ***! \************************************************/ @@ -44162,7 +44215,7 @@ exports.createProgressBarText = createProgressBarText; /***/ }), -/* 79 */ +/* 78 */ /*!******************************!*\ !*** ./utils/GameOptions.js ***! \******************************/ @@ -44221,6 +44274,98 @@ function gameOptionsBoxOpen() { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ 60))) +/***/ }), +/* 79 */ +/*!****************************************!*\ + !*** ./src/Company/CompanyPosition.ts ***! + \****************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const Constants_1 = __webpack_require__(/*! ../Constants */ 1); +const names = __webpack_require__(/*! ./data/CompanyPositionNames */ 34); +class CompanyPosition { + constructor(p) { + this.name = p.name; + this.nextPosition = p.nextPosition; + this.baseSalary = p.baseSalary; + this.repMultiplier = p.repMultiplier; + this.requiredHacking = (p.reqdHacking != null) ? p.reqdHacking : 0; + this.requiredStrength = (p.reqdStrength != null) ? p.reqdStrength : 0; + this.requiredDefense = (p.reqdDefense != null) ? p.reqdDefense : 0; + this.requiredDexterity = (p.reqdDexterity != null) ? p.reqdDexterity : 0; + this.requiredAgility = (p.reqdAgility != null) ? p.reqdAgility : 0; + this.requiredCharisma = (p.reqdCharisma != null) ? p.reqdCharisma : 0; + this.requiredReputation = (p.reqdReputation != null) ? p.reqdReputation : 0; + this.hackingEffectiveness = (p.hackingEffectiveness != null) ? p.hackingEffectiveness : 0; + this.strengthEffectiveness = (p.strengthEffectiveness != null) ? p.strengthEffectiveness : 0; + this.defenseEffectiveness = (p.defenseEffectiveness != null) ? p.defenseEffectiveness : 0; + this.dexterityEffectiveness = (p.dexterityEffectiveness != null) ? p.dexterityEffectiveness : 0; + this.agilityEffectiveness = (p.agilityEffectiveness != null) ? p.agilityEffectiveness : 0; + this.charismaEffectiveness = (p.charismaEffectiveness != null) ? p.charismaEffectiveness : 0; + if (Math.round(this.hackingEffectiveness + this.strengthEffectiveness + this.defenseEffectiveness + + this.dexterityEffectiveness + this.agilityEffectiveness + this.charismaEffectiveness) !== 100) { + console.error(`CompanyPosition ${this.name} parameters do not sum to 100`); + } + this.hackingExpGain = (p.hackingExpGain != null) ? p.hackingExpGain : 0; + this.strengthExpGain = (p.strengthExpGain != null) ? p.strengthExpGain : 0; + this.defenseExpGain = (p.defenseExpGain != null) ? p.defenseExpGain : 0; + this.dexterityExpGain = (p.dexterityExpGain != null) ? p.dexterityExpGain : 0; + this.agilityExpGain = (p.agilityExpGain != null) ? p.agilityExpGain : 0; + this.charismaExpGain = (p.charismaExpGain != null) ? p.charismaExpGain : 0; + } + calculateJobPerformance(hack, str, def, dex, agi, cha) { + const hackRatio = this.hackingEffectiveness * hack / Constants_1.CONSTANTS.MaxSkillLevel; + const strRatio = this.strengthEffectiveness * str / Constants_1.CONSTANTS.MaxSkillLevel; + const defRatio = this.defenseEffectiveness * def / Constants_1.CONSTANTS.MaxSkillLevel; + const dexRatio = this.dexterityEffectiveness * dex / Constants_1.CONSTANTS.MaxSkillLevel; + const agiRatio = this.agilityEffectiveness * agi / Constants_1.CONSTANTS.MaxSkillLevel; + const chaRatio = this.charismaEffectiveness * cha / Constants_1.CONSTANTS.MaxSkillLevel; + let reputationGain = this.repMultiplier * (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio) / 100; + if (isNaN(reputationGain)) { + console.error("Company reputation gain calculated to be NaN"); + reputationGain = 0; + } + return reputationGain; + } + isSoftwareJob() { + return names.SoftwareCompanyPositions.includes(this.name); + } + isITJob() { + return names.ITCompanyPositions.includes(this.name); + } + isSecurityEngineerJob() { + return names.SecurityEngineerCompanyPositions.includes(this.name); + } + isNetworkEngineerJob() { + return names.NetworkEngineerCompanyPositions.includes(this.name); + } + isBusinessJob() { + return names.BusinessCompanyPositions.includes(this.name); + } + isSecurityJob() { + return names.SecurityCompanyPositions.includes(this.name); + } + isAgentJob() { + return names.AgentCompanyPositions.includes(this.name); + } + isSoftwareConsultantJob() { + return names.SoftwareConsultantCompanyPositions.includes(this.name); + } + isBusinessConsultantJob() { + return names.BusinessConsultantCompanyPositions.includes(this.name); + } + isPartTimeJob() { + return names.PartTimeCompanyPositions.includes(this.name); + } +} +exports.CompanyPosition = CompanyPosition; + + /***/ }), /* 80 */ /*!***************************************!*\ @@ -44287,33 +44432,33 @@ exports.isValidIPAddress = isValidIPAddress; /* harmony import */ var _ActiveScriptsUI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActiveScriptsUI */ 62); /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Augmentations */ 21); /* harmony import */ var _BitNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BitNode */ 54); -/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Bladeburner */ 30); +/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Bladeburner */ 29); /* harmony import */ var _CinematicText__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CinematicText */ 91); -/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Company/Companies */ 17); +/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Company/Companies */ 18); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CreateProgram */ 22); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CreateProgram */ 23); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./engine */ 8); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Faction */ 12); -/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Gang */ 52); +/* harmony import */ var _Gang__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Gang */ 47); /* harmony import */ var _Location__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Location */ 84); -/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Message */ 36); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _Message__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Message */ 37); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptWorker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./NetscriptWorker */ 24); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Server */ 11); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./StockMarket */ 23); -/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Terminal */ 46); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./StockMarket */ 22); +/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Terminal */ 48); /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! decimal.js */ 31); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); /* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_21__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 37); +/* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/uiHelpers/createPopup */ 38); /* harmony import */ var _utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createPopup__WEBPACK_IMPORTED_MODULE_23__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -44453,6 +44598,10 @@ function prestigeAugmentation() { _Terminal__WEBPACK_IMPORTED_MODULE_18__[/* Terminal */ "a"].resetTerminalInput(); _engine__WEBPACK_IMPORTED_MODULE_7__["Engine"].loadTerminalContent(); + // Refresh Main Menu (the 'World' menu, specifically) + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); + //Red Pill if (Object(_Augmentations__WEBPACK_IMPORTED_MODULE_1__[/* augmentationExists */ "f"])(_Augmentations__WEBPACK_IMPORTED_MODULE_1__[/* AugmentationNames */ "b"].TheRedPill) && _Augmentations__WEBPACK_IMPORTED_MODULE_1__[/* Augmentations */ "c"][_Augmentations__WEBPACK_IMPORTED_MODULE_1__[/* AugmentationNames */ "b"].TheRedPill].owned) { @@ -44624,6 +44773,10 @@ function prestigeSourceFile() { _Player__WEBPACK_IMPORTED_MODULE_14__[/* Player */ "a"].corporation = null; _Player__WEBPACK_IMPORTED_MODULE_14__[/* Player */ "a"].bladeburner = null; + // Refresh Main Menu (the 'World' menu, specifically) + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); + //Gain int exp _Player__WEBPACK_IMPORTED_MODULE_14__[/* Player */ "a"].gainIntelligenceExp(5); } @@ -44645,38 +44798,38 @@ function prestigeSourceFile() { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return displayLocationContent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initLocationButtons; }); -/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Bladeburner */ 30); +/* harmony import */ var _Bladeburner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Bladeburner */ 29); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Company/CompanyPositions */ 25); /* harmony import */ var _Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Company_CompanyPositions__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Company/Companies */ 17); +/* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Company/Companies */ 18); /* harmony import */ var _Company_Companies__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Company_Companies__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Company/GetJobRequirementText */ 85); /* harmony import */ var _Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Company_GetJobRequirementText__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Company/data/CompanyPositionNames */ 51); +/* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Company/data/CompanyPositionNames */ 34); /* harmony import */ var _Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Company_data_CompanyPositionNames__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _CompanyManagement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CompanyManagement */ 58); +/* harmony import */ var _CompanyManagement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CompanyManagement */ 56); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Constants */ 1); /* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Constants__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Crimes */ 34); +/* harmony import */ var _Crimes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Crimes */ 35); /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./engine */ 8); /* harmony import */ var _Infiltration__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Infiltration */ 120); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); -/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Locations */ 4); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); +/* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Locations */ 5); /* harmony import */ var _Locations__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_Locations__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _ServerPurchases__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ServerPurchases */ 105); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SpecialServerIps */ 28); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _SpecialServerIps__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SpecialServerIps */ 30); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/uiHelpers/clearEventListeners */ 16); /* harmony import */ var _utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_clearEventListeners__WEBPACK_IMPORTED_MODULE_19__); /* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utils/IPAddress */ 55); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utils/StringHelperFunctions */ 3); /* harmony import */ var _utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_utils_StringHelperFunctions__WEBPACK_IMPORTED_MODULE_21__); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -46629,7 +46782,6 @@ function initLocationButtons() { name:companyName, }); displayLocationContent(); - document.getElementById("corporation-tab").style.display = "list-item"; document.getElementById("world-menu-header").click(); document.getElementById("world-menu-header").click(); Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_18__["dialogBoxCreate"])("Congratulations! You just started your own corporation. You can visit " + @@ -46659,7 +46811,6 @@ function initLocationButtons() { _Player__WEBPACK_IMPORTED_MODULE_12__[/* Player */ "a"].bladeburner = new _Bladeburner__WEBPACK_IMPORTED_MODULE_0__[/* Bladeburner */ "a"]({new:true}); Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_18__["dialogBoxCreate"])("You have been accepted into the Bladeburner division!"); displayLocationContent(); - document.getElementById("bladeburner-tab").style.display = "list-item"; document.getElementById("world-menu-header").click(); document.getElementById("world-menu-header").click(); } else { @@ -47035,7 +47186,7 @@ exports.getRandomByte = getRandomByte; "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return generateRandomContract; }); /* unused harmony export generateContract */ -/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CodingContracts */ 38); +/* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CodingContracts */ 40); /* harmony import */ var _CodingContracts__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_CodingContracts__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Faction */ 12); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Player */ 0); @@ -47216,8 +47367,8 @@ function getRandomFilename(server, reward) { /* harmony import */ var _utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeChildrenFromElement__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); /* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); -/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/helpers/isString */ 35); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); +/* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/helpers/isString */ 36); /* harmony import */ var _utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_utils_helpers_isString__WEBPACK_IMPORTED_MODULE_4__); @@ -47358,7 +47509,7 @@ exports.getNextCompanyPosition = getNextCompanyPosition; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const getElementById_1 = __webpack_require__(/*! ../../utils/uiHelpers/getElementById */ 48); +const getElementById_1 = __webpack_require__(/*! ../../utils/uiHelpers/getElementById */ 50); const threeSeconds = 3000; let x; /** @@ -47636,7 +47787,7 @@ exports.HelpTexts = { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Environment; }); /* harmony import */ var _HacknetNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HacknetNode */ 61); -/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NetscriptFunctions */ 40); +/* harmony import */ var _NetscriptFunctions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NetscriptFunctions */ 41); /* harmony import */ var _NetscriptPort__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NetscriptPort */ 66); @@ -47874,17 +48025,26 @@ function _getScriptUrls(script, scripts, seen) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return closeDevMenu; }); /* harmony import */ var _Augmentations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Augmentations */ 21); /* harmony import */ var _CodingContractGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CodingContractGenerator */ 90); -/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CreateProgram */ 22); +/* harmony import */ var _CreateProgram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CreateProgram */ 23); /* harmony import */ var _Faction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Faction */ 12); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Player */ 0); /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _RedPill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RedPill */ 53); -/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Terminal */ 46); -/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 43); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); -/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); -/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var _StockMarket__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./StockMarket */ 22); +/* harmony import */ var _Stock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Stock */ 26); +/* harmony import */ var _Stock__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Stock__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _Terminal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Terminal */ 48); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); +/* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/DialogBox */ 9); +/* harmony import */ var _utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/helpers/exceptionAlert */ 44); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/uiHelpers/createElement */ 2); +/* harmony import */ var _utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__); +/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/uiHelpers/removeElementById */ 20); +/* harmony import */ var _utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_14__); + + + + @@ -47902,18 +48062,18 @@ const devMenuContainerId = "dev-menu-container"; function createDevMenu() { if (false) {} - const devMenuText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h1", { + const devMenuText = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h1", { display: "block", innerText: "Development Menu - Only meant to be used for testing/debugging", }); // Generic - const genericHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { + const genericHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", { display: "block", innerText: "Generic" }); - const addMoney = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const addMoney = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].gainMoney(1e15); @@ -47922,7 +48082,7 @@ function createDevMenu() { innerText: "Add $1000t", }); - const addRam = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const addRam = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].getHomeComputer().maxRam *= 2; @@ -47931,7 +48091,7 @@ function createDevMenu() { innerText: "Double Home Computer RAM", }); - const triggerBitflume = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const triggerBitflume = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { Object(_RedPill__WEBPACK_IMPORTED_MODULE_6__[/* hackWorldDaemon */ "a"])(_Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].bitNodeN, true); @@ -47939,7 +48099,7 @@ function createDevMenu() { innerText: "Trigger BitFlume", }); - const destroyCurrentBitnode = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const destroyCurrentBitnode = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { Object(_RedPill__WEBPACK_IMPORTED_MODULE_6__[/* hackWorldDaemon */ "a"])(_Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].bitNodeN); @@ -47949,18 +48109,18 @@ function createDevMenu() { }); // Experience / stats - const statsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", { + const statsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", { display: "block", innerText: "Experience/Stats" }); - const statsHackingExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsHackingExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- hacking exp", type: "number", }); - const statsHackingExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsHackingExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsHackingExpInput.value); @@ -47970,13 +48130,13 @@ function createDevMenu() { innerText: "Add Hacking Exp", }); - const statsStrengthExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsStrengthExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- strength exp", type: "number", }); - const statsStrengthExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsStrengthExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsStrengthExpInput.value); @@ -47986,13 +48146,13 @@ function createDevMenu() { innerText: "Add Strength Exp", }); - const statsDefenseExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsDefenseExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- defense exp", type: "number", }); - const statsDefenseExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsDefenseExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsDefenseExpInput.value); @@ -48002,13 +48162,13 @@ function createDevMenu() { innerText: "Add Defense Exp", }); - const statsDexterityExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsDexterityExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- dexterity exp", type: "number", }); - const statsDexterityExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsDexterityExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsDexterityExpInput.value); @@ -48018,13 +48178,13 @@ function createDevMenu() { innerText: "Add Dexterity Exp", }); - const statsAgilityExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsAgilityExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- agility exp", type: "number", }); - const statsAgilityExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsAgilityExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsAgilityExpInput.value); @@ -48034,13 +48194,13 @@ function createDevMenu() { innerText: "Add Agility Exp", }); - const statsCharismaExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsCharismaExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- charisma exp", type: "number", }); - const statsCharismaExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsCharismaExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsCharismaExpInput.value); @@ -48050,13 +48210,13 @@ function createDevMenu() { innerText: "Add Charisma Exp", }); - const statsIntelligenceExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const statsIntelligenceExpInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", margin: "5px", placeholder: "+/- intelligence exp", type: "number", }); - const statsIntelligenceExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsIntelligenceExpButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const exp = parseInt(statsIntelligenceExpInput.value); @@ -48066,7 +48226,7 @@ function createDevMenu() { innerText: "Add Intelligence Exp", }); - const statsEnableIntelligenceButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsEnableIntelligenceButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].intelligence = 1; @@ -48074,7 +48234,7 @@ function createDevMenu() { innerText: "Enable Intelligence" }); - const statsDisableIntelligenceButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const statsDisableIntelligenceButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].intelligence = 0; @@ -48083,9 +48243,9 @@ function createDevMenu() { }); // Factions - const factionsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Factions"}); + const factionsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Factions"}); - const factionsDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("select", { + const factionsDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("select", { class: "dropdown", margin: "5px", }); @@ -48093,7 +48253,7 @@ function createDevMenu() { factionsDropdown.options[factionsDropdown.options.length] = new Option(_Faction__WEBPACK_IMPORTED_MODULE_3__[/* Factions */ "b"][i].name, _Faction__WEBPACK_IMPORTED_MODULE_3__[/* Factions */ "b"][i].name); } - const factionsAddButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const factionsAddButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const facName = factionsDropdown.options[factionsDropdown.selectedIndex].value; @@ -48103,9 +48263,9 @@ function createDevMenu() { }); // Augmentations / Source Files - const augmentationsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Augmentations"}); + const augmentationsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Augmentations"}); - const augmentationsDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("select", { + const augmentationsDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("select", { class: "dropdown", margin: "5px", }); @@ -48114,7 +48274,7 @@ function createDevMenu() { augmentationsDropdown.options[augmentationsDropdown.options.length] = new Option(augName, augName); } - const augmentationsQueueButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const augmentationsQueueButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].queueAugmentation(augmentationsDropdown.options[augmentationsDropdown.selectedIndex].value); @@ -48123,9 +48283,9 @@ function createDevMenu() { }) // Programs - const programsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Programs"}); + const programsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Programs"}); - const programsAddDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("select", { + const programsAddDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("select", { class: "dropdown", margin: "5px", }); @@ -48134,7 +48294,7 @@ function createDevMenu() { programsAddDropdown.options[programsAddDropdown.options.length] = new Option(progName, progName); } - const programsAddButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const programsAddButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const program = programsAddDropdown.options[programsAddDropdown.selectedIndex].value; @@ -48146,9 +48306,9 @@ function createDevMenu() { }) // Servers - const serversHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Servers"}); + const serversHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Servers"}); - const serversOpenAll = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const serversOpenAll = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { for (const i in _Server__WEBPACK_IMPORTED_MODULE_5__[/* AllServers */ "b"]) { @@ -48165,7 +48325,7 @@ function createDevMenu() { innerText: "Get Admin Rights to all servers", }); - const serversMinSecurityAll = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const serversMinSecurityAll = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { for (const i in _Server__WEBPACK_IMPORTED_MODULE_5__[/* AllServers */ "b"]) { @@ -48176,7 +48336,7 @@ function createDevMenu() { innerText: "Set all servers to min security", }); - const serversMaxMoneyAll = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const serversMaxMoneyAll = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { for (const i in _Server__WEBPACK_IMPORTED_MODULE_5__[/* AllServers */ "b"]) { @@ -48187,69 +48347,71 @@ function createDevMenu() { innerText: "Set all servers to max money", }); - const serversConnectToDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("select", {class: "dropdown"}); + const serversConnectToDropdown = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("select", {class: "dropdown"}); for (const i in _Server__WEBPACK_IMPORTED_MODULE_5__[/* AllServers */ "b"]) { const hn = _Server__WEBPACK_IMPORTED_MODULE_5__[/* AllServers */ "b"][i].hostname; serversConnectToDropdown.options[serversConnectToDropdown.options.length] = new Option(hn, hn); } - const serversConnectToButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const serversConnectToButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { const host = serversConnectToDropdown.options[serversConnectToDropdown.selectedIndex].value; - _Terminal__WEBPACK_IMPORTED_MODULE_7__[/* Terminal */ "a"].connectToServer(host); + _Terminal__WEBPACK_IMPORTED_MODULE_9__[/* Terminal */ "a"].connectToServer(host); }, innerText: "Connect to server", }); // Bladeburner - const bladeburnerHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Bladeburner"}); + const bladeburnerHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Bladeburner"}); - const bladeburnerGainRankInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const bladeburnerGainRankInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", + margin: "5px", placeholder: "Rank to gain (or negative to lose rank)", type: "number", }); - const bladeburnerGainRankButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const bladeburnerGainRankButton = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { try { const rank = parseInt(bladeburnerGainRankInput.value); _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].bladeburner.changeRank(rank); } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_8__[/* exceptionAlert */ "a"])(`Failed to change Bladeburner Rank in dev menu: ${e}`); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12__[/* exceptionAlert */ "a"])(`Failed to change Bladeburner Rank in dev menu: ${e}`); } }, innerText: "Gain Bladeburner Rank", }); // Gang - const gangHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Gang"}); + const gangHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Gang"}); - const gangStoredCyclesInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("input", { + const gangStoredCyclesInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { class: "text-input", + margin: "5px", placeholder: "# Cycles to add", type: "number", }); - const gangAddStoredCycles = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const gangAddStoredCycles = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { try { const cycles = parseInt(gangStoredCyclesInput.value); _Player__WEBPACK_IMPORTED_MODULE_4__[/* Player */ "a"].gang.storedCycles += cycles; } catch(e) { - Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_8__[/* exceptionAlert */ "a"])(`Failed to add stored cycles to gang mechanic: ${e}`); + Object(_utils_helpers_exceptionAlert__WEBPACK_IMPORTED_MODULE_12__[/* exceptionAlert */ "a"])(`Failed to add stored cycles to gang mechanic: ${e}`); } }, innerText: "Add cycles to Gang mechanic", }); // Coding Contracts - const contractsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("h2", {innerText: "Coding Contracts"}); + const contractsHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Coding Contracts"}); - const generateRandomContractBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("button", { + const generateRandomContractBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { class: "std-button", clickListener: () => { Object(_CodingContractGenerator__WEBPACK_IMPORTED_MODULE_1__[/* generateRandomContract */ "a"])(); @@ -48257,8 +48419,75 @@ function createDevMenu() { innerText: "Generate Random Contract", }); + // Stock Market + const stockmarketHeader = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("h2", {innerText: "Stock Market"}); + + const stockInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { + class: "text-input", + display: "block", + placeholder: "Stock symbol(s), or 'all'", + }); + + function processStocks(cb) { + const input = stockInput.value.toString().replace(/\s/g, ''); + + // Empty input, or "all", will process all stocks + if (input === "" || input.toLowerCase() === "all") { + for (const name in _StockMarket__WEBPACK_IMPORTED_MODULE_7__[/* StockMarket */ "c"]) { + if (_StockMarket__WEBPACK_IMPORTED_MODULE_7__[/* StockMarket */ "c"].hasOwnProperty(name)) { + const stock = _StockMarket__WEBPACK_IMPORTED_MODULE_7__[/* StockMarket */ "c"][name]; + if (stock instanceof _Stock__WEBPACK_IMPORTED_MODULE_8__["Stock"]) { + cb(stock); + } + } + } + return; + } + + const stockSymbols = input.split(","); + for (let i = 0; i < stockSymbols.length; ++i) { + const stock = _StockMarket__WEBPACK_IMPORTED_MODULE_7__[/* SymbolToStockMap */ "e"][stockSymbols]; + if (stock instanceof _Stock__WEBPACK_IMPORTED_MODULE_8__["Stock"]) { + cb(stock); + } + } + } + + const stockPriceChangeInput = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("input", { + class: "text-input", + margin: "5px", + placeholder: "Price to change stock(s) to", + type: "number", + }); + + const stockPriceChangeBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { + class: "std-button", + clickListener: () => { + const price = parseInt(stockPriceChangeInput.value); + if (isNaN(price)) { return; } + + processStocks((stock) => { + stock.price = price; + }); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_11__["dialogBoxCreate"])(`Stock Prices changed to ${price}`); + }, + innerText: "Change Stock Price(s)", + }); + + const stockViewPriceCapBtn = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("button", { + class: "std-button", + clickListener: () => { + let text = ""; + processStocks((stock) => { + text += `${stock.symbol}: ${_ui_numeralFormat__WEBPACK_IMPORTED_MODULE_10__[/* numeralWrapper */ "a"].format(stock.cap, '$0.000a')}
`; + }); + Object(_utils_DialogBox__WEBPACK_IMPORTED_MODULE_11__["dialogBoxCreate"])(text); + }, + innerText: "View Stock Price Caps", + }); + // Add everything to container, then append to main menu - const devMenuContainer = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("div", { + const devMenuContainer = Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("div", { class: "generic-menupage-container", id: devMenuContainerId, }); @@ -48272,25 +48501,25 @@ function createDevMenu() { devMenuContainer.appendChild(statsHeader); devMenuContainer.appendChild(statsHackingExpInput); devMenuContainer.appendChild(statsHackingExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsStrengthExpInput); devMenuContainer.appendChild(statsStrengthExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsDefenseExpInput); devMenuContainer.appendChild(statsDefenseExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsDexterityExpInput); devMenuContainer.appendChild(statsDexterityExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsAgilityExpInput); devMenuContainer.appendChild(statsAgilityExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsCharismaExpInput); devMenuContainer.appendChild(statsCharismaExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsIntelligenceExpInput); devMenuContainer.appendChild(statsIntelligenceExpButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(statsEnableIntelligenceButton); devMenuContainer.appendChild(statsDisableIntelligenceButton); devMenuContainer.appendChild(factionsHeader); @@ -48311,13 +48540,19 @@ function createDevMenu() { devMenuContainer.appendChild(bladeburnerHeader); devMenuContainer.appendChild(bladeburnerGainRankInput); devMenuContainer.appendChild(bladeburnerGainRankButton); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(gangHeader); devMenuContainer.appendChild(gangStoredCyclesInput); devMenuContainer.appendChild(gangAddStoredCycles); - devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_9__["createElement"])("br")); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); devMenuContainer.appendChild(contractsHeader); devMenuContainer.appendChild(generateRandomContractBtn); + devMenuContainer.appendChild(stockmarketHeader); + devMenuContainer.appendChild(stockInput); + devMenuContainer.appendChild(stockPriceChangeInput); + devMenuContainer.appendChild(stockPriceChangeBtn); + devMenuContainer.appendChild(Object(_utils_uiHelpers_createElement__WEBPACK_IMPORTED_MODULE_13__["createElement"])("br")); + devMenuContainer.appendChild(stockViewPriceCapBtn); const entireGameContainer = document.getElementById("entire-game-container"); if (entireGameContainer == null) { @@ -48327,7 +48562,7 @@ function createDevMenu() { } function closeDevMenu() { - Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_10__["removeElementById"])(devMenuContainerId); + Object(_utils_uiHelpers_removeElementById__WEBPACK_IMPORTED_MODULE_14__["removeElementById"])(devMenuContainerId); } @@ -48349,7 +48584,7 @@ function closeDevMenu() { /* harmony import */ var _Server__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Server */ 11); /* harmony import */ var _utils_DialogBox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/DialogBox */ 9); /* harmony import */ var _utils_IPAddress__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/IPAddress */ 55); -/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/YesNoBox */ 18); +/* harmony import */ var _utils_YesNoBox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/YesNoBox */ 17); @@ -48607,7 +48842,7 @@ exports.FactionInfos = { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const getElementById_1 = __webpack_require__(/*! ./getElementById */ 48); +const getElementById_1 = __webpack_require__(/*! ./getElementById */ 50); const removeElementById_1 = __webpack_require__(/*! ./removeElementById */ 20); /** * Routes the player from the Loading screen to the main game content. @@ -48641,7 +48876,7 @@ exports.removeLoadingScreen = removeLoadingScreen; /* harmony import */ var _engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../engine */ 8); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Settings */ 19); /* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Settings__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _numeralFormat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./numeralFormat */ 5); +/* harmony import */ var _numeralFormat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./numeralFormat */ 4); @@ -48764,7 +48999,7 @@ function setSettingsLabels() { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CharacterOverview; }); /* harmony import */ var _Player__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Player */ 0); -/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/numeralFormat */ 5); +/* harmony import */ var _ui_numeralFormat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui/numeralFormat */ 4); @@ -48837,7 +49072,7 @@ CharacterOverview.prototype.update = function() { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Interpreter; }); -/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/acorn */ 44); +/* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/acorn */ 45); /* harmony import */ var _utils_acorn__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_utils_acorn__WEBPACK_IMPORTED_MODULE_0__); /** @@ -55838,6 +56073,17 @@ exports.gangMemberTasksMetadata = [ /***/ }), /* 160 */, /* 161 */ +/*!************************************!*\ + !*** ./css/characteroverview.scss ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), +/* 162 */, +/* 163 */ /*!***************************!*\ !*** ./css/mainmenu.scss ***! \***************************/ @@ -55847,8 +56093,8 @@ exports.gangMemberTasksMetadata = [ // extracted by mini-css-extract-plugin /***/ }), -/* 162 */, -/* 163 */ +/* 164 */, +/* 165 */ /*!**************************!*\ !*** ./css/buttons.scss ***! \**************************/ @@ -55858,8 +56104,8 @@ exports.gangMemberTasksMetadata = [ // extracted by mini-css-extract-plugin /***/ }), -/* 164 */, -/* 165 */ +/* 166 */, +/* 167 */ /*!*************************!*\ !*** ./css/styles.scss ***! \*************************/ @@ -55869,15 +56115,15 @@ exports.gangMemberTasksMetadata = [ // extracted by mini-css-extract-plugin /***/ }), -/* 166 */, -/* 167 */, /* 168 */, /* 169 */, /* 170 */, /* 171 */, /* 172 */, /* 173 */, -/* 174 */ +/* 174 */, +/* 175 */, +/* 176 */ /*!******************************************************!*\ !*** ./src/Company/data/CompanyPositionsMetadata.ts ***! \******************************************************/ @@ -55888,7 +56134,7 @@ exports.gangMemberTasksMetadata = [ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const posNames = __webpack_require__(/*! ./CompanyPositionNames */ 51); +const posNames = __webpack_require__(/*! ./CompanyPositionNames */ 34); exports.companyPositionMetadata = [ { name: posNames.SoftwareCompanyPositions[0], @@ -56072,7 +56318,7 @@ exports.companyPositionMetadata = [ baseSalary: 410, charismaEffectiveness: 20, charismaExpGain: 0.1, - hackingEffectiveness: 0.80, + hackingEffectiveness: 80, hackingExpGain: 0.5, reqdCharisma: 76, reqdHacking: 251, @@ -56306,7 +56552,7 @@ exports.companyPositionMetadata = [ }, { name: posNames.AgentCompanyPositions[0], - nextPosition: posNames.AgentCompanyPositions[0], + nextPosition: posNames.AgentCompanyPositions[1], baseSalary: 330, hackingEffectiveness: 10, strengthEffectiveness: 15, @@ -56330,8 +56576,8 @@ exports.companyPositionMetadata = [ repMultiplier: 1, }, { - name: posNames.AgentCompanyPositions[0], - nextPosition: posNames.AgentCompanyPositions[0], + name: posNames.AgentCompanyPositions[1], + nextPosition: posNames.AgentCompanyPositions[2], baseSalary: 990, hackingEffectiveness: 15, strengthEffectiveness: 15, @@ -56355,7 +56601,7 @@ exports.companyPositionMetadata = [ repMultiplier: 1.25, }, { - name: posNames.AgentCompanyPositions[0], + name: posNames.AgentCompanyPositions[2], nextPosition: null, baseSalary: 2000, hackingEffectiveness: 15, @@ -56445,7 +56691,7 @@ exports.companyPositionMetadata = [ repMultiplier: 1, }, { - name: posNames.BusinessConsultantCompanyPositions[0], + name: posNames.BusinessConsultantCompanyPositions[1], nextPosition: null, baseSalary: 525, hackingEffectiveness: 15, @@ -56490,7 +56736,7 @@ exports.companyPositionMetadata = [ /***/ }), -/* 175 */ +/* 177 */ /*!**********************!*\ !*** ./netscript.js ***! \**********************/ @@ -56562,7 +56808,7 @@ let NetscriptFunctions = "hack|sleep|grow|weaken|print|tprint|scan|nuke|brutessh|ftpcrack|" + //Netscript functions "clearLog|disableLog|enableLog|isLogEnabled|getScriptLogs|" + "relaysmtp|httpworm|sqlinject|run|exec|spawn|kill|killall|exit|" + - "scp|ls|hasRootAccess|" + + "scp|ls|ps|hasRootAccess|" + "getIp|getHackingMultipliers|getBitNodeMultipliers|getStats|isBusy|" + "getHacknetMultipliers|" + "getHostname|getHackingLevel|getServerMoneyAvailable|getServerMaxMoney|" + @@ -56595,6 +56841,7 @@ let NetscriptFunctions = "getStockPrice|getStockPosition|getStockSymbols|buyStock|sellStock|" + "shortStock|sellShort|" + "placeOrder|cancelOrder|getStockVolatility|getStockForecast|" + + "purchase4SMarketData|purchase4SMarketDataTixApi|" + // Hacknet Node API "hacknet|numNodes|purchaseNode|getPurchaseNodeCost|getNodeStats|" + @@ -56606,7 +56853,7 @@ let NetscriptFunctions = "getMemberNames|getGangInformation|getMemberInformation|canRecruitMember|" + "recruitMember|getTaskNames|setMemberTask|getEquipmentNames|" + "getEquipmentCost|purchaseEquipment|ascendMember|setTerritoryWarfare|" + - "getBonusTime|" + + "getChanceToWinClash|getBonusTime|" + // Bladeburner API "bladeburner|getContractNames|getOperationNames|getBlackOpNames|" + @@ -57332,7 +57579,7 @@ oop.inherits(Mode, TextMode); }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(/*! brace/worker/javascript */ 176), "JavaScriptWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(/*! brace/worker/javascript */ 178), "JavaScriptWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(results) { @@ -57354,11 +57601,11 @@ exports.Mode = Mode; /***/ }), -/* 176 */, -/* 177 */, /* 178 */, /* 179 */, -/* 180 */ +/* 180 */, +/* 181 */, +/* 182 */ /*!*****************************************!*\ !*** ./src/data/codingcontracttypes.ts ***! \*****************************************/ @@ -57452,7 +57699,7 @@ exports.codingContractTypesMetadata = [ " 2 + 2\n", " 2 + 1 + 1\n", " 1 + 1 + 1 + 1\n\n", - `How many different ways can ${n} be written as a sum of at least`, + `How many different ways can the number ${n} be written as a sum of at least`, "two positive integers?"].join(" "); }, difficulty: 1.5, @@ -57735,8 +57982,8 @@ exports.codingContractTypesMetadata = [ }, { desc: (data) => { - return ["You are given the following array of stock prices where the i-th element", - "represents the stock price on day i:\n\n", + return ["You are given the following array of stock prices (which are numbers)", + "where the i-th element represents the stock price on day i:\n\n", `${data}\n\n`, "Determine the maximum possible profit you can earn using at most", "one transaction (i.e. you can only buy and sell the stock once). If no profit can be made", @@ -57767,8 +58014,8 @@ exports.codingContractTypesMetadata = [ }, { desc: (data) => { - return ["You are given the following array of stock prices where the i-th element", - "represents the stock price on day i:\n\n", + return ["You are given the following array of stock prices (which are numbers)", + "where the i-th element represents the stock price on day i:\n\n", `${data}\n\n`, "Determine the maximum possible profit you can earn using as many", "transactions as you'd like. A transaction is defined as buying", @@ -57799,8 +58046,8 @@ exports.codingContractTypesMetadata = [ }, { desc: (data) => { - return ["You are given the following array of stock prices where the i-th element", - "represents the stock price on day i:\n\n", + return ["You are given the following array of stock prices (which are numbers)", + "where the i-th element represents the stock price on day i:\n\n", `${data}\n\n`, "Determine the maximum possible profit you can earn using at most", "two transactions. A transaction is defined as buying", @@ -57839,7 +58086,7 @@ exports.codingContractTypesMetadata = [ /***/ }), -/* 181 */ +/* 183 */ /*!***********************************!*\ !*** ./utils/SafeObjectAssign.ts ***! \***********************************/ @@ -57861,7 +58108,7 @@ exports.SafeObjectAssign = SafeObjectAssign; /***/ }), -/* 182 */ +/* 184 */ /*!***********************************************!*\ !*** ./src/Company/data/CompaniesMetadata.ts ***! \***********************************************/ @@ -57872,9 +58119,9 @@ exports.SafeObjectAssign = SafeObjectAssign; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const Locations_1 = __webpack_require__(/*! ../../Locations */ 4); -const posNames = __webpack_require__(/*! ./CompanyPositionNames */ 51); -const SafeObjectAssign_1 = __webpack_require__(/*! ../../../utils/SafeObjectAssign */ 181); +const Locations_1 = __webpack_require__(/*! ../../Locations */ 5); +const posNames = __webpack_require__(/*! ./CompanyPositionNames */ 34); +const SafeObjectAssign_1 = __webpack_require__(/*! ../../../utils/SafeObjectAssign */ 183); // Create Objects containing Company Positions by category // Will help in metadata construction later const AllSoftwarePositions = {}; @@ -58254,8 +58501,6 @@ exports.companiesMetadata = [ /***/ }), -/* 183 */, -/* 184 */, /* 185 */, /* 186 */, /* 187 */, @@ -58290,7 +58535,9 @@ exports.companiesMetadata = [ /* 216 */, /* 217 */, /* 218 */, -/* 219 */ +/* 219 */, +/* 220 */, +/* 221 */ /*!**********************!*\ !*** util (ignored) ***! \**********************/ @@ -58301,7 +58548,7 @@ exports.companiesMetadata = [ /* (ignored) */ /***/ }), -/* 220 */ +/* 222 */ /*!**********************!*\ !*** util (ignored) ***! \**********************/ diff --git a/dist/engine.css b/dist/engine.css index 710828456..f76aa1316 100644 --- a/dist/engine.css +++ b/dist/engine.css @@ -305,96 +305,6 @@ a:visited { top: 0; width: auto; } -/* Character Overview */ -#character-overview-wrapper { - position: relative; } - -#character-overview-container { - display: none; - position: absolute; - /* Stay in place */ - right: 0; - top: 0; - height: auto; - /* Full height */ - padding: 10px 2px; - border: 2px solid var(--my-highlight-color); - width: auto; - max-width: 280px; - overflow: auto; - /* Enable scroll if needed */ - background-color: rgba(57, 54, 54, 0.9); - /* Fallback color */ - z-index: 1; } - -#character-overview-text { - color: #faffdf; } - #character-overview-text table { - border-collapse: collapse; - margin: auto; } - #character-overview-text td { - padding: 2px; - vertical-align: middle; } - -.character-stat-text { - color: #fff; - background-color: #444; } - -.character-stat-cell { - text-align: right; } - -#character-hack-wrapper td, -#character-agi-wrapper td { - border-bottom: 1px #aaa solid; - padding-bottom: 10px; } - -#character-str-wrapper td, -#character-cha-wrapper td { - padding-top: 10px; } - -#character-hp-wrapper { - color: #dd3434; } - -#character-money-wrapper { - color: #ffd700; } - -#character-hack-wrapper { - color: #adff2f; } - -#character-cha-wrapper { - color: #a671d1; } - -#character-int-wrapper { - color: #6495ed; } - -#character-overview-save-button, -#character-overview-options-button { - -webkit-border-radius: 12px; - -moz-border-radius: 12px; - border-radius: 12px; - -webkit-box-shadow: 1px 1px 3px #000; - -moz-box-shadow: 1px 1px 3px #000; - box-shadow: 1px 1px 3px #000; - color: #cecece; - display: inline-block; - font-size: 14px; - font-weight: bold; - height: 25px; - background-color: #000; - padding: 5px 8px; } - -.character-quick-options { - margin-top: 10px; - text-align: center; } - -#character-overview-save-button:hover, -#character-overview-save-button:focus, -#character-overview-options-button:hover, -#character-overview-options-button:focus { - color: #fff; - text-decoration: none; - cursor: pointer; } - /* Scan analyze links from AutoLink */ .scan-analyze-link { cursor: pointer; @@ -678,6 +588,97 @@ button { opacity: 1; transition: max-height 0.2s ease-out; } +/* COLORS */ +/* Attributes */ +/** + * Styling for the Character Overview Panel (top-right) + */ +#character-overview-wrapper { + position: relative; } + +#character-overview-container { + display: none; + position: absolute; + /* Stay in place */ + right: 0; + top: 0; + height: auto; + /* Full height */ + padding: 10px 2px; + border: 2px solid var(--my-highlight-color); + width: auto; + max-width: 280px; + overflow: auto; + /* Enable scroll if needed */ + background-color: rgba(57, 54, 54, 0.9); + /* Fallback color */ + z-index: 1; } + +#character-overview-text { + color: #faffdf; } + #character-overview-text table { + border-collapse: collapse; + margin: auto; } + #character-overview-text td { + padding: 2px; + vertical-align: middle; } + +.character-stat-text { + color: #fff; + background-color: #444; } + +.character-stat-cell { + text-align: right; } + +#character-hack-wrapper td, +#character-agi-wrapper td { + border-bottom: 1px #aaa solid; + padding-bottom: 10px; } + +#character-str-wrapper td, +#character-cha-wrapper td { + padding-top: 10px; } + +#character-hp-wrapper { + color: #dd3434; } + +#character-money-wrapper { + color: #ffd700; } + +#character-hack-wrapper { + color: #adff2f; } + +#character-cha-wrapper { + color: #a671d1; } + +#character-int-wrapper { + color: #6495ed; } + +.character-overview-btn { + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: 1px 1px 3px #000; + -moz-box-shadow: 1px 1px 3px #000; + box-shadow: 1px 1px 3px #000; + color: #cecece; + display: inline-block; + font-size: 14px; + font-weight: bold; + height: 25px; + background-color: #000; + padding: 5px 8px; } + +.character-quick-options { + margin-top: 10px; + text-align: center; } + +.character-overview-btn:hover, +.character-overview-btn:focus { + color: #fff; + text-decoration: none; + cursor: pointer; } + /* COLORS */ /* Attributes */ #terminal-container { diff --git a/dist/vendor.bundle.js b/dist/vendor.bundle.js index 348bab9df..49f4c378b 100644 --- a/dist/vendor.bundle.js +++ b/dist/vendor.bundle.js @@ -15211,9 +15211,9 @@ return jQuery; var support = __webpack_require__(/*! ./support */ 96); -var base64 = __webpack_require__(/*! ./base64 */ 215); +var base64 = __webpack_require__(/*! ./base64 */ 217); var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 131); -var setImmediate = __webpack_require__(/*! core-js/library/fn/set-immediate */ 332); +var setImmediate = __webpack_require__(/*! core-js/library/fn/set-immediate */ 334); var external = __webpack_require__(/*! ./external */ 111); @@ -17248,7 +17248,7 @@ else { } try { - exports.nodestream = !!__webpack_require__(/*! readable-stream */ 223).Readable; + exports.nodestream = !!__webpack_require__(/*! readable-stream */ 225).Readable; } catch(e) { exports.nodestream = false; } @@ -17330,8 +17330,8 @@ try { FORMAT_MINIFY, FORMAT_DEFAULTS; - estraverse = __webpack_require__(/*! estraverse */ 294); - esutils = __webpack_require__(/*! esutils */ 292); + estraverse = __webpack_require__(/*! estraverse */ 296); + esutils = __webpack_require__(/*! esutils */ 294); Syntax = estraverse.Syntax; @@ -19811,7 +19811,7 @@ try { if (!exports.browser) { // We assume environment is node.js // And prevent from including source-map by browserify - SourceNode = __webpack_require__(/*! source-map */ 289).SourceNode; + SourceNode = __webpack_require__(/*! source-map */ 291).SourceNode; } else { SourceNode = global.sourceMap.SourceNode; } @@ -19858,7 +19858,7 @@ try { FORMAT_DEFAULTS = getDefaultOptions().format; - exports.version = __webpack_require__(/*! ./package.json */ 282).version; + exports.version = __webpack_require__(/*! ./package.json */ 284).version; exports.generate = generate; exports.attachComments = estraverse.attachComments; exports.Precedence = updateDeeply({}, Precedence); @@ -20058,13 +20058,13 @@ exports.version = '4.1.2'; * Assertion Error */ -exports.AssertionError = __webpack_require__(/*! assertion-error */ 189); +exports.AssertionError = __webpack_require__(/*! assertion-error */ 191); /*! * Utils for plugins (not exported) */ -var util = __webpack_require__(/*! ./chai/utils */ 277); +var util = __webpack_require__(/*! ./chai/utils */ 279); /** * # .use(function) @@ -20102,35 +20102,35 @@ exports.config = config; * Primary `Assertion` prototype */ -var assertion = __webpack_require__(/*! ./chai/assertion */ 261); +var assertion = __webpack_require__(/*! ./chai/assertion */ 263); exports.use(assertion); /*! * Core Assertions */ -var core = __webpack_require__(/*! ./chai/core/assertions */ 260); +var core = __webpack_require__(/*! ./chai/core/assertions */ 262); exports.use(core); /*! * Expect interface */ -var expect = __webpack_require__(/*! ./chai/interface/expect */ 259); +var expect = __webpack_require__(/*! ./chai/interface/expect */ 261); exports.use(expect); /*! * Should interface */ -var should = __webpack_require__(/*! ./chai/interface/should */ 258); +var should = __webpack_require__(/*! ./chai/interface/should */ 260); exports.use(should); /*! * Assert interface */ -var assert = __webpack_require__(/*! ./chai/interface/assert */ 257); +var assert = __webpack_require__(/*! ./chai/interface/assert */ 259); exports.use(assert); @@ -20193,8 +20193,8 @@ var util = __webpack_require__(/*! core-util-is */ 112); util.inherits = __webpack_require__(/*! inherits */ 108); /**/ -var Readable = __webpack_require__(/*! ./_stream_readable */ 222); -var Writable = __webpack_require__(/*! ./_stream_writable */ 171); +var Readable = __webpack_require__(/*! ./_stream_readable */ 224); +var Writable = __webpack_require__(/*! ./_stream_writable */ 173); util.inherits(Duplex, Readable); @@ -21115,7 +21115,7 @@ var ES6Promise = null; if (typeof Promise !== "undefined") { ES6Promise = Promise; } else { - ES6Promise = __webpack_require__(/*! lie */ 318); + ES6Promise = __webpack_require__(/*! lie */ 320); } /** @@ -21265,9 +21265,9 @@ function objectToString(o) { -var base64 = __webpack_require__(/*! base64-js */ 342) -var ieee754 = __webpack_require__(/*! ieee754 */ 341) -var isArray = __webpack_require__(/*! isarray */ 224) +var base64 = __webpack_require__(/*! base64-js */ 344) +var ieee754 = __webpack_require__(/*! ieee754 */ 343) +var isArray = __webpack_require__(/*! isarray */ 226) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer @@ -23264,7 +23264,7 @@ process.umask = function() { return 0; }; var config = __webpack_require__(/*! ../config */ 99); var flag = __webpack_require__(/*! ./flag */ 88); -var getProperties = __webpack_require__(/*! ./getProperties */ 186); +var getProperties = __webpack_require__(/*! ./getProperties */ 188); var isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 128); /*! @@ -23509,9 +23509,9 @@ module.exports = function isProxyEnabled() { // This is (almost) directly from Node.js utils // https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js -var getName = __webpack_require__(/*! get-func-name */ 187); -var getProperties = __webpack_require__(/*! ./getProperties */ 186); -var getEnumerableProperties = __webpack_require__(/*! ./getEnumerableProperties */ 272); +var getName = __webpack_require__(/*! get-func-name */ 189); +var getProperties = __webpack_require__(/*! ./getProperties */ 188); +var getEnumerableProperties = __webpack_require__(/*! ./getEnumerableProperties */ 274); var config = __webpack_require__(/*! ../config */ 99); module.exports = inspect; @@ -24968,7 +24968,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 */ 179) !== null) && (__webpack_require__(/*! !webpack amd options */ 295) !== null)) { +} else if (("function" !== "undefined" && __webpack_require__(/*! !webpack amd define */ 181) !== null) && (__webpack_require__(/*! !webpack amd options */ 297) !== null)) { !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return saveAs; }).call(exports, __webpack_require__, exports, module), @@ -25023,10 +25023,10 @@ function JSZip() { return newObj; }; } -JSZip.prototype = __webpack_require__(/*! ./object */ 343); -JSZip.prototype.loadAsync = __webpack_require__(/*! ./load */ 300); +JSZip.prototype = __webpack_require__(/*! ./object */ 345); +JSZip.prototype.loadAsync = __webpack_require__(/*! ./load */ 302); JSZip.support = __webpack_require__(/*! ./support */ 96); -JSZip.defaults = __webpack_require__(/*! ./defaults */ 209); +JSZip.defaults = __webpack_require__(/*! ./defaults */ 211); // TODO find a better way to handle this version, // a require('package.json').version doesn't work with webpack, see #327 @@ -25759,7 +25759,9 @@ return typeDetect; /* 163 */, /* 164 */, /* 165 */, -/* 166 */ +/* 166 */, +/* 167 */, +/* 168 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/zlib/messages.js ***! \************************************************/ @@ -25803,7 +25805,7 @@ module.exports = { /***/ }), -/* 167 */ +/* 169 */ /*!*****************************************!*\ !*** ./node_modules/jszip/lib/crc32.js ***! \*****************************************/ @@ -25892,7 +25894,7 @@ module.exports = function crc32wrapper(input, crc) { /***/ }), -/* 168 */ +/* 170 */ /*!****************************************************!*\ !*** ./node_modules/jszip/lib/compressedObject.js ***! \****************************************************/ @@ -25904,10 +25906,10 @@ module.exports = function crc32wrapper(input, crc) { var external = __webpack_require__(/*! ./external */ 111); -var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 208); -var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 207); -var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 206); -var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 207); +var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 210); +var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 209); +var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 208); +var DataLengthProbe = __webpack_require__(/*! ./stream/DataLengthProbe */ 209); /** * Represent a compressed object, with everything needed to decompress it. @@ -25979,7 +25981,7 @@ module.exports = CompressedObject; /***/ }), -/* 169 */ +/* 171 */ /*!*********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_descriptors.js ***! \*********************************************************************************/ @@ -25988,12 +25990,12 @@ module.exports = CompressedObject; /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(/*! ./_fails */ 212)(function(){ +module.exports = !__webpack_require__(/*! ./_fails */ 214)(function(){ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }), -/* 170 */ +/* 172 */ /*!*******************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_is-object.js ***! \*******************************************************************************/ @@ -26006,7 +26008,7 @@ module.exports = function(it){ }; /***/ }), -/* 171 */ +/* 173 */ /*!**************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! \**************************************************************/ @@ -26087,12 +26089,12 @@ util.inherits = __webpack_require__(/*! inherits */ 108); /**/ var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ 338) + deprecate: __webpack_require__(/*! util-deprecate */ 340) }; /**/ /**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ 221); +var Stream = __webpack_require__(/*! ./internal/streams/stream */ 223); /**/ /**/ @@ -26108,7 +26110,7 @@ function _isUint8Array(obj) { /**/ -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 218); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 220); util.inherits(Writable, Stream); @@ -26692,10 +26694,10 @@ Writable.prototype._destroy = function (err, cb) { this.end(); cb(err); }; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ 114), __webpack_require__(/*! ./../../timers-browserify/main.js */ 225).setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 89))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ 114), __webpack_require__(/*! ./../../timers-browserify/main.js */ 227).setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 89))) /***/ }), -/* 172 */ +/* 174 */ /*!**********************************************************!*\ !*** ./node_modules/readable-stream/readable-browser.js ***! \**********************************************************/ @@ -26703,17 +26705,17 @@ Writable.prototype._destroy = function (err, cb) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ 222); +exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ 224); exports.Stream = exports; exports.Readable = exports; -exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 171); +exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ 173); exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ 101); -exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ 216); -exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ 337); +exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ 218); +exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ 339); /***/ }), -/* 173 */ +/* 175 */ /*!***************************************!*\ !*** ./node_modules/events/events.js ***! \***************************************/ @@ -27026,9 +27028,9 @@ function isUndefined(arg) { /***/ }), -/* 174 */, -/* 175 */, -/* 176 */ +/* 176 */, +/* 177 */, +/* 178 */ /*!*************************************************!*\ !*** ./node_modules/brace/worker/javascript.js ***! \*************************************************/ @@ -27040,7 +27042,7 @@ module.exports.id = 'ace/mode/javascript_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(acequire,exports,module){module.exports=function outer(modules,cache,entry){function newRequire(name,jumped){if(!cache[name]){if(!modules[name]){var currentRequire=\"function\"==typeof acequire&&acequire;if(!jumped&¤tRequire)return currentRequire(name,!0);if(previousRequire)return previousRequire(name,!0);var err=Error(\"Cannot find module '\"+name+\"'\");throw err.code=\"MODULE_NOT_FOUND\",err}var m=cache[name]={exports:{}};modules[name][0].call(m.exports,function(x){var id=modules[name][1][x];return newRequire(id?id:x)},m,m.exports,outer,modules,cache,entry)}return cache[name].exports}for(var previousRequire=\"function\"==typeof acequire&&acequire,i=0;entry.length>i;i++)newRequire(entry[i]);return newRequire(entry[0])}({\"/node_modules/browserify/node_modules/events/events.js\":[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return\"function\"==typeof arg}function isNumber(arg){return\"number\"==typeof arg}function isObject(arg){return\"object\"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError(\"n must be a positive number\");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),\"error\"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified \"error\" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError(\"listener must be a function\");if(this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),\"function\"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError(\"listener must be a function\");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit(\"removeListener\",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit(\"removeListener\",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)\"removeListener\"!==key&&this.removeAllListeners(key);return this.removeAllListeners(\"removeListener\"),this._events={},this\n}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],\"/node_modules/jshint/data/ascii-identifier-data.js\":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],\"/node_modules/jshint/lodash.js\":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return\"function\"==typeof value||!1}function baseToString(value){return\"string\"==typeof value?value:null==value?\"\":value+\"\"}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&\"object\"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return\"function\"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:\"object\"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)}stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=-1,length=path.length;null!=object&&length>++index;)var result=object=object[path[index]];return result}}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other)return 0!==value||1/value==1/other;var valType=typeof value,othType=typeof other;return\"function\"!=valType&&\"object\"!=valType&&\"function\"!=othType&&\"object\"!=othType||null==value||null==other?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var valWrapped=objIsObj&&hasOwnProperty.call(object,\"__wrapped__\"),othWrapped=othIsObj&&hasOwnProperty.call(other,\"__wrapped__\");if(valWrapped||othWrapped)return equalFunc(valWrapped?object.value():object,othWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function baseIsMatch(object,props,values,strictCompareFlags,customizer){for(var index=-1,length=props.length,noCustomizer=!customizer;length>++index;)if(noCustomizer&&strictCompareFlags[index]?values[index]!==object[props[index]]:!(props[index]in object))return!1;for(index=-1;length>++index;){var key=props[index],objValue=object[key],srcValue=values[index];if(noCustomizer&&strictCompareFlags[index])var result=objValue!==undefined||key in object;else result=customizer?customizer(objValue,srcValue,key):undefined,result===undefined&&(result=baseIsEqual(srcValue,objValue,customizer,!0));if(!result)return!1}return!0}function baseMatches(source){var props=keys(source),length=props.length;if(!length)return constant(!0);if(1==length){var key=props[0],value=source[key];if(isStrictComparable(value))return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}for(var values=Array(length),strictCompareFlags=Array(length);length--;)value=source[props[length]],values[length]=value,strictCompareFlags[length]=isStrictComparable(value);return function(object){return null!=object&&baseIsMatch(toObject(object),props,values,strictCompareFlags)}}function baseMatchesProperty(path,value){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(value),pathKey=path+\"\";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===value?value!==undefined||key in object:baseIsEqual(value,object[key],null,!0)}}function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isLength(source.length)&&(isArray(source)||isTypedArray(source));if(!isSrcArr){var props=keys(source);push.apply(props,getSymbols(source))}return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),!isSrcArr&&result===undefined||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return object[key]=stackB[length],undefined;var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isLength(srcValue.length)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:getLength(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1),stackA.push(srcValue),stackB.push(result),isCommon?object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyDeep(path){var pathKey=path+\"\";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);length>++index;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);length>++index;)result[index]=object[props[index]];return result}function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if(\"number\"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsUndef=value===undefined;high>low;){var mid=floor((low+high)/2),computed=iteratee(array[mid]),isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsUndef?isReflexive&&(retHighest||computed!==undefined):retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function bindCallback(func,thisArg,argCount){if(\"function\"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function bufferClone(buffer){return bufferSlice.call(buffer,0)}function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2&&sources[length-2],guard=length>2&&sources[2],thisArg=length>1&&sources[length-1];for(\"function\"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer=\"function\"==typeof thisArg?thisArg:null,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?null:customizer,length=1);length>++index;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:length>++index)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:length>++index;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return\"function\"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length,result=!0;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;result&&arrLength>++index;){var arrValue=array[index],othValue=other[index];if(result=undefined,customizer&&(result=isLoose?customizer(othValue,arrValue,index):customizer(arrValue,othValue,index)),result===undefined)if(isLoose)for(var othIndex=othLength;othIndex--&&(othValue=other[othIndex],!(result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))););else result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}return!!result}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:0==object?1/object==1/other:object==+other;case regexpTag:case stringTag:return object==other+\"\"}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var skipCtor=isLoose,index=-1;objLength>++index;){var key=objProps[index],result=isLoose?key in other:hasOwnProperty.call(other,key);if(result){var objValue=object[key],othValue=other[key];result=undefined,customizer&&(result=isLoose?customizer(othValue,objValue,key):customizer(objValue,othValue,key)),result===undefined&&(result=objValue&&objValue===othValue||equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB))}if(!result)return!1;skipCtor||(skipCtor=\"constructor\"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&\"constructor\"in object&&\"constructor\"in other&&!(\"function\"==typeof objCtor&&objCtor instanceof objCtor&&\"function\"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&\"string\"==typeof array[0]&&hasOwnProperty.call(array,\"index\")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){var Ctor=object.constructor;return\"function\"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}function isIndex(value,length){return value=+value,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&0==value%1&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if(\"number\"==type)var length=getLength(object),prereq=isLength(length)&&isIndex(index,length);else prereq=\"string\"==type&&index in object;if(prereq){var other=object[index];return value===value?value===other:other!==other}return!1}function isKey(value,object){var type=typeof value;if(\"string\"==type&&reIsPlainProp.test(value)||\"number\"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isLength(value){return\"number\"==typeof value&&value>-1&&0==value%1&&MAX_SAFE_INTEGER>=value}function isStrictComparable(value){return value===value&&(0===value?1/value>0:!isObject(value))}function shimIsPlainObject(value){var Ctor;if(lodash.support,!isObjectLike(value)||objToString.call(value)!=objectTag||!hasOwnProperty.call(value,\"constructor\")&&(Ctor=value.constructor,\"function\"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1;var result;return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,support=lodash.support,allowIndexes=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object)),index=-1,result=[];propsLength>++index;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,\"$1\"):number||match)}),result}function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if(\"number\"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value),other=array[index];return(value===value?value===other:other!==other)?index:-1}return baseIndexOf(array,value,fromIndex||0)}function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}function slice(array,start,end){var length=array?array.length:0;return length?(end&&\"number\"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}function unzip(array){for(var index=-1,length=(array&&array.length&&arrayMax(arrayMap(array,getLength)))>>>0,result=Array(length);length>++index;)result[index]=arrayMap(array,baseProperty(index));return result}function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),length?(fromIndex=\"number\"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,\"string\"==typeof collection||!isArray(collection)&&isString(collection)?length>fromIndex&&collection.indexOf(target,fromIndex)>-1:getIndexOf(collection,target,fromIndex)>-1):!1}function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=null),(\"function\"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}function restParam(func,start){if(\"function\"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);length>++index;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;start>++index;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}function clone(value,isDeep,customizer,thisArg){return isDeep&&\"boolean\"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:\"function\"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),customizer=\"function\"==typeof customizer&&bindCallback(customizer,thisArg,1),baseClone(value,isDeep,customizer)}function isArguments(value){var length=isObjectLike(value)?value.length:undefined;return isLength(length)&&objToString.call(value)==argsTag}function isEmpty(value){if(null==value)return!0;var length=getLength(value);return isLength(length)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!length:!keys(value).length}function isObject(value){var type=typeof value;return\"function\"==type||!!value&&\"object\"==type}function isNative(value){return null==value?!1:objToString.call(value)==funcTag?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}function isNumber(value){return\"number\"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}function isString(value){return\"string\"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}function toPlainObject(value){return baseCopy(value,keysIn(value))}function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);return result||isKey(path)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path),result=null!=object&&hasOwnProperty.call(object,path)),result}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto=\"function\"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;length>++index;)result[index]=index+\"\";for(var key in object)skipIndexes&&isIndex(key,length)||\"constructor\"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}function values(object){return baseValues(object,keys(object))}function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,\"\\\\$&\"):string}function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=null),baseCallback(func,thisArg)}function constant(value){return function(){return value}}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var undefined,VERSION=\"3.7.0\",FUNC_ERROR_TEXT=\"Expected a function\",argsTag=\"[object Arguments]\",arrayTag=\"[object Array]\",boolTag=\"[object Boolean]\",dateTag=\"[object Date]\",errorTag=\"[object Error]\",funcTag=\"[object Function]\",mapTag=\"[object Map]\",numberTag=\"[object Number]\",objectTag=\"[object Object]\",regexpTag=\"[object RegExp]\",setTag=\"[object Set]\",stringTag=\"[object String]\",weakMapTag=\"[object WeakMap]\",arrayBufferTag=\"[object ArrayBuffer]\",float32Tag=\"[object Float32Array]\",float64Tag=\"[object Float64Array]\",int8Tag=\"[object Int8Array]\",int16Tag=\"[object Int16Array]\",int32Tag=\"[object Int32Array]\",uint8Tag=\"[object Uint8Array]\",uint8ClampedTag=\"[object Uint8ClampedArray]\",uint16Tag=\"[object Uint16Array]\",uint32Tag=\"[object Uint32Array]\",reIsDeepProp=/\\.|\\[(?:[^[\\]]+|([\"'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,reIsPlainProp=/^\\w*$/,rePropName=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,reRegExpChars=/[.*+?^${}()|[\\]\\/\\\\]/g,reHasRegExpChars=RegExp(reRegExpChars.source),reEscapeChar=/\\\\(\\\\)?/g,reFlags=/\\w*$/,reIsHostCtor=/^\\[object .+?Constructor\\]$/,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;var objectTypes={\"function\":!0,object:!0},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&\"object\"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,root=freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this,arrayProto=Array.prototype,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp(\"^\"+escapeRegExp(objToString).replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),ArrayBuffer=isNative(ArrayBuffer=root.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,getOwnPropertySymbols=isNative(getOwnPropertySymbols=Object.getOwnPropertySymbols)&&getOwnPropertySymbols,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,push=arrayProto.push,preventExtensions=isNative(Object.preventExtensions=Object.preventExtensions)&&preventExtensions,propertyIsEnumerable=objectProto.propertyIsEnumerable,Uint8Array=isNative(Uint8Array=root.Uint8Array)&&Uint8Array,Float64Array=function(){try{var func=isNative(func=root.Float64Array)&&func,result=new func(new ArrayBuffer(10),0,1)&&func}catch(e){}return result}(),nativeAssign=function(){var object={1:0},func=preventExtensions&&isNative(func=Object.assign)&&func;try{func(preventExtensions(object),\"xo\")}catch(e){}return!object[1]&&func}(),nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0,MAX_SAFE_INTEGER=Math.pow(2,53)-1,support=lodash.support={};(function(x){var Ctor=function(){this.x=x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor)props.push(key);support.funcDecomp=/\\bthis\\b/.test(function(){return this}),support.funcNames=\"string\"==typeof Function.name;try{support.nonEnumArgs=!propertyIsEnumerable.call(arguments,1)}catch(e){support.nonEnumArgs=!0}})(1,0);var baseAssign=nativeAssign||function(object,source){return null==source?object:baseCopy(source,getSymbols(source),baseCopy(source,keys(source),object))},baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor();bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(buffer){var byteLength=buffer.byteLength,floatLength=Float64Array?floor(byteLength/FLOAT64_BYTES_PER_ELEMENT):0,offset=floatLength*FLOAT64_BYTES_PER_ELEMENT,result=new ArrayBuffer(byteLength);if(floatLength){var view=new Float64Array(result,0,floatLength);view.set(new Float64Array(buffer,0,floatLength))}return byteLength!=offset&&(view=new Uint8Array(result,offset),view.set(new Uint8Array(buffer,offset))),result}:constant(null));var getLength=baseProperty(\"length\"),getSymbols=getOwnPropertySymbols?function(object){return getOwnPropertySymbols(toObject(object))}:constant([]),findLastIndex=createFindIndex(!0),zip=restParam(unzip),forEach=createForEach(arrayEach,baseEach),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},isFunction=baseIsFunction(/x/)||Uint8Array&&!baseIsFunction(Uint8Array)?function(value){return objToString.call(value)==funcTag}:baseIsFunction,isPlainObject=getPrototypeOf?function(value){if(!value||objToString.call(value)!=objectTag)return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),keys=nativeKeys?function(object){if(object)var Ctor=object.constructor,length=object.length;return\"function\"==typeof Ctor&&Ctor.prototype===object||\"function\"!=typeof object&&isLength(length)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,merge=createAssigner(baseMerge);lodash.assign=assign,lodash.callback=callback,lodash.constant=constant,lodash.forEach=forEach,lodash.keys=keys,lodash.keysIn=keysIn,lodash.merge=merge,lodash.property=property,lodash.reject=reject,lodash.restParam=restParam,lodash.slice=slice,lodash.toPlainObject=toPlainObject,lodash.unzip=unzip,lodash.values=values,lodash.zip=zip,lodash.each=forEach,lodash.extend=assign,lodash.iteratee=callback,lodash.clone=clone,lodash.escapeRegExp=escapeRegExp,lodash.findLastIndex=findLastIndex,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isEmpty=isEmpty,lodash.isFunction=isFunction,lodash.isNative=isNative,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.some=some,lodash.any=some,lodash.contains=includes,lodash.include=includes,lodash.VERSION=VERSION,freeExports&&freeModule?moduleExports?(freeModule.exports=lodash)._=lodash:freeExports._=lodash:root._=lodash\n}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],\"/node_modules/jshint/src/jshint.js\":[function(_dereq_,module,exports){var _=_dereq_(\"../lodash\"),events=_dereq_(\"events\"),vars=_dereq_(\"./vars.js\"),messages=_dereq_(\"./messages.js\"),Lexer=_dereq_(\"./lex.js\").Lexer,reg=_dereq_(\"./reg.js\"),state=_dereq_(\"./state.js\").state,style=_dereq_(\"./style.js\"),options=_dereq_(\"./options.js\"),scopeManager=_dereq_(\"./scope-manager.js\"),JSHINT=function(){\"use strict\";function checkOption(name,t){return name=name.trim(),/^[+-]W\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||\"jslint\"===t.type||_.has(options.removed,name)?!0:(error(\"E001\",t,name),!1)}function isString(obj){return\"[object String]\"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\{([^{}]*)\\}/g,function(a,b){var r=data[b];return\"string\"==typeof r||\"number\"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict=\"global\"),state.inES6()||warning(\"W134\",state.tokens.next,\"module\",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict=\"global\")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict=\"global\")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict=\"global\")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict=\"global\"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:\"JSHintError\",line:line,character:chr,message:message+\" (\"+percentage+\"% scanned).\",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\d{3}$/.test(code)){if(state.ignored[code])return;msg=messages.warnings[code]}else/E\\d{3}/.test(code)?msg=messages.errors[code]:/I\\d{3}/.test(code)&&(msg=messages.info[code]);return t=t||state.tokens.next||{},\"(end)\"===t.id&&(t=state.tokens.curr),l=t.line||0,ch=t.from||0,w={id:\"(error)\",raw:msg.desc,code:msg.code,evidence:state.lines[l-1]||\"\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(msg.desc,w),JSHINT.errors.push(w),removeIgnoredMessages(),JSHINT.errors.length>=state.option.maxerr&&quit(\"E043\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\"(internal)\",elem:elem,value:src},JSHINT.internals.push(i),i}function doOption(){var nt=state.tokens.next,body=nt.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g)||[],predef={};if(\"globals\"===nt.type){body.forEach(function(g,idx){g=g.split(\":\");var key=(g[0]||\"\").trim(),val=(g[1]||\"\").trim();if(\"-\"===key||!key.length){if(idx>0&&idx===body.length-1)return;return error(\"E002\",nt),void 0}\"-\"===key.charAt(0)?(key=key.slice(1),val=!1,JSHINT.blacklist[key]=key,delete predefined[key]):predef[key]=\"true\"===val}),combine(predefined,predef);for(var key in predef)_.has(predef,key)&&(declared[key]=nt)}\"exported\"===nt.type&&body.forEach(function(e,idx){if(!e.length){if(idx>0&&idx===body.length-1)return;return error(\"E002\",nt),void 0}state.funct[\"(scope)\"].addExported(e)}),\"members\"===nt.type&&(membersOnly=membersOnly||{},body.forEach(function(m){var ch1=m.charAt(0),ch2=m.charAt(m.length-1);ch1!==ch2||'\"'!==ch1&&\"'\"!==ch1||(m=m.substr(1,m.length-2).replace('\\\\\"','\"')),membersOnly[m]=!1}));var numvals=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];(\"jshint\"===nt.type||\"jslint\"===nt.type)&&(body.forEach(function(g){g=g.split(\":\");var key=(g[0]||\"\").trim(),val=(g[1]||\"\").trim();if(checkOption(key,nt))if(numvals.indexOf(key)>=0)if(\"false\"!==val){if(val=+val,\"number\"!=typeof val||!isFinite(val)||0>=val||Math.floor(val)!==val)return error(\"E032\",nt,g[1].trim()),void 0;state.option[key]=val}else state.option[key]=\"indent\"===key?4:!1;else{if(\"validthis\"===key)return state.funct[\"(global)\"]?void error(\"E009\"):\"true\"!==val&&\"false\"!==val?void error(\"E002\",nt):(state.option.validthis=\"true\"===val,void 0);if(\"quotmark\"!==key)if(\"shadow\"!==key)if(\"unused\"!==key)if(\"latedef\"!==key)if(\"ignore\"!==key)if(\"strict\"!==key){\"module\"===key&&(hasParsedCode(state.funct)||error(\"E055\",state.tokens.next,\"module\"));var esversions={es3:3,es5:5,esnext:6};if(!_.has(esversions,key)){if(\"esversion\"===key){switch(val){case\"5\":state.inES5(!0)&&warning(\"I003\");case\"3\":case\"6\":state.option.moz=!1,state.option.esversion=+val;break;case\"2015\":state.option.moz=!1,state.option.esversion=6;break;default:error(\"E002\",nt)}return hasParsedCode(state.funct)||error(\"E055\",state.tokens.next,\"esversion\"),void 0}var match=/^([+-])(W\\d{3})$/g.exec(key);if(match)return state.ignored[match[2]]=\"-\"===match[1],void 0;var tn;return\"true\"===val||\"false\"===val?(\"jslint\"===nt.type?(tn=options.renamed[key]||key,state.option[tn]=\"true\"===val,void 0!==options.inverted[tn]&&(state.option[tn]=!state.option[tn])):state.option[key]=\"true\"===val,\"newcap\"===key&&(state.option[\"(explicitNewcap)\"]=!0),void 0):(error(\"E002\",nt),void 0)}switch(val){case\"true\":state.option.moz=!1,state.option.esversion=esversions[key];break;case\"false\":state.option.moz||(state.option.esversion=5);break;default:error(\"E002\",nt)}}else switch(val){case\"true\":state.option.strict=!0;break;case\"false\":state.option.strict=!1;break;case\"func\":case\"global\":case\"implied\":state.option.strict=val;break;default:error(\"E002\",nt)}else switch(val){case\"line\":state.ignoredLines[nt.line]=!0,removeIgnoredMessages();break;default:error(\"E002\",nt)}else switch(val){case\"true\":state.option.latedef=!0;break;case\"false\":state.option.latedef=!1;break;case\"nofunc\":state.option.latedef=\"nofunc\";break;default:error(\"E002\",nt)}else switch(val){case\"true\":state.option.unused=!0;break;case\"false\":state.option.unused=!1;break;case\"vars\":case\"strict\":state.option.unused=val;break;default:error(\"E002\",nt)}else switch(val){case\"true\":state.option.shadow=!0;break;case\"outer\":state.option.shadow=\"outer\";break;case\"false\":case\"inner\":state.option.shadow=\"inner\";break;default:error(\"E002\",nt)}else switch(val){case\"true\":case\"false\":state.option.quotmark=\"true\"===val;break;case\"double\":case\"single\":state.option.quotmark=val;break;default:error(\"E002\",nt)}}}),assume())}function peek(p){var t,i=p||0,j=lookahead.length;if(j>i)return lookahead[i];for(;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t||\"(end)\"!==state.tokens.next.id?t:state.tokens.next}function peekIgnoreEOL(){var t,i=0;do t=peek(i++);while(\"(endline)\"===t.id);return t}function advance(id,t){switch(state.tokens.curr.id){case\"(number)\":\".\"===state.tokens.next.id&&warning(\"W005\",state.tokens.curr);break;case\"-\":(\"-\"===state.tokens.next.id||\"--\"===state.tokens.next.id)&&warning(\"W006\");break;case\"+\":(\"+\"===state.tokens.next.id||\"++\"===state.tokens.next.id)&&warning(\"W007\")}for(id&&state.tokens.next.id!==id&&(t?\"(end)\"===state.tokens.next.id?error(\"E019\",t,t.id):error(\"E020\",state.tokens.next,id,t.id,t.line,state.tokens.next.value):(\"(identifier)\"!==state.tokens.next.type||state.tokens.next.value!==id)&&warning(\"W116\",state.tokens.next,id,state.tokens.next.value)),state.tokens.prev=state.tokens.curr,state.tokens.curr=state.tokens.next;;){if(state.tokens.next=lookahead.shift()||lex.token(),state.tokens.next||quit(\"E041\",state.tokens.curr.line),\"(end)\"===state.tokens.next.id||\"(error)\"===state.tokens.next.id)return;if(state.tokens.next.check&&state.tokens.next.check(),state.tokens.next.isSpecial)\"falls through\"===state.tokens.next.type?state.tokens.curr.caseFallsThrough=!0:doOption();else if(\"(endline)\"!==state.tokens.next.id)break}}function isInfix(token){return token.infix||!token.identifier&&!token.template&&!!token.led}function isEndOfExpr(){var curr=state.tokens.curr,next=state.tokens.next;return\";\"===next.id||\"}\"===next.id||\":\"===next.id?!0:isInfix(next)===isInfix(curr)||\"yield\"===curr.id&&state.inMoz()?curr.line!==startLine(next):!1}function isBeginOfExpr(prev){return!prev.left&&\"unary\"!==prev.arity}function expression(rbp,initial){var left,isArray=!1,isObject=!1,isLetExpr=!1;state.nameStack.push(),initial||\"let\"!==state.tokens.next.value||\"(\"!==peek(0).value||(state.inMoz()||warning(\"W118\",state.tokens.next,\"let expressions\"),isLetExpr=!0,state.funct[\"(scope)\"].stack(),advance(\"let\"),advance(\"(\"),state.tokens.prev.fud(),advance(\")\")),\"(end)\"===state.tokens.next.id&&error(\"E006\",state.tokens.curr);var isDangerous=state.option.asi&&state.tokens.prev.line!==startLine(state.tokens.curr)&&_.contains([\"]\",\")\"],state.tokens.prev.id)&&_.contains([\"[\",\"(\"],state.tokens.curr.id);if(isDangerous&&warning(\"W014\",state.tokens.curr,state.tokens.curr.id),advance(),initial&&(state.funct[\"(verb)\"]=state.tokens.curr.value,state.tokens.curr.beginsStmt=!0),initial===!0&&state.tokens.curr.fud)left=state.tokens.curr.fud();else for(state.tokens.curr.nud?left=state.tokens.curr.nud():error(\"E030\",state.tokens.curr,state.tokens.curr.id);(state.tokens.next.lbp>rbp||\"(template)\"===state.tokens.next.type)&&!isEndOfExpr();)isArray=\"Array\"===state.tokens.curr.value,isObject=\"Object\"===state.tokens.curr.value,left&&(left.value||left.first&&left.first.value)&&(\"new\"!==left.value||left.first&&left.first.value&&\".\"===left.first.value)&&(isArray=!1,left.value!==state.tokens.curr.value&&(isObject=!1)),advance(),isArray&&\"(\"===state.tokens.curr.id&&\")\"===state.tokens.next.id&&warning(\"W009\",state.tokens.curr),isObject&&\"(\"===state.tokens.curr.id&&\")\"===state.tokens.next.id&&warning(\"W010\",state.tokens.curr),left&&state.tokens.curr.led?left=state.tokens.curr.led(left):error(\"E033\",state.tokens.curr,state.tokens.curr.id);return isLetExpr&&state.funct[\"(scope)\"].unstack(),state.nameStack.pop(),left}function startLine(token){return token.startLine||token.line}function nobreaknonadjacent(left,right){left=left||state.tokens.curr,right=right||state.tokens.next,state.option.laxbreak||left.line===startLine(right)||warning(\"W014\",right,right.value)}function nolinebreak(t){t=t||state.tokens.curr,t.line!==startLine(state.tokens.next)&&warning(\"E022\",t,t.value)}function nobreakcomma(left,right){left.line!==startLine(right)&&(state.option.laxcomma||(comma.first&&(warning(\"I001\"),comma.first=!1),warning(\"W014\",left,right.value)))}function comma(opts){if(opts=opts||{},opts.peek?nobreakcomma(state.tokens.prev,state.tokens.curr):(nobreakcomma(state.tokens.curr,state.tokens.next),advance(\",\")),state.tokens.next.identifier&&(!opts.property||!state.inES5()))switch(state.tokens.next.value){case\"break\":case\"case\":case\"catch\":case\"continue\":case\"default\":case\"do\":case\"else\":case\"finally\":case\"for\":case\"if\":case\"in\":case\"instanceof\":case\"return\":case\"switch\":case\"throw\":case\"try\":case\"var\":case\"let\":case\"while\":case\"with\":return error(\"E024\",state.tokens.next,state.tokens.next.value),!1}if(\"(punctuator)\"===state.tokens.next.type)switch(state.tokens.next.value){case\"}\":case\"]\":case\",\":if(opts.allowTrailing)return!0;case\")\":return error(\"E024\",state.tokens.next,state.tokens.next.value),!1}return!0}function symbol(s,p){var x=state.syntax[s];return x&&\"object\"==typeof x||(state.syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){var x=symbol(s,0);return x.delim=!0,x}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\"a\"&&\"z\">=c||c>=\"A\"&&\"Z\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\"function\"==typeof f?f:function(){return this.arity=\"unary\",this.right=expression(150),(\"++\"===this.id||\"--\"===this.id)&&(state.option.plusplus?warning(\"W016\",this,this.id):!this.right||this.right.identifier&&!isReserved(this.right)||\".\"===this.right.id||\"[\"===this.right.id||warning(\"W017\",this),this.right&&this.right.isMetaProperty?error(\"E031\",this):this.right&&this.right.identifier&&state.funct[\"(scope)\"].block.modify(this.right.value,this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(name,func){var x=type(name,func);return x.identifier=!0,x.reserved=!0,x}function FutureReservedWord(name,meta){var x=type(name,meta&&meta.nud||function(){return this});return meta=meta||{},meta.isFutureReservedWord=!0,x.value=name,x.identifier=!0,x.reserved=!0,x.meta=meta,x}function reservevar(s,v){return reserve(s,function(){return\"function\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.infix=!0,x.led=function(left){return w||nobreaknonadjacent(state.tokens.prev,state.tokens.curr),\"in\"!==s&&\"instanceof\"!==s||\"!\"!==left.id||warning(\"W018\",left,\"!\"),\"function\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function application(s){var x=symbol(s,42);return x.led=function(left){return nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left,this.right=doFunction({type:\"arrow\",loneArg:left}),this},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left;var right=this.right=expression(100);return isIdentifier(left,\"NaN\")||isIdentifier(right,\"NaN\")?warning(\"W019\",this):f&&f.apply(this,[left,right]),left&&right||quit(\"E041\",state.tokens.curr.line),\"!\"===left.id&&warning(\"W018\",left,\"!\"),\"!\"===right.id&&warning(\"W018\",right,\"!\"),this},x}function isPoorRelation(node){return node&&(\"(number)\"===node.type&&0===+node.value||\"(string)\"===node.type&&\"\"===node.value||\"null\"===node.type&&!state.option.eqnull||\"true\"===node.type||\"false\"===node.type||\"undefined\"===node.type)}function isTypoTypeof(left,right,state){var values;return state.option.notypeof?!1:left&&right?(values=state.inES6()?typeofValues.es6:typeofValues.es3,\"(identifier)\"===right.type&&\"typeof\"===right.value&&\"(string)\"===left.type?!_.contains(values,left.value):!1):!1}function isGlobalEval(left,state){var isGlobal=!1;return\"this\"===left.type&&null===state.funct[\"(context)\"]?isGlobal=!0:\"(identifier)\"===left.type&&(state.option.node&&\"global\"===left.value?isGlobal=!0:!state.option.browser||\"window\"!==left.value&&\"document\"!==left.value||(isGlobal=!0)),isGlobal}function findNativePrototype(left){function walkPrototype(obj){return\"object\"==typeof obj?\"prototype\"===obj.right?obj:walkPrototype(obj.left):void 0}function walkNative(obj){for(;!obj.identifier&&\"object\"==typeof obj.left;)obj=obj.left;return obj.identifier&&natives.indexOf(obj.value)>=0?obj.value:void 0}var natives=[\"Array\",\"ArrayBuffer\",\"Boolean\",\"Collator\",\"DataView\",\"Date\",\"DateTimeFormat\",\"Error\",\"EvalError\",\"Float32Array\",\"Float64Array\",\"Function\",\"Infinity\",\"Intl\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Iterator\",\"Number\",\"NumberFormat\",\"Object\",\"RangeError\",\"ReferenceError\",\"RegExp\",\"StopIteration\",\"String\",\"SyntaxError\",\"TypeError\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"URIError\"],prototype=walkPrototype(left);return prototype?walkNative(prototype):void 0}function checkLeftSideAssign(left,assignToken,options){var allowDestructuring=options&&options.allowDestructuring;if(assignToken=assignToken||left,state.option.freeze){var nativeObject=findNativePrototype(left);nativeObject&&warning(\"W121\",left,nativeObject)}return left.identifier&&!left.isMetaProperty&&state.funct[\"(scope)\"].block.reassign(left.value,left),\".\"===left.id?((!left.left||\"arguments\"===left.left.value&&!state.isStrict())&&warning(\"E031\",assignToken),state.nameStack.set(state.tokens.prev),!0):\"{\"===left.id||\"[\"===left.id?(allowDestructuring&&state.tokens.curr.left.destructAssign?state.tokens.curr.left.destructAssign.forEach(function(t){t.id&&state.funct[\"(scope)\"].block.modify(t.id,t.token)}):\"{\"!==left.id&&left.left?\"arguments\"!==left.left.value||state.isStrict()||warning(\"E031\",assignToken):warning(\"E031\",assignToken),\"[\"===left.id&&state.nameStack.set(left.right),!0):left.isMetaProperty?(error(\"E031\",assignToken),!0):left.identifier&&!isReserved(left)?(\"exception\"===state.funct[\"(scope)\"].labeltype(left.value)&&warning(\"W022\",left),state.nameStack.set(left),!0):(left===state.syntax[\"function\"]&&warning(\"W023\",state.tokens.curr),!1)}function assignop(s,f,p){var x=infix(s,\"function\"==typeof f?f:function(left,that){return that.left=left,left&&checkLeftSideAssign(left,that,{allowDestructuring:!0})?(that.right=expression(10),that):(error(\"E031\",that),void 0)},p);return x.exps=!0,x.assign=!0,x}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\"function\"==typeof f?f:function(left){return state.option.bitwise&&warning(\"W016\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return assignop(s,function(left,that){return state.option.bitwise&&warning(\"W016\",that,that.id),left&&checkLeftSideAssign(left,that)?(that.right=expression(10),that):(error(\"E031\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return state.option.plusplus?warning(\"W016\",this,this.id):left.identifier&&!isReserved(left)||\".\"===left.id||\"[\"===left.id||warning(\"W017\",this),left.isMetaProperty?error(\"E031\",this):left&&left.identifier&&state.funct[\"(scope)\"].block.modify(left.value,left),this.left=left,this},x}function optionalidentifier(fnparam,prop,preserve){if(state.tokens.next.identifier){preserve||advance();var curr=state.tokens.curr,val=state.tokens.curr.value;return isReserved(curr)?prop&&state.inES5()?val:fnparam&&\"undefined\"===val?val:(warning(\"W024\",state.tokens.curr,state.tokens.curr.id),val):val}}function identifier(fnparam,prop){var i=optionalidentifier(fnparam,prop,!1);if(i)return i;if(\"...\"===state.tokens.next.value){if(state.inES6(!0)||warning(\"W119\",state.tokens.next,\"spread/rest operator\",\"6\"),advance(),checkPunctuator(state.tokens.next,\"...\"))for(warning(\"E024\",state.tokens.next,\"...\");checkPunctuator(state.tokens.next,\"...\");)advance();return state.tokens.next.identifier?identifier(fnparam,prop):(warning(\"E024\",state.tokens.curr,\"...\"),void 0)}error(\"E030\",state.tokens.next,state.tokens.next.value),\";\"!==state.tokens.next.id&&advance()}function reachable(controlToken){var t,i=0;if(\";\"===state.tokens.next.id&&!controlToken.inBracelessBlock)for(;;){do t=peek(i),i+=1;while(\"(end)\"!==t.id&&\"(comment)\"===t.id);if(t.reach)return;if(\"(endline)\"!==t.id){if(\"function\"===t.id){state.option.latedef===!0&&warning(\"W026\",t);break}warning(\"W027\",t,t.value,controlToken.value);break}}}function parseFinalSemicolon(){if(\";\"!==state.tokens.next.id){if(state.tokens.next.isUnclosed)return advance();var sameLine=startLine(state.tokens.next)===state.tokens.curr.line&&\"(end)\"!==state.tokens.next.id,blockEnd=checkPunctuator(state.tokens.next,\"}\");sameLine&&!blockEnd?errorAt(\"E058\",state.tokens.curr.line,state.tokens.curr.character):state.option.asi||(blockEnd&&!state.option.lastsemic||!sameLine)&&warningAt(\"W033\",state.tokens.curr.line,state.tokens.curr.character)}else advance(\";\")}function statement(){var r,i=indent,t=state.tokens.next,hasOwnScope=!1;if(\";\"===t.id)return advance(\";\"),void 0;var res=isReserved(t);if(res&&t.meta&&t.meta.isFutureReservedWord&&\":\"===peek().id&&(warning(\"W024\",t,t.id),res=!1),t.identifier&&!res&&\":\"===peek().id&&(advance(),advance(\":\"),hasOwnScope=!0,state.funct[\"(scope)\"].stack(),state.funct[\"(scope)\"].block.addBreakLabel(t.value,{token:state.tokens.curr}),state.tokens.next.labelled||\"{\"===state.tokens.next.value||warning(\"W028\",state.tokens.next,t.value,state.tokens.next.value),state.tokens.next.label=t.value,t=state.tokens.next),\"{\"===t.id){var iscase=\"case\"===state.funct[\"(verb)\"]&&\":\"===state.tokens.curr.value;return block(!0,!0,!1,!1,iscase),void 0}return r=expression(0,!0),!r||r.identifier&&\"function\"===r.value||\"(punctuator)\"===r.type&&r.left&&r.left.identifier&&\"function\"===r.left.value||state.isStrict()||\"global\"!==state.option.strict||warning(\"E007\"),t.block||(state.option.expr||r&&r.exps?state.option.nonew&&r&&r.left&&\"(\"===r.id&&\"new\"===r.left.id&&warning(\"W031\",t):warning(\"W030\",state.tokens.curr),parseFinalSemicolon()),indent=i,hasOwnScope&&state.funct[\"(scope)\"].unstack(),r}function statements(){for(var p,a=[];!state.tokens.next.reach&&\"(end)\"!==state.tokens.next.id;)\";\"===state.tokens.next.id?(p=peek(),(!p||\"(\"!==p.id&&\"[\"!==p.id)&&warning(\"W032\"),advance(\";\")):a.push(statement());return a}function directives(){for(var i,p,pn;\"(string)\"===state.tokens.next.id;){if(p=peek(0),\"(endline)\"===p.id){i=1;do pn=peek(i++);while(\"(endline)\"===pn.id);if(\";\"===pn.id)p=pn;else{if(\"[\"===pn.value||\".\"===pn.value)break;state.option.asi&&\"(\"!==pn.value||warning(\"W033\",state.tokens.next)}}else{if(\".\"===p.id||\"[\"===p.id)break;\";\"!==p.id&&warning(\"W033\",p)}advance();var directive=state.tokens.curr.value;(state.directive[directive]||\"use strict\"===directive&&\"implied\"===state.option.strict)&&warning(\"W034\",state.tokens.curr,directive),state.directive[directive]=!0,\";\"===p.id&&advance(\";\")}state.isStrict()&&(state.option[\"(explicitNewcap)\"]||(state.option.newcap=!0),state.option.undef=!0)}function block(ordinary,stmt,isfunc,isfatarrow,iscase){var a,m,t,line,d,b=inblock,old_indent=indent;inblock=ordinary,t=state.tokens.next;var metrics=state.funct[\"(metrics)\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\"{\"===state.tokens.next.id){if(advance(\"{\"),state.funct[\"(scope)\"].stack(),line=state.tokens.curr.line,\"}\"!==state.tokens.next.id){for(indent+=state.option.indent;!ordinary&&state.tokens.next.from>indent;)indent+=state.option.indent;if(isfunc){m={};for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);directives(),state.option.strict&&state.funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||state.isStrict()||warning(\"E007\"))}a=statements(),metrics.statementCount+=a.length,indent-=state.option.indent}advance(\"}\",t),isfunc&&(state.funct[\"(scope)\"].validateParams(),m&&(state.directive=m)),state.funct[\"(scope)\"].unstack(),indent=old_indent}else if(ordinary)state.funct[\"(noblockscopedvar)\"]=\"for\"!==state.tokens.next.id,state.funct[\"(scope)\"].stack(),(!stmt||state.option.curly)&&warning(\"W116\",state.tokens.next,\"{\",state.tokens.next.value),state.tokens.next.inBracelessBlock=!0,indent+=state.option.indent,a=[statement()],indent-=state.option.indent,state.funct[\"(scope)\"].unstack(),delete state.funct[\"(noblockscopedvar)\"];else if(isfunc){if(state.funct[\"(scope)\"].stack(),m={},!stmt||isfatarrow||state.inMoz()||error(\"W118\",state.tokens.curr,\"function closure expressions\"),!stmt)for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);expression(10),state.option.strict&&state.funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||state.isStrict()||warning(\"E007\")),state.funct[\"(scope)\"].unstack()}else error(\"E021\",state.tokens.next,\"{\",state.tokens.next.value);switch(state.funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":if(iscase)break;default:state.funct[\"(verb)\"]=null}return inblock=b,!ordinary||!state.option.noempty||a&&0!==a.length||warning(\"W035\",state.tokens.prev),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\"boolean\"!=typeof membersOnly[m]&&warning(\"W036\",state.tokens.curr,m),\"number\"==typeof member[m]?member[m]+=1:member[m]=1}function comprehensiveArrayExpression(){var res={};res.exps=!0,state.funct[\"(comparray)\"].stack();var reversed=!1;return\"for\"!==state.tokens.next.value&&(reversed=!0,state.inMoz()||warning(\"W116\",state.tokens.next,\"for\",state.tokens.next.value),state.funct[\"(comparray)\"].setState(\"use\"),res.right=expression(10)),advance(\"for\"),\"each\"===state.tokens.next.value&&(advance(\"each\"),state.inMoz()||warning(\"W118\",state.tokens.curr,\"for each\")),advance(\"(\"),state.funct[\"(comparray)\"].setState(\"define\"),res.left=expression(130),_.contains([\"in\",\"of\"],state.tokens.next.value)?advance():error(\"E045\",state.tokens.curr),state.funct[\"(comparray)\"].setState(\"generate\"),expression(10),advance(\")\"),\"if\"===state.tokens.next.value&&(advance(\"if\"),advance(\"(\"),state.funct[\"(comparray)\"].setState(\"filter\"),res.filter=expression(10),advance(\")\")),reversed||(state.funct[\"(comparray)\"].setState(\"use\"),res.right=expression(10)),advance(\"]\"),state.funct[\"(comparray)\"].unstack(),res}function isMethod(){return state.funct[\"(statement)\"]&&\"class\"===state.funct[\"(statement)\"].type||state.funct[\"(context)\"]&&\"class\"===state.funct[\"(context)\"][\"(verb)\"]}function isPropertyName(token){return token.identifier||\"(string)\"===token.id||\"(number)\"===token.id}function propertyName(preserveOrToken){var id,preserve=!0;return\"object\"==typeof preserveOrToken?id=preserveOrToken:(preserve=preserveOrToken,id=optionalidentifier(!1,!0,preserve)),id?\"object\"==typeof id&&(\"(string)\"===id.id||\"(identifier)\"===id.id?id=id.value:\"(number)\"===id.id&&(id=\"\"+id.value)):\"(string)\"===state.tokens.next.id?(id=state.tokens.next.value,preserve||advance()):\"(number)\"===state.tokens.next.id&&(id=\"\"+state.tokens.next.value,preserve||advance()),\"hasOwnProperty\"===id&&warning(\"W001\"),id}function functionparams(options){function addParam(addParamArgs){state.funct[\"(scope)\"].addParam.apply(state.funct[\"(scope)\"],addParamArgs)}var next,ident,t,paramsIds=[],tokens=[],pastDefault=!1,pastRest=!1,arity=0,loneArg=options&&options.loneArg;if(loneArg&&loneArg.identifier===!0)return state.funct[\"(scope)\"].addParam(loneArg.value,loneArg),{arity:1,params:[loneArg.value]};if(next=state.tokens.next,options&&options.parsedOpening||advance(\"(\"),\")\"===state.tokens.next.id)return advance(\")\"),void 0;for(;;){arity++;var currentParams=[];if(_.contains([\"{\",\"[\"],state.tokens.next.id)){tokens=destructuringPattern();for(t in tokens)t=tokens[t],t.id&&(paramsIds.push(t.id),currentParams.push([t.id,t.token]))}else if(checkPunctuator(state.tokens.next,\"...\")&&(pastRest=!0),ident=identifier(!0))paramsIds.push(ident),currentParams.push([ident,state.tokens.curr]);else for(;!checkPunctuators(state.tokens.next,[\",\",\")\"]);)advance();if(pastDefault&&\"=\"!==state.tokens.next.id&&error(\"W138\",state.tokens.current),\"=\"===state.tokens.next.id&&(state.inES6()||warning(\"W119\",state.tokens.next,\"default parameters\",\"6\"),advance(\"=\"),pastDefault=!0,expression(10)),currentParams.forEach(addParam),\",\"!==state.tokens.next.id)return advance(\")\",next),{arity:arity,params:paramsIds};pastRest&&warning(\"W131\",state.tokens.next),comma()}}function functor(name,token,overwrites){var funct={\"(name)\":name,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(properties)\":{},\"(catch)\":!1,\"(global)\":!1,\"(line)\":null,\"(character)\":null,\"(metrics)\":null,\"(statement)\":null,\"(context)\":null,\"(scope)\":null,\"(comparray)\":null,\"(generator)\":null,\"(arrow)\":null,\"(params)\":null};return token&&_.extend(funct,{\"(line)\":token.line,\"(character)\":token.character,\"(metrics)\":createMetrics(token)}),_.extend(funct,overwrites),funct[\"(context)\"]&&(funct[\"(scope)\"]=funct[\"(context)\"][\"(scope)\"],funct[\"(comparray)\"]=funct[\"(context)\"][\"(comparray)\"]),funct}function isFunctor(token){return\"(scope)\"in token}function hasParsedCode(funct){return funct[\"(global)\"]&&!funct[\"(verb)\"]}function doTemplateLiteral(left){function end(){if(state.tokens.curr.template&&state.tokens.curr.tail&&state.tokens.curr.context===ctx)return!0;var complete=state.tokens.next.template&&state.tokens.next.tail&&state.tokens.next.context===ctx;return complete&&advance(),complete||state.tokens.next.isUnclosed}var ctx=this.context,noSubst=this.noSubst,depth=this.depth;if(!noSubst)for(;!end();)!state.tokens.next.template||state.tokens.next.depth>depth?expression(0):advance();return{id:\"(template)\",type:\"(template)\",tag:left}}function doFunction(options){var f,token,name,statement,classExprBinding,isGenerator,isArrow,ignoreLoopFunc,oldOption=state.option,oldIgnored=state.ignored;options&&(name=options.name,statement=options.statement,classExprBinding=options.classExprBinding,isGenerator=\"generator\"===options.type,isArrow=\"arrow\"===options.type,ignoreLoopFunc=options.ignoreLoopFunc),state.option=Object.create(state.option),state.ignored=Object.create(state.ignored),state.funct=functor(name||state.nameStack.infer(),state.tokens.next,{\"(statement)\":statement,\"(context)\":state.funct,\"(arrow)\":isArrow,\"(generator)\":isGenerator}),f=state.funct,token=state.tokens.curr,token.funct=state.funct,functions.push(state.funct),state.funct[\"(scope)\"].stack(\"functionouter\");var internallyAccessibleName=name||classExprBinding;internallyAccessibleName&&state.funct[\"(scope)\"].block.add(internallyAccessibleName,classExprBinding?\"class\":\"function\",state.tokens.curr,!1),state.funct[\"(scope)\"].stack(\"functionparams\");var paramsInfo=functionparams(options);return paramsInfo?(state.funct[\"(params)\"]=paramsInfo.params,state.funct[\"(metrics)\"].arity=paramsInfo.arity,state.funct[\"(metrics)\"].verifyMaxParametersPerFunction()):state.funct[\"(metrics)\"].arity=0,isArrow&&(state.inES6(!0)||warning(\"W119\",state.tokens.curr,\"arrow function syntax (=>)\",\"6\"),options.loneArg||advance(\"=>\")),block(!1,!0,!0,isArrow),!state.option.noyield&&isGenerator&&\"yielded\"!==state.funct[\"(generator)\"]&&warning(\"W124\",state.tokens.curr),state.funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),state.funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),state.funct[\"(unusedOption)\"]=state.option.unused,state.option=oldOption,state.ignored=oldIgnored,state.funct[\"(last)\"]=state.tokens.curr.line,state.funct[\"(lastcharacter)\"]=state.tokens.curr.character,state.funct[\"(scope)\"].unstack(),state.funct[\"(scope)\"].unstack(),state.funct=state.funct[\"(context)\"],ignoreLoopFunc||state.option.loopfunc||!state.funct[\"(loopage)\"]||f[\"(isCapturing)\"]&&warning(\"W083\",token),f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){state.option.maxstatements&&this.statementCount>state.option.maxstatements&&warning(\"W071\",functionStartToken,this.statementCount)\n},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning(\"W072\",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning(\"W073\",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning(\"W074\",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct[\"(metrics)\"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;switch(expr&&(id=expr.id,paren=expr.paren,\",\"===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case\"=\":case\"+=\":case\"-=\":case\"*=\":case\"%=\":case\"&=\":case\"|=\":case\"^=\":case\"/=\":paren||state.option.boss||warning(\"W084\")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning(\"W078\",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,\".\")){var left=state.tokens.curr.id;advance(\".\");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error(\"E057\",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning(\"W104\",state.tokens.curr,isAssignment?\"destructuring assignment\":\"destructuring binding\",\"6\"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,[\"[\",\"{\"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,\",\"))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,\"(\")){var is_rest=checkPunctuator(state.tokens.next,\"...\");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning(\"E030\",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance(\"(\"),nextInnerDE(),advance(\")\")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,\"[\")?(advance(\"[\"),expression(10),advance(\"]\"),advance(\":\"),nextInnerDE()):\"(string)\"===state.tokens.next.id||\"(number)\"===state.tokens.next.id?(advance(),advance(\":\"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,\":\")?(advance(\":\"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,\"[\")){openingParsed||advance(\"[\"),checkPunctuator(state.tokens.next,\"]\")&&warning(\"W137\",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,\"]\");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,\",\")&&(warning(\"W130\",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,\"=\")&&(checkPunctuator(state.tokens.prev,\"...\")?advance(\"]\"):advance(\"=\"),\"undefined\"===state.tokens.next.id&&warning(\"W080\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\"]\")||advance(\",\");advance(\"]\")}else if(checkPunctuator(firstToken,\"{\")){for(openingParsed||advance(\"{\"),checkPunctuator(state.tokens.next,\"}\")&&warning(\"W137\",state.tokens.curr);!checkPunctuator(state.tokens.next,\"}\")&&(assignmentProperty(),checkPunctuator(state.tokens.next,\"=\")&&(advance(\"=\"),\"undefined\"===state.tokens.next.id&&warning(\"W080\",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,\"}\")||(advance(\",\"),!checkPunctuator(state.tokens.next,\"}\"))););advance(\"}\")}return identifiers}function destructuringPatternMatch(tokens,value){var first=value.first;first&&_.zip(tokens,Array.isArray(first)?first:[first]).forEach(function(val){var token=val[0],value=val[1];token&&value?token.first=value:token&&token.first&&!value&&warning(\"W080\",token.first,token.first.value)})}function blockVariableStatement(type,statement,context){var tokens,lone,value,letblock,prefix=context&&context.prefix,inexport=context&&context.inexport,isLet=\"let\"===type,isConst=\"const\"===type;for(state.inES6()||warning(\"W104\",state.tokens.curr,type,\"6\"),isLet&&\"(\"===state.tokens.next.value?(state.inMoz()||warning(\"W118\",state.tokens.next,\"let block\"),advance(\"(\"),state.funct[\"(scope)\"].stack(),letblock=!0):state.funct[\"(noblockscopedvar)\"]&&error(\"E048\",state.tokens.curr,isConst?\"Const\":\"Let\"),statement.first=[];;){var names=[];_.contains([\"{\",\"[\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),!prefix&&isConst&&\"=\"!==state.tokens.next.id&&warning(\"E012\",state.tokens.curr,state.tokens.curr.value);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],state.funct[\"(scope)\"].block.isGlobal()&&predefined[t.id]===!1&&warning(\"W079\",t.token,t.id),t.id&&!state.funct[\"(noblockscopedvar)\"]&&(state.funct[\"(scope)\"].addlabel(t.id,{type:type,token:t.token}),names.push(t.token),lone&&inexport&&state.funct[\"(scope)\"].setExported(t.token.value,t.token)));if(\"=\"===state.tokens.next.id&&(advance(\"=\"),prefix||\"undefined\"!==state.tokens.next.id||warning(\"W080\",state.tokens.prev,state.tokens.prev.value),!prefix&&\"=\"===peek(0).id&&state.tokens.next.identifier&&warning(\"W120\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),statement.first=statement.first.concat(names),\",\"!==state.tokens.next.id)break;comma()}return letblock&&(advance(\")\"),block(!0,!0),statement.block=!0,state.funct[\"(scope)\"].unstack()),statement}function classdef(isStatement){return state.inES6()||warning(\"W104\",state.tokens.curr,\"class\",\"6\"),isStatement?(this.name=identifier(),state.funct[\"(scope)\"].addlabel(this.name,{type:\"class\",token:state.tokens.curr})):state.tokens.next.identifier&&\"extends\"!==state.tokens.next.value?(this.name=identifier(),this.namedExpr=!0):this.name=state.nameStack.infer(),classtail(this),this}function classtail(c){var wasInClassBody=state.inClassBody;\"extends\"===state.tokens.next.value&&(advance(\"extends\"),c.heritage=expression(10)),state.inClassBody=!0,advance(\"{\"),c.body=classbody(c),advance(\"}\"),state.inClassBody=wasInClassBody}function classbody(c){for(var name,isStatic,isGenerator,getset,computed,props=Object.create(null),staticProps=Object.create(null),i=0;\"}\"!==state.tokens.next.id;++i)if(name=state.tokens.next,isStatic=!1,isGenerator=!1,getset=null,\";\"!==name.id){if(\"*\"===name.id&&(isGenerator=!0,advance(\"*\"),name=state.tokens.next),\"[\"===name.id)name=computedPropertyName(),computed=!0;else{if(!isPropertyName(name)){warning(\"W052\",state.tokens.next,state.tokens.next.value||state.tokens.next.type),advance();continue}advance(),computed=!1,name.identifier&&\"static\"===name.value&&(checkPunctuator(state.tokens.next,\"*\")&&(isGenerator=!0,advance(\"*\")),(isPropertyName(state.tokens.next)||\"[\"===state.tokens.next.id)&&(computed=\"[\"===state.tokens.next.id,isStatic=!0,name=state.tokens.next,\"[\"===state.tokens.next.id?name=computedPropertyName():advance())),!name.identifier||\"get\"!==name.value&&\"set\"!==name.value||(isPropertyName(state.tokens.next)||\"[\"===state.tokens.next.id)&&(computed=\"[\"===state.tokens.next.id,getset=name,name=state.tokens.next,\"[\"===state.tokens.next.id?name=computedPropertyName():advance())}if(!checkPunctuator(state.tokens.next,\"(\")){for(error(\"E054\",state.tokens.next,state.tokens.next.value);\"}\"!==state.tokens.next.id&&!checkPunctuator(state.tokens.next,\"(\");)advance();\"(\"!==state.tokens.next.value&&doFunction({statement:c})}if(computed||(getset?saveAccessor(getset.value,isStatic?staticProps:props,name.value,name,!0,isStatic):(\"constructor\"===name.value?state.nameStack.set(c):state.nameStack.set(name),saveProperty(isStatic?staticProps:props,name.value,name,!0,isStatic))),getset&&\"constructor\"===name.value){var propDesc=\"get\"===getset.value?\"class getter method\":\"class setter method\";error(\"E049\",name,propDesc,\"constructor\")}else\"prototype\"===name.value&&error(\"E049\",name,\"class method\",\"prototype\");propertyName(name),doFunction({statement:c,type:isGenerator?\"generator\":null,classExprBinding:c.namedExpr?c.name:null})}else warning(\"W032\"),advance(\";\");checkProperties(props)}function saveProperty(props,name,tkn,isClass,isStatic){var msg=[\"key\",\"class method\",\"static class method\"];msg=msg[(isClass||!1)+(isStatic||!1)],tkn.identifier&&(name=tkn.value),props[name]&&\"__proto__\"!==name?warning(\"W075\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name].basic=!0,props[name].basictkn=tkn}function saveAccessor(accessorType,props,name,tkn,isClass,isStatic){var flagName=\"get\"===accessorType?\"getterToken\":\"setterToken\",msg=\"\";isClass?(isStatic&&(msg+=\"static \"),msg+=accessorType+\"ter method\"):msg=\"key\",state.tokens.curr.accessorType=accessorType,state.nameStack.set(tkn),props[name]?(props[name].basic||props[name][flagName])&&\"__proto__\"!==name&&warning(\"W075\",state.tokens.next,msg,name):props[name]=Object.create(null),props[name][flagName]=tkn}function computedPropertyName(){advance(\"[\"),state.inES6()||warning(\"W119\",state.tokens.curr,\"computed property names\",\"6\");var value=expression(10);return advance(\"]\"),value}function checkPunctuators(token,values){return\"(punctuator)\"===token.type?_.contains(values,token.value):!1}function checkPunctuator(token,value){return\"(punctuator)\"===token.type&&token.value===value}function destructuringAssignOrJsonValue(){var block=lookupBlockType();block.notJson?(!state.inES6()&&block.isDestAssign&&warning(\"W104\",state.tokens.curr,\"destructuring assignment\",\"6\"),statements()):(state.option.laxbreak=!0,state.jsonMode=!0,jsonValue())}function jsonValue(){function jsonObject(){var o={},t=state.tokens.next;if(advance(\"{\"),\"}\"!==state.tokens.next.id)for(;;){if(\"(end)\"===state.tokens.next.id)error(\"E026\",state.tokens.next,t.line);else{if(\"}\"===state.tokens.next.id){warning(\"W094\",state.tokens.curr);break}\",\"===state.tokens.next.id?error(\"E028\",state.tokens.next):\"(string)\"!==state.tokens.next.id&&warning(\"W095\",state.tokens.next,state.tokens.next.value)}if(o[state.tokens.next.value]===!0?warning(\"W075\",state.tokens.next,\"key\",state.tokens.next.value):\"__proto__\"===state.tokens.next.value&&!state.option.proto||\"__iterator__\"===state.tokens.next.value&&!state.option.iterator?warning(\"W096\",state.tokens.next,state.tokens.next.value):o[state.tokens.next.value]=!0,advance(),advance(\":\"),jsonValue(),\",\"!==state.tokens.next.id)break;advance(\",\")}advance(\"}\")}function jsonArray(){var t=state.tokens.next;if(advance(\"[\"),\"]\"!==state.tokens.next.id)for(;;){if(\"(end)\"===state.tokens.next.id)error(\"E027\",state.tokens.next,t.line);else{if(\"]\"===state.tokens.next.id){warning(\"W094\",state.tokens.curr);break}\",\"===state.tokens.next.id&&error(\"E028\",state.tokens.next)}if(jsonValue(),\",\"!==state.tokens.next.id)break;advance(\",\")}advance(\"]\")}switch(state.tokens.next.id){case\"{\":jsonObject();break;case\"[\":jsonArray();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":advance();break;case\"-\":advance(\"-\"),advance(\"(number)\");break;default:error(\"E003\",state.tokens.next)}}var api,declared,functions,inblock,indent,lookahead,lex,member,membersOnly,predefined,stack,urls,bang={\"<\":!0,\"<=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},functionicity=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],extraModules=[],emitter=new events.EventEmitter,typeofValues={};typeofValues.legacy=[\"xml\",\"unknown\"],typeofValues.es3=[\"undefined\",\"boolean\",\"number\",\"string\",\"function\",\"object\"],typeofValues.es3=typeofValues.es3.concat(typeofValues.legacy),typeofValues.es6=typeofValues.es3.concat(\"symbol\"),type(\"(number)\",function(){return this}),type(\"(string)\",function(){return this}),state.syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var v=this.value;return\"=>\"===state.tokens.next.id?this:(state.funct[\"(comparray)\"].check(v)||state.funct[\"(scope)\"].block.use(v,state.tokens.curr),this)},led:function(){error(\"E033\",state.tokens.next,state.tokens.next.value)}};var baseTemplateSyntax={lbp:0,identifier:!1,template:!0};state.syntax[\"(template)\"]=_.extend({type:\"(template)\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!1},baseTemplateSyntax),state.syntax[\"(template middle)\"]=_.extend({type:\"(template middle)\",middle:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\"(template tail)\"]=_.extend({type:\"(template tail)\",tail:!0,noSubst:!1},baseTemplateSyntax),state.syntax[\"(no subst template)\"]=_.extend({type:\"(template)\",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!0,tail:!0},baseTemplateSyntax),type(\"(regexp)\",function(){return this}),delim(\"(endline)\"),delim(\"(begin)\"),delim(\"(end)\").reach=!0,delim(\"(error)\").reach=!0,delim(\"}\").reach=!0,delim(\")\"),delim(\"]\"),delim('\"').reach=!0,delim(\"'\").reach=!0,delim(\";\"),delim(\":\").reach=!0,delim(\"#\"),reserve(\"else\"),reserve(\"case\").reach=!0,reserve(\"catch\"),reserve(\"default\").reach=!0,reserve(\"finally\"),reservevar(\"arguments\",function(x){state.isStrict()&&state.funct[\"(global)\"]&&warning(\"E008\",x)}),reservevar(\"eval\"),reservevar(\"false\"),reservevar(\"Infinity\"),reservevar(\"null\"),reservevar(\"this\",function(x){state.isStrict()&&!isMethod()&&!state.option.validthis&&(state.funct[\"(statement)\"]&&state.funct[\"(name)\"].charAt(0)>\"Z\"||state.funct[\"(global)\"])&&warning(\"W040\",x)}),reservevar(\"true\"),reservevar(\"undefined\"),assignop(\"=\",\"assign\",20),assignop(\"+=\",\"assignadd\",20),assignop(\"-=\",\"assignsub\",20),assignop(\"*=\",\"assignmult\",20),assignop(\"/=\",\"assigndiv\",20).nud=function(){error(\"E014\")},assignop(\"%=\",\"assignmod\",20),bitwiseassignop(\"&=\"),bitwiseassignop(\"|=\"),bitwiseassignop(\"^=\"),bitwiseassignop(\"<<=\"),bitwiseassignop(\">>=\"),bitwiseassignop(\">>>=\"),infix(\",\",function(left,that){var expr;if(that.exprs=[left],state.option.nocomma&&warning(\"W127\"),!comma({peek:!0}))return that;for(;;){if(!(expr=expression(10)))break;if(that.exprs.push(expr),\",\"!==state.tokens.next.value||!comma())break}return that},10,!0),infix(\"?\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(10),advance(\":\"),that[\"else\"]=expression(10),that},30);var orPrecendence=40;infix(\"||\",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(orPrecendence),that},orPrecendence),infix(\"&&\",\"and\",50),bitwise(\"|\",\"bitor\",70),bitwise(\"^\",\"bitxor\",80),bitwise(\"&\",\"bitand\",90),relation(\"==\",function(left,right){var eqnull=state.option.eqnull&&(\"null\"===(left&&left.value)||\"null\"===(right&&right.value));switch(!0){case!eqnull&&state.option.eqeqeq:this.from=this.character,warning(\"W116\",this,\"===\",\"==\");break;case isPoorRelation(left):warning(\"W041\",this,\"===\",left.value);break;case isPoorRelation(right):warning(\"W041\",this,\"===\",right.value);break;case isTypoTypeof(right,left,state):warning(\"W122\",this,right.value);break;case isTypoTypeof(left,right,state):warning(\"W122\",this,left.value)}return this}),relation(\"===\",function(left,right){return isTypoTypeof(right,left,state)?warning(\"W122\",this,right.value):isTypoTypeof(left,right,state)&&warning(\"W122\",this,left.value),this}),relation(\"!=\",function(left,right){var eqnull=state.option.eqnull&&(\"null\"===(left&&left.value)||\"null\"===(right&&right.value));return!eqnull&&state.option.eqeqeq?(this.from=this.character,warning(\"W116\",this,\"!==\",\"!=\")):isPoorRelation(left)?warning(\"W041\",this,\"!==\",left.value):isPoorRelation(right)?warning(\"W041\",this,\"!==\",right.value):isTypoTypeof(right,left,state)?warning(\"W122\",this,right.value):isTypoTypeof(left,right,state)&&warning(\"W122\",this,left.value),this}),relation(\"!==\",function(left,right){return isTypoTypeof(right,left,state)?warning(\"W122\",this,right.value):isTypoTypeof(left,right,state)&&warning(\"W122\",this,left.value),this}),relation(\"<\"),relation(\">\"),relation(\"<=\"),relation(\">=\"),bitwise(\"<<\",\"shiftleft\",120),bitwise(\">>\",\"shiftright\",120),bitwise(\">>>\",\"shiftrightunsigned\",120),infix(\"in\",\"in\",120),infix(\"instanceof\",\"instanceof\",120),infix(\"+\",function(left,that){var right;return that.left=left,that.right=right=expression(130),left&&right&&\"(string)\"===left.id&&\"(string)\"===right.id?(left.value+=right.value,left.character=right.character,!state.option.scripturl&®.javascriptURL.test(left.value)&&warning(\"W050\",left),left):that},130),prefix(\"+\",\"num\"),prefix(\"+++\",function(){return warning(\"W007\"),this.arity=\"unary\",this.right=expression(150),this}),infix(\"+++\",function(left){return warning(\"W007\"),this.left=left,this.right=expression(130),this},130),infix(\"-\",\"sub\",130),prefix(\"-\",\"neg\"),prefix(\"---\",function(){return warning(\"W006\"),this.arity=\"unary\",this.right=expression(150),this}),infix(\"---\",function(left){return warning(\"W006\"),this.left=left,this.right=expression(130),this},130),infix(\"*\",\"mult\",140),infix(\"/\",\"div\",140),infix(\"%\",\"mod\",140),suffix(\"++\"),prefix(\"++\",\"preinc\"),state.syntax[\"++\"].exps=!0,suffix(\"--\"),prefix(\"--\",\"predec\"),state.syntax[\"--\"].exps=!0,prefix(\"delete\",function(){var p=expression(10);return p?(\".\"!==p.id&&\"[\"!==p.id&&warning(\"W051\"),this.first=p,p.identifier&&!state.isStrict()&&(p.forgiveUndef=!0),this):this}).exps=!0,prefix(\"~\",function(){return state.option.bitwise&&warning(\"W016\",this,\"~\"),this.arity=\"unary\",this.right=expression(150),this}),prefix(\"...\",function(){return state.inES6(!0)||warning(\"W119\",this,\"spread/rest operator\",\"6\"),state.tokens.next.identifier||\"(string)\"===state.tokens.next.type||checkPunctuators(state.tokens.next,[\"[\",\"(\"])||error(\"E030\",state.tokens.next,state.tokens.next.value),expression(150),this}),prefix(\"!\",function(){return this.arity=\"unary\",this.right=expression(150),this.right||quit(\"E041\",this.line||0),bang[this.right.id]===!0&&warning(\"W018\",this,\"!\"),this}),prefix(\"typeof\",function(){var p=expression(150);return this.first=this.right=p,p||quit(\"E041\",this.line||0,this.character||0),p.identifier&&(p.forgiveUndef=!0),this}),prefix(\"new\",function(){var mp=metaProperty(\"target\",function(){state.inES6(!0)||warning(\"W119\",state.tokens.prev,\"new.target\",\"6\");for(var inFunction,c=state.funct;c&&(inFunction=!c[\"(global)\"],c[\"(arrow)\"]);)c=c[\"(context)\"];inFunction||warning(\"W136\",state.tokens.prev,\"new.target\")});if(mp)return mp;var i,c=expression(155);if(c&&\"function\"!==c.id)if(c.identifier)switch(c[\"new\"]=!0,c.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":warning(\"W053\",state.tokens.prev,c.value);break;case\"Symbol\":state.inES6()&&warning(\"W053\",state.tokens.prev,c.value);break;case\"Function\":state.option.evil||warning(\"W054\");break;case\"Date\":case\"RegExp\":case\"this\":break;default:\"function\"!==c.id&&(i=c.value.substr(0,1),state.option.newcap&&(\"A\">i||i>\"Z\")&&!state.funct[\"(scope)\"].isPredefined(c.value)&&warning(\"W055\",state.tokens.curr))}else\".\"!==c.id&&\"[\"!==c.id&&\"(\"!==c.id&&warning(\"W056\",state.tokens.curr);else state.option.supernew||warning(\"W057\",this);return\"(\"===state.tokens.next.id||state.option.supernew||warning(\"W058\",state.tokens.curr,state.tokens.curr.value),this.first=this.right=c,this}),state.syntax[\"new\"].exps=!0,prefix(\"void\").exps=!0,infix(\".\",function(left,that){var m=identifier(!1,!0);return\"string\"==typeof m&&countMember(m),that.left=left,that.right=m,m&&\"hasOwnProperty\"===m&&\"=\"===state.tokens.next.value&&warning(\"W001\"),!left||\"arguments\"!==left.value||\"callee\"!==m&&\"caller\"!==m?state.option.evil||!left||\"document\"!==left.value||\"write\"!==m&&\"writeln\"!==m||warning(\"W060\",left):state.option.noarg?warning(\"W059\",left,m):state.isStrict()&&error(\"E008\"),state.option.evil||\"eval\"!==m&&\"execScript\"!==m||isGlobalEval(left,state)&&warning(\"W061\"),that},160,!0),infix(\"(\",function(left,that){state.option.immed&&left&&!left.immed&&\"function\"===left.id&&warning(\"W062\");var n=0,p=[];if(left&&\"(identifier)\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\"Array Number String Boolean Date Object Error Symbol\".indexOf(left.value)&&(\"Math\"===left.value?warning(\"W063\",left):state.option.newcap&&warning(\"W064\",left)),\")\"!==state.tokens.next.id)for(;p[p.length]=expression(10),n+=1,\",\"===state.tokens.next.id;)comma();return advance(\")\"),\"object\"==typeof left&&(state.inES5()||\"parseInt\"!==left.value||1!==n||warning(\"W065\",state.tokens.curr),state.option.evil||(\"eval\"===left.value||\"Function\"===left.value||\"execScript\"===left.value?(warning(\"W061\",left),p[0]&&\"(string)\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\"(string)\"!==p[0].id||\"setTimeout\"!==left.value&&\"setInterval\"!==left.value?!p[0]||\"(string)\"!==p[0].id||\".\"!==left.value||\"window\"!==left.left.value||\"setTimeout\"!==left.right&&\"setInterval\"!==left.right||(warning(\"W066\",left),addInternalSrc(left,p[0].value)):(warning(\"W066\",left),addInternalSrc(left,p[0].value))),left.identifier||\".\"===left.id||\"[\"===left.id||\"=>\"===left.id||\"(\"===left.id||\"&&\"===left.id||\"||\"===left.id||\"?\"===left.id||state.inES6()&&left[\"(name)\"]||warning(\"W067\",that)),that.left=left,that},155,!0).exps=!0,prefix(\"(\",function(){var pn1,ret,triggerFnExpr,first,last,pn=state.tokens.next,i=-1,parens=1,opening=state.tokens.curr,preceeding=state.tokens.prev,isNecessary=!state.option.singleGroups;do\"(\"===pn.value?parens+=1:\")\"===pn.value&&(parens-=1),i+=1,pn1=pn,pn=peek(i);while((0!==parens||\")\"!==pn1.value)&&\";\"!==pn.value&&\"(end)\"!==pn.type);if(\"function\"===state.tokens.next.id&&(triggerFnExpr=state.tokens.next.immed=!0),\"=>\"===pn.value)return doFunction({type:\"arrow\",parsedOpening:!0});var exprs=[];if(\")\"!==state.tokens.next.id)for(;exprs.push(expression(10)),\",\"===state.tokens.next.id;)state.option.nocomma&&warning(\"W127\"),comma();return advance(\")\",this),state.option.immed&&exprs[0]&&\"function\"===exprs[0].id&&\"(\"!==state.tokens.next.id&&\".\"!==state.tokens.next.id&&\"[\"!==state.tokens.next.id&&warning(\"W068\",this),exprs.length?(exprs.length>1?(ret=Object.create(state.syntax[\",\"]),ret.exprs=exprs,first=exprs[0],last=exprs[exprs.length-1],isNecessary||(isNecessary=preceeding.assign||preceeding.delim)):(ret=first=last=exprs[0],isNecessary||(isNecessary=opening.beginsStmt&&(\"{\"===ret.id||triggerFnExpr||isFunctor(ret))||triggerFnExpr&&(!isEndOfExpr()||\"}\"!==state.tokens.prev.id)||isFunctor(ret)&&!isEndOfExpr()||\"{\"===ret.id&&\"=>\"===preceeding.id||\"(number)\"===ret.type&&checkPunctuator(pn,\".\")&&/^\\d+$/.test(ret.value))),ret&&(!isNecessary&&(first.left||first.right||ret.exprs)&&(isNecessary=!isBeginOfExpr(preceeding)&&first.lbp<=preceeding.lbp||!isEndOfExpr()&&last.lbp\"),infix(\"[\",function(left,that){var s,e=expression(10);return e&&\"(string)\"===e.type&&(state.option.evil||\"eval\"!==e.value&&\"execScript\"!==e.value||isGlobalEval(left,state)&&warning(\"W061\"),countMember(e.value),!state.option.sub&®.identifier.test(e.value)&&(s=state.syntax[e.value],s&&isReserved(s)||warning(\"W069\",state.tokens.prev,e.value))),advance(\"]\",that),e&&\"hasOwnProperty\"===e.value&&\"=\"===state.tokens.next.value&&warning(\"W001\"),that.left=left,that.right=e,that},160,!0),prefix(\"[\",function(){var blocktype=lookupBlockType();if(blocktype.isCompArray)return state.option.esnext||state.inMoz()||warning(\"W118\",state.tokens.curr,\"array comprehension\"),comprehensiveArrayExpression();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;var b=state.tokens.curr.line!==startLine(state.tokens.next);for(this.first=[],b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));\"(end)\"!==state.tokens.next.id;){for(;\",\"===state.tokens.next.id;){if(!state.option.elision){if(state.inES5()){warning(\"W128\");do advance(\",\");while(\",\"===state.tokens.next.id);continue}warning(\"W070\")}advance(\",\")}if(\"]\"===state.tokens.next.id)break;if(this.first.push(expression(10)),\",\"!==state.tokens.next.id)break;if(comma({allowTrailing:!0}),\"]\"===state.tokens.next.id&&!state.inES5()){warning(\"W070\",state.tokens.curr);break}}return b&&(indent-=state.option.indent),advance(\"]\",this),this}),function(x){x.nud=function(){var b,f,i,p,t,nextVal,isGeneratorMethod=!1,props=Object.create(null);b=state.tokens.curr.line!==startLine(state.tokens.next),b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));var blocktype=lookupBlockType();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;for(;\"}\"!==state.tokens.next.id;){if(nextVal=state.tokens.next.value,!state.tokens.next.identifier||\",\"!==peekIgnoreEOL().id&&\"}\"!==peekIgnoreEOL().id)if(\":\"===peek().id||\"get\"!==nextVal&&\"set\"!==nextVal){if(\"*\"===state.tokens.next.value&&\"(punctuator)\"===state.tokens.next.type?(state.inES6()||warning(\"W104\",state.tokens.next,\"generator functions\",\"6\"),advance(\"*\"),isGeneratorMethod=!0):isGeneratorMethod=!1,\"[\"===state.tokens.next.id)i=computedPropertyName(),state.nameStack.set(i);else if(state.nameStack.set(state.tokens.next),i=propertyName(),saveProperty(props,i,state.tokens.next),\"string\"!=typeof i)break;\"(\"===state.tokens.next.value?(state.inES6()||warning(\"W104\",state.tokens.curr,\"concise methods\",\"6\"),doFunction({type:isGeneratorMethod?\"generator\":null})):(advance(\":\"),expression(10))}else advance(nextVal),state.inES5()||error(\"E034\"),i=propertyName(),i||state.inES6()||error(\"E035\"),i&&saveAccessor(nextVal,props,i,state.tokens.curr),t=state.tokens.next,f=doFunction(),p=f[\"(params)\"],\"get\"===nextVal&&i&&p?warning(\"W076\",t,p[0],i):\"set\"!==nextVal||!i||p&&1===p.length||warning(\"W077\",t,i);else state.inES6()||warning(\"W104\",state.tokens.next,\"object short notation\",\"6\"),i=propertyName(!0),saveProperty(props,i,state.tokens.next),expression(10);if(countMember(i),\",\"!==state.tokens.next.id)break;comma({allowTrailing:!0,property:!0}),\",\"===state.tokens.next.id?warning(\"W070\",state.tokens.curr):\"}\"!==state.tokens.next.id||state.inES5()||warning(\"W070\",state.tokens.curr)}return b&&(indent-=state.option.indent),advance(\"}\",this),checkProperties(props),this},x.fud=function(){error(\"E036\",state.tokens.curr)}}(delim(\"{\"));var conststatement=stmt(\"const\",function(context){return blockVariableStatement(\"const\",this,context)});conststatement.exps=!0;var letstatement=stmt(\"let\",function(context){return blockVariableStatement(\"let\",this,context)});letstatement.exps=!0;var varstatement=stmt(\"var\",function(context){var tokens,lone,value,prefix=context&&context.prefix,inexport=context&&context.inexport,implied=context&&context.implied,report=!(context&&context.ignore);for(this.first=[];;){var names=[];_.contains([\"{\",\"[\"],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),prefix&&implied||!report||!state.option.varstmt||warning(\"W132\",this),this.first=this.first.concat(names);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],!implied&&state.funct[\"(global)\"]&&(predefined[t.id]===!1?warning(\"W079\",t.token,t.id):state.option.futurehostile===!1&&(!state.inES5()&&vars.ecmaIdentifiers[5][t.id]===!1||!state.inES6()&&vars.ecmaIdentifiers[6][t.id]===!1)&&warning(\"W129\",t.token,t.id)),t.id&&(\"for\"===implied?(state.funct[\"(scope)\"].has(t.id)||report&&warning(\"W088\",t.token,t.id),state.funct[\"(scope)\"].block.use(t.id,t.token)):(state.funct[\"(scope)\"].addlabel(t.id,{type:\"var\",token:t.token}),lone&&inexport&&state.funct[\"(scope)\"].setExported(t.id,t.token)),names.push(t.token)));if(\"=\"===state.tokens.next.id&&(state.nameStack.set(state.tokens.curr),advance(\"=\"),prefix||!report||state.funct[\"(loopage)\"]||\"undefined\"!==state.tokens.next.id||warning(\"W080\",state.tokens.prev,state.tokens.prev.value),\"=\"===peek(0).id&&state.tokens.next.identifier&&(!prefix&&report&&!state.funct[\"(params)\"]||-1===state.funct[\"(params)\"].indexOf(state.tokens.next.value))&&warning(\"W120\",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),\",\"!==state.tokens.next.id)break;comma()}return this});varstatement.exps=!0,blockstmt(\"class\",function(){return classdef.call(this,!0)}),blockstmt(\"function\",function(context){var inexport=context&&context.inexport,generator=!1;\"*\"===state.tokens.next.value&&(advance(\"*\"),state.inES6({strict:!0})?generator=!0:warning(\"W119\",state.tokens.curr,\"function*\",\"6\")),inblock&&warning(\"W082\",state.tokens.curr);var i=optionalidentifier();return state.funct[\"(scope)\"].addlabel(i,{type:\"function\",token:state.tokens.curr}),void 0===i?warning(\"W025\"):inexport&&state.funct[\"(scope)\"].setExported(i,state.tokens.prev),doFunction({name:i,statement:this,type:generator?\"generator\":null,ignoreLoopFunc:inblock}),\"(\"===state.tokens.next.id&&state.tokens.next.line===state.tokens.curr.line&&error(\"E039\"),this}),prefix(\"function\",function(){var generator=!1;\"*\"===state.tokens.next.value&&(state.inES6()||warning(\"W119\",state.tokens.curr,\"function*\",\"6\"),advance(\"*\"),generator=!0);var i=optionalidentifier();return doFunction({name:i,type:generator?\"generator\":null}),this}),blockstmt(\"if\",function(){var t=state.tokens.next;increaseComplexityCount(),state.condition=!0,advance(\"(\");var expr=expression(0);checkCondAssignment(expr);var forinifcheck=null;state.option.forin&&state.forinifcheckneeded&&(state.forinifcheckneeded=!1,forinifcheck=state.forinifchecks[state.forinifchecks.length-1],forinifcheck.type=\"(punctuator)\"===expr.type&&\"!\"===expr.value?\"(negative)\":\"(positive)\"),advance(\")\",t),state.condition=!1;var s=block(!0,!0);return forinifcheck&&\"(negative)\"===forinifcheck.type&&s&&s[0]&&\"(identifier)\"===s[0].type&&\"continue\"===s[0].value&&(forinifcheck.type=\"(negative-with-continue)\"),\"else\"===state.tokens.next.id&&(advance(\"else\"),\"if\"===state.tokens.next.id||\"switch\"===state.tokens.next.id?statement():block(!0,!0)),this}),blockstmt(\"try\",function(){function doCatch(){if(advance(\"catch\"),advance(\"(\"),state.funct[\"(scope)\"].stack(\"catchparams\"),checkPunctuators(state.tokens.next,[\"[\",\"{\"])){var tokens=destructuringPattern();_.each(tokens,function(token){token.id&&state.funct[\"(scope)\"].addParam(token.id,token,\"exception\")})}else\"(identifier)\"!==state.tokens.next.type?warning(\"E030\",state.tokens.next,state.tokens.next.value):state.funct[\"(scope)\"].addParam(identifier(),state.tokens.curr,\"exception\");\"if\"===state.tokens.next.value&&(state.inMoz()||warning(\"W118\",state.tokens.curr,\"catch filter\"),advance(\"if\"),expression(0)),advance(\")\"),block(!1),state.funct[\"(scope)\"].unstack()}var b;for(block(!0);\"catch\"===state.tokens.next.id;)increaseComplexityCount(),b&&!state.inMoz()&&warning(\"W118\",state.tokens.next,\"multiple catch blocks\"),doCatch(),b=!0;return\"finally\"===state.tokens.next.id?(advance(\"finally\"),block(!0),void 0):(b||error(\"E021\",state.tokens.next,\"catch\",state.tokens.next.value),this)}),blockstmt(\"while\",function(){var t=state.tokens.next;return state.funct[\"(breakage)\"]+=1,state.funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),checkCondAssignment(expression(0)),advance(\")\",t),block(!0,!0),state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1,this}).labelled=!0,blockstmt(\"with\",function(){var t=state.tokens.next;return state.isStrict()?error(\"E010\",state.tokens.curr):state.option.withstmt||warning(\"W085\",state.tokens.curr),advance(\"(\"),expression(0),advance(\")\",t),block(!0,!0),this}),blockstmt(\"switch\",function(){var t=state.tokens.next,g=!1,noindent=!1;\nfor(state.funct[\"(breakage)\"]+=1,advance(\"(\"),checkCondAssignment(expression(0)),advance(\")\",t),t=state.tokens.next,advance(\"{\"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case\"case\":switch(state.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:state.tokens.curr.caseFallsThrough||warning(\"W086\",state.tokens.curr,\"case\")}advance(\"case\"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(\":\"),state.funct[\"(verb)\"]=\"case\";break;case\"default\":switch(state.funct[\"(verb)\"]){case\"yield\":case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning(\"W086\",state.tokens.curr,\"default\"))}advance(\"default\"),g=!0,advance(\":\");break;case\"}\":return noindent||(indent-=state.option.indent),advance(\"}\",t),state.funct[\"(breakage)\"]-=1,state.funct[\"(verb)\"]=void 0,void 0;case\"(end)\":return error(\"E023\",state.tokens.next,\"}\"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case\",\":return error(\"E040\"),void 0;case\":\":g=!1,statements();break;default:return error(\"E025\",state.tokens.curr),void 0}else{if(\":\"!==state.tokens.curr.id)return error(\"E021\",state.tokens.next,\"case\",state.tokens.next.value),void 0;advance(\":\"),error(\"E024\",state.tokens.curr,\":\"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt(\"debugger\",function(){return state.option.debug||warning(\"W087\",this),this}).exps=!0,function(){var x=stmt(\"do\",function(){state.funct[\"(breakage)\"]+=1,state.funct[\"(loopage)\"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance(\"while\");var t=state.tokens.next;return advance(\"(\"),checkCondAssignment(expression(0)),advance(\")\",t),state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\"for\",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;\"each\"===t.value&&(foreachtok=t,advance(\"each\"),state.inMoz()||warning(\"W118\",state.tokens.curr,\"for each\")),increaseComplexityCount(),advance(\"(\");var nextop,comma,initializer,i=0,inof=[\"in\",\"of\"],level=0;checkPunctuators(state.tokens.next,[\"{\",\"[\"])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,[\"{\",\"[\"])?++level:checkPunctuators(nextop,[\"}\",\"]\"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,\",\")?comma=nextop:!initializer&&checkPunctuator(nextop,\"=\")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&\";\"!==nextop.value&&\"(end)\"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||\"of\"!==nextop.value||warning(\"W104\",nextop,\"for of\",\"6\");var ok=!(initializer||comma);if(initializer&&error(\"W133\",comma,nextop.value,\"initializer is forbidden\"),comma&&error(\"W133\",comma,nextop.value,\"more than one ForBinding\"),\"var\"===state.tokens.next.id?(advance(\"var\"),state.tokens.curr.fud({prefix:!0})):\"let\"===state.tokens.next.id||\"const\"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct[\"(scope)\"].stack(),state.tokens.curr.fud({prefix:!0})):Object.create(varstatement).fud({prefix:!0,implied:\"for\",ignore:!ok}),advance(nextop.value),expression(20),advance(\")\",t),\"in\"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:\"(none)\"})),state.funct[\"(breakage)\"]+=1,state.funct[\"(loopage)\"]+=1,s=block(!0,!0),\"in\"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&(\"object\"!=typeof s[0]||\"if\"!==s[0].value)||\"(positive)\"===check.type&&s.length>1||\"(negative)\"===check.type)&&warning(\"W089\",this)}state.forinifcheckneeded=!1}state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1}else{if(foreachtok&&error(\"E045\",foreachtok),\";\"!==state.tokens.next.id)if(\"var\"===state.tokens.next.id)advance(\"var\"),state.tokens.curr.fud();else if(\"let\"===state.tokens.next.id)advance(\"let\"),letscope=!0,state.funct[\"(scope)\"].stack(),state.tokens.curr.fud();else for(;expression(0,\"for\"),\",\"===state.tokens.next.id;)comma();if(nolinebreak(state.tokens.curr),advance(\";\"),state.funct[\"(loopage)\"]+=1,\";\"!==state.tokens.next.id&&checkCondAssignment(expression(0)),nolinebreak(state.tokens.curr),advance(\";\"),\";\"===state.tokens.next.id&&error(\"E021\",state.tokens.next,\")\",\";\"),\")\"!==state.tokens.next.id)for(;expression(0,\"for\"),\",\"===state.tokens.next.id;)comma();advance(\")\",t),state.funct[\"(breakage)\"]+=1,block(!0,!0),state.funct[\"(breakage)\"]-=1,state.funct[\"(loopage)\"]-=1}return letscope&&state.funct[\"(scope)\"].unstack(),this}).labelled=!0,stmt(\"break\",function(){var v=state.tokens.next.value;return state.option.asi||nolinebreak(this),\";\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line!==startLine(state.tokens.next)?0===state.funct[\"(breakage)\"]&&warning(\"W052\",state.tokens.next,this.value):(state.funct[\"(scope)\"].funct.hasBreakLabel(v)||warning(\"W090\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\"continue\",function(){var v=state.tokens.next.value;return 0===state.funct[\"(breakage)\"]&&warning(\"W052\",state.tokens.next,this.value),state.funct[\"(loopage)\"]||warning(\"W052\",state.tokens.next,this.value),state.option.asi||nolinebreak(this),\";\"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line===startLine(state.tokens.next)&&(state.funct[\"(scope)\"].funct.hasBreakLabel(v)||warning(\"W090\",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt(\"return\",function(){return this.line===startLine(state.tokens.next)?\";\"===state.tokens.next.id||state.tokens.next.reach||(this.first=expression(0),!this.first||\"(punctuator)\"!==this.first.type||\"=\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\"W093\",this.first.line,this.first.character)):\"(punctuator)\"===state.tokens.next.type&&[\"[\",\"{\",\"+\",\"-\"].indexOf(state.tokens.next.value)>-1&&nolinebreak(this),reachable(this),this}).exps=!0,function(x){x.exps=!0,x.lbp=25}(prefix(\"yield\",function(){var prev=state.tokens.prev;state.inES6(!0)&&!state.funct[\"(generator)\"]?\"(catch)\"===state.funct[\"(name)\"]&&state.funct[\"(context)\"][\"(generator)\"]||error(\"E046\",state.tokens.curr,\"yield\"):state.inES6()||warning(\"W104\",state.tokens.curr,\"yield\",\"6\"),state.funct[\"(generator)\"]=\"yielded\";var delegatingYield=!1;return\"*\"===state.tokens.next.value&&(delegatingYield=!0,advance(\"*\")),this.line!==startLine(state.tokens.next)&&state.inMoz()?state.option.asi||nolinebreak(this):((delegatingYield||\";\"!==state.tokens.next.id&&!state.option.asi&&!state.tokens.next.reach&&state.tokens.next.nud)&&(nobreaknonadjacent(state.tokens.curr,state.tokens.next),this.first=expression(10),\"(punctuator)\"!==this.first.type||\"=\"!==this.first.value||this.first.paren||state.option.boss||warningAt(\"W093\",this.first.line,this.first.character)),state.inMoz()&&\")\"!==state.tokens.next.id&&(prev.lbp>30||!prev.assign&&!isEndOfExpr()||\"yield\"===prev.id)&&error(\"E050\",this)),this})),stmt(\"throw\",function(){return nolinebreak(this),this.first=expression(20),reachable(this),this}).exps=!0,stmt(\"import\",function(){if(state.inES6()||warning(\"W119\",state.tokens.curr,\"import\",\"6\"),\"(string)\"===state.tokens.next.type)return advance(\"(string)\"),this;if(state.tokens.next.identifier){if(this.name=identifier(),state.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:state.tokens.curr}),\",\"!==state.tokens.next.value)return advance(\"from\"),advance(\"(string)\"),this;advance(\",\")}if(\"*\"===state.tokens.next.id)advance(\"*\"),advance(\"as\"),state.tokens.next.identifier&&(this.name=identifier(),state.funct[\"(scope)\"].addlabel(this.name,{type:\"const\",token:state.tokens.curr}));else for(advance(\"{\");;){if(\"}\"===state.tokens.next.value){advance(\"}\");break}var importName;if(\"default\"===state.tokens.next.type?(importName=\"default\",advance(\"default\")):importName=identifier(),\"as\"===state.tokens.next.value&&(advance(\"as\"),importName=identifier()),state.funct[\"(scope)\"].addlabel(importName,{type:\"const\",token:state.tokens.curr}),\",\"!==state.tokens.next.value){if(\"}\"===state.tokens.next.value){advance(\"}\");break}error(\"E024\",state.tokens.next,state.tokens.next.value);break}advance(\",\")}return advance(\"from\"),advance(\"(string)\"),this}).exps=!0,stmt(\"export\",function(){var token,identifier,ok=!0;if(state.inES6()||(warning(\"W119\",state.tokens.curr,\"export\",\"6\"),ok=!1),state.funct[\"(scope)\"].block.isGlobal()||(error(\"E053\",state.tokens.curr),ok=!1),\"*\"===state.tokens.next.value)return advance(\"*\"),advance(\"from\"),advance(\"(string)\"),this;if(\"default\"===state.tokens.next.type){state.nameStack.set(state.tokens.next),advance(\"default\");var exportType=state.tokens.next.id;return(\"function\"===exportType||\"class\"===exportType)&&(this.block=!0),token=peek(),expression(10),identifier=token.value,this.block&&(state.funct[\"(scope)\"].addlabel(identifier,{type:exportType,token:token}),state.funct[\"(scope)\"].setExported(identifier,token)),this}if(\"{\"===state.tokens.next.value){advance(\"{\");for(var exportedTokens=[];;){if(state.tokens.next.identifier||error(\"E030\",state.tokens.next,state.tokens.next.value),advance(),exportedTokens.push(state.tokens.curr),\"as\"===state.tokens.next.value&&(advance(\"as\"),state.tokens.next.identifier||error(\"E030\",state.tokens.next,state.tokens.next.value),advance()),\",\"!==state.tokens.next.value){if(\"}\"===state.tokens.next.value){advance(\"}\");break}error(\"E024\",state.tokens.next,state.tokens.next.value);break}advance(\",\")}return\"from\"===state.tokens.next.value?(advance(\"from\"),advance(\"(string)\")):ok&&exportedTokens.forEach(function(token){state.funct[\"(scope)\"].setExported(token.value,token)}),this}if(\"var\"===state.tokens.next.id)advance(\"var\"),state.tokens.curr.fud({inexport:!0});else if(\"let\"===state.tokens.next.id)advance(\"let\"),state.tokens.curr.fud({inexport:!0});else if(\"const\"===state.tokens.next.id)advance(\"const\"),state.tokens.curr.fud({inexport:!0});else if(\"function\"===state.tokens.next.id)this.block=!0,advance(\"function\"),state.syntax[\"function\"].fud({inexport:!0});else if(\"class\"===state.tokens.next.id){this.block=!0,advance(\"class\");var classNameToken=state.tokens.next;state.syntax[\"class\"].fud(),state.funct[\"(scope)\"].setExported(classNameToken.value,classNameToken)}else error(\"E024\",state.tokens.next,state.tokens.next.value);return this}).exps=!0,FutureReservedWord(\"abstract\"),FutureReservedWord(\"boolean\"),FutureReservedWord(\"byte\"),FutureReservedWord(\"char\"),FutureReservedWord(\"class\",{es5:!0,nud:classdef}),FutureReservedWord(\"double\"),FutureReservedWord(\"enum\",{es5:!0}),FutureReservedWord(\"export\",{es5:!0}),FutureReservedWord(\"extends\",{es5:!0}),FutureReservedWord(\"final\"),FutureReservedWord(\"float\"),FutureReservedWord(\"goto\"),FutureReservedWord(\"implements\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"import\",{es5:!0}),FutureReservedWord(\"int\"),FutureReservedWord(\"interface\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"long\"),FutureReservedWord(\"native\"),FutureReservedWord(\"package\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"private\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"protected\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"public\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"short\"),FutureReservedWord(\"static\",{es5:!0,strictOnly:!0}),FutureReservedWord(\"super\",{es5:!0}),FutureReservedWord(\"synchronized\"),FutureReservedWord(\"transient\"),FutureReservedWord(\"volatile\");var lookupBlockType=function(){var pn,pn1,prev,i=-1,bracketStack=0,ret={};checkPunctuators(state.tokens.curr,[\"[\",\"{\"])&&(bracketStack+=1);do{if(prev=-1===i?state.tokens.curr:pn,pn=-1===i?state.tokens.next:peek(i),pn1=peek(i+1),i+=1,checkPunctuators(pn,[\"[\",\"{\"])?bracketStack+=1:checkPunctuators(pn,[\"]\",\"}\"])&&(bracketStack-=1),1===bracketStack&&pn.identifier&&\"for\"===pn.value&&!checkPunctuator(prev,\".\")){ret.isCompArray=!0,ret.notJson=!0;break}if(0===bracketStack&&checkPunctuators(pn,[\"}\",\"]\"])){if(\"=\"===pn1.value){ret.isDestAssign=!0,ret.notJson=!0;break}if(\".\"===pn1.value){ret.notJson=!0;break}}checkPunctuator(pn,\";\")&&(ret.isBlock=!0,ret.notJson=!0)}while(bracketStack>0&&\"(end)\"!==pn.id);return ret},arrayComprehension=function(){function declare(v){var l=_current.variables.filter(function(elt){return elt.value===v?(elt.undef=!1,v):void 0}).length;return 0!==l}function use(v){var l=_current.variables.filter(function(elt){return elt.value!==v||elt.undef?void 0:(elt.unused===!0&&(elt.unused=!1),v)}).length;return 0===l}var _current,CompArray=function(){this.mode=\"use\",this.variables=[]},_carrays=[];return{stack:function(){_current=new CompArray,_carrays.push(_current)},unstack:function(){_current.variables.filter(function(v){v.unused&&warning(\"W098\",v.token,v.raw_text||v.value),v.undef&&state.funct[\"(scope)\"].block.use(v.value,v.token)}),_carrays.splice(-1,1),_current=_carrays[_carrays.length-1]},setState:function(s){_.contains([\"use\",\"define\",\"generate\",\"filter\"],s)&&(_current.mode=s)},check:function(v){return _current?_current&&\"use\"===_current.mode?(use(v)&&_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!0,unused:!1}),!0):_current&&\"define\"===_current.mode?(declare(v)||_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!1,unused:!0}),!0):_current&&\"generate\"===_current.mode?(state.funct[\"(scope)\"].block.use(v,state.tokens.curr),!0):_current&&\"filter\"===_current.mode?(use(v)&&state.funct[\"(scope)\"].block.use(v,state.tokens.curr),!0):!1:void 0}}},escapeRegex=function(str){return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")},itself=function(s,o,g){function each(obj,cb){obj&&(Array.isArray(obj)||\"object\"!=typeof obj||(obj=Object.keys(obj)),obj.forEach(cb))}var i,k,x,reIgnoreStr,reIgnore,optionKeys,newOptionObj={},newIgnoredObj={};o=_.clone(o),state.reset(),o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\"(main)\"),predefined=Object.create(null),combine(predefined,vars.ecmaIdentifiers[3]),combine(predefined,vars.reservedVars),combine(predefined,g||{}),declared=Object.create(null);var exported=Object.create(null);if(o)for(each(o.predef||null,function(item){var slice,prop;\"-\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice,delete predefined[slice]):(prop=Object.getOwnPropertyDescriptor(o.predef,item),predefined[item]=prop?prop.value:!1)}),each(o.exported||null,function(item){exported[item]=!0}),delete o.predef,delete o.exported,optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)if(/^-W\\d{3}$/g.test(optionKeys[x]))newIgnoredObj[optionKeys[x].slice(1)]=!0;else{var optionKey=optionKeys[x];newOptionObj[optionKey]=o[optionKey],(\"esversion\"===optionKey&&5===o[optionKey]||\"es5\"===optionKey&&o[optionKey])&&warning(\"I003\"),\"newcap\"===optionKeys[x]&&o[optionKey]===!1&&(newOptionObj[\"(explicitNewcap)\"]=!0)}state.option=newOptionObj,state.ignored=newIgnoredObj,state.option.indent=state.option.indent||4,state.option.maxerr=state.option.maxerr||50,indent=1;var scopeManagerInst=scopeManager(state,predefined,exported,declared);if(scopeManagerInst.on(\"warning\",function(ev){warning.apply(null,[ev.code,ev.token].concat(ev.data))}),scopeManagerInst.on(\"error\",function(ev){error.apply(null,[ev.code,ev.token].concat(ev.data))}),state.funct=functor(\"(global)\",null,{\"(global)\":!0,\"(scope)\":scopeManagerInst,\"(comparray)\":arrayComprehension(),\"(metrics)\":createMetrics(state.tokens.next)}),functions=[state.funct],urls=[],stack=null,member={},membersOnly=null,inblock=!1,lookahead=[],!isString(s)&&!Array.isArray(s))return errorAt(\"E004\",0),!1;api={get isJSON(){return state.jsonMode},getOption:function(name){return state.option[name]||null},getCache:function(name){return state.cache[name]},setCache:function(name,value){state.cache[name]=value},warn:function(code,data){warningAt.apply(null,[code,data.line,data.char].concat(data.data))},on:function(names,listener){names.split(\" \").forEach(function(name){emitter.on(name,listener)}.bind(this))}},emitter.removeAllListeners(),(extraModules||[]).forEach(function(func){func(api)}),state.tokens.prev=state.tokens.curr=state.tokens.next=state.syntax[\"(begin)\"],o&&o.ignoreDelimiters&&(Array.isArray(o.ignoreDelimiters)||(o.ignoreDelimiters=[o.ignoreDelimiters]),o.ignoreDelimiters.forEach(function(delimiterPair){delimiterPair.start&&delimiterPair.end&&(reIgnoreStr=escapeRegex(delimiterPair.start)+\"[\\\\s\\\\S]*?\"+escapeRegex(delimiterPair.end),reIgnore=RegExp(reIgnoreStr,\"ig\"),s=s.replace(reIgnore,function(match){return match.replace(/./g,\" \")}))})),lex=new Lexer(s),lex.on(\"warning\",function(ev){warningAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\"error\",function(ev){errorAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on(\"fatal\",function(ev){quit(\"E041\",ev.line,ev.from)}),lex.on(\"Identifier\",function(ev){emitter.emit(\"Identifier\",ev)}),lex.on(\"String\",function(ev){emitter.emit(\"String\",ev)}),lex.on(\"Number\",function(ev){emitter.emit(\"Number\",ev)}),lex.start();for(var name in o)_.has(o,name)&&checkOption(name,state.tokens.curr);assume(),combine(predefined,g||{}),comma.first=!0;try{switch(advance(),state.tokens.next.id){case\"{\":case\"[\":destructuringAssignOrJsonValue();break;default:directives(),state.directive[\"use strict\"]&&\"global\"!==state.option.strict&&warning(\"W097\",state.tokens.prev),statements()}\"(end)\"!==state.tokens.next.id&&quit(\"E041\",state.tokens.curr.line),state.funct[\"(scope)\"].unstack()}catch(err){if(!err||\"JSHintError\"!==err.name)throw err;var nt=state.tokens.next||{};JSHINT.errors.push({scope:\"(main)\",raw:err.raw,code:err.code,reason:err.message,line:err.line||nt.line,character:err.character||nt.from},null)}if(\"(main)\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.addModule=function(func){extraModules.push(func)},itself.addModule(style.register),itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:state.option};itself.errors.length&&(data.errors=itself.errors),state.jsonMode&&(data.json=!0);var impliedGlobals=state.funct[\"(scope)\"].getImpliedGlobals();for(impliedGlobals.length>0&&(data.implieds=impliedGlobals),urls.length>0&&(data.urls=urls),globals=state.funct[\"(scope)\"].getUsedOrDefinedGlobals(),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\"(name)\"],fu.param=f[\"(params)\"],fu.line=f[\"(line)\"],fu.character=f[\"(character)\"],fu.last=f[\"(last)\"],fu.lastcharacter=f[\"(lastcharacter)\"],fu.metrics={complexity:f[\"(metrics)\"].ComplexityCount,parameters:f[\"(metrics)\"].arity,statements:f[\"(metrics)\"].statementCount},data.functions.push(fu)}var unuseds=state.funct[\"(scope)\"].getUnuseds();unuseds.length>0&&(data.unused=unuseds);for(n in member)if(\"number\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\"object\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)},{\"../lodash\":\"/node_modules/jshint/lodash.js\",\"./lex.js\":\"/node_modules/jshint/src/lex.js\",\"./messages.js\":\"/node_modules/jshint/src/messages.js\",\"./options.js\":\"/node_modules/jshint/src/options.js\",\"./reg.js\":\"/node_modules/jshint/src/reg.js\",\"./scope-manager.js\":\"/node_modules/jshint/src/scope-manager.js\",\"./state.js\":\"/node_modules/jshint/src/state.js\",\"./style.js\":\"/node_modules/jshint/src/style.js\",\"./vars.js\":\"/node_modules/jshint/src/vars.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/lex.js\":[function(_dereq_,module,exports){\"use strict\";function asyncTrigger(){var _checks=[];return{push:function(fn){_checks.push(fn)},check:function(){for(var check=0;_checks.length>check;++check)_checks[check]();_checks.splice(0,_checks.length)}}}function Lexer(source){var lines=source;\"string\"==typeof lines&&(lines=lines.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\").split(\"\\n\")),lines[0]&&\"#!\"===lines[0].substr(0,2)&&(-1!==lines[0].indexOf(\"node\")&&(state.option.node=!0),lines[0]=\"\"),this.emitter=new events.EventEmitter,this.source=source,this.setLines(lines),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input=\"\",this.inComment=!1,this.context=[],this.templateStarts=[];for(var i=0;state.option.indent>i;i+=1)state.tab+=\" \";this.ignoreLinterErrors=!1}var _=_dereq_(\"../lodash\"),events=_dereq_(\"events\"),reg=_dereq_(\"./reg.js\"),state=_dereq_(\"./state.js\").state,unicodeData=_dereq_(\"../data/ascii-identifier-data.js\"),asciiIdentifierStartTable=unicodeData.asciiIdentifierStartTable,asciiIdentifierPartTable=unicodeData.asciiIdentifierPartTable,Token={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},Context={Block:1,Template:2};Lexer.prototype={_lines:[],inContext:function(ctxType){return this.context.length>0&&this.context[this.context.length-1].type===ctxType},pushContext:function(ctxType){this.context.push({type:ctxType})},popContext:function(){return this.context.pop()},isContext:function(context){return this.context.length>0&&this.context[this.context.length-1]===context},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=state.lines,this._lines},setLines:function(val){this._lines=val,state.lines=this._lines},peek:function(i){return this.input.charAt(i||0)},skip:function(i){i=i||1,this.char+=i,this.input=this.input.slice(i)},on:function(names,listener){names.split(\" \").forEach(function(name){this.emitter.on(name,listener)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(type,args,checks,fn){checks.push(function(){fn()&&this.trigger(type,args)}.bind(this))},scanPunctuator:function(){var ch2,ch3,ch4,ch1=this.peek();switch(ch1){case\".\":if(/^[0-9]$/.test(this.peek(1)))return null;if(\".\"===this.peek(1)&&\".\"===this.peek(2))return{type:Token.Punctuator,value:\"...\"};case\"(\":case\")\":case\";\":case\",\":case\"[\":case\"]\":case\":\":case\"~\":case\"?\":return{type:Token.Punctuator,value:ch1};case\"{\":return this.pushContext(Context.Block),{type:Token.Punctuator,value:ch1};case\"}\":return this.inContext(Context.Block)&&this.popContext(),{type:Token.Punctuator,value:ch1};case\"#\":return{type:Token.Punctuator,value:ch1};case\"\":return null}return ch2=this.peek(1),ch3=this.peek(2),ch4=this.peek(3),\">\"===ch1&&\">\"===ch2&&\">\"===ch3&&\"=\"===ch4?{type:Token.Punctuator,value:\">>>=\"}:\"=\"===ch1&&\"=\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\"===\"}:\"!\"===ch1&&\"=\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\"!==\"}:\">\"===ch1&&\">\"===ch2&&\">\"===ch3?{type:Token.Punctuator,value:\">>>\"}:\"<\"===ch1&&\"<\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\"<<=\"}:\">\"===ch1&&\">\"===ch2&&\"=\"===ch3?{type:Token.Punctuator,value:\">>=\"}:\"=\"===ch1&&\">\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:ch1===ch2&&\"+-<>&|\".indexOf(ch1)>=0?{type:Token.Punctuator,value:ch1+ch2}:\"<>=!+-*%&|^\".indexOf(ch1)>=0?\"=\"===ch2?{type:Token.Punctuator,value:ch1+ch2}:{type:Token.Punctuator,value:ch1}:\"/\"===ch1?\"=\"===ch2?{type:Token.Punctuator,value:\"/=\"}:{type:Token.Punctuator,value:\"/\"}:null},scanComments:function(){function commentToken(label,body,opt){var special=[\"jshint\",\"jslint\",\"members\",\"member\",\"globals\",\"global\",\"exported\"],isSpecial=!1,value=label+body,commentType=\"plain\";return opt=opt||{},opt.isMultiline&&(value+=\"*/\"),body=body.replace(/\\n/g,\" \"),\"/*\"===label&®.fallsThrough.test(body)&&(isSpecial=!0,commentType=\"falls through\"),special.forEach(function(str){if(!isSpecial&&(\"//\"!==label||\"jshint\"===str)&&(\" \"===body.charAt(str.length)&&body.substr(0,str.length)===str&&(isSpecial=!0,label+=str,body=body.substr(str.length)),isSpecial||\" \"!==body.charAt(0)||\" \"!==body.charAt(str.length+1)||body.substr(1,str.length)!==str||(isSpecial=!0,label=label+\" \"+str,body=body.substr(str.length+1)),isSpecial))switch(str){case\"member\":commentType=\"members\";break;case\"global\":commentType=\"globals\";break;default:var options=body.split(\":\").map(function(v){return v.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")});if(2===options.length)switch(options[0]){case\"ignore\":switch(options[1]){case\"start\":self.ignoringLinterErrors=!0,isSpecial=!1;break;case\"end\":self.ignoringLinterErrors=!1,isSpecial=!1}}commentType=str}}),{type:Token.Comment,commentType:commentType,value:value,body:body,isSpecial:isSpecial,isMultiline:opt.isMultiline||!1,isMalformed:opt.isMalformed||!1}}var ch1=this.peek(),ch2=this.peek(1),rest=this.input.substr(2),startLine=this.line,startChar=this.char,self=this;if(\"*\"===ch1&&\"/\"===ch2)return this.trigger(\"error\",{code:\"E018\",line:startLine,character:startChar}),this.skip(2),null;if(\"/\"!==ch1||\"*\"!==ch2&&\"/\"!==ch2)return null;if(\"/\"===ch2)return this.skip(this.input.length),commentToken(\"//\",rest);var body=\"\";if(\"*\"===ch2){for(this.inComment=!0,this.skip(2);\"*\"!==this.peek()||\"/\"!==this.peek(1);)if(\"\"===this.peek()){if(body+=\"\\n\",!this.nextLine())return this.trigger(\"error\",{code:\"E017\",line:startLine,character:startChar}),this.inComment=!1,commentToken(\"/*\",body,{isMultiline:!0,isMalformed:!0})}else body+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,commentToken(\"/*\",body,{isMultiline:!0})}},scanKeyword:function(){var result=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),keywords=[\"if\",\"in\",\"do\",\"var\",\"for\",\"new\",\"try\",\"let\",\"this\",\"else\",\"case\",\"void\",\"with\",\"enum\",\"while\",\"break\",\"catch\",\"throw\",\"const\",\"yield\",\"class\",\"super\",\"return\",\"typeof\",\"delete\",\"switch\",\"export\",\"import\",\"default\",\"finally\",\"extends\",\"function\",\"continue\",\"debugger\",\"instanceof\"];return result&&keywords.indexOf(result[0])>=0?{type:Token.Keyword,value:result[0]}:null},scanIdentifier:function(){function isNonAsciiIdentifierStart(code){return code>256}function isNonAsciiIdentifierPart(code){return code>256}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function removeEscapeSequences(id){return id.replace(/\\\\u([0-9a-fA-F]{4})/g,function(m0,codepoint){return String.fromCharCode(parseInt(codepoint,16))})}var type,char,id=\"\",index=0,readUnicodeEscapeSequence=function(){if(index+=1,\"u\"!==this.peek(index))return null;var code,ch1=this.peek(index+1),ch2=this.peek(index+2),ch3=this.peek(index+3),ch4=this.peek(index+4);return isHexDigit(ch1)&&isHexDigit(ch2)&&isHexDigit(ch3)&&isHexDigit(ch4)?(code=parseInt(ch1+ch2+ch3+ch4,16),asciiIdentifierPartTable[code]||isNonAsciiIdentifierPart(code)?(index+=5,\"\\\\u\"+ch1+ch2+ch3+ch4):null):null}.bind(this),getIdentifierStart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierStartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierStart(code)?(index+=1,chr):null}.bind(this),getIdentifierPart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierPartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierPart(code)?(index+=1,chr):null}.bind(this);if(char=getIdentifierStart(),null===char)return null;for(id=char;char=getIdentifierPart(),null!==char;)id+=char;switch(id){case\"true\":case\"false\":type=Token.BooleanLiteral;break;case\"null\":type=Token.NullLiteral;break;default:type=Token.Identifier}return{type:type,value:removeEscapeSequences(id),text:id,tokenLength:id.length}},scanNumericLiteral:function(){function isDecimalDigit(str){return/^[0-9]$/.test(str)}function isOctalDigit(str){return/^[0-7]$/.test(str)}function isBinaryDigit(str){return/^[01]$/.test(str)}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function isIdentifierStart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch}var bad,index=0,value=\"\",length=this.input.length,char=this.peek(index),isAllowedDigit=isDecimalDigit,base=10,isLegacy=!1;if(\".\"!==char&&!isDecimalDigit(char))return null;if(\".\"!==char){for(value=this.peek(index),index+=1,char=this.peek(index),\"0\"===value&&((\"x\"===char||\"X\"===char)&&(isAllowedDigit=isHexDigit,base=16,index+=1,value+=char),(\"o\"===char||\"O\"===char)&&(isAllowedDigit=isOctalDigit,base=8,state.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Octal integer literal\",\"6\"]}),index+=1,value+=char),(\"b\"===char||\"B\"===char)&&(isAllowedDigit=isBinaryDigit,base=2,state.inES6(!0)||this.trigger(\"warning\",{code:\"W119\",line:this.line,character:this.char,data:[\"Binary integer literal\",\"6\"]}),index+=1,value+=char),isOctalDigit(char)&&(isAllowedDigit=isOctalDigit,base=8,isLegacy=!0,bad=!1,index+=1,value+=char),!isOctalDigit(char)&&isDecimalDigit(char)&&(index+=1,value+=char));length>index;){if(char=this.peek(index),isLegacy&&isDecimalDigit(char))bad=!0;else if(!isAllowedDigit(char))break;value+=char,index+=1}if(isAllowedDigit!==isDecimalDigit)return!isLegacy&&2>=value.length?{type:Token.NumericLiteral,value:value,isMalformed:!0}:length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isLegacy:isLegacy,isMalformed:!1}}if(\".\"===char)for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1;if(\"e\"===char||\"E\"===char){if(value+=char,index+=1,char=this.peek(index),(\"+\"===char||\"-\"===char)&&(value+=this.peek(index),index+=1),char=this.peek(index),!isDecimalDigit(char))return null;for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1}return length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isMalformed:!isFinite(value)}},scanEscapeSequence:function(checks){var allowNewLine=!1,jump=1;this.skip();var char=this.peek();switch(char){case\"'\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\'\"]},checks,function(){return state.jsonMode});break;case\"b\":char=\"\\\\b\";break;case\"f\":char=\"\\\\f\";break;case\"n\":char=\"\\\\n\";break;case\"r\":char=\"\\\\r\";break;case\"t\":char=\"\\\\t\";break;case\"0\":char=\"\\\\0\";var n=parseInt(this.peek(1),10);this.triggerAsync(\"warning\",{code:\"W115\",line:this.line,character:this.char},checks,function(){return n>=0&&7>=n&&state.isStrict()});break;case\"u\":var hexCode=this.input.substr(1,4),code=parseInt(hexCode,16);isNaN(code)&&this.trigger(\"warning\",{code:\"W052\",line:this.line,character:this.char,data:[\"u\"+hexCode]}),char=String.fromCharCode(code),jump=5;break;case\"v\":this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\v\"]},checks,function(){return state.jsonMode}),char=\"\u000b\";break;case\"x\":var x=parseInt(this.input.substr(1,2),16);this.triggerAsync(\"warning\",{code:\"W114\",line:this.line,character:this.char,data:[\"\\\\x-\"]},checks,function(){return state.jsonMode}),char=String.fromCharCode(x),jump=3;break;case\"\\\\\":char=\"\\\\\\\\\";break;case'\"':char='\\\\\"';break;case\"/\":break;case\"\":allowNewLine=!0,char=\"\"}return{\"char\":char,jump:jump,allowNewLine:allowNewLine}},scanTemplateLiteral:function(checks){var tokenType,ch,value=\"\",startLine=this.line,startChar=this.char,depth=this.templateStarts.length;if(!state.inES6(!0))return null;if(\"`\"===this.peek())tokenType=Token.TemplateHead,this.templateStarts.push({line:this.line,\"char\":this.char}),depth=this.templateStarts.length,this.skip(1),this.pushContext(Context.Template);else{if(!this.inContext(Context.Template)||\"}\"!==this.peek())return null;tokenType=Token.TemplateMiddle}for(;\"`\"!==this.peek();){for(;\"\"===(ch=this.peek());)if(value+=\"\\n\",!this.nextLine()){var startPos=this.templateStarts.pop();return this.trigger(\"error\",{code:\"E052\",line:startPos.line,character:startPos.char}),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,depth:depth,context:this.popContext()}}if(\"$\"===ch&&\"{\"===this.peek(1))return value+=\"${\",this.skip(2),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.currentContext()};\nif(\"\\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else\"`\"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if('\"'!==quote&&\"'\"!==quote)return null;this.triggerAsync(\"warning\",{code:\"W108\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&'\"'!==quote});var value=\"\",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(\"\"===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync(\"warning\",{code:\"W043\",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync(\"warning\",{code:\"W042\",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger(\"warning\",{code:\"W112\",line:this.line,character:this.char}),!this.nextLine())return this.trigger(\"error\",{code:\"E029\",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(\" \">char&&this.trigger(\"warning\",{code:\"W113\",line:this.line,character:this.char,data:[\"\"]}),\"\\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body=\"\",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){\" \">char&&(malformed=!0,this.trigger(\"warning\",{code:\"W048\",line:this.line,character:this.char})),\"<\"===char&&(malformed=!0,this.trigger(\"warning\",{code:\"W049\",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||\"/\"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)\"]\"===char&&(\"\\\\\"!==this.peek(index-1)||\"\\\\\"===this.peek(index-2))&&(isCharSet=!1),\"\\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if(\"\\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),\"/\"===char){index+=1;continue}if(\"[\"===char){index+=1;continue}}if(\"[\"!==char){if(\"/\"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger(\"error\",{code:\"E015\",line:this.line,character:this.from}),void this.trigger(\"fatal\",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(\"\"))}catch(err){malformed=!0,this.trigger(\"error\",{code:\"E016\",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;if(/\\s/.test(this.peek()))for(start=this.char;/\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(arguments,function(prefix){return 0===inputTrimmed.indexOf(prefix)})},endsWith=function(){return _.some(arguments,function(suffix){return-1!==inputTrimmed.indexOf(suffix,inputTrimmed.length-suffix.length)})};if(this.ignoringLinterErrors===!0&&(startsWith(\"/*\",\"//\")||this.inComment&&endsWith(\"*/\")||(this.input=\"\")),char=this.scanNonBreakingSpaces(),char>=0&&this.trigger(\"warning\",{code:\"W125\",line:this.line,character:char+1}),this.input=this.input.replace(/\\t/g,state.tab),char=this.scanUnsafeChars(),char>=0&&this.trigger(\"warning\",{code:\"W100\",line:this.line,character:char}),!this.ignoringLinterErrors&&state.option.maxlen&&state.option.maxlen=0;--i){var scopeLabels=_scopeStack[i][\"(labels)\"];if(scopeLabels[labelName])return scopeLabels}}function usedSoFarInCurrentFunction(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\"(usages)\"][labelName])return current[\"(usages)\"][labelName];if(current===_currentFunctBody)break}return!1}function _checkOuterShadow(labelName,token){if(\"outer\"===state.option.shadow)for(var isGlobal=\"global\"===_currentFunctBody[\"(type)\"],isNewFunction=\"functionparams\"===_current[\"(type)\"],outsideCurrentFunction=!isGlobal,i=0;_scopeStack.length>i;i++){var stackItem=_scopeStack[i];isNewFunction||_scopeStack[i+1]!==_currentFunctBody||(outsideCurrentFunction=!1),outsideCurrentFunction&&stackItem[\"(labels)\"][labelName]&&warning(\"W123\",token,labelName),stackItem[\"(breakLabels)\"][labelName]&&warning(\"W123\",token,labelName)}}function _latedefWarning(type,labelName,token){state.option.latedef&&(state.option.latedef===!0&&\"function\"===type||\"function\"!==type)&&warning(\"W003\",token,labelName)}var _current,_scopeStack=[];_newScope(\"global\"),_current[\"(predefined)\"]=predefined;var _currentFunctBody=_current,usedPredefinedAndGlobals=Object.create(null),impliedGlobals=Object.create(null),unuseds=[],emitter=new events.EventEmitter,_getUnusedOption=function(unused_opt){return void 0===unused_opt&&(unused_opt=state.option.unused),unused_opt===!0&&(unused_opt=\"last-param\"),unused_opt},_warnUnused=function(name,tkn,type,unused_opt){var line=tkn.line,chr=tkn.from,raw_name=tkn.raw_text||name;unused_opt=_getUnusedOption(unused_opt);var warnable_types={vars:[\"var\"],\"last-param\":[\"var\",\"param\"],strict:[\"var\",\"param\",\"last-param\"]};unused_opt&&warnable_types[unused_opt]&&-1!==warnable_types[unused_opt].indexOf(type)&&warning(\"W098\",{line:line,from:chr},raw_name),(unused_opt||\"var\"===type)&&unuseds.push({name:name,line:line,character:chr})},scopeManagerInst={on:function(names,listener){names.split(\" \").forEach(function(name){emitter.on(name,listener)})},isPredefined:function(labelName){return!this.has(labelName)&&_.has(_scopeStack[0][\"(predefined)\"],labelName)},stack:function(type){var previousScope=_current;_newScope(type),type||\"functionparams\"!==previousScope[\"(type)\"]||(_current[\"(isFuncBody)\"]=!0,_current[\"(context)\"]=_currentFunctBody,_currentFunctBody=_current)},unstack:function(){var i,j,subScope=_scopeStack.length>1?_scopeStack[_scopeStack.length-2]:null,isUnstackingFunctionBody=_current===_currentFunctBody,isUnstackingFunctionParams=\"functionparams\"===_current[\"(type)\"],isUnstackingFunctionOuter=\"functionouter\"===_current[\"(type)\"],currentUsages=_current[\"(usages)\"],currentLabels=_current[\"(labels)\"],usedLabelNameList=Object.keys(currentUsages);for(currentUsages.__proto__&&-1===usedLabelNameList.indexOf(\"__proto__\")&&usedLabelNameList.push(\"__proto__\"),i=0;usedLabelNameList.length>i;i++){var usedLabelName=usedLabelNameList[i],usage=currentUsages[usedLabelName],usedLabel=currentLabels[usedLabelName];if(usedLabel){var usedLabelType=usedLabel[\"(type)\"];if(usedLabel[\"(useOutsideOfScope)\"]&&!state.option.funcscope){var usedTokens=usage[\"(tokens)\"];if(usedTokens)for(j=0;usedTokens.length>j;j++)usedLabel[\"(function)\"]===usedTokens[j][\"(function)\"]&&error(\"W038\",usedTokens[j],usedLabelName)}if(_current[\"(labels)\"][usedLabelName][\"(unused)\"]=!1,\"const\"===usedLabelType&&usage[\"(modified)\"])for(j=0;usage[\"(modified)\"].length>j;j++)error(\"E013\",usage[\"(modified)\"][j],usedLabelName);if((\"function\"===usedLabelType||\"class\"===usedLabelType)&&usage[\"(reassigned)\"])for(j=0;usage[\"(reassigned)\"].length>j;j++)error(\"W021\",usage[\"(reassigned)\"][j],usedLabelName,usedLabelType)}else if(isUnstackingFunctionOuter&&(state.funct[\"(isCapturing)\"]=!0),subScope)if(subScope[\"(usages)\"][usedLabelName]){var subScopeUsage=subScope[\"(usages)\"][usedLabelName];subScopeUsage[\"(modified)\"]=subScopeUsage[\"(modified)\"].concat(usage[\"(modified)\"]),subScopeUsage[\"(tokens)\"]=subScopeUsage[\"(tokens)\"].concat(usage[\"(tokens)\"]),subScopeUsage[\"(reassigned)\"]=subScopeUsage[\"(reassigned)\"].concat(usage[\"(reassigned)\"]),subScopeUsage[\"(onlyUsedSubFunction)\"]=!1}else subScope[\"(usages)\"][usedLabelName]=usage,isUnstackingFunctionBody&&(subScope[\"(usages)\"][usedLabelName][\"(onlyUsedSubFunction)\"]=!0);else if(\"boolean\"==typeof _current[\"(predefined)\"][usedLabelName]){if(delete declared[usedLabelName],usedPredefinedAndGlobals[usedLabelName]=marker,_current[\"(predefined)\"][usedLabelName]===!1&&usage[\"(reassigned)\"])for(j=0;usage[\"(reassigned)\"].length>j;j++)warning(\"W020\",usage[\"(reassigned)\"][j])}else if(usage[\"(tokens)\"])for(j=0;usage[\"(tokens)\"].length>j;j++){var undefinedToken=usage[\"(tokens)\"][j];undefinedToken.forgiveUndef||(state.option.undef&&!undefinedToken.ignoreUndef&&warning(\"W117\",undefinedToken,usedLabelName),impliedGlobals[usedLabelName]?impliedGlobals[usedLabelName].line.push(undefinedToken.line):impliedGlobals[usedLabelName]={name:usedLabelName,line:[undefinedToken.line]})}}if(subScope||Object.keys(declared).forEach(function(labelNotUsed){_warnUnused(labelNotUsed,declared[labelNotUsed],\"var\")}),subScope&&!isUnstackingFunctionBody&&!isUnstackingFunctionParams&&!isUnstackingFunctionOuter){var labelNames=Object.keys(currentLabels);for(i=0;labelNames.length>i;i++){var defLabelName=labelNames[i];currentLabels[defLabelName][\"(blockscoped)\"]||\"exception\"===currentLabels[defLabelName][\"(type)\"]||this.funct.has(defLabelName,{excludeCurrent:!0})||(subScope[\"(labels)\"][defLabelName]=currentLabels[defLabelName],\"global\"!==_currentFunctBody[\"(type)\"]&&(subScope[\"(labels)\"][defLabelName][\"(useOutsideOfScope)\"]=!0),delete currentLabels[defLabelName])}}_checkForUnused(),_scopeStack.pop(),isUnstackingFunctionBody&&(_currentFunctBody=_scopeStack[_.findLastIndex(_scopeStack,function(scope){return scope[\"(isFuncBody)\"]||\"global\"===scope[\"(type)\"]})]),_current=subScope},addParam:function(labelName,token,type){if(type=type||\"param\",\"exception\"===type){var previouslyDefinedLabelType=this.funct.labeltype(labelName);previouslyDefinedLabelType&&\"exception\"!==previouslyDefinedLabelType&&(state.option.node||warning(\"W002\",state.tokens.next,labelName))}if(_.has(_current[\"(labels)\"],labelName)?_current[\"(labels)\"][labelName].duplicated=!0:(_checkOuterShadow(labelName,token,type),_current[\"(labels)\"][labelName]={\"(type)\":type,\"(token)\":token,\"(unused)\":!0},_current[\"(params)\"].push(labelName)),_.has(_current[\"(usages)\"],labelName)){var usage=_current[\"(usages)\"][labelName];usage[\"(onlyUsedSubFunction)\"]?_latedefWarning(type,labelName,token):warning(\"E056\",token,labelName,type)}},validateParams:function(){if(\"global\"!==_currentFunctBody[\"(type)\"]){var isStrict=state.isStrict(),currentFunctParamScope=_currentFunctBody[\"(parent)\"];currentFunctParamScope[\"(params)\"]&¤tFunctParamScope[\"(params)\"].forEach(function(labelName){var label=currentFunctParamScope[\"(labels)\"][labelName];label&&label.duplicated&&(isStrict?warning(\"E011\",label[\"(token)\"],labelName):state.option.shadow!==!0&&warning(\"W004\",label[\"(token)\"],labelName))})}},getUsedOrDefinedGlobals:function(){var list=Object.keys(usedPredefinedAndGlobals);return usedPredefinedAndGlobals.__proto__===marker&&-1===list.indexOf(\"__proto__\")&&list.push(\"__proto__\"),list},getImpliedGlobals:function(){var values=_.values(impliedGlobals),hasProto=!1;return impliedGlobals.__proto__&&(hasProto=values.some(function(value){return\"__proto__\"===value.name}),hasProto||values.push(impliedGlobals.__proto__)),values},getUnuseds:function(){return unuseds},has:function(labelName){return Boolean(_getLabel(labelName))},labeltype:function(labelName){var scopeLabels=_getLabel(labelName);return scopeLabels?scopeLabels[labelName][\"(type)\"]:null},addExported:function(labelName){var globalLabels=_scopeStack[0][\"(labels)\"];if(_.has(declared,labelName))delete declared[labelName];else if(_.has(globalLabels,labelName))globalLabels[labelName][\"(unused)\"]=!1;else{for(var i=1;_scopeStack.length>i;i++){var scope=_scopeStack[i];if(scope[\"(type)\"])break;if(_.has(scope[\"(labels)\"],labelName)&&!scope[\"(labels)\"][labelName][\"(blockscoped)\"])return scope[\"(labels)\"][labelName][\"(unused)\"]=!1,void 0}exported[labelName]=!0}},setExported:function(labelName,token){this.block.use(labelName,token)\n},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped=\"let\"===type||\"const\"===type||\"class\"===type,isexported=\"global\"===(isblockscoped?_current:_currentFunctBody)[\"(type)\"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current[\"(labels)\"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||\"global\"===_current[\"(type)\"]||(declaredInCurrentScope=!!_currentFunctBody[\"(parent)\"][\"(labels)\"][labelName]),!declaredInCurrentScope&&_current[\"(usages)\"][labelName]){var usage=_current[\"(usages)\"][labelName];usage[\"(onlyUsedSubFunction)\"]?_latedefWarning(type,labelName,token):warning(\"E056\",token,labelName,type)}declaredInCurrentScope?warning(\"E011\",token,labelName):\"outer\"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning(\"W004\",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning(\"E011\",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&\"__proto__\"!==labelName&&\"global\"!==_currentFunctBody[\"(type)\"]&&warning(\"W004\",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),\"global\"===_currentFunctBody[\"(type)\"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current[\"(labels)\"][labelName]&&(!onlyBlockscoped||current[\"(labels)\"][labelName][\"(blockscoped)\"]))return current[\"(labels)\"][labelName][\"(type)\"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&\"functionparams\"===scopeCheck[\"(type)\"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current[\"(breakLabels)\"][labelName])return!0;if(\"functionparams\"===current[\"(type)\"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current[\"(labels)\"][labelName]={\"(type)\":type,\"(token)\":tok,\"(blockscoped)\":!1,\"(function)\":_currentFunctBody,\"(unused)\":unused}}},block:{isGlobal:function(){return\"global\"===_current[\"(type)\"]},use:function(labelName,token){var paramScope=_currentFunctBody[\"(parent)\"];paramScope&¶mScope[\"(labels)\"][labelName]&&\"param\"===paramScope[\"(labels)\"][labelName][\"(type)\"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope[\"(labels)\"][labelName][\"(unused)\"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token[\"(function)\"]=_currentFunctBody,_current[\"(usages)\"][labelName][\"(tokens)\"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current[\"(usages)\"][labelName][\"(reassigned)\"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current[\"(usages)\"][labelName][\"(modified)\"].push(token)},add:function(labelName,type,tok,unused){_current[\"(labels)\"][labelName]={\"(type)\":type,\"(token)\":tok,\"(blockscoped)\":!0,\"(unused)\":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning(\"E011\",token,labelName):\"outer\"===state.option.shadow&&(scopeManagerInst.funct.has(labelName)?warning(\"W004\",token,labelName):_checkOuterShadow(labelName,token)),_current[\"(breakLabels)\"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{\"../lodash\":\"/node_modules/jshint/lodash.js\",events:\"/node_modules/browserify/node_modules/events/events.js\"}],\"/node_modules/jshint/src/state.js\":[function(_dereq_,module,exports){\"use strict\";var NameStack=_dereq_(\"./name-stack.js\"),state={syntax:{},isStrict:function(){return this.directive[\"use strict\"]||this.inClassBody||this.option.module||\"implied\"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(strict){return strict?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab=\"\",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new NameStack,this.inClassBody=!1}};exports.state=state},{\"./name-stack.js\":\"/node_modules/jshint/src/name-stack.js\"}],\"/node_modules/jshint/src/style.js\":[function(_dereq_,module,exports){\"use strict\";exports.register=function(linter){linter.on(\"Identifier\",function(data){linter.getOption(\"proto\")||\"__proto__\"===data.name&&linter.warn(\"W103\",{line:data.line,\"char\":data.char,data:[data.name,\"6\"]})}),linter.on(\"Identifier\",function(data){linter.getOption(\"iterator\")||\"__iterator__\"===data.name&&linter.warn(\"W103\",{line:data.line,\"char\":data.char,data:[data.name]})}),linter.on(\"Identifier\",function(data){linter.getOption(\"camelcase\")&&data.name.replace(/^_+|_+$/g,\"\").indexOf(\"_\")>-1&&!data.name.match(/^[A-Z0-9_]*$/)&&linter.warn(\"W106\",{line:data.line,\"char\":data.from,data:[data.name]})}),linter.on(\"String\",function(data){var code,quotmark=linter.getOption(\"quotmark\");quotmark&&(\"single\"===quotmark&&\"'\"!==data.quote&&(code=\"W109\"),\"double\"===quotmark&&'\"'!==data.quote&&(code=\"W108\"),quotmark===!0&&(linter.getCache(\"quotmark\")||linter.setCache(\"quotmark\",data.quote),linter.getCache(\"quotmark\")!==data.quote&&(code=\"W110\")),code&&linter.warn(code,{line:data.line,\"char\":data.char}))}),linter.on(\"Number\",function(data){\".\"===data.value.charAt(0)&&linter.warn(\"W008\",{line:data.line,\"char\":data.char,data:[data.value]}),\".\"===data.value.substr(data.value.length-1)&&linter.warn(\"W047\",{line:data.line,\"char\":data.char,data:[data.value]}),/^00+/.test(data.value)&&linter.warn(\"W046\",{line:data.line,\"char\":data.char,data:[data.value]})}),linter.on(\"String\",function(data){var re=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;linter.getOption(\"scripturl\")||re.test(data.value)&&linter.warn(\"W107\",{line:data.line,\"char\":data.char})})}},{}],\"/node_modules/jshint/src/vars.js\":[function(_dereq_,module,exports){\"use strict\";exports.reservedVars={arguments:!1,NaN:!1},exports.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},exports.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},exports.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},exports.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},exports.nonstandard={escape:!1,unescape:!1},exports.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},exports.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,acequire:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},exports.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,acequire:!1,Buffer:!0,exports:!0,process:!0},exports.phantom={phantom:!0,acequire:!0,WebPage:!0,console:!0,exports:!0},exports.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,\"throws\":!1},exports.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},exports.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},exports.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},exports.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},exports.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},exports.jquery={$:!1,jQuery:!1},exports.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},exports.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},exports.yui={YUI:!1,Y:!1,YUI_config:!1},exports.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},exports.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},[\"/node_modules/jshint/src/jshint.js\"])}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(acequire,exports,module){\"use strict\";function startRegex(arr){return RegExp(\"^(\"+arr.join(\"|\")+\")\")}var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,lint=acequire(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable '(.+)'.\",'Missing \"use strict\"']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\{a\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\['{a}'\\\\] is better written in dot notation.\",\"'{a}' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\n/,\"\\n\"),!value)return this.sender.emit(\"annotate\",[]);var errors=[],maxErrorLevel=this.isValidJS(value)?\"warning\":\"error\";lint(value,this.options,this.options.globals);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\"warning\";if(\"Missing semicolon.\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\S/)),\"error\"==maxErrorLevel&&str&&/[\\w\\d{(['\"]/.test(str)?(error.reason='Missing \";\" before statement',type=\"error\"):type=\"info\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\"info\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\"'{a}' is not defined.\"==raw?type=\"warning\":\"'{a}' is defined but never used.\"==raw&&(type=\"info\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\"annotate\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }), -/* 177 */ +/* 179 */ /*!*********************************************************!*\ !*** ./node_modules/js-beautify/js/lib/beautify-css.js ***! \*********************************************************/ @@ -28090,7 +28092,7 @@ if (true) { /***/ }), -/* 178 */ +/* 180 */ /*!*****************************************************!*\ !*** ./node_modules/js-beautify/js/lib/beautify.js ***! \*****************************************************/ @@ -30919,7 +30921,7 @@ if (true) { /***/ }), -/* 179 */ +/* 181 */ /*!***************************************!*\ !*** (webpack)/buildin/amd-define.js ***! \***************************************/ @@ -30933,10 +30935,10 @@ module.exports = function() { /***/ }), -/* 180 */, -/* 181 */, /* 182 */, -/* 183 */ +/* 183 */, +/* 184 */, +/* 185 */ /*!*******************************************!*\ !*** ./node_modules/check-error/index.js ***! \*******************************************/ @@ -31120,7 +31122,7 @@ module.exports = { /***/ }), -/* 184 */ +/* 186 */ /*!*****************************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js ***! \*****************************************************************************/ @@ -31158,7 +31160,7 @@ module.exports = function getOwnEnumerablePropertySymbols(obj) { /***/ }), -/* 185 */ +/* 187 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/objDisplay.js ***! \********************************************************/ @@ -31219,7 +31221,7 @@ module.exports = function objDisplay(obj) { /***/ }), -/* 186 */ +/* 188 */ /*!***********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getProperties.js ***! \***********************************************************/ @@ -31266,7 +31268,7 @@ module.exports = function getProperties(object) { /***/ }), -/* 187 */ +/* 189 */ /*!*********************************************!*\ !*** ./node_modules/get-func-name/index.js ***! \*********************************************/ @@ -31322,7 +31324,7 @@ module.exports = getFuncName; /***/ }), -/* 188 */ +/* 190 */ /*!*******************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getActual.js ***! \*******************************************************/ @@ -31353,7 +31355,7 @@ module.exports = function getActual(obj, args) { /***/ }), -/* 189 */ +/* 191 */ /*!***********************************************!*\ !*** ./node_modules/assertion-error/index.js ***! \***********************************************/ @@ -31480,7 +31482,7 @@ AssertionError.prototype.toJSON = function (stack) { /***/ }), -/* 190 */ +/* 192 */ /*!**************************************************!*\ !*** ./node_modules/normalize.css/normalize.css ***! \**************************************************/ @@ -31490,7 +31492,7 @@ AssertionError.prototype.toJSON = function (stack) { // extracted by mini-css-extract-plugin /***/ }), -/* 191 */ +/* 193 */ /*!*************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/array-set.js ***! \*************************************************************************/ @@ -31622,7 +31624,7 @@ exports.ArraySet = ArraySet; /***/ }), -/* 192 */ +/* 194 */ /*!**************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/base64-vlq.js ***! \**************************************************************************/ @@ -31667,7 +31669,7 @@ exports.ArraySet = ArraySet; * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var base64 = __webpack_require__(/*! ./base64 */ 288); +var base64 = __webpack_require__(/*! ./base64 */ 290); // A single base 64 digit can contain 6 bits of data. For the base 64 variable // length quantities we use in the source map spec, the first bit is the sign, @@ -31773,7 +31775,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { /***/ }), -/* 193 */ +/* 195 */ /*!************************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/source-map-generator.js ***! \************************************************************************************/ @@ -31788,10 +31790,10 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { * http://opensource.org/licenses/BSD-3-Clause */ -var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 192); +var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 194); var util = __webpack_require__(/*! ./util */ 110); -var ArraySet = __webpack_require__(/*! ./array-set */ 191).ArraySet; -var MappingList = __webpack_require__(/*! ./mapping-list */ 287).MappingList; +var ArraySet = __webpack_require__(/*! ./array-set */ 193).ArraySet; +var MappingList = __webpack_require__(/*! ./mapping-list */ 289).MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -32209,7 +32211,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 194 */ +/* 196 */ /*!******************************************!*\ !*** ./node_modules/esutils/lib/code.js ***! \******************************************/ @@ -32355,7 +32357,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 195 */ +/* 197 */ /*!***********************************************************!*\ !*** ./node_modules/jszip/lib/reader/Uint8ArrayReader.js ***! \***********************************************************/ @@ -32365,7 +32367,7 @@ exports.SourceMapGenerator = SourceMapGenerator; "use strict"; -var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 197); +var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 199); var utils = __webpack_require__(/*! ../utils */ 63); function Uint8ArrayReader(data) { @@ -32389,7 +32391,7 @@ module.exports = Uint8ArrayReader; /***/ }), -/* 196 */ +/* 198 */ /*!*****************************************************!*\ !*** ./node_modules/jszip/lib/reader/DataReader.js ***! \*****************************************************/ @@ -32517,7 +32519,7 @@ module.exports = DataReader; /***/ }), -/* 197 */ +/* 199 */ /*!******************************************************!*\ !*** ./node_modules/jszip/lib/reader/ArrayReader.js ***! \******************************************************/ @@ -32527,7 +32529,7 @@ module.exports = DataReader; "use strict"; -var DataReader = __webpack_require__(/*! ./DataReader */ 196); +var DataReader = __webpack_require__(/*! ./DataReader */ 198); var utils = __webpack_require__(/*! ../utils */ 63); function ArrayReader(data) { @@ -32586,7 +32588,7 @@ module.exports = ArrayReader; /***/ }), -/* 198 */ +/* 200 */ /*!****************************************************!*\ !*** ./node_modules/jszip/lib/reader/readerFor.js ***! \****************************************************/ @@ -32599,10 +32601,10 @@ module.exports = ArrayReader; var utils = __webpack_require__(/*! ../utils */ 63); var support = __webpack_require__(/*! ../support */ 96); -var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 197); -var StringReader = __webpack_require__(/*! ./StringReader */ 298); -var NodeBufferReader = __webpack_require__(/*! ./NodeBufferReader */ 297); -var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 195); +var ArrayReader = __webpack_require__(/*! ./ArrayReader */ 199); +var StringReader = __webpack_require__(/*! ./StringReader */ 300); +var NodeBufferReader = __webpack_require__(/*! ./NodeBufferReader */ 299); +var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 197); /** * Create a reader adapted to the data. @@ -32626,7 +32628,7 @@ module.exports = function (data) { /***/ }), -/* 199 */ +/* 201 */ /*!*********************************************!*\ !*** ./node_modules/jszip/lib/signature.js ***! \*********************************************/ @@ -32645,7 +32647,7 @@ exports.DATA_DESCRIPTOR = "PK\x07\x08"; /***/ }), -/* 200 */ +/* 202 */ /*!*************************************************!*\ !*** ./node_modules/pako/lib/zlib/constants.js ***! \*************************************************/ @@ -32725,7 +32727,7 @@ module.exports = { /***/ }), -/* 201 */ +/* 203 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/zstream.js ***! \***********************************************/ @@ -32784,7 +32786,7 @@ module.exports = ZStream; /***/ }), -/* 202 */ +/* 204 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/utils/strings.js ***! \************************************************/ @@ -32981,7 +32983,7 @@ exports.utf8border = function (buf, max) { /***/ }), -/* 203 */ +/* 205 */ /*!*********************************************!*\ !*** ./node_modules/pako/lib/zlib/crc32.js ***! \*********************************************/ @@ -33052,7 +33054,7 @@ module.exports = crc32; /***/ }), -/* 204 */ +/* 206 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/adler32.js ***! \***********************************************/ @@ -33115,7 +33117,7 @@ module.exports = adler32; /***/ }), -/* 205 */ +/* 207 */ /*!************************************************!*\ !*** ./node_modules/jszip/lib/compressions.js ***! \************************************************/ @@ -33137,11 +33139,11 @@ exports.STORE = { return new GenericWorker("STORE decompression"); } }; -exports.DEFLATE = __webpack_require__(/*! ./flate */ 312); +exports.DEFLATE = __webpack_require__(/*! ./flate */ 314); /***/ }), -/* 206 */ +/* 208 */ /*!*****************************************************!*\ !*** ./node_modules/jszip/lib/stream/Crc32Probe.js ***! \*****************************************************/ @@ -33153,7 +33155,7 @@ exports.DEFLATE = __webpack_require__(/*! ./flate */ 312); var GenericWorker = __webpack_require__(/*! ./GenericWorker */ 83); -var crc32 = __webpack_require__(/*! ../crc32 */ 167); +var crc32 = __webpack_require__(/*! ../crc32 */ 169); var utils = __webpack_require__(/*! ../utils */ 63); /** @@ -33177,7 +33179,7 @@ module.exports = Crc32Probe; /***/ }), -/* 207 */ +/* 209 */ /*!**********************************************************!*\ !*** ./node_modules/jszip/lib/stream/DataLengthProbe.js ***! \**********************************************************/ @@ -33218,7 +33220,7 @@ module.exports = DataLengthProbe; /***/ }), -/* 208 */ +/* 210 */ /*!*****************************************************!*\ !*** ./node_modules/jszip/lib/stream/DataWorker.js ***! \*****************************************************/ @@ -33346,7 +33348,7 @@ module.exports = DataWorker; /***/ }), -/* 209 */ +/* 211 */ /*!********************************************!*\ !*** ./node_modules/jszip/lib/defaults.js ***! \********************************************/ @@ -33369,7 +33371,7 @@ exports.dosPermissions = null; /***/ }), -/* 210 */ +/* 212 */ /*!*******************************************************!*\ !*** ./node_modules/jszip/lib/stream/StreamHelper.js ***! \*******************************************************/ @@ -33381,16 +33383,16 @@ exports.dosPermissions = null; /* WEBPACK VAR INJECTION */(function(Buffer) { var utils = __webpack_require__(/*! ../utils */ 63); -var ConvertWorker = __webpack_require__(/*! ./ConvertWorker */ 316); +var ConvertWorker = __webpack_require__(/*! ./ConvertWorker */ 318); var GenericWorker = __webpack_require__(/*! ./GenericWorker */ 83); -var base64 = __webpack_require__(/*! ../base64 */ 215); +var base64 = __webpack_require__(/*! ../base64 */ 217); var support = __webpack_require__(/*! ../support */ 96); var external = __webpack_require__(/*! ../external */ 111); var NodejsStreamOutputAdapter = null; if (support.nodestream) { try { - NodejsStreamOutputAdapter = __webpack_require__(/*! ../nodejs/NodejsStreamOutputAdapter */ 315); + NodejsStreamOutputAdapter = __webpack_require__(/*! ../nodejs/NodejsStreamOutputAdapter */ 317); } catch(e) {} } @@ -33594,7 +33596,7 @@ module.exports = StreamHelper; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ 113).Buffer)) /***/ }), -/* 211 */ +/* 213 */ /*!********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_dom-create.js ***! \********************************************************************************/ @@ -33602,7 +33604,7 @@ module.exports = StreamHelper; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ./_is-object */ 170) +var isObject = __webpack_require__(/*! ./_is-object */ 172) , document = __webpack_require__(/*! ./_global */ 130).document // in old IE typeof document.createElement is 'object' , is = isObject(document) && isObject(document.createElement); @@ -33611,7 +33613,7 @@ module.exports = function(it){ }; /***/ }), -/* 212 */ +/* 214 */ /*!***************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_fails.js ***! \***************************************************************************/ @@ -33628,7 +33630,7 @@ module.exports = function(exec){ }; /***/ }), -/* 213 */ +/* 215 */ /*!*************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_ctx.js ***! \*************************************************************************/ @@ -33637,7 +33639,7 @@ module.exports = function(exec){ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding -var aFunction = __webpack_require__(/*! ./_a-function */ 329); +var aFunction = __webpack_require__(/*! ./_a-function */ 331); module.exports = function(fn, that, length){ aFunction(fn); if(that === undefined)return fn; @@ -33658,7 +33660,7 @@ module.exports = function(fn, that, length){ }; /***/ }), -/* 214 */ +/* 216 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_core.js ***! \**************************************************************************/ @@ -33670,7 +33672,7 @@ var core = module.exports = {version: '2.3.0'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef /***/ }), -/* 215 */ +/* 217 */ /*!******************************************!*\ !*** ./node_modules/jszip/lib/base64.js ***! \******************************************/ @@ -33788,7 +33790,7 @@ exports.decode = function(input) { /***/ }), -/* 216 */ +/* 218 */ /*!***************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! \***************************************************************/ @@ -34013,7 +34015,7 @@ function done(stream, er, data) { } /***/ }), -/* 217 */ +/* 219 */ /*!***********************************************************!*\ !*** ./node_modules/string_decoder/lib/string_decoder.js ***! \***********************************************************/ @@ -34296,7 +34298,7 @@ function simpleEnd(buf) { } /***/ }), -/* 218 */ +/* 220 */ /*!**********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! \**********************************************************************/ @@ -34381,9 +34383,9 @@ module.exports = { }; /***/ }), -/* 219 */, -/* 220 */, -/* 221 */ +/* 221 */, +/* 222 */, +/* 223 */ /*!*****************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! \*****************************************************************************/ @@ -34391,11 +34393,11 @@ module.exports = { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! events */ 173).EventEmitter; +module.exports = __webpack_require__(/*! events */ 175).EventEmitter; /***/ }), -/* 222 */ +/* 224 */ /*!**************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! \**************************************************************/ @@ -34435,7 +34437,7 @@ var processNextTick = __webpack_require__(/*! process-nextick-args */ 133).nextT module.exports = Readable; /**/ -var isArray = __webpack_require__(/*! isarray */ 224); +var isArray = __webpack_require__(/*! isarray */ 226); /**/ /**/ @@ -34445,7 +34447,7 @@ var Duplex; Readable.ReadableState = ReadableState; /**/ -var EE = __webpack_require__(/*! events */ 173).EventEmitter; +var EE = __webpack_require__(/*! events */ 175).EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; @@ -34453,7 +34455,7 @@ var EElistenerCount = function (emitter, type) { /**/ /**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ 221); +var Stream = __webpack_require__(/*! ./internal/streams/stream */ 223); /**/ /**/ @@ -34475,7 +34477,7 @@ util.inherits = __webpack_require__(/*! inherits */ 108); /**/ /**/ -var debugUtil = __webpack_require__(/*! util */ 220); +var debugUtil = __webpack_require__(/*! util */ 222); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); @@ -34484,8 +34486,8 @@ if (debugUtil && debugUtil.debuglog) { } /**/ -var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ 339); -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 218); +var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ 341); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ 220); var StringDecoder; util.inherits(Readable, Stream); @@ -34575,7 +34577,7 @@ function ReadableState(options, stream) { this.decoder = null; this.encoding = null; if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 217).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 219).StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } @@ -34731,7 +34733,7 @@ Readable.prototype.isPaused = function () { // backwards compatibility. Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 217).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ 219).StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; @@ -35422,7 +35424,7 @@ function indexOf(xs, x) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 89), __webpack_require__(/*! ./../../process/browser.js */ 114))) /***/ }), -/* 223 */ +/* 225 */ /*!***********************************************************!*\ !*** ./node_modules/jszip/lib/readable-stream-browser.js ***! \***********************************************************/ @@ -35438,11 +35440,11 @@ function indexOf(xs, x) { * reduce the final size of the bundle (only one stream implementation, not * two). */ -module.exports = __webpack_require__(/*! stream */ 340); +module.exports = __webpack_require__(/*! stream */ 342); /***/ }), -/* 224 */ +/* 226 */ /*!***************************************!*\ !*** ./node_modules/isarray/index.js ***! \***************************************/ @@ -35458,7 +35460,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 225 */ +/* 227 */ /*!************************************************!*\ !*** ./node_modules/timers-browserify/main.js ***! \************************************************/ @@ -35519,7 +35521,7 @@ exports._unrefActive = exports.active = function(item) { }; // setimmediate attaches itself to the global object -__webpack_require__(/*! setimmediate */ 344); +__webpack_require__(/*! setimmediate */ 346); // On some exotic environments, it's not clear which object `setimmediate` was // able to install onto. Search each possibility in the same order as the // `setimmediate` library. @@ -35533,7 +35535,7 @@ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) || /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 89))) /***/ }), -/* 226 */ +/* 228 */ /*!******************************************************!*\ !*** ./node_modules/bluebird/js/browser/bluebird.js ***! \******************************************************/ @@ -40843,10 +40845,10 @@ module.exports = ret; },{"./es5":13}]},{},[4])(4) }); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ 114), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 89), __webpack_require__(/*! ./../../../timers-browserify/main.js */ 225).setImmediate)) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ 114), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 89), __webpack_require__(/*! ./../../../timers-browserify/main.js */ 227).setImmediate)) /***/ }), -/* 227 */ +/* 229 */ /*!**************************************************!*\ !*** ./node_modules/brace/ext/language_tools.js ***! \**************************************************/ @@ -42812,7 +42814,7 @@ acequire("../config").defineOptions(Editor.prototype, "editor", { /***/ }), -/* 228 */ +/* 230 */ /*!************************************************!*\ !*** ./node_modules/brace/keybinding/emacs.js ***! \************************************************/ @@ -44004,7 +44006,7 @@ exports.killRing = { /***/ }), -/* 229 */ +/* 231 */ /*!**********************************************!*\ !*** ./node_modules/brace/keybinding/vim.js ***! \**********************************************/ @@ -49613,7 +49615,7 @@ dom.importCssString(".normal-mode .ace_cursor{\ /***/ }), -/* 230 */ +/* 232 */ /*!*******************************************!*\ !*** ./node_modules/brace/theme/xcode.js ***! \*******************************************/ @@ -49712,7 +49714,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 231 */ +/* 233 */ /*!**********************************************!*\ !*** ./node_modules/brace/theme/twilight.js ***! \**********************************************/ @@ -49832,7 +49834,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 232 */ +/* 234 */ /*!**********************************************!*\ !*** ./node_modules/brace/theme/terminal.js ***! \**********************************************/ @@ -49957,7 +49959,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 233 */ +/* 235 */ /*!*****************************************************!*\ !*** ./node_modules/brace/theme/solarized_light.js ***! \*****************************************************/ @@ -50059,7 +50061,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 234 */ +/* 236 */ /*!****************************************************!*\ !*** ./node_modules/brace/theme/solarized_dark.js ***! \****************************************************/ @@ -50158,7 +50160,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 235 */ +/* 237 */ /*!*********************************************!*\ !*** ./node_modules/brace/theme/monokai.js ***! \*********************************************/ @@ -50274,7 +50276,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 236 */ +/* 238 */ /*!********************************************!*\ !*** ./node_modules/brace/theme/chrome.js ***! \********************************************/ @@ -50413,7 +50415,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 237 */ +/* 239 */ /*!*******************************************!*\ !*** ./node_modules/brace/theme/chaos.js ***! \*******************************************/ @@ -50580,7 +50582,7 @@ dom.importCssString(exports.cssText, exports.cssClass); /***/ }), -/* 238 */ +/* 240 */ /*!***********************************************!*\ !*** ./node_modules/brace/mode/javascript.js ***! \***********************************************/ @@ -51358,7 +51360,7 @@ oop.inherits(Mode, TextMode); }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(/*! ../worker/javascript */ 176), "JavaScriptWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(/*! ../worker/javascript */ 178), "JavaScriptWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(results) { @@ -51380,7 +51382,7 @@ exports.Mode = Mode; /***/ }), -/* 239 */ +/* 241 */ /*!**********************************************!*\ !*** ./node_modules/js-beautify/js/index.js ***! \**********************************************/ @@ -51453,9 +51455,9 @@ function get_beautify(js_beautify, css_beautify, html_beautify) { if (true) { // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ - __webpack_require__(/*! ./lib/beautify */ 178), - __webpack_require__(/*! ./lib/beautify-css */ 177), - __webpack_require__(/*! ./lib/beautify-html */ 345) + __webpack_require__(/*! ./lib/beautify */ 180), + __webpack_require__(/*! ./lib/beautify-css */ 179), + __webpack_require__(/*! ./lib/beautify-html */ 347) ], __WEBPACK_AMD_DEFINE_RESULT__ = (function(js_beautify, css_beautify, html_beautify) { return get_beautify(js_beautify, css_beautify, html_beautify); }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), @@ -51463,7 +51465,7 @@ if (true) { } else {} /***/ }), -/* 240 */ +/* 242 */ /*!*************************************!*\ !*** ./node_modules/brace/index.js ***! \*************************************/ @@ -55651,7 +55653,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 */ 179).packaged); + options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(/*! !webpack amd define */ 181).packaged); var scriptOptions = {}; var scriptUrl = ""; @@ -71678,7 +71680,7 @@ exports.config = acequire("./config"); exports.acequire = acequire; if (true) - exports.define = __webpack_require__(/*! !webpack amd define */ 179); + exports.define = __webpack_require__(/*! !webpack amd define */ 181); exports.edit = function(el) { if (typeof el == "string") { var _id = el; @@ -71745,7 +71747,7 @@ exports.version = "1.2.9"; module.exports = window.ace.acequire("ace/ace"); /***/ }), -/* 241 */ +/* 243 */ /*!*************************************************!*\ !*** ./node_modules/jsplumb/dist/js/jsplumb.js ***! \*************************************************/ @@ -86442,7 +86444,7 @@ module.exports = window.ace.acequire("ace/ace"); /***/ }), -/* 242 */ +/* 244 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/ru.js ***! \********************************************/ @@ -86486,7 +86488,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 243 */ +/* 245 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/pl.js ***! \********************************************/ @@ -86527,7 +86529,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 244 */ +/* 246 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/no.js ***! \********************************************/ @@ -86568,7 +86570,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 245 */ +/* 247 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/lv.js ***! \********************************************/ @@ -86609,7 +86611,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 246 */ +/* 248 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/it.js ***! \********************************************/ @@ -86650,7 +86652,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 247 */ +/* 249 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/hu.js ***! \********************************************/ @@ -86691,7 +86693,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 248 */ +/* 250 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/fr.js ***! \********************************************/ @@ -86732,7 +86734,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 249 */ +/* 251 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/es.js ***! \********************************************/ @@ -86778,7 +86780,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 250 */ +/* 252 */ /*!***********************************************!*\ !*** ./node_modules/numeral/locales/en-gb.js ***! \***********************************************/ @@ -86823,7 +86825,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 251 */ +/* 253 */ /*!***********************************************!*\ !*** ./node_modules/numeral/locales/en-au.js ***! \***********************************************/ @@ -86868,7 +86870,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 252 */ +/* 254 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/de.js ***! \********************************************/ @@ -86909,7 +86911,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 253 */ +/* 255 */ /*!***********************************************!*\ !*** ./node_modules/numeral/locales/da-dk.js ***! \***********************************************/ @@ -86950,7 +86952,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 254 */ +/* 256 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/cs.js ***! \********************************************/ @@ -86991,7 +86993,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 255 */ +/* 257 */ /*!********************************************!*\ !*** ./node_modules/numeral/locales/bg.js ***! \********************************************/ @@ -87040,7 +87042,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 256 */ +/* 258 */ /*!***************************************************************!*\ !*** ./node_modules/chai-as-promised/lib/chai-as-promised.js ***! \***************************************************************/ @@ -87051,7 +87053,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ "use strict"; /* eslint-disable no-invalid-this */ -let checkError = __webpack_require__(/*! check-error */ 183); +let checkError = __webpack_require__(/*! check-error */ 185); module.exports = (chai, utils) => { const Assertion = chai.Assertion; @@ -87413,7 +87415,7 @@ module.exports.transformAsserterArgs = values => values; /***/ }), -/* 257 */ +/* 259 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/interface/assert.js ***! \********************************************************/ @@ -90522,7 +90524,7 @@ module.exports = function (chai, util) { /***/ }), -/* 258 */ +/* 260 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/interface/should.js ***! \********************************************************/ @@ -90737,7 +90739,7 @@ module.exports = function (chai, util) { /***/ }), -/* 259 */ +/* 261 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/interface/expect.js ***! \********************************************************/ @@ -90782,7 +90784,7 @@ module.exports = function (chai, util) { /***/ }), -/* 260 */ +/* 262 */ /*!*******************************************************!*\ !*** ./node_modules/chai/lib/chai/core/assertions.js ***! \*******************************************************/ @@ -94522,7 +94524,7 @@ module.exports = function (chai, _) { /***/ }), -/* 261 */ +/* 263 */ /*!*************************************************!*\ !*** ./node_modules/chai/lib/chai/assertion.js ***! \*************************************************/ @@ -94698,7 +94700,7 @@ module.exports = function (_chai, util) { /***/ }), -/* 262 */ +/* 264 */ /*!***************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/isNaN.js ***! \***************************************************/ @@ -94735,7 +94737,7 @@ module.exports = Number.isNaN || isNaN; /***/ }), -/* 263 */ +/* 265 */ /*!************************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js ***! \************************************************************************/ @@ -94753,7 +94755,7 @@ module.exports = Number.isNaN || isNaN; * Module dependancies */ -var getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 184); +var getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 186); /** * ### .getOwnEnumerableProperties(object) @@ -94775,7 +94777,7 @@ module.exports = function getOwnEnumerableProperties(obj) { /***/ }), -/* 264 */ +/* 266 */ /*!**************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/compareByInspect.js ***! \**************************************************************/ @@ -94817,7 +94819,7 @@ module.exports = function compareByInspect(a, b) { /***/ }), -/* 265 */ +/* 267 */ /*!**********************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/overwriteChainableMethod.js ***! \**********************************************************************/ @@ -94897,7 +94899,7 @@ module.exports = function overwriteChainableMethod(ctx, name, method, chainingBe /***/ }), -/* 266 */ +/* 268 */ /*!****************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addChainableMethod.js ***! \****************************************************************/ @@ -95060,7 +95062,7 @@ module.exports = function addChainableMethod(ctx, name, method, chainingBehavior /***/ }), -/* 267 */ +/* 269 */ /*!*************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/overwriteMethod.js ***! \*************************************************************/ @@ -95163,7 +95165,7 @@ module.exports = function overwriteMethod(ctx, name, method) { /***/ }), -/* 268 */ +/* 270 */ /*!***************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/overwriteProperty.js ***! \***************************************************************/ @@ -95266,7 +95268,7 @@ module.exports = function overwriteProperty(ctx, name, getter) { /***/ }), -/* 269 */ +/* 271 */ /*!*******************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addMethod.js ***! \*******************************************************/ @@ -95345,7 +95347,7 @@ module.exports = function addMethod(ctx, name, method) { /***/ }), -/* 270 */ +/* 272 */ /*!*********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/addProperty.js ***! \*********************************************************/ @@ -95428,7 +95430,7 @@ module.exports = function addProperty(ctx, name, getter) { /***/ }), -/* 271 */ +/* 273 */ /*!****************************************!*\ !*** ./node_modules/deep-eql/index.js ***! \****************************************/ @@ -95895,7 +95897,7 @@ function isPrimitive(value) { /***/ }), -/* 272 */ +/* 274 */ /*!*********************************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getEnumerableProperties.js ***! \*********************************************************************/ @@ -95932,7 +95934,7 @@ module.exports = function getEnumerableProperties(object) { /***/ }), -/* 273 */ +/* 275 */ /*!********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/getMessage.js ***! \********************************************************/ @@ -95951,9 +95953,9 @@ module.exports = function getEnumerableProperties(object) { */ var flag = __webpack_require__(/*! ./flag */ 88) - , getActual = __webpack_require__(/*! ./getActual */ 188) + , getActual = __webpack_require__(/*! ./getActual */ 190) , inspect = __webpack_require__(/*! ./inspect */ 129) - , objDisplay = __webpack_require__(/*! ./objDisplay */ 185); + , objDisplay = __webpack_require__(/*! ./objDisplay */ 187); /** * ### .getMessage(object, message, negateMessage) @@ -95994,7 +95996,7 @@ module.exports = function getMessage(obj, args) { /***/ }), -/* 274 */ +/* 276 */ /*!*********************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/expectTypes.js ***! \*********************************************************/ @@ -96022,7 +96024,7 @@ module.exports = function getMessage(obj, args) { * @api public */ -var AssertionError = __webpack_require__(/*! assertion-error */ 189); +var AssertionError = __webpack_require__(/*! assertion-error */ 191); var flag = __webpack_require__(/*! ./flag */ 88); var type = __webpack_require__(/*! type-detect */ 139); @@ -96056,7 +96058,7 @@ module.exports = function expectTypes(obj, types) { /***/ }), -/* 275 */ +/* 277 */ /*!**************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/test.js ***! \**************************************************/ @@ -96095,7 +96097,7 @@ module.exports = function test(obj, args) { /***/ }), -/* 276 */ +/* 278 */ /*!***************************************!*\ !*** ./node_modules/pathval/index.js ***! \***************************************/ @@ -96398,7 +96400,7 @@ module.exports = { /***/ }), -/* 277 */ +/* 279 */ /*!***************************************************!*\ !*** ./node_modules/chai/lib/chai/utils/index.js ***! \***************************************************/ @@ -96416,13 +96418,13 @@ module.exports = { * Dependencies that are used for multiple exports are required here only once */ -var pathval = __webpack_require__(/*! pathval */ 276); +var pathval = __webpack_require__(/*! pathval */ 278); /*! * test utility */ -exports.test = __webpack_require__(/*! ./test */ 275); +exports.test = __webpack_require__(/*! ./test */ 277); /*! * type utility @@ -96433,19 +96435,19 @@ exports.type = __webpack_require__(/*! type-detect */ 139); /*! * expectTypes utility */ -exports.expectTypes = __webpack_require__(/*! ./expectTypes */ 274); +exports.expectTypes = __webpack_require__(/*! ./expectTypes */ 276); /*! * message utility */ -exports.getMessage = __webpack_require__(/*! ./getMessage */ 273); +exports.getMessage = __webpack_require__(/*! ./getMessage */ 275); /*! * actual utility */ -exports.getActual = __webpack_require__(/*! ./getActual */ 188); +exports.getActual = __webpack_require__(/*! ./getActual */ 190); /*! * Inspect util @@ -96457,7 +96459,7 @@ exports.inspect = __webpack_require__(/*! ./inspect */ 129); * Object Display util */ -exports.objDisplay = __webpack_require__(/*! ./objDisplay */ 185); +exports.objDisplay = __webpack_require__(/*! ./objDisplay */ 187); /*! * Flag utility @@ -96475,7 +96477,7 @@ exports.transferFlags = __webpack_require__(/*! ./transferFlags */ 98); * Deep equal utility */ -exports.eql = __webpack_require__(/*! deep-eql */ 271); +exports.eql = __webpack_require__(/*! deep-eql */ 273); /*! * Deep path info @@ -96493,67 +96495,67 @@ exports.hasProperty = pathval.hasProperty; * Function name */ -exports.getName = __webpack_require__(/*! get-func-name */ 187); +exports.getName = __webpack_require__(/*! get-func-name */ 189); /*! * add Property */ -exports.addProperty = __webpack_require__(/*! ./addProperty */ 270); +exports.addProperty = __webpack_require__(/*! ./addProperty */ 272); /*! * add Method */ -exports.addMethod = __webpack_require__(/*! ./addMethod */ 269); +exports.addMethod = __webpack_require__(/*! ./addMethod */ 271); /*! * overwrite Property */ -exports.overwriteProperty = __webpack_require__(/*! ./overwriteProperty */ 268); +exports.overwriteProperty = __webpack_require__(/*! ./overwriteProperty */ 270); /*! * overwrite Method */ -exports.overwriteMethod = __webpack_require__(/*! ./overwriteMethod */ 267); +exports.overwriteMethod = __webpack_require__(/*! ./overwriteMethod */ 269); /*! * Add a chainable method */ -exports.addChainableMethod = __webpack_require__(/*! ./addChainableMethod */ 266); +exports.addChainableMethod = __webpack_require__(/*! ./addChainableMethod */ 268); /*! * Overwrite chainable method */ -exports.overwriteChainableMethod = __webpack_require__(/*! ./overwriteChainableMethod */ 265); +exports.overwriteChainableMethod = __webpack_require__(/*! ./overwriteChainableMethod */ 267); /*! * Compare by inspect method */ -exports.compareByInspect = __webpack_require__(/*! ./compareByInspect */ 264); +exports.compareByInspect = __webpack_require__(/*! ./compareByInspect */ 266); /*! * Get own enumerable property symbols method */ -exports.getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 184); +exports.getOwnEnumerablePropertySymbols = __webpack_require__(/*! ./getOwnEnumerablePropertySymbols */ 186); /*! * Get own enumerable properties method */ -exports.getOwnEnumerableProperties = __webpack_require__(/*! ./getOwnEnumerableProperties */ 263); +exports.getOwnEnumerableProperties = __webpack_require__(/*! ./getOwnEnumerableProperties */ 265); /*! * Checks error against a given set of criteria */ -exports.checkError = __webpack_require__(/*! check-error */ 183); +exports.checkError = __webpack_require__(/*! check-error */ 185); /*! * Proxify util @@ -96577,11 +96579,11 @@ exports.isProxyEnabled = __webpack_require__(/*! ./isProxyEnabled */ 128); * isNaN method */ -exports.isNaN = __webpack_require__(/*! ./isNaN */ 262); +exports.isNaN = __webpack_require__(/*! ./isNaN */ 264); /***/ }), -/* 278 */ +/* 280 */ /*!************************************!*\ !*** ./node_modules/chai/index.js ***! \************************************/ @@ -96593,10 +96595,10 @@ module.exports = __webpack_require__(/*! ./lib/chai */ 100); /***/ }), -/* 279 */, -/* 280 */, /* 281 */, -/* 282 */ +/* 282 */, +/* 283 */, +/* 284 */ /*!*********************************************!*\ !*** ./node_modules/escodegen/package.json ***! \*********************************************/ @@ -96607,7 +96609,7 @@ module.exports = __webpack_require__(/*! ./lib/chai */ 100); module.exports = {"_args":[["escodegen@1.11.0","C:\\Users\\danie\\Desktop\\bitburner"]],"_from":"escodegen@1.11.0","_id":"escodegen@1.11.0","_inBundle":false,"_integrity":"sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==","_location":"/escodegen","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"escodegen@1.11.0","name":"escodegen","escapedName":"escodegen","rawSpec":"1.11.0","saveSpec":null,"fetchSpec":"1.11.0"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz","_spec":"1.11.0","_where":"C:\\Users\\danie\\Desktop\\bitburner","bin":{"esgenerate":"./bin/esgenerate.js","escodegen":"./bin/escodegen.js"},"bugs":{"url":"https://github.com/estools/escodegen/issues"},"dependencies":{"esprima":"^3.1.3","estraverse":"^4.2.0","esutils":"^2.0.2","optionator":"^0.8.1","source-map":"~0.6.1"},"description":"ECMAScript code generator","devDependencies":{"acorn":"^4.0.4","bluebird":"^3.4.7","bower-registry-client":"^1.0.0","chai":"^3.5.0","commonjs-everywhere":"^0.9.7","gulp":"^3.8.10","gulp-eslint":"^3.0.1","gulp-mocha":"^3.0.1","semver":"^5.1.0"},"engines":{"node":">=4.0"},"files":["LICENSE.BSD","README.md","bin","escodegen.js","package.json"],"homepage":"http://github.com/estools/escodegen","license":"BSD-2-Clause","main":"escodegen.js","maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","url":"http://github.com/Constellation"}],"name":"escodegen","optionalDependencies":{"source-map":"~0.6.1"},"repository":{"type":"git","url":"git+ssh://git@github.com/estools/escodegen.git"},"scripts":{"build":"cjsify -a path: tools/entry-point.js > escodegen.browser.js","build-min":"cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js","lint":"gulp lint","release":"node tools/release.js","test":"gulp travis","unit-test":"gulp test"},"version":"1.11.0"}; /***/ }), -/* 283 */ +/* 285 */ /*!***************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/source-node.js ***! \***************************************************************************/ @@ -96622,7 +96624,7 @@ module.exports = {"_args":[["escodegen@1.11.0","C:\\Users\\danie\\Desktop\\bitbu * http://opensource.org/licenses/BSD-3-Clause */ -var SourceMapGenerator = __webpack_require__(/*! ./source-map-generator */ 193).SourceMapGenerator; +var SourceMapGenerator = __webpack_require__(/*! ./source-map-generator */ 195).SourceMapGenerator; var util = __webpack_require__(/*! ./util */ 110); // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other @@ -97031,7 +97033,7 @@ exports.SourceNode = SourceNode; /***/ }), -/* 284 */ +/* 286 */ /*!**************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/quick-sort.js ***! \**************************************************************************/ @@ -97156,7 +97158,7 @@ exports.quickSort = function (ary, comparator) { /***/ }), -/* 285 */ +/* 287 */ /*!*****************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/binary-search.js ***! \*****************************************************************************/ @@ -97278,7 +97280,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { /***/ }), -/* 286 */ +/* 288 */ /*!***********************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/source-map-consumer.js ***! \***********************************************************************************/ @@ -97294,10 +97296,10 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { */ var util = __webpack_require__(/*! ./util */ 110); -var binarySearch = __webpack_require__(/*! ./binary-search */ 285); -var ArraySet = __webpack_require__(/*! ./array-set */ 191).ArraySet; -var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 192); -var quickSort = __webpack_require__(/*! ./quick-sort */ 284).quickSort; +var binarySearch = __webpack_require__(/*! ./binary-search */ 287); +var ArraySet = __webpack_require__(/*! ./array-set */ 193).ArraySet; +var base64VLQ = __webpack_require__(/*! ./base64-vlq */ 194); +var quickSort = __webpack_require__(/*! ./quick-sort */ 286).quickSort; function SourceMapConsumer(aSourceMap, aSourceMapURL) { var sourceMap = aSourceMap; @@ -98434,7 +98436,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; /***/ }), -/* 287 */ +/* 289 */ /*!****************************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/mapping-list.js ***! \****************************************************************************/ @@ -98524,7 +98526,7 @@ exports.MappingList = MappingList; /***/ }), -/* 288 */ +/* 290 */ /*!**********************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/lib/base64.js ***! \**********************************************************************/ @@ -98602,7 +98604,7 @@ exports.decode = function (charCode) { /***/ }), -/* 289 */ +/* 291 */ /*!**********************************************************************!*\ !*** ./node_modules/escodegen/node_modules/source-map/source-map.js ***! \**********************************************************************/ @@ -98615,13 +98617,13 @@ exports.decode = function (charCode) { * Licensed under the New BSD license. See LICENSE.txt or: * http://opensource.org/licenses/BSD-3-Clause */ -exports.SourceMapGenerator = __webpack_require__(/*! ./lib/source-map-generator */ 193).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(/*! ./lib/source-map-consumer */ 286).SourceMapConsumer; -exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 283).SourceNode; +exports.SourceMapGenerator = __webpack_require__(/*! ./lib/source-map-generator */ 195).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(/*! ./lib/source-map-consumer */ 288).SourceMapConsumer; +exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 285).SourceNode; /***/ }), -/* 290 */ +/* 292 */ /*!*********************************************!*\ !*** ./node_modules/esutils/lib/keyword.js ***! \*********************************************/ @@ -98656,7 +98658,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 283).SourceNod (function () { 'use strict'; - var code = __webpack_require__(/*! ./code */ 194); + var code = __webpack_require__(/*! ./code */ 196); function isStrictModeReservedWordES6(id) { switch (id) { @@ -98797,7 +98799,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 283).SourceNod /***/ }), -/* 291 */ +/* 293 */ /*!*****************************************!*\ !*** ./node_modules/esutils/lib/ast.js ***! \*****************************************/ @@ -98952,7 +98954,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 283).SourceNod /***/ }), -/* 292 */ +/* 294 */ /*!*******************************************!*\ !*** ./node_modules/esutils/lib/utils.js ***! \*******************************************/ @@ -98988,15 +98990,15 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 283).SourceNod (function () { 'use strict'; - exports.ast = __webpack_require__(/*! ./ast */ 291); - exports.code = __webpack_require__(/*! ./code */ 194); - exports.keyword = __webpack_require__(/*! ./keyword */ 290); + exports.ast = __webpack_require__(/*! ./ast */ 293); + exports.code = __webpack_require__(/*! ./code */ 196); + exports.keyword = __webpack_require__(/*! ./keyword */ 292); }()); /* vim: set sw=4 ts=4 et tw=80 : */ /***/ }), -/* 293 */ +/* 295 */ /*!**********************************************!*\ !*** ./node_modules/estraverse/package.json ***! \**********************************************/ @@ -99007,7 +99009,7 @@ exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ 283).SourceNod module.exports = {"_args":[["estraverse@4.2.0","C:\\Users\\danie\\Desktop\\bitburner"]],"_from":"estraverse@4.2.0","_id":"estraverse@4.2.0","_inBundle":false,"_integrity":"sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=","_location":"/estraverse","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"estraverse@4.2.0","name":"estraverse","escapedName":"estraverse","rawSpec":"4.2.0","saveSpec":null,"fetchSpec":"4.2.0"},"_requiredBy":["/escodegen","/escope","/eslint-scope","/esquery","/esrecurse"],"_resolved":"https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz","_spec":"4.2.0","_where":"C:\\Users\\danie\\Desktop\\bitburner","bugs":{"url":"https://github.com/estools/estraverse/issues"},"description":"ECMAScript JS AST traversal functions","devDependencies":{"babel-preset-es2015":"^6.3.13","babel-register":"^6.3.13","chai":"^2.1.1","espree":"^1.11.0","gulp":"^3.8.10","gulp-bump":"^0.2.2","gulp-filter":"^2.0.0","gulp-git":"^1.0.1","gulp-tag-version":"^1.2.1","jshint":"^2.5.6","mocha":"^2.1.0"},"engines":{"node":">=0.10.0"},"homepage":"https://github.com/estools/estraverse","license":"BSD-2-Clause","main":"estraverse.js","maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","url":"http://github.com/Constellation"}],"name":"estraverse","repository":{"type":"git","url":"git+ssh://git@github.com/estools/estraverse.git"},"scripts":{"lint":"jshint estraverse.js","test":"npm run-script lint && npm run-script unit-test","unit-test":"mocha --compilers js:babel-register"},"version":"4.2.0"}; /***/ }), -/* 294 */ +/* 296 */ /*!***********************************************!*\ !*** ./node_modules/estraverse/estraverse.js ***! \***********************************************/ @@ -99851,7 +99853,7 @@ module.exports = {"_args":[["estraverse@4.2.0","C:\\Users\\danie\\Desktop\\bitbu return tree; } - exports.version = __webpack_require__(/*! ./package.json */ 293).version; + exports.version = __webpack_require__(/*! ./package.json */ 295).version; exports.Syntax = Syntax; exports.traverse = traverse; exports.replace = replace; @@ -99867,7 +99869,7 @@ module.exports = {"_args":[["estraverse@4.2.0","C:\\Users\\danie\\Desktop\\bitbu /***/ }), -/* 295 */ +/* 297 */ /*!****************************************!*\ !*** (webpack)/buildin/amd-options.js ***! \****************************************/ @@ -99881,7 +99883,7 @@ module.exports = __webpack_amd_options__; /* WEBPACK VAR INJECTION */}.call(this, {})) /***/ }), -/* 296 */ +/* 298 */ /*!********************************************!*\ !*** ./node_modules/jszip/lib/zipEntry.js ***! \********************************************/ @@ -99891,12 +99893,12 @@ module.exports = __webpack_amd_options__; "use strict"; -var readerFor = __webpack_require__(/*! ./reader/readerFor */ 198); +var readerFor = __webpack_require__(/*! ./reader/readerFor */ 200); var utils = __webpack_require__(/*! ./utils */ 63); -var CompressedObject = __webpack_require__(/*! ./compressedObject */ 168); -var crc32fn = __webpack_require__(/*! ./crc32 */ 167); +var CompressedObject = __webpack_require__(/*! ./compressedObject */ 170); +var crc32fn = __webpack_require__(/*! ./crc32 */ 169); var utf8 = __webpack_require__(/*! ./utf8 */ 109); -var compressions = __webpack_require__(/*! ./compressions */ 205); +var compressions = __webpack_require__(/*! ./compressions */ 207); var support = __webpack_require__(/*! ./support */ 96); var MADE_BY_DOS = 0x00; @@ -100185,7 +100187,7 @@ module.exports = ZipEntry; /***/ }), -/* 297 */ +/* 299 */ /*!***********************************************************!*\ !*** ./node_modules/jszip/lib/reader/NodeBufferReader.js ***! \***********************************************************/ @@ -100195,7 +100197,7 @@ module.exports = ZipEntry; "use strict"; -var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 195); +var Uint8ArrayReader = __webpack_require__(/*! ./Uint8ArrayReader */ 197); var utils = __webpack_require__(/*! ../utils */ 63); function NodeBufferReader(data) { @@ -100216,7 +100218,7 @@ module.exports = NodeBufferReader; /***/ }), -/* 298 */ +/* 300 */ /*!*******************************************************!*\ !*** ./node_modules/jszip/lib/reader/StringReader.js ***! \*******************************************************/ @@ -100226,7 +100228,7 @@ module.exports = NodeBufferReader; "use strict"; -var DataReader = __webpack_require__(/*! ./DataReader */ 196); +var DataReader = __webpack_require__(/*! ./DataReader */ 198); var utils = __webpack_require__(/*! ../utils */ 63); function StringReader(data) { @@ -100266,7 +100268,7 @@ module.exports = StringReader; /***/ }), -/* 299 */ +/* 301 */ /*!**********************************************!*\ !*** ./node_modules/jszip/lib/zipEntries.js ***! \**********************************************/ @@ -100276,10 +100278,10 @@ module.exports = StringReader; "use strict"; -var readerFor = __webpack_require__(/*! ./reader/readerFor */ 198); +var readerFor = __webpack_require__(/*! ./reader/readerFor */ 200); var utils = __webpack_require__(/*! ./utils */ 63); -var sig = __webpack_require__(/*! ./signature */ 199); -var ZipEntry = __webpack_require__(/*! ./zipEntry */ 296); +var sig = __webpack_require__(/*! ./signature */ 201); +var ZipEntry = __webpack_require__(/*! ./zipEntry */ 298); var utf8 = __webpack_require__(/*! ./utf8 */ 109); var support = __webpack_require__(/*! ./support */ 96); // class ZipEntries {{{ @@ -100540,7 +100542,7 @@ module.exports = ZipEntries; /***/ }), -/* 300 */ +/* 302 */ /*!****************************************!*\ !*** ./node_modules/jszip/lib/load.js ***! \****************************************/ @@ -100554,8 +100556,8 @@ var utils = __webpack_require__(/*! ./utils */ 63); var external = __webpack_require__(/*! ./external */ 111); var utf8 = __webpack_require__(/*! ./utf8 */ 109); var utils = __webpack_require__(/*! ./utils */ 63); -var ZipEntries = __webpack_require__(/*! ./zipEntries */ 299); -var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 206); +var ZipEntries = __webpack_require__(/*! ./zipEntries */ 301); +var Crc32Probe = __webpack_require__(/*! ./stream/Crc32Probe */ 208); var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 131); /** @@ -100634,7 +100636,7 @@ module.exports = function(data, options) { /***/ }), -/* 301 */ +/* 303 */ /*!*******************************************************************!*\ !*** ./node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js ***! \*******************************************************************/ @@ -100720,7 +100722,7 @@ module.exports = NodejsStreamInputAdapter; /***/ }), -/* 302 */ +/* 304 */ /*!**********************************************************!*\ !*** ./node_modules/jszip/lib/generate/ZipFileWorker.js ***! \**********************************************************/ @@ -100734,8 +100736,8 @@ module.exports = NodejsStreamInputAdapter; var utils = __webpack_require__(/*! ../utils */ 63); var GenericWorker = __webpack_require__(/*! ../stream/GenericWorker */ 83); var utf8 = __webpack_require__(/*! ../utf8 */ 109); -var crc32 = __webpack_require__(/*! ../crc32 */ 167); -var signature = __webpack_require__(/*! ../signature */ 199); +var crc32 = __webpack_require__(/*! ../crc32 */ 169); +var signature = __webpack_require__(/*! ../signature */ 201); /** * Transform an integer into a string in hexadecimal. @@ -101272,7 +101274,7 @@ module.exports = ZipFileWorker; /***/ }), -/* 303 */ +/* 305 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/zlib/gzheader.js ***! \************************************************/ @@ -101342,7 +101344,7 @@ module.exports = GZheader; /***/ }), -/* 304 */ +/* 306 */ /*!************************************************!*\ !*** ./node_modules/pako/lib/zlib/inftrees.js ***! \************************************************/ @@ -101697,7 +101699,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta /***/ }), -/* 305 */ +/* 307 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/inffast.js ***! \***********************************************/ @@ -102054,7 +102056,7 @@ module.exports = function inflate_fast(strm, start) { /***/ }), -/* 306 */ +/* 308 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/inflate.js ***! \***********************************************/ @@ -102085,10 +102087,10 @@ module.exports = function inflate_fast(strm, start) { // 3. This notice may not be removed or altered from any source distribution. var utils = __webpack_require__(/*! ../utils/common */ 95); -var adler32 = __webpack_require__(/*! ./adler32 */ 204); -var crc32 = __webpack_require__(/*! ./crc32 */ 203); -var inflate_fast = __webpack_require__(/*! ./inffast */ 305); -var inflate_table = __webpack_require__(/*! ./inftrees */ 304); +var adler32 = __webpack_require__(/*! ./adler32 */ 206); +var crc32 = __webpack_require__(/*! ./crc32 */ 205); +var inflate_fast = __webpack_require__(/*! ./inffast */ 307); +var inflate_table = __webpack_require__(/*! ./inftrees */ 306); var CODES = 0; var LENS = 1; @@ -103622,7 +103624,7 @@ exports.inflateUndermine = inflateUndermine; /***/ }), -/* 307 */ +/* 309 */ /*!******************************************!*\ !*** ./node_modules/pako/lib/inflate.js ***! \******************************************/ @@ -103634,13 +103636,13 @@ exports.inflateUndermine = inflateUndermine; -var zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ 306); +var zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ 308); var utils = __webpack_require__(/*! ./utils/common */ 95); -var strings = __webpack_require__(/*! ./utils/strings */ 202); -var c = __webpack_require__(/*! ./zlib/constants */ 200); -var msg = __webpack_require__(/*! ./zlib/messages */ 166); -var ZStream = __webpack_require__(/*! ./zlib/zstream */ 201); -var GZheader = __webpack_require__(/*! ./zlib/gzheader */ 303); +var strings = __webpack_require__(/*! ./utils/strings */ 204); +var c = __webpack_require__(/*! ./zlib/constants */ 202); +var msg = __webpack_require__(/*! ./zlib/messages */ 168); +var ZStream = __webpack_require__(/*! ./zlib/zstream */ 203); +var GZheader = __webpack_require__(/*! ./zlib/gzheader */ 305); var toString = Object.prototype.toString; @@ -104052,7 +104054,7 @@ exports.ungzip = inflate; /***/ }), -/* 308 */ +/* 310 */ /*!*********************************************!*\ !*** ./node_modules/pako/lib/zlib/trees.js ***! \*********************************************/ @@ -105284,7 +105286,7 @@ exports._tr_align = _tr_align; /***/ }), -/* 309 */ +/* 311 */ /*!***********************************************!*\ !*** ./node_modules/pako/lib/zlib/deflate.js ***! \***********************************************/ @@ -105315,10 +105317,10 @@ exports._tr_align = _tr_align; // 3. This notice may not be removed or altered from any source distribution. var utils = __webpack_require__(/*! ../utils/common */ 95); -var trees = __webpack_require__(/*! ./trees */ 308); -var adler32 = __webpack_require__(/*! ./adler32 */ 204); -var crc32 = __webpack_require__(/*! ./crc32 */ 203); -var msg = __webpack_require__(/*! ./messages */ 166); +var trees = __webpack_require__(/*! ./trees */ 310); +var adler32 = __webpack_require__(/*! ./adler32 */ 206); +var crc32 = __webpack_require__(/*! ./crc32 */ 205); +var msg = __webpack_require__(/*! ./messages */ 168); /* Public constants ==========================================================*/ /* ===========================================================================*/ @@ -107170,7 +107172,7 @@ exports.deflateTune = deflateTune; /***/ }), -/* 310 */ +/* 312 */ /*!******************************************!*\ !*** ./node_modules/pako/lib/deflate.js ***! \******************************************/ @@ -107182,11 +107184,11 @@ exports.deflateTune = deflateTune; -var zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ 309); +var zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ 311); var utils = __webpack_require__(/*! ./utils/common */ 95); -var strings = __webpack_require__(/*! ./utils/strings */ 202); -var msg = __webpack_require__(/*! ./zlib/messages */ 166); -var ZStream = __webpack_require__(/*! ./zlib/zstream */ 201); +var strings = __webpack_require__(/*! ./utils/strings */ 204); +var msg = __webpack_require__(/*! ./zlib/messages */ 168); +var ZStream = __webpack_require__(/*! ./zlib/zstream */ 203); var toString = Object.prototype.toString; @@ -107582,7 +107584,7 @@ exports.gzip = gzip; /***/ }), -/* 311 */ +/* 313 */ /*!************************************!*\ !*** ./node_modules/pako/index.js ***! \************************************/ @@ -107596,9 +107598,9 @@ exports.gzip = gzip; var assign = __webpack_require__(/*! ./lib/utils/common */ 95).assign; -var deflate = __webpack_require__(/*! ./lib/deflate */ 310); -var inflate = __webpack_require__(/*! ./lib/inflate */ 307); -var constants = __webpack_require__(/*! ./lib/zlib/constants */ 200); +var deflate = __webpack_require__(/*! ./lib/deflate */ 312); +var inflate = __webpack_require__(/*! ./lib/inflate */ 309); +var constants = __webpack_require__(/*! ./lib/zlib/constants */ 202); var pako = {}; @@ -107608,7 +107610,7 @@ module.exports = pako; /***/ }), -/* 312 */ +/* 314 */ /*!*****************************************!*\ !*** ./node_modules/jszip/lib/flate.js ***! \*****************************************/ @@ -107620,7 +107622,7 @@ module.exports = pako; var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); -var pako = __webpack_require__(/*! pako */ 311); +var pako = __webpack_require__(/*! pako */ 313); var utils = __webpack_require__(/*! ./utils */ 63); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 83); @@ -107705,7 +107707,7 @@ exports.uncompressWorker = function () { /***/ }), -/* 313 */ +/* 315 */ /*!**************************************************!*\ !*** ./node_modules/jszip/lib/generate/index.js ***! \**************************************************/ @@ -107716,8 +107718,8 @@ exports.uncompressWorker = function () { "use strict"; -var compressions = __webpack_require__(/*! ../compressions */ 205); -var ZipFileWorker = __webpack_require__(/*! ./ZipFileWorker */ 302); +var compressions = __webpack_require__(/*! ../compressions */ 207); +var ZipFileWorker = __webpack_require__(/*! ./ZipFileWorker */ 304); /** * Find the compression to use. @@ -107774,7 +107776,7 @@ exports.generateWorker = function (zip, options, comment) { /***/ }), -/* 314 */ +/* 316 */ /*!*********************************************!*\ !*** ./node_modules/jszip/lib/zipObject.js ***! \*********************************************/ @@ -107785,10 +107787,10 @@ exports.generateWorker = function (zip, options, comment) { "use strict"; -var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 210); -var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 208); +var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 212); +var DataWorker = __webpack_require__(/*! ./stream/DataWorker */ 210); var utf8 = __webpack_require__(/*! ./utf8 */ 109); -var CompressedObject = __webpack_require__(/*! ./compressedObject */ 168); +var CompressedObject = __webpack_require__(/*! ./compressedObject */ 170); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 83); /** @@ -107919,7 +107921,7 @@ module.exports = ZipObject; /***/ }), -/* 315 */ +/* 317 */ /*!********************************************************************!*\ !*** ./node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js ***! \********************************************************************/ @@ -107930,7 +107932,7 @@ module.exports = ZipObject; "use strict"; -var Readable = __webpack_require__(/*! readable-stream */ 223).Readable; +var Readable = __webpack_require__(/*! readable-stream */ 225).Readable; var utils = __webpack_require__(/*! ../utils */ 63); utils.inherits(NodejsStreamOutputAdapter, Readable); @@ -107973,7 +107975,7 @@ module.exports = NodejsStreamOutputAdapter; /***/ }), -/* 316 */ +/* 318 */ /*!********************************************************!*\ !*** ./node_modules/jszip/lib/stream/ConvertWorker.js ***! \********************************************************/ @@ -108011,7 +108013,7 @@ module.exports = ConvertWorker; /***/ }), -/* 317 */ +/* 319 */ /*!***********************************************!*\ !*** ./node_modules/immediate/lib/browser.js ***! \***********************************************/ @@ -108093,7 +108095,7 @@ function immediate(task) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 89))) /***/ }), -/* 318 */ +/* 320 */ /*!*****************************************!*\ !*** ./node_modules/lie/lib/browser.js ***! \*****************************************/ @@ -108103,7 +108105,7 @@ function immediate(task) { "use strict"; -var immediate = __webpack_require__(/*! immediate */ 317); +var immediate = __webpack_require__(/*! immediate */ 319); /* istanbul ignore next */ function INTERNAL() {} @@ -108358,7 +108360,7 @@ function race(iterable) { /***/ }), -/* 319 */ +/* 321 */ /*!*************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_cof.js ***! \*************************************************************************/ @@ -108373,7 +108375,7 @@ module.exports = function(it){ }; /***/ }), -/* 320 */ +/* 322 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_html.js ***! \**************************************************************************/ @@ -108384,7 +108386,7 @@ module.exports = function(it){ module.exports = __webpack_require__(/*! ./_global */ 130).document && document.documentElement; /***/ }), -/* 321 */ +/* 323 */ /*!****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_invoke.js ***! \****************************************************************************/ @@ -108410,7 +108412,7 @@ module.exports = function(fn, args, that){ }; /***/ }), -/* 322 */ +/* 324 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_task.js ***! \**************************************************************************/ @@ -108418,10 +108420,10 @@ module.exports = function(fn, args, that){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var ctx = __webpack_require__(/*! ./_ctx */ 213) - , invoke = __webpack_require__(/*! ./_invoke */ 321) - , html = __webpack_require__(/*! ./_html */ 320) - , cel = __webpack_require__(/*! ./_dom-create */ 211) +var ctx = __webpack_require__(/*! ./_ctx */ 215) + , invoke = __webpack_require__(/*! ./_invoke */ 323) + , html = __webpack_require__(/*! ./_html */ 322) + , cel = __webpack_require__(/*! ./_dom-create */ 213) , global = __webpack_require__(/*! ./_global */ 130) , process = global.process , setTask = global.setImmediate @@ -108457,7 +108459,7 @@ if(!setTask || !clearTask){ delete queue[id]; }; // Node.js 0.8- - if(__webpack_require__(/*! ./_cof */ 319)(process) == 'process'){ + if(__webpack_require__(/*! ./_cof */ 321)(process) == 'process'){ defer = function(id){ process.nextTick(ctx(run, id, 1)); }; @@ -108495,7 +108497,7 @@ module.exports = { }; /***/ }), -/* 323 */ +/* 325 */ /*!***********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_property-desc.js ***! \***********************************************************************************/ @@ -108513,7 +108515,7 @@ module.exports = function(bitmap, value){ }; /***/ }), -/* 324 */ +/* 326 */ /*!**********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_to-primitive.js ***! \**********************************************************************************/ @@ -108522,7 +108524,7 @@ module.exports = function(bitmap, value){ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(/*! ./_is-object */ 170); +var isObject = __webpack_require__(/*! ./_is-object */ 172); // 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){ @@ -108535,7 +108537,7 @@ module.exports = function(it, S){ }; /***/ }), -/* 325 */ +/* 327 */ /*!************************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_ie8-dom-define.js ***! \************************************************************************************/ @@ -108543,12 +108545,12 @@ module.exports = function(it, S){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = !__webpack_require__(/*! ./_descriptors */ 169) && !__webpack_require__(/*! ./_fails */ 212)(function(){ - return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ 211)('div'), 'a', {get: function(){ return 7; }}).a != 7; +module.exports = !__webpack_require__(/*! ./_descriptors */ 171) && !__webpack_require__(/*! ./_fails */ 214)(function(){ + return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ 213)('div'), 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }), -/* 326 */ +/* 328 */ /*!*******************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_an-object.js ***! \*******************************************************************************/ @@ -108556,14 +108558,14 @@ module.exports = !__webpack_require__(/*! ./_descriptors */ 169) && !__webpack_r /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ./_is-object */ 170); +var isObject = __webpack_require__(/*! ./_is-object */ 172); module.exports = function(it){ if(!isObject(it))throw TypeError(it + ' is not an object!'); return it; }; /***/ }), -/* 327 */ +/* 329 */ /*!*******************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_object-dp.js ***! \*******************************************************************************/ @@ -108571,12 +108573,12 @@ module.exports = function(it){ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var anObject = __webpack_require__(/*! ./_an-object */ 326) - , IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ 325) - , toPrimitive = __webpack_require__(/*! ./_to-primitive */ 324) +var anObject = __webpack_require__(/*! ./_an-object */ 328) + , IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ 327) + , toPrimitive = __webpack_require__(/*! ./_to-primitive */ 326) , dP = Object.defineProperty; -exports.f = __webpack_require__(/*! ./_descriptors */ 169) ? Object.defineProperty : function defineProperty(O, P, Attributes){ +exports.f = __webpack_require__(/*! ./_descriptors */ 171) ? Object.defineProperty : function defineProperty(O, P, Attributes){ anObject(O); P = toPrimitive(P, true); anObject(Attributes); @@ -108589,7 +108591,7 @@ exports.f = __webpack_require__(/*! ./_descriptors */ 169) ? Object.defineProper }; /***/ }), -/* 328 */ +/* 330 */ /*!**************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_hide.js ***! \**************************************************************************/ @@ -108597,9 +108599,9 @@ exports.f = __webpack_require__(/*! ./_descriptors */ 169) ? Object.defineProper /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var dP = __webpack_require__(/*! ./_object-dp */ 327) - , createDesc = __webpack_require__(/*! ./_property-desc */ 323); -module.exports = __webpack_require__(/*! ./_descriptors */ 169) ? function(object, key, value){ +var dP = __webpack_require__(/*! ./_object-dp */ 329) + , createDesc = __webpack_require__(/*! ./_property-desc */ 325); +module.exports = __webpack_require__(/*! ./_descriptors */ 171) ? function(object, key, value){ return dP.f(object, key, createDesc(1, value)); } : function(object, key, value){ object[key] = value; @@ -108607,7 +108609,7 @@ module.exports = __webpack_require__(/*! ./_descriptors */ 169) ? function(objec }; /***/ }), -/* 329 */ +/* 331 */ /*!********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_a-function.js ***! \********************************************************************************/ @@ -108621,7 +108623,7 @@ module.exports = function(it){ }; /***/ }), -/* 330 */ +/* 332 */ /*!****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/_export.js ***! \****************************************************************************/ @@ -108630,9 +108632,9 @@ module.exports = function(it){ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(/*! ./_global */ 130) - , core = __webpack_require__(/*! ./_core */ 214) - , ctx = __webpack_require__(/*! ./_ctx */ 213) - , hide = __webpack_require__(/*! ./_hide */ 328) + , core = __webpack_require__(/*! ./_core */ 216) + , ctx = __webpack_require__(/*! ./_ctx */ 215) + , hide = __webpack_require__(/*! ./_hide */ 330) , PROTOTYPE = 'prototype'; var $export = function(type, name, source){ @@ -108692,7 +108694,7 @@ $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), -/* 331 */ +/* 333 */ /*!**********************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/modules/web.immediate.js ***! \**********************************************************************************/ @@ -108700,15 +108702,15 @@ module.exports = $export; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var $export = __webpack_require__(/*! ./_export */ 330) - , $task = __webpack_require__(/*! ./_task */ 322); +var $export = __webpack_require__(/*! ./_export */ 332) + , $task = __webpack_require__(/*! ./_task */ 324); $export($export.G + $export.B, { setImmediate: $task.set, clearImmediate: $task.clear }); /***/ }), -/* 332 */ +/* 334 */ /*!*****************************************************************************!*\ !*** ./node_modules/jszip/node_modules/core-js/library/fn/set-immediate.js ***! \*****************************************************************************/ @@ -108716,11 +108718,11 @@ $export($export.G + $export.B, { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(/*! ../modules/web.immediate */ 331); -module.exports = __webpack_require__(/*! ../modules/_core */ 214).setImmediate; +__webpack_require__(/*! ../modules/web.immediate */ 333); +module.exports = __webpack_require__(/*! ../modules/_core */ 216).setImmediate; /***/ }), -/* 333 */ +/* 335 */ /*!*****************************************************!*\ !*** ./node_modules/readable-stream/passthrough.js ***! \*****************************************************/ @@ -108728,11 +108730,11 @@ module.exports = __webpack_require__(/*! ../modules/_core */ 214).setImmediate; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./readable */ 172).PassThrough +module.exports = __webpack_require__(/*! ./readable */ 174).PassThrough /***/ }), -/* 334 */ +/* 336 */ /*!***************************************************!*\ !*** ./node_modules/readable-stream/transform.js ***! \***************************************************/ @@ -108740,11 +108742,11 @@ module.exports = __webpack_require__(/*! ./readable */ 172).PassThrough /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./readable */ 172).Transform +module.exports = __webpack_require__(/*! ./readable */ 174).Transform /***/ }), -/* 335 */ +/* 337 */ /*!********************************************************!*\ !*** ./node_modules/readable-stream/duplex-browser.js ***! \********************************************************/ @@ -108756,7 +108758,7 @@ module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 101); /***/ }), -/* 336 */ +/* 338 */ /*!**********************************************************!*\ !*** ./node_modules/readable-stream/writable-browser.js ***! \**********************************************************/ @@ -108764,11 +108766,11 @@ module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ 101); /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 171); +module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 173); /***/ }), -/* 337 */ +/* 339 */ /*!*****************************************************************!*\ !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! \*****************************************************************/ @@ -108806,7 +108808,7 @@ module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ 171); module.exports = PassThrough; -var Transform = __webpack_require__(/*! ./_stream_transform */ 216); +var Transform = __webpack_require__(/*! ./_stream_transform */ 218); /**/ var util = __webpack_require__(/*! core-util-is */ 112); @@ -108826,7 +108828,7 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) { }; /***/ }), -/* 338 */ +/* 340 */ /*!************************************************!*\ !*** ./node_modules/util-deprecate/browser.js ***! \************************************************/ @@ -108905,7 +108907,7 @@ function config (name) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 89))) /***/ }), -/* 339 */ +/* 341 */ /*!*************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***! \*************************************************************************/ @@ -108919,7 +108921,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 */ 132).Buffer; -var util = __webpack_require__(/*! util */ 219); +var util = __webpack_require__(/*! util */ 221); function copyBuffer(src, target, offset) { src.copy(target, offset); @@ -108995,7 +108997,7 @@ if (util && util.inspect && util.inspect.custom) { } /***/ }), -/* 340 */ +/* 342 */ /*!*************************************************!*\ !*** ./node_modules/stream-browserify/index.js ***! \*************************************************/ @@ -109026,15 +109028,15 @@ if (util && util.inspect && util.inspect.custom) { module.exports = Stream; -var EE = __webpack_require__(/*! events */ 173).EventEmitter; +var EE = __webpack_require__(/*! events */ 175).EventEmitter; var inherits = __webpack_require__(/*! inherits */ 108); inherits(Stream, EE); -Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 172); -Stream.Writable = __webpack_require__(/*! readable-stream/writable.js */ 336); -Stream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ 335); -Stream.Transform = __webpack_require__(/*! readable-stream/transform.js */ 334); -Stream.PassThrough = __webpack_require__(/*! readable-stream/passthrough.js */ 333); +Stream.Readable = __webpack_require__(/*! readable-stream/readable.js */ 174); +Stream.Writable = __webpack_require__(/*! readable-stream/writable.js */ 338); +Stream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ 337); +Stream.Transform = __webpack_require__(/*! readable-stream/transform.js */ 336); +Stream.PassThrough = __webpack_require__(/*! readable-stream/passthrough.js */ 335); // Backwards-compat with node 0.4.x Stream.Stream = Stream; @@ -109133,7 +109135,7 @@ Stream.prototype.pipe = function(dest, options) { /***/ }), -/* 341 */ +/* 343 */ /*!***************************************!*\ !*** ./node_modules/ieee754/index.js ***! \***************************************/ @@ -109228,7 +109230,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { /***/ }), -/* 342 */ +/* 344 */ /*!*****************************************!*\ !*** ./node_modules/base64-js/index.js ***! \*****************************************/ @@ -109391,7 +109393,7 @@ function fromByteArray (uint8) { /***/ }), -/* 343 */ +/* 345 */ /*!******************************************!*\ !*** ./node_modules/jszip/lib/object.js ***! \******************************************/ @@ -109404,13 +109406,13 @@ function fromByteArray (uint8) { var utf8 = __webpack_require__(/*! ./utf8 */ 109); var utils = __webpack_require__(/*! ./utils */ 63); var GenericWorker = __webpack_require__(/*! ./stream/GenericWorker */ 83); -var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 210); -var defaults = __webpack_require__(/*! ./defaults */ 209); -var CompressedObject = __webpack_require__(/*! ./compressedObject */ 168); -var ZipObject = __webpack_require__(/*! ./zipObject */ 314); -var generate = __webpack_require__(/*! ./generate */ 313); +var StreamHelper = __webpack_require__(/*! ./stream/StreamHelper */ 212); +var defaults = __webpack_require__(/*! ./defaults */ 211); +var CompressedObject = __webpack_require__(/*! ./compressedObject */ 170); +var ZipObject = __webpack_require__(/*! ./zipObject */ 316); +var generate = __webpack_require__(/*! ./generate */ 315); var nodejsUtils = __webpack_require__(/*! ./nodejsUtils */ 131); -var NodejsStreamInputAdapter = __webpack_require__(/*! ./nodejs/NodejsStreamInputAdapter */ 301); +var NodejsStreamInputAdapter = __webpack_require__(/*! ./nodejs/NodejsStreamInputAdapter */ 303); /** @@ -109792,7 +109794,7 @@ module.exports = out; /***/ }), -/* 344 */ +/* 346 */ /*!***************************************************!*\ !*** ./node_modules/setimmediate/setImmediate.js ***! \***************************************************/ @@ -109990,7 +109992,7 @@ module.exports = out; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ 89), __webpack_require__(/*! ./../process/browser.js */ 114))) /***/ }), -/* 345 */ +/* 347 */ /*!**********************************************************!*\ !*** ./node_modules/js-beautify/js/lib/beautify-html.js ***! \**********************************************************/ @@ -111353,9 +111355,9 @@ var style_html = legacy_beautify_html; /* Footer */ if (true) { // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, __webpack_require__(/*! ./beautify */ 178), __webpack_require__(/*! ./beautify-css */ 177)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(requireamd) { - var js_beautify = __webpack_require__(/*! ./beautify */ 178); - var css_beautify = __webpack_require__(/*! ./beautify-css */ 177); + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, __webpack_require__(/*! ./beautify */ 180), __webpack_require__(/*! ./beautify-css */ 179)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(requireamd) { + var js_beautify = __webpack_require__(/*! ./beautify */ 180); + var css_beautify = __webpack_require__(/*! ./beautify-css */ 179); return { html_beautify: function(html_source, options) { diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst index 0375b9e8f..8b320c7d3 100644 --- a/doc/source/changelog.rst +++ b/doc/source/changelog.rst @@ -3,6 +3,33 @@ Changelog ========= +v0.41.1 - 11/5/2018 +------------------- +* IMPORTANT - Netscript Changes: + * purchaseTor() now returns true if you already have a TOR router (it used to return false) + * getPurchasedServerCost() now returns Infinity if the specified RAM is an invalid amount or is greater than the max amount of RAM (2 ^ 20 GB) + * Added purchase4SMarketData() and purchase4SMarketDataTixApi() functions + * getScriptLogs() now takes in optional arguments that let you get the logs of another script + +* Stock Market changes: + * Stocks now have "maximum prices". These are hidden from the player + * If a stock reaches its "maximum price", it will most likely drop in value (although it might still rise) + * Each stock has its own, unique maximum price + * Maximum price for each stock are randomly generated and change during each 'reset' + * Stock Market cycles are now accumulated/stored, much like it is for Gangs and Bladeburners + * Accumulated/stored cycles cause stock prices to update up to 50% faster (from every 6 seconds to 4 seconds) + * This means that after coming back from being offline, stock prices will update faster to make up for offline time + +* Decreased the Hacking Level multiplier for BitNodes 6 and 7 to 0.4 (from 0.5) +* Bladeburner console history is now saved and persists when switching screens or closing/reopening the game +* In Bladeburner, if your stamina reaches 0 your current action will be cancelled +* b1t_flum3.exe is no longer removed from your home computer upon reset +* Added main menu link for the Stock Market (once you've purchased an account) +* Job main menu link only appears if you actually have a job +* Bug Fix: Netscript Gang API functions purchaseEquipment() and ascendMember() should now work properly +* Bug Fix: After installing Augs, the "Portfolio Mode" button on the Stock Market page should be properly reset +* Bug Fix: bladeburner.getActionCountRemaining()'s return value is now rounded down (by Kline-) + v0.41.0 - 10/29/2018 -------------------- * WARNING: In NetscriptJS, defining a function called print() is no longer possible diff --git a/doc/source/netscriptfunctions.rst b/doc/source/netscriptfunctions.rst index e9cffa9d4..34ff1c99d 100644 --- a/doc/source/netscriptfunctions.rst +++ b/doc/source/netscriptfunctions.rst @@ -153,17 +153,37 @@ isLogEnabled getScriptLogs ^^^^^^^^^^^^^ -.. js:function:: getScriptLogs() +.. js:function:: getScriptLogs([fn], [hostname/ip=current ip], [args...]) + :param string fn: Optional. Filename of script to get logs from. + :param string ip: Optional. IP or hostname of the server that the script is on + :param args...: Arguments to identify which scripts to get logs for :RAM cost: 0 GB - Returns the script's logs. The logs are returned as an array, where each + Returns a script's logs. The logs are returned as an array, where each line is an element in the array. The most recently logged line is at the end of the array. Note that there is a maximum number of lines that a script stores in its logs. This is configurable in the game's options. + If the function is called with no arguments, it will return the current script's logs. + + Otherwise, the `fn`, `hostname/ip,` and `args...` arguments can be used to get the logs + from another script. Remember that scripts are uniquely identified by both + their names and arguments. + + Examples:: + + // Get logs from foo.script on the current server that was run with no args + getScriptLogs("foo.script"); + + // Get logs from foo.script on the foodnstuff server that was run with no args + getScriptLogs("foo.script", "foodnstuff"); + + // Get logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] + getScriptLogs("foo.script", "foodnstuff", 1, "test"); + scan ^^^^ @@ -931,9 +951,10 @@ getPortHandle rm ^^ -.. js:function:: rm(fn) +.. js:function:: rm(fn[, hostname/ip=current server]) :param string fn: Filename of file to remove. Must include the extension + :param string hostname/ip: Hostname or IP Address of the server on which to delete the file. Optional. Defaults to current server :returns: True if it successfully deletes the file, and false otherwise :RAM cost: 1 GB @@ -991,7 +1012,7 @@ getScriptRam .. js:function:: getScriptRam(scriptname[, hostname/ip]) :param string scriptname: Filename of script. This is case-sensitive. - :param string hostname/ip: Hostname or IP of target server the script is located on. This is optional, If it is not specified then the function will se the current server as the target server. + :param string hostname/ip: Hostname or IP of target server the script is located on. This is optional, If it is not specified then the function will set the current server as the target server. :RAM cost: 0.1 GB Returns the amount of RAM required to run the specified script on the target server. Returns diff --git a/doc/source/netscriptgangapi.rst b/doc/source/netscriptgangapi.rst index 14c940fc6..3c13a121d 100644 --- a/doc/source/netscriptgangapi.rst +++ b/doc/source/netscriptgangapi.rst @@ -100,7 +100,7 @@ getMemberInformation agility: Agility stat agilityEquipMult: Agility multiplier from equipment. Decimal form agilityAscensionMult: Agility multiplier from ascension. Decimal form - augmentation: Array of names of all owned Augmentations + augmentations: Array of names of all owned Augmentations charisma: Charisma stat charismaEquipMult: Charisma multiplier from equipment. Decimal form charismaAscensionMult: Charisma multiplier from ascension. Decimal form @@ -234,6 +234,17 @@ setTerritoryWarfare Set whether or not the gang should engage in territory warfare +getChanceToWinClash +------------------- + +.. js:function:: getChanceToWinClash(gangName) + + :param string gangName: Target gang + + Returns the chance you have to win a clash with the specified gang. The chance + is returned in decimal form, not percentage + + getBonusTime ------------ diff --git a/doc/source/netscriptixapi.rst b/doc/source/netscriptixapi.rst index f621a0e07..cf50c6b62 100644 --- a/doc/source/netscriptixapi.rst +++ b/doc/source/netscriptixapi.rst @@ -2,7 +2,7 @@ Netscript Trade Information eXchange (TIX) API ============================================== The Trade Information eXchange (TIX) is the communications protocol supported by the World Stock Exchange (WSE). -The WESE provides an API that allows you to automatically communicate with the +The WSE provides an API that allows you to automatically communicate with the `Stock Market `_. This API lets you write code using Netscript to build automated trading systems and create your own algorithmic trading strategies. Access to this TIX API can be purchased by visiting the World Stock Exchange in-game. @@ -11,7 +11,7 @@ Access to the TIX API currently costs $5 billion. After you purchase it, you wil access even after you 'reset' by installing Augmentations getStockSymbols -------------- +--------------- .. js:function:: getStockSymbols() @@ -214,3 +214,23 @@ getStockForecast In other words, if this function returned 0.30 for a stock, then this means that the stock's price has a 30% chance of increasing and a 70% chance of decreasing during the next tick. + +purchase4SMarketData +-------------------- + +.. js:function:: purchase4SMarketData() + + Purchase 4S Market Data Access. + + Returns true if you successfully purchased it or if you already have access. + Returns false otherwise. + +purchase4SMarketDataTixApi +-------------------------- + +.. js:function:: purchase4SMarketDataTixApi() + + Purchase 4S Market Data TIX API Access. + + Returns true if you successfully purchased it or if you already have access. + Returns false otherwise. diff --git a/index.html b/index.html index 41fc4314d..022a620c0 100644 --- a/index.html +++ b/index.html @@ -79,6 +79,9 @@ + @@ -787,8 +790,8 @@
- - + +
diff --git a/netscript.js b/netscript.js index 2118a5a3c..7622c0bd9 100644 --- a/netscript.js +++ b/netscript.js @@ -62,7 +62,7 @@ let NetscriptFunctions = "hack|sleep|grow|weaken|print|tprint|scan|nuke|brutessh|ftpcrack|" + //Netscript functions "clearLog|disableLog|enableLog|isLogEnabled|getScriptLogs|" + "relaysmtp|httpworm|sqlinject|run|exec|spawn|kill|killall|exit|" + - "scp|ls|hasRootAccess|" + + "scp|ls|ps|hasRootAccess|" + "getIp|getHackingMultipliers|getBitNodeMultipliers|getStats|isBusy|" + "getHacknetMultipliers|" + "getHostname|getHackingLevel|getServerMoneyAvailable|getServerMaxMoney|" + @@ -95,6 +95,7 @@ let NetscriptFunctions = "getStockPrice|getStockPosition|getStockSymbols|buyStock|sellStock|" + "shortStock|sellShort|" + "placeOrder|cancelOrder|getStockVolatility|getStockForecast|" + + "purchase4SMarketData|purchase4SMarketDataTixApi|" + // Hacknet Node API "hacknet|numNodes|purchaseNode|getPurchaseNodeCost|getNodeStats|" + @@ -106,7 +107,7 @@ let NetscriptFunctions = "getMemberNames|getGangInformation|getMemberInformation|canRecruitMember|" + "recruitMember|getTaskNames|setMemberTask|getEquipmentNames|" + "getEquipmentCost|purchaseEquipment|ascendMember|setTerritoryWarfare|" + - "getBonusTime|" + + "getChanceToWinClash|getBonusTime|" + // Bladeburner API "bladeburner|getContractNames|getOperationNames|getBlackOpNames|" + diff --git a/src/BitNode.js b/src/BitNode.js index ffa5a0ca3..fa8c6f939 100644 --- a/src/BitNode.js +++ b/src/BitNode.js @@ -265,7 +265,7 @@ function initBitNodeMultipliers() { BitNodeMultipliers.CorporationValuation = 0.5; break; case 6: //Bladeburner - BitNodeMultipliers.HackingLevelMultiplier = 0.5; + BitNodeMultipliers.HackingLevelMultiplier = 0.4; BitNodeMultipliers.ServerMaxMoney = 0.5; BitNodeMultipliers.ServerStartingMoney = 0.5; BitNodeMultipliers.ServerStartingSecurity = 1.5; @@ -282,7 +282,7 @@ function initBitNodeMultipliers() { BitNodeMultipliers.BladeburnerRank = 0.6; BitNodeMultipliers.BladeburnerSkillCost = 2; BitNodeMultipliers.AugmentationMoneyCost = 3; - BitNodeMultipliers.HackingLevelMultiplier = 0.5; + BitNodeMultipliers.HackingLevelMultiplier = 0.4; BitNodeMultipliers.ServerMaxMoney = 0.5; BitNodeMultipliers.ServerStartingMoney = 0.5; BitNodeMultipliers.ServerStartingSecurity = 1.5; diff --git a/src/Bladeburner.js b/src/Bladeburner.js index f96df7070..66d64b275 100644 --- a/src/Bladeburner.js +++ b/src/Bladeburner.js @@ -74,7 +74,6 @@ var ContractBaseMoneyGain = 50e3; //Base Money Gained per contract var ActiveActionCssClass = "bladeburner-active-action"; //Console related stuff -var consoleHistory = []; //Console command history var consoleHistoryIndex = 0; var consoleHelpText = { helpList:"Use 'help [command]' to get more information about a particular Bladeburner console command.

" + @@ -153,6 +152,7 @@ $(document).keydown(function(event) { //} if (!(Player.bladeburner instanceof Bladeburner)) {return;} + let consoleHistory = Player.bladeburner.consoleHistory; //NOTE: Keycodes imported from Terminal.js if (event.keyCode === KEY.ENTER) { @@ -712,6 +712,10 @@ function Bladeburner(params={}) { this.automateActionLow = 0; this.automateThreshLow = 0; //Stamina Threshold + //Console command history + this.consoleHistory = []; + this.consoleLogs = []; + //Initialization initBladeburner(); this.initializeDomElementRefs(); @@ -864,6 +868,12 @@ Bladeburner.prototype.process = function() { this.resetAction(); } + // If the Player has no Stamina, set action to idle + if (this.stamina <= 0) { + this.log("Your Bladeburner action was cancelled because your stamina hit 0"); + this.resetAction(); + } + //A 'tick' for this mechanic is one second (= 5 game cycles) if (this.storedCycles >= CyclesPerSecond) { var seconds = Math.floor(this.storedCycles / CyclesPerSecond); @@ -1345,7 +1355,6 @@ Bladeburner.prototype.completeAction = function() { Player.gainIntelligenceExp(BaseIntGain); Player.gainCharismaExp(charismaExpGain); this.changeRank(0.1 * BitNodeMultipliers.BladeburnerRank); - 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, " + formatNumber(hackingExpGain, 1) + " hacking exp, and " + formatNumber(charismaExpGain, 1) + " charisma exp"); @@ -1738,8 +1747,15 @@ Bladeburner.prototype.createContent = function() { document.getElementById("entire-game-container").appendChild(DomElems.bladeburnerDiv); - this.postToConsole("Bladeburner Console BETA"); - this.postToConsole("Type 'help' to see console commands"); + if (this.consoleLogs.length === 0) { + this.postToConsole("Bladeburner Console BETA"); + this.postToConsole("Type 'help' to see console commands"); + } else { + for (let i = 0; i < this.consoleLogs.length; ++i) { + this.postToConsole(this.consoleLogs[i], false); + } + } + DomElems.consoleInput.focus(); } @@ -2732,12 +2748,22 @@ Bladeburner.prototype.updateSkillsUIElement = function(el, skill) { } //Bladeburner Console Window -Bladeburner.prototype.postToConsole = function(input) { +Bladeburner.prototype.postToConsole = function(input, saveToLogs=true) { + const MaxConsoleEntries = 100; + if (saveToLogs === true) { + this.consoleLogs.push(input); + if (this.consoleLogs.length > MaxConsoleEntries) { + this.consoleLogs.shift(); + } + } + if (input == null || DomElems.consoleDiv == null) {return;} $("#bladeubrner-console-input-row").before('' + input + ''); - if (DomElems.consoleTable.childNodes.length > 200) { + + if (DomElems.consoleTable.childNodes.length > MaxConsoleEntries) { DomElems.consoleTable.removeChild(DomElems.consoleTable.firstChild); } + this.updateConsoleScroll(); } @@ -2753,6 +2779,8 @@ Bladeburner.prototype.clearConsole = function() { while (DomElems.consoleTable.childNodes.length > 1) { DomElems.consoleTable.removeChild(DomElems.consoleTable.firstChild); } + + this.consoleLogs.length = 0; } Bladeburner.prototype.log = function(input) { @@ -2764,13 +2792,13 @@ Bladeburner.prototype.log = function(input) { Bladeburner.prototype.executeConsoleCommands = function(commands) { try { //Console History - if (consoleHistory[consoleHistory.length-1] != commands) { - consoleHistory.push(commands); - if (consoleHistory.length > 50) { - consoleHistory.splice(0, 1); + if (this.consoleHistory[this.consoleHistory.length-1] != commands) { + this.consoleHistory.push(commands); + if (this.consoleHistory.length > 50) { + this.consoleHistory.splice(0, 1); } } - consoleHistoryIndex = consoleHistory.length; + consoleHistoryIndex = this.consoleHistory.length; var arrayOfCommands = commands.split(";"); for (var i = 0; i < arrayOfCommands.length; ++i) { @@ -3469,7 +3497,7 @@ Bladeburner.prototype.getActionCountRemainingNetscriptFn = function(type, name, switch (actionId.type) { case ActionTypes["Contract"]: case ActionTypes["Operation"]: - return actionObj.count; + return Math.floor( actionObj.count ); case ActionTypes["BlackOp"]: case ActionTypes["BlackOperation"]: if (this.blackops[name] != null) { diff --git a/src/Company/data/CompanyPositionsMetadata.ts b/src/Company/data/CompanyPositionsMetadata.ts index 9fca2a032..ac30251d9 100644 --- a/src/Company/data/CompanyPositionsMetadata.ts +++ b/src/Company/data/CompanyPositionsMetadata.ts @@ -185,7 +185,7 @@ export const companyPositionMetadata: IConstructorParams[] = [ baseSalary: 410, charismaEffectiveness: 20, charismaExpGain: 0.1, - hackingEffectiveness: 0.80, + hackingEffectiveness: 80, hackingExpGain: 0.5, reqdCharisma: 76, reqdHacking: 251, @@ -419,7 +419,7 @@ export const companyPositionMetadata: IConstructorParams[] = [ }, { name: posNames.AgentCompanyPositions[0], // Field Agent - nextPosition: posNames.AgentCompanyPositions[0], // Secret Agent + nextPosition: posNames.AgentCompanyPositions[1], // Secret Agent baseSalary: 330, hackingEffectiveness: 10, strengthEffectiveness: 15, @@ -443,8 +443,8 @@ export const companyPositionMetadata: IConstructorParams[] = [ repMultiplier: 1, }, { - name: posNames.AgentCompanyPositions[0], // Secret Agent - nextPosition: posNames.AgentCompanyPositions[0], // Special Operative + name: posNames.AgentCompanyPositions[1], // Secret Agent + nextPosition: posNames.AgentCompanyPositions[2], // Special Operative baseSalary: 990, hackingEffectiveness: 15, strengthEffectiveness: 15, @@ -468,7 +468,7 @@ export const companyPositionMetadata: IConstructorParams[] = [ repMultiplier: 1.25, }, { - name: posNames.AgentCompanyPositions[0], // Special Operative + name: posNames.AgentCompanyPositions[2], // Special Operative nextPosition: null, baseSalary: 2000, hackingEffectiveness: 15, @@ -558,7 +558,7 @@ export const companyPositionMetadata: IConstructorParams[] = [ repMultiplier: 1, }, { - name: posNames.BusinessConsultantCompanyPositions[0], // Senior Business Consultant + name: posNames.BusinessConsultantCompanyPositions[1], // Senior Business Consultant nextPosition: null, baseSalary: 525, hackingEffectiveness: 15, diff --git a/src/Constants.ts b/src/Constants.ts index 6288687de..67ed6ab19 100644 --- a/src/Constants.ts +++ b/src/Constants.ts @@ -1,7 +1,7 @@ import {IMap} from "./types"; export let CONSTANTS: IMap = { - Version: "0.41.0", + Version: "0.41.2", //Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then @@ -504,16 +504,13 @@ export let CONSTANTS: IMap = { LatestUpdate: ` - v0.41.1 - * Stock Market changes: - *** Stocks now have "maximum prices" - *** If a stock reaches its "maximum price", it will most likely drop in value (although it might still rise) - *** Each stock has its own, unique maximum price - *** Maximum price for each stock are randomly generated and change during each 'reset' - *** Stock Market cycles are now accumulated/stored, much like it is for Gangs and Bladeburners - *** Accumulated/stored cycles cause stock prices to update up to 50% faster (from every 6 seconds to 4 seconds) - ****** This means that after coming back from being offline, stock prices will update faster to make up for offline time + v0.41.2 + * IMPORTANT - Netscript Changes: + ** rm() now takes an optional parameter that lets you specify on which server to delete the file + * Gang Changes: + ** UI now displays your chance to win a clash with other gangs + ** Added getChanceToWinClash() function to the Gang API ` } diff --git a/src/DevMenu.js b/src/DevMenu.js index 2f1e7405b..ce2c31cd1 100644 --- a/src/DevMenu.js +++ b/src/DevMenu.js @@ -5,7 +5,12 @@ import {Factions} from "./Faction"; import {Player} from "./Player"; import {AllServers} from "./Server"; import {hackWorldDaemon} from "./RedPill"; +import {StockMarket, + SymbolToStockMap} from "./StockMarket"; +import {Stock} from "./Stock"; import {Terminal} from "./Terminal"; +import {numeralWrapper} from "./ui/numeralFormat"; +import {dialogBoxCreate} from "../utils/DialogBox"; import {exceptionAlert} from "../utils/helpers/exceptionAlert"; import {createElement} from "../utils/uiHelpers/createElement"; import {removeElementById} from "../utils/uiHelpers/removeElementById"; @@ -322,6 +327,7 @@ export function createDevMenu() { const bladeburnerGainRankInput = createElement("input", { class: "text-input", + margin: "5px", placeholder: "Rank to gain (or negative to lose rank)", type: "number", }); @@ -344,6 +350,7 @@ export function createDevMenu() { const gangStoredCyclesInput = createElement("input", { class: "text-input", + margin: "5px", placeholder: "# Cycles to add", type: "number", }); @@ -372,6 +379,73 @@ export function createDevMenu() { innerText: "Generate Random Contract", }); + // Stock Market + const stockmarketHeader = createElement("h2", {innerText: "Stock Market"}); + + const stockInput = createElement("input", { + class: "text-input", + display: "block", + placeholder: "Stock symbol(s), or 'all'", + }); + + function processStocks(cb) { + const input = stockInput.value.toString().replace(/\s/g, ''); + + // Empty input, or "all", will process all stocks + if (input === "" || input.toLowerCase() === "all") { + for (const name in StockMarket) { + if (StockMarket.hasOwnProperty(name)) { + const stock = StockMarket[name]; + if (stock instanceof Stock) { + cb(stock); + } + } + } + return; + } + + const stockSymbols = input.split(","); + for (let i = 0; i < stockSymbols.length; ++i) { + const stock = SymbolToStockMap[stockSymbols]; + if (stock instanceof Stock) { + cb(stock); + } + } + } + + const stockPriceChangeInput = createElement("input", { + class: "text-input", + margin: "5px", + placeholder: "Price to change stock(s) to", + type: "number", + }); + + const stockPriceChangeBtn = createElement("button", { + class: "std-button", + clickListener: () => { + const price = parseInt(stockPriceChangeInput.value); + if (isNaN(price)) { return; } + + processStocks((stock) => { + stock.price = price; + }); + dialogBoxCreate(`Stock Prices changed to ${price}`); + }, + innerText: "Change Stock Price(s)", + }); + + const stockViewPriceCapBtn = createElement("button", { + class: "std-button", + clickListener: () => { + let text = ""; + processStocks((stock) => { + text += `${stock.symbol}: ${numeralWrapper.format(stock.cap, '$0.000a')}
`; + }); + dialogBoxCreate(text); + }, + innerText: "View Stock Price Caps", + }); + // Add everything to container, then append to main menu const devMenuContainer = createElement("div", { class: "generic-menupage-container", @@ -433,6 +507,12 @@ export function createDevMenu() { devMenuContainer.appendChild(createElement("br")); devMenuContainer.appendChild(contractsHeader); devMenuContainer.appendChild(generateRandomContractBtn); + devMenuContainer.appendChild(stockmarketHeader); + devMenuContainer.appendChild(stockInput); + devMenuContainer.appendChild(stockPriceChangeInput); + devMenuContainer.appendChild(stockPriceChangeBtn); + devMenuContainer.appendChild(createElement("br")); + devMenuContainer.appendChild(stockViewPriceCapBtn); const entireGameContainer = document.getElementById("entire-game-container"); if (entireGameContainer == null) { diff --git a/src/Faction.js b/src/Faction.js index bc4c1cea8..f0a04a9ba 100644 --- a/src/Faction.js +++ b/src/Faction.js @@ -394,7 +394,6 @@ function displayFactionContent(factionName) { var hacking = false; if (factionName === "NiteSec" || factionName === "The Black Hand") {hacking = true;} Player.startGang(factionName, hacking); - document.getElementById("gang-tab").style.display = "list-item"; document.getElementById("world-menu-header").click(); document.getElementById("world-menu-header").click(); Engine.loadGangContent(); diff --git a/src/Gang.js b/src/Gang.js index 86e94f9de..a2d83ada6 100644 --- a/src/Gang.js +++ b/src/Gang.js @@ -1521,9 +1521,10 @@ Gang.prototype.updateGangContent = function() { // Update territory information UIElems.gangTerritoryInfoText.innerHTML = ""; - for (var gangname in AllGangs) { + const playerPower = AllGangs[this.facName].power; + for (const gangname in AllGangs) { if (AllGangs.hasOwnProperty(gangname)) { - var gangTerritoryInfo = AllGangs[gangname]; + const gangTerritoryInfo = AllGangs[gangname]; let territory = gangTerritoryInfo.territory * 100; //Fix some rounding issues graphically @@ -1536,12 +1537,16 @@ Gang.prototype.updateGangContent = function() { displayNumber = formatNumber(territory, 2); } - if (gangname == this.facName) { - UIElems.gangTerritoryInfoText.innerHTML += ("" + gangname + "
(Power: " + formatNumber(gangTerritoryInfo.power, 6) + "): " + - displayNumber + "%

"); + if (gangname === this.facName) { + let newHTML = `${gangname}
Power: ${formatNumber(gangTerritoryInfo.power, 6)}
`; + newHTML += `Territory: ${displayNumber}%

`; + UIElems.gangTerritoryInfoText.innerHTML += newHTML; } else { - UIElems.gangTerritoryInfoText.innerHTML += (gangname + "
(Power: " + formatNumber(gangTerritoryInfo.power, 6) + "): " + - displayNumber + "%

"); + const clashVictoryChance = playerPower / (gangTerritoryInfo.power + playerPower); + let newHTML = `${gangname}
Power: ${formatNumber(gangTerritoryInfo.power, 6)}
`; + newHTML += `Territory: ${displayNumber}%
`; + newHTML += `Chance to win clash with this gang: ${numeralWrapper.format(clashVictoryChance, "0.000%")}

`; + UIElems.gangTerritoryInfoText.innerHTML += newHTML; } } } diff --git a/src/Location.js b/src/Location.js index 1669f4655..eb07aabbd 100644 --- a/src/Location.js +++ b/src/Location.js @@ -1955,7 +1955,6 @@ function initLocationButtons() { name:companyName, }); displayLocationContent(); - document.getElementById("corporation-tab").style.display = "list-item"; document.getElementById("world-menu-header").click(); document.getElementById("world-menu-header").click(); dialogBoxCreate("Congratulations! You just started your own corporation. You can visit " + @@ -1985,7 +1984,6 @@ function initLocationButtons() { Player.bladeburner = new Bladeburner({new:true}); dialogBoxCreate("You have been accepted into the Bladeburner division!"); displayLocationContent(); - document.getElementById("bladeburner-tab").style.display = "list-item"; document.getElementById("world-menu-header").click(); document.getElementById("world-menu-header").click(); } else { diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js index 8bf9eccdd..dd627178c 100644 --- a/src/NetscriptFunctions.js +++ b/src/NetscriptFunctions.js @@ -108,11 +108,14 @@ var possibleLogs = { getServerGrowth: true, getServerNumPortsRequired: true, getServerRam: true, + // TIX API buyStock: true, sellStock: true, shortStock: true, sellShort: true, + purchase4SMarketData: true, + purchase4SMarketDataTixApi: true, // Singularity Functions purchaseServer: true, @@ -547,8 +550,30 @@ function NetscriptFunctions(workerScript) { } return workerScript.disableLogs[fn] ? false : true; }, - getScriptLogs : function() { + getScriptLogs : function(fn, ip) { if (workerScript.checkingRam) {return 0;} + + if (fn != null && typeof fn === 'string') { + // Get Logs of another script + if (ip == null) { ip = workerScript.serverIp; } + const server = getServer(ip); + if (server == null) { + workerScript.log(`getScriptLogs() failed. Invalid IP or hostname passed in: ${ip}`); + throw makeRuntimeRejectMsg(workerScript, `getScriptLogs() failed. Invalid IP or hostname passed in: ${ip}`); + } + + let argsForTarget = []; + for (let i = 2; i < arguments.length; ++i) { + argsForTarget.push(arguments[i]); + } + const runningScriptObj = findRunningScript(fn, argsForTarget, server); + if (runningScriptObj == null) { + workerScript.scriptRef.log(`getScriptLogs() failed. No such script ${fn} on ${server.hostname} with args: ${arrayToString(argsForTarget)}`); + return ""; + } + return runningScriptObj.logs.slice(); + } + return workerScript.scriptRef.logs.slice(); }, nuke : function(ip){ @@ -802,7 +827,7 @@ function NetscriptFunctions(workerScript) { } NetscriptFunctions(workerScript).exit(); }, - kill : function(filename,ip) { + kill : function(filename, ip) { if (workerScript.checkingRam) { return updateStaticRam("kill", CONSTANTS.ScriptKillRamCost); } @@ -1698,6 +1723,68 @@ function NetscriptFunctions(workerScript) { stock.b ? forecast += stock.otlkMag : forecast -= stock.otlkMag; return forecast / 100; //Convert from percentage to decimal }, + purchase4SMarketData : function() { + if (workerScript.checkingRam) { + return updateStaticRam("purchase4SMarketData", CONSTANTS.ScriptBuySellStockRamCost); + } + updateDynamicRam("purchase4SMarketData", CONSTANTS.ScriptBuySellStockRamCost); + + if (!Player.hasTixApiAccess) { + throw makeRuntimeRejectMsg(workerScript, "You don't have TIX API Access! Cannot use purchase4SMarketData()"); + } + + if (Player.has4SData) { + if (workerScript.shouldLog("purchase4SMarketData")) { + workerScript.log("Already purchased 4S Market Data"); + } + return true; + } + + if (Player.money.lt(CONSTANTS.MarketData4SCost)) { + if (workerScript.shouldLog("purchase4SMarketData")) { + workerScript.log("Failed to purchase 4S Market Data - Not enough money"); + } + return false; + } + + Player.has4SData = true; + Player.loseMoney(CONSTANTS.MarketData4SCost); + if (workerScript.shouldLog("purchase4SMarketData")) { + workerScript.log("Purchased 4S Market Data"); + } + return true; + }, + purchase4SMarketDataTixApi : function() { + if (workerScript.checkingRam) { + return updateStaticRam("purchase4SMarketDataTixApi", CONSTANTS.ScriptBuySellStockRamCost); + } + updateDynamicRam("purchase4SMarketDataTixApi", CONSTANTS.ScriptBuySellStockRamCost); + + if (!Player.hasTixApiAccess) { + throw makeRuntimeRejectMsg(workerScript, "You don't have TIX API Access! Cannot use purchase4SMarketDataTixApi()"); + } + + if (Player.has4SDataTixApi) { + if (workerScript.shouldLog("purchase4SMarketDataTixApi")) { + workerScript.log("Already purchased 4S Market Data TIX API"); + } + return true; + } + + if (Player.money.lt(CONSTANTS.MarketDataTixApi4SCost)) { + if (workerScript.shouldLog("purchase4SMarketDataTixApi")) { + workerScript.log("Failed to purchase 4S Market Data TIX API - Not enough money"); + } + return false; + } + + Player.has4SDataTixApi = true; + Player.loseMoney(CONSTANTS.MarketDataTixApi4SCost); + if (workerScript.shouldLog("purchase4SMarketDataTixApi")) { + workerScript.log("Purchased 4S Market Data TIX API"); + } + return true; + }, getPurchasedServerLimit : function() { if (workerScript.checkingRam) { return updateStaticRam("getPurchasedServerLimit", CONSTANTS.ScriptGetPurchasedServerLimit); @@ -1725,7 +1812,7 @@ function NetscriptFunctions(workerScript) { cost = getPurchaseServerRamCostGuard(ram); } catch (e) { workerScript.scriptRef.log("ERROR: 'getPurchasedServerCost()' " + e.message); - return ""; + return Infinity; } return cost; @@ -2053,14 +2140,18 @@ function NetscriptFunctions(workerScript) { } return port; }, - rm : function(fn) { + rm : function(fn, ip) { if (workerScript.checkingRam) { return updateStaticRam("rm", CONSTANTS.ScriptReadWriteRamCost); } updateDynamicRam("rm", CONSTANTS.ScriptReadWriteRamCost); - var s = getServer(workerScript.serverIp); + + if (ip == null || ip === "") { + ip = workerScript.serverIp; + } + var s = getServer(ip); if (s == null) { - throw makeRuntimeRejectMsg(workerScript, "Error getting Server for this script in clear(). This is a bug please contact game dev"); + throw makeRuntimeRejectMsg(workerScript, `Invalid server specified for rm(): ${ip}`); } if (fn.includes(".exe")) { @@ -3784,7 +3875,7 @@ function NetscriptFunctions(workerScript) { nsGang.checkGangApiAccess(workerScript, "purchaseEquipment"); try { - for (const member in Player.gang.members) { + for (const member of Player.gang.members) { if (member.name === memberName) { const res = member.buyUpgrade(equipName, Player, Player.gang); if (workerScript.shouldLog("purchaseEquipment")) { @@ -3813,13 +3904,13 @@ function NetscriptFunctions(workerScript) { nsGang.checkGangApiAccess(workerScript, "ascendMember"); try { - for (const member in Player.gang.members) { + for (const member of Player.gang.members) { if (member.name === name) { return Player.gang.ascendMember(member, workerScript); } } - workerScript.log(`Invalid argument passed to gang.ascendMember(). No gang member could be found with name ${memberName}`); + workerScript.log(`Invalid argument passed to gang.ascendMember(). No gang member could be found with name ${name}`); return false; } catch(e) { throw makeRuntimeRejectMsg(workerScript, nsGang.unknownGangApiExceptionMessage("ascendMember", e)); @@ -3848,6 +3939,27 @@ function NetscriptFunctions(workerScript) { throw makeRuntimeRejectMsg(workerScript, nsGang.unknownGangApiExceptionMessage("setTerritoryWarfare", e)); } }, + getChanceToWinClash : function(otherGang) { + if (workerScript.checkingRam) { + return updateStaticRam("getChanceToWinClash", CONSTANTS.ScriptGangApiBaseRamCost); + } + updateDynamicRam("getChanceToWinClash", CONSTANTS.ScriptGangApiBaseRamCost); + nsGang.checkGangApiAccess(workerScript, "getChanceToWinClash"); + + try { + if (AllGangs[otherGang] == null) { + workerScript.log(`Invalid gang specified in gang.getChanceToWinClash() : ${otherGang}`); + return 0; + } + + const playerPower = AllGangs[Player.gang.facName].power; + const otherPower = AllGangs[otherGang].power; + + return playerPower / (otherPower + playerPower); + } catch(e) { + throw makeRuntimeRejectMsg(workerScript, nsGang.unknownGangApiExceptionMessage("getChanceToWinClash", e)); + } + }, getBonusTime : function() { if (workerScript.checkingRam) { return 0; } nsGang.checkGangApiAccess(workerScript, "getBonusTime"); diff --git a/src/Player.js b/src/Player.js index 30db08ade..0af4c2780 100644 --- a/src/Player.js +++ b/src/Player.js @@ -8,6 +8,7 @@ import {Companies} from "./Company/Companies"; import {getNextCompanyPosition} from "./Company/GetNextCompanyPosition"; import {getJobRequirementText} from "./Company/GetJobRequirementText"; import {CompanyPositions} from "./Company/CompanyPositions"; +import * as posNames from "./Company/data/CompanyPositionNames"; import {CONSTANTS} from "./Constants"; import {Corporation} from "./CompanyManagement"; import {Programs} from "./CreateProgram"; @@ -193,7 +194,6 @@ function PlayerObject() { //Flags for determining whether certain "thresholds" have been achieved this.firstFacInvRecvd = false; this.firstAugPurchased = false; - this.firstJobRecvd = false; this.firstTimeTraveled = false; this.firstProgramAvailable = false; @@ -1749,6 +1749,9 @@ PlayerObject.prototype.applyForJob = function(entryPosType, sing=false) { this.companyName = company.name; this.companyPosition = pos.name; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); + if (leaveCompany) { if (sing) { return true; } dialogBoxCreate([`Congratulations! You were offered a new job at ${this.companyName} as a ${pos.name}!`, @@ -1794,21 +1797,21 @@ PlayerObject.prototype.getNextCompanyPosition = function(company, entryPosType) } PlayerObject.prototype.applyForSoftwareJob = function(sing=false) { - return this.applyForJob(CompanyPositions.SoftwareIntern, sing); + return this.applyForJob(CompanyPositions[posNames.SoftwareCompanyPositions[0]], sing); } PlayerObject.prototype.applyForSoftwareConsultantJob = function(sing=false) { - return this.applyForJob(CompanyPositions.SoftwareConsultant, sing); + return this.applyForJob(CompanyPositions[posNames.SoftwareConsultantCompanyPositions[0]], sing); } PlayerObject.prototype.applyForItJob = function(sing=false) { - return this.applyForJob(CompanyPositions.ITIntern, sing); + return this.applyForJob(CompanyPositions[posNames.ITCompanyPositions[0]], sing); } PlayerObject.prototype.applyForSecurityEngineerJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.SecurityEngineer)) { - return this.applyForJob(CompanyPositions.SecurityEngineer, sing); + if (this.isQualified(company, CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]])) { + return this.applyForJob(CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]], sing); } else { if (sing) {return false;} dialogBoxCreate("Unforunately, you do not qualify for this position"); @@ -1817,8 +1820,8 @@ PlayerObject.prototype.applyForSecurityEngineerJob = function(sing=false) { PlayerObject.prototype.applyForNetworkEngineerJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.NetworkEngineer)) { - return this.applyForJob(CompanyPositions.NetworkEngineer, sing); + if (this.isQualified(company, CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]])) { + return this.applyForJob(CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]], sing); } else { if (sing) {return false;} dialogBoxCreate("Unforunately, you do not qualify for this position"); @@ -1826,22 +1829,23 @@ PlayerObject.prototype.applyForNetworkEngineerJob = function(sing=false) { } PlayerObject.prototype.applyForBusinessJob = function(sing=false) { - return this.applyForJob(CompanyPositions.BusinessIntern, sing); + return this.applyForJob(CompanyPositions[posNames.BusinessCompanyPositions[0]], sing); } PlayerObject.prototype.applyForBusinessConsultantJob = function(sing=false) { - return this.applyForJob(CompanyPositions.BusinessConsultant, sing); + return this.applyForJob(CompanyPositions[posNames.BusinessConsultantCompanyPositions[0]], sing); } PlayerObject.prototype.applyForSecurityJob = function(sing=false) { - //TODO If case for POlice departments - return this.applyForJob(CompanyPositions.SecurityGuard, sing); + // TODO Police Jobs + // Indexing starts at 2 because 0 is for police officer + return this.applyForJob(CompanyPositions[posNames.SecurityCompanyPositions[2]], sing); } PlayerObject.prototype.applyForAgentJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.FieldAgent)) { - return this.applyForJob(CompanyPositions.FieldAgent, sing); + if (this.isQualified(company, CompanyPositions[posNames.AgentCompanyPositions[0]])) { + return this.applyForJob(CompanyPositions[posNames.AgentCompanyPositions[0]], sing); } else { if (sing) {return false;} dialogBoxCreate("Unforunately, you do not qualify for this position"); @@ -1850,15 +1854,11 @@ PlayerObject.prototype.applyForAgentJob = function(sing=false) { PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.Employee)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, CompanyPositions[posNames.MiscCompanyPositions[1]])) { this.companyName = company.companyName; - this.companyPosition = CompanyPositions.Employee; + this.companyPosition = CompanyPositions[posNames.MiscCompanyPositions[1]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} dialogBoxCreate("Congratulations, you are now employed at " + this.companyName); Engine.loadLocationContent(); @@ -1870,15 +1870,11 @@ PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.PartTimeEmployee)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, CompanyPositions[posNames.PartTimeCompanyPositions[1]])) { this.companyName = company.companyName; - this.companyPosition = CompanyPositions.PartTimeEmployee; + this.companyPosition = CompanyPositions[posNames.PartTimeCompanyPositions[1]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} dialogBoxCreate("Congratulations, you are now employed part-time at " + this.companyName); Engine.loadLocationContent(); @@ -1890,15 +1886,11 @@ PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { PlayerObject.prototype.applyForWaiterJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.Waiter)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, CompanyPositions[posNames.MiscCompanyPositions[0]])) { this.companyName = company.companyName; - this.companyPosition = CompanyPositions.Waiter; + this.companyPosition = CompanyPositions[posNames.MiscCompanyPositions[0]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} dialogBoxCreate("Congratulations, you are now employed as a waiter at " + this.companyName); Engine.loadLocationContent(); @@ -1910,15 +1902,11 @@ PlayerObject.prototype.applyForWaiterJob = function(sing=false) { PlayerObject.prototype.applyForPartTimeWaiterJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to - if (this.isQualified(company, CompanyPositions.PartTimeWaiter)) { - if (this.firstJobRecvd === false) { - this.firstJobRecvd = true; - document.getElementById("job-tab").style.display = "list-item"; - document.getElementById("world-menu-header").click(); - document.getElementById("world-menu-header").click(); - } + if (this.isQualified(company, CompanyPositions[posNames.PartTimeCompanyPositions[0]])) { this.companyName = company.companyName; - this.companyPosition = CompanyPositions.PartTimeWaiter; + this.companyPosition = CompanyPositions[posNames.PartTimeCompanyPositions[0]]; + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); if (sing) {return true;} dialogBoxCreate("Congratulations, you are now employed as a part-time waiter at " + this.companyName); Engine.loadLocationContent(); diff --git a/src/Prestige.js b/src/Prestige.js index 0f09ec015..cfeddaf72 100755 --- a/src/Prestige.js +++ b/src/Prestige.js @@ -148,6 +148,10 @@ function prestigeAugmentation() { Terminal.resetTerminalInput(); Engine.loadTerminalContent(); + // Refresh Main Menu (the 'World' menu, specifically) + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); + //Red Pill if (augmentationExists(AugmentationNames.TheRedPill) && Augmentations[AugmentationNames.TheRedPill].owned) { @@ -319,6 +323,10 @@ function prestigeSourceFile() { Player.corporation = null; Player.bladeburner = null; + // Refresh Main Menu (the 'World' menu, specifically) + document.getElementById("world-menu-header").click(); + document.getElementById("world-menu-header").click(); + //Gain int exp Player.gainIntelligenceExp(5); } diff --git a/src/SaveObject.js b/src/SaveObject.js index a3de20419..2f4ca3f79 100755 --- a/src/SaveObject.js +++ b/src/SaveObject.js @@ -110,6 +110,31 @@ BitburnerSaveObject.prototype.saveGame = function(db) { createStatusText("Game saved!"); } +// Makes necessary changes to the loaded/imported data to ensure +// the game stills works with new versions +function evaluateVersionCompatibility(ver) { + // This version refactored the Company/job-related code + if (ver <= "0.41.2") { + // Player's company position is now a string + if (Player.companyPosition != null && typeof Player.companyPosition !== "string") { + console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); + Player.companyPosition = Player.companyPosition.positionName; + if (Player.companyPosition == null) { + Player.companyPosition = ""; + } + } + + // The "companyName" property of all Companies is renamed to "name" + for (var companyName in Companies) { + const company = Companies[companyName]; + if (company.name == null && company.companyName != null) { + console.log("Changed company name property to be compatible with v0.41.2"); + company.name = company.companyName; + } + } + } +} + function loadGame(saveString) { if (saveString === "" || saveString == null || saveString === undefined) { if (!window.localStorage.getItem("bitburnerSave")) { @@ -187,23 +212,8 @@ function loadGame(saveString) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, Reviver); - // This version refactored the Company/job-related code - if (ver < "0.41.2") { - // Player's company position is now a string - if (Player.companyPosition !== "" || Player.companyPosition instanceof CompanyPosition) { - console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); - Player.companyPosition = Player.companyPosition.positionName; - } + evaluateVersionCompatibility(ver); - // The "companyName" property of all Companies is renamed to "name" - for (var companyName in Companies) { - const company = Companies[companyName]; - if (company.name == null && company.companyName != null) { - console.log("Changed company name property to be compatible with v0.41.2"); - company.name = company.companyName; - } - } - } if (window.location.href.toLowerCase().includes("bitburner-beta")) { //Beta branch, always show changes createBetaUpdateText(); @@ -301,23 +311,7 @@ function loadImportedGame(saveObj, saveString) { if (tempSaveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(tempSaveObj.VersionSave, Reviver); - // This version refactored the Company/job-related code - if (ver < "0.41.2") { - // Player's company position is now a string - if (Player.companyPosition !== "" || Player.companyPosition instanceof CompanyPosition) { - console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); - Player.companyPosition = Player.companyPosition.positionName; - } - - // The "companyName" property of all Companies is renamed to "name" - for (var companyName in Companies) { - const company = Companies[companyName]; - if (company.name == null && company.companyName != null) { - console.log("Changed company name property to be compatible with v0.41.2"); - company.name = company.companyName; - } - } - } + evaluateVersionCompatibility(ver); } catch(e) { console.error("Parsing Version save failed: " + e); } @@ -400,23 +394,8 @@ function loadImportedGame(saveObj, saveString) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, Reviver); - // This version refactored the Company/job-related code - if (ver < "0.41.2") { - // Player's company position is now a string - if (Player.companyPosition !== "" || Player.companyPosition instanceof CompanyPosition) { - console.log("Changed Player.companyPosition value to be compatible with v0.41.2"); - Player.companyPosition = Player.companyPosition.positionName; - } + evaluateVersionCompatibility(ver); - // The "companyName" property of all Companies is renamed to "name" - for (var companyName in Companies) { - const company = Companies[companyName]; - if (company.name == null && company.companyName != null) { - console.log("Changed company name property to be compatible with v0.41.2"); - company.name = company.companyName; - } - } - } if (ver != CONSTANTS.Version) { createNewUpdateText(); } diff --git a/src/Script.js b/src/Script.js index 4ee8ee761..a74c19f39 100755 --- a/src/Script.js +++ b/src/Script.js @@ -466,7 +466,7 @@ async function parseOnlyRamCalculate(server, code, workerScript) { const nextModule = parseQueue.shift(); let code; - if (nextModule.startsWith("https://")) { + if (nextModule.startsWith("https://") || nextModule.startsWith("http://")) { try { const module = await eval('import(nextModule)'); code = ""; diff --git a/src/Server.js b/src/Server.js index fa8e423a3..113e1004b 100644 --- a/src/Server.js +++ b/src/Server.js @@ -344,12 +344,15 @@ function processSingleServerGrowth(server, numCycles) { } function prestigeHomeComputer(homeComp) { + const hasBitflume = homeComp.programs.includes(Programs.BitFlume.name); + homeComp.programs.length = 0; //Remove programs homeComp.runningScripts = []; homeComp.serversOnNetwork = []; homeComp.isConnectedTo = true; homeComp.ramUsed = 0; homeComp.programs.push(Programs.NukeProgram.name); + if (hasBitflume) { homeComp.programs.push(Programs.BitFlume.name); } //Update RAM usage on all scripts homeComp.scripts.forEach(function(script) { diff --git a/src/StockMarket.js b/src/StockMarket.js index 78d21dc67..23b2fed0a 100755 --- a/src/StockMarket.js +++ b/src/StockMarket.js @@ -547,7 +547,7 @@ function sellShort(stock, shares, workerScript=null) { } function processStockPrices(numCycles=1) { - if (isNaN(StockMarket.storedCycles)) { StockMarket.storedCycles = 0; } + if (StockMarket.storedCycles == null || isNaN(StockMarket.storedCycles)) { StockMarket.storedCycles = 0; } StockMarket.storedCycles += numCycles; // Stock Prices updated every 6 seconds on average. But if there are stored @@ -572,10 +572,10 @@ function processStockPrices(numCycles=1) { var chc = 50; if (stock.b) { - chc = (chc + stock.otlkMag)/100; + chc = (chc + stock.otlkMag) / 100; if (isNaN(chc)) {chc = 0.5;} } else { - chc = (chc - stock.otlkMag)/100; + chc = (chc - stock.otlkMag) / 100; if (isNaN(chc)) {chc = 0.5;} } if (stock.price >= stock.cap) { @@ -743,6 +743,7 @@ function displayStockMarketContent() { "Buy 4S Market Data Access - " + numeralWrapper.format(CONSTANTS.MarketData4SCost, '($0.000a)'), "4S Market Data - Purchased"); marketDataButton.addEventListener("click", function() { + if (Player.money.lt(CONSTANTS.MarketData4SCost)) { return false; } Player.has4SData = true; Player.loseMoney(CONSTANTS.MarketData4SCost); displayStockMarketContent(); @@ -782,6 +783,7 @@ function displayStockMarketContent() { "4S Market Data TIX API - Purchased"); if (Player.hasTixApiAccess) { marketDataTixButton.addEventListener("click", function() { + if (Player.money.lt(CONSTANTS.MarketDataTixApi4SCost)) { return false; } Player.has4SDataTixApi = true; Player.loseMoney(CONSTANTS.MarketDataTixApi4SCost); displayStockMarketContent(); @@ -893,6 +895,7 @@ function displayStockMarketContent() { //Switch to Portfolio Mode Button if (modeBtn) { + stockMarketPortfolioMode = false; modeBtn.innerHTML = "Switch to 'Portfolio' Mode" + "Displays only the stocks for which you have shares or orders"; modeBtn.addEventListener("click", switchToPortfolioMode); diff --git a/src/data/codingcontracttypes.ts b/src/data/codingcontracttypes.ts index 8c44f9924..18e8fe455 100644 --- a/src/data/codingcontracttypes.ts +++ b/src/data/codingcontracttypes.ts @@ -105,7 +105,7 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [ " 2 + 2\n", " 2 + 1 + 1\n", " 1 + 1 + 1 + 1\n\n", - `How many different ways can ${n} be written as a sum of at least`, + `How many different ways can the number ${n} be written as a sum of at least`, "two positive integers?"].join(" "); }, difficulty: 1.5, @@ -387,8 +387,8 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [ }, { desc: (data: number[]) => { - return ["You are given the following array of stock prices where the i-th element", - "represents the stock price on day i:\n\n", + return ["You are given the following array of stock prices (which are numbers)", + "where the i-th element represents the stock price on day i:\n\n", `${data}\n\n`, "Determine the maximum possible profit you can earn using at most", "one transaction (i.e. you can only buy and sell the stock once). If no profit can be made", @@ -421,8 +421,8 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [ }, { desc: (data: number[]) => { - return ["You are given the following array of stock prices where the i-th element", - "represents the stock price on day i:\n\n", + return ["You are given the following array of stock prices (which are numbers)", + "where the i-th element represents the stock price on day i:\n\n", `${data}\n\n`, "Determine the maximum possible profit you can earn using as many", "transactions as you'd like. A transaction is defined as buying", @@ -455,8 +455,8 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [ }, { desc: (data: number[]) => { - return ["You are given the following array of stock prices where the i-th element", - "represents the stock price on day i:\n\n", + return ["You are given the following array of stock prices (which are numbers)", + "where the i-th element represents the stock price on day i:\n\n", `${data}\n\n`, "Determine the maximum possible profit you can earn using at most", "two transactions. A transaction is defined as buying", diff --git a/src/engine.js b/src/engine.js index ec2e9c406..96832f04d 100644 --- a/src/engine.js +++ b/src/engine.js @@ -79,6 +79,7 @@ import 'normalize.css'; import "../css/styles.scss"; import "../css/buttons.scss"; import "../css/mainmenu.scss"; +import "../css/characteroverview.scss"; import "../css/terminal.scss"; import "../css/menupages.scss"; import "../css/workinprogress.scss"; @@ -173,6 +174,7 @@ const Engine = { worldMainMenuButton: null, travelMainMenuButton: null, jobMainMenuButton: null, + stockmarketMainMenuButton: null, createProgramMainMenuButton: null, factionsMainMenuButton: null, augmentationsMainMenuButton: null, @@ -1187,6 +1189,7 @@ const Engine = { var city = document.getElementById("city-tab"); var travel = document.getElementById("travel-tab"); var job = document.getElementById("job-tab"); + var stockmarket = document.getElementById("stock-market-tab"); var bladeburner = document.getElementById("bladeburner-tab"); var corp = document.getElementById("corporation-tab"); var gang = document.getElementById("gang-tab"); @@ -1243,6 +1246,11 @@ const Engine = { //Passive faction rep gain offline processPassiveFactionRepGain(numCyclesOffline); + // Stock Market offline progress + if (Player.hasWseAccount) { + processStockPrices(numCyclesOffline); + } + //Gang progress for BitNode 2 if (Player.bitNodeN != null && Player.bitNodeN === 2 && Player.inGang()) { Player.gang.process(numCyclesOffline, Player); @@ -1275,12 +1283,14 @@ const Engine = { else {factions.style.display = "none";} if (Player.firstAugPurchased) {visibleMenuTabs.push(augmentations);} else {augmentations.style.display = "none";} - if (Player.firstJobRecvd) {visibleMenuTabs.push(job);} + if (Player.companyPosition !== "") {visibleMenuTabs.push(job);} else {job.style.display = "none";} if (Player.firstTimeTraveled) {visibleMenuTabs.push(travel);} else {travel.style.display = "none";} if (Player.firstProgramAvailable) {visibleMenuTabs.push(createProgram);} else {createProgram.style.display = "none";} + if (Player.hasWseAccount) {visibleMenuTabs.push(stockmarket);} + else {stockmarket.style.display = "none";} if(Player.bladeburner instanceof Bladeburner) {visibleMenuTabs.push(bladeburner);} else {bladeburner.style.display = "none";} if(Player.corporation instanceof Corporation) {visibleMenuTabs.push(corp);} @@ -1323,6 +1333,7 @@ const Engine = { factions.style.display = "none"; augmentations.style.display = "none"; job.style.display = "none"; + stockmarket.style.display = "none"; travel.style.display = "none"; createProgram.style.display = "none"; bladeburner.style.display = "none"; @@ -1539,28 +1550,38 @@ const Engine = { } worldHdr.onclick = function() { - var city = document.getElementById("city-tab"); - var cityLink = document.getElementById("city-menu-link"); - var travel = document.getElementById("travel-tab"); - var travelLink = document.getElementById("travel-menu-link"); - var job = document.getElementById("job-tab"); - var jobLink = document.getElementById("job-menu-link"); - var bladeburner = document.getElementById("bladeburner-tab"); - var bladeburnerLink = document.getElementById("bladeburner-menu-link"); - var corporation = document.getElementById("corporation-tab"); - var corporationLink = document.getElementById("corporation-menu-link"); - var gang = document.getElementById("gang-tab"); - var gangLink = document.getElementById("gang-menu-link"); + var city = document.getElementById("city-tab"); + var cityLink = document.getElementById("city-menu-link"); + var travel = document.getElementById("travel-tab"); + var travelLink = document.getElementById("travel-menu-link"); + var job = document.getElementById("job-tab"); + var jobLink = document.getElementById("job-menu-link"); + var stockmarket = document.getElementById("stock-market-tab"); + var stockmarketLink = document.getElementById("stock-market-menu-link"); + var bladeburner = document.getElementById("bladeburner-tab"); + var bladeburnerLink = document.getElementById("bladeburner-menu-link"); + var corporation = document.getElementById("corporation-tab"); + var corporationLink = document.getElementById("corporation-menu-link"); + var gang = document.getElementById("gang-tab"); + var gangLink = document.getElementById("gang-menu-link"); + + // Determine whether certain links should show up + job.style.display = Player.companyPosition !== "" ? "list-item" : "none"; + stockmarket.style.display = Player.hasWseAccount ? "list-item" : "none"; + bladeburner.style.display = Player.bladeburner instanceof Bladeburner ? "list-item" : "none"; + corporation.style.display = Player.corporation instanceof Corporation ? "list-item" : "none"; + gang.style.display = Player.inGang() ? "list-item" : "none"; + this.classList.toggle("opened"); if (city.style.maxHeight) { Engine.toggleMainMenuHeader(false, - [city, travel, job, bladeburner, corporation, gang], - [cityLink, travelLink, jobLink, bladeburnerLink, corporationLink, gangLink] + [city, travel, job, stockmarket, bladeburner, corporation, gang], + [cityLink, travelLink, jobLink, stockmarketLink, bladeburnerLink, corporationLink, gangLink] ); } else { Engine.toggleMainMenuHeader(true, - [city, travel, job, bladeburner, corporation, gang], - [cityLink, travelLink, jobLink, bladeburnerLink, corporationLink, gangLink] + [city, travel, job, stockmarket, bladeburner, corporation, gang], + [cityLink, travelLink, jobLink, stockmarketLink, bladeburnerLink, corporationLink, gangLink] ); } } @@ -1633,6 +1654,12 @@ const Engine = { return false; }); + Engine.Clickables.stockmarketMainMenuButton = clearEventListeners("stock-market-menu-link"); + Engine.Clickables.stockmarketMainMenuButton.addEventListener("click", function() { + Engine.loadStockMarketContent(); + return false; + }); + Engine.Clickables.createProgramMainMenuButton = clearEventListeners("create-program-menu-link"); Engine.Clickables.createProgramMainMenuButton.addEventListener("click", function() { diff --git a/src/index.html b/src/index.html index ffc3db652..8a35211e1 100644 --- a/src/index.html +++ b/src/index.html @@ -81,6 +81,9 @@ if (htmlWebpackPlugin.options.googleAnalytics.trackingId) { %> + @@ -789,8 +792,8 @@ if (htmlWebpackPlugin.options.googleAnalytics.trackingId) { %>
- - + +