mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-21 08:42:53 +02:00
COMPANY: Much better job location interface (#927)
This commit is contained in:
@@ -3,14 +3,13 @@ import { constructorsForReviver, Generic_toJSON, Generic_fromJSON, IReviverValue
|
||||
import { Player } from "@player";
|
||||
import { Work, WorkType } from "./Work";
|
||||
import { influenceStockThroughCompanyWork } from "../StockMarket/PlayerInfluencing";
|
||||
import { AugmentationName, CompanyName, JobName } from "@enums";
|
||||
import { CompanyName, JobName } from "@enums";
|
||||
import { calculateCompanyWorkStats } from "./Formulas";
|
||||
import { Companies } from "../Company/Companies";
|
||||
import { applyWorkStats, scaleWorkStats, WorkStats } from "./WorkStats";
|
||||
import { Company } from "../Company/Company";
|
||||
import { dialogBoxCreate } from "../ui/React/DialogBox";
|
||||
import { Reputation } from "../ui/React/Reputation";
|
||||
import { CONSTANTS } from "../Constants";
|
||||
import { CompanyPositions } from "../Company/CompanyPositions";
|
||||
import { isMember } from "../utils/EnumHelper";
|
||||
import { invalidWork } from "./InvalidWork";
|
||||
@@ -34,10 +33,7 @@ export class CompanyWork extends Work {
|
||||
}
|
||||
|
||||
getGainRates(job: JobName): WorkStats {
|
||||
let focusBonus = 1;
|
||||
if (!Player.hasAugmentation(AugmentationName.NeuroreceptorManager, true)) {
|
||||
focusBonus = Player.focus ? 1 : CONSTANTS.BaseFocusBonus;
|
||||
}
|
||||
const focusBonus = CompanyPositions[job].isPartTime ? 1 : Player.focusPenalty();
|
||||
const company = this.getCompany();
|
||||
return scaleWorkStats(calculateCompanyWorkStats(Player, company, CompanyPositions[job], company.favor), focusBonus);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { dialogBoxCreate } from "../ui/React/DialogBox";
|
||||
import { constructorsForReviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from "../utils/JSONReviver";
|
||||
import { AugmentationName, CompletedProgramName } from "@enums";
|
||||
import { CompletedProgramName } from "@enums";
|
||||
import { CONSTANTS } from "../Constants";
|
||||
import { Player } from "@player";
|
||||
import { Programs } from "../Programs/Programs";
|
||||
@@ -55,10 +55,7 @@ export class CreateProgramWork extends Work {
|
||||
}
|
||||
|
||||
process(cycles: number): boolean {
|
||||
let focusBonus = 1;
|
||||
if (!Player.hasAugmentation(AugmentationName.NeuroreceptorManager, true)) {
|
||||
focusBonus = Player.focus ? 1 : CONSTANTS.BaseFocusBonus;
|
||||
}
|
||||
const focusBonus = Player.focusPenalty();
|
||||
//Higher hacking skill will allow you to create programs faster
|
||||
const reqLvl = this.getProgram().create?.level ?? 0;
|
||||
let skillMult = (Player.skills.hacking / reqLvl) * calculateIntelligenceBonus(Player.skills.intelligence, 3); //This should always be greater than 1;
|
||||
|
||||
@@ -55,10 +55,10 @@ export class CrimeWork extends Work {
|
||||
);
|
||||
return;
|
||||
}
|
||||
const focusPenalty = Player.focusPenalty();
|
||||
const focusBonus = Player.focusPenalty();
|
||||
// exp times 2 because were trying to maintain the same numbers as before the conversion
|
||||
// Technically the definition of Crimes should have the success numbers and failure should divide by 4
|
||||
let gains = scaleWorkStats(this.earnings(), focusPenalty, false);
|
||||
let gains = scaleWorkStats(this.earnings(), focusBonus, false);
|
||||
let karma = crime.karma;
|
||||
const success = determineCrimeSuccess(crime.type);
|
||||
if (success) {
|
||||
@@ -75,7 +75,7 @@ export class CrimeWork extends Work {
|
||||
Player.gainDexterityExp(gains.dexExp);
|
||||
Player.gainAgilityExp(gains.agiExp);
|
||||
Player.gainCharismaExp(gains.chaExp);
|
||||
Player.karma -= karma * focusPenalty;
|
||||
Player.karma -= karma * focusBonus;
|
||||
}
|
||||
|
||||
finish(): void {
|
||||
|
||||
@@ -4,12 +4,11 @@ import React from "react";
|
||||
import { Work, WorkType } from "./Work";
|
||||
import { constructorsForReviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from "../utils/JSONReviver";
|
||||
import { Player } from "@player";
|
||||
import { AugmentationName, FactionName, FactionWorkType } from "@enums";
|
||||
import { FactionName, FactionWorkType } from "@enums";
|
||||
import { Factions } from "../Faction/Factions";
|
||||
import { applyWorkStats, scaleWorkStats, WorkStats } from "./WorkStats";
|
||||
import { dialogBoxCreate } from "../ui/React/DialogBox";
|
||||
import { Reputation } from "../ui/React/Reputation";
|
||||
import { CONSTANTS } from "../Constants";
|
||||
import { calculateFactionExp, calculateFactionRep } from "./Formulas";
|
||||
import { getEnumHelper } from "../utils/EnumHelper";
|
||||
|
||||
@@ -36,18 +35,12 @@ export class FactionWork extends Work {
|
||||
}
|
||||
|
||||
getReputationRate(): number {
|
||||
let focusBonus = 1;
|
||||
if (!Player.hasAugmentation(AugmentationName.NeuroreceptorManager, true)) {
|
||||
focusBonus = Player.focus ? 1 : CONSTANTS.BaseFocusBonus;
|
||||
}
|
||||
const focusBonus = Player.focusPenalty();
|
||||
return calculateFactionRep(Player, this.factionWorkType, this.getFaction().favor) * focusBonus;
|
||||
}
|
||||
|
||||
getExpRates(): WorkStats {
|
||||
let focusBonus = 1;
|
||||
if (!Player.hasAugmentation(AugmentationName.NeuroreceptorManager, true)) {
|
||||
focusBonus = Player.focus ? 1 : CONSTANTS.BaseFocusBonus;
|
||||
}
|
||||
const focusBonus = Player.focusPenalty();
|
||||
const rate = calculateFactionExp(Player, this.factionWorkType);
|
||||
return scaleWorkStats(rate, focusBonus, false);
|
||||
}
|
||||
|
||||
@@ -35,11 +35,7 @@ export class GraftingWork extends Work {
|
||||
}
|
||||
|
||||
process(cycles: number): boolean {
|
||||
let focusBonus = 1;
|
||||
if (!Player.hasAugmentation(AugmentationName.NeuroreceptorManager, true)) {
|
||||
focusBonus = Player.focus ? 1 : CONSTANTS.BaseFocusBonus;
|
||||
}
|
||||
|
||||
const focusBonus = Player.focusPenalty();
|
||||
this.cyclesWorked += cycles;
|
||||
this.unitCompleted += CONSTANTS.MilliPerCycle * cycles * graftingIntBonus() * focusBonus;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user