diff --git a/css/companymanagement.css b/css/companymanagement.css index e14856bea..5c0d82d15 100644 --- a/css/companymanagement.css +++ b/css/companymanagement.css @@ -121,11 +121,12 @@ } .cmpy-mgmt-upgrade-div { + display:inline-block; border:1px solid white; margin:4px; padding:12px; border-radius:25px; - width:95%; + width:45%; color:var(--my-font-color); } diff --git a/dist/bundle.js b/dist/bundle.js index f955ed01a..33633341a 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -469,7 +469,7 @@ PlayerObject.prototype.prestigeSourceFile = function() { //BitNode 8: Ghost of Wall Street if (this.bitNodeN === 8) {this.money = new __WEBPACK_IMPORTED_MODULE_15__utils_decimal_js___default.a(100000000);} - if (this.bitNodeN === 8 || __WEBPACK_IMPORTED_MODULE_11__NetscriptFunctions_js__["d" /* hasWallStreetSF */]) { + if (this.bitNodeN === 8 || __WEBPACK_IMPORTED_MODULE_11__NetscriptFunctions_js__["e" /* hasWallStreetSF */]) { this.hasWseAccount = true; this.hasTixApiAccess = true; } @@ -1857,6 +1857,7 @@ PlayerObject.prototype.getNextCompanyPosition = function(company, entryPosType) //Employed at this company, so just return the next position if it exists. if ((this.companyPosition.isSoftwareJob() && entryPosType.isSoftwareJob()) || (this.companyPosition.isITJob() && entryPosType.isITJob()) || + (this.companyPosition.isBusinessJob() && entryPosType.isBusinessJob()) || (this.companyPosition.isSecurityEngineerJob() && entryPosType.isSecurityEngineerJob()) || (this.companyPosition.isNetworkEngineerJob() && entryPosType.isNetworkEngineerJob()) || (this.companyPosition.isSecurityJob() && entryPosType.isSecurityJob()) || @@ -2597,10 +2598,13 @@ function createElement(type, params) { if (params.display) {el.style.display = params.display;} if (params.visibility) {el.style.visibility = params.visibility;} if (params.margin) {el.style.margin = params.margin;} + if (params.marginLeft) {el.style.marginLeft = params.marginLeft;} if (params.padding) {el.style.padding = params.padding;} if (params.color) {el.style.color = params.color;} if (params.border) {el.style.border = params.border;} if (params.float) {el.style.cssFloat = params.float;} + if (params.fontSize) {el.style.fontSize = params.fontSize;} + if (params.width) {el.style.width = params.width;} if (params.backgroundColor) { el.style.backgroundColor = params.backgroundColor } @@ -2721,7 +2725,7 @@ function powerOfTwo(n) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CONSTANTS; }); let CONSTANTS = { - Version: "0.34.0", + Version: "0.34.1", //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 @@ -3840,29 +3844,19 @@ let CONSTANTS = { LatestUpdate: "v0.34.1
" + - "-Added new 'secret' Terminal command. Try: run musicplayer
" + - - "v0.34.0
" + - "-Added clear() and exit() Netscript functions
" + - "-When starting out or prestiging, you will now receive a 'Hacking Starter Guide'. It provides tips/pointers for new players
" + - "-Doubled the amount of RAM on low-level servers (up to required hacking level 150)
" + - "-Slightly increased experience gain from Infiltration
" + - "-buyStock(), sellStock(), shortStock(), and sellShort() Netscript function now return the stock price at which the transaction occurred, rather than a boolean. " + - "If the function fails for some reason, 0 will be returned.
" + - "-Hacking Mission Changes:
" + - "---You can now select multiple Nodes of the same type by double clicking. This allows you to set the " + - "action of all of selected nodes at once (e.g. set all Transfer Nodes to Fortify). Creating connections " + - "does not work with this multi-select functionality yet
" + - "---Shield and Firewall Nodes can now fortify
" + - "---The effects of Fortifying are now ~5% lower
" + - "---Conquering a Spam Node now increases your time limit by 25 seconds instead of 15
" + - "---Damage dealt by Attacking was slightly reduced
" + - "---The effect of Scanning was slightly reduced
" + - "---Enemy CPU Core Nodes start with slightly more attack. Misc Nodes start with slightly less defense
" + - "-Corporation Management changes:
" + - "---Added several upgrades that unlock new features
" + - "---Implemented Exporting mechanic
" + - "---Fixed many bugs
" + "-Updates to Corporation Management:
" + + "---Added a number of upgrades to various aspects of your Corporation
" + + "---Rebalanced the properties of Materials and the formula for determining the valuation of the Corporation
" + + "---Fixed a number of bugs
" + + "-'Stats' page now shows information about current BitNode
" + + "-You should now be able to create Corporations in other BitNodes if you have Source-File 3
" + + "-Added a new create-able program called b1t_flum3.exe. This program can be used to reset and switch BitNodes
" + + "-Added an option to adjust autosave interval
" + + "-Line feeds, newlines, and tabs will now work with the tprint() Netscript function
" + + "-Bug fix: 'check' Terminal command was broken
" + + "-Bug fix: 'theme' Terminal command was broken when manually specifying hex codes
" + + "-Bug fix: Incorrect promotion requirement for 'Business'-type jobs
" + + "-Bug fix: Settings input bars were incorrectly formatted when loading game
" } @@ -4543,74 +4537,88 @@ let Engine = { /* Display character info */ displayCharacterInfo: function() { + Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["k" /* removeChildrenFromElement */])(Engine.Display.characterInfo); + var companyPosition = ""; if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].companyPosition != "") { companyPosition = __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].companyPosition.positionName; } - var bnText = ""; - if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].sourceFiles.length !== 0) { - bnText = "
Current BitNode: " + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN; - } - var intText = ""; if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].intelligence > 0) { intText = 'Intelligence: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].intelligence).toLocaleString() + "


"; } - Engine.Display.characterInfo.innerHTML = - ('General

' + - 'Current City: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].city + '

' + - 'Employer: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].companyName + '
' + - 'Job Title: ' + companyPosition + '

' + - 'Money: $' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].money.toNumber(), 2)+ '


' + - 'Stats

' + - 'Hacking Level: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_skill).toLocaleString() + - " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_exp).format('(0.000a)') + ' experience)
' + - 'Strength: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength).toLocaleString() + - " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength_exp).format('(0.000a)') + ' experience)
' + - 'Defense: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense).toLocaleString() + - " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense_exp).format('(0.000a)')+ ' experience)
' + - 'Dexterity: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity).toLocaleString() + - " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity_exp).format('(0.000a)') + ' experience)
' + - 'Agility: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility).toLocaleString() + - " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility_exp).format('(0.000a)') + ' experience)
' + - 'Charisma: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma).toLocaleString() + - " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma_exp).format('(0.000a)') + ' experience)
' + - intText + - 'Multipliers

' + - 'Hacking Chance multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_chance_mult * 100, 2) + '%
' + - 'Hacking Speed multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_speed_mult * 100, 2) + '%
' + - 'Hacking Money multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_money_mult * 100, 2) + '%
' + - 'Hacking Growth multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_grow_mult * 100, 2) + '%

' + - 'Hacking Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_mult * 100, 2) + '%
' + - 'Hacking Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_exp_mult * 100, 2) + '%

' + - 'Strength Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength_mult * 100, 2) + '%
' + - 'Strength Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength_exp_mult * 100, 2) + '%

' + - 'Defense Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense_mult * 100, 2) + '%
' + - 'Defense Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense_exp_mult * 100, 2) + '%

' + - 'Dexterity Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity_mult * 100, 2) + '%
' + - 'Dexterity Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity_exp_mult * 100, 2) + '%

' + - 'Agility Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility_mult * 100, 2) + '%
' + - 'Agility Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility_exp_mult * 100, 2) + '%

' + - 'Charisma Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma_mult * 100, 2) + '%
' + - 'Charisma Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma_exp_mult * 100, 2) + '%

' + - 'Hacknet Node production multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_money_mult * 100, 2) + '%
' + - 'Hacknet Node purchase cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_purchase_cost_mult * 100, 2) + '%
' + - 'Hacknet Node RAM upgrade cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_ram_cost_mult * 100, 2) + '%
' + - 'Hacknet Node Core purchase cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_core_cost_mult * 100, 2) + '%
' + - 'Hacknet Node level upgrade cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_level_cost_mult * 100, 2) + '%

' + - 'Company reputation gain multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].company_rep_mult * 100, 2) + '%
' + - 'Faction reputation gain multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].faction_rep_mult * 100, 2) + '%
' + - 'Salary multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].work_money_mult * 100, 2) + '%
' + - 'Crime success multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].crime_success_mult * 100, 2) + '%
' + - 'Crime money multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].crime_money_mult * 100, 2) + '%


' + - 'Misc

' + - 'Servers owned: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].purchasedServers.length + '
' + - 'Hacknet Nodes owned: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknetNodes.length + '
' + - 'Augmentations installed: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].augmentations.length + '
' + - 'Time played since last Augmentation: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["b" /* convertTimeMsToTimeElapsedString */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].playtimeSinceLastAug) + '
' + - 'Time played: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["b" /* convertTimeMsToTimeElapsedString */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].totalPlaytime) + - bnText + '


').replace( / /g, " " ); + + Engine.Display.characterInfo.appendChild(Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("pre", { + innerHTML: + 'General

' + + 'Current City: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].city + '

' + + 'Employer: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].companyName + '
' + + 'Job Title: ' + companyPosition + '

' + + 'Money: $' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].money.toNumber(), 2)+ '


' + + 'Stats

' + + 'Hacking Level: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_skill).toLocaleString() + + " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_exp).format('(0.000a)') + ' experience)
' + + 'Strength: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength).toLocaleString() + + " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength_exp).format('(0.000a)') + ' experience)
' + + 'Defense: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense).toLocaleString() + + " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense_exp).format('(0.000a)')+ ' experience)
' + + 'Dexterity: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity).toLocaleString() + + " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity_exp).format('(0.000a)') + ' experience)
' + + 'Agility: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility).toLocaleString() + + " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility_exp).format('(0.000a)') + ' experience)
' + + 'Charisma: ' + (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma).toLocaleString() + + " (" + __WEBPACK_IMPORTED_MODULE_3__utils_numeral_min_js___default()(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma_exp).format('(0.000a)') + ' experience)
' + + intText + + 'Multipliers

