diff --git a/test/jest/FullSave.test.ts b/test/jest/FullSave.test.ts new file mode 100644 index 000000000..d8e2f6665 --- /dev/null +++ b/test/jest/FullSave.test.ts @@ -0,0 +1,74 @@ +import { saveObject } from "../../src/SaveObject"; +import { Factions, initFactions } from "../../src/Faction/Factions"; +import { Player, setPlayer } from "../../src/Player"; +import { PlayerObject } from "../../src/PersonObjects/Player/PlayerObject"; +import { joinFaction } from "../../src/Faction/FactionHelpers"; +import { AugmentationName, CrimeType, FactionName } from "../../src/Enums"; +import { Augmentations } from "../../src/Augmentation/Augmentations"; +import { SleeveCrimeWork } from "../../src/PersonObjects/Sleeve/Work/SleeveCrimeWork"; + +describe("Check Save File Continuity", () => { + establishInitialConditions(); + // Calling getSaveString forces save info to update + saveObject.getSaveString(); + + const savesToTest = ["FactionsSave", "PlayerSave"] as const; + for (const saveToTest of savesToTest) { + test(`${saveToTest} continuity`, () => { + const parsed = JSON.parse(saveObject[saveToTest]); + expect(parsed).toMatchSnapshot(); + }); + } +}); + +function establishInitialConditions() { + // Jest overrides to produce static savedata + jest.useFakeTimers().setSystemTime(1687611703623); + let i = 0.5; + Math.random = () => { + return (++i % 37) / 37; + }; + + // Game initializers + setPlayer(new PlayerObject()); + Player.init(); + Player.identifier = "Overwritten identifier"; + initFactions(); + Player.sleevesFromCovenant = 1; + Player.sourceFiles.set(10, 1); + Player.prestigeAugmentation(); + /* Not comparing servers yet + // Just to reduce snapshot size, reduce server map to home + 2 servers + for (let i = serverMetadata.length - 1; i >= 0; i--) { + if (!["zer0", "n00dles"].includes(serverMetadata[i].hostname)) serverMetadata.splice(i, 1); + } + initForeignServers(Player.getHomeComputer()); + */ + + // not comparing companies yet + // initCompanies() + + // Sleeves (already added in game initializers section) + Player.sleeves[0].installAugmentation(Augmentations[AugmentationName.BionicArms]); + Player.sleeves[0].startWork(new SleeveCrimeWork(CrimeType.homicide)); + + // Factions + const bladeburnerFaction = Factions[FactionName.Bladeburners]; + const csec = Factions[FactionName.CyberSec]; + const slumSnakes = Factions[FactionName.SlumSnakes]; + joinFaction(bladeburnerFaction); + joinFaction(csec); + joinFaction(slumSnakes); + csec.playerReputation = 1e6; + csec.favor = 20; + + // Bladeburner. Adding rank will also add bladeburner faction rep. + Player.startBladeburner(); + Player.bladeburner?.changeRank(Player, 2000); + + // Corp + Player.startCorporation("Test Corp", false); + + // Gang + Player.startGang(FactionName.SlumSnakes, false); +} diff --git a/test/jest/__snapshots__/FullSave.test.ts.snap b/test/jest/__snapshots__/FullSave.test.ts.snap new file mode 100644 index 000000000..293ae8cad --- /dev/null +++ b/test/jest/__snapshots__/FullSave.test.ts.snap @@ -0,0 +1,1733 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Check Save File Continuity FactionsSave continuity 1`] = ` +{ + "Aevum": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Wired Reflexes", + "Speech Processor Implant", + "Synaptic Enhancement Implant", + "Neuralstimulator", + "PCMatrix", + "NeuroFlux Governor", + "Neurotrainer I", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Aevum", + "playerReputation": 0, + }, + }, + "Bachman & Associates": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Enhanced Social Interaction Implant", + "Neuralstimulator", + "Nuoptimal Nootropic Injector Implant", + "Speech Enhancement", + "FocusWire", + "ADR-V2 Pheromone Gene", + "NeuroFlux Governor", + "SmartJaw", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Bachman & Associates", + "playerReputation": 0, + }, + }, + "BitRunners": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Artificial Bio-neural Network Implant", + "Enhanced Myelin Sheathing", + "DataJack", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Embedded Netburner Module Core V2 Upgrade", + "Neural Accelerator", + "Cranial Signal Processors - Gen III", + "Cranial Signal Processors - Gen IV", + "Cranial Signal Processors - Gen V", + "NeuroFlux Governor", + "Neurotrainer II", + "BitRunners Neurolink", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "BitRunners", + "playerReputation": 0, + }, + }, + "Blade Industries": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Augmented Targeting II", + "Augmented Targeting III", + "Synfibril Muscle", + "Combat Rib I", + "Combat Rib II", + "Combat Rib III", + "Nanofiber Weave", + "Bionic Spine", + "Bionic Legs", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Embedded Netburner Module Core V2 Upgrade", + "PC Direct-Neural Interface", + "PC Direct-Neural Interface Optimization Submodule", + "NeuroFlux Governor", + "HyperSight Corneal Implant", + "Neotra", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Blade Industries", + "playerReputation": 0, + }, + }, + "Bladeburners": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "EsperTech Bladeburner Eyewear", + "EMS-4 Recombination", + "ORION-MKIV Shoulder", + "Hyperion Plasma Cannon V1", + "Hyperion Plasma Cannon V2", + "GOLEM Serum", + "Vangelis Virus", + "Vangelis Virus 3.0", + "I.N.T.E.R.L.I.N.K.E.D", + "Blade's Runners", + "BLADE-51b Tesla Armor", + "BLADE-51b Tesla Armor: Power Cells Upgrade", + "BLADE-51b Tesla Armor: Energy Shielding Upgrade", + "BLADE-51b Tesla Armor: Unibeam Upgrade", + "BLADE-51b Tesla Armor: Omnibeam Upgrade", + "BLADE-51b Tesla Armor: IPU Upgrade", + "The Blade's Simulacrum", + ], + "favor": 0, + "isBanned": false, + "isMember": true, + "name": "Bladeburners", + "playerReputation": 4000, + }, + }, + "Chongqing": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Speech Processor Implant", + "DataJack", + "Neuralstimulator", + "Nuoptimal Nootropic Injector Implant", + "NeuroFlux Governor", + "Neuregen Gene Modification", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Chongqing", + "playerReputation": 0, + }, + }, + "Church of the Machine God": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Stanek's Gift - Genesis", + "Stanek's Gift - Awakening", + "Stanek's Gift - Serenity", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Church of the Machine God", + "playerReputation": 0, + }, + }, + "Clarke Incorporated": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Enhanced Social Interaction Implant", + "Neuralstimulator", + "Neuronal Densification", + "Nuoptimal Nootropic Injector Implant", + "Speech Enhancement", + "FocusWire", + "ADR-V2 Pheromone Gene", + "NeuroFlux Governor", + "nextSENS Gene Modification", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Clarke Incorporated", + "playerReputation": 0, + }, + }, + "CyberSec": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "BitWire", + "Synaptic Enhancement Implant", + "Cranial Signal Processors - Gen I", + "Cranial Signal Processors - Gen II", + "NeuroFlux Governor", + "Neurotrainer I", + ], + "favor": 20, + "isBanned": false, + "isMember": true, + "name": "CyberSec", + "playerReputation": 1000000, + }, + }, + "Daedalus": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Synthetic Heart", + "Synfibril Muscle", + "NEMEAN Subdermal Weave", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "NeuroFlux Governor", + "The Red Pill", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Daedalus", + "playerReputation": 0, + }, + }, + "ECorp": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Graphene Bionic Spine Upgrade", + "Graphene Bionic Legs Upgrade", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Embedded Netburner Module Core V2 Upgrade", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "PC Direct-Neural Interface", + "PC Direct-Neural Interface Optimization Submodule", + "NeuroFlux Governor", + "ECorp HVMind Implant", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "ECorp", + "playerReputation": 0, + }, + }, + "Four Sigma": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Enhanced Social Interaction Implant", + "Neuralstimulator", + "Nuoptimal Nootropic Injector Implant", + "Speech Enhancement", + "FocusWire", + "PC Direct-Neural Interface", + "ADR-V1 Pheromone Gene", + "ADR-V2 Pheromone Gene", + "NeuroFlux Governor", + "Neurotrainer III", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Four Sigma", + "playerReputation": 0, + }, + }, + "Fulcrum Secret Technologies": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Synthetic Heart", + "Synfibril Muscle", + "Nanofiber Weave", + "NEMEAN Subdermal Weave", + "Graphene Bone Lacings", + "Graphene Bionic Spine Upgrade", + "Graphene Bionic Legs Upgrade", + "Artificial Bio-neural Network Implant", + "Enhanced Myelin Sheathing", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Embedded Netburner Module Core V2 Upgrade", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "PC Direct-Neural Interface Optimization Submodule", + "PC Direct-Neural Interface NeuroNet Injector", + "NeuroFlux Governor", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Fulcrum Secret Technologies", + "playerReputation": 0, + }, + }, + "Illuminati": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Synthetic Heart", + "Synfibril Muscle", + "NEMEAN Subdermal Weave", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "NeuroFlux Governor", + "QLink", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Illuminati", + "playerReputation": 0, + }, + }, + "Ishima": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Combat Rib I", + "Wired Reflexes", + "Speech Processor Implant", + "Neuralstimulator", + "NeuroFlux Governor", + "INFRARET Enhancement", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Ishima", + "playerReputation": 0, + }, + }, + "KuaiGong International": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Augmented Targeting II", + "Augmented Targeting III", + "Synthetic Heart", + "Synfibril Muscle", + "Combat Rib I", + "Combat Rib II", + "Combat Rib III", + "Bionic Spine", + "Bionic Legs", + "Embedded Netburner Module Core V2 Upgrade", + "Speech Enhancement", + "FocusWire", + "NeuroFlux Governor", + "HyperSight Corneal Implant", + "Photosynthetic Cells", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "KuaiGong International", + "playerReputation": 0, + }, + }, + "MegaCorp": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Graphene Bionic Legs Upgrade", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Embedded Netburner Module Core V2 Upgrade", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "ADR-V1 Pheromone Gene", + "NeuroFlux Governor", + "CordiARC Fusion Reactor", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "MegaCorp", + "playerReputation": 0, + }, + }, + "NWO": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Synthetic Heart", + "Synfibril Muscle", + "Enhanced Social Interaction Implant", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Embedded Netburner Module Core V2 Upgrade", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "ADR-V1 Pheromone Gene", + "NeuroFlux Governor", + "Neurotrainer III", + "Power Recirculation Core", + "Xanipher", + "Hydroflame Left Arm", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "NWO", + "playerReputation": 0, + }, + }, + "Netburners": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Hacknet Node CPU Architecture Neural-Upload", + "Hacknet Node Cache Architecture Neural-Upload", + "Hacknet Node NIC Architecture Neural-Upload", + "Hacknet Node Kernel Direct-Neural Interface", + "Hacknet Node Core Direct-Neural Interface", + "NeuroFlux Governor", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Netburners", + "playerReputation": 0, + }, + }, + "New Tokyo": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Speech Processor Implant", + "DataJack", + "Neuralstimulator", + "Nuoptimal Nootropic Injector Implant", + "NeuroFlux Governor", + "NutriGen Implant", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "New Tokyo", + "playerReputation": 0, + }, + }, + "NiteSec": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "BitWire", + "Artificial Synaptic Potentiation", + "Neural-Retention Enhancement", + "DataJack", + "Embedded Netburner Module", + "Cranial Signal Processors - Gen I", + "Cranial Signal Processors - Gen II", + "Cranial Signal Processors - Gen III", + "NeuroFlux Governor", + "Neurotrainer II", + "CRTX42-AA Gene Modification", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "NiteSec", + "playerReputation": 0, + }, + }, + "OmniTek Incorporated": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Augmented Targeting II", + "Augmented Targeting III", + "Combat Rib I", + "Combat Rib II", + "Combat Rib III", + "Nanofiber Weave", + "Bionic Spine", + "Bionic Legs", + "Enhanced Social Interaction Implant", + "Embedded Netburner Module Core V2 Upgrade", + "PC Direct-Neural Interface", + "NeuroFlux Governor", + "OmniTek InfoLoad", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "OmniTek Incorporated", + "playerReputation": 0, + }, + }, + "Sector-12": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Augmented Targeting II", + "Wired Reflexes", + "Speech Processor Implant", + "Neuralstimulator", + "NeuroFlux Governor", + "CashRoot Starter Kit", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Sector-12", + "playerReputation": 0, + }, + }, + "Shadows of Anarchy": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "SoA - Might of Ares", + "SoA - Wisdom of Athena", + "SoA - Trickery of Hermes", + "SoA - Beauty of Aphrodite", + "SoA - Chaos of Dionysus", + "SoA - Flood of Poseidon", + "SoA - Hunt of Artemis", + "SoA - Knowledge of Apollo", + "SoA - phyzical WKS harmonizer", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Shadows of Anarchy", + "playerReputation": 0, + }, + }, + "Silhouette": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Speech Processor Implant", + "TITN-41 Gene-Modification Injection", + "ADR-V2 Pheromone Gene", + "NeuroFlux Governor", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Silhouette", + "playerReputation": 0, + }, + }, + "Slum Snakes": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Combat Rib I", + "Wired Reflexes", + "NeuroFlux Governor", + "LuminCloaking-V1 Skin Implant", + "LuminCloaking-V2 Skin Implant", + "SmartSonar Implant", + ], + "favor": 0, + "isBanned": false, + "isMember": true, + "name": "Slum Snakes", + "playerReputation": 0, + }, + }, + "Speakers for the Dead": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Synthetic Heart", + "Synfibril Muscle", + "Nanofiber Weave", + "Wired Reflexes", + "Bionic Spine", + "Bionic Legs", + "Speech Enhancement", + "The Shadow's Simulacrum", + "NeuroFlux Governor", + "Unstable Circadian Modulator", + "Graphene BrachiBlades Upgrade", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Speakers for the Dead", + "playerReputation": 0, + }, + }, + "Tetrads": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "NeuroFlux Governor", + "LuminCloaking-V1 Skin Implant", + "LuminCloaking-V2 Skin Implant", + "HemoRecirculator", + "Power Recirculation Core", + "Bionic Arms", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Tetrads", + "playerReputation": 0, + }, + }, + "The Black Hand": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Artificial Synaptic Potentiation", + "Enhanced Myelin Sheathing", + "DataJack", + "Embedded Netburner Module", + "Embedded Netburner Module Core Implant", + "Neuralstimulator", + "Cranial Signal Processors - Gen III", + "Cranial Signal Processors - Gen IV", + "NeuroFlux Governor", + "The Black Hand", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "The Black Hand", + "playerReputation": 0, + }, + }, + "The Covenant": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting III", + "Synthetic Heart", + "Synfibril Muscle", + "Combat Rib III", + "NEMEAN Subdermal Weave", + "Graphene Bone Lacings", + "Embedded Netburner Module Core V3 Upgrade", + "Embedded Netburner Module Analyze Engine", + "Embedded Netburner Module Direct Memory Access Upgrade", + "NeuroFlux Governor", + "SPTN-97 Gene Modification", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "The Covenant", + "playerReputation": 0, + }, + }, + "The Dark Army": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Augmented Targeting II", + "Augmented Targeting III", + "Combat Rib I", + "Combat Rib II", + "Combat Rib III", + "Nanofiber Weave", + "Wired Reflexes", + "The Shadow's Simulacrum", + "NeuroFlux Governor", + "HemoRecirculator", + "Power Recirculation Core", + "Graphene Bionic Arms Upgrade", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "The Dark Army", + "playerReputation": 0, + }, + }, + "The Syndicate": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Augmented Targeting I", + "Augmented Targeting II", + "Augmented Targeting III", + "Combat Rib I", + "Combat Rib II", + "Combat Rib III", + "Nanofiber Weave", + "NEMEAN Subdermal Weave", + "Wired Reflexes", + "Bionic Spine", + "Bionic Legs", + "ADR-V1 Pheromone Gene", + "The Shadow's Simulacrum", + "NeuroFlux Governor", + "HemoRecirculator", + "Power Recirculation Core", + "BrachiBlades", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "The Syndicate", + "playerReputation": 0, + }, + }, + "Tian Di Hui": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Nanofiber Weave", + "Wired Reflexes", + "Speech Processor Implant", + "Neuroreceptor Management Implant", + "Nuoptimal Nootropic Injector Implant", + "Speech Enhancement", + "ADR-V1 Pheromone Gene", + "NeuroFlux Governor", + "Social Negotiation Assistant (S.N.A)", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Tian Di Hui", + "playerReputation": 0, + }, + }, + "Volhaven": { + "ctor": "Faction", + "data": { + "alreadyInvited": false, + "augmentations": [ + "Combat Rib I", + "Combat Rib II", + "Wired Reflexes", + "Speech Processor Implant", + "Neuralstimulator", + "Nuoptimal Nootropic Injector Implant", + "NeuroFlux Governor", + "DermaForce Particle Barrier", + ], + "favor": 0, + "isBanned": false, + "isMember": false, + "name": "Volhaven", + "playerReputation": 0, + }, + }, +} +`; + +exports[`Check Save File Continuity PlayerSave continuity 1`] = ` +{ + "ctor": "PlayerObject", + "data": { + "achievements": [], + "augmentations": [], + "bitNodeN": 1, + "bladeburner": { + "ctor": "Bladeburner", + "data": { + "action": { + "ctor": "ActionIdentifier", + "data": { + "name": "", + "type": 1, + }, + }, + "actionTimeCurrent": 0, + "actionTimeOverflow": 0, + "actionTimeToComplete": 0, + "automateActionHigh": { + "ctor": "ActionIdentifier", + "data": { + "name": "", + "type": 1, + }, + }, + "automateActionLow": { + "ctor": "ActionIdentifier", + "data": { + "name": "", + "type": 1, + }, + }, + "automateEnabled": false, + "automateThreshHigh": 0, + "automateThreshLow": 0, + "blackops": {}, + "cities": { + "Aevum": { + "ctor": "City", + "data": { + "chaos": 0, + "comms": 42, + "name": "Aevum", + "pop": 1101351351, + "popEst": 803688823.7027026, + }, + }, + "Chongqing": { + "ctor": "City", + "data": { + "chaos": 0, + "comms": 54, + "name": "Chongqing", + "pop": 1141891892, + "popEst": 925858290.8108107, + }, + }, + "Ishima": { + "ctor": "City", + "data": { + "chaos": 0, + "comms": 89, + "name": "Ishima", + "pop": 1263513514, + "popEst": 1331811541.7837837, + }, + }, + "New Tokyo": { + "ctor": "City", + "data": { + "chaos": 0, + "comms": 78, + "name": "New Tokyo", + "pop": 1222972973, + "popEst": 1189919649.4054055, + }, + }, + "Sector-12": { + "ctor": "City", + "data": { + "chaos": 0, + "comms": 66, + "name": "Sector-12", + "pop": 1182432432, + "popEst": 1054601898.8108108, + }, + }, + "Volhaven": { + "ctor": "City", + "data": { + "chaos": 0, + "comms": 101, + "name": "Volhaven", + "pop": 1304054054, + "popEst": 1480277574.8108108, + }, + }, + }, + "city": "Sector-12", + "consoleHistory": [], + "consoleLogs": [ + "Bladeburner Console", + "Type 'help' to see console commands", + ], + "contracts": { + "Bounty Hunter": { + "ctor": "Contract", + "data": { + "autoLevel": true, + "baseDifficulty": 266.2162162162162, + "count": 117, + "decays": { + "agi": 0.91, + "cha": 0.8, + "def": 0.91, + "dex": 0.91, + "hack": 0, + "int": 0.9, + "str": 0.91, + }, + "difficultyFac": 1.04, + "failures": 0, + "hpLoss": 1, + "hpLost": 0, + "isKill": true, + "isStealth": false, + "level": 1, + "maxLevel": 1, + "name": "Bounty Hunter", + "rankGain": 0.9, + "rankLoss": 0, + "rewardFac": 1.085, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.25, + "cha": 0.1, + "def": 0.15, + "dex": 0.25, + "hack": 0, + "int": 0.1, + "str": 0.15, + }, + }, + }, + "Retirement": { + "ctor": "Contract", + "data": { + "autoLevel": true, + "baseDifficulty": 216.21621621621622, + "count": 129, + "decays": { + "agi": 0.91, + "cha": 0.8, + "def": 0.91, + "dex": 0.91, + "hack": 0, + "int": 0.9, + "str": 0.91, + }, + "difficultyFac": 1.03, + "failures": 0, + "hpLoss": 1, + "hpLost": 0, + "isKill": true, + "isStealth": false, + "level": 1, + "maxLevel": 1, + "name": "Retirement", + "rankGain": 0.6, + "rankLoss": 0, + "rewardFac": 1.065, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.2, + "cha": 0.1, + "def": 0.2, + "dex": 0.2, + "hack": 0, + "int": 0.1, + "str": 0.2, + }, + }, + }, + "Tracking": { + "ctor": "Contract", + "data": { + "autoLevel": true, + "baseDifficulty": 131.0810810810811, + "count": 111, + "decays": { + "agi": 0.91, + "cha": 0.9, + "def": 0.91, + "dex": 0.91, + "hack": 0, + "int": 1, + "str": 0.91, + }, + "difficultyFac": 1.02, + "failures": 0, + "hpLoss": 0.5, + "hpLost": 0, + "isKill": false, + "isStealth": true, + "level": 1, + "maxLevel": 1, + "name": "Tracking", + "rankGain": 0.3, + "rankLoss": 0, + "rewardFac": 1.041, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.35, + "cha": 0.1, + "def": 0.05, + "dex": 0.35, + "hack": 0, + "int": 0.05, + "str": 0.05, + }, + }, + }, + }, + "hpLost": 0, + "logging": { + "blackops": true, + "contracts": true, + "events": true, + "general": true, + "ops": true, + }, + "maxRank": 2000, + "maxStamina": 1, + "moneyLost": 0, + "numHosp": 0, + "operations": { + "Assassination": { + "ctor": "Operation", + "data": { + "autoLevel": true, + "baseDifficulty": 1467.5675675675675, + "count": 51, + "decays": { + "agi": 0.8, + "cha": 0, + "def": 0.8, + "dex": 0.8, + "hack": 0.6, + "int": 0.8, + "str": 0.8, + }, + "difficultyFac": 1.06, + "failures": 0, + "hpLoss": 5, + "hpLost": 0, + "isKill": true, + "isStealth": true, + "level": 1, + "maxLevel": 1, + "name": "Assassination", + "rankGain": 44, + "rankLoss": 4, + "reqdRank": 50000, + "rewardFac": 1.14, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.3, + "cha": 0, + "def": 0.1, + "dex": 0.3, + "hack": 0.1, + "int": 0.1, + "str": 0.1, + }, + }, + }, + "Investigation": { + "ctor": "Operation", + "data": { + "autoLevel": true, + "baseDifficulty": 438.9189189189189, + "count": 94, + "decays": { + "agi": 0.9, + "cha": 0.7, + "def": 0.9, + "dex": 0.9, + "hack": 0.85, + "int": 0.9, + "str": 0.9, + }, + "difficultyFac": 1.03, + "failures": 0, + "hpLoss": 0, + "hpLost": 0, + "isKill": false, + "isStealth": true, + "level": 1, + "maxLevel": 1, + "name": "Investigation", + "rankGain": 2.2, + "rankLoss": 0.2, + "reqdRank": 25, + "rewardFac": 1.07, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.1, + "cha": 0.25, + "def": 0.05, + "dex": 0.2, + "hack": 0.25, + "int": 0.1, + "str": 0.05, + }, + }, + }, + "Raid": { + "ctor": "Operation", + "data": { + "autoLevel": true, + "baseDifficulty": 756.7567567567568, + "count": 27, + "decays": { + "agi": 0.8, + "cha": 0, + "def": 0.8, + "dex": 0.8, + "hack": 0.7, + "int": 0.9, + "str": 0.8, + }, + "difficultyFac": 1.045, + "failures": 0, + "hpLoss": 50, + "hpLost": 0, + "isKill": true, + "isStealth": false, + "level": 1, + "maxLevel": 1, + "name": "Raid", + "rankGain": 55, + "rankLoss": 2.5, + "reqdRank": 3000, + "rewardFac": 1.1, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.2, + "cha": 0, + "def": 0.2, + "dex": 0.2, + "hack": 0.1, + "int": 0.1, + "str": 0.2, + }, + }, + }, + "Stealth Retirement Operation": { + "ctor": "Operation", + "data": { + "autoLevel": true, + "baseDifficulty": 962.1621621621622, + "count": 39, + "decays": { + "agi": 0.8, + "cha": 0, + "def": 0.8, + "dex": 0.8, + "hack": 0.7, + "int": 0.9, + "str": 0.8, + }, + "difficultyFac": 1.05, + "failures": 0, + "hpLoss": 10, + "hpLost": 0, + "isKill": true, + "isStealth": true, + "level": 1, + "maxLevel": 1, + "name": "Stealth Retirement Operation", + "rankGain": 22, + "rankLoss": 2, + "reqdRank": 20000, + "rewardFac": 1.11, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.3, + "cha": 0, + "def": 0.1, + "dex": 0.3, + "hack": 0.1, + "int": 0.1, + "str": 0.1, + }, + }, + }, + "Sting Operation": { + "ctor": "Operation", + "data": { + "autoLevel": true, + "baseDifficulty": 604.3243243243244, + "count": 15, + "decays": { + "agi": 0.85, + "cha": 0.7, + "def": 0.85, + "dex": 0.85, + "hack": 0.8, + "int": 0.9, + "str": 0.85, + }, + "difficultyFac": 1.04, + "failures": 0, + "hpLoss": 2.5, + "hpLost": 0, + "isKill": false, + "isStealth": true, + "level": 1, + "maxLevel": 1, + "name": "Sting Operation", + "rankGain": 5.5, + "rankLoss": 0.5, + "reqdRank": 500, + "rewardFac": 1.095, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.1, + "cha": 0.2, + "def": 0.05, + "dex": 0.25, + "hack": 0.25, + "int": 0.1, + "str": 0.05, + }, + }, + }, + "Undercover Operation": { + "ctor": "Operation", + "data": { + "autoLevel": true, + "baseDifficulty": 456.7567567567568, + "count": 2, + "decays": { + "agi": 0.9, + "cha": 0.7, + "def": 0.9, + "dex": 0.9, + "hack": 0.8, + "int": 0.9, + "str": 0.9, + }, + "difficultyFac": 1.04, + "failures": 0, + "hpLoss": 2, + "hpLost": 0, + "isKill": false, + "isStealth": true, + "level": 1, + "maxLevel": 1, + "name": "Undercover Operation", + "rankGain": 4.4, + "rankLoss": 0.4, + "reqdRank": 100, + "rewardFac": 1.09, + "successes": 0, + "teamCount": 0, + "weights": { + "agi": 0.2, + "cha": 0.2, + "def": 0.05, + "dex": 0.2, + "hack": 0.2, + "int": 0.1, + "str": 0.05, + }, + }, + }, + }, + "randomEventCounter": 303, + "rank": 2000, + "skillMultipliers": { + "actionTime": 1, + "effAgi": 1, + "effCha": 1, + "effDef": 1, + "effDex": 1, + "effHack": 1, + "effInt": 1, + "effStr": 1, + "expGain": 1, + "money": 1, + "stamina": 1, + "successChanceAll": 1, + "successChanceContract": 1, + "successChanceEstimate": 1, + "successChanceKill": 1, + "successChanceOperation": 1, + "successChanceStealth": 1, + }, + "skillPoints": 666, + "skills": {}, + "sleeveSize": 0, + "stamina": 1, + "staminaBonus": 0, + "storedCycles": 0, + "teamLost": 0, + "teamSize": 0, + "totalSkillPoints": 666, + }, + }, + "city": "Sector-12", + "corporation": { + "ctor": "Corporation", + "data": { + "cycleValuation": 0, + "dividendRate": 0, + "dividendTax": 0.15, + "divisions": { + "ctor": "JSONMap", + "data": [], + }, + "expenses": 0, + "fundingRound": 0, + "funds": 150000000000, + "issueNewSharesCooldown": 0, + "issuedShares": 0, + "maxDivisions": 20, + "name": "Test Corp", + "numShares": 1000000000, + "public": false, + "revenue": 0, + "seedFunded": false, + "sharePrice": 0, + "shareSaleCooldown": 0, + "shareSalesUntilPriceUpdate": 1000000, + "state": { + "ctor": "CorporationState", + "data": { + "state": 0, + }, + }, + "storedCycles": 0, + "totalShares": 1000000000, + "unlocks": { + "ctor": "JSONSet", + "data": [], + }, + "upgrades": { + "ABC SalesBots": { + "level": 0, + "value": 1, + }, + "DreamSense": { + "level": 0, + "value": 0, + }, + "FocusWires": { + "level": 0, + "value": 1, + }, + "Neural Accelerators": { + "level": 0, + "value": 1, + }, + "Nuoptimal Nootropic Injector Implants": { + "level": 0, + "value": 1, + }, + "Project Insight": { + "level": 0, + "value": 1, + }, + "Smart Factories": { + "level": 0, + "value": 1, + }, + "Smart Storage": { + "level": 0, + "value": 1, + }, + "Speech Processor Implants": { + "level": 0, + "value": 1, + }, + "Wilson Analytics": { + "level": 0, + "value": 1, + }, + }, + "valuation": 0, + "valuationsList": [ + 0, + ], + }, + }, + "currentServer": "home", + "currentWork": null, + "entropy": 0, + "exp": { + "agility": 0, + "charisma": 0, + "defense": 0, + "dexterity": 0, + "hacking": 0, + "intelligence": 0, + "strength": 0, + }, + "exploits": [], + "factionInvitations": [], + "factions": [ + "Slum Snakes", + "CyberSec", + "Bladeburners", + ], + "focus": false, + "gang": { + "ctor": "Gang", + "data": { + "facName": "Slum Snakes", + "isHackingGang": false, + "members": [], + "moneyGainRate": 0, + "notifyMemberDeath": true, + "respect": 1, + "respectGainRate": 0, + "storedCycles": 0, + "storedTerritoryAndPowerCycles": 0, + "territoryClashChance": 0, + "territoryWarfareEngaged": false, + "wanted": 1, + "wantedGainRate": 0, + }, + }, + "hacknetNodes": [], + "has4SData": false, + "has4SDataTixApi": false, + "hasTixApiAccess": false, + "hasWseAccount": false, + "hashManager": { + "ctor": "HashManager", + "data": { + "capacity": 0, + "hashes": 0, + "upgrades": { + "Company Favor": 0, + "Exchange for Bladeburner Rank": 0, + "Exchange for Bladeburner SP": 0, + "Exchange for Corporation Research": 0, + "Generate Coding Contract": 0, + "Improve Gym Training": 0, + "Improve Studying": 0, + "Increase Maximum Money": 0, + "Reduce Minimum Security": 0, + "Sell for Corporation Funds": 0, + "Sell for Money": 0, + }, + }, + }, + "hp": { + "current": 10, + "max": 10, + }, + "identifier": "Overwritten identifier", + "jobs": {}, + "karma": 0, + "lastAugReset": 1687611703623, + "lastNodeReset": -1, + "lastSave": 0, + "lastUpdate": 1687611703623, + "location": "Travel Agency", + "money": 1079, + "moneySourceA": { + "ctor": "MoneySourceTracker", + "data": { + "augmentations": 0, + "bladeburner": 0, + "casino": 0, + "class": 0, + "codingcontract": 0, + "corporation": 0, + "crime": 0, + "gang": 0, + "hacking": 0, + "hacknet": 0, + "hacknet_expenses": 0, + "hospitalization": 0, + "infiltration": 0, + "other": 0, + "servers": 0, + "sleeves": 0, + "stock": 0, + "total": 0, + "work": 0, + }, + }, + "moneySourceB": { + "ctor": "MoneySourceTracker", + "data": { + "augmentations": 0, + "bladeburner": 0, + "casino": 0, + "class": 0, + "codingcontract": 0, + "corporation": 0, + "crime": 0, + "gang": 0, + "hacking": 0, + "hacknet": 0, + "hacknet_expenses": 0, + "hospitalization": 0, + "infiltration": 0, + "other": 0, + "servers": 0, + "sleeves": 0, + "stock": 0, + "total": 0, + "work": 0, + }, + }, + "mults": { + "agility": 1, + "agility_exp": 1, + "bladeburner_analysis": 1, + "bladeburner_max_stamina": 1, + "bladeburner_stamina_gain": 1, + "bladeburner_success_chance": 1, + "charisma": 1, + "charisma_exp": 1, + "company_rep": 1, + "crime_money": 1, + "crime_success": 1, + "defense": 1, + "defense_exp": 1, + "dexterity": 1, + "dexterity_exp": 1, + "faction_rep": 1, + "hacking": 1, + "hacking_chance": 1, + "hacking_exp": 1, + "hacking_grow": 1, + "hacking_money": 1, + "hacking_speed": 1, + "hacknet_node_core_cost": 1, + "hacknet_node_level_cost": 1, + "hacknet_node_money": 1, + "hacknet_node_purchase_cost": 1, + "hacknet_node_ram_cost": 1, + "strength": 1, + "strength_exp": 1, + "work_money": 1, + }, + "numPeopleKilled": 0, + "playtimeSinceLastAug": 0, + "playtimeSinceLastBitnode": 0, + "purchasedServers": [], + "queuedAugmentations": [], + "scriptProdSinceLastAug": 0, + "skills": { + "agility": 1, + "charisma": 1, + "defense": 1, + "dexterity": 1, + "hacking": 1, + "intelligence": 0, + "strength": 1, + }, + "sleeves": [ + { + "ctor": "Sleeve", + "data": { + "augmentations": [ + { + "level": 1, + "name": "Bionic Arms", + }, + ], + "city": "Sector-12", + "currentWork": { + "ctor": "SleeveCrimeWork", + "data": { + "crimeType": "Homicide", + "cyclesWorked": 0, + "type": "CRIME", + }, + }, + "exp": { + "agility": 0, + "charisma": 0, + "defense": 0, + "dexterity": 0, + "hacking": 0, + "intelligence": 0, + "strength": 0, + }, + "hp": { + "current": 10, + "max": 10, + }, + "memory": 1, + "mults": { + "agility": 1, + "agility_exp": 1, + "bladeburner_analysis": 1, + "bladeburner_max_stamina": 1, + "bladeburner_stamina_gain": 1, + "bladeburner_success_chance": 1, + "charisma": 1, + "charisma_exp": 1, + "company_rep": 1, + "crime_money": 1, + "crime_success": 1, + "defense": 1, + "defense_exp": 1, + "dexterity": 1.3, + "dexterity_exp": 1, + "faction_rep": 1, + "hacking": 1, + "hacking_chance": 1, + "hacking_exp": 1, + "hacking_grow": 1, + "hacking_money": 1, + "hacking_speed": 1, + "hacknet_node_core_cost": 1, + "hacknet_node_level_cost": 1, + "hacknet_node_money": 1, + "hacknet_node_purchase_cost": 1, + "hacknet_node_ram_cost": 1, + "strength": 1.3, + "strength_exp": 1, + "work_money": 1, + }, + "queuedAugmentations": [], + "shock": 100, + "skills": { + "agility": 1, + "charisma": 1, + "defense": 1, + "dexterity": 1, + "hacking": 1, + "intelligence": 0, + "strength": 1, + }, + "storedCycles": 0, + "sync": 1, + }, + }, + { + "ctor": "Sleeve", + "data": { + "augmentations": [], + "city": "Sector-12", + "currentWork": { + "ctor": "SleeveRecoveryWork", + "data": { + "type": "RECOVERY", + }, + }, + "exp": { + "agility": 0, + "charisma": 0, + "defense": 0, + "dexterity": 0, + "hacking": 0, + "intelligence": 0, + "strength": 0, + }, + "hp": { + "current": 10, + "max": 10, + }, + "memory": 1, + "mults": { + "agility": 1, + "agility_exp": 1, + "bladeburner_analysis": 1, + "bladeburner_max_stamina": 1, + "bladeburner_stamina_gain": 1, + "bladeburner_success_chance": 1, + "charisma": 1, + "charisma_exp": 1, + "company_rep": 1, + "crime_money": 1, + "crime_success": 1, + "defense": 1, + "defense_exp": 1, + "dexterity": 1, + "dexterity_exp": 1, + "faction_rep": 1, + "hacking": 1, + "hacking_chance": 1, + "hacking_exp": 1, + "hacking_grow": 1, + "hacking_money": 1, + "hacking_speed": 1, + "hacknet_node_core_cost": 1, + "hacknet_node_level_cost": 1, + "hacknet_node_money": 1, + "hacknet_node_purchase_cost": 1, + "hacknet_node_ram_cost": 1, + "strength": 1, + "strength_exp": 1, + "work_money": 1, + }, + "queuedAugmentations": [], + "shock": 100, + "skills": { + "agility": 1, + "charisma": 1, + "defense": 1, + "dexterity": 1, + "hacking": 1, + "intelligence": 0, + "strength": 1, + }, + "storedCycles": 0, + "sync": 1, + }, + }, + ], + "sleevesFromCovenant": 1, + "sourceFiles": { + "ctor": "JSONMap", + "data": [ + [ + 10, + 1, + ], + ], + }, + "terminalCommandHistory": [], + "totalPlaytime": 0, + }, +} +`;