added unfocus aug

This commit is contained in:
Olivier Gagnon 2021-09-26 21:11:49 -04:00
parent 14e6dd0158
commit 1fc2e6fd2a
6 changed files with 31 additions and 3 deletions

@ -2044,6 +2044,28 @@ function initAugmentations(): void {
} }
AddToAugmentations(SNA); AddToAugmentations(SNA);
const NeuroreceptorManager = new Augmentation({
name: AugmentationNames.NeuroreceptorManager,
repCost: 0.75e5,
moneyCost: 5.5e8,
info:
"A brain implant carefully assembled around the synapses, which " +
"micromanages the activity and levels of various neuroreceptor " +
"chemicals and modulates electrical acvitiy to optimize concentration, " +
"allowing the user to multitask much more effectively.",
stats: (
<>
This augmentation removes the penalty for not focusing on actions such as working in a job or working for a
faction.
</>
),
});
NeuroreceptorManager.addToFactions(["Tian Di Hui"]);
if (augmentationExists(AugmentationNames.NeuroreceptorManager)) {
delete Augmentations[AugmentationNames.NeuroreceptorManager];
}
AddToAugmentations(NeuroreceptorManager);
// Special Bladeburner Augmentations // Special Bladeburner Augmentations
const BladeburnersFactionName = "Bladeburners"; const BladeburnersFactionName = "Bladeburners";
if (factionExists(BladeburnersFactionName)) { if (factionExists(BladeburnersFactionName)) {

@ -41,6 +41,7 @@ export const AugmentationNames: IMap<string> = {
CranialSignalProcessorsG4: "Cranial Signal Processors - Gen IV", CranialSignalProcessorsG4: "Cranial Signal Processors - Gen IV",
CranialSignalProcessorsG5: "Cranial Signal Processors - Gen V", CranialSignalProcessorsG5: "Cranial Signal Processors - Gen V",
NeuronalDensification: "Neuronal Densification", NeuronalDensification: "Neuronal Densification",
NeuroreceptorManager: "Neuroreceptor Management Implant",
NuoptimalInjectorImplant: "Nuoptimal Nootropic Injector Implant", NuoptimalInjectorImplant: "Nuoptimal Nootropic Injector Implant",
SpeechEnhancement: "Speech Enhancement", SpeechEnhancement: "Speech Enhancement",
FocusWire: "FocusWire", FocusWire: "FocusWire",

@ -9,6 +9,7 @@ export const CONSTANTS: {
MaxSkillLevel: number; MaxSkillLevel: number;
MilliPerCycle: number; MilliPerCycle: number;
CorpFactionRepRequirement: number; CorpFactionRepRequirement: number;
BaseFocusBonus: number;
BaseCostFor1GBOfRamHome: number; BaseCostFor1GBOfRamHome: number;
BaseCostFor1GBOfRamServer: number; BaseCostFor1GBOfRamServer: number;
TravelCost: number; TravelCost: number;
@ -285,6 +286,7 @@ export const CONSTANTS: {
GameCyclesPerFiveMinutes: 300000 / 200, GameCyclesPerFiveMinutes: 300000 / 200,
// Player Work & Action // Player Work & Action
BaseFocusBonus: 0.8,
FactionWorkHacking: "Faction Hacking Work", FactionWorkHacking: "Faction Hacking Work",
FactionWorkField: "Faction Field Work", FactionWorkField: "Faction Field Work",
FactionWorkSecurity: "Faction Security Work", FactionWorkSecurity: "Faction Security Work",

@ -192,7 +192,7 @@ export interface IPlayer {
getNextCompanyPosition(company: Company, entryPosType: CompanyPosition): CompanyPosition | null; getNextCompanyPosition(company: Company, entryPosType: CompanyPosition): CompanyPosition | null;
getUpgradeHomeRamCost(): number; getUpgradeHomeRamCost(): number;
gotoLocation(to: LocationName): boolean; gotoLocation(to: LocationName): boolean;
hasAugmentation(aug: Augmentation): boolean; hasAugmentation(aug: string | Augmentation): boolean;
hasCorporation(): boolean; hasCorporation(): boolean;
hasGangWith(facName: string): boolean; hasGangWith(facName: string): boolean;
hasTorRouter(): boolean; hasTorRouter(): boolean;

@ -199,7 +199,7 @@ export class PlayerObject implements IPlayer {
getNextCompanyPosition: (company: Company, entryPosType: CompanyPosition) => CompanyPosition | null; getNextCompanyPosition: (company: Company, entryPosType: CompanyPosition) => CompanyPosition | null;
getUpgradeHomeRamCost: () => number; getUpgradeHomeRamCost: () => number;
gotoLocation: (to: LocationName) => boolean; gotoLocation: (to: LocationName) => boolean;
hasAugmentation: (aug: Augmentation) => boolean; hasAugmentation: (aug: string | Augmentation) => boolean;
hasCorporation: () => boolean; hasCorporation: () => boolean;
hasGangWith: (facName: string) => boolean; hasGangWith: (facName: string) => boolean;
hasTorRouter: () => boolean; hasTorRouter: () => boolean;

@ -519,7 +519,10 @@ export function resetWorkStatus(this: IPlayer, generalType?: string, group?: str
} }
export function processWorkEarnings(this: IPlayer, numCycles = 1): void { export function processWorkEarnings(this: IPlayer, numCycles = 1): void {
const focusBonus = this.focus ? 1 : 0.8; let focusBonus = 1;
if (!this.hasAugmentation(AugmentationNames["NeuroreceptorManager"])) {
focusBonus = this.focus ? 1 : CONSTANTS.BaseFocusBonus;
}
const hackExpGain = focusBonus * this.workHackExpGainRate * numCycles; const hackExpGain = focusBonus * this.workHackExpGainRate * numCycles;
const strExpGain = focusBonus * this.workStrExpGainRate * numCycles; const strExpGain = focusBonus * this.workStrExpGainRate * numCycles;
const defExpGain = focusBonus * this.workDefExpGainRate * numCycles; const defExpGain = focusBonus * this.workDefExpGainRate * numCycles;