From 2ac4cd41bb3a31a7061f9ee877236eb828f26035 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Tue, 23 Mar 2021 21:47:47 -0400 Subject: [PATCH] Added new BitNode multiplier, GangKarmaRequirement. Different BitNodes need different amount of negative karma to create a Gang. --- src/BitNode/BitNode.ts | 7 +++++++ src/BitNode/BitNodeMultipliers.ts | 6 ++++++ src/Constants.ts | 2 ++ src/PersonObjects/Player/PlayerObjectGangMethods.js | 4 ++-- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/BitNode/BitNode.ts b/src/BitNode/BitNode.ts index 28d0e3359..793764fa5 100644 --- a/src/BitNode/BitNode.ts +++ b/src/BitNode/BitNode.ts @@ -274,6 +274,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.InfiltrationMoney = 3; BitNodeMultipliers.FactionWorkRepGain = 0.5; BitNodeMultipliers.FactionPassiveRepGain = 0; + BitNodeMultipliers.GangKarmaRequirement = 0; break; case 3: // Corporatocracy BitNodeMultipliers.HackingLevelMultiplier = 0.8; @@ -289,6 +290,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.HacknetNodeMoney = 0.25; BitNodeMultipliers.HomeComputerRamCost = 1.5; BitNodeMultipliers.PurchasedServerCost = 2; + BitNodeMultipliers.GangKarmaRequirement = 3; break; case 4: // The Singularity BitNodeMultipliers.ServerMaxMoney = 0.15; @@ -331,6 +333,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.FactionPassiveRepGain = 0; BitNodeMultipliers.HackExpGain = 0.25; BitNodeMultipliers.DaedalusAugsRequirement = 1.166; // Results in 35 Augs needed + BitNodeMultipliers.GangKarmaRequirement = 5; break; case 7: // Bladeburner 2079 BitNodeMultipliers.BladeburnerRank = 0.6; @@ -351,6 +354,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.FourSigmaMarketDataCost = 2; BitNodeMultipliers.FourSigmaMarketDataApiCost = 2; BitNodeMultipliers.DaedalusAugsRequirement = 1.166; // Results in 35 Augs needed + BitNodeMultipliers.GangKarmaRequirement = 5; break; case 8: // Ghost of Wall Street BitNodeMultipliers.ScriptHackMoney = 0.3; @@ -363,6 +367,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.RepToDonateToFaction = 0; BitNodeMultipliers.CorporationValuation = 0; BitNodeMultipliers.CodingContractMoney = 0; + BitNodeMultipliers.GangKarmaRequirement = 10; break; case 9: // Hacktocracy BitNodeMultipliers.HackingLevelMultiplier = 0.4; @@ -384,6 +389,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.FourSigmaMarketDataApiCost = 4; BitNodeMultipliers.BladeburnerRank = 0.9; BitNodeMultipliers.BladeburnerSkillCost = 1.2; + BitNodeMultipliers.GangKarmaRequirement = 3; break; case 10: // Digital Carbon BitNodeMultipliers.HackingLevelMultiplier = 0.2; @@ -407,6 +413,7 @@ export function initBitNodeMultipliers(p: IPlayer) { BitNodeMultipliers.PurchasedServerLimit = 0.6; BitNodeMultipliers.PurchasedServerMaxRam = 0.5; BitNodeMultipliers.BladeburnerRank = 0.8; + BitNodeMultipliers.GangKarmaRequirement = 3; break; case 11: //The Big Crash BitNodeMultipliers.HackingLevelMultiplier = 0.5; diff --git a/src/BitNode/BitNodeMultipliers.ts b/src/BitNode/BitNodeMultipliers.ts index 52d7badf1..c2c5aa7ec 100644 --- a/src/BitNode/BitNodeMultipliers.ts +++ b/src/BitNode/BitNodeMultipliers.ts @@ -109,6 +109,11 @@ interface IBitNodeMultipliers { */ FourSigmaMarketDataCost: number; + /** + * Influences how much negative karma is required to create a gang in this bitnode. + */ + GangKarmaRequirement: number; + /** * Influences the experienced gained when hacking a server. */ @@ -268,4 +273,5 @@ export const BitNodeMultipliers: IBitNodeMultipliers = { BladeburnerSkillCost: 1, DaedalusAugsRequirement: 1, + GangKarmaRequirement: 1, }; diff --git a/src/Constants.ts b/src/Constants.ts index 45d20acce..503259489 100644 --- a/src/Constants.ts +++ b/src/Constants.ts @@ -230,6 +230,8 @@ export let CONSTANTS: IMap = { ` v0.51.0 - 2021-XX-XX formulas (hydroflame) ------- + BitNodeMultipliers + * 'GangKarmaRequirements': a new multipler that influences how much karma is required to make a gang different bitnodes. Netscript * 'connect': a new singularity function that connects you to a server. (like the terminal command) diff --git a/src/PersonObjects/Player/PlayerObjectGangMethods.js b/src/PersonObjects/Player/PlayerObjectGangMethods.js index b75c9ed7f..1d071066f 100644 --- a/src/PersonObjects/Player/PlayerObjectGangMethods.js +++ b/src/PersonObjects/Player/PlayerObjectGangMethods.js @@ -1,16 +1,16 @@ import { Factions } from "../../Faction/Factions"; import { Gang } from "../../Gang"; import { SourceFileFlags } from "../../SourceFile/SourceFileFlags"; +import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers"; // Amount of negative karma needed to manage a gang in BitNodes other than 2 const GangKarmaRequirement = -54000; export function canAccessGang() { if (this.bitNodeN === 2) { return true; } - if (SourceFileFlags[2] <= 0) { return false; } - return (this.karma <= GangKarmaRequirement); + return (this.karma <= BitNodeMultipliers.GangKarmaRequirement*GangKarmaRequirement); } export function getGangFaction() {