diff --git a/src/Augmentation/Augmentation.ts b/src/Augmentation/Augmentation.tsx similarity index 52% rename from src/Augmentation/Augmentation.ts rename to src/Augmentation/Augmentation.tsx index b6e0a53f9..9cfe37499 100644 --- a/src/Augmentation/Augmentation.ts +++ b/src/Augmentation/Augmentation.tsx @@ -1,14 +1,18 @@ // Class definition for a single Augmentation object +import * as React from "react"; import { IMap } from "../types"; import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers"; import { Faction } from "../Faction/Faction"; import { Factions } from "../Faction/Factions"; +import { numeralWrapper } from "../ui/numeralFormat"; +import { Money } from "../ui/React/Money"; import { Generic_fromJSON, Generic_toJSON, Reviver } from "../../utils/JSONReviver"; interface IConstructorParams { info: string | JSX.Element; + stats?: JSX.Element; isSpecial?: boolean; moneyCost: number; name: string; @@ -45,6 +49,129 @@ interface IConstructorParams { bladeburner_stamina_gain_mult?: number; bladeburner_analysis_mult?: number; bladeburner_success_chance_mult?: number; + + startingMoney?: number; + programs?: string[]; +} + +function generateStatsDescription(mults: IMap, programs?: string[], startingMoney?: number): JSX.Element { + const f = (x: number, decimals: number = 0) => { + // look, I don't know how to make a "smart decimals" + // todo, make it smarter + if(x === 1.0777-1) return "7.77%"; + if(x === 1.777-1) return "77.7%"; + return numeralWrapper.formatPercentage(x, decimals); + }; + let desc = <>This augmentation: ; + + if(mults.hacking_mult && + mults.hacking_mult == mults.strength_mult && + mults.hacking_mult == mults.defense_mult && + mults.hacking_mult == mults.dexterity_mult && + mults.hacking_mult == mults.agility_mult && + mults.hacking_mult == mults.charisma_mult){ + desc = <>{desc}
- Increases all skills by {f(mults.hacking_mult-1)} + } else { + if(mults.hacking_mult) + desc = <>{desc}
- Increases Hacking by {f(mults.hacking_mult-1)} + + if(mults.strength_mult && + mults.strength_mult == mults.defense_mult && + mults.strength_mult == mults.dexterity_mult && + mults.strength_mult == mults.agility_mult) { + desc = <>{desc}
- Increases all combat skills by {f(mults.strength_mult-1)} + } else { + if(mults.strength_mult) + desc = <>{desc}
- Increases Strength by {f(mults.strength_mult-1)} + if(mults.defense_mult) + desc = <>{desc}
- Increases Defense by {f(mults.defense_mult-1)} + if(mults.dexterity_mult) + desc = <>{desc}
- Increases Dexterity by {f(mults.dexterity_mult-1)} + if(mults.agility_mult) + desc = <>{desc}
- Increases Agility by {f(mults.agility_mult-1)} + } + if(mults.charisma_mult) + desc = <>{desc}
- Increases Charisma by {f(mults.charisma_mult-1)} + } + + if(mults.hacking_exp_mult && + mults.hacking_exp_mult === mults.strength_exp_mult && + mults.hacking_exp_mult === mults.defense_exp_mult && + mults.hacking_exp_mult === mults.dexterity_exp_mult && + mults.hacking_exp_mult === mults.agility_exp_mult && + mults.hacking_exp_mult === mults.charisma_exp_mult) { + desc = <>{desc}
- Increases experience gain for all skills by {f(mults.hacking_exp_mult-1)} + } else { + if(mults.hacking_exp_mult) + desc = <>{desc}
- Increases Hacking experience gain by {f(mults.hacking_exp_mult-1)} + + if(mults.strength_exp_mult && + mults.strength_exp_mult === mults.defense_exp_mult && + mults.strength_exp_mult === mults.dexterity_exp_mult && + mults.strength_exp_mult === mults.agility_exp_mult) { + desc = <>{desc}
- Increases experience gain for all combat skills by {f(mults.strength_exp_mult-1)} + } else { + if(mults.strength_exp_mult) + desc = <>{desc}
- Increases Strength experience gain by {f(mults.strength_exp_mult-1)} + if(mults.defense_exp_mult) + desc = <>{desc}
- Increases Defense experience gain by {f(mults.defense_exp_mult-1)} + if(mults.dexterity_exp_mult) + desc = <>{desc}
- Increases Dexterity experience gain by {f(mults.dexterity_exp_mult-1)} + if(mults.agility_exp_mult) + desc = <>{desc}
- Increases Agility experience gain by {f(mults.agility_exp_mult-1)} + } + if(mults.charisma_exp_mult) + desc = <>{desc}
- Increases Charisma experience gain by {f(mults.charisma_exp_mult-1)} + } + + if(mults.hacking_speed_mult) + desc = <>{desc}
- Increases Hacking speed by {f(mults.hacking_speed_mult-1)} + if(mults.hacking_chance_mult) + desc = <>{desc}
- Increases hack() success chance by {f(mults.hacking_chance_mult-1)} + if(mults.hacking_money_mult) + desc = <>{desc}
- Increases hack() power by {f(mults.hacking_money_mult-1)} + if(mults.hacking_grow_mult) + desc = <>{desc}
- Increases grow() by {f(mults.hacking_grow_mult-1)} + + if(mults.faction_rep_mult && + mults.faction_rep_mult === mults.company_rep_mult) { + desc = <>{desc}
- Increases reputation gain from factions and companies by {f(mults.faction_rep_mult-1)} + } else { + if(mults.faction_rep_mult) + desc = <>{desc}
- Increases reputation gain from factions by {f(mults.faction_rep_mult-1)} + if(mults.company_rep_mult) + desc = <>{desc}
- Increases reputation gain from companies by {f(mults.company_rep_mult-1)} + } + + if(mults.crime_money_mult) + desc = <>{desc}
- Increases money gained from committing crimes by {f(mults.crime_money_mult-1)} + if(mults.crime_success_mult) + desc = <>{desc}
- Increases crime success rate by {f(mults.crime_success_mult-1)} + if(mults.work_money_mult) + desc = <>{desc}
- Increases money gained from working by {f(mults.work_money_mult-1)} + + if(mults.hacknet_node_money_mult) + desc = <>{desc}
- Increases Hacknet production by {f(mults.hacknet_node_money_mult-1)} + if(mults.hacknet_node_purchase_cost_mult) + desc = <>{desc}
- Decreases the purchase cost of Hacknet Nodes by {f(-(mults.hacknet_node_purchase_cost_mult-1))} + if(mults.hacknet_node_level_cost_mult) + desc = <>{desc}
- Decreases the upgrade cost of Hacknet Nodes by {f(-(mults.hacknet_node_level_cost_mult-1))} + + if(mults.bladeburner_max_stamina_mult) + desc = <>{desc}
- Increases Bladeburner Max Stamina by {f(mults.bladeburner_max_stamina_mult-1)} + if(mults.bladeburner_stamina_gain_mult) + desc = <>{desc}
- Increases Bladeburner Stamina gain by {f(mults.bladeburner_stamina_gain_mult-1)} + if(mults.bladeburner_analysis_mult) + desc = <>{desc}
- Increases Bladeburner Field Analysis effectiveness by {f(mults.bladeburner_analysis_mult-1)} + if(mults.bladeburner_success_chance_mult) + desc = <>{desc}
- Increases success chance in Bladeburner Contracts and Operations by {f(mults.bladeburner_success_chance_mult-1)} + + if(startingMoney) + desc = <>{desc}
- Provides {Money(startingMoney)} after a reset. + + if(programs) + desc = <>{desc}
- Provides {programs.join(' and ')} after a reset. + return desc; } export class Augmentation { @@ -58,6 +185,9 @@ export class Augmentation { // Description of what this Aug is and what it does info: string | JSX.Element; + // Description of the stats, often autogenerated, sometimes manually written. + stats: JSX.Element; + // Any Augmentation not immediately available in BitNode-1 is special (e.g. Bladeburner augs) isSpecial = false; @@ -126,6 +256,11 @@ export class Augmentation { if (params.bladeburner_stamina_gain_mult) { this.mults.bladeburner_stamina_gain_mult = params.bladeburner_stamina_gain_mult; } if (params.bladeburner_analysis_mult) { this.mults.bladeburner_analysis_mult = params.bladeburner_analysis_mult; } if (params.bladeburner_success_chance_mult) { this.mults.bladeburner_success_chance_mult = params.bladeburner_success_chance_mult; } + + if(params.stats) + this.stats = params.stats; + else + this.stats = generateStatsDescription(this.mults, params.programs, params.startingMoney); } // Adds this Augmentation to the specified Factions diff --git a/src/Augmentation/AugmentationHelpers.jsx b/src/Augmentation/AugmentationHelpers.jsx index 0161573b2..803f31242 100644 --- a/src/Augmentation/AugmentationHelpers.jsx +++ b/src/Augmentation/AugmentationHelpers.jsx @@ -13,10 +13,12 @@ import { prestigeAugmentation } from "../Prestige"; import { saveObject } from "../SaveObject"; import { Page, routing } from "../ui/navigationTracking"; import { onExport } from "../ExportBonus"; +import { Programs } from "../Programs/Programs"; import { dialogBoxCreate } from "../../utils/DialogBox"; import { clearObject } from "../../utils/helpers/clearObject"; import { Money } from "../ui/React/Money"; +import { CorruptableText } from "../ui/React/CorruptableText"; import { WHRNG } from "../Casino/RNG"; @@ -123,15 +125,13 @@ function initAugmentations() { //Time-Based Augment Test const randomBonuses = getRandomBonus(); - const UnstableCircadianModulator = new Augmentation({ + const UnstableCircadianModulatorParams = { name:AugmentationNames.UnstableCircadianModulator, moneyCost:5e9, repCost:3.625e5, - info:"An experimental nanobot injection. Its unstable nature leads to unpredictable results based on your circadian rhythm.

" + - "This augmentation:
" + randomBonuses.description + "

For now ...", - }); - - Object.keys(randomBonuses.bonuses).forEach(key => UnstableCircadianModulator.mults[key] = randomBonuses.bonuses[key]); - - + info:"An experimental nanobot injection. Its unstable nature leads to " + + "unpredictable results based on your circadian rhythm.", + } + Object.keys(randomBonuses.bonuses).forEach(key => UnstableCircadianModulatorParams[key] = randomBonuses.bonuses[key]); + const UnstableCircadianModulator = new Augmentation(UnstableCircadianModulatorParams); UnstableCircadianModulator.addToFactions(["Speakers for the Dead"]); if (augmentationExists(AugmentationNames.UnstableCircadianModulator)) { @@ -143,8 +143,7 @@ function initAugmentations() { const HemoRecirculator = new Augmentation({ name:AugmentationNames.HemoRecirculator, moneyCost:4.5e7, repCost:1e4, info:"A heart implant that greatly increases the body's ability to effectively use and pump " + - "blood.

" + - "This augmentation increases all of the player's combat stats by 8%.", + "blood.", strength_mult: 1.08, defense_mult: 1.08, agility_mult: 1.08, @@ -159,8 +158,7 @@ function initAugmentations() { const Targeting1 = new Augmentation({ name:AugmentationNames.Targeting1, moneyCost:1.5e7, repCost:5e3, info:"A cranial implant that is embedded within the inner ear structures and optic nerves. It regulates " + - "and enhances balance and hand-eye coordination.

" + - "This augmentation increases the player's dexterity by 10%.", + "and enhances balance and hand-eye coordination.", dexterity_mult: 1.1, }); Targeting1.addToFactions(["Slum Snakes", "The Dark Army", "The Syndicate", "Sector-12", "Ishima", @@ -173,8 +171,7 @@ function initAugmentations() { const Targeting2 = new Augmentation({ name:AugmentationNames.Targeting2, moneyCost:4.25e7, repCost:8.75e3, info:"This upgraded version of the 'Augmented Targeting' implant is capable of augmenting " + - "reality by digitally displaying weaknesses and vital signs of threats.

" + - "This augmentation increases the player's dexterity by 20%.", + "reality by digitally displaying weaknesses and vital signs of threats.", prereqs:[AugmentationNames.Targeting1], dexterity_mult: 1.2, }); @@ -188,8 +185,7 @@ function initAugmentations() { const Targeting3 = new Augmentation({ name:AugmentationNames.Targeting3, moneyCost:1.15e8, repCost:2.75e4, info:"The latest version of the 'Augmented Targeting' implant adds the ability to " + - "lock-on and track threats.

" + - "This augmentation increases the player's dexterity by 30%.", + "lock-on and track threats.", prereqs:[AugmentationNames.Targeting2], dexterity_mult: 1.3, }); @@ -203,8 +199,7 @@ function initAugmentations() { const SyntheticHeart = new Augmentation({ name:AugmentationNames.SyntheticHeart, moneyCost:2.875e9, repCost:7.5e5, info:"This advanced artificial heart, created from plasteel and graphene, is capable of pumping blood " + - "more efficiently than an organic heart.

" + - "This augmentation increases the player's agility and strength by 50%.", + "more efficiently than an organic heart.", agility_mult: 1.5, strength_mult: 1.5, }); @@ -219,8 +214,7 @@ function initAugmentations() { name:AugmentationNames.SynfibrilMuscle, repCost:4.375e5, moneyCost:1.125e9, info:"The myofibrils in human muscles are injected with special chemicals that react with the proteins inside " + "the myofibrils, altering their underlying structure. The end result is muscles that are stronger and more elastic. " + - "Scientists have named these artificially enhanced units 'synfibrils'.

" + - "This augmentation increases the player's strength and defense by 30%.", + "Scientists have named these artificially enhanced units 'synfibrils'.", strength_mult: 1.3, defense_mult: 1.3, }); @@ -234,8 +228,7 @@ function initAugmentations() { const CombatRib1 = new Augmentation({ name:AugmentationNames.CombatRib1, repCost:7.5e3, moneyCost:2.375e7, info:"The rib cage is augmented to continuously release boosters into the bloodstream " + - "which increase the oxygen-carrying capacity of blood.

" + - "This augmentation increases the player's strength and defense by 10%.", + "which increase the oxygen-carrying capacity of blood.", strength_mult: 1.1, defense_mult: 1.1, }); @@ -249,8 +242,7 @@ function initAugmentations() { const CombatRib2 = new Augmentation({ name:AugmentationNames.CombatRib2, repCost:1.875e4, moneyCost:6.5e7, info:"An upgraded version of the 'Combat Rib' augmentation that adds potent stimulants which " + - "improve focus and endurance while decreasing reaction time and fatigue.

" + - "This augmentation increases the player's strength and defense by 14%.", + "improve focus and endurance while decreasing reaction time and fatigue.", prereqs:[AugmentationNames.CombatRib1], strength_mult: 1.14, defense_mult: 1.14, @@ -265,8 +257,7 @@ function initAugmentations() { const CombatRib3 = new Augmentation({ name:AugmentationNames.CombatRib3, repCost:3.5e4, moneyCost:1.2e8, info:"The latest version of the 'Combat Rib' augmentation releases advanced anabolic steroids that " + - "improve muscle mass and physical performance while being safe and free of side effects.

" + - "This augmentation increases the player's strength and defense by 18%.", + "improve muscle mass and physical performance while being safe and free of side effects.", prereqs:[AugmentationNames.CombatRib2], strength_mult: 1.18, defense_mult: 1.18, @@ -281,8 +272,7 @@ function initAugmentations() { const NanofiberWeave = new Augmentation({ name:AugmentationNames.NanofiberWeave, repCost:3.75e4, moneyCost:1.25e8, info:"Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning, " + - "which improves its regenerative and extracellular homeostasis abilities.

" + - "This augmentation increases the player's strength and defense by 20%.", + "which improves its regenerative and extracellular homeostasis abilities.", strength_mult: 1.2, defense_mult: 1.2, }); @@ -299,8 +289,7 @@ function initAugmentations() { "The material is implanted underneath the skin, and is the most advanced form of defensive enhancement " + "that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective " + "at stopping piercing blows and reducing blunt trauma. The properties of graphene allow the plating to " + - "mitigate damage from any fire or electrical traumas.

" + - "This augmentation increases the player's defense by 120%.", + "mitigate damage from any fire or electrical traumas.", defense_mult: 2.2, }); SubdermalArmor.addToFactions(["The Syndicate", "Fulcrum Secret Technologies", "Illuminati", "Daedalus", @@ -313,8 +302,7 @@ function initAugmentations() { const WiredReflexes = new Augmentation({ name:AugmentationNames.WiredReflexes, repCost:1.25e3, moneyCost:2.5e6, info:"Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, " + - "supercharging the spread of neural signals and increasing reflex speed.

" + - "This augmentation increases the player's agility and dexterity by 5%.", + "supercharging the spread of neural signals and increasing reflex speed.", agility_mult: 1.05, dexterity_mult: 1.05, }); @@ -328,8 +316,7 @@ function initAugmentations() { const GrapheneBoneLacings = new Augmentation({ name:AugmentationNames.GrapheneBoneLacings, repCost:1.125e6, moneyCost:4.25e9, info:"Graphene is grafted and fused into the skeletal structure, " + - "enhancing bone density and tensile strength.

" + - "This augmentation increases the player's strength and defense by 70%.", + "enhancing bone density and tensile strength.", strength_mult: 1.7, defense_mult: 1.7, }); @@ -344,8 +331,7 @@ function initAugmentations() { info:"The spine is reconstructed using plasteel and carbon fibers. " + "It is now capable of stimulating and regulating neural signals " + "passing through the spinal cord, improving senses and reaction speed. " + - "The 'Bionic Spine' also interfaces with all other 'Bionic' implants.

" + - "This augmentation increases all of the player's combat stats by 15%.", + "The 'Bionic Spine' also interfaces with all other 'Bionic' implants.", strength_mult: 1.15, defense_mult: 1.15, agility_mult: 1.15, @@ -361,8 +347,7 @@ function initAugmentations() { const GrapheneBionicSpine = new Augmentation({ name:AugmentationNames.GrapheneBionicSpine, repCost:1.625e6, moneyCost:6e9, info:"An upgrade to the 'Bionic Spine' augmentation. The spine is fused with graphene " + - "which enhances durability and supercharges all body functions.

" + - "This augmentation increases all of the player's combat stats by 60%.", + "which enhances durability and supercharges all body functions.", prereqs:[AugmentationNames.BionicSpine], strength_mult: 1.6, defense_mult: 1.6, @@ -377,8 +362,7 @@ function initAugmentations() { const BionicLegs = new Augmentation({ name:AugmentationNames.BionicLegs, repCost:1.5e5, moneyCost:3.75e8, - info:"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.

" + - "This augmentation increases the player's agility by 60%.", + info:"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.", agility_mult: 1.6, }); BionicLegs.addToFactions(["Speakers for the Dead", "The Syndicate", "KuaiGong International", @@ -391,8 +375,7 @@ function initAugmentations() { const GrapheneBionicLegs = new Augmentation({ name:AugmentationNames.GrapheneBionicLegs, repCost:7.5e5, moneyCost:4.5e9, info:"An upgrade to the 'Bionic Legs' augmentation. The legs are fused " + - "with graphene, greatly enhancing jumping ability.

" + - "This augmentation increases the player's agility by 150%.", + "with graphene, greatly enhancing jumping ability.", prereqs: [AugmentationNames.BionicLegs], agility_mult: 2.5, }); @@ -407,8 +390,7 @@ function initAugmentations() { name:AugmentationNames.SpeechProcessor, repCost:7.5e3, moneyCost:5e7, info:"A cochlear implant with an embedded computer that analyzes incoming speech. " + "The embedded computer processes characteristics of incoming speech, such as tone " + - "and inflection, to pick up on subtle cues and aid in social interactions.

" + - "This augmentation increases the player's charisma by 20%.", + "and inflection, to pick up on subtle cues and aid in social interactions.", charisma_mult: 1.2, }); SpeechProcessor.addToFactions(["Tian Di Hui", "Chongqing", "Sector-12", "New Tokyo", "Aevum", @@ -422,8 +404,7 @@ function initAugmentations() { name:AugmentationNames.TITN41Injection, repCost:2.5e4, moneyCost:1.9e8, info:"TITN is a series of viruses that targets and alters the sequences of human DNA in genes that " + "control personality. The TITN-41 strain alters these genes so that the subject becomes more " + - "outgoing and socialable.

" + - "This augmentation increases the player's charisma and charisma experience gain rate by 15%.", + "outgoing and socialable.", charisma_mult: 1.15, charisma_exp_mult: 1.15, }); @@ -439,8 +420,7 @@ function initAugmentations() { "and interactions. The system uses a wide variety of factors such as facial expressions, body " + "language, and the voice tone, and inflection to determine the best course of action during social" + "situations. The implant also uses deep learning software to continuously learn new behavior" + - "patterns and how to best respond.

" + - "This augmentation increases the player's charisma and charisma experience gain rate by 60%.", + "patterns and how to best respond.", charisma_mult: 1.6, charisma_exp_mult: 1.6, }); @@ -455,8 +435,7 @@ function initAugmentations() { const BitWire = new Augmentation({ name:AugmentationNames.BitWire, repCost:3.75e3, moneyCost:1e7, info: "A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing " + - "capabilities.

" + - "This augmentation increases the player's hacking skill by 5%.", + "capabilities.", hacking_mult: 1.05, }); BitWire.addToFactions(["CyberSec", "NiteSec"]); @@ -471,11 +450,7 @@ function initAugmentations() { "The network is meant to mimic the way a biological brain solves a problem, with each " + "nanoprocessor acting similar to the way a neuron would in a neural network. However, these " + "nanoprocessors are programmed to perform computations much faster than organic neurons, " + - "allowing the user to solve much more complex problems at a much faster rate.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 3%.
" + - "Increases the amount of money the player's gains from hacking by 15%.
" + - "Increases the player's hacking skill by 12%.", + "allowing the user to solve much more complex problems at a much faster rate.", hacking_speed_mult: 1.03, hacking_money_mult: 1.15, hacking_mult: 1.12, @@ -489,11 +464,7 @@ function initAugmentations() { const ArtificialSynapticPotentiation = new Augmentation({ name:AugmentationNames.ArtificialSynapticPotentiation, repCost:6.25e3, moneyCost:8e7, info:"The body is injected with a chemical that artificially induces synaptic potentiation, " + - "otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 2%.
" + - "Increases the player's hacking chance by 5%.
" + - "Increases the player's hacking experience gain rate by 5%.", + "otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.", hacking_speed_mult: 1.02, hacking_chance_mult: 1.05, hacking_exp_mult: 1.05, @@ -509,11 +480,7 @@ function initAugmentations() { info:"Electrical signals are used to induce a new, artificial form of myelinogenesis in the human body. " + "This process results in the proliferation of new, synthetic myelin sheaths in the nervous " + "system. These myelin sheaths can propogate neuro-signals much faster than their organic " + - "counterparts, leading to greater processing speeds and better brain function.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 3%.
" + - "Increases the player's hacking skill by 8%.
" + - "Increases the player's hacking experience gain rate by 10%.", + "counterparts, leading to greater processing speeds and better brain function.", hacking_speed_mult: 1.03, hacking_exp_mult: 1.1, hacking_mult: 1.08, @@ -527,8 +494,7 @@ function initAugmentations() { const SynapticEnhancement = new Augmentation({ name:AugmentationNames.SynapticEnhancement, repCost:2e3, moneyCost:7.5e6, info:"A small cranial implant that continuously uses weak electrical signals to stimulate the brain and " + - "induce stronger synaptic activity. This improves the user's cognitive abilities.

" + - "This augmentation increases the player's hacking speed by 3%.", + "induce stronger synaptic activity. This improves the user's cognitive abilities.", hacking_speed_mult: 1.03, }); SynapticEnhancement.addToFactions(["CyberSec", "Aevum"]); @@ -540,8 +506,7 @@ function initAugmentations() { const NeuralRetentionEnhancement = new Augmentation({ name:AugmentationNames.NeuralRetentionEnhancement, repCost:2e4, moneyCost:2.5e8, info:"Chemical injections are used to permanently alter and strengthen the brain's neuronal " + - "circuits, strengthening the ability to retain information.

" + - "This augmentation increases the player's hacking experience gain rate by 25%.", + "circuits, strengthening the ability to retain information.", hacking_exp_mult: 1.25, }); NeuralRetentionEnhancement.addToFactions(["NiteSec"]); @@ -554,8 +519,7 @@ function initAugmentations() { name:AugmentationNames.DataJack, repCost:1.125e5, moneyCost:4.5e8, info:"A brain implant that provides an interface for direct, wireless communication between a computer's main " + "memory and the mind. This implant allows the user to not only access a computer's memory, but also alter " + - "and delete it.

" + - "This augmentation increases the amount of money the player gains from hacking by 25%.", + "and delete it.", hacking_money_mult: 1.25, }); DataJack.addToFactions(["BitRunners", "The Black Hand", "NiteSec", "Chongqing", "New Tokyo"]); @@ -570,8 +534,7 @@ function initAugmentations() { "to nearby networks. Once connected, the Netburner Module is capable of capturing and " + "processing all of the traffic on that network. By itself, the Embedded Netburner Module does " + "not do much, but a variety of very powerful upgrades can be installed that allow you to fully " + - "control the traffic on a network.

" + - "This augmentation increases the player's hacking skill by 8%.", + "control the traffic on a network.", hacking_mult: 1.08, }); ENM.addToFactions(["BitRunners", "The Black Hand", "NiteSec", "ECorp", "MegaCorp", @@ -584,13 +547,7 @@ function initAugmentations() { const ENMCore = new Augmentation({ name:AugmentationNames.ENMCore, repCost:2.5e5, moneyCost:2.5e9, info:"The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. " + - "This upgrade allows the Embedded Netburner Module to generate its own data on a network.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 3%.
" + - "Increases the amount of money the player gains from hacking by 10%.
" + - "Increases the player's chance of successfully performing a hack by 3%.
" + - "Increases the player's hacking experience gain rate by 7%.
" + - "Increases the player's hacking skill by 7%.", + "This upgrade allows the Embedded Netburner Module to generate its own data on a network.", prereqs:[AugmentationNames.ENM], hacking_speed_mult: 1.03, hacking_money_mult: 1.1, @@ -610,13 +567,7 @@ function initAugmentations() { info:"The Core V2 library is an implant that upgrades the firmware of the Embedded Netburner Module. " + "This upgraded firmware allows the Embedded Netburner Module to control information on " + "a network by re-routing traffic, spoofing IP addresses, and altering the data inside network " + - "packets.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 5%.
" + - "Increases the amount of money the player gains from hacking by 30%.
" + - "Increases the player's chance of successfully performing a hack by 5%.
" + - "Increases the player's hacking experience gain rate by 15%.
" + - "Increases the player's hacking skill by 8%.", + "packets.", prereqs:[AugmentationNames.ENMCore], hacking_speed_mult: 1.05, hacking_money_mult: 1.3, @@ -635,13 +586,7 @@ function initAugmentations() { name:AugmentationNames.ENMCoreV3, repCost:1.75e6, moneyCost:7.5e9, info:"The Core V3 library is an implant that upgrades the firmware of the Embedded Netburner Module. " + "This upgraded firmware allows the Embedded Netburner Module to seamlessly inject code into " + - "any device on a network.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 5%.
" + - "Increases the amount of money the player gains from hacking by 40%.
" + - "Increases the player's chance of successfully performing a hack by 10%.
" + - "Increases the player's hacking experience gain rate by 25%.
" + - "Increases the player's hacking skill by 10%.", + "any device on a network.", prereqs:[AugmentationNames.ENMCoreV2], hacking_speed_mult: 1.05, hacking_money_mult: 1.4, @@ -659,8 +604,7 @@ function initAugmentations() { const ENMAnalyzeEngine = new Augmentation({ name:AugmentationNames.ENMAnalyzeEngine, repCost:6.25e5, moneyCost:6e9, info:"Installs the Analyze Engine for the Embedded Netburner Module, which is a CPU cluster " + - "that vastly outperforms the Netburner Module's native single-core processor.

" + - "This augmentation increases the player's hacking speed by 10%.", + "that vastly outperforms the Netburner Module's native single-core processor.", prereqs:[AugmentationNames.ENM], hacking_speed_mult: 1.1, }); @@ -675,10 +619,7 @@ function initAugmentations() { name:AugmentationNames.ENMDMA, repCost:1e6, moneyCost:7e9, info:"This implant installs a Direct Memory Access (DMA) controller into the " + "Embedded Netburner Module. This allows the Module to send and receive data " + - "directly to and from the main memory of devices on a network.

" + - "This augmentation:
" + - "Increases the amount of money the player gains from hacking by 40%.
" + - "Increases the player's chance of successfully performing a hack by 20%.", + "directly to and from the main memory of devices on a network.", prereqs:[AugmentationNames.ENM], hacking_money_mult: 1.4, hacking_chance_mult: 1.2, @@ -693,11 +634,7 @@ function initAugmentations() { const Neuralstimulator = new Augmentation({ name:AugmentationNames.Neuralstimulator, repCost:5e4, moneyCost:3e9, info:"A cranial implant that intelligently stimulates certain areas of the brain " + - "in order to improve cognitive functions.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 2%.
" + - "Increases the player's chance of successfully performing a hack by 10%.
" + - "Increases the player's hacking experience gain rate by 12%.", + "in order to improve cognitive functions.", hacking_speed_mult: 1.02, hacking_chance_mult: 1.1, hacking_exp_mult: 1.12, @@ -713,11 +650,7 @@ function initAugmentations() { const NeuralAccelerator = new Augmentation({ name:AugmentationNames.NeuralAccelerator, repCost:2e5, moneyCost:1.75e9, info:"A microprocessor that accelerates the processing " + - "speed of biological neural networks. This is a cranial implant that is embedded inside the brain.

" + - "This augmentation:
" + - "Increases the player's hacking skill by 10%.
" + - "Increases the player's hacking experience gain rate by 15%.
" + - "Increases the amount of money the player gains from hacking by 20%.", + "speed of biological neural networks. This is a cranial implant that is embedded inside the brain.", hacking_mult: 1.1, hacking_exp_mult: 1.15, hacking_money_mult: 1.2, @@ -733,10 +666,7 @@ function initAugmentations() { info:"The first generation of Cranial Signal Processors. Cranial Signal Processors " + "are a set of specialized microprocessors that are attached to " + "neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations " + - "so that the brain doesn't have to.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 1%.
" + - "Increases the player's hacking skill by 5%.", + "so that the brain doesn't have to.", hacking_speed_mult: 1.01, hacking_mult: 1.05, }); @@ -751,11 +681,7 @@ function initAugmentations() { info:"The second generation of Cranial Signal Processors. Cranial Signal Processors " + "are a set of specialized microprocessors that are attached to " + "neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations " + - "so that the brain doesn't have to.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 2%.
" + - "Increases the player's chance of successfully performing a hack by 5%.
" + - "Increases the player's hacking skill by 7%.", + "so that the brain doesn't have to.", prereqs:[AugmentationNames.CranialSignalProcessorsG1], hacking_speed_mult: 1.02, hacking_chance_mult: 1.05, @@ -772,11 +698,7 @@ function initAugmentations() { info:"The third generation of Cranial Signal Processors. Cranial Signal Processors " + "are a set of specialized microprocessors that are attached to " + "neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations " + - "so that the brain doesn't have to.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 2%.
" + - "Increases the amount of money the player gains from hacking by 15%.
" + - "Increases the player's hacking skill by 9%.", + "so that the brain doesn't have to.", prereqs:[AugmentationNames.CranialSignalProcessorsG2], hacking_speed_mult: 1.02, hacking_money_mult: 1.15, @@ -793,11 +715,7 @@ function initAugmentations() { info:"The fourth generation of Cranial Signal Processors. Cranial Signal Processors " + "are a set of specialized microprocessors that are attached to " + "neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations " + - "so that the brain doesn't have to.

" + - "This augmentation:
" + - "Increases the player's hacking speed by 2%.
" + - "Increases the amount of money the player gains from hacking by 20%.
" + - "Improves grow() by 25%.", + "so that the brain doesn't have to.", prereqs:[AugmentationNames.CranialSignalProcessorsG3], hacking_speed_mult: 1.02, hacking_money_mult: 1.2, @@ -814,11 +732,7 @@ function initAugmentations() { info:"The fifth generation of Cranial Signal Processors. Cranial Signal Processors " + "are a set of specialized microprocessors that are attached to " + "neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations " + - "so that the brain doesn't have to.

" + - "This augmentation:
" + - "Increases the player's hacking skill by 30%.
" + - "Increases the amount of money the player gains from hacking by 25%.
" + - "Improves grow() by 75%.", + "so that the brain doesn't have to.", prereqs:[AugmentationNames.CranialSignalProcessorsG4], hacking_mult: 1.3, hacking_money_mult: 1.25, @@ -834,11 +748,7 @@ function initAugmentations() { name:AugmentationNames.NeuronalDensification, repCost:1.875e5, moneyCost:1.375e9, info:"The brain is surgically re-engineered to have increased neuronal density " + "by decreasing the neuron gap junction. Then, the body is genetically modified " + - "to enhance the production and capabilities of its neural stem cells.

" + - "This augmentation:
" + - "Increases the player's hacking skill by 15%.
" + - "Increases the player's hacking experience gain rate by 10%.
"+ - "Increases the player's hacking speed by 3%.", + "to enhance the production and capabilities of its neural stem cells.", hacking_mult: 1.15, hacking_exp_mult: 1.1, hacking_speed_mult: 1.03, @@ -854,9 +764,7 @@ function initAugmentations() { name:AugmentationNames.NuoptimalInjectorImplant, repCost:5e3, moneyCost:2e7, info:"This torso implant automatically injects nootropic supplements into " + "the bloodstream to improve memory, increase focus, and provide other " + - "cognitive enhancements.

" + - "This augmentation increases the amount of reputation the player gains " + - "when working for a company by 20%.", + "cognitive enhancements.", company_rep_mult: 1.2, }); NuoptimalInjectorImplant.addToFactions(["Tian Di Hui", "Volhaven", "New Tokyo", "Chongqing", @@ -870,10 +778,7 @@ function initAugmentations() { name:AugmentationNames.SpeechEnhancement, repCost:2.5e3, moneyCost:1.25e7, info:"An advanced neural implant that improves your speaking abilities, making " + "you more convincing and likable in conversations and overall improving your " + - "social interactions.

" + - "This augmentation:
" + - "Increases the player's charisma by 10%.
" + - "Increases the amount of reputation the player gains when working for a company by 10%.", + "social interactions.", company_rep_mult: 1.1, charisma_mult: 1.1, }); @@ -887,11 +792,7 @@ function initAugmentations() { const FocusWire = new Augmentation({ name:AugmentationNames.FocusWire, repCost:7.5e4, moneyCost:9e8, info:"A cranial implant that stops procrastination by blocking specific neural pathways " + - "in the brain.

" + - "This augmentation:
" + - "Increases all experience gains by 5%.
" + - "Increases the amount of money the player gains from working by 20%.
" + - "Increases the amount of reputation the player gains when working for a company by 10%.", + "in the brain.", hacking_exp_mult: 1.05, strength_exp_mult: 1.05, defense_exp_mult: 1.05, @@ -911,10 +812,7 @@ function initAugmentations() { name:AugmentationNames.PCDNI, repCost:3.75e5, moneyCost:3.75e9, info:"Installs a Direct-Neural Interface jack into your arm that is compatible with most " + "computers. Connecting to a computer through this jack allows you to interface with " + - "it using the brain's electrochemical signals.

" + - "This augmentation:
" + - "Increases the amount of reputation the player gains when working for a company by 30%.
" + - "Increases the player's hacking skill by 8%.", + "it using the brain's electrochemical signals.", company_rep_mult: 1.3, hacking_mult: 1.08, }); @@ -928,10 +826,7 @@ function initAugmentations() { name:AugmentationNames.PCDNIOptimizer, repCost:5e5, moneyCost:4.5e9, info:"This is a submodule upgrade to the PC Direct-Neural Interface augmentation. It " + "improves the performance of the interface and gives the user more control options " + - "to a connected computer.

" + - "This augmentation:
" + - "Increases the amount of reputation the player gains when working for a company by 75%.
" + - "Increases the player's hacking skill by 10%.", + "to a connected computer.", prereqs:[AugmentationNames.PCDNI], company_rep_mult: 1.75, hacking_mult: 1.1, @@ -947,11 +842,7 @@ function initAugmentations() { info:"This is an additional installation that upgrades the functionality of the " + "PC Direct-Neural Interface augmentation. When connected to a computer, " + "The Neural Network upgrade allows the user to use their own brain's " + - "processing power to aid the computer in computational tasks.

" + - "This augmentation:
" + - "Increases the amount of reputation the player gains when working for a company by 100%.
" + - "Increases the player's hacking skill by 10%.
" + - "Increases the player's hacking speed by 5%.", + "processing power to aid the computer in computational tasks.", prereqs:[AugmentationNames.PCDNI], company_rep_mult: 2, hacking_mult: 1.1, @@ -967,8 +858,7 @@ function initAugmentations() { name:AugmentationNames.ADRPheromone1, repCost:3.75e3, moneyCost:1.75e7, info:"The body is genetically re-engineered so that it produces the ADR-V1 pheromone, " + "an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, " + - "triggers feelings of admiration and approval in other people.

" + - "This augmentation increases the amount of reputation the player gains when working for a faction or company by 10%.", + "triggers feelings of admiration and approval in other people.", company_rep_mult: 1.1, faction_rep_mult: 1.1, }); @@ -982,8 +872,7 @@ function initAugmentations() { name:AugmentationNames.ADRPheromone2, repCost:6.25e4, moneyCost:5.5e8, info:"The body is genetically re-engineered so that it produces the ADR-V2 pheromone, " + "which is similar to but more potent than ADR-V1. This pheromone, when excreted, " + - "triggers feelings of admiration, approval, and respect in others.

" + - "This augmentation increases the amount of reputation the player gains when working for a faction or company by 20%.", + "triggers feelings of admiration, approval, and respect in others.", company_rep_mult: 1.2, faction_rep_mult: 1.2, }); @@ -999,8 +888,7 @@ function initAugmentations() { "in the brainstem and cerebellum. This augmentation was developed by " + "criminal organizations and allows the user to project and control holographic " + "simulacrums within a large radius. These simulacrums are commonly used for " + - "espionage and surveillance work.

" + - "This augmentation increases the amount of reputation the player gains when working for a faction or company by 15%.", + "espionage and surveillance work.", company_rep_mult: 1.15, faction_rep_mult: 1.15, }); @@ -1015,10 +903,7 @@ function initAugmentations() { name:AugmentationNames.HacknetNodeCPUUpload, repCost:3.75e3, moneyCost:1.1e7, info:"Uploads the architecture and design details of a Hacknet Node's CPU into " + "the brain. This allows the user to engineer custom hardware and software " + - "for the Hacknet Node that provides better performance.

" + - "This augmentation:
" + - "Increases the amount of money produced by Hacknet Nodes by 15%.
" + - "Decreases the cost of purchasing a Hacknet Node by 15%.", + "for the Hacknet Node that provides better performance.", hacknet_node_money_mult: 1.15, hacknet_node_purchase_cost_mult: 0.85, }); @@ -1032,10 +917,7 @@ function initAugmentations() { name:AugmentationNames.HacknetNodeCacheUpload, repCost:2.5e3, moneyCost:5.5e6, info:"Uploads the architecture and design details of a Hacknet Node's main-memory cache " + "into the brain. This allows the user to engineer custom cache hardware for the " + - "Hacknet Node that offers better performance.

" + - "This augmentation:
" + - "Increases the amount of money produced by Hacknet Nodes by 10%.
" + - "Decreases the cost of leveling up a Hacknet Node by 15%.", + "Hacknet Node that offers better performance.", hacknet_node_money_mult: 1.10, hacknet_node_level_cost_mult: 0.85, }); @@ -1049,10 +931,7 @@ function initAugmentations() { name:AugmentationNames.HacknetNodeNICUpload, repCost:1.875e3, moneyCost:4.5e6, info:"Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) " + "into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that " + - "offers better performance.

" + - "This augmentation:
" + - "Increases the amount of money produced by Hacknet Nodes by 10%.
" + - "Decreases the cost of purchasing a Hacknet Node by 10%.", + "offers better performance.", hacknet_node_money_mult: 1.1, hacknet_node_purchase_cost_mult: 0.9, }); @@ -1066,8 +945,7 @@ function initAugmentations() { name:AugmentationNames.HacknetNodeKernelDNI, repCost:7.5e3, moneyCost:4e7, info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a " + "Hacknet Node. This lets the user access and manipulate the Node's kernel using " + - "electrochemical signals.

" + - "This augmentation increases the amount of money produced by Hacknet Nodes by 25%.", + "electrochemical signals.", hacknet_node_money_mult: 1.25, }); HacknetNodeKernelDNI.addToFactions(["Netburners"]); @@ -1080,8 +958,7 @@ function initAugmentations() { name:AugmentationNames.HacknetNodeCoreDNI, repCost:1.25e4, moneyCost:6e7, info:"Installs a Direct-Neural Interface jack into the arm that is capable of connecting " + "to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using " + - "electrochemical signals.

" + - "This augmentation increases the amount of money produced by Hacknet Nodes by 45%.", + "electrochemical signals.", hacknet_node_money_mult: 1.45, }); HacknetNodeCoreDNI.addToFactions(["Netburners"]); @@ -1096,9 +973,12 @@ function initAugmentations() { info:"A device that is embedded in the back of the neck. The NeuroFlux Governor " + "monitors and regulates nervous impulses coming to and from the spinal column, " + "essentially 'governing' the body. By doing so, it improves the functionality of the " + - "body's nervous system.

" + - "This is a special augmentation because it can be leveled up infinitely. Each level of this augmentation " + - "increases ALL of the player's multipliers by 1%.", + "body's nervous system.", + stats: <> + This special augmentation can be leveled up infinitely. + Each level of this augmentation increases ALL multipliers by 1%, + stacking multiplicatively. + , hacking_chance_mult: 1.01, hacking_speed_mult: 1.01, hacking_money_mult: 1.01, @@ -1158,8 +1038,7 @@ function initAugmentations() { info:"A decentralized cranial implant that improves the brain's ability to learn. It is " + "installed by releasing millions of nanobots into the human brain, each of which " + "attaches to a different neural pathway to enhance the brain's ability to retain " + - "and retrieve information.

" + - "This augmentation increases the player's experience gain rate for all stats by 10%.", + "and retrieve information.", hacking_exp_mult: 1.1, strength_exp_mult: 1.1, defense_exp_mult: 1.1, @@ -1177,8 +1056,7 @@ function initAugmentations() { name:AugmentationNames.Neurotrainer2, repCost:1e4, moneyCost:4.5e7, info:"A decentralized cranial implant that improves the brain's ability to learn. This " + "is a more powerful version of the Neurotrainer I augmentation, but it does not " + - "require Neurotrainer I to be installed as a prerequisite.

" + - "This augmentation increases the player's experience gain rate for all stats by 15%.", + "require Neurotrainer I to be installed as a prerequisite.", hacking_exp_mult: 1.15, strength_exp_mult: 1.15, defense_exp_mult: 1.15, @@ -1196,8 +1074,7 @@ function initAugmentations() { name:AugmentationNames.Neurotrainer3, repCost:2.5e4, moneyCost:1.3e8, info:"A decentralized cranial implant that improves the brain's ability to learn. This " + "is a more powerful version of the Neurotrainer I and Neurotrainer II augmentation, " + - "but it does not require either of them to be installed as a prerequisite.

" + - "This augmentation increases the player's experience gain rate for all stats by 20%.", + "but it does not require either of them to be installed as a prerequisite.", hacking_exp_mult: 1.2, strength_exp_mult: 1.2, defense_exp_mult: 1.2, @@ -1215,11 +1092,7 @@ function initAugmentations() { name:AugmentationNames.Hypersight, repCost:1.5e5, moneyCost:2.75e9, info:"A bionic eye implant that grants sight capabilities far beyond those of a natural human. " + "Embedded circuitry within the implant provides the ability to detect heat and movement " + - "through solid objects such as walls, thus providing 'x-ray vision'-like capabilities.

" + - "This augmentation:
" + - "Increases the player's dexterity by 40%.
" + - "Increases the player's hacking speed by 3%.
" + - "Increases the amount of money the player gains from hacking by 10%.", + "through solid objects such as walls, thus providing 'x-ray vision'-like capabilities.", dexterity_mult: 1.4, hacking_speed_mult: 1.03, hacking_money_mult: 1.1, @@ -1234,10 +1107,7 @@ function initAugmentations() { name:AugmentationNames.LuminCloaking1, repCost:1.5e3, moneyCost:5e6, info:"A skin implant that reinforces the skin with highly-advanced synthetic cells. These " + "cells, when powered, have a negative refractive index. As a result, they bend light " + - "around the skin, making the user much harder to see to the naked eye.

" + - "This augmentation:
" + - "Increases the player's agility by 5%.
" + - "Increases the amount of money the player gains from crimes by 10%.", + "around the skin, making the user much harder to see to the naked eye.", agility_mult: 1.05, crime_money_mult: 1.1, }); @@ -1252,11 +1122,7 @@ function initAugmentations() { info:"This is a more advanced version of the LuminCloaking-V1 augmentation. This skin implant " + "reinforces the skin with highly-advanced synthetic cells. These " + "cells, when powered, are capable of not only bending light but also of bending heat, " + - "making the user more resilient as well as stealthy.

" + - "This augmentation:
" + - "Increases the player's agility by 10%.
" + - "Increases the player's defense by 10%.
" + - "Increases the amount of money the player gains from crimes by 25%.", + "making the user more resilient as well as stealthy.", prereqs:[AugmentationNames.LuminCloaking1], agility_mult: 1.1, defense_mult: 1.1, @@ -1271,11 +1137,7 @@ function initAugmentations() { const SmartSonar = new Augmentation({ name:AugmentationNames.SmartSonar, repCost:2.25e4, moneyCost:7.5e7, info:"A cochlear implant that helps the player detect and locate enemies " + - "using sound propagation.

" + - "This augmentation:
" + - "Increases the player's dexterity by 10%.
" + - "Increases the player's dexterity experience gain rate by 15%.
" + - "Increases the amount of money the player gains from crimes by 25%.", + "using sound propagation.", dexterity_mult: 1.1, dexterity_exp_mult: 1.15, crime_money_mult: 1.25, @@ -1290,10 +1152,7 @@ function initAugmentations() { name:AugmentationNames.PowerRecirculator, repCost:2.5e4, moneyCost:1.8e8, info:"The body's nerves are attached with polypyrrole nanocircuits that " + "are capable of capturing wasted energy, in the form of heat, " + - "and converting it back into usable power.

" + - "This augmentation:
" + - "Increases all of the player's stats by 5%.
" + - "Increases the player's experience gain rate for all stats by 10%.", + "and converting it back into usable power.", hacking_mult: 1.05, strength_mult: 1.05, defense_mult: 1.05, @@ -1323,12 +1182,7 @@ function initAugmentations() { name:AugmentationNames.QLink, repCost:1.875e6, moneyCost:2.5e13, info:"A brain implant that wirelessly connects you to the Illuminati's " + "quantum supercomputer, allowing you to access and use its incredible " + - "computing power.

" + - "This augmentation:
" + - "Increases the player's hacking skill by 75%.
" + - "Increases the player's hacking speed by 100%.
" + - "Increases the player's chance of successfully performing a hack by 150%.
" + - "Increases the amount of money the player gains from hacking by 300%.", + "computing power.", hacking_mult: 1.75, hacking_speed_mult: 2, hacking_chance_mult: 2.5, @@ -1344,6 +1198,7 @@ function initAugmentations() { const RedPill = new Augmentation({ name:AugmentationNames.TheRedPill, repCost:2.5e6, moneyCost:0e0, info:"It's time to leave the cave.", + stats: <>, }); RedPill.addToFactions(["Daedalus"]); if (augmentationExists(AugmentationNames.TheRedPill)) { @@ -1357,10 +1212,7 @@ function initAugmentations() { info:"The SPTN-97 gene is injected into the genome. The SPTN-97 gene is an " + "artificially-synthesized gene that was developed by DARPA to create " + "super-soldiers through genetic modification. The gene was outlawed in " + - "2056.

" + - "This augmentation:
" + - "Increases all of the player's combat stats by 75%.
" + - "Increases the player's hacking skill by 15%.", + "2056.", strength_mult: 1.75, defense_mult: 1.75, dexterity_mult: 1.75, @@ -1380,6 +1232,7 @@ function initAugmentations() { "exactly the implant does, but they promise that it will greatly " + "enhance your abilities.", hacking_grow_mult: 3, + stats: <>, }); HiveMind.addToFactions(["ECorp"]); if (augmentationExists(AugmentationNames.HiveMind)) { @@ -1393,10 +1246,7 @@ function initAugmentations() { info:"The thoracic cavity is equipped with a small chamber designed " + "to hold and sustain hydrogen plasma. The plasma is used to generate " + "fusion power through nuclear fusion, providing limitless amounts of clean " + - "energy for the body.

" + - "This augmentation:
" + - "Increases all of the player's combat stats by 35%.
" + - "Increases all of the player's combat stat experience gain rate by 35%.", + "energy for the body.", strength_mult: 1.35, defense_mult: 1.35, dexterity_mult: 1.35, @@ -1417,12 +1267,7 @@ function initAugmentations() { name:AugmentationNames.SmartJaw, repCost:3.75e5, moneyCost:2.75e9, info:"A bionic jaw that contains advanced hardware and software " + "capable of psychoanalyzing and profiling the personality of " + - "others using optical imaging software.

" + - "This augmentation:
" + - "Increases the player's charisma by 50%.
" + - "Increases the player's charisma experience gain rate by 50%.
" + - "Increases the amount of reputation the player gains for a company by 25%.
" + - "Increases the amount of reputation the player gains for a faction by 25%.", + "others using optical imaging software.", charisma_mult: 1.5, charisma_exp_mult: 1.5, company_rep_mult: 1.25, @@ -1440,8 +1285,7 @@ function initAugmentations() { info:"A highly-advanced techno-organic drug that is injected into the skeletal " + "and integumentary system. The drug permanently modifies the DNA of the " + "body's skin and bone cells, granting them the ability to repair " + - "and restructure themselves.

" + - "This augmentation increases the player's strength and defense by 55%.", + "and restructure themselves.", strength_mult: 1.55, defense_mult: 1.55, }); @@ -1456,10 +1300,7 @@ function initAugmentations() { name:AugmentationNames.Xanipher, repCost:8.75e5, moneyCost:4.25e9, info:"A concoction of advanced nanobots that is orally ingested into the " + "body. These nanobots induce physiological changes and significantly " + - "improve the body's functioning in all aspects.

" + - "This augmentation:
" + - "Increases all of the player's stats by 20%.
" + - "Increases the player's experience gain rate for all stats by 15%.", + "improve the body's functioning in all aspects.", hacking_mult: 1.2, strength_mult: 1.2, defense_mult: 1.2, @@ -1485,8 +1326,7 @@ function initAugmentations() { "It projects a light blue energy shield that protects the exposed inner parts. " + "Even though it contains no weapons, the advanced tungsten titanium " + "alloy increases the users strength to unbelievable levels. The augmentation " + - "gets more powerful over time for seemingly no reason.

" + - "This augmentation increases the player's strength by 170%.", + "gets more powerful over time for seemingly no reason.", strength_mult: 2.70, }); HydroflameLeftArm.addToFactions(["NWO"]); @@ -1502,8 +1342,7 @@ function initAugmentations() { name:AugmentationNames.nextSENS, repCost:4.375e5, moneyCost:1.925e9, info:"The body is genetically re-engineered to maintain a state " + "of negligible senescence, preventing the body from " + - "deteriorating with age.

" + - "This augmentation increases all of the player's stats by 20%.", + "deteriorating with age.", hacking_mult: 1.2, strength_mult: 1.2, defense_mult: 1.2, @@ -1522,10 +1361,7 @@ function initAugmentations() { name:AugmentationNames.OmniTekInfoLoad, repCost:6.25e5, moneyCost:2.875e9, info:"OmniTek's data and information repository is uploaded " + "into your brain, enhancing your programming and " + - "hacking abilities.

" + - "This augmentation:
" + - "Increases the player's hacking skill by 20%.
" + - "Increases the player's hacking experience gain rate by 25%.", + "hacking abilities.", hacking_mult: 1.2, hacking_exp_mult: 1.25, }); @@ -1544,8 +1380,7 @@ function initAugmentations() { info:"Chloroplasts are added to epidermal stem cells and are applied " + "to the body using a skin graft. The result is photosynthetic " + "skin cells, allowing users to generate their own energy " + - "and nutrition using solar power.

" + - "This augmentation increases the player's strength, defense, and agility by 40%.", + "and nutrition using solar power.", strength_mult: 1.4, defense_mult: 1.4, agility_mult: 1.4, @@ -1556,22 +1391,18 @@ function initAugmentations() { } AddToAugmentations(PhotosyntheticCells); + console.log(Programs); // BitRunners const Neurolink = new Augmentation({ name:AugmentationNames.Neurolink, repCost:8.75e5, moneyCost:4.375e9, info:"A brain implant that provides a high-bandwidth, direct neural link between your " + "mind and the BitRunners' data servers, which reportedly contain " + - "the largest database of hacking tools and information in the world.

" + - "This augmentation:
" + - "Increases the player's hacking skill by 15%.
" + - "Increases the player's hacking experience gain rate by 20%.
" + - "Increases the player's chance of successfully performing a hack by 10%.
" + - "Increases the player's hacking speed by 5%.
" + - "Lets the player start with the FTPCrack.exe and relaySMTP.exe programs after a reset.", + "the largest database of hacking tools and information in the world.", hacking_mult: 1.15, hacking_exp_mult: 1.2, hacking_chance_mult: 1.1, hacking_speed_mult: 1.05, + programs: [Programs.FTPCrackProgram.name, Programs.RelaySMTPProgram.name], }); Neurolink.addToFactions(["BitRunners"]); if (augmentationExists(AugmentationNames.Neurolink)) { @@ -1585,12 +1416,7 @@ function initAugmentations() { info:"A highly advanced bionic hand. This prosthetic not only " + "enhances strength and dexterity but it is also embedded " + "with hardware and firmware that lets the user connect to, access, and hack " + - "devices and machines by just touching them.

" + - "This augmentation:
" + - "Increases the player's strength and dexterity by 15%.
" + - "Increases the player's hacking skill by 10%.
" + - "Increases the player's hacking speed by 2%.
" + - "Increases the amount of money the player gains from hacking by 10%.", + "devices and machines by just touching them.", strength_mult: 1.15, dexterity_mult: 1.15, hacking_mult: 1.1, @@ -1608,10 +1434,7 @@ function initAugmentations() { name:AugmentationNames.CRTX42AA, repCost:4.5e4, moneyCost:2.25e8, info:"The CRTX42-AA gene is injected into the genome. " + "The CRTX42-AA is an artificially-synthesized gene that targets the visual and prefrontal " + - "cortex and improves cognitive abilities.

" + - "This augmentation:
" + - "Improves the player's hacking skill by 8%.
" + - "Improves the player's hacking experience gain rate by 15%.", + "cortex and improves cognitive abilities.", hacking_mult: 1.08, hacking_exp_mult: 1.15, }); @@ -1626,8 +1449,7 @@ function initAugmentations() { name:AugmentationNames.Neuregen, repCost:3.75e4, moneyCost:3.75e8, info:"A drug that genetically modifies the neurons in the brain " + "resulting in neurons never die, continuously " + - "regenerate, and strengthen themselves.

" + - "This augmentation increases the player's hacking experience gain rate by 40%.", + "regenerate, and strengthen themselves.", hacking_exp_mult: 1.4, }); Neuregen.addToFactions(["Chongqing"]); @@ -1641,10 +1463,9 @@ function initAugmentations() { name:AugmentationNames.CashRoot, repCost:1.25e4, moneyCost:1.25e8, info:<>A collection of digital assets saved on a small chip. The chip is implanted into your wrist. A small jack in the chip allows you to connect it to a computer - and upload the assets.

- This augmentation:
- Lets the player start with {Money(1e6)} after a reset.
- Lets the player start with the BruteSSH.exe program after a reset., + and upload the assets., + startingMoney: 1e6, + programs: [Programs.BruteSSHProgram.name], }); CashRoot.addToFactions(["Sector-12"]); if (augmentationExists(AugmentationNames.CashRoot)) { @@ -1658,8 +1479,7 @@ function initAugmentations() { info:"A thermo-powered artificial nutrition generator. Endogenously " + "synthesizes glucose, amino acids, and vitamins and redistributes them " + "across the body. The device is powered by the body's naturally wasted " + - "energy in the form of heat.

" + - "This augmentation increases the player's experience gain rate for all combat stats by 20%.", + "energy in the form of heat.", strength_exp_mult: 1.2, defense_exp_mult: 1.2, dexterity_exp_mult: 1.2, @@ -1676,15 +1496,7 @@ function initAugmentations() { name:AugmentationNames.PCMatrix, repCost:1e4, moneyCost:1e7, info:"A 'Probability Computation Matrix' is installed in the frontal cortex. This implant " + "uses advanced mathematical algorithims to rapidly identify and compute statistical " + - "outcomes of nearly every situation. The use of this implant is outlawed for use in " + - "Aevum's casino.

" + - "Increases charisma by 7.77%.
" + - "Increases charisma experience gain by 7.77%.
" + - "Increases money gained from working by 77.7%.
" + - "Increases reputation gain from factions and companies by 7.77%.
" + - "Increases crime success rate by 7.77%.
" + - "Increases money gained from committing crimes by 7.77%.
" + - "Provides DeepscanV1.exe and AutoLink.exe after a reset.", + "outcomes of nearly every situation.", charisma_mult: 1.0777, charisma_exp_mult: 1.0777, work_money_mult: 1.777, @@ -1692,6 +1504,7 @@ function initAugmentations() { company_rep_mult: 1.0777, crime_success_mult: 1.0777, crime_money_mult: 1.0777, + programs: [Programs.DeepscanV1.name, Programs.AutoLink.name], }); PCMatrix.addToFactions(["Aevum"]); if (augmentationExists(AugmentationNames.PCMatrix)) { @@ -1703,11 +1516,7 @@ function initAugmentations() { const INFRARet = new Augmentation({ name:AugmentationNames.INFRARet, repCost:7.5e3, moneyCost:3e7, info:"A tiny chip that sits behind the retinae. This implant lets the" + - "user visually detect infrared radiation.

" + - "This augmentation:
" + - "Increases the player's crime success rate by 25%.
" + - "Increases the amount of money the player gains from crimes by 10%.
" + - "Increases the player's dexterity by 10%.", + "user visually detect infrared radiation.", crime_success_mult: 1.25, crime_money_mult: 1.1, dexterity_mult: 1.1, @@ -1723,8 +1532,7 @@ function initAugmentations() { name:AugmentationNames.DermaForce, repCost:1.5e4, moneyCost:5e7, info:"Synthetic skin that is grafted onto the body. This skin consists of " + "millions of nanobots capable of projecting high-density muon beams, " + - "creating an energy barrier around the user.

" + - "This augmentation increases the player's defense by 40%.", + "creating an energy barrier around the user.", defense_mult: 1.4, }); DermaForce.addToFactions(["Volhaven"]); @@ -1738,11 +1546,7 @@ function initAugmentations() { name:AugmentationNames.GrapheneBrachiBlades, repCost:2.25e5, moneyCost:2.5e9, info:"An upgrade to the BrachiBlades augmentation. It infuses " + "the retractable blades with an advanced graphene material " + - "making them stronger and lighter.

" + - "This augmentation:
" + - "Increases the player's strength and defense by 40%.
" + - "Increases the player's crime success rate by 10%.
" + - "Increases the amount of money the player gains from crimes by 30%.", + "making them stronger and lighter.", prereqs:[AugmentationNames.BrachiBlades], strength_mult: 1.4, defense_mult: 1.4, @@ -1760,8 +1564,7 @@ function initAugmentations() { name:AugmentationNames.GrapheneBionicArms, repCost:5e5, moneyCost:3.75e9, info:"An upgrade to the Bionic Arms augmentation. It infuses the " + "prosthetic arms with an advanced graphene material " + - "to make them stronger and lighter.

" + - "This augmentation increases the player's strength and dexterity by 85%.", + "to make them stronger and lighter.", prereqs:[AugmentationNames.BionicArms], strength_mult: 1.85, dexterity_mult: 1.85, @@ -1775,11 +1578,7 @@ function initAugmentations() { // TheSyndicate const BrachiBlades = new Augmentation({ name:AugmentationNames.BrachiBlades, repCost:1.25e4, moneyCost:9e7, - info:"A set of retractable plasteel blades that are implanted in the arm, underneath the skin.

" + - "This augmentation:
" + - "Increases the player's strength and defense by 15%.
" + - "Increases the player's crime success rate by 10%.
" + - "Increases the amount of money the player gains from crimes by 15%.", + info:"A set of retractable plasteel blades that are implanted in the arm, underneath the skin.", strength_mult: 1.15, defense_mult: 1.15, crime_success_mult: 1.1, @@ -1795,8 +1594,7 @@ function initAugmentations() { const BionicArms = new Augmentation({ name:AugmentationNames.BionicArms, repCost:6.25e4, moneyCost:2.75e8, info:"Cybernetic arms created from plasteel and carbon fibers that completely replace " + - "the user's organic arms.

" + - "This augmentation increases the user's strength and dexterity by 30%.", + "the user's organic arms.", strength_mult: 1.3, dexterity_mult: 1.3, }); @@ -1810,11 +1608,7 @@ function initAugmentations() { const SNA = new Augmentation({ name:AugmentationNames.SNA, repCost:6.25e3, moneyCost:3e7, info:"A cranial implant that affects the user's personality, making them better " + - "at negotiation in social situations.

" + - "This augmentation:
" + - "Increases the amount of money the player earns at a company by 10%.
" + - "Increases the amount of reputation the player gains when working for a " + - "company or faction by 15%.", + "at negotiation in social situations.", work_money_mult: 1.1, company_rep_mult: 1.15, faction_rep_mult: 1.15, @@ -1837,10 +1631,7 @@ function initAugmentations() { "automatically extrude and extract the eyewear. The eyewear protects " + "against debris, shrapnel, lasers, blinding flashes, and gas. It is also " + "embedded with a data processing chip that can be programmed to display an " + - "AR HUD to assist the user in field missions.

" + - "This augmentation:
" + - "Increases the player's success chance in Bladeburner contracts/operations by 3%.
" + - "Increases the player's dexterity by 5%.", + "AR HUD to assist the user in field missions.", bladeburner_success_chance_mult: 1.03, dexterity_mult: 1.05, isSpecial: true, @@ -1853,11 +1644,7 @@ function initAugmentations() { info:"A DNA recombination of the EMS-4 Gene. This genetic engineering " + "technique was originally used on Bladeburners during the Synthoid uprising " + "to induce wakefulness and concentration, suppress fear, reduce empathy, " + - "improve reflexes, and improve memory among other things.

" + - "This augmentation:
" + - "Increases the player's success chance in Bladeburner contracts/operations by 3%.
" + - "Increases the player's effectiveness in Bladeburner Field Analysis by 5%.
" + - "Increases the player's Bladeburner stamina gain rate by 2%.", + "improve reflexes, and improve memory among other things.", bladeburner_success_chance_mult: 1.03, bladeburner_analysis_mult: 1.05, bladeburner_stamina_gain_mult: 1.02, @@ -1871,11 +1658,7 @@ function initAugmentations() { info:"A bionic shoulder augmentation for the right shoulder. Using cybernetics, " + "the ORION-MKIV shoulder enhances the strength and dexterity " + "of the user's right arm. It also provides protection due to its " + - "crystallized graphene plating.

" + - "This augmentation:
" + - "Increases the player's defense by 5%.
" + - "Increases the player's strength and dexterity by 5%.
" + - "Increases the player's success chance in Bladeburner contracts/operations by 4%.", + "crystallized graphene plating.", defense_mult: 1.05, strength_mult: 1.05, dexterity_mult: 1.05, @@ -1892,8 +1675,7 @@ function initAugmentations() { "be used against augmented enemies as the ionized " + "nature of the plasma disrupts the electrical systems of Augmentations. However, " + "it can also be effective against non-augmented enemies due to its high temperature " + - "and concussive force.

" + - "This augmentation increases the player's success chance in Bladeburner contracts/operations by 6%.", + "and concussive force.", bladeburner_success_chance_mult: 1.06, isSpecial: true, }); @@ -1905,8 +1687,7 @@ function initAugmentations() { info:"A pair of mini plasma cannons embedded into the hands. This augmentation " + "is more advanced and powerful than the original V1 model. This V2 model is " + "more power-efficient, more accurate, and can fire plasma bolts at a much " + - "higher velocity than the V1 model.

" + - "This augmentation increases the player's success chance in Bladeburner contracts/operations by 8%.", + "higher velocity than the V1 model.", prereqs:[AugmentationNames.HyperionV1], bladeburner_success_chance_mult: 1.08, isSpecial: true, @@ -1919,10 +1700,7 @@ function initAugmentations() { info:"A serum that permanently enhances many aspects of human capabilities, " + "including strength, speed, immune system enhancements, and mitochondrial efficiency. The " + "serum was originally developed by the Chinese military in an attempt to " + - "create super soldiers.

" + - "This augmentation:
" + - "Increases all of the player's combat stats by 7%.
" + - "Increases the player's Bladeburner stamina gain rate by 5%.
", + "create super soldiers.", strength_mult: 1.07, defense_mult: 1.07, dexterity_mult: 1.07, @@ -1936,11 +1714,7 @@ function initAugmentations() { const VangelisVirus = new Augmentation({ name:AugmentationNames.VangelisVirus, repCost:1.875e4, moneyCost:2.75e9, info:"A synthetic symbiotic virus that is injected into human brain tissue. The Vangelis virus " + - "heightens the senses and focus of its host, and also enhances its intuition.

" + - "This augmentation:
" + - "Increases the player's effectiveness in Bladeburner Field Analysis by 10%.
" + - "Increases the player's success chance in Bladeburner contracts/operations by 4%.
" + - "Increases the player's dexterity experience gain rate by 10%.", + "heightens the senses and focus of its host, and also enhances its intuition.", dexterity_exp_mult: 1.1, bladeburner_analysis_mult: 1.1, bladeburner_success_chance_mult: 1.04, @@ -1954,11 +1728,7 @@ function initAugmentations() { info:"An improved version of Vangelis, a synthetic symbiotic virus that is " + "injected into human brain tissue. On top of the benefits of the original " + "virus, this also grants an accelerated healing factor and enhanced " + - "reflexes.

" + - "This augmentation:
" + - "Increases the player's effectiveness in Bladeburner Field Analysis by 15%.
" + - "Increases the player's defense and dexterity experience gain rate by 10%.
" + - "Increases the player's success chance in Bladeburner contracts/operations by 5%.", + "reflexes.", prereqs:[AugmentationNames.VangelisVirus], defense_exp_mult: 1.1, dexterity_exp_mult: 1.1, @@ -1974,10 +1744,7 @@ function initAugmentations() { info:"The DNA is genetically modified to enhance the human's body " + "extracellular matrix (ECM). This improves the ECM's ability to " + "structurally support the body and grants heightened strength and " + - "durability.

" + - "This augmentation:
" + - "Increases the player's experience gain rate for all combat stats by 5%.
" + - "Increases the player's Bladeburner max stamina by 10%.", + "durability.", strength_exp_mult: 1.05, defense_exp_mult: 1.05, dexterity_exp_mult: 1.05, @@ -1993,11 +1760,7 @@ function initAugmentations() { info:"A cybernetic foot augmentation that was specifically created for Bladeburners " + "during the Synthoid Uprising. The organic musculature of the human foot " + "is enhanced with flexible carbon nanotube matrices that are controlled by " + - "intelligent servo-motors.

" + - "This augmentation:
" + - "Increases the player's agility by 5%.
" + - "Increases the player's Bladeburner max stamina by 5%.
" + - "Increases the player's Bladeburner stamina gain rate by 5%.
", + "intelligent servo-motors.", agility_mult: 1.05, bladeburner_max_stamina_mult: 1.05, bladeburner_stamina_gain_mult: 1.05, @@ -2011,11 +1774,7 @@ function initAugmentations() { info:"A powered exoskeleton suit designed as armor for Bladeburner units. This " + "exoskeleton is incredibly adaptable and can protect the wearer from blunt, piercing, " + "concussive, thermal, chemical, and electric trauma. It also enhances the user's " + - "physical abilities.

" + - "This augmentation:
" + - "Increases all of the player's combat stats by 4%.
" + - "Increases the player's Bladeburner stamina gain rate by 2%.
" + - "Increases the player's success chance in Bladeburner contracts/operations by 3%.", + "physical abilities.", strength_mult: 1.04, defense_mult: 1.04, dexterity_mult: 1.04, @@ -2030,11 +1789,7 @@ function initAugmentations() { const BladeArmorPowerCells = new Augmentation({ name:AugmentationNames.BladeArmorPowerCells, repCost:1.875e4, moneyCost:2.75e9, info:"Upgrades the BLADE-51b Tesla Armor with Ion Power Cells, which are capable of " + - "more efficiently storing and using power.

" + - "This augmentation:
" + - "Increases the player's success chance in Bladeburner contracts/operations by 5%.
" + - "Increases the player's Bladeburner stamina gain rate by 2%.
" + - "Increases the player's Bladeburner max stamina by 5%.", + "more efficiently storing and using power.", prereqs:[AugmentationNames.BladeArmor], bladeburner_success_chance_mult: 1.05, bladeburner_stamina_gain_mult: 1.02, @@ -2047,10 +1802,7 @@ function initAugmentations() { const BladeArmorEnergyShielding = new Augmentation({ name:AugmentationNames.BladeArmorEnergyShielding, repCost:2.125e4, moneyCost:5.5e9, info:"Upgrades the BLADE-51b Tesla Armor with a plasma energy propulsion system " + - "that is capable of projecting an energy shielding force field.

" + - "This augmentation:
" + - "Increases the player's defense by 5%.
" + - "Increases the player's success chance in Bladeburner contracts/operations by 6%.", + "that is capable of projecting an energy shielding force field.", prereqs:[AugmentationNames.BladeArmor], defense_mult: 1.05, bladeburner_success_chance_mult: 1.06, @@ -2063,8 +1815,7 @@ function initAugmentations() { name:AugmentationNames.BladeArmorUnibeam, repCost:3.125e4, moneyCost:1.65e10, info:"Upgrades the BLADE-51b Tesla Armor with a concentrated deuterium-fluoride laser " + "weapon. It's precision and accuracy makes it useful for quickly neutralizing " + - "threats while keeping casualties to a minimum.

" + - "This augmentation increases the player's success chance in Bladeburner contracts/operations by 8%.", + "threats while keeping casualties to a minimum.", prereqs:[AugmentationNames.BladeArmor], bladeburner_success_chance_mult: 1.08, isSpecial: true, @@ -2077,8 +1828,7 @@ function initAugmentations() { info:"Upgrades the BLADE-51b Tesla Armor Unibeam augmentation to use a " + "multiple-fiber system. This upgraded weapon uses multiple fiber laser " + "modules that combine together to form a single, more powerful beam of up to " + - "2000MW.

" + - "This augmentation increases the player's success chance in Bladeburner contracts/operations by 10%.", + "2000MW.", prereqs:[AugmentationNames.BladeArmorUnibeam], bladeburner_success_chance_mult: 1.1, isSpecial: true, @@ -2090,10 +1840,7 @@ function initAugmentations() { name:AugmentationNames.BladeArmorIPU, repCost:1.5e4, moneyCost:1.1e9, info:"Upgrades the BLADE-51b Tesla Armor with an AI Information Processing " + "Unit that was specially designed to analyze Synthoid related data and " + - "information.

" + - "This augmentation:
" + - "Increases the player's effectiveness in Bladeburner Field Analysis by 15%.
" + - "Increases the player's success chance in Bladeburner contracts/operations by 2%.", + "information.", prereqs:[AugmentationNames.BladeArmor], bladeburner_analysis_mult: 1.15, bladeburner_success_chance_mult: 1.02, @@ -2108,9 +1855,10 @@ function initAugmentations() { "in the brainstem and cerebellum. This augmentation allows " + "the user to project and control a holographic simulacrum within an " + "extremely large radius. These specially-modified holograms were specifically " + - "weaponized by Bladeburner units to be used against Synthoids.

" + - "This augmentation allows you to perform Bladeburner actions and other " + - "actions (such as working, commiting crimes, etc.) at the same time.", + "weaponized by Bladeburner units to be used against Synthoids.", + stats: <>This augmentation allows you to perform Bladeburner actions + and other actions (such as working, commiting crimes, etc.) at + the same time., isSpecial: true, }); BladesSimulacrum.addToFactions([BladeburnersFactionName]); diff --git a/src/Augmentation/data/AugmentationNames.ts b/src/Augmentation/data/AugmentationNames.ts index dc60d3ae5..a6d0ab651 100644 --- a/src/Augmentation/data/AugmentationNames.ts +++ b/src/Augmentation/data/AugmentationNames.ts @@ -47,6 +47,7 @@ export const AugmentationNames: IMap = { 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", diff --git a/src/Constants.ts b/src/Constants.ts index f2e71148f..8412ec228 100644 --- a/src/Constants.ts +++ b/src/Constants.ts @@ -6,7 +6,7 @@ import { IMap } from "./types"; export const CONSTANTS: IMap = { - Version: "0.52.1", + Version: "0.52.2", /** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience * and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then @@ -225,24 +225,11 @@ export const CONSTANTS: IMap = { TotalNumBitNodes: 24, LatestUpdate: ` - v0.52.1 - 2021-07-10 bugfixing (hydroflame & community) + v0.52.2 - 2021-07-10 TITLE (hydroflame & community) ------------------------------------------- - **Misc.** - - * Fix game crash/corruption when quitting a job while working for it unfocused. - * Fix typo in corporation Market Data. - * Fix typo in docs for hackPercent. - * The tutorial encourages the players to connect to home before creating 'n00dles.script' - * The dark web 'buy' command now accepts '-1' (one) and '--list' instead of just - '-l'. Helps some confused players. - * Character overview screen no longer hidden on the corporation screen. - * Infiltration difficulty display is now more explicit (It's a big arrow instead - of just one word.) - * Fix wrong ram value in tutorial. (@MageKing17) - * Plenty of augmentation description cleanup (@Kwazygloo) - * Plenty of typo/description fixed (@MageKing17) - * Cleanup description of singularity function on readthedocs (@PurePandemonium) - * Fix bug when autolinking a server while backdooring (@schroederIT) + ** Augmentations ** + * New Augmentation offered by Aevum, themed around 777 and offers some basic + programs. `, } \ No newline at end of file diff --git a/src/DevMenu.jsx b/src/DevMenu.jsx index f8583ef66..8469995e6 100644 --- a/src/DevMenu.jsx +++ b/src/DevMenu.jsx @@ -76,6 +76,7 @@ class DevMenuComponent extends Component { this.setSF = this.setSF.bind(this); this.setAllSF = this.setAllSF.bind(this); + this.clearExploits = this.clearExploits.bind(this); this.processStocks = this.processStocks.bind(this); this.setStockPrice = this.setStockPrice.bind(this); this.viewStockCaps = this.viewStockCaps.bind(this); @@ -378,6 +379,10 @@ class DevMenuComponent extends Component { } } + clearExploits() { + Player.exploits = []; + } + addProgram() { const program = this.state.program; if(!Player.hasProgram(program)) { @@ -953,6 +958,12 @@ class DevMenuComponent extends Component { + + + +
Exploits: + +
All: diff --git a/src/Faction/ui/PurchaseableAugmentation.tsx b/src/Faction/ui/PurchaseableAugmentation.tsx index ece801260..7d9e5cfe6 100644 --- a/src/Faction/ui/PurchaseableAugmentation.tsx +++ b/src/Faction/ui/PurchaseableAugmentation.tsx @@ -137,6 +137,12 @@ export class PurchaseableAugmentation extends React.Component { btnTxt += ` - Level ${getNextNeurofluxLevel()}`; } + let tooltip = <>; + if(typeof this.aug.info === "string") + tooltip = <>

{this.aug.stats} + else + tooltip = <>{this.aug.info}

{this.aug.stats} + return (
  • @@ -145,7 +151,7 @@ export class PurchaseableAugmentation extends React.Component { onClick={this.handleClick} style={inlineStyleMarkup} text={btnTxt} - tooltip={this.aug.info} + tooltip={tooltip} />

    {status}

    diff --git a/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts b/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts index 9f0dcf243..2c020dfdb 100644 --- a/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts +++ b/src/PersonObjects/Sleeve/SleeveAugmentationsUI.ts @@ -59,6 +59,8 @@ export function createSleevePurchaseAugsPopup(sleeve: Sleeve, p: IPlayer): void if(typeof tooltip !== 'string') { tooltip = renderToStaticMarkup(tooltip); } + tooltip += "

    "; + tooltip += renderToStaticMarkup(aug.stats); ownedAugsDiv.appendChild(createElement("div", { class: "gang-owned-upgrade", // Reusing a class from the Gang UI @@ -92,6 +94,8 @@ export function createSleevePurchaseAugsPopup(sleeve: Sleeve, p: IPlayer): void if(typeof info !== 'string') { info = renderToStaticMarkup(info); } + info += "

    "; + info += renderToStaticMarkup(aug.stats); div.appendChild(createElement("p", { fontSize: "12px", diff --git a/src/Prestige.js b/src/Prestige.js index 48fc82167..a851b3022 100755 --- a/src/Prestige.js +++ b/src/Prestige.js @@ -97,6 +97,11 @@ function prestigeAugmentation() { Player.setMoney(1e6); homeComp.programs.push(Programs.BruteSSHProgram.name); } + if (augmentationExists(AugmentationNames.PCMatrix) && + Augmentations[AugmentationNames.PCMatrix].owned) { + homeComp.programs.push(Programs.DeepscanV1.name); + homeComp.programs.push(Programs.AutoLink.name); + } // Re-create foreign servers initForeignServers(Player.getHomeComputer()); diff --git a/src/ui/React/AugmentationAccordion.tsx b/src/ui/React/AugmentationAccordion.tsx index 19eb601f2..95f9f9248 100644 --- a/src/ui/React/AugmentationAccordion.tsx +++ b/src/ui/React/AugmentationAccordion.tsx @@ -28,7 +28,7 @@ export function AugmentationAccordion(props: IProps): React.ReactElement { return ( {displayName}} - panelContent={

    } + panelContent={



    {props.aug.stats}

    } /> ) } @@ -36,7 +36,7 @@ export function AugmentationAccordion(props: IProps): React.ReactElement { return ( {displayName}} - panelContent={

    {props.aug.info}

    } + panelContent={

    {props.aug.info}

    {props.aug.stats}

    } /> ) }