From 8c8574878cca3fd74c3d02c4d7841df66cf7238b Mon Sep 17 00:00:00 2001 From: danielyxie Date: Sun, 24 Jun 2018 21:50:03 -0500 Subject: [PATCH] Rebalanced infiltration by making base difficulty lower, slightly decreasing the difficulty gain, and increasing money/exp rewards --- dist/engine.bundle.js | 132 ++++++++++++++++++++++-------------------- src/Constants.js | 10 +++- src/Infiltration.js | 50 ++++++++-------- src/Location.js | 72 +++++++++++------------ 4 files changed, 136 insertions(+), 128 deletions(-) diff --git a/dist/engine.bundle.js b/dist/engine.bundle.js index 304ea3477..e952d978f 100644 --- a/dist/engine.bundle.js +++ b/dist/engine.bundle.js @@ -3107,8 +3107,8 @@ let CONSTANTS = { TorRouterCost: 200000, //Infiltration constants - InfiltrationBribeBaseAmount: 100000, //Amount per clearance level - InfiltrationMoneyValue: 2500, //Convert "secret" value to money + InfiltrationBribeBaseAmount: 100e3, //Amount per clearance level + InfiltrationMoneyValue: 3e3, //Convert "secret" value to money InfiltrationRepValue: 1.4, //Convert "secret" value to faction reputation //Stock market constants @@ -3490,7 +3490,11 @@ let CONSTANTS = { "World Stock Exchange account and TIX API Access
", LatestUpdate: - "v0.38.1
" + + "v0.39.0
" + + "* Added BitNode-7: Bladeburner 2079
" + + "* Infiltration base difficulty decreased by 10% for most locations
" + + "* Experience gains from Infiltration slightly increased
" + + "* Money gained from Infiltration increased by 20%
" + "* Added 'var' declarations in Netscript 1.0 (only works with 'var', not 'let' or 'const')
" + "* Script base RAM cost is now 1.6 GB (increased from 1.4 GB)
" + "* While/for loops and if statements no longer cost RAM in scripts
" + @@ -3966,7 +3970,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumECorp, - 6000, 116, 150, 8.5); + 5400, 116, 150, 8); break; case Locations.AevumBachmanAndAssociates: @@ -3979,7 +3983,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumBachmanAndAssociates, - 1500, 42, 60, 5.75); + 1350, 42, 60, 5.25); break; case Locations.AevumClarkeIncorporated: @@ -3992,7 +3996,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumClarkeIncorporated, - 2400, 34, 75, 5.4); + 2160, 34, 75, 5); break; case Locations.AevumFulcrumTechnologies: @@ -4012,7 +4016,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumFulcrumTechnologies, - 6000, 96, 100, 9); + 5400, 96, 100, 8.5); break; case Locations.AevumAeroCorp: @@ -4024,7 +4028,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumAeroCorp, - 2000, 32, 50, 6.3); + 1800, 32, 50, 5.9); break; case Locations.AevumGalacticCybersystems: @@ -4037,7 +4041,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumGalacticCybersystems, - 1400, 30, 50, 5.3); + 1400, 30, 50, 4.9); break; case Locations.AevumWatchdogSecurity: @@ -4051,7 +4055,7 @@ function displayLocationContent() { securityJob.style.display = "block"; agentJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumWatchdogSecurity, - 850, 16, 30, 4.5); + 765, 16, 30, 4); break; case Locations.AevumRhoConstruction: @@ -4060,7 +4064,7 @@ function displayLocationContent() { softwareJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumRhoConstruction, - 600, 12, 20, 2.7); + 540, 12, 20, 2.5); break; case Locations.AevumPolice: @@ -4069,7 +4073,7 @@ function displayLocationContent() { softwareJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumPolice, - 700, 14, 25, 3.2); + 630, 14, 25, 2.9); break; case Locations.AevumNetLinkTechnologies: @@ -4088,7 +4092,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumNetLinkTechnologies, - 160, 10, 15, 1.8); + 144, 10, 15, 1.65); break; case Locations.AevumCrushFitnessGym: @@ -4122,7 +4126,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.ChongqingKuaiGongInternational, - 5500, 48, 100, 9); + 4950, 48, 100, 8.25); break; case Locations.ChongqingSolarisSpaceSystems: @@ -4134,7 +4138,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.ChongqingSolarisSpaceSystems, - 3600, 26, 75, 8.6); + 3240, 26, 75, 8); break; @@ -4163,7 +4167,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12MegaCorp, - 6000, 114, 125, 9.8); + 6000, 114, 125, 9); break; case Locations.Sector12BladeIndustries: @@ -4176,7 +4180,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12BladeIndustries, - 3000, 46, 100, 6.7); + 2700, 46, 100, 6.2); break; case Locations.Sector12FourSigma: @@ -4189,7 +4193,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12FourSigma, - 1500, 58, 100, 10.2); + 1500, 58, 100, 9.5); break; case Locations.Sector12IcarusMicrosystems: @@ -4202,7 +4206,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12IcarusMicrosystems, - 900, 32, 70, 7.8); + 810, 32, 70, 7.1); break; case Locations.Sector12UniversalEnergy: @@ -4215,7 +4219,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12UniversalEnergy, - 775, 24, 50, 6.3); + 775, 24, 50, 5.8); break; case Locations.Sector12DeltaOne: @@ -4227,7 +4231,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12DeltaOne, - 1200, 38, 75, 6.3); + 1080, 38, 75, 5.9); break; case Locations.Sector12CIA: @@ -4240,7 +4244,7 @@ function displayLocationContent() { securityJob.style.display = "block"; agentJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12CIA, - 1450, 44, 80, 7.6); + 1305, 44, 80, 6.9); break; case Locations.Sector12NSA: @@ -4259,13 +4263,13 @@ function displayLocationContent() { nsaBladeburner.innerText = "Enter Bladeburner Headquarters"; } else { setInfiltrateButton(infiltrate, Locations.Sector12NSA, - 1400, 40, 80, 7.2); + 1260, 40, 80, 6.7); nsaBladeburner.innerText = "Apply to Bladeburner Division"; } nsaBladeburner.style.display = "block"; } else { setInfiltrateButton(infiltrate, Locations.Sector12NSA, - 1400, 40, 80, 7.2); + 1260, 40, 80, 6.7); } break; @@ -4281,7 +4285,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12AlphaEnterprises, - 250, 14, 40, 2.7); + 225, 14, 40, 2.5); break; case Locations.Sector12CarmichaelSecurity: @@ -4295,7 +4299,7 @@ function displayLocationContent() { securityJob.style.display = "block"; agentJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12CarmichaelSecurity, - 500, 18, 60, 2.7); + 450, 18, 60, 2.5); break; case Locations.Sector12FoodNStuff: @@ -4353,7 +4357,7 @@ function displayLocationContent() { securityEngineerJob.style.display = "block"; networkEngineerJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.NewTokyoDefComm, - 1300, 28, 70, 5.4); + 1170, 28, 70, 5); break; case Locations.NewTokyoVitaLife: @@ -4366,7 +4370,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.NewTokyoVitaLife, - 750, 22, 100, 5); + 675, 22, 100, 4.7); break; case Locations.NewTokyoGlobalPharmaceuticals: @@ -4380,7 +4384,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.NewTokyoGlobalPharmaceuticals, - 900, 24, 80, 5.4); + 810, 24, 80, 5.1); break; case Locations.NewTokyoNoodleBar: @@ -4420,7 +4424,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.IshimaStormTechnologies, - 700, 24, 100, 5.9); + 630, 24, 100, 5.5); break; case Locations.IshimaNovaMedical: @@ -4433,7 +4437,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.IshimaNovaMedical, - 600, 20, 50, 4.5); + 540, 20, 50, 4.25); break; case Locations.IshimaOmegaSoftware: @@ -4452,7 +4456,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.IshimaOmegaSoftware, - 200, 10, 40, 2.3); + 180, 10, 40, 2.1); break; case Locations.VolhavenTravelAgency: @@ -4485,7 +4489,7 @@ function displayLocationContent() { purchase512gb.style.display = "block"; purchase1tb.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenOmniTekIncorporated, - 1500, 44, 100, 6.3); + 1350, 44, 100, 5.9); break; case Locations.VolhavenNWO: @@ -4498,7 +4502,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenNWO, - 1800, 56, 200, 7.2); + 1620, 56, 200, 6.8); break; case Locations.VolhavenHeliosLabs: @@ -4510,7 +4514,7 @@ function displayLocationContent() { securityEngineerJob.style.display = "block"; networkEngineerJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenHeliosLabs, - 1200, 28, 75, 5.4); + 1200, 28, 75, 5); break; case Locations.VolhavenOmniaCybersystems: @@ -4522,7 +4526,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenOmniaCybersystems, - 900, 28, 90, 5.8); + 810, 28, 90, 5.3); break; case Locations.VolhavenLexoCorp: @@ -4536,7 +4540,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenLexoCorp, - 500, 14, 40, 3.1); + 500, 14, 40, 2.8); break; case Locations.VolhavenSysCoreSecurities: @@ -4547,7 +4551,7 @@ function displayLocationContent() { securityEngineerJob.style.display = "block"; networkEngineerJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenSysCoreSecurities, - 600, 16, 50, 3.6); + 540, 16, 50, 3.2); break; case Locations.VolhavenCompuTek: @@ -4569,7 +4573,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenCompuTek, - 300, 12, 35, 3.1); + 270, 12, 35, 2.75); break; case Locations.VolhavenMilleniumFitnessGym: @@ -73856,10 +73860,10 @@ let intWgt = _Constants_js__WEBPACK_IMPORTED_MODULE_1__["CONSTANTS"].Intelligenc //Success: 5%, Failure 10%, -Karma function attemptInfiltrationKill(inst) { var chance = getInfiltrationKillChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; - inst.gainDefenseExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].defense_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; + inst.gainDefenseExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].defense_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.05; return [true, 1.05]; @@ -73882,10 +73886,10 @@ function getInfiltrationKillChance(inst) { //Success: 3%, Failure: 10% function attemptInfiltrationKnockout(inst) { var chance = getInfiltrationKnockoutChance(inst); - inst.gainStrengthExp(inst.securityLevel / 80) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; - inst.gainDefenseExp(inst.securityLevel / 80) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].defense_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 80) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 80) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 70) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; + inst.gainDefenseExp(inst.securityLevel / 70) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].defense_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 70) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 70) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.03; return [true, 1.03]; @@ -73907,9 +73911,9 @@ function getInfiltrationKnockoutChance(inst) { //Success: 0%, Failure: 10% function attemptInfiltrationStealthKnockout(inst) { var chance = getInfiltrationStealthKnockoutChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 65) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 65) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 60) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 60) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -73931,9 +73935,9 @@ function getInfiltrationStealthKnockoutChance(inst) { //Success: 0%, Failure: 5%, -Karma function attemptInfiltrationAssassinate(inst) { var chance = getInfiltrationAssassinateChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 65) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 65) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 55) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 55) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -73955,10 +73959,10 @@ function getInfiltrationAssassinateChance(inst) { //Success: 5%, Failure: 10% function attemptInfiltrationDestroySecurity(inst) { var chance = getInfiltrationDestroySecurityChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; - inst.gainDefenseExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].defense_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 85) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].strength_exp_mult; + inst.gainDefenseExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].defense_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 75) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.05; return [true, 1.05]; @@ -73982,8 +73986,8 @@ function getInfiltrationDestroySecurityChance(inst) { //Success: 3%, Failure: 5% function attemptInfiltrationHack(inst) { var chance = getInfiltrationHackChance(inst); - inst.gainHackingExp(inst.securityLevel / 40) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].hacking_exp_mult; - inst.gainIntelligenceExp(inst.securityLevel / 690); + inst.gainHackingExp(inst.securityLevel / 30) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].hacking_exp_mult; + inst.gainIntelligenceExp(inst.securityLevel / 680); if (Math.random() <= chance) { inst.securityLevel *= 1.03; return [true, 1.03]; @@ -74005,7 +74009,7 @@ function getInfiltrationHackChance(inst) { //Success: 0%, Failure: 8% function attemptInfiltrationSneak(inst) { var chance = getInfiltrationSneakChance(inst); - inst.gainAgilityExp(inst.securityLevel / 40) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 30) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -74026,7 +74030,7 @@ function getInfiltrationSneakChance(inst) { //Success: 1%, Failure: 3% function attemptInfiltrationPickLockedDoor(inst) { var chance = getInfiltrationPickLockedDoorChance(inst); - inst.gainDexterityExp(inst.securityLevel / 30) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 25) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.01; return [true, 1.01]; @@ -74047,7 +74051,7 @@ function getInfiltrationPickLockedDoorChance(inst) { //Success: 0%, Failure: 15%, function attemptInfiltrationBribe(inst) { var chance = getInfiltrationBribeChance(inst); - inst.gainCharismaExp(inst.securityLevel / 10) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].charisma_exp_mult; + inst.gainCharismaExp(inst.securityLevel / 8) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].charisma_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -74066,8 +74070,8 @@ function getInfiltrationBribeChance(inst) { //Failure: 5% function attemptInfiltrationEscape(inst) { var chance = getInfiltrationEscapeChance(inst); - inst.gainAgilityExp(inst.securityLevel / 35) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 35) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 30) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].agility_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 30) * _Player_js__WEBPACK_IMPORTED_MODULE_3__["Player"].dexterity_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { diff --git a/src/Constants.js b/src/Constants.js index bf293fa0d..4a5851040 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -106,8 +106,8 @@ let CONSTANTS = { TorRouterCost: 200000, //Infiltration constants - InfiltrationBribeBaseAmount: 100000, //Amount per clearance level - InfiltrationMoneyValue: 2500, //Convert "secret" value to money + InfiltrationBribeBaseAmount: 100e3, //Amount per clearance level + InfiltrationMoneyValue: 3e3, //Convert "secret" value to money InfiltrationRepValue: 1.4, //Convert "secret" value to faction reputation //Stock market constants @@ -489,7 +489,11 @@ let CONSTANTS = { "World Stock Exchange account and TIX API Access
", LatestUpdate: - "v0.38.1
" + + "v0.39.0
" + + "* Added BitNode-7: Bladeburner 2079
" + + "* Infiltration base difficulty decreased by 10% for most locations
" + + "* Experience gains from Infiltration slightly increased
" + + "* Money gained from Infiltration increased by 20%
" + "* Added 'var' declarations in Netscript 1.0 (only works with 'var', not 'let' or 'const')
" + "* Script base RAM cost is now 1.6 GB (increased from 1.4 GB)
" + "* While/for loops and if statements no longer cost RAM in scripts
" + diff --git a/src/Infiltration.js b/src/Infiltration.js index 1b5d08280..345adf9f0 100644 --- a/src/Infiltration.js +++ b/src/Infiltration.js @@ -594,10 +594,10 @@ let intWgt = CONSTANTS.IntelligenceInfiltrationWeight; //Success: 5%, Failure 10%, -Karma function attemptInfiltrationKill(inst) { var chance = getInfiltrationKillChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * Player.strength_exp_mult; - inst.gainDefenseExp(inst.securityLevel / 85) * Player.defense_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 85) * Player.dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 85) * Player.agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * Player.strength_exp_mult; + inst.gainDefenseExp(inst.securityLevel / 75) * Player.defense_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 75) * Player.dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 75) * Player.agility_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.05; return [true, 1.05]; @@ -620,10 +620,10 @@ function getInfiltrationKillChance(inst) { //Success: 3%, Failure: 10% function attemptInfiltrationKnockout(inst) { var chance = getInfiltrationKnockoutChance(inst); - inst.gainStrengthExp(inst.securityLevel / 80) * Player.strength_exp_mult; - inst.gainDefenseExp(inst.securityLevel / 80) * Player.defense_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 80) * Player.dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 80) * Player.agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 70) * Player.strength_exp_mult; + inst.gainDefenseExp(inst.securityLevel / 70) * Player.defense_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 70) * Player.dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 70) * Player.agility_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.03; return [true, 1.03]; @@ -645,9 +645,9 @@ function getInfiltrationKnockoutChance(inst) { //Success: 0%, Failure: 10% function attemptInfiltrationStealthKnockout(inst) { var chance = getInfiltrationStealthKnockoutChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * Player.strength_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 65) * Player.dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 65) * Player.agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * Player.strength_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 60) * Player.dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 60) * Player.agility_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -669,9 +669,9 @@ function getInfiltrationStealthKnockoutChance(inst) { //Success: 0%, Failure: 5%, -Karma function attemptInfiltrationAssassinate(inst) { var chance = getInfiltrationAssassinateChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * Player.strength_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 65) * Player.dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 65) * Player.agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * Player.strength_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 55) * Player.dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 55) * Player.agility_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -693,10 +693,10 @@ function getInfiltrationAssassinateChance(inst) { //Success: 5%, Failure: 10% function attemptInfiltrationDestroySecurity(inst) { var chance = getInfiltrationDestroySecurityChance(inst); - inst.gainStrengthExp(inst.securityLevel / 85) * Player.strength_exp_mult; - inst.gainDefenseExp(inst.securityLevel / 85) * Player.defense_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 85) * Player.dexterity_exp_mult; - inst.gainAgilityExp(inst.securityLevel / 85) * Player.agility_exp_mult; + inst.gainStrengthExp(inst.securityLevel / 75) * Player.strength_exp_mult; + inst.gainDefenseExp(inst.securityLevel / 75) * Player.defense_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 75) * Player.dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 75) * Player.agility_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.05; return [true, 1.05]; @@ -720,8 +720,8 @@ function getInfiltrationDestroySecurityChance(inst) { //Success: 3%, Failure: 5% function attemptInfiltrationHack(inst) { var chance = getInfiltrationHackChance(inst); - inst.gainHackingExp(inst.securityLevel / 40) * Player.hacking_exp_mult; - inst.gainIntelligenceExp(inst.securityLevel / 690); + inst.gainHackingExp(inst.securityLevel / 30) * Player.hacking_exp_mult; + inst.gainIntelligenceExp(inst.securityLevel / 680); if (Math.random() <= chance) { inst.securityLevel *= 1.03; return [true, 1.03]; @@ -743,7 +743,7 @@ function getInfiltrationHackChance(inst) { //Success: 0%, Failure: 8% function attemptInfiltrationSneak(inst) { var chance = getInfiltrationSneakChance(inst); - inst.gainAgilityExp(inst.securityLevel / 40) * Player.agility_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 30) * Player.agility_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -764,7 +764,7 @@ function getInfiltrationSneakChance(inst) { //Success: 1%, Failure: 3% function attemptInfiltrationPickLockedDoor(inst) { var chance = getInfiltrationPickLockedDoorChance(inst); - inst.gainDexterityExp(inst.securityLevel / 30) * Player.dexterity_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 25) * Player.dexterity_exp_mult; if (Math.random() <= chance) { inst.securityLevel *= 1.01; return [true, 1.01]; @@ -785,7 +785,7 @@ function getInfiltrationPickLockedDoorChance(inst) { //Success: 0%, Failure: 15%, function attemptInfiltrationBribe(inst) { var chance = getInfiltrationBribeChance(inst); - inst.gainCharismaExp(inst.securityLevel / 10) * Player.charisma_exp_mult; + inst.gainCharismaExp(inst.securityLevel / 8) * Player.charisma_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { @@ -804,8 +804,8 @@ function getInfiltrationBribeChance(inst) { //Failure: 5% function attemptInfiltrationEscape(inst) { var chance = getInfiltrationEscapeChance(inst); - inst.gainAgilityExp(inst.securityLevel / 35) * Player.agility_exp_mult; - inst.gainDexterityExp(inst.securityLevel / 35) * Player.dexterity_exp_mult; + inst.gainAgilityExp(inst.securityLevel / 30) * Player.agility_exp_mult; + inst.gainDexterityExp(inst.securityLevel / 30) * Player.dexterity_exp_mult; if (Math.random() <= chance) { return [true, 1]; } else { diff --git a/src/Location.js b/src/Location.js index 4b7a15e25..3a41679b4 100644 --- a/src/Location.js +++ b/src/Location.js @@ -432,7 +432,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumECorp, - 6000, 116, 150, 8.5); + 5400, 116, 150, 8); break; case Locations.AevumBachmanAndAssociates: @@ -445,7 +445,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumBachmanAndAssociates, - 1500, 42, 60, 5.75); + 1350, 42, 60, 5.25); break; case Locations.AevumClarkeIncorporated: @@ -458,7 +458,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumClarkeIncorporated, - 2400, 34, 75, 5.4); + 2160, 34, 75, 5); break; case Locations.AevumFulcrumTechnologies: @@ -478,7 +478,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumFulcrumTechnologies, - 6000, 96, 100, 9); + 5400, 96, 100, 8.5); break; case Locations.AevumAeroCorp: @@ -490,7 +490,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumAeroCorp, - 2000, 32, 50, 6.3); + 1800, 32, 50, 5.9); break; case Locations.AevumGalacticCybersystems: @@ -503,7 +503,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumGalacticCybersystems, - 1400, 30, 50, 5.3); + 1400, 30, 50, 4.9); break; case Locations.AevumWatchdogSecurity: @@ -517,7 +517,7 @@ function displayLocationContent() { securityJob.style.display = "block"; agentJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumWatchdogSecurity, - 850, 16, 30, 4.5); + 765, 16, 30, 4); break; case Locations.AevumRhoConstruction: @@ -526,7 +526,7 @@ function displayLocationContent() { softwareJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumRhoConstruction, - 600, 12, 20, 2.7); + 540, 12, 20, 2.5); break; case Locations.AevumPolice: @@ -535,7 +535,7 @@ function displayLocationContent() { softwareJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumPolice, - 700, 14, 25, 3.2); + 630, 14, 25, 2.9); break; case Locations.AevumNetLinkTechnologies: @@ -554,7 +554,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.AevumNetLinkTechnologies, - 160, 10, 15, 1.8); + 144, 10, 15, 1.65); break; case Locations.AevumCrushFitnessGym: @@ -588,7 +588,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.ChongqingKuaiGongInternational, - 5500, 48, 100, 9); + 4950, 48, 100, 8.25); break; case Locations.ChongqingSolarisSpaceSystems: @@ -600,7 +600,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.ChongqingSolarisSpaceSystems, - 3600, 26, 75, 8.6); + 3240, 26, 75, 8); break; @@ -629,7 +629,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12MegaCorp, - 6000, 114, 125, 9.8); + 6000, 114, 125, 9); break; case Locations.Sector12BladeIndustries: @@ -642,7 +642,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12BladeIndustries, - 3000, 46, 100, 6.7); + 2700, 46, 100, 6.2); break; case Locations.Sector12FourSigma: @@ -655,7 +655,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12FourSigma, - 1500, 58, 100, 10.2); + 1500, 58, 100, 9.5); break; case Locations.Sector12IcarusMicrosystems: @@ -668,7 +668,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12IcarusMicrosystems, - 900, 32, 70, 7.8); + 810, 32, 70, 7.1); break; case Locations.Sector12UniversalEnergy: @@ -681,7 +681,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12UniversalEnergy, - 775, 24, 50, 6.3); + 775, 24, 50, 5.8); break; case Locations.Sector12DeltaOne: @@ -693,7 +693,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12DeltaOne, - 1200, 38, 75, 6.3); + 1080, 38, 75, 5.9); break; case Locations.Sector12CIA: @@ -706,7 +706,7 @@ function displayLocationContent() { securityJob.style.display = "block"; agentJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12CIA, - 1450, 44, 80, 7.6); + 1305, 44, 80, 6.9); break; case Locations.Sector12NSA: @@ -725,13 +725,13 @@ function displayLocationContent() { nsaBladeburner.innerText = "Enter Bladeburner Headquarters"; } else { setInfiltrateButton(infiltrate, Locations.Sector12NSA, - 1400, 40, 80, 7.2); + 1260, 40, 80, 6.7); nsaBladeburner.innerText = "Apply to Bladeburner Division"; } nsaBladeburner.style.display = "block"; } else { setInfiltrateButton(infiltrate, Locations.Sector12NSA, - 1400, 40, 80, 7.2); + 1260, 40, 80, 6.7); } break; @@ -747,7 +747,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12AlphaEnterprises, - 250, 14, 40, 2.7); + 225, 14, 40, 2.5); break; case Locations.Sector12CarmichaelSecurity: @@ -761,7 +761,7 @@ function displayLocationContent() { securityJob.style.display = "block"; agentJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.Sector12CarmichaelSecurity, - 500, 18, 60, 2.7); + 450, 18, 60, 2.5); break; case Locations.Sector12FoodNStuff: @@ -819,7 +819,7 @@ function displayLocationContent() { securityEngineerJob.style.display = "block"; networkEngineerJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.NewTokyoDefComm, - 1300, 28, 70, 5.4); + 1170, 28, 70, 5); break; case Locations.NewTokyoVitaLife: @@ -832,7 +832,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.NewTokyoVitaLife, - 750, 22, 100, 5); + 675, 22, 100, 4.7); break; case Locations.NewTokyoGlobalPharmaceuticals: @@ -846,7 +846,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.NewTokyoGlobalPharmaceuticals, - 900, 24, 80, 5.4); + 810, 24, 80, 5.1); break; case Locations.NewTokyoNoodleBar: @@ -886,7 +886,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.IshimaStormTechnologies, - 700, 24, 100, 5.9); + 630, 24, 100, 5.5); break; case Locations.IshimaNovaMedical: @@ -899,7 +899,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; businessJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.IshimaNovaMedical, - 600, 20, 50, 4.5); + 540, 20, 50, 4.25); break; case Locations.IshimaOmegaSoftware: @@ -918,7 +918,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.IshimaOmegaSoftware, - 200, 10, 40, 2.3); + 180, 10, 40, 2.1); break; case Locations.VolhavenTravelAgency: @@ -951,7 +951,7 @@ function displayLocationContent() { purchase512gb.style.display = "block"; purchase1tb.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenOmniTekIncorporated, - 1500, 44, 100, 6.3); + 1350, 44, 100, 5.9); break; case Locations.VolhavenNWO: @@ -964,7 +964,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenNWO, - 1800, 56, 200, 7.2); + 1620, 56, 200, 6.8); break; case Locations.VolhavenHeliosLabs: @@ -976,7 +976,7 @@ function displayLocationContent() { securityEngineerJob.style.display = "block"; networkEngineerJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenHeliosLabs, - 1200, 28, 75, 5.4); + 1200, 28, 75, 5); break; case Locations.VolhavenOmniaCybersystems: @@ -988,7 +988,7 @@ function displayLocationContent() { networkEngineerJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenOmniaCybersystems, - 900, 28, 90, 5.8); + 810, 28, 90, 5.3); break; case Locations.VolhavenLexoCorp: @@ -1002,7 +1002,7 @@ function displayLocationContent() { businessJob.style.display = "block"; securityJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenLexoCorp, - 500, 14, 40, 3.1); + 500, 14, 40, 2.8); break; case Locations.VolhavenSysCoreSecurities: @@ -1013,7 +1013,7 @@ function displayLocationContent() { securityEngineerJob.style.display = "block"; networkEngineerJob.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenSysCoreSecurities, - 600, 16, 50, 3.6); + 540, 16, 50, 3.2); break; case Locations.VolhavenCompuTek: @@ -1035,7 +1035,7 @@ function displayLocationContent() { purchaseHomeRam.style.display = "block"; purchaseHomeCores.style.display = "block"; setInfiltrateButton(infiltrate, Locations.VolhavenCompuTek, - 300, 12, 35, 3.1); + 270, 12, 35, 2.75); break; case Locations.VolhavenMilleniumFitnessGym: