added two additonal augmentations

* refactored augmentation names to enum
This commit is contained in:
phyzical 2022-03-24 21:19:49 +08:00
parent 80edb744bf
commit e8fffc6183
5 changed files with 189 additions and 262 deletions

@ -94,7 +94,33 @@ function getRandomBonus(): any {
return bonuses[Math.floor(bonuses.length * randomNumber.random())];
}
export const infiltratorsAugmentations = [
export const infiltratorsOtherAugmentations = [
new Augmentation({
name: AugmentationNames.BionicFingers,
repCost: 15e1,
moneyCost: 1e6,
info:
"This state of the art augmentation removes the need for bones and tendons in your fingers, " +
"with this you will have the dexterity equal to the best rubik's cube player in the world. ",
stats: <>This augmentation increases the rep reward to {FactionNames.Infiltrators} by 5 per infiltration.</>,
factions: [FactionNames.Infiltrators],
}),
new Augmentation({
name: AugmentationNames.CorporationManagementImplant,
repCost: 25e1,
moneyCost: 1e6,
info:
"As time went on corporations realized that managers were redundant if they could be replaced by AI chips " +
"implanted directly in the brain, and so the this implant was developed which could analyse the users brain " +
"to find the perfect tone and sounding voice to increase productivity of the user to maximum profits.",
stats: (
<>This augmentation multiplies the rep reward to {FactionNames.Infiltrators} by 2.5 per infiltration.</>
),
factions: [FactionNames.Infiltrators],
}),
];
export const infiltratorsMiniGameAugmentations = [
new Augmentation({
name: AugmentationNames.BagOfSand,
repCost: 1e2,

@ -17,7 +17,8 @@ import {
churchOfTheMachineGodAugmentations,
generalAugmentations,
getNextNeuroFluxLevel,
infiltratorsAugmentations,
infiltratorsMiniGameAugmentations,
infiltratorsOtherAugmentations,
initNeuroFluxGovernor,
initUnstableCircadianModulator,
} from "./AugmentationCreator";
@ -33,7 +34,8 @@ function createAugmentations(): void {
initNeuroFluxGovernor(),
initUnstableCircadianModulator(),
...generalAugmentations,
...infiltratorsAugmentations,
...infiltratorsMiniGameAugmentations,
...infiltratorsOtherAugmentations,
...(factionExists(FactionNames.Bladeburners) ? bladeburnerAugmentations : []),
...(factionExists(FactionNames.ChurchOfTheMachineGod) ? churchOfTheMachineGodAugmentations : []),
].map(resetAugmentation);
@ -62,25 +64,35 @@ export function getGenericAugmentationPriceMultiplier(): number {
return Math.pow(getBaseAugmentationPriceMultiplier(), Player.queuedAugmentations.length);
}
function updateNeuroFluxGovernorCosts(neuroFluxGovernorAugmentation: Augmentation): void {
let nextLevel = getNextNeuroFluxLevel();
--nextLevel;
const multiplier = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);
neuroFluxGovernorAugmentation.baseRepRequirement *= multiplier * BitNodeMultipliers.AugmentationRepCost;
neuroFluxGovernorAugmentation.baseCost *= multiplier * BitNodeMultipliers.AugmentationMoneyCost;
for (let i = 0; i < Player.queuedAugmentations.length - 1; ++i) {
neuroFluxGovernorAugmentation.baseCost *= getBaseAugmentationPriceMultiplier();
}
}
function updateInfiltratorCosts(infiltratorAugmentation: Augmentation): void {
const infiltratorMultiplier =
infiltratorsMiniGameAugmentations.filter((augmentation) => Player.hasAugmentation(augmentation.name)).length + 1;
infiltratorAugmentation.baseCost = Math.pow(infiltratorAugmentation.baseCost * 1000, infiltratorMultiplier);
if (infiltratorsMiniGameAugmentations.find((augmentation) => augmentation.name === infiltratorAugmentation.name)) {
infiltratorAugmentation.baseRepRequirement *= infiltratorMultiplier;
}
}
export function updateAugmentationCosts(): void {
for (const name of Object.keys(Augmentations)) {
if (Augmentations.hasOwnProperty(name)) {
const augmentationToUpdate = Augmentations[name];
if (augmentationToUpdate.name === AugmentationNames.NeuroFluxGovernor) {
let nextLevel = getNextNeuroFluxLevel();
--nextLevel;
const multiplier = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);
augmentationToUpdate.baseRepRequirement *= multiplier * BitNodeMultipliers.AugmentationRepCost;
augmentationToUpdate.baseCost *= multiplier * BitNodeMultipliers.AugmentationMoneyCost;
for (let i = 0; i < Player.queuedAugmentations.length - 1; ++i) {
augmentationToUpdate.baseCost *= getBaseAugmentationPriceMultiplier();
}
updateNeuroFluxGovernorCosts(augmentationToUpdate);
} else if (augmentationToUpdate.factions.includes(FactionNames.Infiltrators)) {
const infiltratorMultiplier =
infiltratorsAugmentations.filter((augmentation) => Player.hasAugmentation(augmentation.name)).length + 1;
augmentationToUpdate.baseCost = Math.pow(augmentationToUpdate.baseCost * 1000, infiltratorMultiplier);
augmentationToUpdate.baseRepRequirement *= infiltratorMultiplier;
updateInfiltratorCosts(augmentationToUpdate);
} else {
augmentationToUpdate.baseCost *= getGenericAugmentationPriceMultiplier();
}

@ -1,251 +1,133 @@
export const AugmentationNames: {
Targeting1: string;
Targeting2: string;
Targeting3: string;
SyntheticHeart: string;
SynfibrilMuscle: string;
CombatRib1: string;
CombatRib2: string;
CombatRib3: string;
NanofiberWeave: string;
SubdermalArmor: string;
WiredReflexes: string;
GrapheneBoneLacings: string;
BionicSpine: string;
GrapheneBionicSpine: string;
BionicLegs: string;
GrapheneBionicLegs: string;
SpeechProcessor: string;
TITN41Injection: string;
EnhancedSocialInteractionImplant: string;
BitWire: string;
ArtificialBioNeuralNetwork: string;
ArtificialSynapticPotentiation: string;
EnhancedMyelinSheathing: string;
SynapticEnhancement: string;
NeuralRetentionEnhancement: string;
DataJack: string;
ENM: string;
ENMCore: string;
ENMCoreV2: string;
ENMCoreV3: string;
ENMAnalyzeEngine: string;
ENMDMA: string;
Neuralstimulator: string;
NeuralAccelerator: string;
CranialSignalProcessorsG1: string;
CranialSignalProcessorsG2: string;
CranialSignalProcessorsG3: string;
CranialSignalProcessorsG4: string;
CranialSignalProcessorsG5: string;
NeuronalDensification: string;
NeuroreceptorManager: string;
NuoptimalInjectorImplant: string;
SpeechEnhancement: string;
FocusWire: string;
PCDNI: string;
PCDNIOptimizer: string;
PCDNINeuralNetwork: string;
PCMatrix: string;
ADRPheromone1: string;
ADRPheromone2: string;
ShadowsSimulacrum: string;
HacknetNodeCPUUpload: string;
HacknetNodeCacheUpload: string;
HacknetNodeNICUpload: string;
HacknetNodeKernelDNI: string;
HacknetNodeCoreDNI: string;
NeuroFluxGovernor: string;
Neurotrainer1: string;
Neurotrainer2: string;
Neurotrainer3: string;
Hypersight: string;
LuminCloaking1: string;
LuminCloaking2: string;
HemoRecirculator: string;
SmartSonar: string;
PowerRecirculator: string;
QLink: string;
TheRedPill: string;
SPTN97: string;
HiveMind: string;
CordiARCReactor: string;
SmartJaw: string;
Neotra: string;
Xanipher: string;
nextSENS: string;
OmniTekInfoLoad: string;
PhotosyntheticCells: string;
Neurolink: string;
TheBlackHand: string;
UnstableCircadianModulator: string;
CRTX42AA: string;
Neuregen: string;
CashRoot: string;
NutriGen: string;
INFRARet: string;
DermaForce: string;
GrapheneBrachiBlades: string;
GrapheneBionicArms: string;
BrachiBlades: string;
BionicArms: string;
SNA: string;
HydroflameLeftArm: string;
EsperEyewear: string;
EMS4Recombination: string;
OrionShoulder: string;
HyperionV1: string;
HyperionV2: string;
GolemSerum: string;
VangelisVirus: string;
VangelisVirus3: string;
INTERLINKED: string;
BladeRunner: string;
BladeArmor: string;
BladeArmorPowerCells: string;
BladeArmorEnergyShielding: string;
BladeArmorUnibeam: string;
BladeArmorOmnibeam: string;
BladeArmorIPU: string;
BladesSimulacrum: string;
StaneksGift1: string;
StaneksGift2: string;
StaneksGift3: string;
BagOfSand: string;
IntellisenseModule: string;
ReverseDictionary: string;
AmuletOfPersuasion: string;
LameSharkRepository: string;
CyberDecoder: string;
MineDetector: string;
WireCuttingManual: string;
} = {
Targeting1: "Augmented Targeting I",
Targeting2: "Augmented Targeting II",
Targeting3: "Augmented Targeting III",
SyntheticHeart: "Synthetic Heart",
SynfibrilMuscle: "Synfibril Muscle",
CombatRib1: "Combat Rib I",
CombatRib2: "Combat Rib II",
CombatRib3: "Combat Rib III",
NanofiberWeave: "Nanofiber Weave",
SubdermalArmor: "NEMEAN Subdermal Weave",
WiredReflexes: "Wired Reflexes",
GrapheneBoneLacings: "Graphene Bone Lacings",
BionicSpine: "Bionic Spine",
GrapheneBionicSpine: "Graphene Bionic Spine Upgrade",
BionicLegs: "Bionic Legs",
GrapheneBionicLegs: "Graphene Bionic Legs Upgrade",
SpeechProcessor: "Speech Processor Implant",
TITN41Injection: "TITN-41 Gene-Modification Injection",
EnhancedSocialInteractionImplant: "Enhanced Social Interaction Implant",
BitWire: "BitWire",
ArtificialBioNeuralNetwork: "Artificial Bio-neural Network Implant",
ArtificialSynapticPotentiation: "Artificial Synaptic Potentiation",
EnhancedMyelinSheathing: "Enhanced Myelin Sheathing",
SynapticEnhancement: "Synaptic Enhancement Implant",
NeuralRetentionEnhancement: "Neural-Retention Enhancement",
DataJack: "DataJack",
ENM: "Embedded Netburner Module",
ENMCore: "Embedded Netburner Module Core Implant",
ENMCoreV2: "Embedded Netburner Module Core V2 Upgrade",
ENMCoreV3: "Embedded Netburner Module Core V3 Upgrade",
ENMAnalyzeEngine: "Embedded Netburner Module Analyze Engine",
ENMDMA: "Embedded Netburner Module Direct Memory Access Upgrade",
Neuralstimulator: "Neuralstimulator",
NeuralAccelerator: "Neural Accelerator",
CranialSignalProcessorsG1: "Cranial Signal Processors - Gen I",
CranialSignalProcessorsG2: "Cranial Signal Processors - Gen II",
CranialSignalProcessorsG3: "Cranial Signal Processors - Gen III",
CranialSignalProcessorsG4: "Cranial Signal Processors - Gen IV",
CranialSignalProcessorsG5: "Cranial Signal Processors - Gen V",
NeuronalDensification: "Neuronal Densification",
NeuroreceptorManager: "Neuroreceptor Management Implant",
NuoptimalInjectorImplant: "Nuoptimal Nootropic Injector Implant",
SpeechEnhancement: "Speech Enhancement",
FocusWire: "FocusWire",
PCDNI: "PC Direct-Neural Interface",
PCDNIOptimizer: "PC Direct-Neural Interface Optimization Submodule",
PCDNINeuralNetwork: "PC Direct-Neural Interface NeuroNet Injector",
PCMatrix: "PCMatrix",
ADRPheromone1: "ADR-V1 Pheromone Gene",
ADRPheromone2: "ADR-V2 Pheromone Gene",
ShadowsSimulacrum: "The Shadow's Simulacrum",
HacknetNodeCPUUpload: "Hacknet Node CPU Architecture Neural-Upload",
HacknetNodeCacheUpload: "Hacknet Node Cache Architecture Neural-Upload",
HacknetNodeNICUpload: "Hacknet Node NIC Architecture Neural-Upload",
HacknetNodeKernelDNI: "Hacknet Node Kernel Direct-Neural Interface",
HacknetNodeCoreDNI: "Hacknet Node Core Direct-Neural Interface",
NeuroFluxGovernor: "NeuroFlux Governor",
Neurotrainer1: "Neurotrainer I",
Neurotrainer2: "Neurotrainer II",
Neurotrainer3: "Neurotrainer III",
Hypersight: "HyperSight Corneal Implant",
LuminCloaking1: "LuminCloaking-V1 Skin Implant",
LuminCloaking2: "LuminCloaking-V2 Skin Implant",
HemoRecirculator: "HemoRecirculator",
SmartSonar: "SmartSonar Implant",
PowerRecirculator: "Power Recirculation Core",
QLink: "QLink",
TheRedPill: "The Red Pill",
SPTN97: "SPTN-97 Gene Modification",
HiveMind: "ECorp HVMind Implant",
CordiARCReactor: "CordiARC Fusion Reactor",
SmartJaw: "SmartJaw",
Neotra: "Neotra",
Xanipher: "Xanipher",
nextSENS: "nextSENS Gene Modification",
OmniTekInfoLoad: "OmniTek InfoLoad",
PhotosyntheticCells: "Photosynthetic Cells",
Neurolink: "BitRunners Neurolink",
TheBlackHand: "The Black Hand",
UnstableCircadianModulator: "Unstable Circadian Modulator",
CRTX42AA: "CRTX42-AA Gene Modification",
Neuregen: "Neuregen Gene Modification",
CashRoot: "CashRoot Starter Kit",
NutriGen: "NutriGen Implant",
INFRARet: "INFRARET Enhancement",
DermaForce: "DermaForce Particle Barrier",
GrapheneBrachiBlades: "Graphene BrachiBlades Upgrade",
GrapheneBionicArms: "Graphene Bionic Arms Upgrade",
BrachiBlades: "BrachiBlades",
BionicArms: "Bionic Arms",
SNA: "Social Negotiation Assistant (S.N.A)",
HydroflameLeftArm: "Hydroflame Left Arm",
EsperEyewear: "EsperTech Bladeburner Eyewear",
EMS4Recombination: "EMS-4 Recombination",
OrionShoulder: "ORION-MKIV Shoulder",
HyperionV1: "Hyperion Plasma Cannon V1",
HyperionV2: "Hyperion Plasma Cannon V2",
GolemSerum: "GOLEM Serum",
VangelisVirus: "Vangelis Virus",
VangelisVirus3: "Vangelis Virus 3.0",
INTERLINKED: "I.N.T.E.R.L.I.N.K.E.D",
BladeRunner: "Blade's Runners",
BladeArmor: "BLADE-51b Tesla Armor",
BladeArmorPowerCells: "BLADE-51b Tesla Armor: Power Cells Upgrade",
BladeArmorEnergyShielding: "BLADE-51b Tesla Armor: Energy Shielding Upgrade",
BladeArmorUnibeam: "BLADE-51b Tesla Armor: Unibeam Upgrade",
BladeArmorOmnibeam: "BLADE-51b Tesla Armor: Omnibeam Upgrade",
BladeArmorIPU: "BLADE-51b Tesla Armor: IPU Upgrade",
BladesSimulacrum: "The Blade's Simulacrum",
export enum AugmentationNames {
Targeting1 = "Augmented Targeting I",
Targeting2 = "Augmented Targeting II",
Targeting3 = "Augmented Targeting III",
SyntheticHeart = "Synthetic Heart",
SynfibrilMuscle = "Synfibril Muscle",
CombatRib1 = "Combat Rib I",
CombatRib2 = "Combat Rib II",
CombatRib3 = "Combat Rib III",
NanofiberWeave = "Nanofiber Weave",
SubdermalArmor = "NEMEAN Subdermal Weave",
WiredReflexes = "Wired Reflexes",
GrapheneBoneLacings = "Graphene Bone Lacings",
BionicSpine = "Bionic Spine",
GrapheneBionicSpine = "Graphene Bionic Spine Upgrade",
BionicLegs = "Bionic Legs",
GrapheneBionicLegs = "Graphene Bionic Legs Upgrade",
SpeechProcessor = "Speech Processor Implant",
TITN41Injection = "TITN-41 Gene-Modification Injection",
EnhancedSocialInteractionImplant = "Enhanced Social Interaction Implant",
BitWire = "BitWire",
ArtificialBioNeuralNetwork = "Artificial Bio-neural Network Implant",
ArtificialSynapticPotentiation = "Artificial Synaptic Potentiation",
EnhancedMyelinSheathing = "Enhanced Myelin Sheathing",
SynapticEnhancement = "Synaptic Enhancement Implant",
NeuralRetentionEnhancement = "Neural-Retention Enhancement",
DataJack = "DataJack",
ENM = "Embedded Netburner Module",
ENMCore = "Embedded Netburner Module Core Implant",
ENMCoreV2 = "Embedded Netburner Module Core V2 Upgrade",
ENMCoreV3 = "Embedded Netburner Module Core V3 Upgrade",
ENMAnalyzeEngine = "Embedded Netburner Module Analyze Engine",
ENMDMA = "Embedded Netburner Module Direct Memory Access Upgrade",
Neuralstimulator = "Neuralstimulator",
NeuralAccelerator = "Neural Accelerator",
CranialSignalProcessorsG1 = "Cranial Signal Processors - Gen I",
CranialSignalProcessorsG2 = "Cranial Signal Processors - Gen II",
CranialSignalProcessorsG3 = "Cranial Signal Processors - Gen III",
CranialSignalProcessorsG4 = "Cranial Signal Processors - Gen IV",
CranialSignalProcessorsG5 = "Cranial Signal Processors - Gen V",
NeuronalDensification = "Neuronal Densification",
NeuroreceptorManager = "Neuroreceptor Management Implant",
NuoptimalInjectorImplant = "Nuoptimal Nootropic Injector Implant",
SpeechEnhancement = "Speech Enhancement",
FocusWire = "FocusWire",
PCDNI = "PC Direct-Neural Interface",
PCDNIOptimizer = "PC Direct-Neural Interface Optimization Submodule",
PCDNINeuralNetwork = "PC Direct-Neural Interface NeuroNet Injector",
PCMatrix = "PCMatrix",
ADRPheromone1 = "ADR-V1 Pheromone Gene",
ADRPheromone2 = "ADR-V2 Pheromone Gene",
ShadowsSimulacrum = "The Shadow's Simulacrum",
HacknetNodeCPUUpload = "Hacknet Node CPU Architecture Neural-Upload",
HacknetNodeCacheUpload = "Hacknet Node Cache Architecture Neural-Upload",
HacknetNodeNICUpload = "Hacknet Node NIC Architecture Neural-Upload",
HacknetNodeKernelDNI = "Hacknet Node Kernel Direct-Neural Interface",
HacknetNodeCoreDNI = "Hacknet Node Core Direct-Neural Interface",
NeuroFluxGovernor = "NeuroFlux Governor",
Neurotrainer1 = "Neurotrainer I",
Neurotrainer2 = "Neurotrainer II",
Neurotrainer3 = "Neurotrainer III",
Hypersight = "HyperSight Corneal Implant",
LuminCloaking1 = "LuminCloaking-V1 Skin Implant",
LuminCloaking2 = "LuminCloaking-V2 Skin Implant",
HemoRecirculator = "HemoRecirculator",
SmartSonar = "SmartSonar Implant",
PowerRecirculator = "Power Recirculation Core",
QLink = "QLink",
TheRedPill = "The Red Pill",
SPTN97 = "SPTN-97 Gene Modification",
HiveMind = "ECorp HVMind Implant",
CordiARCReactor = "CordiARC Fusion Reactor",
SmartJaw = "SmartJaw",
Neotra = "Neotra",
Xanipher = "Xanipher",
nextSENS = "nextSENS Gene Modification",
OmniTekInfoLoad = "OmniTek InfoLoad",
PhotosyntheticCells = "Photosynthetic Cells",
Neurolink = "BitRunners Neurolink",
TheBlackHand = "The Black Hand",
UnstableCircadianModulator = "Unstable Circadian Modulator",
CRTX42AA = "CRTX42-AA Gene Modification",
Neuregen = "Neuregen Gene Modification",
CashRoot = "CashRoot Starter Kit",
NutriGen = "NutriGen Implant",
INFRARet = "INFRARET Enhancement",
DermaForce = "DermaForce Particle Barrier",
GrapheneBrachiBlades = "Graphene BrachiBlades Upgrade",
GrapheneBionicArms = "Graphene Bionic Arms Upgrade",
BrachiBlades = "BrachiBlades",
BionicArms = "Bionic Arms",
SNA = "Social Negotiation Assistant (S.N.A)",
HydroflameLeftArm = "Hydroflame Left Arm",
EsperEyewear = "EsperTech Bladeburner Eyewear",
EMS4Recombination = "EMS-4 Recombination",
OrionShoulder = "ORION-MKIV Shoulder",
HyperionV1 = "Hyperion Plasma Cannon V1",
HyperionV2 = "Hyperion Plasma Cannon V2",
GolemSerum = "GOLEM Serum",
VangelisVirus = "Vangelis Virus",
VangelisVirus3 = "Vangelis Virus 3.0",
INTERLINKED = "I.N.T.E.R.L.I.N.K.E.D",
BladeRunner = "Blade's Runners",
BladeArmor = "BLADE-51b Tesla Armor",
BladeArmorPowerCells = "BLADE-51b Tesla Armor: Power Cells Upgrade",
BladeArmorEnergyShielding = "BLADE-51b Tesla Armor: Energy Shielding Upgrade",
BladeArmorUnibeam = "BLADE-51b Tesla Armor: Unibeam Upgrade",
BladeArmorOmnibeam = "BLADE-51b Tesla Armor: Omnibeam Upgrade",
BladeArmorIPU = "BLADE-51b Tesla Armor: IPU Upgrade",
BladesSimulacrum = "The Blade's Simulacrum",
StaneksGift1: "Stanek's Gift - Genesis",
StaneksGift2: "Stanek's Gift - Awakening",
StaneksGift3: "Stanek's Gift - Serenity",
StaneksGift1 = "Stanek's Gift - Genesis",
StaneksGift2 = "Stanek's Gift - Awakening",
StaneksGift3 = "Stanek's Gift - Serenity",
BagOfSand: "A Bag of Sand",
IntellisenseModule: "Intellisense Module",
ReverseDictionary: "Reverse Dictionary",
AmuletOfPersuasion: "Amulet of Persuasian",
LameSharkRepository: "Lame Shark Repository",
CyberDecoder: "Cyber Decoder",
MineDetector: "Mine Detector",
WireCuttingManual: "Wire Cutting Manual",
BagOfSand = "A Bag of Sand",
IntellisenseModule = "Intellisense Module",
ReverseDictionary = "Reverse Dictionary",
AmuletOfPersuasion = "Amulet of Persuasian",
LameSharkRepository = "Lame Shark Repository",
CyberDecoder = "Cyber Decoder",
MineDetector = "Mine Detector",
WireCuttingManual = "Wire Cutting Manual",
BionicFingers = "Bionic Fingers",
CorporationManagementImplant = "Corporation Management Implant",
//Wasteland Augs
//PepBoy: "P.E.P-Boy", Plasma Energy Projection System
//PepBoyForceField Generates plasma force fields
//PepBoyBlasts Generate high density plasma concussive blasts
//PepBoyDataStorage STore more data on pep boy,
};
}

@ -10,6 +10,7 @@ import Button from "@mui/material/Button";
import MenuItem from "@mui/material/MenuItem";
import Select, { SelectChangeEvent } from "@mui/material/Select";
import { FactionNames } from "../../Faction/data/FactionNames";
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
interface IProps {
StartingDifficulty: number;
@ -37,8 +38,14 @@ export function Victory(props: IProps): React.ReactElement {
levelBonus *
BitNodeMultipliers.InfiltrationRep;
// TODO: add two augmentations to infiltrators to increase this by 5 and * 2
const infiltratorsRepGain = 5;
const bionicFingersRepGain = player.hasAugmentation(AugmentationNames.BionicFingers, true) ? 5 : 0;
const CorporationManagementImplantRepMultiplier = player.hasAugmentation(
AugmentationNames.CorporationManagementImplant,
true,
)
? 2.5
: 1;
const infiltratorsRepGain = (5 + bionicFingersRepGain) * CorporationManagementImplantRepMultiplier;
const infiltratorFaction = Factions[FactionNames.Infiltrators];
const isMemberOfInfiltrators = infiltratorFaction && infiltratorFaction.isMember;

@ -111,7 +111,7 @@ export function generateResleeves(): Resleeve[] {
AugmentationNames.StaneksGift1,
AugmentationNames.StaneksGift2,
AugmentationNames.StaneksGift3,
];
].map((faction) => faction as string);
if (forbidden.includes(randKey)) {
continue;
}