' + + 'Hacking Chance multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_chance_mult * 100, 2) + '%
' + + 'Hacking Speed multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_speed_mult * 100, 2) + '%
' + + 'Hacking Money multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_money_mult * 100, 2) + '%
' + + 'Hacking Growth multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_grow_mult * 100, 2) + '%

' + + 'Hacking Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_mult * 100, 2) + '%
' + + 'Hacking Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacking_exp_mult * 100, 2) + '%

' + + 'Strength Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength_mult * 100, 2) + '%
' + + 'Strength Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].strength_exp_mult * 100, 2) + '%

' + + 'Defense Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense_mult * 100, 2) + '%
' + + 'Defense Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].defense_exp_mult * 100, 2) + '%

' + + 'Dexterity Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity_mult * 100, 2) + '%
' + + 'Dexterity Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].dexterity_exp_mult * 100, 2) + '%

' + + 'Agility Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility_mult * 100, 2) + '%
' + + 'Agility Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].agility_exp_mult * 100, 2) + '%

' + + 'Charisma Level multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma_mult * 100, 2) + '%
' + + 'Charisma Experience multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].charisma_exp_mult * 100, 2) + '%

' + + 'Hacknet Node production multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_money_mult * 100, 2) + '%
' + + 'Hacknet Node purchase cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_purchase_cost_mult * 100, 2) + '%
' + + 'Hacknet Node RAM upgrade cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_ram_cost_mult * 100, 2) + '%
' + + 'Hacknet Node Core purchase cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_core_cost_mult * 100, 2) + '%
' + + 'Hacknet Node level upgrade cost multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknet_node_level_cost_mult * 100, 2) + '%

' + + 'Company reputation gain multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].company_rep_mult * 100, 2) + '%
' + + 'Faction reputation gain multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].faction_rep_mult * 100, 2) + '%
' + + 'Salary multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].work_money_mult * 100, 2) + '%
' + + 'Crime success multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].crime_success_mult * 100, 2) + '%
' + + 'Crime money multiplier: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["c" /* formatNumber */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].crime_money_mult * 100, 2) + '%


' + + 'Misc

' + + 'Servers owned: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].purchasedServers.length + '
' + + 'Hacknet Nodes owned: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].hacknetNodes.length + '
' + + 'Augmentations installed: ' + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].augmentations.length + '
' + + 'Time played since last Augmentation: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["b" /* convertTimeMsToTimeElapsedString */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].playtimeSinceLastAug) + '
' + + 'Time played: ' + Object(__WEBPACK_IMPORTED_MODULE_4__utils_StringHelperFunctions_js__["b" /* convertTimeMsToTimeElapsedString */])(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].totalPlaytime), + })); + + if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].sourceFiles.length !== 0) { + var index = "BitNode" + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN; + + Engine.Display.characterInfo.appendChild(Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("p", { + width:"60%", + innerHTML: + "
Current BitNode: " + __WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN + " (" + __WEBPACK_IMPORTED_MODULE_8__BitNode_js__["b" /* BitNodes */][index].name + ")

", + })); + + Engine.Display.characterInfo.appendChild(Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("p", { + width:"60%", fontSize: "13px", marginLeft:"4%", + innerHTML:__WEBPACK_IMPORTED_MODULE_8__BitNode_js__["b" /* BitNodes */][index].info, + })) + } }, /* Display locations in the world*/ @@ -4641,8 +4649,8 @@ let Engine = { case __WEBPACK_IMPORTED_MODULE_14__Location_js__["a" /* Locations */].Sector12: Engine.sector12LocationsList.style.display = "inline"; - //City hall only in BitNode-3 - if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN === 3) { + //City hall only in BitNode-3/with Source-File 3 + if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN === 3 || __WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["c" /* hasCorporationSF */]) { document.getElementById("sector12-cityhall-li").style.display = "block"; } else { document.getElementById("sector12-cityhall-li").style.display = "none"; @@ -4990,7 +4998,14 @@ let Engine = { checkCounters: function() { if (Engine.Counters.autoSaveCounter <= 0) { __WEBPACK_IMPORTED_MODULE_26__SaveObject_js__["b" /* saveObject */].saveGame(indexedDb); - Engine.Counters.autoSaveCounter = 300; + if (__WEBPACK_IMPORTED_MODULE_29__Settings_js__["a" /* Settings */].AutosaveInterval == null) { + __WEBPACK_IMPORTED_MODULE_29__Settings_js__["a" /* Settings */].AutosaveInterval = 60; + } + if (__WEBPACK_IMPORTED_MODULE_29__Settings_js__["a" /* Settings */].AutosaveInterval === 0) { + Engine.Counters.autoSaveCounter = Infinity; + } else { + Engine.Counters.autoSaveCounter = __WEBPACK_IMPORTED_MODULE_29__Settings_js__["a" /* Settings */].AutosaveInterval * 5; + } } if (Engine.Counters.updateSkillLevelsCounter <= 0) { @@ -5238,7 +5253,7 @@ let Engine = { Object(__WEBPACK_IMPORTED_MODULE_32__StockMarket_js__["i" /* initSymbolToStockMap */])(); } Object(__WEBPACK_IMPORTED_MODULE_18__Literature_js__["a" /* initLiterature */])(); - Object(__WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["e" /* initSingularitySFFlags */])(); + Object(__WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["f" /* initSingularitySFFlags */])(); console.log(__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].intelligence_exp); @@ -5323,7 +5338,7 @@ let Engine = { Object(__WEBPACK_IMPORTED_MODULE_19__Message_js__["d" /* initMessages */])(); Object(__WEBPACK_IMPORTED_MODULE_32__StockMarket_js__["h" /* initStockSymbols */])(); Object(__WEBPACK_IMPORTED_MODULE_18__Literature_js__["a" /* initLiterature */])(); - Object(__WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["e" /* initSingularitySFFlags */])(); + Object(__WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["f" /* initSingularitySFFlags */])(); //Open main menu accordions for new game //Main menu accordions @@ -5422,7 +5437,7 @@ let Engine = { Engine.Display.missionContent.style.display = "none"; //Character info - Engine.Display.characterInfo = document.getElementById("character-info"); + Engine.Display.characterInfo = document.getElementById("character-content"); //Location lists Engine.aevumLocationsList = document.getElementById("aevum-locations-list"); @@ -5468,7 +5483,7 @@ let Engine = { Engine.Clickables.tutorialNetscriptButton = document.getElementById("tutorial-netscript-link"); Engine.Clickables.tutorialNetscriptButton.addEventListener("click", function() { - if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN === 4 || __WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["c" /* hasSingularitySF */]) { + if (__WEBPACK_IMPORTED_MODULE_23__Player_js__["a" /* Player */].bitNodeN === 4 || __WEBPACK_IMPORTED_MODULE_21__NetscriptFunctions_js__["d" /* hasSingularitySF */]) { Engine.displayTutorialPage(__WEBPACK_IMPORTED_MODULE_11__Constants_js__["a" /* CONSTANTS */].TutorialNetscriptText + __WEBPACK_IMPORTED_MODULE_11__Constants_js__["a" /* CONSTANTS */].TutorialSingularityFunctionsText); } else { Engine.displayTutorialPage(__WEBPACK_IMPORTED_MODULE_11__Constants_js__["a" /* CONSTANTS */].TutorialNetscriptText); @@ -6826,7 +6841,7 @@ function initBitNodes() { "by 1's and 0's. They were wrong.

" + "In this BitNode:

