diff --git a/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts b/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts index 0cc7b5bae..a18793e25 100644 --- a/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts +++ b/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts @@ -13,6 +13,7 @@ import { getHackingWorkRepGain, } from "../../../PersonObjects/formulas/reputation"; import { scaleWorkStats, WorkStats } from "../../../Work/WorkStats"; +import { BitNodeMultipliers } from "../../../BitNode/BitNodeMultipliers"; interface SleeveFactionWorkParams { factionWorkType: FactionWorkType; diff --git a/src/PersonObjects/Sleeve/ui/StatsElement.tsx b/src/PersonObjects/Sleeve/ui/StatsElement.tsx index 811647f01..34abeb3d0 100644 --- a/src/PersonObjects/Sleeve/ui/StatsElement.tsx +++ b/src/PersonObjects/Sleeve/ui/StatsElement.tsx @@ -16,6 +16,7 @@ import { isSleeveClassWork } from "../Work/SleeveClassWork"; import { isSleeveFactionWork } from "../Work/SleeveFactionWork"; import { isSleeveCompanyWork } from "../Work/SleeveCompanyWork"; import { isSleeveCrimeWork } from "../Work/SleeveCrimeWork"; +import { BitNodeMultipliers } from "../../../BitNode/BitNodeMultipliers"; interface IProps { sleeve: Sleeve; @@ -100,51 +101,51 @@ export function EarningsElement(props: IProps): React.ReactElement { if (isSleeveCrimeWork(props.sleeve.currentWork)) { const gains = props.sleeve.currentWork.getExp(); data = [ - [`Money:`, ], - [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * gains.hackExp)}`], - [`Strength Exp:`, `${numeralWrapper.formatExp(5 * gains.strExp)}`], - [`Defense Exp:`, `${numeralWrapper.formatExp(5 * gains.defExp)}`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * gains.dexExp)}`], - [`Agility Exp:`, `${numeralWrapper.formatExp(5 * gains.agiExp)}`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * gains.chaExp)}`], + [`Money:`, ], + [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * gains.hackExp * BitNodeMultipliers.CrimeExpGain)}`], + [`Strength Exp:`, `${numeralWrapper.formatExp(5 * gains.strExp * BitNodeMultipliers.CrimeExpGain)}`], + [`Defense Exp:`, `${numeralWrapper.formatExp(5 * gains.defExp * BitNodeMultipliers.CrimeExpGain)}`], + [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * gains.dexExp * BitNodeMultipliers.CrimeExpGain)}`], + [`Agility Exp:`, `${numeralWrapper.formatExp(5 * gains.agiExp * BitNodeMultipliers.CrimeExpGain)}`], + [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * gains.chaExp * BitNodeMultipliers.CrimeExpGain)}`], ]; } if (isSleeveClassWork(props.sleeve.currentWork)) { const rates = props.sleeve.currentWork.calculateRates(player, props.sleeve); data = [ [`Money:`, ], - [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * rates.hackExp)} / sec`], - [`Strength Exp:`, `${numeralWrapper.formatExp(5 * rates.strExp)} / sec`], - [`Defense Exp:`, `${numeralWrapper.formatExp(5 * rates.defExp)} / sec`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * rates.dexExp)} / sec`], - [`Agility Exp:`, `${numeralWrapper.formatExp(5 * rates.agiExp)} / sec`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * rates.chaExp)} / sec`], + [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * rates.hackExp * BitNodeMultipliers.ClassGymExpGain)} / sec`], + [`Strength Exp:`, `${numeralWrapper.formatExp(5 * rates.strExp * BitNodeMultipliers.ClassGymExpGain)} / sec`], + [`Defense Exp:`, `${numeralWrapper.formatExp(5 * rates.defExp * BitNodeMultipliers.ClassGymExpGain)} / sec`], + [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * rates.dexExp * BitNodeMultipliers.ClassGymExpGain)} / sec`], + [`Agility Exp:`, `${numeralWrapper.formatExp(5 * rates.agiExp * BitNodeMultipliers.ClassGymExpGain)} / sec`], + [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * rates.chaExp * BitNodeMultipliers.ClassGymExpGain)} / sec`], ]; } if (isSleeveFactionWork(props.sleeve.currentWork)) { const rates = props.sleeve.currentWork.getExpRates(props.sleeve); const repGain = props.sleeve.currentWork.getReputationRate(props.sleeve); data = [ - [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * rates.hackExp)} / sec`], - [`Strength Exp:`, `${numeralWrapper.formatExp(5 * rates.strExp)} / sec`], - [`Defense Exp:`, `${numeralWrapper.formatExp(5 * rates.defExp)} / sec`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * rates.dexExp)} / sec`], - [`Agility Exp:`, `${numeralWrapper.formatExp(5 * rates.agiExp)} / sec`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * rates.chaExp)} / sec`], - [`Reputation:`, ], + [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * rates.hackExp * BitNodeMultipliers.FactionWorkExpGain)} / sec`], + [`Strength Exp:`, `${numeralWrapper.formatExp(5 * rates.strExp * BitNodeMultipliers.FactionWorkExpGain)} / sec`], + [`Defense Exp:`, `${numeralWrapper.formatExp(5 * rates.defExp * BitNodeMultipliers.FactionWorkExpGain)} / sec`], + [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * rates.dexExp * BitNodeMultipliers.FactionWorkExpGain)} / sec`], + [`Agility Exp:`, `${numeralWrapper.formatExp(5 * rates.agiExp * BitNodeMultipliers.FactionWorkExpGain)} / sec`], + [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * rates.chaExp * BitNodeMultipliers.FactionWorkExpGain)} / sec`], + [`Reputation:`, ], ]; } if (isSleeveCompanyWork(props.sleeve.currentWork)) { const rates = props.sleeve.currentWork.getGainRates(player, props.sleeve); data = [ - [`Money:`, ], - [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * rates.hackExp)} / sec`], - [`Strength Exp:`, `${numeralWrapper.formatExp(5 * rates.strExp)} / sec`], - [`Defense Exp:`, `${numeralWrapper.formatExp(5 * rates.defExp)} / sec`], - [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * rates.dexExp)} / sec`], - [`Agility Exp:`, `${numeralWrapper.formatExp(5 * rates.agiExp)} / sec`], - [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * rates.chaExp)} / sec`], + [`Money:`, ], + [`Hacking Exp:`, `${numeralWrapper.formatExp(5 * rates.hackExp * BitNodeMultipliers.CompanyWorkExpGain)} / sec`], + [`Strength Exp:`, `${numeralWrapper.formatExp(5 * rates.strExp * BitNodeMultipliers.CompanyWorkExpGain)} / sec`], + [`Defense Exp:`, `${numeralWrapper.formatExp(5 * rates.defExp * BitNodeMultipliers.CompanyWorkExpGain)} / sec`], + [`Dexterity Exp:`, `${numeralWrapper.formatExp(5 * rates.dexExp * BitNodeMultipliers.CompanyWorkExpGain)} / sec`], + [`Agility Exp:`, `${numeralWrapper.formatExp(5 * rates.agiExp * BitNodeMultipliers.CompanyWorkExpGain)} / sec`], + [`Charisma Exp:`, `${numeralWrapper.formatExp(5 * rates.chaExp * BitNodeMultipliers.CompanyWorkExpGain)} / sec`], [`Reputation:`, ], ]; }