diff --git a/src/Augmentations.js b/src/Augmentations.js index 7764c8410..eb5f747ae 100644 --- a/src/Augmentations.js +++ b/src/Augmentations.js @@ -472,7 +472,7 @@ initAugmentations = function() { "This augmentation:
" + "Increases the player's hacking speed by 3%
" + "Increases the player's hacking skill by 8%
" + - "Increases the player's hacking experience gain rate by 12%"); + "Increases the player's hacking experience gain rate by 10%"); EnhancedMyelinSheathing.addToFactions(["Fulcrum Secret Technologies", "BitRunners", "The Black Hand"]); if (augmentationExists(AugmentationNames.EnhancedMyelinSheathing)) { EnhancedMyelinSheathing.owned = Augmentations[AugmentationNames.EnhancedMyelinSheathing].owned; @@ -509,7 +509,7 @@ initAugmentations = function() { DataJack.setInfo("A brain implant that provides an interface for direct, wireless communication between a computer's main " + "memory and the mind. This implant allows the user to not only access a computer's memory, but also alter " + "and delete it.

" + - "This augmentation increases the amount of money the player gains from hacking by 30%"); + "This augmentation increases the amount of money the player gains from hacking by 25%"); DataJack.addToFactions(["BitRunners", "The Black Hand", "NiteSec", "Chongqing", "New Tokyo"]); if (augmentationExists(AugmentationNames.DataJack)) { DataJack.owned = Augmentations[AugmentationNames.DataJack].owned; @@ -561,7 +561,7 @@ initAugmentations = function() { "Increases the player's hacking speed by 5%
" + "Increases the amount of money the player gains from hacking by 30%
" + "Increases the player's chance of successfully performing a hack by 5%
" + - "Increases the player's hacking experience gain rate by 20%
" + + "Increases the player's hacking experience gain rate by 15%
" + "Increases the player's hacking skill by 8%"); ENMCoreV2.addToFactions(["BitRunners", "ECorp", "MegaCorp", "Fulcrum Secret Technologies", "NWO", "Blade Industries", "OmniTek Incorporated", "KuaiGong International"]); @@ -580,7 +580,7 @@ initAugmentations = function() { "Increases the player's hacking speed by 5%
" + "Increases the amount of money the player gains from hacking by 40%
" + "Increases the player's chance of successfully performing a hack by 10%
" + - "Increases the player's hacking experience gain rate by 35%
" + + "Increases the player's hacking experience gain rate by 25%
" + "Increases the player's hacking skill by 10%"); ENMCoreV3.addToFactions(["ECorp", "MegaCorp", "Fulcrum Secret Technologies", "NWO", "Daedalus", "The Covenant", "Illuminati"]); @@ -626,7 +626,7 @@ initAugmentations = function() { "This augmentation:
" + "Increases the player's hacking speed by 2%
" + "Increases the player's chance of successfully performing a hack by 10%
" + - "Increases the player's hacking experience gain rate by 20%"); + "Increases the player's hacking experience gain rate by 12%"); Neuralstimulator.addToFactions(["The Black Hand", "Chongqing", "Sector-12", "New Tokyo", "Aevum", "Ishima", "Volhaven", "Bachman & Associates", "Clarke Incorporated", "Four Sigma"]); @@ -742,7 +742,7 @@ initAugmentations = function() { "to enhance the production and capabilities of its neural stem cells.

" + "This augmentation:
" + "Increases the player's hacking skill by 15%
" + - "Increases the player's hacking experience gain rate by 20%
"+ + "Increases the player's hacking experience gain rate by 10%
"+ "Increases the player's hacking speed by 3%"); NeuronalDensification.addToFactions(["Clarke Incorporated"]); if (augmentationExists(AugmentationNames.NeuronalDensification)) { @@ -1550,7 +1550,7 @@ applyAugmentation = function(aug, reapply=false) { break; case AugmentationNames.EnhancedMyelinSheathing: //Med level Player.hacking_speed_mult *= 1.03; - Player.hacking_exp_mult *= 1.12; + Player.hacking_exp_mult *= 1.1; Player.hacking_mult *= 1.08; break; case AugmentationNames.SynapticEnhancement: //Low Level @@ -1560,7 +1560,7 @@ applyAugmentation = function(aug, reapply=false) { Player.hacking_exp_mult *= 1.25; break; case AugmentationNames.DataJack: //Med low level - Player.hacking_money_mult *= 1.3; + Player.hacking_money_mult *= 1.25; break; case AugmentationNames.ENM: //Medium level Player.hacking_mult *= 1.08; @@ -1576,14 +1576,14 @@ applyAugmentation = function(aug, reapply=false) { Player.hacking_speed_mult *= 1.05; Player.hacking_money_mult *= 1.3; Player.hacking_chance_mult *= 1.05; - Player.hacking_exp_mult *= 1.2; + Player.hacking_exp_mult *= 1.15; Player.hacking_mult *= 1.08; break; case AugmentationNames.ENMCoreV3: //High level Player.hacking_speed_mult *= 1.05; Player.hacking_money_mult *= 1.4; Player.hacking_chance_mult *= 1.1; - Player.hacking_exp_mult *= 1.35; + Player.hacking_exp_mult *= 1.25; Player.hacking_mult *= 1.1; break; case AugmentationNames.ENMAnalyzeEngine: //High level @@ -1596,7 +1596,7 @@ applyAugmentation = function(aug, reapply=false) { case AugmentationNames.Neuralstimulator: //Medium Level Player.hacking_speed_mult *= 1.02; Player.hacking_chance_mult *= 1.1; - Player.hacking_exp_mult *= 1.2; + Player.hacking_exp_mult *= 1.12; break; case AugmentationNames.NeuralAccelerator: Player.hacking_mult *= 1.1; @@ -1629,7 +1629,7 @@ applyAugmentation = function(aug, reapply=false) { break; case AugmentationNames.NeuronalDensification: Player.hacking_mult *= 1.15; - Player.hacking_exp_mult *= 1.2; + Player.hacking_exp_mult *= 1.1; Player.hacking_speed_mult *= 1.03; break; diff --git a/src/Constants.js b/src/Constants.js index 0bae217b2..40c5b837d 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -281,7 +281,7 @@ CONSTANTS = { "yield $50,000.

" + "Each additional thread to a script will slightly increase the RAM usage for that thread. The total cost of running a script with " + "n threads can be calculated with:
" + - "base cost * n * (1.02 ^ n)
" + + "base cost * n * (1.01 ^ n)
" + "where the base cost is the amount of RAM required to run the script with a single thread. In the terminal, you can run the " + "'mem [scriptname] -t n' command to see how much RAM a script requires with n threads.

" + "Every method for running a script has an option for making it multihreaded. To run a script with " + @@ -654,6 +654,7 @@ CONSTANTS = { "-grow() and weaken() now give hacking experience based on the server's base security level, rather than a flat exp amount
" + "-Slightly reduced amount of exp gained from hack(), weaken(), and grow()
" + "-Rebalanced formulas that determine crime success
" + + "-Reduced RAM cost for multithreading a script. The RAM multiplier for each thread was reduced from 1.02 to 1.01
" "v0.21.1
" + "-IF YOUR GAME BREAKS, DO THE FOLLOWING: Options -> Soft Reset -> Save Game -> Reload Page. Sorry about that!
" + "-Autocompletion for aliases - courtesy of Github user LTCNugget

" + diff --git a/src/NetscriptEvaluator.js b/src/NetscriptEvaluator.js index 97d4f6a53..9c1be9ce5 100644 --- a/src/NetscriptEvaluator.js +++ b/src/NetscriptEvaluator.js @@ -971,7 +971,7 @@ function runScriptFromScript(server, scriptname, args, workerScript, threads=1) //Check for admin rights and that there is enough RAM availble to run var script = server.scripts[i]; var ramUsage = script.ramUsage; - ramUsage = ramUsage * threads * Math.pow(1.02, threads-1); + ramUsage = ramUsage * threads * Math.pow(1.01, threads-1); var ramAvailable = server.maxRam - server.ramUsed; if (server.hasAdminRights == false) { diff --git a/src/NetscriptWorker.js b/src/NetscriptWorker.js index 84dc9616a..31b876c29 100644 --- a/src/NetscriptWorker.js +++ b/src/NetscriptWorker.js @@ -142,7 +142,7 @@ function addWorkerScript(runningScriptObj, server) { } else { runningScriptObj.threads = 1; } - var ramUsage = runningScriptObj.scriptRef.ramUsage * threads * Math.pow(1.02, threads-1); + var ramUsage = runningScriptObj.scriptRef.ramUsage * threads * Math.pow(1.01, threads-1); server.ramUsed += ramUsage; //Create the WorkerScript diff --git a/src/SaveObject.js b/src/SaveObject.js index 9f094e233..9e29a7ead 100644 --- a/src/SaveObject.js +++ b/src/SaveObject.js @@ -17,7 +17,20 @@ function BitburnerSaveObject() { BitburnerSaveObject.prototype.saveGame = function() { this.PlayerSave = JSON.stringify(Player); - this.AllServersSave = JSON.stringify(AllServers); + + //Delete all logs from all running scripts + TempAllServers = jQuery.extend(true, {}, AllServers); //Deep copy + for (var ip in TempAllServers) { + var server = TempAllServers[ip]; + if (server == null) {continue;} + for (var i = 0; i < server.runningScripts.length; ++i) { + var runningScriptObj = server.runningScripts[i]; + runningScriptObj.logs.length = 0; + runningScriptObj.logs = []; + } + } + + this.AllServersSave = JSON.stringify(TempAllServers); this.CompaniesSave = JSON.stringify(Companies); this.FactionsSave = JSON.stringify(Factions); this.SpecialServerIpsSave = JSON.stringify(SpecialServerIps); diff --git a/src/Terminal.js b/src/Terminal.js index bcaea1a78..7459fb3c4 100644 --- a/src/Terminal.js +++ b/src/Terminal.js @@ -789,7 +789,7 @@ var Terminal = { for (var i = 0; i < currServ.scripts.length; ++i) { if (scriptName == currServ.scripts[i].filename) { var scriptBaseRamUsage = currServ.scripts[i].ramUsage; - var ramUsage = scriptBaseRamUsage * numThreads * Math.pow(1.02, numThreads-1); + var ramUsage = scriptBaseRamUsage * numThreads * Math.pow(1.01, numThreads-1); post("This script requires " + formatNumber(ramUsage, 2) + "GB of RAM to run for " + numThreads + " thread(s)"); return; @@ -1303,7 +1303,7 @@ var Terminal = { if (server.scripts[i].filename == scriptName) { //Check for admin rights and that there is enough RAM availble to run var script = server.scripts[i]; - var ramUsage = script.ramUsage * numThreads * Math.pow(1.02, numThreads-1); + var ramUsage = script.ramUsage * numThreads * Math.pow(1.01, numThreads-1); var ramAvailable = server.maxRam - server.ramUsed; if (server.hasAdminRights == false) {