GENERAL: Reorganizing and grouping node multipliers (#259)

This commit is contained in:
Mughur 2022-12-22 00:39:12 +02:00 committed by GitHub
parent 5a86be8714
commit b004b7203d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 197 additions and 100 deletions

@ -525,62 +525,84 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
case 2: { case 2: {
return Object.assign(mults, { return Object.assign(mults, {
HackingLevelMultiplier: 0.8, HackingLevelMultiplier: 0.8,
ServerGrowthRate: 0.8, ServerGrowthRate: 0.8,
ServerMaxMoney: 0.2, ServerMaxMoney: 0.2,
ServerStartingMoney: 0.4, ServerStartingMoney: 0.4,
PurchasedServerSoftcap: 1.3,
CrimeMoney: 3, CrimeMoney: 3,
InfiltrationMoney: 3,
FactionWorkRepGain: 0.5,
FactionPassiveRepGain: 0, FactionPassiveRepGain: 0,
FactionWorkRepGain: 0.5,
CorporationSoftcap: 0.9,
InfiltrationMoney: 3,
StaneksGiftPowerMultiplier: 2, StaneksGiftPowerMultiplier: 2,
StaneksGiftExtraSize: -6, StaneksGiftExtraSize: -6,
PurchasedServerSoftcap: 1.3,
CorporationSoftcap: 0.9,
WorldDaemonDifficulty: 5, WorldDaemonDifficulty: 5,
}); });
} }
case 3: { case 3: {
return Object.assign(mults, { return Object.assign(mults, {
HackingLevelMultiplier: 0.8, HackingLevelMultiplier: 0.8,
RepToDonateToFaction: 0.5,
AugmentationRepCost: 3, ServerGrowthRate: 0.2,
AugmentationMoneyCost: 3,
ServerMaxMoney: 0.2, ServerMaxMoney: 0.2,
ServerStartingMoney: 0.2, ServerStartingMoney: 0.2,
ServerGrowthRate: 0.2,
ScriptHackMoney: 0.2, HomeComputerRamCost: 1.5,
PurchasedServerCost: 2,
PurchasedServerSoftcap: 1.3,
CompanyWorkMoney: 0.25, CompanyWorkMoney: 0.25,
CrimeMoney: 0.25, CrimeMoney: 0.25,
HacknetNodeMoney: 0.25, HacknetNodeMoney: 0.25,
HomeComputerRamCost: 1.5, ScriptHackMoney: 0.2,
PurchasedServerCost: 2,
RepToDonateToFaction: 0.5,
AugmentationMoneyCost: 3,
AugmentationRepCost: 3,
GangSoftcap: 0.9,
GangUniqueAugs: 0.5,
StaneksGiftPowerMultiplier: 0.75, StaneksGiftPowerMultiplier: 0.75,
StaneksGiftExtraSize: -2, StaneksGiftExtraSize: -2,
PurchasedServerSoftcap: 1.3,
GangSoftcap: 0.9,
WorldDaemonDifficulty: 2, WorldDaemonDifficulty: 2,
GangUniqueAugs: 0.5,
}); });
} }
case 4: { case 4: {
return Object.assign(mults, { return Object.assign(mults, {
ServerMaxMoney: 0.15, ServerMaxMoney: 0.15,
ServerStartingMoney: 0.75, ServerStartingMoney: 0.75,
ScriptHackMoney: 0.2,
PurchasedServerSoftcap: 1.2,
CompanyWorkMoney: 0.1, CompanyWorkMoney: 0.1,
CrimeMoney: 0.2, CrimeMoney: 0.2,
HacknetNodeMoney: 0.05, HacknetNodeMoney: 0.05,
CompanyWorkExpGain: 0.5, ScriptHackMoney: 0.2,
ClassGymExpGain: 0.5, ClassGymExpGain: 0.5,
CompanyWorkExpGain: 0.5,
CrimeExpGain: 0.5,
FactionWorkExpGain: 0.5, FactionWorkExpGain: 0.5,
HackExpGain: 0.4, HackExpGain: 0.4,
CrimeExpGain: 0.5,
FactionWorkRepGain: 0.75, FactionWorkRepGain: 0.75,
GangUniqueAugs: 0.5,
StaneksGiftPowerMultiplier: 1.5, StaneksGiftPowerMultiplier: 1.5,
StaneksGiftExtraSize: 0, StaneksGiftExtraSize: 0,
PurchasedServerSoftcap: 1.2,
WorldDaemonDifficulty: 3, WorldDaemonDifficulty: 3,
GangUniqueAugs: 0.5,
}); });
} }
case 5: { case 5: {
@ -588,90 +610,129 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
ServerMaxMoney: 2, ServerMaxMoney: 2,
ServerStartingSecurity: 2, ServerStartingSecurity: 2,
ServerStartingMoney: 0.5, ServerStartingMoney: 0.5,
ScriptHackMoney: 0.15,
HacknetNodeMoney: 0.2, PurchasedServerSoftcap: 1.2,
CrimeMoney: 0.5, CrimeMoney: 0.5,
InfiltrationRep: 1.5, HacknetNodeMoney: 0.2,
InfiltrationMoney: 1.5, ScriptHackMoney: 0.15,
AugmentationMoneyCost: 2,
HackExpGain: 0.5, HackExpGain: 0.5,
AugmentationMoneyCost: 2,
InfiltrationMoney: 1.5,
InfiltrationRep: 1.5,
CorporationValuation: 0.5, CorporationValuation: 0.5,
GangUniqueAugs: 0.5,
StaneksGiftPowerMultiplier: 1.3, StaneksGiftPowerMultiplier: 1.3,
StaneksGiftExtraSize: 0, StaneksGiftExtraSize: 0,
PurchasedServerSoftcap: 1.2,
WorldDaemonDifficulty: 1.5, WorldDaemonDifficulty: 1.5,
GangUniqueAugs: 0.5,
}); });
} }
case 6: { case 6: {
return Object.assign(mults, { return Object.assign(mults, {
HackingLevelMultiplier: 0.35, HackingLevelMultiplier: 0.35,
ServerMaxMoney: 0.4, ServerMaxMoney: 0.4,
ServerStartingMoney: 0.5, ServerStartingMoney: 0.5,
ServerStartingSecurity: 1.5, ServerStartingSecurity: 1.5,
ScriptHackMoney: 0.75,
PurchasedServerSoftcap: 2,
CompanyWorkMoney: 0.5, CompanyWorkMoney: 0.5,
CrimeMoney: 0.75, CrimeMoney: 0.75,
InfiltrationMoney: 0.75,
CorporationValuation: 0.2,
HacknetNodeMoney: 0.2, HacknetNodeMoney: 0.2,
ScriptHackMoney: 0.75,
HackExpGain: 0.25, HackExpGain: 0.25,
InfiltrationMoney: 0.75,
CorporationValuation: 0.2,
CorporationSoftcap: 0.9,
GangSoftcap: 0.7,
GangUniqueAugs: 0.2,
DaedalusAugsRequirement: 35, DaedalusAugsRequirement: 35,
PurchasedServerSoftcap: 2,
StaneksGiftPowerMultiplier: 0.5, StaneksGiftPowerMultiplier: 0.5,
StaneksGiftExtraSize: 2, StaneksGiftExtraSize: 2,
GangSoftcap: 0.7,
CorporationSoftcap: 0.9,
WorldDaemonDifficulty: 2, WorldDaemonDifficulty: 2,
GangUniqueAugs: 0.2,
}); });
} }
case 7: { case 7: {
return Object.assign(mults, { return Object.assign(mults, {
BladeburnerRank: 0.6,
BladeburnerSkillCost: 2,
AugmentationMoneyCost: 3,
HackingLevelMultiplier: 0.35, HackingLevelMultiplier: 0.35,
ServerMaxMoney: 0.4, ServerMaxMoney: 0.4,
ServerStartingMoney: 0.5, ServerStartingMoney: 0.5,
ServerStartingSecurity: 1.5, ServerStartingSecurity: 1.5,
ScriptHackMoney: 0.5,
PurchasedServerSoftcap: 2,
CompanyWorkMoney: 0.5, CompanyWorkMoney: 0.5,
CrimeMoney: 0.75, CrimeMoney: 0.75,
InfiltrationMoney: 0.75,
CorporationValuation: 0.2,
HacknetNodeMoney: 0.2, HacknetNodeMoney: 0.2,
ScriptHackMoney: 0.5,
HackExpGain: 0.25, HackExpGain: 0.25,
AugmentationMoneyCost: 3,
InfiltrationMoney: 0.75,
FourSigmaMarketDataCost: 2, FourSigmaMarketDataCost: 2,
FourSigmaMarketDataApiCost: 2, FourSigmaMarketDataApiCost: 2,
CorporationValuation: 0.2,
CorporationSoftcap: 0.9,
BladeburnerRank: 0.6,
BladeburnerSkillCost: 2,
GangSoftcap: 0.7,
GangUniqueAugs: 0.2,
DaedalusAugsRequirement: 35, DaedalusAugsRequirement: 35,
PurchasedServerSoftcap: 2,
StaneksGiftPowerMultiplier: 0.9, StaneksGiftPowerMultiplier: 0.9,
StaneksGiftExtraSize: -1, StaneksGiftExtraSize: -1,
GangSoftcap: 0.7,
CorporationSoftcap: 0.9,
WorldDaemonDifficulty: 2, WorldDaemonDifficulty: 2,
GangUniqueAugs: 0.2,
}); });
} }
case 8: { case 8: {
return Object.assign(mults, { return Object.assign(mults, {
BladeburnerRank: 0, PurchasedServerSoftcap: 4,
ScriptHackMoney: 0.3,
ScriptHackMoneyGain: 0,
ManualHackMoney: 0,
CompanyWorkMoney: 0, CompanyWorkMoney: 0,
CrimeMoney: 0, CrimeMoney: 0,
HacknetNodeMoney: 0, HacknetNodeMoney: 0,
InfiltrationMoney: 0, ManualHackMoney: 0,
RepToDonateToFaction: 0, ScriptHackMoney: 0.3,
CorporationValuation: 0, ScriptHackMoneyGain: 0,
CodingContractMoney: 0, CodingContractMoney: 0,
StaneksGiftExtraSize: -99,
PurchasedServerSoftcap: 4, RepToDonateToFaction: 0,
GangSoftcap: 0,
InfiltrationMoney: 0,
CorporationValuation: 0,
CorporationSoftcap: 0, CorporationSoftcap: 0,
BladeburnerRank: 0,
GangSoftcap: 0,
GangUniqueAugs: 0, GangUniqueAugs: 0,
StaneksGiftExtraSize: -99,
}); });
} }
case 9: { case 9: {
@ -682,25 +743,36 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
DexterityLevelMultiplier: 0.45, DexterityLevelMultiplier: 0.45,
AgilityLevelMultiplier: 0.45, AgilityLevelMultiplier: 0.45,
CharismaLevelMultiplier: 0.45, CharismaLevelMultiplier: 0.45,
PurchasedServerLimit: 0,
ServerMaxMoney: 0.1,
ServerStartingMoney: 0.1,
ServerStartingSecurity: 2.5,
HomeComputerRamCost: 5, HomeComputerRamCost: 5,
PurchasedServerLimit: 0,
CrimeMoney: 0.5, CrimeMoney: 0.5,
ScriptHackMoney: 0.1, ScriptHackMoney: 0.1,
HackExpGain: 0.05, HackExpGain: 0.05,
ServerStartingMoney: 0.1,
ServerMaxMoney: 0.1,
ServerStartingSecurity: 2.5,
CorporationValuation: 0.5,
FourSigmaMarketDataCost: 5, FourSigmaMarketDataCost: 5,
FourSigmaMarketDataApiCost: 4, FourSigmaMarketDataApiCost: 4,
CorporationValuation: 0.5,
CorporationSoftcap: 0.7,
BladeburnerRank: 0.9, BladeburnerRank: 0.9,
BladeburnerSkillCost: 1.2, BladeburnerSkillCost: 1.2,
GangSoftcap: 0.8,
GangUniqueAugs: 0.25,
StaneksGiftPowerMultiplier: 0.5, StaneksGiftPowerMultiplier: 0.5,
StaneksGiftExtraSize: 2, StaneksGiftExtraSize: 2,
GangSoftcap: 0.8,
CorporationSoftcap: 0.7,
WorldDaemonDifficulty: 2, WorldDaemonDifficulty: 2,
GangUniqueAugs: 0.25,
}); });
} }
case 10: { case 10: {
@ -711,52 +783,72 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
DexterityLevelMultiplier: 0.4, DexterityLevelMultiplier: 0.4,
AgilityLevelMultiplier: 0.4, AgilityLevelMultiplier: 0.4,
CharismaLevelMultiplier: 0.4, CharismaLevelMultiplier: 0.4,
HomeComputerRamCost: 1.5,
PurchasedServerCost: 5,
PurchasedServerSoftcap: 1.1,
PurchasedServerLimit: 0.6,
PurchasedServerMaxRam: 0.5,
CompanyWorkMoney: 0.5, CompanyWorkMoney: 0.5,
CrimeMoney: 0.5, CrimeMoney: 0.5,
HacknetNodeMoney: 0.5, HacknetNodeMoney: 0.5,
ManualHackMoney: 0.5, ManualHackMoney: 0.5,
ScriptHackMoney: 0.5, ScriptHackMoney: 0.5,
CodingContractMoney: 0.5, CodingContractMoney: 0.5,
InfiltrationMoney: 0.5,
CorporationValuation: 0.5,
AugmentationMoneyCost: 5, AugmentationMoneyCost: 5,
AugmentationRepCost: 2, AugmentationRepCost: 2,
HomeComputerRamCost: 1.5,
PurchasedServerCost: 5, InfiltrationMoney: 0.5,
PurchasedServerLimit: 0.6,
PurchasedServerMaxRam: 0.5, CorporationValuation: 0.5,
CorporationSoftcap: 0.9,
BladeburnerRank: 0.8, BladeburnerRank: 0.8,
GangSoftcap: 0.9,
GangUniqueAugs: 0.25,
StaneksGiftPowerMultiplier: 0.75, StaneksGiftPowerMultiplier: 0.75,
StaneksGiftExtraSize: -3, StaneksGiftExtraSize: -3,
PurchasedServerSoftcap: 1.1,
GangSoftcap: 0.9,
CorporationSoftcap: 0.9,
WorldDaemonDifficulty: 2, WorldDaemonDifficulty: 2,
GangUniqueAugs: 0.25,
}); });
} }
case 11: { case 11: {
return Object.assign(mults, { return Object.assign(mults, {
HackingLevelMultiplier: 0.6, HackingLevelMultiplier: 0.6,
HackExpGain: 0.5,
ServerGrowthRate: 0.2,
ServerMaxMoney: 0.1, ServerMaxMoney: 0.1,
ServerStartingMoney: 0.1, ServerStartingMoney: 0.1,
ServerGrowthRate: 0.2,
ServerWeakenRate: 2, ServerWeakenRate: 2,
CrimeMoney: 3,
PurchasedServerSoftcap: 2,
CompanyWorkMoney: 0.5, CompanyWorkMoney: 0.5,
CrimeMoney: 3,
HacknetNodeMoney: 0.1, HacknetNodeMoney: 0.1,
CodingContractMoney: 0.25,
HackExpGain: 0.5,
AugmentationMoneyCost: 2, AugmentationMoneyCost: 2,
InfiltrationMoney: 2.5, InfiltrationMoney: 2.5,
InfiltrationRep: 2.5, InfiltrationRep: 2.5,
CorporationValuation: 0.1,
CodingContractMoney: 0.25,
FourSigmaMarketDataCost: 4, FourSigmaMarketDataCost: 4,
FourSigmaMarketDataApiCost: 4, FourSigmaMarketDataApiCost: 4,
PurchasedServerSoftcap: 2,
CorporationValuation: 0.1,
CorporationSoftcap: 0.9, CorporationSoftcap: 0.9,
WorldDaemonDifficulty: 1.5,
GangUniqueAugs: 0.75, GangUniqueAugs: 0.75,
WorldDaemonDifficulty: 1.5,
}); });
} }
case 12: { case 12: {
@ -773,9 +865,9 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
AgilityLevelMultiplier: dec, AgilityLevelMultiplier: dec,
CharismaLevelMultiplier: dec, CharismaLevelMultiplier: dec,
ServerGrowthRate: dec,
ServerMaxMoney: dec, ServerMaxMoney: dec,
ServerStartingMoney: dec, ServerStartingMoney: dec,
ServerGrowthRate: dec,
ServerWeakenRate: dec, ServerWeakenRate: dec,
//Does not scale, otherwise security might start at 300+ //Does not scale, otherwise security might start at 300+
@ -784,29 +876,29 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
HomeComputerRamCost: inc, HomeComputerRamCost: inc,
PurchasedServerCost: inc, PurchasedServerCost: inc,
PurchasedServerSoftcap: inc,
PurchasedServerLimit: dec, PurchasedServerLimit: dec,
PurchasedServerMaxRam: dec, PurchasedServerMaxRam: dec,
PurchasedServerSoftcap: inc,
ManualHackMoney: dec,
ScriptHackMoney: dec,
CompanyWorkMoney: dec, CompanyWorkMoney: dec,
CrimeMoney: dec, CrimeMoney: dec,
HacknetNodeMoney: dec, HacknetNodeMoney: dec,
ManualHackMoney: dec,
ScriptHackMoney: dec,
CodingContractMoney: dec, CodingContractMoney: dec,
CompanyWorkExpGain: dec,
ClassGymExpGain: dec, ClassGymExpGain: dec,
CompanyWorkExpGain: dec,
CrimeExpGain: dec,
FactionWorkExpGain: dec, FactionWorkExpGain: dec,
HackExpGain: dec, HackExpGain: dec,
CrimeExpGain: dec,
FactionWorkRepGain: dec,
FactionPassiveRepGain: dec, FactionPassiveRepGain: dec,
FactionWorkRepGain: dec,
RepToDonateToFaction: inc, RepToDonateToFaction: inc,
AugmentationRepCost: inc,
AugmentationMoneyCost: inc, AugmentationMoneyCost: inc,
AugmentationRepCost: inc,
InfiltrationMoney: dec, InfiltrationMoney: dec,
InfiltrationRep: dec, InfiltrationRep: dec,
@ -815,45 +907,45 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
FourSigmaMarketDataApiCost: inc, FourSigmaMarketDataApiCost: inc,
CorporationValuation: dec, CorporationValuation: dec,
CorporationSoftcap: 0.8,
BladeburnerRank: dec, BladeburnerRank: dec,
BladeburnerSkillCost: inc, BladeburnerSkillCost: inc,
GangSoftcap: 0.8,
GangUniqueAugs: dec,
StaneksGiftPowerMultiplier: inc, StaneksGiftPowerMultiplier: inc,
StaneksGiftExtraSize: inc, StaneksGiftExtraSize: inc,
GangSoftcap: 0.8,
CorporationSoftcap: 0.8,
WorldDaemonDifficulty: inc,
GangUniqueAugs: dec, WorldDaemonDifficulty: inc,
}); });
} }
case 13: { case 13: {
return Object.assign(mults, { return Object.assign(mults, {
PurchasedServerSoftcap: 1.6,
HackingLevelMultiplier: 0.25, HackingLevelMultiplier: 0.25,
StrengthLevelMultiplier: 0.7, StrengthLevelMultiplier: 0.7,
DefenseLevelMultiplier: 0.7, DefenseLevelMultiplier: 0.7,
DexterityLevelMultiplier: 0.7, DexterityLevelMultiplier: 0.7,
AgilityLevelMultiplier: 0.7, AgilityLevelMultiplier: 0.7,
PurchasedServerSoftcap: 1.6,
ServerMaxMoney: 0.45, ServerMaxMoney: 0.45,
ServerStartingMoney: 0.75, ServerStartingMoney: 0.75,
ServerStartingSecurity: 3, ServerStartingSecurity: 3,
ScriptHackMoney: 0.2,
CompanyWorkMoney: 0.4, CompanyWorkMoney: 0.4,
CrimeMoney: 0.4, CrimeMoney: 0.4,
HacknetNodeMoney: 0.4, HacknetNodeMoney: 0.4,
ScriptHackMoney: 0.2,
CodingContractMoney: 0.4, CodingContractMoney: 0.4,
CompanyWorkExpGain: 0.5,
ClassGymExpGain: 0.5, ClassGymExpGain: 0.5,
CompanyWorkExpGain: 0.5,
CrimeExpGain: 0.5,
FactionWorkExpGain: 0.5, FactionWorkExpGain: 0.5,
HackExpGain: 0.1, HackExpGain: 0.1,
CrimeExpGain: 0.5,
FactionWorkRepGain: 0.6, FactionWorkRepGain: 0.6,
@ -861,15 +953,18 @@ export function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultiplie
FourSigmaMarketDataApiCost: 10, FourSigmaMarketDataApiCost: 10,
CorporationValuation: 0.001, CorporationValuation: 0.001,
CorporationSoftcap: 0.3,
BladeburnerRank: 0.45, BladeburnerRank: 0.45,
BladeburnerSkillCost: 2, BladeburnerSkillCost: 2,
GangSoftcap: 0.3,
GangUniqueAugs: 0.1,
StaneksGiftPowerMultiplier: 2, StaneksGiftPowerMultiplier: 2,
StaneksGiftExtraSize: 1, StaneksGiftExtraSize: 1,
GangSoftcap: 0.3,
CorporationSoftcap: 0.3,
WorldDaemonDifficulty: 3, WorldDaemonDifficulty: 3,
GangUniqueAugs: 0.1,
}); });
} }
default: { default: {

@ -181,7 +181,9 @@ export function numCycleForGrowthCorrected(server: Server, targetMoney: number,
* DOES IT CONVERGES? In the present case it does. The reason why doesn't help explaining the algorithm. * DOES IT CONVERGES? In the present case it does. The reason why doesn't help explaining the algorithm.
* If you are interested then check out the wikipedia page. * If you are interested then check out the wikipedia page.
*/ */
const bt = exponentialBase ** threadMultiplier; let bt = exponentialBase ** threadMultiplier;
if (bt == Infinity) bt = 1e300;
let corr = Infinity; let corr = Infinity;
// Two sided error because we do not want to get stuck if the error stays on the wrong side // Two sided error because we do not want to get stuck if the error stays on the wrong side
do { do {