" + "The base security level of servers is doubled
" + - "The starting money on servers is halved, but the maximum money is doubled
" + + "The starting money on servers is halved, but the maximum money remains the same
" + "Most methods of earning money now give significantly less
" + "Infiltration gives 50% more reputation and money
" + "Augmentations are more expensive
" + @@ -20966,6 +20981,8 @@ function yesNoTxtInpBoxCreate(txt) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initCreateProgramButtons; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Player_js__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__ = __webpack_require__(2); + @@ -20982,22 +20999,12 @@ let Programs = { ServerProfiler: "ServerProfiler.exe", AutoLink: "AutoLink.exe", Flight: "fl1ght.exe", + BitFlume: "b1t_flum3.exe" }; -//TODO Right now the times needed to complete work are hard-coded... -//maybe later make this dependent on hacking level or something +var nukeALink, bruteSshALink, ftpCrackALink, relaySmtpALink, httpWormALink, sqlInjectALink, + deepscanv1ALink, deepscanv2ALink, servProfilerALink, autolinkALink, bitFlumeALink; function displayCreateProgramContent() { - var nukeALink = document.getElementById("create-program-nuke"); - var bruteSshALink = document.getElementById("create-program-brutessh"); - var ftpCrackALink = document.getElementById("create-program-ftpcrack"); - var relaySmtpALink = document.getElementById("create-program-relaysmtp"); - var httpWormALink = document.getElementById("create-program-httpworm"); - var sqlInjectALink = document.getElementById("create-program-sqlinject"); - var deepscanv1ALink = document.getElementById("create-program-deepscanv1"); - var deepscanv2ALink = document.getElementById("create-program-deepscanv2"); - var servProfilerALink = document.getElementById("create-program-serverprofiler"); - var autolinkALink = document.getElementById("create-program-autolink"); - nukeALink.style.display = "none"; bruteSshALink.style.display = "none"; ftpCrackALink.style.display = "none"; @@ -21008,6 +21015,7 @@ function displayCreateProgramContent() { deepscanv2ALink.style.display = "none"; servProfilerALink.style.display = "none"; autolinkALink.style.display = "none"; + bitFlumeALink.style.display = "none"; //NUKE.exe (in case you delete it lol) if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.NukeProgram) == -1) { @@ -21053,6 +21061,10 @@ function displayCreateProgramContent() { if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.AutoLink) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 25) { autolinkALink.style.display = "inline-block"; } + //Bit Flume + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.BitFlume) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].sourceFiles.length > 0 && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 5) { + bitFlumeALink.style.display = "inline-block"; + } } //Returns the number of programs that are currently available to be created @@ -21102,6 +21114,10 @@ function getNumAvailableCreateProgram() { if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.AutoLink) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 25) { ++count; } + //Bit Flume + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.BitFlume) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].sourceFiles.length > 0 && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 5) { + ++count; + } if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].firstProgramAvailable === false && count > 0) { __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].firstProgramAvailable = true; document.getElementById("create-program-tab").style.display = "list-item"; @@ -21112,16 +21128,72 @@ function getNumAvailableCreateProgram() { } function initCreateProgramButtons() { - var nukeALink = document.getElementById("create-program-nuke"); - var bruteSshALink = document.getElementById("create-program-brutessh"); - var ftpCrackALink = document.getElementById("create-program-ftpcrack"); - var relaySmtpALink = document.getElementById("create-program-relaysmtp"); - var httpWormALink = document.getElementById("create-program-httpworm"); - var sqlInjectALink = document.getElementById("create-program-sqlinject"); - var deepscanv1ALink = document.getElementById("create-program-deepscanv1"); - var deepscanv2ALink = document.getElementById("create-program-deepscanv2"); - var servProfilerALink = document.getElementById("create-program-serverprofiler"); - var autolinkALink = document.getElementById("create-program-autolink"); + var createProgramList = document.getElementById("create-program-list"); + nukeALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-nuke", innerText:Programs.NukeProgram, + tooltip:"This virus is used to gain root access to a machine if enough ports are opened.", + }); + createProgramList.appendChild(nukeALink); + + bruteSshALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-brutessh", innerText:Programs.BruteSSHProgram, + tooltip:"This program executes a brute force attack that opens SSH ports" + }); + createProgramList.appendChild(bruteSshALink); + + ftpCrackALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-ftpcrack", innerText:Programs.FTPCrackProgram, + tooltip:"This program cracks open FTP ports" + }); + createProgramList.appendChild(ftpCrackALink); + + relaySmtpALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-relaysmtp", innerText:Programs.RelaySMTPProgram, + tooltip:"This program opens SMTP ports by redirecting data" + }) ; + createProgramList.appendChild(relaySmtpALink); + + httpWormALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-httpworm", innerText:Programs.HTTPWormProgram, + tooltip:"This virus opens up HTTP ports" + }); + createProgramList.appendChild(httpWormALink); + + sqlInjectALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-sqlinject", innerText:Programs.SQLInjectProgram, + tooltip:"This virus opens SQL ports" + }); + createProgramList.appendChild(sqlInjectALink); + + deepscanv1ALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-deepscanv1", innerText:Programs.DeepscanV1, + tooltip:"This program allows you to use the scan-analyze command with a depth up to 5" + }); + createProgramList.appendChild(deepscanv1ALink); + + deepscanv2ALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-deepscanv2", innerText:Programs.DeepscanV2, + tooltip:"This program allows you to use the scan-analyze command with a depth up to 10" + }); + createProgramList.appendChild(deepscanv2ALink); + + servProfilerALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-serverprofiler", innerText:Programs.ServerProfiler, + tooltip:"This program is used to display hacking and Netscript-related information about servers" + }); + createProgramList.appendChild(servProfilerALink); + + bitFlumeALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-bitflume", innerText:Programs.BitFlume, + tooltip:"This program creates a portal to the BitNode Nexus (allows you to restart and switch BitNodes)" + }); + createProgramList.appendChild(bitFlumeALink); + + autolinkALink = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["f" /* createElement */])("a", { + class:"a-link-button", id:"create-program-autolink", innerText:"AutoLink.exe", + tooltip:"This program allows you to directly connect to other servers through the 'scan-analyze' command" + }); + createProgramList.appendChild(autolinkALink); nukeALink.addEventListener("click", function() { __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.NukeProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerFiveMinutes, 1); @@ -21163,6 +21235,10 @@ function initCreateProgramButtons() { __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.AutoLink, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerQuarterHour, 25); return false; }); + bitFlumeALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.BitFlume, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerFiveMinutes / 5, 5); + return false; + }); } @@ -21177,6 +21253,9 @@ function initCreateProgramButtons() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return setSettingsLabels; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadSettings; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__engine_js__ = __webpack_require__(5); + + /* Settings.js */ let Settings = { CodeInstructionRunTime: 50, @@ -21184,6 +21263,7 @@ let Settings = { MaxPortCapacity: 50, SuppressMessages: false, SuppressFactionInvites: false, + AutosaveInterval: 60, } function loadSettings(saveString) { @@ -21196,6 +21276,7 @@ function initSettings() { Settings.MaxPortCapacity = 50; Settings.SuppressMessages = false; Settings.SuppressFactionInvites = false; + Settings.AutosaveInterval = 60; } function setSettingsLabels() { @@ -21204,6 +21285,7 @@ function setSettingsLabels() { var nsPortLimit = document.getElementById("settingsNSPortRangeValLabel"); var suppressMsgs = document.getElementById("settingsSuppressMessages"); var suppressFactionInv = document.getElementById("settingsSuppressFactionInvites") + var autosaveInterval = document.getElementById("settingsAutosaveIntervalValLabel"); //Initialize values on labels nsExecTime.innerHTML = Settings.CodeInstructionRunTime + "ms"; @@ -21211,23 +21293,43 @@ function setSettingsLabels() { nsPortLimit.innerHTML = Settings.MaxPortCapacity; suppressMsgs.checked = Settings.SuppressMessages; suppressFactionInv.checked = Settings.SuppressFactionInvites; + autosaveInterval.innerHTML = Settings.AutosaveInterval; //Set handlers for when input changes - document.getElementById("settingsNSExecTimeRangeVal").oninput = function() { + var nsExecTimeInput = document.getElementById("settingsNSExecTimeRangeVal"); + var nsLogRangeInput = document.getElementById("settingsNSLogRangeVal"); + var nsPortRangeInput = document.getElementById("settingsNSPortRangeVal"); + var nsAutosaveIntervalInput = document.getElementById("settingsAutosaveIntervalVal"); + nsExecTimeInput.value = Settings.CodeInstructionRunTime; + nsLogRangeInput.value = Settings.MaxLogCapacity; + nsPortRangeInput.value = Settings.MaxPortCapacity; + nsAutosaveIntervalInput.value = Settings.AutosaveInterval; + + nsExecTimeInput.oninput = function() { nsExecTime.innerHTML = this.value + 'ms'; Settings.CodeInstructionRunTime = this.value; }; - document.getElementById("settingsNSLogRangeVal").oninput = function() { + nsLogRangeInput.oninput = function() { nsLogLimit.innerHTML = this.value; Settings.MaxLogCapacity = this.value; }; - document.getElementById("settingsNSPortRangeVal").oninput = function() { + nsPortRangeInput.oninput = function() { nsPortLimit.innerHTML = this.value; Settings.MaxPortCapacity = this.value; }; + nsAutosaveIntervalInput.oninput = function() { + autosaveInterval.innerHTML = this.value; + Settings.AutosaveInterval = Number(this.value); + if (Number(this.value) === 0) { + __WEBPACK_IMPORTED_MODULE_0__engine_js__["Engine"].Counters.autoSaveCounter = Infinity; + } else { + __WEBPACK_IMPORTED_MODULE_0__engine_js__["Engine"].Counters.autoSaveCounter = Number(this.value) * 5; + } + }; + document.getElementById("settingsSuppressMessages").onclick = function() { Settings.SuppressMessages = this.checked; }; @@ -21276,10 +21378,11 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @preserve /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Server_js__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Settings_js__ = __webpack_require__(16); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__ = __webpack_require__(1); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__ = __webpack_require__(7); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__ = __webpack_require__(2); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Terminal_js__ = __webpack_require__(23); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_HelperFunctions_js__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__ = __webpack_require__(4); var ace = __webpack_require__(54); __webpack_require__(56); __webpack_require__(57); @@ -21309,6 +21412,7 @@ __webpack_require__(68); + var keybindings = { ace: null, vim: "ace/keyboard/vim", @@ -21412,7 +21516,7 @@ function updateScriptEditorContent() { var codeCopy = code.repeat(1); var ramUsage = calculateRamUsage(codeCopy); document.getElementById("script-editor-status-text").innerText = - "RAM: " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(ramUsage, 2).toString() + "GB"; + "RAM: " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(ramUsage, 2).toString() + "GB"; } //Define key commands in script editor (ctrl o to save + close, etc.) @@ -21430,26 +21534,26 @@ function saveAndCloseScriptEditor() { var filename = document.getElementById("script-editor-filename").value; if (__WEBPACK_IMPORTED_MODULE_2__InteractiveTutorial_js__["b" /* iTutorialIsRunning */] && __WEBPACK_IMPORTED_MODULE_2__InteractiveTutorial_js__["a" /* currITutorialStep */] == __WEBPACK_IMPORTED_MODULE_2__InteractiveTutorial_js__["e" /* iTutorialSteps */].TerminalTypeScript) { if (filename != "foodnstuff") { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Leave the script name as 'foodnstuff'!"); + Object(__WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Leave the script name as 'foodnstuff'!"); return; } var editor = ace.edit('javascript-editor'); var code = editor.getValue(); code = code.replace(/\s/g, ""); if (code.indexOf("while(true){hack('foodnstuff');}") == -1) { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Please copy and paste the code from the tutorial!"); + Object(__WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Please copy and paste the code from the tutorial!"); return; } Object(__WEBPACK_IMPORTED_MODULE_2__InteractiveTutorial_js__["c" /* iTutorialNextStep */])(); } if (filename == "") { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You must specify a filename!"); + Object(__WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You must specify a filename!"); return; } if (checkValidFilename(filename) == false) { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script filename can contain only alphanumerics, hyphens, and underscores"); + Object(__WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script filename can contain only alphanumerics, hyphens, and underscores"); return; } @@ -21514,7 +21618,7 @@ Script.prototype.updateRamUsage = function() { this.ramUsage = calculateRamUsage(codeCopy); console.log("ram usage: " + this.ramUsage); if (isNaN(this.ramUsage)) { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("ERROR in calculating ram usage. This is a bug, please report to game develoepr"); + Object(__WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__["a" /* dialogBoxCreate */])("ERROR in calculating ram usage. This is a bug, please report to game develoepr"); } } @@ -21522,94 +21626,94 @@ function calculateRamUsage(codeCopy) { codeCopy = codeCopy.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm, '$1'); //Delete comments codeCopy = codeCopy.replace(/\s/g,''); //Remove all whitespace var baseRam = 1.4; - var whileCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "while("); - var forCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "for("); - var ifCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "if("); - var hackCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "hack("); - var growCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "grow("); - var weakenCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "weaken("); - var scanCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scan("); - var nukeCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "nuke("); - var brutesshCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "brutessh("); - var ftpcrackCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "ftpcrack("); - var relaysmtpCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "relaysmtp("); - var httpwormCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "httpworm("); - var sqlinjectCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "sqlinject("); - var runCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "run("); - var execCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "exec("); - var killCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "kill(") + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "killall(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "exit("); - var scpCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scp("); - var hasRootAccessCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "hasRootAccess("); - var getHostnameCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHostname(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getIp("); - var getHackingLevelCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHackingLevel("); - var getMultipliersCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHackingMultipliers(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getBitNodeMultipliers("); - var getServerCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerMoneyAvailable(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerMaxMoney(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerSecurityLevel(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerBaseSecurityLevel(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerMinSecurityLevel(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerGrowth(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerRequiredHackingLevel(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerNumPortsRequired(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerRam(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "serverExists("); - var fileExistsCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "fileExists("); - var isRunningCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "isRunning("); - var purchaseHacknetCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseHacknetNode("); - var hacknetnodesArrayCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "hacknetnodes["); - var hnUpgLevelCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, ".upgradeLevel("); - var hnUpgRamCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, ".upgradeRam()"); - var hnUpgCoreCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, ".upgradeCore()"); - var scriptGetStockCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getStockPrice(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getStockPosition("); - var scriptBuySellStockCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "buyStock(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "sellStock(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "shortStock(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "sellShort(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "placeOrder(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "cancelOrder("); - var scriptPurchaseServerCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseServer(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "deleteServer(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getPurchasedServers("); - var scriptRoundCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "round("); - var scriptWriteCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "write(") + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "clear("); - var scriptReadCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "read("); - var arbScriptCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scriptRunning(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scriptKill("); - var getScriptCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getScriptRam(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getScriptIncome(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getScriptExpGain("); - var getHackTimeCount = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHackTime(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getGrowTime(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getWeakenTime(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getTimeSinceLastAug("); - var singFn1Count = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "universityCourse(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "gymWorkout(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "travelToCity(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseTor(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseProgram(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getStats(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "isBusy("); - var singFn2Count = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "upgradeHomeRam(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getUpgradeHomeRamCost(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "workForCompany(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "applyToCompany(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getCompanyRep(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "checkFactionInvitations(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "joinFaction(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "workForFaction(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getFactionRep("); - var singFn3Count = Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "createProgram(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "commitCrime(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getCrimeChance(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getOwnedAugmentations(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getAugmentationsFromFaction(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getAugmentationCost(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseAugmentation(") + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "installAugmentations("); + var whileCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "while("); + var forCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "for("); + var ifCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "if("); + var hackCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "hack("); + var growCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "grow("); + var weakenCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "weaken("); + var scanCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scan("); + var nukeCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "nuke("); + var brutesshCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "brutessh("); + var ftpcrackCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "ftpcrack("); + var relaysmtpCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "relaysmtp("); + var httpwormCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "httpworm("); + var sqlinjectCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "sqlinject("); + var runCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "run("); + var execCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "exec("); + var killCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "kill(") + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "killall(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "exit("); + var scpCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scp("); + var hasRootAccessCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "hasRootAccess("); + var getHostnameCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHostname(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getIp("); + var getHackingLevelCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHackingLevel("); + var getMultipliersCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHackingMultipliers(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getBitNodeMultipliers("); + var getServerCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerMoneyAvailable(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerMaxMoney(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerSecurityLevel(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerBaseSecurityLevel(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerMinSecurityLevel(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerGrowth(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerRequiredHackingLevel(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerNumPortsRequired(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getServerRam(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "serverExists("); + var fileExistsCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "fileExists("); + var isRunningCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "isRunning("); + var purchaseHacknetCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseHacknetNode("); + var hacknetnodesArrayCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "hacknetnodes["); + var hnUpgLevelCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, ".upgradeLevel("); + var hnUpgRamCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, ".upgradeRam()"); + var hnUpgCoreCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, ".upgradeCore()"); + var scriptGetStockCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getStockPrice(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getStockPosition("); + var scriptBuySellStockCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "buyStock(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "sellStock(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "shortStock(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "sellShort(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "placeOrder(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "cancelOrder("); + var scriptPurchaseServerCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseServer(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "deleteServer(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getPurchasedServers("); + var scriptRoundCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "round("); + var scriptWriteCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "write(") + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "clear("); + var scriptReadCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "read("); + var arbScriptCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scriptRunning(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "scriptKill("); + var getScriptCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getScriptRam(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getScriptIncome(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getScriptExpGain("); + var getHackTimeCount = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getHackTime(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getGrowTime(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getWeakenTime(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getTimeSinceLastAug("); + var singFn1Count = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "universityCourse(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "gymWorkout(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "travelToCity(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseTor(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseProgram(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getStats(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "isBusy("); + var singFn2Count = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "upgradeHomeRam(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getUpgradeHomeRamCost(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "workForCompany(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "applyToCompany(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getCompanyRep(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "checkFactionInvitations(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "joinFaction(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "workForFaction(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getFactionRep("); + var singFn3Count = Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "createProgram(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "commitCrime(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getCrimeChance(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getOwnedAugmentations(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getAugmentationsFromFaction(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "getAugmentationCost(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "purchaseAugmentation(") + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["h" /* numOccurrences */])(codeCopy, "installAugmentations("); if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN != 4) { singFn1Count *= 10; @@ -21662,15 +21766,15 @@ function calculateRamUsage(codeCopy) { } Script.prototype.toJSON = function() { - return Object(__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["b" /* Generic_toJSON */])("Script", this); + return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["b" /* Generic_toJSON */])("Script", this); } Script.fromJSON = function(value) { - return Object(__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(Script, value.data); + return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(Script, value.data); } -__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["c" /* Reviver */].constructors.Script = Script; +__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["c" /* Reviver */].constructors.Script = Script; //Called when the game is loaded. Loads all running scripts (from all servers) //into worker scripts so that they will start running @@ -21722,7 +21826,7 @@ function scriptCalculateOfflineProduction(runningScriptObj) { console.log(runningScriptObj.filename + " called grow() on " + serv.hostname + " " + timesGrown + " times while offline"); runningScriptObj.log("Called grow() on " + serv.hostname + " " + timesGrown + " times while offline"); var growth = Object(__WEBPACK_IMPORTED_MODULE_6__Server_js__["j" /* processSingleServerGrowth */])(serv, timesGrown * 450); - runningScriptObj.log(serv.hostname + " grown by " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(growth * 100 - 100, 6) + "% from grow() calls made while offline"); + runningScriptObj.log(serv.hostname + " grown by " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(growth * 100 - 100, 6) + "% from grow() calls made while offline"); } } @@ -21793,7 +21897,7 @@ function scriptCalculateOfflineProduction(runningScriptObj) { function findRunningScript(filename, args, server) { for (var i = 0; i < server.runningScripts.length; ++i) { if (server.runningScripts[i].filename == filename && - Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["d" /* compareArrays */])(server.runningScripts[i].args, args)) { + Object(__WEBPACK_IMPORTED_MODULE_11__utils_HelperFunctions_js__["d" /* compareArrays */])(server.runningScripts[i].args, args)) { return server.runningScripts[i]; } } @@ -21837,7 +21941,7 @@ RunningScript.prototype.log = function(txt) { RunningScript.prototype.displayLog = function() { for (var i = 0; i < this.logs.length; ++i) { - post(this.logs[i]); + Object(__WEBPACK_IMPORTED_MODULE_8__Terminal_js__["b" /* post */])(this.logs[i]); } } @@ -21874,15 +21978,15 @@ RunningScript.prototype.recordWeaken = function(serverIp, n=1) { } RunningScript.prototype.toJSON = function() { - return Object(__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["b" /* Generic_toJSON */])("RunningScript", this); + return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["b" /* Generic_toJSON */])("RunningScript", this); } RunningScript.fromJSON = function(value) { - return Object(__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(RunningScript, value.data); + return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(RunningScript, value.data); } -__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["c" /* Reviver */].constructors.RunningScript = RunningScript; +__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["c" /* Reviver */].constructors.RunningScript = RunningScript; //Creates an object that creates a map/dictionary with the IP of each existing server as //a key. Initializes every key with a specified value that can either by a number or an array @@ -21914,15 +22018,15 @@ AllServersMap.prototype.printConsole = function() { } AllServersMap.prototype.toJSON = function() { - return Object(__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["b" /* Generic_toJSON */])("AllServersMap", this); + return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["b" /* Generic_toJSON */])("AllServersMap", this); } AllServersMap.fromJSON = function(value) { - return Object(__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(AllServersMap, value.data); + return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(AllServersMap, value.data); } -__WEBPACK_IMPORTED_MODULE_9__utils_JSONReviver_js__["c" /* Reviver */].constructors.AllServersMap = AllServersMap; +__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["c" /* Reviver */].constructors.AllServersMap = AllServersMap; @@ -25171,11 +25275,12 @@ function getJobRequirementText(company, pos, tooltiptext=false) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NetscriptFunctions; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return initSingularitySFFlags; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hasSingularitySF; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return initSingularitySFFlags; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasSingularitySF; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return hasBn11SF; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasWallStreetSF; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return wallStreetSFLvl; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasWallStreetSF; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hasCorporationSF; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return wallStreetSFLvl; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__ = __webpack_require__(26); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Augmentations_js__ = __webpack_require__(20); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BitNode_js__ = __webpack_require__(8); @@ -25245,12 +25350,20 @@ var sprintf = __webpack_require__(44).sprintf, -var hasSingularitySF=false, hasAISF=false, hasBn11SF=false, hasWallStreetSF=false; +var hasSingularitySF=false, //Source-File 4 + hasAISF=false, //Source-File 5 + hasBn11SF=false, + hasWallStreetSF=false, //Source-File 8 + hasCorporationSF=false; //Source-File 3 + var singularitySFLvl=1, wallStreetSFLvl=1; //Used to check and set flags for every Source File, despite the name of the function function initSingularitySFFlags() { for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_14__Player_js__["a" /* Player */].sourceFiles.length; ++i) { + if (__WEBPACK_IMPORTED_MODULE_14__Player_js__["a" /* Player */].sourceFiles[i].n === 3) { + hasCorporationSF = true; + } if (__WEBPACK_IMPORTED_MODULE_14__Player_js__["a" /* Player */].sourceFiles[i].n === 4) { hasSingularitySF = true; singularitySFLvl = __WEBPACK_IMPORTED_MODULE_14__Player_js__["a" /* Player */].sourceFiles[i].lvl; @@ -27659,7 +27772,7 @@ function NetscriptFunctions(workerScript) { //If replace is true then spaces are replaced with " " function post(input, replace=true) { if (replace) { - $("#terminal-input").before('' + input.replace( / /g, " " ) + ''); + $("#terminal-input").before('' + input.replace( / /g, " " ) + ''); } else { $("#terminal-input").before('' + input + ''); } @@ -29256,6 +29369,9 @@ let Terminal = { post("Defense: " + __WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].defense + " / 1500"); post("Dexterity: " + __WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].dexterity + " / 1500"); post("Agility: " + __WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].agility + " / 1500"); + break; + case __WEBPACK_IMPORTED_MODULE_2__CreateProgram_js__["a" /* Programs */].BitFlume: + Object(__WEBPACK_IMPORTED_MODULE_12__RedPill_js__["a" /* hackWorldDaemon */])(__WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].bitNodeN, true); break; default: post("Invalid executable. Cannot be run"); @@ -34974,7 +35090,7 @@ function iTutorialEvaluateStep() { //next step triggered by terminal commmand break; case iTutorialSteps.TerminalRunScript: - iTutorialSetText("We have 8GB of free RAM on this machine, which is enough to run our " + + iTutorialSetText("We have 16GB of free RAM on this machine, which is enough to run our " + "script. Let's run our script using 'run foodnstuff.script'."); //next step triggered by terminal commmand break; @@ -37908,7 +38024,7 @@ function createStockTicker(stock) { var longOpt = document.createElement("option"); longOpt.text = "Long"; longShortSelect.add(longOpt); - if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN === 8 || (__WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["d" /* hasWallStreetSF */] && __WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["f" /* wallStreetSFLvl */] >= 2)) { + if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN === 8 || (__WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["e" /* hasWallStreetSF */] && __WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["g" /* wallStreetSFLvl */] >= 2)) { var shortOpt = document.createElement("option"); shortOpt.text = "Short"; longShortSelect.add(shortOpt); @@ -37919,7 +38035,7 @@ function createStockTicker(stock) { var marketOpt = document.createElement("option"); marketOpt.text = "Market Order"; orderTypeSelect.add(marketOpt); - if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN === 8 || (__WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["d" /* hasWallStreetSF */] && __WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["f" /* wallStreetSFLvl */] >= 3)) { + if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN === 8 || (__WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["e" /* hasWallStreetSF */] && __WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["g" /* wallStreetSFLvl */] >= 3)) { var limitOpt = document.createElement("option"); limitOpt.text = "Limit Order"; orderTypeSelect.add(limitOpt); @@ -38208,7 +38324,7 @@ function updateStockPlayerPosition(stock) { " (Total Cost: " + __WEBPACK_IMPORTED_MODULE_9__utils_numeral_min_js___default()(totalCost).format('$0.000a') + ")" + "
Profit: " + __WEBPACK_IMPORTED_MODULE_9__utils_numeral_min_js___default()(gains).format('$0.000a') + " (" + Object(__WEBPACK_IMPORTED_MODULE_10__utils_StringHelperFunctions_js__["c" /* formatNumber */])(percentageGains*100, 2) + "%)

"; - if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN === 8 || (__WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["d" /* hasWallStreetSF */] && __WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["f" /* wallStreetSFLvl */] >= 2)) { + if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].bitNodeN === 8 || (__WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["e" /* hasWallStreetSF */] && __WEBPACK_IMPORTED_MODULE_3__NetscriptFunctions_js__["g" /* wallStreetSFLvl */] >= 2)) { stock.posTxtEl.innerHTML += "

Short Position: " + "Shares in short position will increase " + @@ -38488,68 +38604,70 @@ Material.prototype.init = function(mats={}) { case "Water": this.dmd = 75; this.dmdR = [65, 85]; this.cmp = 50; this.cmpR = [40, 60]; - this.bCost = 750; this.mv = 0.2; - this.mku = 15; + this.bCost = 1000; this.mv = 0.2; + this.mku = 12; break; case "Energy": this.dmd = 90; this.dmdR = [80, 100]; this.cmp = 80; this.cmpR = [65, 95]; - this.bCost = 1125; this.mv = 0.2; - this.mku = 15; + this.bCost = 1500; this.mv = 0.2; + this.mku = 12; break; case "Food": this.dmd = 80; this.dmdR = [70, 90]; this.cmp = 60; this.cmpR = [35, 85]; - this.bCost = 3750; this.mv = 1; - this.mku = 9; + this.bCost = 5000; this.mv = 1; + this.mku = 7.5; break; case "Plants": this.dmd = 70; this.dmdR = [20, 90]; this.cmp = 50; this.cmpR = [30, 70]; - this.bCost = 2250; this.mv = 0.6; - this.mku = 12; + this.bCost = 3000; this.mv = 0.6; + this.mku = 10; break; case "Metal": this.dmd = 80; this.dmdR = [75, 85]; this.cmp = 70; this.cmpR = [60, 80]; - this.bCost = 2000; this.mv = 1; - this.mku = 15; + this.bCost = 2650; this.mv = 1; + this.mku = 12; break; case "Hardware": this.dmd = 85; this.dmdR = [80, 90]; this.cmp = 80; this.cmpR = [65, 95]; - this.bCost = 3000; this.mv = 0.5; //Less mv bc its processed twice - this.mku = 7; + this.bCost = 4000; this.mv = 0.5; //Less mv bc its processed twice + this.mku = 5.5; break; case "Chemicals": this.dmd = 55; this.dmdR = [40, 70]; this.cmp = 60; this.cmpR = [40, 80]; - this.bCost = 5000; this.mv = 1.2; - this.mku = 8; + this.bCost = 6750; this.mv = 1.2; + this.mku = 6.5; break; case "Real Estate": this.dmd = 50; this.dmdR = [5, 100]; this.cmp = 50; this.cmpR = [25, 75]; - this.bCost = 12000; this.mv = 1.5; //Less mv bc its processed twice - this.mku = 6; + this.bCost = 16e3; this.mv = 1.5; //Less mv bc its processed twice + this.mku = 5; break; case "Drugs": this.dmd = 60; this.dmdR = [45, 75]; this.cmp = 70; this.cmpR = [40, 100]; - this.bCost = 6000; this.mv = 1.6; - this.mku = 5; + this.bCost = 8e3; this.mv = 1.6; + this.mku = 4; break; case "Robots": this.dmd = 90; this.dmdR = [80, 100]; this.cmp = 90; this.cmpR = [80, 100]; - this.bCost = 15000; this.mv = 0.5; //Less mv bc its processed twice - this.mku = 3; + this.bCost = 20e3; this.mv = 0.5; //Less mv bc its processed twice + this.mku = 2.5; break; case "AI Cores": this.dmd = 90; this.dmdR = [80, 100]; this.cmp = 90; this.cmpR = [80, 100]; - this.bCost = 20000; this.mv = 0.8; //Less mv bc its processed twice - this.mku = 2; + this.bCost = 27e3; this.mv = 0.8; //Less mv bc its processed twice + this.mku = 1.8; + break; + case "Scientific Research": break; default: console.log("Invalid material type in init(): " + this.name); @@ -38562,7 +38680,7 @@ Material.prototype.processMarket = function() { //This 1st random check determines whether competition increases or decreases //More competition = lower market price var v = (Math.random() * this.mv) / 100; - var pv = (Math.random() * this.mv) / 100; + var pv = (Math.random() * this.mv) / 300; if (Math.random() < 0.42) { this.cmp *= (1+v); if (this.cmp > this.cmpR[1]) {this.cmp = this.cmpR[1]}; @@ -38576,7 +38694,7 @@ Material.prototype.processMarket = function() { //This 2nd random check determines whether demand increases or decreases //More demand = higher market price v = (Math.random() * this.mv) / 100; - pv = (Math.random() * this.mv) / 100; + pv = (Math.random() * this.mv) / 300; if (Math.random() < 0.45) { this.dmd *= (1+v); if (this.dmd > this.dmdR[1]) {this.dmd = this.dmdR[1];} @@ -38978,7 +39096,7 @@ function Industry(params={}) { this.thisCycleRevenue = new __WEBPACK_IMPORTED_MODULE_3__utils_decimal_js___default.a(0); this.thisCycleExpenses = new __WEBPACK_IMPORTED_MODULE_3__utils_decimal_js___default.a(0); - this.state = 0; + this.state = "START"; this.init(); } @@ -39000,6 +39118,7 @@ Industry.prototype.init = function() { this.prodMats = ["Energy"]; break; case Industries.Utilities: + case "Utilities": this.reFac = 0.4; this.sciFac = 0.6; this.robFac = 0.3; @@ -39105,6 +39224,7 @@ Industry.prototype.init = function() { this.makesProducts = true; break; case Industries.Computer: + case "Computer": this.reFac = 0.2; this.sciFac = 0.65; this.robFac = 0.4; @@ -39183,6 +39303,7 @@ Industry.prototype.getProductDescriptionText = function() { return "develop new pharmaceutical drugs"; break; case Industries.Computer: + case "Computer": return "create new computer hardware and networking infrastructures"; break; case Industries.Robotics: @@ -39251,7 +39372,7 @@ Industry.prototype.process = function(marketCycles=1, state, company) { for (var officeLoc in this.offices) { if (this.offices.hasOwnProperty(officeLoc) && this.offices[officeLoc] instanceof OfficeSpace) { - employeeSalary += this.offices[officeLoc].process(marketCycles, this); + employeeSalary += this.offices[officeLoc].process(marketCycles, {industry:this, corporation:company}); } } this.thisCycleExpenses = this.thisCycleExpenses.plus(employeeSalary); @@ -39268,7 +39389,7 @@ Industry.prototype.process = function(marketCycles=1, state, company) { this.thisCycleExpenses = this.thisCycleExpenses.plus(res[1]); //Process creation, production & sale of products - res = this.processProducts(marketCycles); + res = this.processProducts(marketCycles, company); this.thisCycleRevenue = this.thisCycleRevenue.plus(res[0]); this.thisCycleExpenses = this.thisCycleExpenses.plus(res[1]); } @@ -39382,7 +39503,7 @@ Industry.prototype.processMaterials = function(marketCycles=1, company) { } else { prod = maxProd; } - prod *= (SecsPerMarketCycle * marketCycles * this.prodMult); //Convert production from per second to per market cycle + prod *= (SecsPerMarketCycle * marketCycles * this.prodMult * company.getProductionMultiplier()); //Convert production from per second to per market cycle //Calculate net change in warehouse storage making //the produced materials will cost var totalMatSize = 0; @@ -39482,7 +39603,7 @@ Industry.prototype.processMaterials = function(marketCycles=1, company) { } else { sellAmt = maxSell; } - sellAmt = (sellAmt * SecsPerMarketCycle * marketCycles); + sellAmt = (sellAmt * company.getSalesMultiplier() * SecsPerMarketCycle * marketCycles); sellAmt = Math.min(mat.qty, sellAmt); if (sellAmt < 0) { console.log("ERROR: sellAmt is negative"); @@ -39499,7 +39620,6 @@ Industry.prototype.processMaterials = function(marketCycles=1, company) { } //End processing of sale of materials break; - /* TODO Process Export of materials */ case "EXPORT": for (var matName in warehouse.materials) { if (warehouse.materials.hasOwnProperty(matName)) { @@ -39545,14 +39665,15 @@ Industry.prototype.processMaterials = function(marketCycles=1, company) { //Produce Scientific Research based on R&D employees //Scientific Research can be produced without a warehouse if (office instanceof OfficeSpace) { - this.sciResearch.qty += .01 * Math.pow(office.employeeProd[EmployeePositions.RandD], 0.5); + this.sciResearch.qty += (.01 * Math.pow(office.employeeProd[EmployeePositions.RandD], 0.5) + * company.getScientificResearchMultiplier()); } } return [revenue, expenses]; } //Process production & sale of this industry's FINISHED products (including all of their stats) -Industry.prototype.processProducts = function(marketCycles=1) { +Industry.prototype.processProducts = function(marketCycles=1, corporation) { var revenue = 0, expenses = 0; //Create products @@ -39585,7 +39706,7 @@ Industry.prototype.processProducts = function(marketCycles=1) { if (this.products.hasOwnProperty(prodName)) { var prod = this.products[prodName]; if (prod instanceof Product && prod.fin) { - revenue += this.processProduct(marketCycles, prod); + revenue += this.processProduct(marketCycles, prod, corporation); } } } @@ -39593,7 +39714,7 @@ Industry.prototype.processProducts = function(marketCycles=1) { } //Processes FINISHED products -Industry.prototype.processProduct = function(marketCycles=1, product) { +Industry.prototype.processProduct = function(marketCycles=1, product, corporation) { var totalProfit = 0; for (var i = 0; i < Cities.length; ++i) { var city = Cities[i], office = this.offices[city], warehouse = this.warehouses[city]; @@ -39617,7 +39738,7 @@ Industry.prototype.processProduct = function(marketCycles=1, product) { } else { prod = maxProd; } - prod *= (this.prodMult * SecsPerMarketCycle * marketCycles); + prod *= (this.prodMult * corporation.getProductionMultiplier() * SecsPerMarketCycle * marketCycles); //Calculate net change in warehouse storage making the Products will cost @@ -39690,7 +39811,7 @@ Industry.prototype.processProduct = function(marketCycles=1, product) { } else { sellAmt = maxSell; } - sellAmt = sellAmt * SecsPerMarketCycle * marketCycles; + sellAmt = sellAmt * corporation.getSalesMultiplier() * SecsPerMarketCycle * marketCycles; sellAmt = Math.min(product.data[city][0], sellAmt); //data[0] is qty if (sellAmt && product.sCost) { product.data[city][0] -= sellAmt; //data[0] is qty @@ -39796,29 +39917,33 @@ Employee.prototype.process = function(marketCycles=1, office) { return salary; } -Employee.prototype.calculateProductivity = function() { +Employee.prototype.calculateProductivity = function(corporation) { + var effCre = this.cre * corporation.getEmployeeCreMultiplier(), + effCha = this.cha * corporation.getEmployeeChaMultiplier(), + effInt = this.int * corporation.getEmployeeIntMultiplier(), + effEff = this.eff * corporation.getEmployeeEffMultiplier(); var prodBase = this.mor * this.hap * this.ene * 1e-6, prodMult; switch(this.pos) { //Calculate productivity based on position. This is multipled by prodBase //to get final value case EmployeePositions.Operations: - prodMult = (0.6 * this.int) + (0.1 * this.cha) + (this.exp) + - (0.5 * this.cre) + (this.eff); + prodMult = (0.6 * effInt) + (0.1 * effCha) + (this.exp) + + (0.5 * effCre) + (effEff); break; case EmployeePositions.Engineer: - prodMult = (this.int) + (0.1 * this.cha) + (1.5 * this.exp) + - (this.eff); + prodMult = (effInt) + (0.1 * effCha) + (1.5 * this.exp) + + (effEff); break; case EmployeePositions.Business: - prodMult = (0.4 * this.int) + (this.cha) + (0.5 * this.exp); + prodMult = (0.4 * effInt) + (effCha) + (0.5 * this.exp); break; case EmployeePositions.Management: - prodMult = (2 * this.cha) + (this.exp) + (0.2 * this.cre) + - (0.7 * this.eff); + prodMult = (2 * effCha) + (this.exp) + (0.2 * effCre) + + (0.7 * effEff); break; case EmployeePositions.RandD: - prodMult = (1.5 * this.int) + (0.8 * this.exp) + (this.cre) + - (0.5 * this.eff); + prodMult = (1.5 * effInt) + (0.8 * this.exp) + (effCre) + + (0.5 * effEff); break; default: console.log("Invalid employee position: " + this.pos); @@ -39838,7 +39963,11 @@ Employee.prototype.throwParty = function(money) { } //'panel' is the DOM element on which to create the UI -Employee.prototype.createUI = function(panel) { +Employee.prototype.createUI = function(panel, corporation) { + var effCre = this.cre * corporation.getEmployeeCreMultiplier(), + effCha = this.cha * corporation.getEmployeeChaMultiplier(), + effInt = this.int * corporation.getEmployeeIntMultiplier(), + effEff = this.eff * corporation.getEmployeeEffMultiplier(); panel.style.color = "white"; panel.appendChild(Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["f" /* createElement */])("p", { id:"cmpy-mgmt-employee-" + this.name + "-panel-text", @@ -39846,11 +39975,11 @@ Employee.prototype.createUI = function(panel) { "Happiness: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.hap, 3) + "
" + "Energy: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.ene, 3) + "
" + "Age: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.age, 3) + "
" + - "Intelligence: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.int, 3) + "
" + - "Charisma: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.cha, 3) + "
" + + "Intelligence: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effInt, 3) + "
" + + "Charisma: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effCha, 3) + "
" + "Experience: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.exp, 3) + "
" + - "Creativity: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.cre, 3) + "
" + - "Efficiency: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.eff, 3) + "
" + + "Creativity: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effCre, 3) + "
" + + "Efficiency: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effEff, 3) + "
" + "Salary: " + __WEBPACK_IMPORTED_MODULE_7__utils_numeral_min_js___default()(this.sal).format("$0.000a") + "/ s
", })); @@ -39879,7 +40008,11 @@ Employee.prototype.createUI = function(panel) { panel.appendChild(selector); } -Employee.prototype.updateUI = function(panel) { +Employee.prototype.updateUI = function(panel, corporation) { + var effCre = this.cre * corporation.getEmployeeCreMultiplier(), + effCha = this.cha * corporation.getEmployeeChaMultiplier(), + effInt = this.int * corporation.getEmployeeIntMultiplier(), + effEff = this.eff * corporation.getEmployeeEffMultiplier(); if (panel == null) { console.log("ERROR: Employee.updateUI() called with null panel"); return; @@ -39892,11 +40025,11 @@ Employee.prototype.updateUI = function(panel) { "Happiness: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.hap, 3) + "
" + "Energy: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.ene, 3) + "
" + "Age: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.age, 3) + "
" + - "Intelligence: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.int, 3) + "
" + - "Charisma: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.cha, 3) + "
" + + "Intelligence: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effInt, 3) + "
" + + "Charisma: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effCha, 3) + "
" + "Experience: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.exp, 3) + "
" + - "Creativity: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.cre, 3) + "
" + - "Efficiency: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.eff, 3) + "
" + + "Creativity: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effCre, 3) + "
" + + "Efficiency: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(effEff, 3) + "
" + "Salary: " + __WEBPACK_IMPORTED_MODULE_7__utils_numeral_min_js___default()(this.sal).format("$0.000a") + "/ s
"; } @@ -39939,7 +40072,8 @@ function OfficeSpace(params={}) { }; } -OfficeSpace.prototype.process = function(marketCycles=1, industry) { +OfficeSpace.prototype.process = function(marketCycles=1, parentRefs) { + var corporation = parentRefs.corporation, industry = parentRefs.industry; var perfMult=1; //Multiplier for employee morale/happiness/energy based on company performance if (industry.funds < 0 && industry.lastCycleRevenue < 0) { perfMult = Math.pow(0.99, marketCycles); @@ -39956,11 +40090,11 @@ OfficeSpace.prototype.process = function(marketCycles=1, industry) { var salary = emp.process(marketCycles, this); salaryPaid += salary; } - this.calculateEmployeeProductivity(marketCycles); + this.calculateEmployeeProductivity(marketCycles, corporation); return salaryPaid; } -OfficeSpace.prototype.calculateEmployeeProductivity = function(marketCycles=1) { +OfficeSpace.prototype.calculateEmployeeProductivity = function(marketCycles=1, corporation) { //Reset for (var name in this.employeeProd) { if (this.employeeProd.hasOwnProperty(name)) { @@ -39971,7 +40105,7 @@ OfficeSpace.prototype.calculateEmployeeProductivity = function(marketCycles=1) { var total = 0; for (var i = 0; i < this.employees.length; ++i) { var employee = this.employees[i]; - var prod = employee.calculateProductivity(); + var prod = employee.calculateProductivity(corporation); this.employeeProd[employee.pos] += prod; total += prod; } @@ -40098,6 +40232,8 @@ __WEBPACK_IMPORTED_MODULE_6__utils_JSONReviver_js__["c" /* Reviver */].construct function Warehouse(params={}) { this.loc = params.loc ? params.loc : ""; this.size = params.size ? params.size : 0; + this.level = 0; + this.sizeUsed = 0; this.materials = { @@ -40130,6 +40266,15 @@ Warehouse.prototype.updateMaterialSizeUsed = function() { } } +Warehouse.prototype.updateSize = function(corporation) { + //Backwards compatibility + if (this.level == null || this.level === 0) { + this.level = Math.round(this.size / 100); + } + + this.size = (this.level * 100) * corporation.getStorageMultiplier(); +} + Warehouse.prototype.createUI = function(parentRefs) { if (parentRefs.company == null || parentRefs.industry == null) { console.log("ERROR: Warehouse.createUI called without parentRefs.company or parentRefs.industry"); @@ -40153,7 +40298,13 @@ Warehouse.prototype.createUI = function(parentRefs) { display:"inline-block", class: company.funds.lt(upgradeCost) ? "a-link-button-inactive" : "a-link-button", clickListener:()=>{ - this.size += 100; + //Backwards compatibility + if (this.level == null || this.level === 0) { + this.level = Math.round(this.size / 100); + } + + ++this.level; + this.updateSize(company); company.funds = company.funds.minus(upgradeCost); this.createUI(parentRefs); return; @@ -40777,48 +40928,60 @@ var CorporationUnlockUpgrades = { // name, desc] var CorporationUpgrades = { //Smart factories, increases production - "0": [0, 10e9, 1.07, 0.02, + "0": [0, 4e9, 1.07, 0.02, "Smart Factories", "Advanced AI automatically optimizes the operation and productivity " + "of factories. Each level of this upgrade increases your global production by 2% (additive)."], //Smart warehouses, increases storage size - "1": [1, 20e9, 1.07, .1, + "1": [1, 4e9, 1.07, .1, "Smart Storage", "Advanced AI automatically optimizes your warehouse storage methods. " + "Each level of this upgrade increases your global warehouse storage size by 10% (additive)."], //Advertise through dreams, passive popularity/ awareness gain - "2": [2, 100e9, 1.08, .001, - "DreamSense", "Use DreamSense LCC Technologies to advertise your corporation " + + "2": [2, 999999e9, 1.08, .001, + "DreamSense", "NOT YET IMPLEMENTED! - Use DreamSense LCC Technologies to advertise your corporation " + "to consumers through their dreams. Each level of this upgrade provides a passive " + "increase in awareness of your company by 0.001 / second."], //Makes advertising more effective - "3": [3, 5e9, 1.11, 0.1, - "Wilson Analytics", "Purchase data and analysis from Wilson, a marketing research " + + "3": [3, 999999e9, 1.11, 0.1, + "Wilson Analytics", "NOT YET IMPLEMENTED - Purchase data and analysis from Wilson, a marketing research " + "firm. Each level of this upgrades increases the effectiveness of your " + "advertising by 10% (additive)."], //Augmentation for employees, increases cre - "4": [4, 10e9, 1.05, 0.1, + "4": [4, 2e9, 1.06, 0.1, "Nuoptimal Nootropic Injector Implants", "Purchase the Nuoptimal Nootropic " + "Injector augmentation for your employees. Each level of this upgrade " + "globally increases the creativity of your employees by 10% (additive)."], //Augmentation for employees, increases cha - "5": [5, 10e9, 1.05, 0.1, + "5": [5, 2e9, 1.06, 0.1, "Speech Processor Implants", "Purchase the Speech Processor augmentation for your employees. " + "Each level of this upgrade globally increases the charisma of your employees by 10% (additive)."], //Augmentation for employees, increases int - "6": [6, 10e9, 1.05, 0.1, - "Neural Acelerators", "Purchase the Neural Accelerator augmentation for your employees. " + + "6": [6, 2e9, 1.06, 0.1, + "Neural Accelerators", "Purchase the Neural Accelerator augmentation for your employees. " + "Each level of this upgrade globally increases the intelligence of your employees " + "by 10% (additive)."], //Augmentation for employees, increases eff - "7": [7, 10e9, 1.05, 0.1, + "7": [7, 2e9, 1.06, 0.1, "FocusWires", "Purchase the FocusWire augmentation for your employees. Each level " + "of this upgrade globally increases the efficiency of your employees by 10% (additive)."], + + //Improves sales of materials/products + "8": [8, 1e9, 1.09, 0.01, + "ABC SalesBots", "Always Be Closing. Purchase these robotic salesmen to increase the amount of " + + "materials and products you sell. Each level of this upgrade globally increases your sales " + + "by 1% (additive)."], + + //Improves scientific research rate + "9": [9, 5e9, 1.08, 0.05, + "Project Insight", "Purchase 'Project Insight', a R&D service provided by the secretive " + + "Fulcrum Technologies. Each level of this upgrade globally increases the amount of " + + "Scientific Research you produce by 5% (additive)."], } function Corporation(params={}) { @@ -40882,13 +41045,13 @@ Corporation.prototype.process = function(numCycles=1) { Corporation.prototype.determineValuation = function() { var val, profit = (this.revenue.minus(this.expenses)).toNumber(); if (this.public) { - val = 25e9 + this.funds.toNumber() + (profit * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["h" /* getRandomInt */])(7000, 8500)); + val = 25e9 + this.funds.toNumber() + (profit * 25e3); val *= (Math.pow(1.1, this.divisions.length)); val = Math.max(val, 0); } else { - val = 10e9 + Math.max(this.funds.toNumber(), 0); //Base valuation + val = 10e9 + Math.max(this.funds.toNumber(), 0) / 3; //Base valuation if (profit > 0) { - val += (profit * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["h" /* getRandomInt */])(12e3, 14e3)); + val += (profit * 400e3); val *= (Math.pow(1.1, this.divisions.length)); } else { val = 10e9 * Math.pow(1.1, this.divisions.length); @@ -41017,7 +41180,7 @@ Corporation.prototype.upgrade = function(upgrade) { upgradeAmt = upgrade[3]; //Amount by which the upgrade multiplier gets increased (additive) while (this.upgrades.length <= upgN) {this.upgrades.push(0);} while (this.upgradeMultipliers.length <= upgN) {this.upgradeMultipliers.push(1);} - var totalCost = basePrice * Math.pow(this.upgrades[upgN], priceMult); + var totalCost = basePrice * Math.pow(priceMult, this.upgrades[upgN]); if (this.funds.lt(totalCost)) { Object(__WEBPACK_IMPORTED_MODULE_4__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You don't have enough funds to purchase this!"); return; @@ -41027,8 +41190,68 @@ Corporation.prototype.upgrade = function(upgrade) { //Increase upgrade multiplier this.upgradeMultipliers[upgN] = 1 + (this.upgrades[upgN] * upgradeAmt); + + //If storage size is being updated, update values in Warehouse objects + if (upgN === 1) { + for (var i = 0; i < this.divisions.length; ++i) { + var industry = this.divisions[i]; + for (var city in industry.warehouses) { + if (industry.warehouses.hasOwnProperty(city) && industry.warehouses[city] instanceof Warehouse) { + industry.warehouses[city].updateSize(this); + } + } + } + } + + this.updateCorporationOverviewContent(); } +Corporation.prototype.getProductionMultiplier = function() { + var mult = this.upgradeMultipliers[0]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getStorageMultiplier = function() { + var mult = this.upgradeMultipliers[1]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getAdvertisingMultiplier = function() { + var mult = this.upgradeMultipliers[3]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getEmployeeCreMultiplier = function() { + var mult = this.upgradeMultipliers[4]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getEmployeeChaMultiplier = function() { + var mult = this.upgradeMultipliers[5]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getEmployeeIntMultiplier = function() { + var mult = this.upgradeMultipliers[6]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getEmployeeEffMultiplier = function() { + var mult = this.upgradeMultipliers[7]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getSalesMultiplier = function() { + var mult = this.upgradeMultipliers[8]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + +Corporation.prototype.getScientificResearchMultiplier = function() { + var mult = this.upgradeMultipliers[9]; + if (isNaN(mult) || mult < 1) {return 1;} else {return mult;} +} + + //Keep 'global' variables for DOM elements so we don't have to search //through the DOM tree repeatedly when updating UI var companyManagementDiv, companyManagementHeaderTabs, companyManagementPanel, @@ -41449,19 +41672,22 @@ Corporation.prototype.displayCorporationOverviewContent = function() { class:"cmpy-mgmt-upgrade-container", }); upgradeContainer.appendChild(Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["f" /* createElement */])("h1", { - innerText:"Upgrades", margin:"6px", padding:"6px", + innerText:"Unlocks", margin:"6px", padding:"6px", })); //Unlock upgrades var corp = this; + var numUnlockUpgrades = Object.keys(CorporationUnlockUpgrades).length, + numUpgrades = Object.keys(CorporationUpgrades).length; if (this.unlockUpgrades == null || this.upgrades == null) { //Backwards compatibility - var numUnlockUpgrades = Object.keys(CorporationUnlockUpgrades).length, - numUpgrades = Object.keys(CorporationUpgrades).length; - this.unlockUpgrades = Array(numUnlockUpgrades).fill(0); this.upgrades = Array(numUpgrades).fill(0); } - for (var i = 0; i < this.unlockUpgrades.length; ++i) { + while (this.unlockUpgrades.length < numUnlockUpgrades) {this.unlockUpgrades.push(0);} + while (this.upgrades.length < numUpgrades) {this.upgrades.push(0);} + while (this.upgradeMultipliers < numUpgrades) {this.upgradeMultipliers.push(1);} + + for (var i = 0; i < numUnlockUpgrades; ++i) { (function(i, corp) { if (corp.unlockUpgrades[i] === 0) { var upgrade = CorporationUnlockUpgrades[i.toString()]; @@ -41472,7 +41698,8 @@ Corporation.prototype.displayCorporationOverviewContent = function() { upgradeContainer.appendChild(Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["f" /* createElement */])("div", { class:"cmpy-mgmt-upgrade-div", - innerHTML:upgrade[2] + " - " + __WEBPACK_IMPORTED_MODULE_7__utils_numeral_min_js___default()(upgrade[1]).format("$0.000a") + "

" + upgrade[3], + innerHTML:upgrade[2] + " - " + __WEBPACK_IMPORTED_MODULE_7__utils_numeral_min_js___default()(upgrade[1]).format("$0.000a"), + tooltip: upgrade[3], clickListener:()=>{ if (corp.funds.lt(upgrade[1])) { Object(__WEBPACK_IMPORTED_MODULE_4__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Insufficient funds"); @@ -41487,8 +41714,11 @@ Corporation.prototype.displayCorporationOverviewContent = function() { } //Levelable upgrades - /* - for (var i = 0; i < this.upgrades.length; ++i) { + upgradeContainer.appendChild(Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["f" /* createElement */])("h1", { + innerText:"Upgrades", margin:"6px", padding:"6px", + })); + + for (var i = 0; i < numUpgrades; ++i) { (function(i, corp) { var upgrade = CorporationUpgrades[i.toString()]; if (upgrade == null) { @@ -41497,13 +41727,14 @@ Corporation.prototype.displayCorporationOverviewContent = function() { } var baseCost = upgrade[1], priceMult = upgrade[2]; - var cost = baseCost * Math.pow(corp.upgrades[i], priceMult); - upgradeContainer.appendChild(createElement("div", { + var cost = baseCost * Math.pow(priceMult, corp.upgrades[i]); + upgradeContainer.appendChild(Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["f" /* createElement */])("div", { class:"cmpy-mgmt-upgrade-div", - innerHTML:upgrade[4] + " - " + numeral(cost).format("$0.000a") + "

" + upgrade[5], + innerHTML:upgrade[4] + " - " + __WEBPACK_IMPORTED_MODULE_7__utils_numeral_min_js___default()(cost).format("$0.000a"), + tooltip:upgrade[5], clickListener:()=>{ if (corp.funds.lt(cost)) { - dialogBoxCreate("Insufficient funds"); + Object(__WEBPACK_IMPORTED_MODULE_4__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Insufficient funds"); } else { corp.upgrade(upgrade); corp.displayCorporationOverviewContent(); @@ -41511,7 +41742,7 @@ Corporation.prototype.displayCorporationOverviewContent = function() { } })); })(i, corp); - }*/ + } companyManagementPanel.appendChild(upgradeContainer); } @@ -41535,9 +41766,27 @@ Corporation.prototype.updateCorporationOverviewContent = function() { "Total Profits: " + profitStr + " / s
" + "Publicly Traded: " + (this.public ? "Yes" : "No") + "
" + "Owned Stock Shares: " + __WEBPACK_IMPORTED_MODULE_7__utils_numeral_min_js___default()(this.numShares).format('0.000a') + "
" + - "Stock Price: " + (this.public ? "$" + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.sharePrice, 2) : "N/A") + "
"; - p.innerHTML = txt; + "Stock Price: " + (this.public ? "$" + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(this.sharePrice, 2) : "N/A") + "

"; + var prodMult = this.getProductionMultiplier(), + storageMult = this.getStorageMultiplier(), + advMult = this.getAdvertisingMultiplier(), + empCreMult = this.getEmployeeCreMultiplier(), + empChaMult = this.getEmployeeChaMultiplier(), + empIntMult = this.getEmployeeIntMultiplier(), + empEffMult = this.getEmployeeEffMultiplier(), + salesMult = this.getSalesMultiplier(), + sciResMult = this.getScientificResearchMultiplier(); + if (prodMult > 1) {txt += "Production Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(prodMult, 3) + "
";} + if (storageMult > 1) {txt += "Storage Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(storageMult, 3) + "
";} + if (advMult > 1) {txt += "Advertising Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(advMult, 3) + "
";} + if (empCreMult > 1) {txt += "Empl. Creativity Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(empCreMult, 3) + "
";} + if (empChaMult > 1) {txt += "Empl. Charisma Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(empChaMult, 3) + "
";} + if (empIntMult > 1) {txt += "Empl. Intelligence Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(empIntMult, 3) + "
";} + if (empEffMult > 1) {txt += "Empl. Efficiency Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(empEffMult, 3) + "
";} + if (salesMult > 1) {txt += "Sales Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(salesMult, 3) + "
";} + if (sciResMult > 1) {txt += "Scientific Research Multiplier: " + Object(__WEBPACK_IMPORTED_MODULE_8__utils_StringHelperFunctions_js__["c" /* formatNumber */])(sciResMult, 3) + "
";} + p.innerHTML = txt; } Corporation.prototype.displayDivisionContent = function(division, city) { @@ -41659,6 +41908,7 @@ Corporation.prototype.displayDivisionContent = function(division, city) { createProductPopupText = "Design and develop a new pharmaceutical drug!"; break; case Industries.Computer: + case "Computer": createProductButtonText = "Create Product"; createProductPopupText = "Design and manufacture a new computer hardware product!"; break; @@ -41915,7 +42165,7 @@ Corporation.prototype.displayDivisionContent = function(division, city) { }); industryEmployeePanel.appendChild(industryEmployeeList); for (var i = 0; i < office.employees.length; ++i) { - (function() { + (function(corp) { var emp = office.employees[i]; var li = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["e" /* createAccordionElement */])({ id:"cmpy-mgmt-employee-" + emp.name, @@ -41926,9 +42176,9 @@ Corporation.prototype.displayDivisionContent = function(division, city) { console.log("ERROR: Could not find employee accordion panel"); return; } - emp.createUI(panel); + emp.createUI(panel, corp); industryEmployeeList.appendChild(li); - })(); + })(this); } //Warehouse Panel @@ -42002,11 +42252,11 @@ Corporation.prototype.updateDivisionContent = function(division) { hdrText:emp.name, }); panel = li.children[1]; - emp.createUI(panel); + emp.createUI(panel, company); employeeList.appendChild(li); return; } - emp.updateUI(panel); + emp.updateUI(panel, company); })(this); } } @@ -42493,7 +42743,7 @@ function writeRedPillLetter(pElem, line, i=0) { } let redPillFlag = false; -function hackWorldDaemon(currentNodeNumber) { +function hackWorldDaemon(currentNodeNumber, flume=false) { redPillFlag = true; __WEBPACK_IMPORTED_MODULE_1__engine_js__["Engine"].loadRedPillContent(); return writeRedPillLine("[ERROR] SEMPOOL INVALID").then(function() { @@ -42525,7 +42775,7 @@ function hackWorldDaemon(currentNodeNumber) { }).then(function() { return writeRedPillLine("..............................................") }).then(function() { - return loadBitVerse(currentNodeNumber); + return loadBitVerse(currentNodeNumber, flume); }).catch(function(e){ console.log("ERROR: " + e.toString()); }); @@ -42572,12 +42822,10 @@ function giveSourceFile(bitNodeNumber) { } } -function loadBitVerse(destroyedBitNodeNum) { +function loadBitVerse(destroyedBitNodeNum, flume=false) { //Clear the screen var container = document.getElementById("red-pill-container"); - while (container.firstChild) { - container.removeChild(container.firstChild); - } + Object(__WEBPACK_IMPORTED_MODULE_7__utils_HelperFunctions_js__["k" /* removeChildrenFromElement */])(container); //Create the Bit Verse var bitVerseImage = document.createElement("pre"); @@ -42659,7 +42907,7 @@ function loadBitVerse(destroyedBitNodeNum) { return; } Object(__WEBPACK_IMPORTED_MODULE_8__utils_YesNoBox_js__["b" /* yesNoBoxCreate */])("BitNode-" + i + ": " + bitNode.name + "

" + bitNode.info); - createBitNodeYesNoEventListeners(i, destroyedBitNodeNum); + createBitNodeYesNoEventListeners(i, destroyedBitNodeNum, flume); }); } else { elem.addEventListener("click", function() { @@ -42730,16 +42978,14 @@ function createBitNode(n) { "
"; } -function createBitNodeYesNoEventListeners(newBitNode, destroyedBitNode) { +function createBitNodeYesNoEventListeners(newBitNode, destroyedBitNode, flume=false) { var yesBtn = Object(__WEBPACK_IMPORTED_MODULE_8__utils_YesNoBox_js__["d" /* yesNoBoxGetYesButton */])(); yesBtn.innerHTML = "Enter BitNode-" + newBitNode; yesBtn.addEventListener("click", function() { - giveSourceFile(destroyedBitNode); + if (!flume) {giveSourceFile(destroyedBitNode);} redPillFlag = false; var container = document.getElementById("red-pill-container"); - while (container.firstChild) { - container.removeChild(container.firstChild); - } + Object(__WEBPACK_IMPORTED_MODULE_7__utils_HelperFunctions_js__["k" /* removeChildrenFromElement */])(container); //Set new Bit Node __WEBPACK_IMPORTED_MODULE_2__Player_js__["a" /* Player */].bitNodeN = newBitNode; @@ -42906,7 +43152,7 @@ function prestigeAugmentation() { //BitNode 8: Ghost of Wall Street if (__WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].bitNodeN === 8) {__WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].money = new __WEBPACK_IMPORTED_MODULE_16__utils_decimal_js___default.a(100e6);} - if (__WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].bitNodeN === 8 || __WEBPACK_IMPORTED_MODULE_9__NetscriptFunctions_js__["d" /* hasWallStreetSF */]) { + if (__WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].bitNodeN === 8 || __WEBPACK_IMPORTED_MODULE_9__NetscriptFunctions_js__["e" /* hasWallStreetSF */]) { __WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].hasWseAccount = true; __WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].hasTixApiAccess = true; } @@ -43017,7 +43263,7 @@ function prestigeSourceFile() { __WEBPACK_IMPORTED_MODULE_5__engine_js__["Engine"].loadTerminalContent(); //Reinitialize Bit Node flags - Object(__WEBPACK_IMPORTED_MODULE_9__NetscriptFunctions_js__["e" /* initSingularitySFFlags */])(); + Object(__WEBPACK_IMPORTED_MODULE_9__NetscriptFunctions_js__["f" /* initSingularitySFFlags */])(); //Reset Stock market if (__WEBPACK_IMPORTED_MODULE_11__Player_js__["a" /* Player */].hasWseAccount) { diff --git a/index.html b/index.html index ae292bcc4..32723459f 100644 --- a/index.html +++ b/index.html @@ -164,9 +164,7 @@
-
-

-
+
@@ -441,48 +439,7 @@ at any time. Your progress will be saved and you can continue later.

- + @@ -947,6 +904,20 @@ + +
+ + + + + +
+