{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Player.ts","webpack:///./src/Netscript/NetscriptHelpers.ts","webpack:///./src/Faction/data/FactionNames.ts","webpack:///./src/Settings/Settings.ts","webpack:///./src/ui/numeralFormat.ts","webpack:///./src/Locations/data/LocationNames.ts","webpack:///./src/Augmentation/data/AugmentationNames.ts","webpack:///./src/Constants.ts","webpack:///./src/utils/JSONReviver.ts","webpack:///./src/ui/React/DialogBox.tsx","webpack:///./src/Locations/data/CityNames.ts","webpack:///./src/ui/React/Money.tsx","webpack:///./src/BitNode/BitNodeMultipliers.ts","webpack:///./src/Server/AllServers.ts","webpack:///./src/ui/Router.ts","webpack:///./src/ui/Context.ts","webpack:///./src/utils/StringHelperFunctions.ts","webpack:///./src/Faction/Factions.ts","webpack:///./src/utils/helpers/keyCodes.ts","webpack:///./src/Company/data/companypositionnames.ts","webpack:///./src/utils/helpers/getRandomInt.ts","webpack:///./src/Corporation/data/Constants.ts","webpack:///./src/Augmentation/Augmentation.tsx","webpack:///./src/ui/React/Modal.tsx","webpack:///./src/Hacknet/data/Constants.ts","webpack:///./src/Corporation/EmployeePositions.ts","webpack:///./src/Bladeburner/data/ActionTypes.ts","webpack:///./src/InteractiveTutorial.ts","webpack:///./src/Server/Server.ts","webpack:///./src/Corporation/ui/Context.ts","webpack:///./src/Corporation/IndustryData.tsx","webpack:///./src/Locations/LocationTypeEnum.ts","webpack:///./src/Work/ClassWork.tsx","webpack:///./src/Hacknet/HacknetHelpers.tsx","webpack:///./src/Corporation/Actions.ts","webpack:///./src/Bladeburner/data/BlackOperationNames.ts","webpack:///./src/PersonObjects/Player/PlayerObjectGeneralMethods.ts","webpack:///./src/Bladeburner/data/Constants.ts","webpack:///./src/Programs/Programs.ts","webpack:///./src/CotMG/FragmentType.ts","webpack:///./src/Literature/data/LiteratureNames.ts","webpack:///./src/ui/React/StatsRow.tsx","webpack:///./src/Augmentation/StaticAugmentations.ts","webpack:///./src/StockMarket/data/PositionTypes.ts","webpack:///./src/ui/React/Table.tsx","webpack:///./src/Company/Companies.ts","webpack:///./src/Gang/AllGangs.ts","webpack:///./src/Terminal/DirectoryHelpers.ts","webpack:///./src/Terminal.ts","webpack:///./src/Crime/Crimes.ts","webpack:///./src/Casino/utils.ts","webpack:///./src/Server/data/SpecialServers.ts","webpack:///./src/Work/WorkStats.ts","webpack:///./src/ui/GameRoot.tsx","webpack:///./src/Hacknet/HacknetServer.ts","webpack:///./src/ui/React/Snackbar.tsx","webpack:///./src/StockMarket/data/StockSymbols.ts","webpack:///./src/Script/isScriptFilename.ts","webpack:///./src/Hacking.ts","webpack:///./src/PersonObjects/Sleeve/Work/Work.ts","webpack:///./src/CotMG/Helper.tsx","webpack:///./src/StockMarket/StockMarket.tsx","webpack:///./src/Faction/FactionHelpers.tsx","webpack:///./src/SaveObject.tsx","webpack:///./src/Company/CompanyPositions.ts","webpack:///./src/Work/data/FactionWorkType.ts","webpack:///./src/Exploits/Exploit.ts","webpack:///./src/Augmentation/AugmentationHelpers.tsx","webpack:///./src/ui/React/MoneyRate.tsx","webpack:///./src/CodingContracts.ts","webpack:///./src/StockMarket/data/OrderTypes.ts","webpack:///./src/CotMG/Fragment.ts","webpack:///./src/ScriptEditor/ui/themes.ts","webpack:///./src/utils/EventEmitter.ts","webpack:///./src/DevMenu/ui/Adjuster.tsx","webpack:///./src/Infiltration/utils.ts","webpack:///./src/Bladeburner/BlackOperation.ts","webpack:///./src/utils/WorkType.ts","webpack:///./src/Corporation/data/BaseResearchTree.ts","webpack:///./src/Server/ServerHelpers.ts","webpack:///./src/Corporation/ui/MoneyCost.tsx","webpack:///./src/Bladeburner/data/SkillNames.ts","webpack:///./src/ui/React/Reputation.tsx","webpack:///./src/Gang/ui/Context.ts","webpack:///./src/Netscript/killWorkerScript.ts","webpack:///./src/utils/helpers/isString.ts","webpack:///./src/ui/React/OptionSwitch.tsx","webpack:///./src/BitNode/BitNode.tsx","webpack:///./src/Work/Work.ts","webpack:///./src/StockMarket/Stock.ts","webpack:///./src/Locations/Cities.ts","webpack:///./src/Hacknet/formulas/HacknetServers.ts","webpack:///./src/Alias.ts","webpack:///./src/Locations/Locations.ts","webpack:///./src/Literature/Literature.ts","webpack:///./src/ui/React/CopyableText.tsx","webpack:///./src/Themes/ui/Theme.tsx","webpack:///./src/Settings/SettingEnums.ts","webpack:///./src/ui/React/LogBoxManager.tsx","webpack:///./src/Corporation/MaterialSizes.ts","webpack:///./src/Netscript/ScriptDeath.ts","webpack:///./src/PersonObjects/formulas/skill.ts","webpack:///./src/Gang/data/upgrades.ts","webpack:///./src/NetscriptWorker.ts","webpack:///./src/Gang/data/Constants.ts","webpack:///./src/Faction/Faction.ts","webpack:///./src/Netscript/WorkerScripts.ts","webpack:///./src/Corporation/Material.ts","webpack:///./src/Gang/formulas/formulas.ts","webpack:///./src/Infiltration/ui/GameTimer.tsx","webpack:///./src/Bladeburner/Bladeburner.tsx","webpack:///./src/Hacknet/formulas/HacknetNodes.ts","webpack:///./src/Casino/Game.tsx","webpack:///./src/CotMG/data/Shapes.ts","webpack:///./src/Infiltration/ui/Difficulty.ts","webpack:///./src/Infiltration/ui/KeyHandler.tsx","webpack:///./src/Work/FactionWork.tsx","webpack:///./src/ui/React/Hashes.tsx","webpack:///./src/Hacknet/HacknetNode.ts","webpack:///./src/Server/ServerPurchases.ts","webpack:///./src/TextFile.ts","webpack:///./src/PersonObjects/formulas/reputation.ts","webpack:///./src/Netscript/RamCostGenerator.ts","webpack:///./src/Bladeburner/Skills.ts","webpack:///./src/StockMarket/StockMarketHelpers.ts","webpack:///./src/Gang/GangMemberUpgrades.ts","webpack:///./src/StockMarket/StockMarketCosts.ts","webpack:///./src/ui/React/NumberInput.tsx","webpack:///./src/PersonObjects/Multipliers.ts","webpack:///./src/Hacknet/HashUpgrades.ts","webpack:///./src/Gang/GangMemberTasks.ts","webpack:///./src/Corporation/Warehouse.ts","webpack:///./src/StockMarket/BuyingAndSelling.tsx","webpack:///./src/Terminal/ITerminal.tsx","webpack:///./src/Bladeburner/Skill.ts","webpack:///./src/ui/React/ConfirmationModal.tsx","webpack:///./src/utils/helpers/createProgressBarText.ts","webpack:///./src/hash/hash.ts","webpack:///./src/Work/formulas/Class.ts","webpack:///./src/Script/Script.ts","webpack:///./src/ui/React/StatsTable.tsx","webpack:///./src/DarkWeb/DarkWebItems.ts","webpack:///./src/Bladeburner/GeneralActions.tsx","webpack:///./src/Casino/CardDeck/Card.ts","webpack:///./src/Bladeburner/ActionIdentifier.ts","webpack:///./src/SourceFile/SourceFile.ts","webpack:///./src/Script/ScriptHelpers.ts","webpack:///./src/PersonObjects/formulas/intelligence.ts","webpack:///./src/Company/Company.ts","webpack:///./src/utils/helpers/arrayToString.ts","webpack:///./src/MathJaxWrapper.tsx","webpack:///./src/utils/helpers/exceptionAlert.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts","webpack:///./src/Corporation/data/CorporationUnlockUpgrades.ts","webpack:///./src/PersonObjects/Grafting/GraftingHelpers.ts","webpack:///./src/Bladeburner/BlackOperations.tsx","webpack:///./src/CotMG/ActiveFragment.ts","webpack:///./src/Crime/Crime.ts","webpack:///./src/GameOptions/GameOptionsTab.ts","webpack:///./src/ui/React/HashRate.tsx","webpack:///./src/Message/Message.ts","webpack:///./src/Locations/ui/ApplyToJobButton.tsx","webpack:///./src/Corporation/ResearchMap.ts","webpack:///./src/Netscript/WorkerScriptStartStopEventEmitter.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveCompanyWork.ts","webpack:///./src/Electron.tsx","webpack:///./src/Work/CreateProgramWork.ts","webpack:///./src/Achievements/Achievements.ts","webpack:///./src/ui/React/CharacterOverview.tsx","webpack:///./src/utils/helpers/addOffset.ts","webpack:///./src/DarkWeb/DarkWebItem.ts","webpack:///./src/Augmentation/PlayerOwnedAugmentation.ts","webpack:///./src/Casino/RNG.ts","webpack:///./src/Work/CompanyWork.tsx","webpack:///./src/ui/React/Favor.tsx","webpack:///./src/Script/RamCalculationErrorCodes.ts","webpack:///./src/Terminal/TerminalEvents.ts","webpack:///./src/StockMarket/OrderProcessing.tsx","webpack:///./src/Themes/Themes.ts","webpack:///./src/ui/React/AlertManager.tsx","webpack:///./src/utils/IPAddress.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveSupportWork.ts","webpack:///./src/Netscript/RecentScripts.ts","webpack:///./src/db.tsx","webpack:///./src/Message/MessageHelpers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveClassWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts","webpack:///./src/Faction/formulas/favor.ts","webpack:///./src/CodingContractGenerator.ts","webpack:///./src/ExportBonus.tsx","webpack:///./src/ui/React/ReputationRate.tsx","webpack:///./src/Faction/ui/Option.tsx","webpack:///./src/Bladeburner/Operation.ts","webpack:///./src/Augmentation/data/AugmentationCreator.tsx","webpack:///./src/Server/data/servers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveInfiltrateWork.ts","webpack:///./src/Company/CompanyPosition.ts","webpack:///./src/StockMarket/PlayerInfluencing.ts","webpack:///./src/utils/helpers/checkEnum.ts","webpack:///./src/SourceFile/SourceFiles.tsx","webpack:///./src/Bladeburner/ui/StartButton.tsx","webpack:///./src/ui/React/CorruptableText.tsx","webpack:///./src/Work/GraftingWork.tsx","webpack:///./src/utils/helpers/formatTime.ts","webpack:///./src/Faction/FactionInfo.tsx","webpack:///./src/Work/formulas/Faction.ts","webpack:///./src/Hacknet/HashManager.ts","webpack:///./src/ui/InteractiveTutorial/ITutorialEvents.ts","webpack:///./src/Crime/CrimeHelpers.ts","webpack:///./src/Corporation/OfficeSpace.ts","webpack:///./src/Corporation/data/CorporationUpgrades.ts","webpack:///./src/PersonObjects/Grafting/GraftableAugmentation.ts","webpack:///./src/ui/React/Progress.tsx","webpack:///./src/utils/Validator.ts","webpack:///./src/Infiltration/formulas/victory.ts","webpack:///./src/utils/MoneySourceTracker.ts","webpack:///./src/utils/CompressionContracts.ts","webpack:///./src/ui/React/StatsProgressBar.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectGangMethods.ts","webpack:///./src/Themes/Styles.ts","webpack:///./src/utils/helpers/compareArrays.ts","webpack:///./src/Hospital/Hospital.ts","webpack:///./src/Hacking/netscriptCanHack.ts","webpack:///./src/ui/React/PromptManager.tsx","webpack:///./src/Corporation/Product.ts","webpack:///./src/Corporation/ui/Helpers.tsx","webpack:///./src/Programs/ui/ProgramsRoot.tsx","webpack:///./src/Faction/ui/FactionsRoot.tsx","webpack:///./src/RedPill.tsx","webpack:///./src/ui/React/RecoveryRoot.tsx","webpack:///./src/NetworkShare/Share.tsx","webpack:///./src/Netscript/WorkerScript.ts","webpack:///./src/PersonObjects/Sleeve/Sleeve.ts","webpack:///./src/Corporation/Corporation.tsx","webpack:///./src/Bladeburner/City.ts","webpack:///./src/Locations/City.ts","webpack:///./src/GameOptions/ui/OptionsSlider.tsx","webpack:///./src/StockMarket/ui/StockTickersConfig.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectServerMethods.ts","webpack:///./src/Prestige.ts","webpack:///./src/Bladeburner/Action.tsx","webpack:///./src/Gang/GangMemberTask.ts","webpack:///./src/Work/CrimeWork.ts","webpack:///./src/ui/Apr1.tsx","webpack:///./src/ui/React/WorldMap.tsx","webpack:///./src/Bladeburner/ui/SuccessChance.tsx","webpack:///./src/ui/React/StaticModal.tsx","webpack:///./src/PersonObjects/Sleeve/Work/SleeveRecoveryWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveSynchroWork.ts","webpack:///./src/Script/RunningScript.ts","webpack:///./src/Literature/LiteratureHelpers.ts","webpack:///./src/DarkWeb/DarkWeb.tsx","webpack:///./src/Infiltration/formulas/game.ts","webpack:///./src/Terminal/Parser.ts","webpack:///./src/ui/React/CinematicText.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveCovenantPurchases.tsx","webpack:///./src/Script/RamCalculations.ts","webpack:///./src/utils/helpers/roundToTwo.ts","webpack:///./src/Netscript/Pid.ts","webpack:///./src/NetscriptFunctions.ts","webpack:///./src/Gang/Gang.ts","webpack:///./src/Faction/formulas/donation.ts","webpack:///./src/Company/GetJobRequirementText.ts","webpack:///./src/Terminal/HelpText.ts","webpack:///./src/utils/ErrorHelper.ts","webpack:///./src/utils/helpers/getRandomByte.ts","webpack:///./src/Bladeburner/data/Growths.ts","webpack:///./src/Locations/createCityMap.ts","webpack:///./src/GameOptions/ui/GameOptionsPage.tsx","webpack:///./src/Casino/CardDeck/Hand.ts","webpack:///./src/StockMarket/ui/StockTickerTxButton.tsx","webpack:///./src/CotMG/ui/DummyGrid.tsx","webpack:///./src/Server/BaseServer.ts","webpack:///./src/ui/React/CodingContractModal.tsx","webpack:///./src/BitNode/ui/BitFlumeModal.tsx","webpack:///./src/PersonObjects/Player/PlayerObject.ts","webpack:///./src/Faction/ui/InvitationModal.tsx","webpack:///./src/ThirdParty/JSInterpreter.js","webpack:///./src/Server/formulas/grow.ts","webpack:///./src/Gang/GangMember.ts","webpack:///./src/NetscriptFunctions/toNative.ts","webpack:///./src/ui/React/ANSIITypography.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveHelpers.ts","webpack:///./src/Work/formulas/Crime.ts","webpack:///./src/Bladeburner/data/GeneralActions.tsx","webpack:///./src/Work/formulas/Company.ts","webpack:///./src/CotMG/StaneksGiftEvents.ts","webpack:///./src/Locations/data/LocationsMetadata.ts","webpack:///./src/Terminal/commands/download.ts","webpack:///./src/utils/V2Modal.tsx","webpack:///./src/SourceFile/PlayerOwnedSourceFile.ts","webpack:///./src/Bladeburner/data/Icons.tsx","webpack:///./src/Bladeburner/ui/ActionLevel.tsx","webpack:///./src/Bladeburner/ui/Autolevel.tsx","webpack:///./src/Bladeburner/ui/TeamSizeButton.tsx","webpack:///./src/PersonObjects/Grafting/ui/GraftingRoot.tsx","webpack:///./src/Infiltration/ui/BlinkingCursor.tsx","webpack:///./src/Themes/ui/StyleEditorButton.tsx","webpack:///./src/Themes/ui/ThemeEditorButton.tsx","webpack:///./src/Themes/ui/ThemeCollaborate.tsx","webpack:///./src/ui/React/DeleteGameButton.tsx","webpack:///./src/ui/React/SoftResetButton.tsx","webpack:///./src/Augmentation/ui/PurchasableAugmentations.tsx","webpack:///./src/Locations/ui/TravelAgencyRoot.tsx","webpack:///./src/ScriptEditor/ui/ScriptEditorRoot.tsx","webpack:///./src/Terminal/DirectoryServerHelpers.ts","webpack:///./src/NetscriptJSEvaluator.ts","webpack:///./src/NetscriptFunctions/Flags.ts","webpack:///./src/ui/React/TablePaginationActionsAll.tsx","webpack:///./src/BitNode/ui/BitnodeMultipliersDescription.tsx","webpack:///./src/CotMG/ui/Cell.tsx","webpack:///./src/CotMG/ui/Grid.tsx","webpack:///./src/Script/RunningScriptHelpers.ts","webpack:///./src/Terminal/commands/common/editor.ts","webpack:///./src/utils/HammingCodeTools.ts","webpack:///./src/Bladeburner/Contract.ts","webpack:///./src/Bladeburner/data/Help.ts","webpack:///./src/Corporation/ResearchTree.ts","webpack:///./src/StockMarket/StockMarketConstants.ts","webpack:///./src/CotMG/data/Constants.ts","webpack:///./src/utils/v1APIBreak.ts","webpack:///./src/Company/GetNextCompanyPosition.ts","webpack:///./src/PersonObjects/Player/PlayerObjectBladeburnerMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectCorporationMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectWorkMethods.ts","webpack:///./src/engine.tsx","webpack:///./src/Themes/data/index.ts","webpack:///./src/ui/LoadingScreen.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectAugmentationMethods.ts","webpack:///./src/utils/helpers/isValidNumber.ts","webpack:///./src/StockMarket/Order.ts","webpack:///./src/CotMG/StaneksGift.ts","webpack:///./src/Locations/Location.ts","webpack:///./src/PersonObjects/Sleeve/ui/StatsElement.tsx","webpack:///./src/ui/React/ServerDropdown.tsx","webpack:///./src/Casino/Blackjack.tsx","webpack:///./src/Casino/CardDeck/ReactCard.tsx","webpack:///./src/Milestones/Milestones.ts","webpack:///./src/StockMarket/data/TickerHeaderFormatData.ts","webpack:///./src/Achievements/AchievementEntry.tsx","webpack:///./src/ThirdParty/colorUtils.ts","webpack:///./src/Themes/data/default/index.ts","webpack:///./src/Themes/data/default-lite/index.ts","webpack:///./src/Themes/data/monokai-ish/index.ts","webpack:///./src/Themes/data/warmer/index.ts","webpack:///./src/Themes/data/dark-plus/index.ts","webpack:///./src/Themes/data/mayukai-dark/index.ts","webpack:///./src/Themes/data/purple/index.ts","webpack:///./src/Themes/data/smooth-green/index.ts","webpack:///./src/Themes/data/dracula/index.ts","webpack:///./src/Themes/data/dark-blue/index.ts","webpack:///./src/Themes/data/discord-like/index.ts","webpack:///./src/Themes/data/one-dark/index.ts","webpack:///./src/Themes/data/muted-gold-blue/index.ts","webpack:///./src/Themes/data/light/index.ts","webpack:///./src/Themes/data/default/screenshot.png","webpack:///./src/Themes/data/default-lite/screenshot.png","webpack:///./src/Themes/data/monokai-ish/screenshot.png","webpack:///./src/Themes/data/warmer/screenshot.png","webpack:///./src/Themes/data/dark-plus/screenshot.png","webpack:///./src/Themes/data/mayukai-dark/screenshot.png","webpack:///./src/Themes/data/purple/screenshot.png","webpack:///./src/Themes/data/smooth-green/screenshot.png","webpack:///./src/Themes/data/dracula/screenshot.png","webpack:///./src/Themes/data/dark-blue/screenshot.png","webpack:///./src/Themes/data/discord-like/screenshot.png","webpack:///./src/Themes/data/one-dark/screenshot.png","webpack:///./src/Themes/data/muted-gold-blue/screenshot.png","webpack:///./src/Themes/data/light/screenshot.png","webpack:///./src/Terminal/Terminal.ts","webpack:///./src/data/codingcontracttypes.ts","webpack:///./src/utils/Heap.ts","webpack:///./src/utils/helpers/createRandomString.ts","webpack:///./src/Programs/Program.ts","webpack:///./src/Programs/data/ProgramsMetadata.ts","webpack:///./src/utils/helpers/isValidIPAddress.ts","webpack:///./src/PersonObjects/ITaskTracker.ts","webpack:///./src/utils/helpers/getTimestamp.ts","webpack:///./src/NetworkShare/formulas/share.tsx","webpack:///./src/Company/data/CompaniesMetadata.ts","webpack:///./src/Corporation/Research.ts","webpack:///./src/Corporation/data/ResearchMetadata.ts","webpack:///./src/Hacknet/HashUpgrade.ts","webpack:///./src/Hacknet/data/HashUpgradesMetadata.tsx","webpack:///./src/Netscript/Environment.ts","webpack:///./src/utils/helpers/isPowerOfTwo.ts","webpack:///./src/StockMarket/data/InitStockMetadata.ts","webpack:///./src/Gang/data/tasks.ts","webpack:///./src/Gang/GangMemberUpgrade.ts","webpack:///./src/NetscriptFunctions/Gang.ts","webpack:///./src/Gang/data/power.ts","webpack:///./src/NetscriptFunctions/Sleeve.ts","webpack:///./src/Company/data/CompanyPositionsMetadata.ts","webpack:///./src/NetscriptFunctions/Extra.ts","webpack:///./src/NetscriptFunctions/Hacknet.ts","webpack:///./src/NetscriptFunctions/Stanek.ts","webpack:///./src/CotMG/formulas/effect.ts","webpack:///./src/NetscriptFunctions/Infiltration.ts","webpack:///./src/NetscriptFunctions/UserInterface.ts","webpack:///./src/NetscriptFunctions/Bladeburner.ts","webpack:///./src/NetscriptFunctions/CodingContract.ts","webpack:///./src/utils/helpers/is2DArray.ts","webpack:///./src/NetscriptFunctions/Corporation.ts","webpack:///./src/Corporation/Industry.ts","webpack:///./src/utils/calculateEffectWithFactors.ts","webpack:///./src/Corporation/Employee.ts","webpack:///./src/Corporation/ProductRatingWeights.ts","webpack:///./src/NetscriptFunctions/Formulas.ts","webpack:///./src/NetscriptFunctions/StockMarket.ts","webpack:///./src/NetscriptFunctions/Grafting.ts","webpack:///./src/utils/v2APIBreak.ts","webpack:///./src/ui/InteractiveTutorial/InteractiveTutorialRoot.tsx","webpack:///./src/ui/InteractiveTutorial/NSSelection.tsx","webpack:///./src/ui/React/Overview.tsx","webpack:///./src/Sidebar/ui/SidebarRoot.tsx","webpack:///./src/Programs/ProgramHelpers.ts","webpack:///./src/Augmentation/ui/AugmentationsRoot.tsx","webpack:///./src/Augmentation/ui/InstalledAugmentations.tsx","webpack:///./src/Augmentation/ui/PlayerMultipliers.tsx","webpack:///./src/Augmentation/ui/PurchasedAugmentations.tsx","webpack:///./src/Augmentation/ui/SourceFiles.tsx","webpack:///./src/DevMenu.tsx","webpack:///./src/DevMenu/ui/General.tsx","webpack:///./src/DevMenu/ui/Stats.tsx","webpack:///./src/DevMenu/ui/Factions.tsx","webpack:///./src/DevMenu/ui/Augmentations.tsx","webpack:///./src/DevMenu/ui/SourceFiles.tsx","webpack:///./src/DevMenu/ui/Programs.tsx","webpack:///./src/DevMenu/ui/Servers.tsx","webpack:///./src/DevMenu/ui/Companies.tsx","webpack:///./src/DevMenu/ui/Bladeburner.tsx","webpack:///./src/DevMenu/ui/Gang.tsx","webpack:///./src/DevMenu/ui/Corporation.tsx","webpack:///./src/DevMenu/ui/CodingContracts.tsx","webpack:///./src/DevMenu/ui/StockMarket.tsx","webpack:///./src/DevMenu/ui/Sleeves.tsx","webpack:///./src/DevMenu/ui/Stanek.tsx","webpack:///./src/DevMenu/ui/TimeSkip.tsx","webpack:///./src/DevMenu/ui/SaveFile.tsx","webpack:///./src/DevMenu/ui/Achievements.tsx","webpack:///./src/DevMenu/ui/Entropy.tsx","webpack:///./src/Bladeburner/ui/BladeburnerRoot.tsx","webpack:///./src/Bladeburner/ui/Stats.tsx","webpack:///./src/Bladeburner/ui/TravelModal.tsx","webpack:///./src/Bladeburner/ui/Console.tsx","webpack:///./src/Bladeburner/ui/AllPages.tsx","webpack:///./src/Bladeburner/ui/GeneralActionPage.tsx","webpack:///./src/Bladeburner/ui/GeneralActionList.tsx","webpack:///./src/Bladeburner/ui/GeneralActionElem.tsx","webpack:///./src/Bladeburner/ui/ContractPage.tsx","webpack:///./src/Bladeburner/ui/ContractList.tsx","webpack:///./src/Bladeburner/ui/ContractElem.tsx","webpack:///./src/Bladeburner/data/Contracts.tsx","webpack:///./src/Bladeburner/ui/StealthIcon.tsx","webpack:///./src/Bladeburner/ui/KillIcon.tsx","webpack:///./src/Bladeburner/ui/OperationPage.tsx","webpack:///./src/Bladeburner/ui/OperationList.tsx","webpack:///./src/Bladeburner/ui/OperationElem.tsx","webpack:///./src/Bladeburner/ui/TeamSizeModal.tsx","webpack:///./src/Bladeburner/data/Operations.tsx","webpack:///./src/Bladeburner/ui/BlackOpPage.tsx","webpack:///./src/Bladeburner/ui/BlackOpList.tsx","webpack:///./src/Bladeburner/ui/BlackOpElem.tsx","webpack:///./src/Bladeburner/data/BlackOperations.tsx","webpack:///./src/Bladeburner/ui/SkillPage.tsx","webpack:///./src/Bladeburner/ui/SkillList.tsx","webpack:///./src/Bladeburner/ui/SkillElem.tsx","webpack:///./src/Gang/ui/GangRoot.tsx","webpack:///./src/Gang/ui/ManagementSubpage.tsx","webpack:///./src/Gang/ui/GangStats.tsx","webpack:///./src/Gang/ui/BonusTime.tsx","webpack:///./src/Gang/ui/GangMemberList.tsx","webpack:///./src/Gang/ui/GangMemberCard.tsx","webpack:///./src/Gang/ui/GangMemberCardContent.tsx","webpack:///./src/Gang/ui/GangMemberStats.tsx","webpack:///./src/ui/React/KillScriptsModal.tsx","webpack:///./src/Gang/ui/TaskSelector.tsx","webpack:///./src/Gang/ui/TaskDescription.tsx","webpack:///./src/Gang/ui/AscensionModal.tsx","webpack:///./src/Gang/ui/RecruitButton.tsx","webpack:///./src/Gang/ui/RecruitModal.tsx","webpack:///./src/Gang/ui/TerritorySubpage.tsx","webpack:///./src/Gang/ui/TerritoryInfoModal.tsx","webpack:///./src/Gang/ui/EquipmentsSubpage.tsx","webpack:///./src/Corporation/ui/CorporationRoot.tsx","webpack:///./src/Corporation/ui/MainPanel.tsx","webpack:///./src/Corporation/ui/CityTabs.tsx","webpack:///./src/Corporation/ui/Industry.tsx","webpack:///./src/Corporation/ui/IndustryOffice.tsx","webpack:///./src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx","webpack:///./src/Corporation/ui/modals/ThrowPartyModal.tsx","webpack:///./src/Corporation/ui/IndustryOverview.tsx","webpack:///./src/Corporation/ui/modals/MakeProductModal.tsx","webpack:///./src/Corporation/ui/modals/ResearchModal.tsx","webpack:///./src/Corporation/ui/IndustryWarehouse.tsx","webpack:///./src/Corporation/ui/modals/SmartSupplyModal.tsx","webpack:///./src/Corporation/ui/ProductElem.tsx","webpack:///./src/Corporation/ui/modals/DiscontinueProductModal.tsx","webpack:///./src/Corporation/ui/modals/LimitProductProductionModal.tsx","webpack:///./src/Corporation/ui/modals/SellProductModal.tsx","webpack:///./src/Corporation/ui/modals/ProductMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/CancelProductModal.tsx","webpack:///./src/Corporation/ui/MaterialElem.tsx","webpack:///./src/Corporation/ui/modals/ExportModal.tsx","webpack:///./src/Corporation/ui/modals/MaterialMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/SellMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/PurchaseMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/LimitMaterialProductionModal.tsx","webpack:///./src/Corporation/ui/IndustryProductEquation.tsx","webpack:///./src/Corporation/ui/ExpandNewCity.tsx","webpack:///./src/Corporation/ui/ExpandIndustryTab.tsx","webpack:///./src/Corporation/ui/Overview.tsx","webpack:///./src/Corporation/ui/LevelableUpgrade.tsx","webpack:///./src/Corporation/ui/UnlockUpgrade.tsx","webpack:///./src/Corporation/ui/modals/BribeFactionModal.tsx","webpack:///./src/Corporation/ui/modals/SellSharesModal.tsx","webpack:///./src/Corporation/ui/modals/BuybackSharesModal.tsx","webpack:///./src/Corporation/ui/modals/IssueDividendsModal.tsx","webpack:///./src/Corporation/ui/modals/IssueNewSharesModal.tsx","webpack:///./src/Corporation/ui/modals/FindInvestorsModal.tsx","webpack:///./src/Corporation/ui/modals/GoPublicModal.tsx","webpack:///./src/Infiltration/ui/InfiltrationRoot.tsx","webpack:///./src/Infiltration/ui/Game.tsx","webpack:///./src/Infiltration/ui/BackwardGame.tsx","webpack:///./src/Infiltration/ui/BracketGame.tsx","webpack:///./src/Infiltration/ui/BribeGame.tsx","webpack:///./src/Infiltration/ui/CheatCodeGame.tsx","webpack:///./src/Infiltration/ui/Countdown.tsx","webpack:///./src/Infiltration/ui/Cyberpunk2077Game.tsx","webpack:///./src/Infiltration/ui/MinesweeperGame.tsx","webpack:///./src/Infiltration/ui/SlashGame.tsx","webpack:///./src/Infiltration/ui/Victory.tsx","webpack:///./src/Infiltration/ui/WireCuttingGame.tsx","webpack:///./src/Infiltration/ui/Intro.tsx","webpack:///./src/ui/WorkInProgressRoot.tsx","webpack:///./src/GameOptions/ui/GameOptionsRoot.tsx","webpack:///./src/GameOptions/ui/CurrentOptionsPage.tsx","webpack:///./src/GameOptions/ui/GameOptionsSidebar.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveElem.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveAugmentationsModal.tsx","webpack:///./src/Augmentation/ui/PurchaseAugmentationModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TaskSelector.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TravelModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/FAQModal.tsx","webpack:///./src/Hacknet/ui/HacknetRoot.tsx","webpack:///./src/Hacknet/ui/GeneralInfo.tsx","webpack:///./src/Hacknet/ui/HacknetNodeElem.tsx","webpack:///./src/Hacknet/ui/HacknetServerElem.tsx","webpack:///./src/Hacknet/ui/HashUpgradeModal.tsx","webpack:///./src/Hacknet/ui/HacknetUpgradeElem.tsx","webpack:///./src/Hacknet/ui/MultiplierButtons.tsx","webpack:///./src/Hacknet/ui/PlayerInfo.tsx","webpack:///./src/Hacknet/ui/PurchaseButton.tsx","webpack:///./src/Locations/ui/GenericLocation.tsx","webpack:///./src/Locations/ui/CompanyLocation.tsx","webpack:///./src/Company/ui/QuitJobModal.tsx","webpack:///./src/Locations/ui/GymLocation.tsx","webpack:///./src/Locations/ui/HospitalLocation.tsx","webpack:///./src/Locations/ui/SlumsLocation.tsx","webpack:///./src/Locations/ui/SpecialLocation.tsx","webpack:///./src/Corporation/ui/modals/CreateCorporationModal.tsx","webpack:///./src/utils/helpers/N00dles.ts","webpack:///./src/Arcade/ui/ArcadeRoot.tsx","webpack:///./src/Arcade/ui/BBCabinet.tsx","webpack:///./src/Locations/ui/TechVendorLocation.tsx","webpack:///./src/Locations/ui/RamButton.tsx","webpack:///./src/Locations/ui/TorButton.tsx","webpack:///./src/Locations/LocationsHelpers.tsx","webpack:///./src/Locations/ui/CoresButton.tsx","webpack:///./src/Locations/ui/PurchaseServerModal.tsx","webpack:///./src/Locations/ui/TravelConfirmationModal.tsx","webpack:///./src/Locations/ui/UniversityLocation.tsx","webpack:///./src/Locations/ui/CasinoLocation.tsx","webpack:///./src/Casino/CardDeck/Deck.ts","webpack:///./src/Casino/CoinFlip.tsx","webpack:///./src/Casino/Roulette.tsx","webpack:///./src/Casino/SlotMachine.tsx","webpack:///./src/Locations/ui/City.tsx","webpack:///./src/ScriptEditor/ui/OptionsModal.tsx","webpack:///./src/ScriptEditor/ui/ThemeEditorModal.tsx","webpack:///./src/ScriptEditor/NetscriptDefinitions.d.ts","webpack:///./src/Milestones/ui/MilestonesRoot.tsx","webpack:///./src/Terminal/ui/TerminalRoot.tsx","webpack:///./src/Terminal/ui/TerminalInput.tsx","webpack:///./src/Terminal/determineAllPossibilitiesForTabCompletion.ts","webpack:///./src/Script/ScriptUrl.ts","webpack:///./src/Terminal/tabCompletion.ts","webpack:///./src/Tutorial/ui/TutorialRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/ScriptProduction.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordions.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordion.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordionContent.tsx","webpack:///./src/ui/ActiveScripts/WorkerScriptAccordion.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptAccordion.tsx","webpack:///./src/Faction/ui/FactionRoot.tsx","webpack:///./src/Faction/ui/AugmentationsPage.tsx","webpack:///./src/Faction/ui/DonateOption.tsx","webpack:///./src/Faction/ui/Info.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantPurchasesRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx","webpack:///./src/PersonObjects/Person.ts","webpack:///./src/SourceFile/applySourceFile.ts","webpack:///./src/Exploits/applyExploits.ts","webpack:///./src/Faction/ui/GangButton.tsx","webpack:///./src/Faction/ui/CreateGangModal.tsx","webpack:///./src/ui/CharacterStats.tsx","webpack:///./src/StockMarket/ui/StockMarketRoot.tsx","webpack:///./src/StockMarket/ui/InfoAndPurchases.tsx","webpack:///./src/StockMarket/ui/StockTickers.tsx","webpack:///./src/StockMarket/ui/StockTicker.tsx","webpack:///./src/StockMarket/ui/StockTickerHeaderText.tsx","webpack:///./src/StockMarket/ui/StockTickerOrderList.tsx","webpack:///./src/StockMarket/ui/StockTickerOrder.tsx","webpack:///./src/StockMarket/ui/StockTickerPositionText.tsx","webpack:///./src/StockMarket/ui/PlaceOrderModal.tsx","webpack:///./src/BitNode/ui/BitverseRoot.tsx","webpack:///./src/BitNode/ui/PortalModal.tsx","webpack:///./src/ui/React/CinematicLine.tsx","webpack:///./src/CotMG/ui/StaneksGiftRoot.tsx","webpack:///./src/CotMG/ui/MainBoard.tsx","webpack:///./src/CotMG/ui/FragmentInspector.tsx","webpack:///./src/CotMG/ui/FragmentSelector.tsx","webpack:///./src/CotMG/ui/FragmentPreview.tsx","webpack:///./src/CotMG/ui/ActiveFragmentSummary.tsx","webpack:///./src/CotMG/DummyGift.ts","webpack:///./src/Bladeburner/ui/BladeburnerCinematic.tsx","webpack:///./src/Exploits/Unclickable.tsx","webpack:///./src/Achievements/AchievementsRoot.tsx","webpack:///./src/Achievements/AchievementList.tsx","webpack:///./src/Achievements/AchievementIcon.tsx","webpack:///./src/ui/ErrorBoundary.tsx","webpack:///./src/Themes/ui/ThemeBrowser.tsx","webpack:///./src/Themes/ui/ThemeEntry.tsx","webpack:///./src/ui/React/ImportSaveRoot.tsx","webpack:///./src/ui/React/BypassWrapper.tsx","webpack:///./src/NetscriptFunctions/Singularity.ts","webpack:///./src/Netscript/APIWrapper.ts","webpack:///./src/NetscriptPort.ts","webpack:///./src/utils/helpers/clearObject.ts","webpack:///./src/PersonObjects/Grafting/EntropyAccumulation.ts","webpack:///./src/Corporation/CorporationState.ts","webpack:///./src/Literature/Literatures.ts","webpack:///./src/Terminal/commands/alias.ts","webpack:///./src/Terminal/commands/analyze.ts","webpack:///./src/Terminal/commands/backdoor.ts","webpack:///./src/Terminal/commands/buy.ts","webpack:///./src/Terminal/commands/cat.ts","webpack:///./src/Terminal/commands/cd.ts","webpack:///./src/Terminal/commands/check.ts","webpack:///./src/Terminal/commands/connect.ts","webpack:///./src/Terminal/commands/cp.ts","webpack:///./src/Terminal/commands/expr.ts","webpack:///./src/Terminal/commands/free.ts","webpack:///./src/Terminal/commands/grow.ts","webpack:///./src/Terminal/commands/hack.ts","webpack:///./src/Terminal/commands/help.ts","webpack:///./src/Terminal/commands/history.ts","webpack:///./src/Terminal/commands/home.ts","webpack:///./src/Terminal/commands/hostname.ts","webpack:///./src/Terminal/commands/kill.ts","webpack:///./src/Terminal/commands/killall.ts","webpack:///./src/Terminal/commands/ls.tsx","webpack:///./src/Terminal/commands/lscpu.ts","webpack:///./src/Terminal/commands/mem.ts","webpack:///./src/Terminal/commands/mv.ts","webpack:///./src/Terminal/commands/nano.ts","webpack:///./src/ScriptEditor/CursorPositions.ts","webpack:///./src/Terminal/commands/ps.ts","webpack:///./src/Terminal/commands/rm.ts","webpack:///./src/Terminal/commands/run.ts","webpack:///./src/Terminal/commands/runScript.ts","webpack:///./src/Terminal/commands/runProgram.ts","webpack:///./src/Terminal/commands/scan.ts","webpack:///./src/Terminal/commands/scananalyze.ts","webpack:///./src/Terminal/commands/scp.ts","webpack:///./src/Terminal/commands/sudov.ts","webpack:///./src/Terminal/commands/tail.ts","webpack:///./src/Terminal/commands/top.ts","webpack:///./src/Terminal/commands/unalias.ts","webpack:///./src/Terminal/commands/vim.ts","webpack:///./src/Terminal/commands/weaken.ts","webpack:///./src/Terminal/commands/wget.ts","webpack:///./src/Terminal/commands/apr1.ts","webpack:///./src/Exploits/loops.ts","webpack:///./src/UncaughtPromiseHandler.ts","webpack:///./src/index.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Player","PlayerObject","loadPlayer","saveString","JSON","parse","Reviver","money","parseFloat","exploits","sanitizeExploits","helpers","string","number","ctx","argName","v","x","isNaN","makeRuntimeErrorMsg","scriptArgs","argsToString","args","out","arg","undefined","toNative","stringify","isScriptErrorMessage","msg","isString","split","makeRuntimeRejectMsg","resolveNetscriptRequestedThreads","requestedThreads","threads","workerScript","scriptRef","requestedThreadsAsInt","function","checkEnvFlags","ws","env","stopFlag","ScriptDeath","runningFn","errorMessage","delayReject","checkSingularityAccess","bitNodeN","sourceFileLvl","netscriptDelay","time","Promise","resolve","reject","delay","setTimeout","updateDynamicRam","ramCost","fnName","dynamicLoadedFns","console","warn","hostname","dynamicRamUsage","ramUsage","numeralWrapper","formatRAM","city","values","CityName","includes","getServer","scriptIdentifier","scriptID","_hostname","_args","pid","scriptname","Error","hack","async","manual","stock","server","Server","hackingTime","calculateHackingTime","canHack","netscriptCanHack","res","log","convertTimeMsToTimeElapsedString","formatThreads","then","hackChance","calculateHackingChance","rand","Math","random","expGainedOnSuccess","calculateHackingExpGain","expGainedOnFailure","percentHacked","calculatePercentMoneyHacked","maxThreadNeeded","ceil","moneyDrained","floor","moneyAvailable","moneyGained","BitNodeMultipliers","ScriptHackMoneyGain","ManualHackMoney","gainMoney","onlineMoneyMade","scriptProdSinceLastAug","recordHack","gainHackingExp","gainIntelligenceExp","onlineExpGained","formatMoney","formatExp","fortify","CONSTANTS","ServerFortifyAmount","min","influenceStockThroughServerHack","backdoorInstalled","getValidPort","port","NumNetscriptPorts","round","iport","NetscriptPorts","player","roughlyIs","hp","mults","numPeopleKilled","location","totalPlaytime","playtimeSinceLastAug","playtimeSinceLastBitnode","jobs","factions","tor","inBladeburner","hasCorporation","entropy","gang","g","respect","territory","wantedLevel","gangMember","GangMember","gangTask","GangMemberTask","getFunctionNames","obj","prefix","functionNames","entries","getRunningScript","ident","GetAllServers","runningScript","findRunningScriptByPid","getRunningScriptByPid","getRunningScriptByArgs","getCannotFindRunningScriptErrorMessage","arrayToString","createPublicRunningScript","filename","logs","offlineExpGained","offlineMoneyMade","offlineRunningTime","onlineRunningTime","failOnHacknetServer","callingFn","HacknetServer","Array","isArray","every","isScriptArgs","scriptUrl","dependencies","replace","RegExp","url","errstack","stack","caller","scripts","userstack","stackline","script","dependency","parseChromeStackline","line","lineMatch","match","funcMatch","func","chromeCall","parseFirefoxStackline","lio","lastIndexOf","firefoxCall","rejectMsg","join","GetServer","expect","actual","expects","keys","actuals","message","functionPath","fn","findRunningScript","FactionNames","defaultSettings","ActiveScriptsServerPageSize","ActiveScriptsScriptPageSize","AutosaveInterval","CodeInstructionRunTime","DisableASCIIArt","DisableHotkeys","DisableTextEffects","DisableOverviewProgressBars","EnableBashHotkeys","TimestampsFormat","Locale","MaxRecentScriptsCapacity","MaxLogCapacity","MaxPortCapacity","MaxTerminalCapacity","SaveGameOnFileSave","SuppressBuyAugmentationConfirmation","SuppressFactionInvites","SuppressMessages","SuppressTravelConfirmation","SuppressBladeburnerPopup","SuppressTIXPopup","SuppressSavedGameToast","SuppressAutosaveDisabledWarnings","UseIEC60027_2","ExcludeRunningScriptsFromSave","IsSidebarOpened","theme","defaultTheme","styles","defaultStyles","overview","y","opened","EditorTheme","defaultMonacoTheme","Settings","OwnedAugmentationsOrder","OwnedAugmentationsOrderSetting","AcquirementTime","PurchaseAugmentationsOrder","PurchaseAugmentationsOrderSetting","Default","MonacoTheme","MonacoInsertSpaces","MonacoFontSize","MonacoVim","MonacoWordWrap","init","assign","load","save","extraFormats","extraNotations","gigaMultiplier","constructor","this","defaultLocale","updateLocale","numeral","locale","format","abs","answer","formatBigNumber","formatReallyBigNumber","decimalPlaces","nAbs","Infinity","repeat","str","formatHp","formatSkill","formatHashes","formatReputation","formatFavor","formatSecurity","toFixed","formatPercentage","formatter","formatServerSecurity","formatRespect","formatWanted","formatMultiplier","formatSleeveShock","formatSleeveSynchro","formatSleeveMemory","formatPopulation","formatStamina","formatShares","formatInfiltrationSecurity","formatStaneksGiftHeat","formatStaneksGiftCharge","formatStaneksGiftPower","parseCustomLargeNumber","numericRegExp","NaN","notation","notationIndex","indexOf","largestAbsoluteNumber","n1","n2","n3","max","parseMoney","numeralValue","parsed","selfParsed","LocationName","AugmentationNames","VersionString","VersionNumber","_idleSpeed","MaxSkillLevel","MilliPerCycle","CorpFactionRepRequirement","BaseCostFor1GBOfRamHome","BaseCostFor1GBOfRamServer","TravelCost","BaseFavorToDonate","DonateMoneyToRepDivisor","FactionReputationToFavorBase","FactionReputationToFavorMult","CompanyReputationToFavorBase","CompanyReputationToFavorMult","NeuroFluxGovernorLevelMult","HomeComputerMaxRam","ServerBaseGrowthRate","ServerMaxGrowthRate","ServerWeakenAmount","PurchasedServerLimit","PurchasedServerMaxRam","MultipleAugMultiplier","TorRouterCost","WSEAccountCost","TIXAPICost","MarketData4SCost","MarketDataTixApi4SCost","StockMarketCommission","HospitalCostPerHp","IntelligenceCrimeWeight","IntelligenceInfiltrationWeight","IntelligenceCrimeBaseExpGain","IntelligenceProgramBaseExpGain","IntelligenceGraftBaseExpGain","IntelligenceTerminalHackBaseExpGain","IntelligenceSingFnBaseExpGain","IntelligenceClassBaseExpGain","MillisecondsPer20Hours","GameCyclesPer20Hours","MillisecondsPer10Hours","GameCyclesPer10Hours","MillisecondsPer8Hours","GameCyclesPer8Hours","MillisecondsPer4Hours","GameCyclesPer4Hours","MillisecondsPer2Hours","GameCyclesPer2Hours","MillisecondsPerHour","GameCyclesPerHour","MillisecondsPerHalfHour","GameCyclesPerHalfHour","MillisecondsPerQuarterHour","GameCyclesPerQuarterHour","MillisecondsPerFiveMinutes","GameCyclesPerFiveMinutes","BaseFocusBonus","ClassDataStructuresBaseCost","ClassNetworksBaseCost","ClassAlgorithmsBaseCost","ClassManagementBaseCost","ClassLeadershipBaseCost","ClassGymBaseCost","ClassStudyComputerScienceBaseExp","ClassDataStructuresBaseExp","ClassNetworksBaseExp","ClassAlgorithmsBaseExp","ClassManagementBaseExp","ClassLeadershipBaseExp","CodingContractBaseFactionRepGain","CodingContractBaseCompanyRepGain","CodingContractBaseMoneyGain","AugmentationGraftingCostMult","AugmentationGraftingTimeBase","SoACostMult","SoARepMult","EntropyEffect","TotalNumBitNodes","InfiniteLoopLimit","Donations","LatestUpdate","ctor","constructors","fromJSON","validationData","validateObject","Generic_toJSON","ctorName","index","Generic_fromJSON","dialogBoxCreate","txt","AlertEvents","emit","component","sx","dangerouslySetInnerHTML","__html","useStyles","makeStyles","createStyles","unbuyable","color","palette","action","disabled","colors","Money","props","classes","canAfford","className","defaultMultipliers","AllServers","isValidIPAddress","GetServerByHostname","ipserver","ip","GetServerByIP","servers","DeleteServer","serverkey","ipExists","hostName","createUniqueRandomIp","createRandomIp","AddToAllServers","initForeignServers","homeComputer","networkLayers","toNumber","getRandomInt","metadata","serverMetadata","serverParams","numOpenPortsRequired","organizationName","maxRamExponent","maxRam","pow","hackDifficulty","requiredHackingSkill","serverGrowth","literature","messages","SpecialServers","WorldDaemon","WorldDaemonDifficulty","networkLayer","linkNetworkLayers","network1","selectServer","server1","server2","serversOnNetwork","getRandomArrayItem","arr","prestigeAllServers","member","loadAllServers","saveAllServers","excludeRunningScripts","TempAllServers","runningScripts","runningScriptObj","Page","Context","React","createContext","Router","use","useContext","showMilli","totalSeconds","days","secondPerHours","secTruncDays","hours","secondPerMinute","secTruncHours","minutes","secTruncMinutes","milliTruncSec","longestCommonStart","strings","containsAllStrings","A","concat","sort","a1","a2","L","a","charAt","b","toUpperCase","substring","formatNumber","num","numFractionDigits","toLocaleString","maximumFractionDigits","minimumFractionDigits","generateRandomString","chars","cyrb53","seed","h1","h2","ch","charCodeAt","imul","toString","Factions","loadFactions","faction","getInfo","err","error","factionExists","initFactions","FactionInfos","resetFaction","Faction","newFactionObject","factionName","favor","AddToFactions","KEY","KEYCODE","SoftwareCompanyPositions","ITCompanyPositions","SecurityEngineerCompanyPositions","NetworkEngineerCompanyPositions","BusinessCompanyPositions","SecurityCompanyPositions","AgentCompanyPositions","MiscCompanyPositions","SoftwareConsultantCompanyPositions","BusinessConsultantCompanyPositions","PartTimeCompanyPositions","lower","upper","AllCorporationStates","CorporationConstants","INITIALSHARES","SHARESPERPRICEUPDATE","IssueNewSharesCooldown","SellSharesCooldown","CyclesPerMarketCycle","CyclesPerIndustryStateCycle","SecsPerMarketCycle","Cities","Aevum","Chongqing","Sector12","NewTokyo","Ishima","Volhaven","WarehouseInitialCost","WarehouseInitialSize","WarehouseUpgradeBaseCost","OfficeInitialCost","OfficeInitialSize","OfficeUpgradeBaseCost","BribeThreshold","BribeToRepRatio","ProductProductionCostRatio","DividendMaxRate","EmployeeSalaryMultiplier","CyclesPerEmployeeRaise","EmployeeRaiseAmount","BaseMaxProducts","AllMaterials","AllIndustryTypes","AllUnlocks","AllUpgrades","AllResearch","FundingRoundShares","FundingRoundMultiplier","AvgProfitLength","Augmentation","params","info","moneyCost","repCost","prereqs","baseRepRequirement","freeze","baseCost","isSpecial","hacking","strength","defense","dexterity","agility","charisma","hacking_exp","strength_exp","defense_exp","dexterity_exp","agility_exp","charisma_exp","hacking_chance","hacking_speed","hacking_money","hacking_grow","company_rep","faction_rep","crime_money","crime_success","work_money","hacknet_node_money","hacknet_node_purchase_cost","hacknet_node_ram_cost","hacknet_node_core_cost","hacknet_node_level_cost","bladeburner_max_stamina","bladeburner_stamina_gain","bladeburner_analysis","bladeburner_success_chance","stats","programs","startingMoney","f","decimals","desc","generateStatsDescription","addToFactions","factionList","augmentations","getCost","augmentationReference","StaticAugmentations","NeuroFluxGovernor","nextLevel","getLevel","multiplier","AugmentationRepCost","AugmentationMoneyCost","queuedAugmentations","getBaseAugmentationPriceMultiplier","ShadowsOfAnarchy","soaAugmentationNames","initSoAAugmentations","map","augmentation","soaMultiplier","filter","augmentationName","hasAugmentation","find","getGenericAugmentationPriceMultiplier","currLevel","level","addToAllFactions","fac","facObj","special","toJSON","modal","display","alignItems","justifyContent","paper","backgroundColor","background","default","border","primary","main","boxShadow","dark","padding","maxWidth","maxHeight","overflow","scrollbarWidth","Modal","disableRestoreFocus","disableScrollLock","disableEnforceFocus","disableAutoFocus","open","onClose","closeAfterTransition","in","children","HacknetNodeConstants","MoneyGainPerLevel","BaseCost","LevelBaseCost","RamBaseCost","CoreBaseCost","PurchaseNextMult","UpgradeLevelMult","UpgradeRamMult","UpgradeCoreMult","MaxLevel","MaxRam","MaxCores","PurchaseMultipliers","x1","x5","x10","MAX","HacknetServerConstants","HashesPerLevel","CacheBaseCost","PurchaseMult","UpgradeCacheMult","MaxServers","MaxCache","EmployeePositions","Operations","Engineer","Business","Management","RandD","Training","Unassigned","ActionTypes","Idle","Contract","Operation","BlackOp","BlackOperation","Recruitment","FieldAnalysis","Diplomacy","iTutorialSteps","ITutorial","currStep","Start","isRunning","stepIsDone","NSSelection","GoToCharacterPage","CharacterPage","CharacterGoToTerminalPage","TerminalIntro","TerminalHelp","TerminalLs","TerminalScan","TerminalScanAnalyze1","TerminalScanAnalyze2","TerminalConnect","TerminalAnalyze","TerminalNuke","TerminalManualHack","TerminalHackingMechanics","TerminalGoHome","TerminalCreateScript","TerminalTypeScript","TerminalFree","TerminalRunScript","TerminalGoToActiveScriptsPage","ActiveScriptsPage","ActiveScriptsToTerminal","TerminalTailScript","GoToHacknetNodesPage","HacknetNodesIntroduction","HacknetNodesGoToWorldPage","WorldDescription","TutorialPageInfo","End","iTutorialStart","iTutorialNextStep","iTutorialEnd","ITutorialEvents","iTutorialPrevStep","getHomeComputer","LiteratureNames","HackersStartingHandbook","BaseServer","super","startsWith","createRandomString","purchasedByPlayer","ServerStartingMoney","moneyMax","ServerMaxMoney","ServerStartingSecurity","baseDifficulty","minDifficulty","capDifficulty","changeMinimumSecurity","perc","changeMaximumMoney","aboveCap","amt","weaken","ServerWeakenRate","Corporation","Division","useCorporation","useDivision","Industries","Energy","Utilities","Agriculture","Fishing","Mining","Food","Tobacco","Chemical","Pharmaceutical","Computer","Robotics","Software","Healthcare","RealEstate","IndustryStartingCosts","IndustryDescriptions","corp","IndustryResearchTrees","getBaseResearchTreeCopy","getProductIndustryResearchTreeCopy","resetIndustryResearchTrees","LocationType","ClassType","Classes","StudyComputerScience","youAreCurrently","type","earnings","newWorkStats","hackExp","intExp","DataStructures","Networks","Algorithms","chaExp","Leadership","GymStrength","strExp","GymDefense","defExp","GymDexterity","dexExp","GymAgility","agiExp","isClassWork","w","WorkType","CLASS","ClassWork","Work","singularity","classType","Sector12RothmanUniversity","isGym","getClass","calculateRates","calculateClassEarningsRate","process","cycles","cyclesWorked","rate","applyWorkStats","sumWorkStats","finish","APICopy","hasHacknetServers","purchaseHacknet","numOwned","hacknetNodes","cost","getCostOfNextHacknetServer","loseMoney","createHacknetServer","updateHashManagerCapacity","getCostOfNextHacknetNode","node","HacknetNode","hasMaxNumberHacknetServers","calculateNodeCost","calculateServerCost","getMaxNumberLevelUpgrades","nodeObj","maxLevel","calculateLevelUpgradeCost","levelsToMax","curr","getMaxNumberRamUpgrades","calculateRamUpgradeCost","log2","ram","getMaxNumberCoreUpgrades","calculateCoreUpgradeCost","cores","getMaxNumberCacheUpgrades","calculateCacheUpgradeCost","cache","purchaseLevelUpgrade","levels","sanitizedLevels","isServer","upgradeLevel","purchaseRamUpgrade","upgradeRam","purchaseCoreUpgrade","upgradeCore","purchaseCacheUpgrade","upgradeCache","processHacknetEarnings","numCycles","hashManager","HashManager","hashes","hserver","updateHashRate","h","wastedHashes","storeHashes","upgrade","HashUpgrades","processAllHacknetServerEarnings","total","processSingleHacknetNodeEarnings","processAllHacknetNodeEarnings","totalEarnings","nodes","updateCapacity","hashCapacity","purchaseHashUpgrade","upgName","upgTarget","count","upg","corporation","refundUpgrade","funds","target","e","division","divisions","sciResearch","qty","bladeburner","changeRank","skillPoints","generateRandomContract","NewIndustry","industry","Industry","NewCity","offices","OfficeSpace","loc","size","UnlockUpgrade","price","unlockUpgrades","unlock","LevelUpgrade","basePrice","priceMult","upgrades","IssueDividends","dividendRate","SellMaterial","mat","temp","bCost","eval","sCost","q","tempQty","maxsll","prd","sllman","SellProduct","product","all","cities","tempCity","SetSmartSupply","warehouse","smartSupply","smartSupplyEnabled","SetSmartSupplyUseLeftovers","material","useLeftover","smartSupplyUseLeftovers","BuyMaterial","buy","BulkPurchase","matSize","MaterialSizes","maxAmount","sizeUsed","SellShares","numShares","public","shareSaleCooldown","stockSaleResults","calculateShareSale","profit","newSharePrice","newSharesUntilUpdate","issuedShares","sharePrice","shareSalesUntilPriceUpdate","BuyBackShares","buybackPrice","AssignJob","office","employeeName","job","employee","employees","assignSingleJob","AutoAssignJob","autoAssignJob","UpgradeOfficeSize","initialPriceMult","mult","BuyCoffee","getCoffeeCost","setCoffee","ThrowParty","costPerEmployee","setParty","PurchaseWarehouse","warehouses","Warehouse","UpgradeWarehouseCost","from","reduce","acc","UpgradeWarehouse","sizeUpgradeCost","updateSize","HireAdVert","getAdVertCost","applyAdVert","MakeProduct","productName","designInvest","marketingInvest","makesProducts","maxProducts","hasResearch","products","Product","trim","createCity","designCost","advCost","Research","researchName","researchTree","getAllNodes","research","ResearchMap","researched","ExportMaterial","divisionName","cityName","sanitizedAmt","isRelevantMaterial","exportObj","ind","exp","CancelExportMaterial","LimitProductProduction","prdman","LimitMaterialProduction","SetMaterialMarketTA1","on","marketTa1","SetMaterialMarketTA2","marketTa2","SetProductMarketTA1","SetProductMarketTA2","BlackOperationNames","t_homeComp","safetlyCreateUniqueServer","adminRights","isConnectedTo","currentServer","Home","Programs","NukeProgram","prestigeAugmentation","skills","TravelAgency","purchasedServers","factionInvitations","numSleeves","sleevesFromCovenant","sleeves","Sleeve","shock","synchronize","shockRecovery","lastUpdate","Date","getTime","moneySourceA","reset","prestige","reapplyAllAugmentations","current","finishWork","prestigeSourceFile","karma","sync","resetGangs","hasWseAccount","hasTixApiAccess","has4SData","has4SDataTixApi","moneySourceB","receiveInvite","calculateSkill","calculateSkillF","calculateSkillProgress","calculateSkillProgressF","updateSkillLevels","HackingLevelMultiplier","StrengthLevelMultiplier","DefenseLevelMultiplier","DexterityLevelMultiplier","AgilityLevelMultiplier","CharismaLevelMultiplier","intelligence","ratio","resetMultipliers","hasProgram","programName","home","toLowerCase","setMoney","source","recordMoneySource","MoneySourceTracker","record","gainStrengthExp","gainDefenseExp","gainDexterityExp","gainAgilityExp","gainCharismaExp","gainStats","retValue","def","dex","agi","cha","int","queryStatFromString","tempStr","startFocusing","focus","stopFocusing","takeDamage","hospitalize","regenerateHp","getHospitalizationCost","SnackbarEvents","ToastVariant","WARNING","applyForJob","entryPosType","sing","company","Companies","Company","pos","isQualified","getJobRequirementText","hasPosition","nextPos","getNextCompanyPositionHelper","reqText","getNextCompanyPosition","currCompany","currentPositionName","currentPosition","CompanyPositions","isSoftwareJob","isITJob","isBusinessJob","isSecurityEngineerJob","isNetworkEngineerJob","isSecurityJob","isAgentJob","isSoftwareConsultantJob","isBusinessConsultantJob","isPartTimeJob","quitJob","isCompanyWork","currentWork","companyName","hasJob","Boolean","applyForSoftwareJob","posNames","applyForSoftwareConsultantJob","applyForItJob","applyForSecurityEngineerJob","applyForNetworkEngineerJob","applyForBusinessJob","applyForBusinessConsultantJob","applyForSecurityJob","applyForAgentJob","applyForEmployeeJob","position","applyForPartTimeEmployeeJob","applyForWaiterJob","applyForPartTimeWaiterJob","offset","jobStatReqOffset","reqHacking","requiredHacking","reqStrength","requiredStrength","reqDefense","requiredDefense","reqDexterity","requiredDexterity","reqAgility","reqCharisma","requiredCharisma","playerReputation","requiredReputation","playerAug","applyAugmentation","reapplyAllSourceFiles","sourceFiles","srcFileKey","SourceFiles","applySourceFile","applyExploit","checkForFactionInvitations","invitedFactions","numAugmentations","allCompanies","allPositions","checkMegacorpRequirements","serverMeta","specialName","bonus","getCompanyRep","illuminatiFac","Illuminati","isBanned","isMember","alreadyInvited","daedalusFac","Daedalus","DaedalusAugsRequirement","covenantFac","TheCovenant","ecorpFac","ECorp","AevumECorp","megacorpFac","MegaCorp","Sector12MegaCorp","bachmanandassociatesFac","BachmanAssociates","AevumBachmanAndAssociates","bladeindustriesFac","BladeIndustries","Sector12BladeIndustries","nwoFac","NWO","VolhavenNWO","clarkeincorporatedFac","ClarkeIncorporated","AevumClarkeIncorporated","omnitekincorporatedFac","OmniTekIncorporated","VolhavenOmniTekIncorporated","foursigmaFac","FourSigma","Sector12FourSigma","kuaigonginternationalFac","KuaiGongInternational","ChongqingKuaiGongInternational","fulcrumsecrettechonologiesFac","FulcrumSecretTechnologies","fulcrumSecretServer","AevumFulcrumTechnologies","bitrunnersFac","BitRunners","bitrunnersServer","BitRunnersServer","theblackhandFac","TheBlackHand","blackhandServer","TheBlackHandServer","nitesecFac","NiteSec","nitesecServer","NiteSecServer","chongqingFac","sector12Fac","newtokyoFac","aevumFac","ishimaFac","volhavenFac","speakersforthedeadFac","SpeakersForTheDead","Sector12CIA","Sector12NSA","thedarkarmyFac","TheDarkArmy","thesyndicateFac","TheSyndicate","silhouetteFac","Silhouette","tetradsFac","Tetrads","slumsnakesFac","SlumSnakes","netburnersFac","Netburners","totalHacknetRam","totalHacknetCores","totalHacknetLevels","tiandihuiFac","TianDiHui","cybersecFac","CyberSec","cybersecServer","CyberSecServer","setBitNodeNumber","queueAugmentation","aug","PlayerOwnedAugmentation","gainCodingContractReward","reward","difficulty","CodingContractRewardType","FactionReputation","FactionReputationAll","repGain","totalGain","specialFactions","Bladeburners","gainPerFaction","facName","CompanyReputation","moneyGain","CodingContractMoney","travel","to","gotoLocation","Locations","canAccessGrafting","giveExploit","exploit","SUCCESS","giveAchievement","achievementId","achievement","achievements","ID","unlockedOn","Name","getIntelligenceBonus","weight","calculateIntelligenceBonus","getCasinoWinnings","casino","canAccessCotMG","sf","lvl","focusPenalty","BladeburnerConstants","CityNames","CyclesPerSecond","StaminaGainPerSecond","BaseStaminaLoss","MaxStaminaToGainFactor","DifficultyToTimeFactor","DiffMultExponentialFactor","DiffMultLinearFactor","EffAgiLinearFactor","EffDexLinearFactor","EffAgiExponentialFactor","EffDexExponentialFactor","BaseRecruitmentTimeNeeded","PopulationThreshold","PopulationExponent","ChaosThreshold","BaseStatGain","BaseIntGain","ActionCountGrowthPeriod","RankToFactionRepFactor","RankNeededForFaction","ContractSuccessesPerLevel","OperationSuccessesPerLevel","RanksPerSkillPoint","ContractBaseMoneyGain","HrcHpGain","HrcStaminaGain","programsMetadata","Program","run","FragmentType","Effect","tpe","HackingChance","HackingSpeed","HackingMoney","HackingGrow","Hacking","Strength","Defense","Dexterity","Agility","Charisma","HacknetMoney","HacknetCost","Rep","WorkMoney","Crime","Bladeburner","CorporationManagementHandbook","HistoryOfSynthoids","AGreenTomorrow","AlphaOmega","SimulatedReality","BeyondMan","BrighterThanTheSun","DemocracyIsDead","Sector12Crime","ManAndMachine","SecretSocieties","TheFailedFrontier","CodedIntelligence","SyntheticMuscles","TensionsInTechRace","CostOfImmortality","TheHiddenWorld","TheNewGod","NewTriads","TheSecretWar","StatsRow","content","root","cellNone","style","align","PositionTypes","borderBottom","small","width","TableCell","Table","initCompanies","oldCompanies","companiesMetadata","forEach","loadCompanies","AllGangs","power","loadAllGangs","removeLeadingSlash","removeTrailingSlash","endsWith","isValidFilename","isValidDirectoryName","isValidDirectoryPath","path","t_path","dirs","dir","isValidFilePath","fnSeparator","getFirstParentDirectory","getAllParentDirectories","lastSlash","getDestinationFilepath","destination","cwd","dstDir","evaluateDirectoryPath","fileName","getFileName","isInRootDirectory","currPath","reconstructedPath","pop","evaluateFilePath","areFilesEqual","f0","f1","areImportsEquals","Terminal","TTerminal","Crimes","Shoplift","CrimeType","SHOPLIFT","dexterity_success_weight","agility_success_weight","RobStore","ROB_STORE","hacking_success_weight","intelligence_exp","Mug","MUG","strength_success_weight","defense_success_weight","Larceny","LARCENY","DealDrugs","DRUGS","charisma_success_weight","BondForgery","BOND_FORGERY","TraffickArms","TRAFFIC_ARMS","Homicide","HOMICIDE","kills","GrandTheftAuto","GRAND_THEFT_AUTO","Kidnap","KIDNAP","Assassination","ASSASSINATION","Heist","HEIST","trusted","event","isTrusted","TheDarkArmyServer","DaedalusServer","DarkWeb","reputation","w0","w1","scaleWorkStats","scaleMoney","workStats","expStats","applyWorkStatsExp","gains","htmlLocation","margin","spacing","flexGrow","minHeight","boxSizing","uninitialized","isInitialized","page","allowRouting","toActiveScripts","toAugmentations","toBitVerse","toBladeburner","toStats","toCity","toCorporation","toCreateProgram","toDevMenu","toFaction","toFactions","toGameOptions","toGang","toHacknetNodes","toInfiltration","toJob","toMilestones","toGrafting","toScriptEditor","toSleeves","toStockMarket","toTerminal","toTravel","toTutorial","toWork","toBladeburnerCinematic","toLocation","toStaneksGift","toAchievements","toThemeBrowser","toImportSave","GameRoot","engine","terminal","files","vim","setEditorOptions","useState","setPage","RecoveryMode","Recovery","determineStartPage","setRerender","augPage","setAugPage","setFaction","isFactionWork","flume","setFlume","quick","setQuick","setLocation","Infiltration","Location","Job","cinematicText","setCinematicText","errorBoundaryKey","setErrorBoundaryKey","sidebarOpened","setSideBarOpened","importString","setImportString","importAutomatic","setImportAutomatic","ImportSave","allowRoutingCalls","setAllowRoutingCalls","rerender","old","killAllScripts","saveObject","saveGame","reload","softReset","installAugmentations","useEffect","subscribe","ActiveScripts","Augmentations","Stats","CreateProgram","DevMenu","Options","Gang","Hacknet","Milestones","Grafting","options","ScriptEditor","Sleeves","StockMarket","Tutorial","City","Travel","calculateAchievements","BitVerse","BladeburnerCinematic","StaneksGift","Achievements","ThemeBrowser","base64save","automatic","_functions","_wrap","scrollTo","mainPage","withSidebar","withPopups","bypassGame","router","enter","enterBitNode","staneksGift","getCurrentServer","workerScripts","reactivateTutorial","buyStockLong","buyStock","buyStockShort","shortStock","cancelOrder","eventEmitterForReset","eventEmitterForUiReset","initStockMarket","initStockMarketFn","placeOrder","sellStockLong","sellStock","sellStockShort","sellShort","stockMarket","export","onExport","exportGame","forceKill","exportGameFn","installAugmentationsFn","Provider","killScripts","flexDirection","onToggled","isOpened","updateHashCapacity","costMult","seconds","onlineTimeSeconds","hashRate","totalHashesGenerated","prodMult","cpuCores","runScript","updateRamUsed","calculateHashGainRate","ramUsed","snackbar","zIndex","logBoxBaseZIndex","alignSelf","SnackbarProvider","dense","maxSnack","anchorOrigin","horizontal","vertical","autoHideDuration","containerRoot","EventEmitter","Snackbar","enqueueSnackbar","closeSnackbar","useSnackbar","variant","duration","id","severity","k","onClick","StockSymbols","IshimaStormTechnologies","NewTokyoDefComm","VolhavenHeliosLabs","NewTokyoVitaLife","Sector12IcarusMicrosystems","Sector12UniversalEnergy","AevumAeroCorp","VolhavenOmniaCybersystems","ChongqingSolarisSpaceSystems","NewTokyoGlobalPharmaceuticals","IshimaNovaMedical","AevumWatchdogSecurity","VolhavenLexoCorp","AevumRhoConstruction","Sector12AlphaEnterprises","VolhavenSysCoreSecurities","VolhavenCompuTek","AevumNetLinkTechnologies","IshimaOmegaSoftware","Sector12FoodNStuff","Sector12JoesGuns","validScriptExtensions","isScriptFilename","some","ext","difficultyMult","skillMult","chance","expGain","HackExpGain","percentMoneyHacked","ScriptHackMoney","skillFactor","calculateGrowTime","calculateWeakenTime","applySleeveGains","sleeve","rawStats","shockedStats","shockBonus","syncStats","syncBonus","__player","loadStaneksGift","zeros","height","array","fill","calculateGrid","gift","newgrid","fragmentAt","Orders","storedCycles","ticksUntilCycle","SymbolToStockMap","shares","Stock","order","Order","symbol","orders","stk","processOrderRefs","symbolToStockMap","processOrders","stockOrders","stockSymbol","orderTxt","loadStockMarket","deleteStockMarket","InitStockMetadata","TicksPerCycle","initSymbolToStockMap","cyclesPerStockUpdate","processStockPrices","timeNow","flipForecastForecast","stockMarketCycle","av","mv","chc","otlkMag","cap","changePrice","OrderTypes","LimitBuy","Short","LimitSell","Long","StopBuy","StopSell","otlkMagChange","cycleForecast","cycleForecastForecast","shareTxUntilMovement","shareTxForMovement","inviteToFaction","InvitationEvent","joinFaction","allFactions","factionInfo","enemy","enemies","hasAugmentationPrereqs","purchaseAugmentation","hasPrereqs","augCosts","queuedAugmentation","req","processPassiveFactionRepGain","offersWork","getGangName","favorMult","hRep","getHackingWorkRepGain","sRep","getFactionSecurityWorkRepGain","fRep","getFactionFieldWorkRepGain","FactionPassiveRepGain","getFactionAugmentationsFiltered","hasGangWith","augs","CongruityImplant","TheRedPill","rng","SFC32RNG","uniqueFilter","GangUniqueAugs","BitburnerSaveObject","getSaveString","PlayerSave","AllServersSave","CompaniesSave","FactionsSave","AliasesSave","Aliases","GlobalAliasesSave","GlobalAliases","StockMarketSave","SettingsSave","VersionSave","LastExportBonus","ExportBonus","StaneksGiftSave","inGang","AllGangsSave","btoa","unescape","encodeURIComponent","emitToastEvent","savedOn","lastSave","saveData","playerIdentifier","identifier","getSaveFileName","pushGameSaved","INFO","catch","isRecovery","epochTime","now","bn","download","importGame","base64Save","getImportStringFromFile","file","reader","FileReader","promise","onload","readAsText","newSave","parsedSave","atob","base64","importedPlayer","playerData","bitNode","bitNodeLevel","loadGame","navigator","userAgent","setInterval","decodeURIComponent","escape","saveObj","loadAliases","loadGlobalAliases","ver","anyPlayer","companyPosition","positionName","companyPositions","changes","convert","code","change","v1APIBreak","AwardNFG","revenue","expenses","lastCycleRevenue","lastCycleExpenses","thisCycleRevenue","thisCycleExpenses","resleeves","contract","contracts","v22PlayerBreak","ownedNFGs","newNFG","nfg","darkweb","pushProgram","graft","v2APIBreak","removePlayerFields","removeSleeveFields","Number","field","anySleeve","evaluateVersionCompatibility","href","resets","createNewUpdateText","whiteSpace","paddingLeft","lineHeight","Blob","document","createElement","URL","createObjectURL","body","appendChild","click","removeChild","revokeObjectURL","companyPositionMetadata","CompanyPosition","FactionWorkType","Exploit","names","Bypass","EditSaveFile","PrototypeTampering","TimeCompression","Unclickable","UndocumentedFunctionCall","RealityAlteration","N00dles","YoureNotMeantToAccessThis","TrueRecursion","INeedARainbow","ExploitName","Set","initAugmentations","resetFactionAugmentations","clearObject","initNeuroFluxGovernor","initUnstableCircadianModulator","initGeneralAugmentations","initBladeburnerAugmentations","ChurchOfTheMachineGod","initChurchOfTheMachineGodAugmentations","resetAugmentation","augmentationExists","AddToStaticAugmentations","reapply","staticAugmentation","mergeMultipliers","applyEntropy","ownedNfg","pAug","ownedAug","force","augmentationList","nfgIndex","isRepeatableAug","MoneyRate","CodingContractType","gen","solver","diff","numTries","generate","CodingContractTypes","md","codingContractTypesMetadata","CodingContractResult","CodingContract","getData","getDescription","getDifficulty","getMaxNumTries","getType","isSolution","solution","Cancelled","onAttempt","val","Success","Failure","CodingContractEvent","Fragments","Fragment","shape","limit","fullAt","rotation","sy","mx","my","qx","qy","neighboors","candidates","add","coord","cells","candidate","cell","copy","FragmentById","fragment","_","X","Shapes","S","Z","T","I","J","O","Booster","NoneFragment","None","DeleteFragment","Delete","base","inherit","common","accent","bg","fg","syntax","tag","entity","regexp","markup","keyword","comment","constant","ui","panel","selected","selection","colorRegExp","sanitizeTheme","repairBlock","block","makeTheme","themeRules","token","foreground","themeColors","fromEntries","rules","loadThemes","monaco","editor","defineTheme","fontStyle","uuidv4","uuid","subscribers","sub","Adjuster","setValue","label","placeholder","subtract","tons","onChange","InputProps","startAdornment","title","transform","endAdornment","upArrowSymbol","downArrowSymbol","leftArrowSymbol","rightArrowSymbol","getArrow","UP_ARROW","W","LEFT_ARROW","DOWN_ARROW","RIGHT_ARROW","D","getInverseArrow","getActionTimePenalty","getChaosCompetencePenalty","getChaosDifficultyBonus","makeNode","Node","text","createBaseResearchTreeNodes","rootNode","autoBrew","autoParty","autoDrugs","bulkPurchasing","cph4","drones","dronesAssembly","dronesTransport","goJuice","hrRecruitment","hrTraining","joywire","marketta1","marketta2","overclock","scAssemblers","stimu","addChild","baseResearchTree","ResearchTree","setRoot","upgradeFulcrum","upgradeCapacity1","upgradeCapacity2","upgradeDashboard","numCycleForGrowth","growth","ajdGrowthRate","serverGrowthPercentage","coreBonus","ServerGrowthRate","numCycleForGrowthCorrected","targetMoney","startMoney","adjGrowthRate","exponentialBase","coreMultiplier","threadMultiplier","ey","bt","corr","bct","opc","fca","cca","processSingleServerGrowth","calculateServerGrowth","oldMoneyAvailable","isValidNumber","usedCycles","prestigeHomeComputer","homeComp","hasBitflume","BitFlume","updateRamUsage","getServerOnNetwork","isBackdoorInstalled","MoneyCost","SkillNames","BladesIntuition","Cloak","Marksman","WeaponProficiency","ShortCircuit","DigitalObserver","Tracer","Overclock","Reaper","EvasiveSystem","Datamancer","CybersEdge","HandsOfMidas","Hyperdrive","rep","Reputation","useGang","killWorkerScript","WorkerScript","stopAndCleanUpWorkerScript","killWorkerScriptByPid","atExit","String","clearTimeout","killNetscriptDelay","rs","delete","AddRecentScript","WorkerScriptStartStopEventEmitter","removeWorkerScript","OptionSwitch","checked","tooltip","control","BitNode","BitNodes","HomeComputerRamCost","PurchasedServerCost","PurchasedServerSoftcap","CompanyWorkMoney","CrimeMoney","HacknetNodeMoney","ClassGymExpGain","CompanyWorkExpGain","CrimeExpGain","FactionWorkExpGain","FactionWorkRepGain","RepToDonateToFaction","InfiltrationMoney","InfiltrationRep","FourSigmaMarketDataCost","FourSigmaMarketDataApiCost","CorporationValuation","CorporationSoftcap","BladeburnerRank","BladeburnerSkillCost","GangSoftcap","StaneksGiftPowerMultiplier","StaneksGiftExtraSize","getBitNodeMultipliers","inc","dec","initBitNodeMultipliers","defaultConstructorParams","initPrice","marketCap","spreadPerc","range","divisor","lastPrice","playerShares","playerAvgPx","playerShortShares","playerAvgShortPx","otlkMagForecast","getAbsoluteForecast","totalSharesUnrounded","totalShares","maxShares","changeForecastForecast","newff","newPrice","changeAmt","increaseChance","getForecastIncreaseChance","getAskPrice","getBidPrice","influenceForecast","influenceForecastForecast","startingLevel","extraLevels","totalMultiplier","startingRam","totalCost","numUpgrades","currentRam","startingCores","currentCores","startingCache","currentCache","printAliases","print","parseAliasDeclaration","global","matches","addGlobalAlias","addAlias","getAlias","getGlobalAlias","removeAlias","substituteAliases","origCommand","commandArray","somethingSubstituted","depth","alias","constructLocation","asciiArt","LocationsMetadata","addLocation","Literature","CopyableText","setOpen","copyText","select","setSelectionRange","execCommand","ThemeEvents","refreshTheme","createTheme","combat","backgroundprimary","backgroundsecondary","button","successlight","success","successdark","white","black","light","primarylight","primarydark","secondary","secondarylight","secondarydark","errorlight","errordark","infolight","infodark","warning","warninglight","warningdark","well","typography","fontFamily","textTransform","components","MuiInputBase","styleOverrides","input","userSelect","MuiInput","borderBottomColor","underline","MuiInputLabel","MuiButtonGroup","marginRight","MuiButton","borderRadius","MuiSelect","icon","defaultProps","MuiTextField","MuiTypography","MuiMenu","list","MuiMenuItem","MuiAccordionSummary","MuiAccordionDetails","MuiIconButton","MuiTooltip","fontSize","disableInteractive","MuiSlider","valueLabel","MuiDrawer","paperAnchorDockedLeft","borderRight","welllight","MuiDivider","MuiFormControlLabel","MuiSwitch","switchBase","track","MuiPaper","MuiTablePagination","selectLabel","displayedRows","MuiTab","textColorPrimary","MuiTabs","scrollButtons","opacity","TabIndicatorProps","MuiAlert","standardSuccess","standardError","standardWarning","standardInfo","TTheme","injectFirst","layerCounter","LogBoxEvents","LogBoxCloserEvents","LogBoxClearEvents","LogBoxManager","closePid","LogWindow","close","overflowY","overflowX","wordWrap","titleButton","draggableRef","useRef","rootRef","setScript","container","minimized","setMinimized","kill","startWorkerScript","updateLayer","full","maxLength","minimize","clearInterval","addEventListener","onResize","removeEventListener","debounce","isOnScreen","resetPosition","bounds","getBoundingClientRect","right","bottom","left","innerWidth","top","outerWidth","state","setState","minConstraints","handle","onDrag","MouseEvent","clientX","clientY","innerHeight","ref","onMouseDown","flexFlow","minWidth","cursor","textOverflow","has","onTouchEnd","Water","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AICores","calculateExp","skill","currentSkill","nextSkill","baseExperience","nextExperience","progress","currentExperience","remainingExperience","experience","UpgradeType","gangMemberUpgradesMetadata","upgType","Weapon","Armor","Vehicle","Rootkit","NetscriptPort","prestigeWorkerScripts","clear","startNetscript1Script","codeWithImports","codeLineOffset","running","importProcessingRes","ast","ecmaVersion","allowReserved","sourceType","generatedCode","hasImports","walksimple","ImportDeclaration","scriptName","getScript","scriptAst","specifiers","namespace","local","fnNames","fnDeclarations","FunctionDeclaration","fnsToImport","lineOffset","linesRemoved","processNetscript1Imports","interpreterInitialization","scope","NetscriptFunctions","entry","tempWrapper","fnArgs","pseudoToNative","callb","errorTextArray","errorMsg","setProperty","createAsyncFunction","createNativeFunction","nativeToPseudo","interpreter","Interpreter","runInterpreter","more","step","_e","parent","createAndAddWorkerScript","oneRamUsage","getRamUsageFromRunningScript","roundToTwo","generateNextPid","set","scriptExecution","executeJSScript","SyntaxError","startNetscript2Script","updateOnlineScriptTimes","loadAllRunningScripts","skipScriptLoad","markUpdated","scriptCalculateOfflineProduction","runScriptFromScript","ramAvailable","hasAdminRights","RunningScript","GangConstants","GangRespectToReputationRatio","MaximumGangMembers","CyclesPerTerritoryAndPowerUpdate","AscensionMultiplierRatio","Names","GangKarmaRequirement","gainFavor","getFavorGain","totalRep","favorToRep","repToFavor","Map","Material","getMarkupLimit","qlt","mku","dmd","dmdR","cmp","cmpR","processMarket","priceChange","compChange","dmdChange","calculateWantedPenalty","calculateRespectGain","task","baseRespect","statWeight","hackWeight","strWeight","defWeight","dexWeight","agiWeight","chaWeight","territoryMult","territoryPenalty","respectMult","calculateWantedLevelGain","baseWanted","wanted","calc","calculateMoneyGain","baseMoney","calculateAscensionPointsGain","calculateAscensionMult","points","GameTimer","setV","totalMillis","WKSharmonizer","millis","intervalId","onExpire","noPaper","mb","ActionIdentifier","general","ops","blackops","events","updateSkillMultipliers","calculateMaxStamina","stamina","maxStamina","getCurrentCity","calculateStaminaPenalty","canAttemptBlackOp","actionId","getActionObject","reqdRank","rank","nm","BlackOperations","isAvailable","startAction","person","actionTimeCurrent","actionTimeToComplete","resetAction","getActionTime","exceptionAlert","comms","testBlackOp","getRecruitmentTime","upgradeSkill","skillName","executeConsoleCommands","commands","consoleHistory","arrayOfCommands","executeConsoleCommand","postToConsole","saveToLogs","consoleLogs","getTimestamp","clearConsole","bladeburnerFac","storeCycles","getActionIdFromTypeAndName","convertedType","convertedName","operations","executeStartConsoleCommand","GeneralActions","executeSkillConsoleCommand","skillNames","Skills","multKeys","skillMultipliers","Skill","currentLevel","pointCost","calculateCost","maxLvl","executeLogConsoleCommand","flag","logging","executeHelpConsoleCommand","ConsoleHelpText","helpList","helpText","executeAutomateConsoleCommand","variable","highLow","automateActionHigh","automateActionLow","automateThreshHigh","automateThreshLow","automateEnabled","parseCommandArguments","command","start","endQuote","SPACE","substr","triggerMigration","sourceCityName","destCityName","destCity","sourceCity","percentage","triggerPotentialMigration","randomEvent","chaos","getActionStats","successMult","unweightedGain","unweightedIntGain","weights","getDiplomacyEffectiveness","getRecruitmentSuccessChance","teamSize","sleeveSize","effCharisma","effCha","charismaFactor","sleeveSupport","joining","resetSkillMultipliers","successChanceAll","successChanceStealth","successChanceKill","successChanceContract","successChanceOperation","successChanceEstimate","actionTime","effHack","effStr","effDef","effDex","effAgi","effInt","multiplierNames","multiplierName","getMultiplier","multiplierValue","completeOperation","teamCount","losses","sup","isSleeveSupportWork","teamLost","improvePopulationEstimateByPercentage","changePopulationByPercentage","changeEstEqually","nonZero","changeChaosByCount","changeChaosByPercentage","changePopulationByCount","estChange","estOffset","completeContract","actionIdent","improvePopulationEstimateByCount","completeAction","isPlayer","createTaskTracker","isOperation","difficultyMultiplier","rewardMultiplier","rewardFac","attempt","successes","setMaxLevel","rankGain","gain","addOffset","whoAmI","failures","loss","damage","rankLoss","hpLoss","hpLost","calculateHospitalizationCost","numHosp","moneyLost","logLossText","autoLevel","teamLossMax","strExpGain","defExpGain","dexExpGain","agiExpGain","staminaGain","staminaBonus","eff","hackingExpGain","charismaExpGain","successChance","recruitTime","growthF","Growths","operation","infiltrateSynthoidCommunities","infilSleeves","isSleeveInfiltrateWork","maxRank","bladeburnersFactionName","favorBonus","rankNeededForSp","totalSkillPoints","gainedSkillPoints","processAction","actionTimeOverflow","calculateStaminaGainPerSecond","effAgility","maxStaminaBonus","oldMax","difficultyFac","decays","isStealth","isKill","BladesSimulacrum","op","randomEventCounter","getTypeAndNameFromActionId","types","getContractNamesNetscriptFn","getOperationNamesNetscriptFn","getBlackOpNamesNetscriptFn","getGeneralActionNamesNetscriptFn","getSkillNamesNetscriptFn","startActionNetscriptFn","errorLogText","canRunOp","getActionTimeNetscriptFn","actionObj","getActionEstimatedSuccessChanceNetscriptFn","getEstSuccessChance","recChance","getActionCountRemainingNetscriptFn","getSkillLevelNetscriptFn","getSkillUpgradeCostNetscriptFn","upgradeSkillNetscriptFn","getTeamSizeNetscriptFn","setTeamSizeNetscriptFn","sanitizedSize","joinBladeburnerFactionNetscriptFn","calculateMoneyGainRate","startingCore","sanitizedCores","coreBaseCost","win","reachedLimit","reached","Game","interpolate","settings","lerpD","lerp","Trivial","Normal","Hard","Impossible","KeyHandler","press","onKeyDown","FACTION","FactionWork","factionWorkType","HACKING","getFaction","getReputationRate","focusBonus","NeuroreceptorManager","calculateFactionRep","getExpRates","calculateFactionExp","Hashes","updateMoneyGainRate","moneyGainRatePerSecond","totalMoneyGenerated","minMax","getPurchaseServerCost","sanitizedRam","isPowerOfTwo","sign","getPurchaseServerMaxRam","getPurchaseServerLimit","clz32","purchaseServer","newServ","purchaseRamForHomeComputer","getUpgradeHomeRamCost","TextFile","append","read","show","write","getTextFile","textFiles","createTextFile","CalculateShareMult","RamCostConstants","ScriptBaseRamCost","ScriptDomRamCost","ScriptCorporationRamCost","ScriptHackRamCost","ScriptHackAnalyzeRamCost","ScriptGrowRamCost","ScriptGrowthAnalyzeRamCost","ScriptWeakenRamCost","ScriptWeakenAnalyzeRamCost","ScriptScanRamCost","ScriptRecentScriptsRamCost","ScriptPortProgramRamCost","ScriptRunRamCost","ScriptExecRamCost","ScriptSpawnRamCost","ScriptScpRamCost","ScriptKillRamCost","ScriptHasRootAccessRamCost","ScriptGetHostnameRamCost","ScriptGetHackingLevelRamCost","ScriptGetMultipliersRamCost","ScriptGetServerRamCost","ScriptGetServerMaxRam","ScriptGetServerUsedRam","ScriptFileExistsRamCost","ScriptIsRunningRamCost","ScriptHacknetNodesRamCost","ScriptHNUpgLevelRamCost","ScriptHNUpgRamRamCost","ScriptHNUpgCoreRamCost","ScriptGetStockRamCost","ScriptBuySellStockRamCost","ScriptGetPurchaseServerRamCost","ScriptPurchaseServerRamCost","ScriptGetPurchasedServerLimit","ScriptGetPurchasedServerMaxRam","ScriptRoundRamCost","ScriptReadWriteRamCost","ScriptArbScriptRamCost","ScriptGetScriptRamCost","ScriptGetRunningScriptRamCost","ScriptGetHackTimeRamCost","ScriptGetFavorToDonate","ScriptCodingContractBaseRamCost","ScriptSleeveBaseRamCost","ScriptClearTerminalCost","ScriptSingularityFn1RamCost","ScriptSingularityFn2RamCost","ScriptSingularityFn3RamCost","ScriptGangApiBaseRamCost","ScriptBladeburnerApiBaseRamCost","ScriptStanekWidth","ScriptStanekHeight","ScriptStanekCharge","ScriptStanekFragmentDefinitions","ScriptStanekPlacedFragments","ScriptStanekClear","ScriptStanekCanPlace","ScriptStanekPlace","ScriptStanekFragmentAt","ScriptStanekDeleteAt","ScriptInfiltrationCalculateDifficulty","ScriptInfiltrationCalculateRewards","ScriptInfiltrationGetLocations","ScriptInfiltrationGetInfiltrations","ScriptStanekAcceptGift","SF4Cost","sf4","hasWSEAccount","hasTIXAPIAccess","has4SDataTIXAPI","getSymbols","getPrice","getPosition","getMaxShares","getPurchaseCost","getSaleGain","buyShort","getOrders","getVolatility","getForecast","purchase4SMarketData","purchase4SMarketDataTixApi","purchaseWseAccount","purchaseTixApi","universityCourse","gymWorkout","travelToCity","goToLocation","purchaseTor","purchaseProgram","connect","manualHack","installBackdoor","getDarkwebProgramCost","getDarkwebPrograms","isBusy","stopAction","upgradeHomeRam","upgradeHomeCores","getUpgradeHomeCoresCost","workForCompany","applyToCompany","getCompanyFavor","getCompanyFavorGain","checkFactionInvitations","workForFaction","getFactionRep","getFactionFavor","getFactionFavorGain","donateToFaction","createProgram","commitCrime","getCrimeChance","getCrimeStats","getOwnedAugmentations","getOwnedSourceFiles","getAugmentationsFromFaction","getAugmentationCost","getAugmentationPrereq","getAugmentationPrice","getAugmentationBasePrice","getAugmentationRepReq","getAugmentationStats","isFocused","setFocus","b1tflum3","destroyW0r1dD43m0n","getCurrentWork","createGang","getMemberNames","getGangInformation","getOtherGangInformation","getMemberInformation","canRecruitMember","recruitMember","getTaskNames","getTaskStats","setMemberTask","getEquipmentNames","getEquipmentCost","getEquipmentType","getEquipmentStats","purchaseEquipment","ascendMember","getAscensionResult","setTerritoryWarfare","getChanceToWinClash","getBonusTime","getContractNames","getOperationNames","getBlackOpNames","getBlackOpRank","getGeneralActionNames","getSkillNames","stopBladeburnerAction","getCurrentAction","getActionCurrentTime","getActionEstimatedSuccessChance","getActionRepGain","getActionCountRemaining","getActionMaxLevel","getActionCurrentLevel","getActionAutolevel","setActionAutolevel","setActionLevel","getRank","getSkillPoints","getSkillLevel","getSkillUpgradeCost","getTeamSize","setTeamSize","getCityEstimatedPopulation","getCityCommunities","getCityChaos","getCity","switchCity","getStamina","joinBladeburnerFaction","joinBladeburnerDivision","infiltration","getPossibleLocations","getInfiltration","codingcontract","getContractType","getNumTriesRemaining","getNumSleeves","setToShockRecovery","setToSynchronize","setToCommitCrime","setToUniversityCourse","setToCompanyWork","setToFactionWork","setToGymWorkout","getSleeveStats","getTask","getInformation","getSleeveAugmentations","getSleevePurchasableAugs","purchaseSleeveAug","setToBladeburnerAction","getSleeveAugmentationPrice","getSleeveAugmentationRepReq","stanek","giftWidth","giftHeight","chargeFragment","fragmentDefinitions","activeFragments","clearGift","canPlaceFragment","placeFragment","getFragment","removeFragment","acceptGift","SourceRamCosts","enums","getMaterialNames","getIndustryTypes","getUnlockables","getUpgradeNames","getResearchNames","createCorporation","hasUnlockUpgrade","getUnlockUpgradeCost","getUpgradeLevel","getUpgradeLevelCost","getExpandIndustryCost","getExpandCityCost","getInvestmentOffer","acceptInvestmentOffer","goPublic","bribe","getCorporation","getDivision","expandIndustry","expandCity","unlockUpgrade","levelUpgrade","issueDividends","buyBackShares","sellShares","sellMaterial","sellProduct","discontinueProduct","setSmartSupply","setSmartSupplyUseLeftovers","buyMaterial","bulkPurchase","getWarehouse","getProduct","getMaterial","setMaterialMarketTA1","setMaterialMarketTA2","setProductMarketTA1","setProductMarketTA2","exportMaterial","cancelExportMaterial","purchaseWarehouse","upgradeWarehouse","makeProduct","limitMaterialProduction","limitProductProduction","getPurchaseWarehouseCost","getUpgradeWarehouseCost","hasWarehouse","assignJob","hireEmployee","upgradeOfficeSize","throwParty","buyCoffee","hireAdVert","getOffice","getEmployee","getHireAdVertCost","getHireAdVertCount","getResearchCost","hasResearched","setAutoJobAssignment","getOfficeSizeUpgradeCost","hacknet","numNodes","purchaseNode","getPurchaseNodeCost","getNodeStats","getLevelUpgradeCost","getRamUpgradeCost","getCoreUpgradeCost","getCacheUpgradeCost","numHashes","hashCost","spendHashes","maxNumNodes","getHashUpgrades","getHashUpgradeLevel","getStudyMult","getTrainingMult","getTheme","setTheme","resetTheme","getStyles","setStyles","resetStyles","getGameInfo","clearTerminal","grafting","getAugmentationGraftPrice","getAugmentationGraftTime","getGraftableAugmentations","graftAugmentation","sprintf","vsprintf","scan","hackAnalyzeThreads","hackAnalyze","hackAnalyzeSecurity","hackAnalyzeChance","sleep","asleep","share","getSharePower","grow","growthAnalyze","growthAnalyzeSecurity","weakenAnalyze","printf","tprint","tprintf","clearLog","disableLog","enableLog","isLogEnabled","getScriptLogs","nuke","brutessh","ftpcrack","relaysmtp","httpworm","sqlinject","exec","spawn","killall","exit","scp","ls","ps","getRecentScripts","hasRootAccess","getHostname","getHackingLevel","getHackingMultipliers","getHacknetMultipliers","getServerMoneyAvailable","getServerSecurityLevel","getServerBaseSecurityLevel","getServerMinSecurityLevel","getServerRequiredHackingLevel","getServerMaxMoney","getServerGrowth","getServerNumPortsRequired","getServerRam","getServerMaxRam","getServerUsedRam","serverExists","fileExists","getPurchasedServerLimit","getPurchasedServerMaxRam","getPurchasedServerCost","deleteServer","getPurchasedServers","tryWritePort","peek","writePort","readPort","getPortHandle","rm","scriptRunning","scriptKill","getScriptName","getScriptRam","getHackTime","getGrowTime","getWeakenTime","getTotalScriptIncome","getScriptIncome","getTotalScriptExpGain","getScriptExpGain","nFormat","tFormat","getTimeSinceLastAug","prompt","wget","getFavorToDonate","getPlayer","tail","toast","closeTail","clearPort","openDevMenu","alert","flags","bypass","alterReality","rainbow","heart","break","formulas","calculateFavorToRep","calculateRepToFavor","repFromDonation","hackPercent","growPercent","hackTime","growTime","weakenTime","moneyGainRate","levelUpgradeCost","ramUpgradeCost","coreUpgradeCost","hacknetNodeCost","constants","hacknetServers","hashGainRate","cacheUpgradeCost","hashUpgradeCost","hacknetServerCost","wantedPenalty","respectGain","wantedLevelGain","ascensionPointsGain","ascensionMultiplier","work","crimeGains","classGains","factionGains","RamCosts","getRamCost","currType","costInc","getBuyTransactionCost","posType","getSellTransactionGain","processTransactionForecastMovement","firstShares","remainingShares","numIterations","forecastChange","forecastForecastChange","calculateBuyMaxAmount","isLong","remainingMoney","currPrice","GangMemberUpgrades","GangMemberUpgrade","getStockMarket4SDataCost","getStockMarket4STixApiCost","getStockMarketWseCost","getStockMarketTixApiCost","NumberInput","textProps","m0","m1","HashUpgradesMetadata","HashUpgrade","GangMemberTasks","gangMemberTasksMetadata","isHacking","isCombat","materials","updateMaterialSizeUsed","matName","getStorageMultiplier","opts","suppressDialog","totalPrice","origTotal","newTotal","rerenderFn","resultTxt","netProfit","origCost","Output","formatTime","RawOutput","raw","Link","dashes","TTimer","timeLeft","recursiveMode","thisUpgrade","unFloored","ConfirmationModal","confirmationText","onConfirm","additionalButton","createProgressBarText","derived","totalTicks","bars","hash","__COMMIT_HASH__","gameCPS","classs","discount","calculateClassEarnings","locationName","hashMult","expMult","globalModuleSequenceNumber","Script","otherScripts","moduleSequenceNumber","saveScript","formatCode","dependent","dependents","dependentScript","calculateRamUsage","ramUsageEntries","imports","StatsTable","rows","wide","MuiTable","row","elem","noWrap","DarkWebItems","BruteSSHProgram","DarkWebItem","FTPCrackProgram","RelaySMTPProgram","HTTPWormProgram","SQLInjectProgram","ServerProfiler","DeepscanV1","DeepscanV2","AutolinkProgram","AutoLink","FormulasProgram","Formulas","actionNames","actionName","Action","Suit","Card","suit","formatValue","isRedSuit","Hearts","Diamonds","getStringRepresentation","SourceFile","bitnodeKey","bitnode","timePassed","confidence","dataMap","serv","timesGrown","host","timesWeakened","compareArrays","DefaultConstructorParams","expMultiplier","salaryMultiplier","isPlayerEmployed","isMegacorp","hasAgentPositions","hasBusinessConsultantPositions","hasBusinessPositions","hasEmployeePositions","hasITPositions","hasSecurityPositions","hasSoftwareConsultantPositions","hasSoftwarePositions","hasWaiterPositions","vals","MathJaxWrapper","version","src","lineNumber","isSleeveBladeburnerWork","BLADEBURNER","SleeveBladeburnerWork","actionType","cyclesNeeded","ret","CorporationUnlockUpgradeIndex","CorporationUnlockUpgrades","Export","SmartSupply","MarketResearchDemand","MarketDataCompetition","VeChain","ShadyAccounting","GovernmentPartnership","WarehouseAPI","OfficeAPI","getGraftingAvailableAugs","augName","graftingIntBonus","calculateGraftingTimeWithBonus","OperationTyphoon","OperationZero","OperationX","OperationTitan","OperationAres","OperationArchangel","OperationJuggernaut","OperationRedDragon","OperationK","OperationDeckard","OperationTyrell","OperationWallace","OperationShoulderOfOrion","OperationHyron","OperationMorpheus","OperationIonStorm","OperationAnnihilus","OperationUltron","OperationCenturion","OperationVindictus","OperationDaedalus","ActiveFragment","highestCharge","numCharge","collide","other","thisFragment","otherFragment","dx","dy","fragSize","worldX","worldY","commit","div","startWork","CrimeWork","crimeType","successRate","GameOptionsTab","HashRate","Message","ApplyToJobButton","getJobRequirementTooltip","researchMetadata","isSleeveFactionWork","SleeveFactionWork","FIELD","SECURITY","stopWork","isSleeveCompanyWork","COMPANY","SleeveCompanyWork","NewTokyoNoodleBar","getCompany","getGainRates","calculateCompanyWorkStats","influenceStockThroughCompanyWork","initElectron","normalizeFileName","getFiles","deleteFile","removeFile","saveFile","Buffer","overwritten","writeToScriptFile","initWebserver","funcs","typesFn","appNotifier","initAppNotifier","triggerSave","triggerGameExport","ERROR","triggerScriptsExport","exportScripts","getSaveData","getSaveInfo","getImportDataFromString","pushSaveData","appSaveFns","initSaveFunctions","bridge","electronBridge","receive","send","initElectronBridge","pushGameReady","playtime","game","pushImportResult","wasImported","pushDisableRestore","isCreateProgramWork","CREATE_PROGRAM","CreateProgramWork","unitCompleted","programFile","percComplete","unitNeeded","getProgram","reqLvl","cancelled","incompleteName","lines","achievementData","bitNodeFinishedState","wd","hasAccessToSF","knowsAboutBitverse","Icon","Condition","THE_BLACK_HAND","THE_COVENANT","Visible","MONEY_1Q","MONEY_M1B","Secret","INSTALL_1","INSTALL_100","QUEUE_40","HACKING_100000","COMBAT_3000","NEUROFLUX_255","NS2","FROZE","RUNNING_SCRIPTS_1000","DRAIN_SERVER","MAX_RAM","MAX_CORES","SCRIPTS_30","KARMA_1000000","STOCK_1q","DISCOUNT","SCRIPT_32GB","FIRST_HACKNET_NODE","MAX_HACKNET_NODE","HACKNET_NODE_10M","REPUTATION_10M","DONATION","TRAVEL","WORKOUT","TOR","hasTorRouter","HOSPITALIZED","hospitalization","GANG","FULL_GANG","members","GANG_TERRITORY","GANG_MEMBER_POWER","CORPORATION","CORPORATION_BRIBE","CORPORATION_PROD_1000","CORPORATION_EMPLOYEE_3000","CORPORATION_REAL_ESTATE","Description","INTELLIGENCE_255","BLADEBURNER_DIVISION","BLADEBURNER_OVERCLOCK","BLADEBURNER_UNSPENT_100000","FIRST_HACKNET_SERVER","AdditionalUnlock","ALL_HACKNET_SERVER","MAX_HACKNET_SERVER","hs","HACKNET_SERVER_1B","MAX_CACHE","capacity","SLEEVE_8","INDECISIVE","FAST_BN","CHALLENGE_BN1","CHALLENGE_BN2","CHALLENGE_BN3","CHALLENGE_BN6","CHALLENGE_BN7","CHALLENGE_BN8","CHALLENGE_BN9","hacknet_expenses","CHALLENGE_BN10","CHALLENGE_BN12","BYPASS","PROTOTYPETAMPERING","UNCLICKABLE","UNDOCUMENTEDFUNCTIONCALL","TIMECOMPRESSION","REALITYALTERATION","N00DLES","EDITSAVEFILE","UNACHIEVABLE","CHALLENGE_BN13","StaneksGift1","DEVMENU","RAINBOW","TRUE_RECURSION","playerAchievements","missingAchievements","flatMap","Intelligence","useTheme","colSpan","WorkInProgressOverview","onClickFocus","header","workCell","workHeader","pt","pb","workSubtitles","mt","details","innerText","isCrimeWork","crime","getCrime","isGraftingWork","factionWork","companyWork","textAlign","CharacterOverview","killOpen","setKillOpen","hackingProgress","strengthProgress","defenseProgress","dexterityProgress","agilityProgress","charismaProgress","borderTop","flex","aria-label","midpoint","program","description","BadRNG","WHRNG","s1","s2","s3","genSeed","CompanyWork","Favor","RamCalculationErrorCode","TerminalEvents","TerminalClearEvents","orderType","refs","orderBook","executeOrder","isBuy","predefined","getPredefinedThemes","AlertManager","alerts","setAlerts","sha256","getMessageHash","overflowWrap","getRandomByte","SUPPORT","SleeveSupportWork","recentScripts","killedTime","unshift","timeOfDeath","getDB","indexedDB","indexedDbRequest","onupgradeneeded","createObjectStore","onerror","ev","onsuccess","db","transaction","objectStore","request","put","deleteGame","sendMessage","forced","showMessage","recvd","addMessageToServer","Messages","checkForMessagesToSend","jumper0","MessageFilenames","Jumper0","jumper1","Jumper1","jumper2","Jumper2","jumper3","Jumper3","jumper4","Jumper4","cybersecTest","CyberSecTest","nitesecTest","NiteSecTest","bitrunnersTest","BitRunnersTest","truthGazer","TruthGazer","redpill","RedPill","worldDaemon","flightName","Flight","isSleeveClassWork","SleeveClassWork","isSleeveCrimeWork","CRIME","SleeveCrimeWork","getExp","problemType","getRandomProblemType","getRandomReward","randServer","getRandomServer","contractFn","getRandomFilename","addContract","generateRandomContractOnHome","generateContract","problemTypes","rewardType","factionsThatAllowHacking","offerHackingWork","sanitizeRewardType","numFactions","randFaction","allJobs","randIndex","canGetBonus","setLastExportBonus","unixTime","ReputationRate","Option","buttonText","infoText","getTeamSuccessBonus","inst","getActionTypeSkillSuccessBonus","MightOfAres","WisdomOfAthena","ChaosOfDionysus","BeautyOfAphrodite","TrickeryOfHermes","FloodOfPoseidon","HuntOfArtemis","KnowledgeOfApollo","HemoRecirculator","Targeting1","Targeting2","Targeting3","SyntheticHeart","SynfibrilMuscle","CombatRib1","CombatRib2","CombatRib3","NanofiberWeave","SubdermalArmor","WiredReflexes","GrapheneBoneLacings","BionicSpine","GrapheneBionicSpine","BionicLegs","GrapheneBionicLegs","SpeechProcessor","TITN41Injection","EnhancedSocialInteractionImplant","BitWire","ArtificialBioNeuralNetwork","ArtificialSynapticPotentiation","EnhancedMyelinSheathing","SynapticEnhancement","NeuralRetentionEnhancement","DataJack","ENM","ENMCore","ENMCoreV2","ENMCoreV3","ENMAnalyzeEngine","ENMDMA","Neuralstimulator","NeuralAccelerator","CranialSignalProcessorsG1","CranialSignalProcessorsG2","CranialSignalProcessorsG3","CranialSignalProcessorsG4","CranialSignalProcessorsG5","NeuronalDensification","NuoptimalInjectorImplant","SpeechEnhancement","FocusWire","PCDNI","PCDNIOptimizer","PCDNINeuralNetwork","ADRPheromone1","ADRPheromone2","ShadowsSimulacrum","HacknetNodeCPUUpload","HacknetNodeCacheUpload","HacknetNodeNICUpload","HacknetNodeKernelDNI","HacknetNodeCoreDNI","Neurotrainer1","Neurotrainer2","Neurotrainer3","Hypersight","LuminCloaking1","LuminCloaking2","SmartSonar","PowerRecirculator","QLink","SPTN97","HiveMind","CordiARCReactor","SmartJaw","Neotra","Xanipher","HydroflameLeftArm","nextSENS","OmniTekInfoLoad","PhotosyntheticCells","Neurolink","CRTX42AA","Neuregen","CashRoot","NutriGen","PCMatrix","INFRARet","DermaForce","GrapheneBrachiBlades","BrachiBlades","GrapheneBionicArms","BionicArms","SNA","EsperEyewear","EMS4Recombination","OrionShoulder","HyperionV1","HyperionV2","GolemSerum","VangelisVirus","VangelisVirus3","INTERLINKED","BladeRunner","BladeArmor","BladeArmorPowerCells","BladeArmorEnergyShielding","BladeArmorUnibeam","BladeArmorOmnibeam","BladeArmorIPU","StaneksGift2","StaneksGift3","donationBonus","randomBonuses","bonuses","randomNumber","getRandomBonus","UnstableCircadianModulatorParams","UnstableCircadianModulator","AevumGalacticCybersystems","Sector12DeltaOne","AevumPolice","VolhavenZBInstituteOfTechnology","AevumSummitUniversity","AevumCrushFitnessGym","Sector12IronGym","VolhavenMilleniumFitnessGym","Sector12PowerhouseGym","AevumSnapFitnessGym","infiltrateCycles","INFILTRATE","SleeveInfiltrateWork","nextPosition","baseSalary","repMultiplier","reqdHacking","reqdStrength","reqdDefense","reqdDexterity","requiredAgility","reqdAgility","reqdCharisma","reqdReputation","hackingEffectiveness","strengthEffectiveness","defenseEffectiveness","dexterityEffectiveness","agilityEffectiveness","charismaEffectiveness","strengthExpGain","defenseExpGain","dexterityExpGain","agilityExpGain","calculateJobPerformance","hackRatio","strRatio","defRatio","dexRatio","agiRatio","chaRatio","reputationGain","moneyHacked","orgName","percTotalMoneyHacked","influenceStockThroughServerGrow","moneyGrown","percTotalMoneyGrown","performanceMult","cyclesOfWork","compName","checkEnum","enumVariable","StartButton","char","CorruptableText","setContent","counter","timers","letter","randFrom","randomize","timerId","GRAFTING","GraftingWork","gAugs","GraftableAugmentations","GraftableAugmentation","fmt","FactionInfo","offerFieldWork","offerSecurityWork","keep","keepOnInstall","assignment","FactionWorkStats","baseStats","getMult","getUpgrade","getUpgradeCost","newCap","determineCrimeSuccess","found","findCrime","roughName","atCapacity","marketCycles","emp","hireRandomEmployee","calculateTotalEmployees","calculateNextEmployees","maxEne","maxHap","maxMor","autoCoffee","perfMult","totalSalary","ene","coffeeMult","coffeeEmployees","mor","hap","partyMult","partyEmployees","minEne","minMor","minHap","calculateEmployeeProductivity","employeeNextJobs","employeeJobs","employeeProd","prod","calculateProductivity","getElementById","cre","sal","Employee","creativity","efficiency","salary","CorporationUpgradeIndex","CorporationUpgrades","SmartFactories","benefit","SmartStorage","DreamSense","WilsonAnalytics","NuoptimalNootropicInjectorImplants","SpeechProcessorImplants","NeuralAccelerators","FocusWires","ABCSalesBots","ProjectInsight","antiLog","sum","ProgressBar","withStyles","bar","transition","LinearProgress","validator","paramValidator","calculateSellInformationCashReward","levelBonus","calculateTradeInformationRepReward","calculateInfiltratorsRepReward","startingSecurityLevel","infiltrationData","sanitizedSource","prop","comprGenChar","comprLZGenerate","plain","comprLZEncode","cur_state","new_state","new_offset","tmp_state","len","comprLZDecode","compr","literal_length","backref_length","backref_offset","StatsProgressBar","remaining","StatsProgressOverviewCell","characterOverviewStyles","paddingBottom","canAccessGang","isAwareOfGang","getGangFaction","startGang","v1","v2","oldhp","baseCheck","initialCheck","netscriptCanGrow","netscriptCanWeaken","PromptEvent","PromptManager","setPrompt","PromptMenuText","PromptMenuSelect","PromptContent","PromptMenuBoolean","paddingTop","submit","autoFocus","onInput","stopPropagation","ENTER","preventDefault","choices","getItems","createCityMap","demand","competition","quality","per","performance","dur","durability","rel","reliability","aes","aesthetics","fea","features","siz","reqMats","createProduct","fin","opProd","engrProd","mgmtProd","mgmtFactor","prog","creationProd","finishProduct","totalProd","engrRatio","mgmtRatio","rndRatio","opsRatio","busRatio","totalMult","sciFac","calculateRating","advMult","busmgtgRatio","isFinite","awareness","popularity","reqMat","ProductRatingWeights","rat","Quality","Performance","Durability","Reliability","Aesthetics","Features","prodMats","ProgramsSeen","ProgramsRoot","getHackingLevelRemaining","disableGutters","gridTemplateColumns","curCompletion","getProgCompletion","Paper","flexWrap","mr","InvitationsSeen","WorkTypesOffered","FactionElement","facInfo","joined","gap","openFaction","openFactionAugPage","acceptInvitation","ml","justifyItems","gridAutoFlow","FactionsRoot","allJoinedFactions","invitations","breakpoints","down","gridTemplateRows","gridAutoRows","destroyedBitNode","newBitNode","bitNodeNumber","sourceFileKey","sourceFile","alreadyOwned","ownedSourceFile","playerSrcFile","PlayerOwnedSourceFile","giveSourceFile","ActivateRecoveryMode","RecoveryRoot","errorData","resetError","issueUrl","newIssueUrl","startIcon","onTriggered","px","multiline","fullWidth","sharePower","StartSharing","CSM","nsFuncsGenerator","sanitizedPid","Environment","vars","getScriptOnServer","shouldLog","disableLogs","Person","crimeKey","getMemoryUpgradeCost","memory","currCost","currMemory","installAugmentation","updateStatLevels","cyclesUsed","SleeveRecoveryWork","SleeveSynchroWork","takeUniversityCourse","universityName","newCity","tryBuyAugmentation","upgradeMemory","workType","sanitizedWorkType","workoutAtGym","gymName","stat","sanitizedStat","recruitmentSuccessChance","contractSuccessChance","bb","chances","CorporationState","numUnlockUpgrades","upgradeMultipliers","addFunds","getState","gameCycles","issueNewSharesCooldown","avgProfit","cycleProfit","updateDividendTax","retainedEarnings","getCycleDividends","updateSharePrice","nextState","dividendTax","dividendsPerShare","dividends","determineValuation","getTargetSharePrice","targetPrice","immediatelyUpdateSharePrice","sharesTracker","sharesUntilUpdate","sharesSold","maxIterations","convertCooldownToString","cd","upgN","upgradeAmt","getProductionMultiplier","getDreamSenseGain","getAdvertisingMultiplier","getEmployeeCreMultiplier","getEmployeeChaMultiplier","getEmployeeIntMultiplier","getEmployeeEffMultiplier","getSalesMultiplier","getScientificResearchMultiplier","getStarterGuide","hasHandbook","handbookFn","showLiterature","popEst","locations","OptionsSlider","initialValue","_evt","newValue","onChangeCommitted","callback","valueLabelDisplay","marks","TickerDisplayMode","DisplayModeButton","tickerDisplayMode","Portfolio","changeDisplayMode","StockTickersConfig","changeWatchlistFilter","maintainMembership","finishAction","penalty","hack_asc_points","str_asc_points","def_asc_points","dex_asc_points","agi_asc_points","cha_asc_points","resetPidCounter","setMaxRam","EPSILON","decay","getSuccessChance","baseTime","skillFac","effDexterity","statFac","est","clamp","real","low","high","competence","playerStatLvl","effMultiplier","getSuccessesNeededForNextLevel","baseSuccessesPerLevel","newCrimeType","convertCrimeType","ROBSTORE","BONDFORGERY","TRAFFICKARMS","GRANDTHEFTAUTO","calculateCrimeWorkStats","frames","Apr1Events","Apr1","getMonth","getDate","isApr1","setN","allow","currentCity","onTravel","WorldMap","SuccessChance","estimatedSuccessChance","StaticModal","isSleeveRecoveryWork","RECOVERY","isSleeveSynchroWork","SYNCHRO","logEntry","logUpd","displayLog","recordGrow","recordWeaken","litObj","Literatures","checkIfConnectedToDarkweb","listAllDarkwebItems","item","printRaw","buyDarkwebItem","itemName","buyAllDarkwebItems","itemsToBuy","calculateRawDiff","startingDifficulty","calculateDifficulty","calculateReward","parseArg","asNumber","ParseCommands","allCommands","flat","ParseCommand","idx","lastQuote","DOUBLE_QUOTE","QUOTE","CinematicText","setI","done","setDone","onDone","newI","auto","MaxSleevesFromCovenant","BaseCostPerSleeve","specialReferenceIF","specialReferenceFOR","specialReferenceWHILE","memCheckGlobalKey","parseOnlyRamCalculate","dependencyMap","completedParses","parseQueue","parseCode","moduleName","parseOnlyCalculateDeps","additionalModules","initialModule","nextModule","URLImportError","ImportError","detailedCosts","unresolvedRefs","resolvedRefs","loadedFns","dep","applyFuncRam","findFunc","refDetail","fnRam","checkInfiniteLoop","missingAwaitLine","walk","WhileStatement","st","walkDeeper","nodeHasTrueTest","test","hasAwait","AwaitExpression","currentModule","globalKey","internalToExternal","addRef","external","objectPrototypeProperties","getOwnPropertyNames","commonVisitors","Identifier","DoWhileStatement","ForStatement","update","IfStatement","consequent","alternate","MemberExpression","importModuleName","spec","imported","codeCopy","decimal","pidCounter","tempCounter","MAX_SAFE_INTEGER","wrapAPI","NetscriptSingularity","NetscriptGang","NetscriptBladeburner","NetscriptCodingContract","NetscriptSleeve","NetscriptCorporation","NetscriptStanek","NetscriptInfiltration","NetscriptUserInterface","NetscriptFormulas","NetscriptStockMarket","NetscriptGrafting","NetscriptHacknet","_hackAmount","hackAmount","_threads","_time","moneyBefore","moneyAfter","logGrowPercent","_growth","_cores","maxThreadsNeeded","end","finally","_format","_fn","possibleLogs","_pid","openPortCount","sshPortOpen","ftpPortOpen","smtpPortOpen","httpPortOpen","sqlPortOpen","_scriptname","scriptServer","spawnDelay","killByPid","_safetyguard","safetyguard","scriptsKilled","_destination","_source","destServer","currServ","txtFile","newFile","sourceScript","oldScript","newScript","_grep","grep","allFiles","processes","speed","production","purchaseCost","coreCost","levelCost","_filename","_ram","_name","hostnameStr","_port","_mode","tryWrite","_file","status","suc","_n","_milliseconds","_milliPrecision","milliseconds","milliPrecision","_message","_variant","_duration","_txt","_url","_target","$","writeToTextFile","fail","hacking_chance_mult","_host","source_is_txt","dest_is_txt","source_file","dest_file","Flags","NetscriptExtra","isHackingGang","respectGainRate","wantedGainRate","storedTerritoryAndPowerCycles","territoryClashChance","territoryWarfareEngaged","notifyMemberDeath","getPower","getTerritory","processGains","processExperienceGains","processTerritoryAndPowerGains","moneyGains","respectGains","wantedLevelGains","justice","recordEarnedRespect","oldWanted","newWanted","gangName","calculatePower","gainRoll","multiplicativeGain","powerMult","PowerMultiplier","additiveGain","gangs","others","thisGang","otherGang","thisPwr","thisChance","calculateTerritoryGain","winGang","loseGang","powerBonus","territoryGain","clash","gainExperience","won","baseDeathChance","modifiedDeathChance","killMember","getRespectNeededToRecruitMember","getWantedPenalty","memberTotal","totalRespect","lostRespect","earnedRespect","ascend","getDiscount","getAllTaskNames","taskName","tooltiptext","reqRep","TerminalHelpText","TemplatedHelpTexts","HelpTexts","analyze","backdoor","cat","check","cls","cp","expr","free","help","history","lscpu","mem","nano","sudov","unalias","GameEnv","Platform","getErrorForDisplay","errorInfo","isElectron","Production","toDisplay","language","cookiesEnabled","cookieEnabled","doNotTrack","indexedDb","platform","Steam","Browser","environment","getErrorMetadata","Development","componentStack","Tracking","Retirement","Investigation","Raid","initValue","GameOptionsPage","disablePadding","uniqueId","Hand","cards","addCards","removeByIndex","StockTickerTxButton","DummyGrid","DummyGift","fragments","ghostGrid","getContract","contractName","removeContract","existingPartialExeIndex","findIndex","CodingContractModal","setProps","setAnswer","contractType","tries","BitFlumeEvent","BitFlumeModal","terminalCommandHistory","generalMethods","workMethods","processWork","augmentationMethods","canAccessBladeburner","bladeburnerMethods","startBladeburner","canAccessCorporation","corporationMethods","startCorporation","gangMethods","serverMethods","InvitationModal","opt_initFunc","sourceCode","sourceCodeLineOffset","acorn","PARSE_OPTIONS","initFunc_","paused_","polyfills_","functionCounter_","stepFunctions_","stepMatch","methodName","createScope","stripLocations_","State","stateStack","nodeConstructor","READONLY_DESCRIPTOR","configurable","writable","NONENUMERABLE_DESCRIPTOR","READONLY_NONENUMERABLE_DESCRIPTOR","VARIABLE_DESCRIPTOR","STEP_ERROR","SCOPE_REFERENCE","VALUE_IN_DESCRIPTOR","toStringCycles_","getErrorLineNumber","getErrorLineNumberMessage","appendCode","populateScope_","initGlobalScope","OBJECT_PROTO","FUNCTION_PROTO","initFunction","initObject","proto","OBJECT","initArray","initString","initBoolean","initNumber","initDate","initRegExp","initError","initMath","initJSON","thisInterpreter","EvalError","parseInt","strFunctions","decodeURI","encodeURI","wrapper","nativeFunc","throwException","URI_ERROR","FUNCTION","ARRAY","ARRAY_PROTO","REGEXP","REGEXP_PROTO","DATE","DATE_PROTO","identifierRegexp","var_args","calledWithNew","newFunc","createObjectProto","arguments","argsStr","SYNTAX_ERROR","parentScope","boxThis","isObject","getScope","strict","box","getPrototype","thisArg","func_","funcThis_","arguments_","arrayPseudoToNative","TYPE_ERROR","doneExec_","setNativeFunctionPrototype","valueOf","throwIfNullUndefined","properties","arrayNativeToPseudo","descriptor","preventExtensions","getOwnPropertyDescriptor","setter","hasValue","pseudoDescriptor","propertyIsEnumerable","newArray","first","legalArrayLength","RANGE_ERROR","class","reverse","howmany","opt_begin","opt_end","opt_separator","iLength","getProperty","hasProperty","element","isa","jLength","searchElement","opt_fromIndex","STRING","fromCharCode","functions","compareString","locales","localeCompare","separator","jsList","search","newSubstr","BOOLEAN","NUMBER","numConsts","fractionDigits","toExponential","digits","precision","toPrecision","radix","Function","UTC","pattern","rgx","populateRegExp","lastIndex","opt_message","newError","createObject","createErrorSubclass","EVAL_ERROR","REFERENCE_ERROR","myMath","mathConsts","numFunctions","myJSON","nativeObj","child","legalArrayIndex","Value","strs","pseudoRegexp","nativeRegexp","ignoreCase","createFunction","opt_constructor","illegalConstructor","asyncFunc","pseudoDate","pseudoObj","opt_cycles","pseudo","native","nativeArray","pseudoArray","lineNum","isGetter","TypeError","opt_descriptor","ReferenceError","defObj","firstNode","expression","createSpecialScope","opt_scope","getValueFromScope","prevNode","setValueToScope","nodeClass","isConstructor","getValue","Completion","NORMAL","BREAK","CONTINUE","RETURN","THROW","errorClass","lineNumErrorMsg","unwind","lineNumberMsg","cv","labels","isLoop","isSwitch","realError","errorTable","RangeError","URIError","createGetter_","funcThis","doneCallee_","doneArgs_","createSetter_","elements","n_","array_","doneLeft_","doneRight_","leftReference_","doneGetter_","leftValue_","leftValue","doneSetter_","setterValue_","rightValue","directEval_","funcNode","paramName","paramValue","argsList","evalNode","argsWithCallback","done_","throwValue","mode_","test_","doneInit_","doneObject_","variable_","object_","visited_","name_","gotPropName","props_","doneVariable_","propName","doneProperty_","properties_","kinds","switchValue_","defaultCase_","index_","switchCase","matched_","tested_","doneBlock_","doneHandler_","doneFinalizer_","leftSide_","changeValue","returnValue","declarations","declarationNode","init_","doneBody_","numServerGrowthCycles","numServerGrowthCyclesAdjusted","hack_exp","hack_mult","str_exp","str_mult","def_exp","def_mult","dex_exp","dex_mult","agi_exp","agi_mult","cha_exp","cha_mult","assignToTask","unassignFromTask","difficultyPerCycles","getGainedAscensionPoints","canAscend","getCurrentAscensionMults","getAscensionMultsAfterAscend","getAscensionResults","postAscend","preAscend","applyUpgrade","respectToDeduct","buyUpgrade","defaultInterpreter","ANSI_ESCAPE","lineClass","ANSIITypography","memo","parts","groups","matchAll","startIndex","stopIndex","partText","paragraph","part","spanStyle","COLOR_MAP_BRIGHT","1","2","3","4","5","6","7","COLOR_MAP_DARK","codeParts","nextStyleKey","codePart","ir","ig","ib","grey","ansi2rgb","fontWeight","textDecoration","ansiCodeStyle","isEmpty","findSleevePurchasableAugs","ownedAugNames","availableAugs","isAvailableForSleeve","validMults","worker","companyPositionName","bn11Mult","jobPerformance","StaneksGiftEvents","maxClearanceLevel","Gym","TechVendor","techVendorMaxRam","techVendorMinRam","University","AevumCasino","Casino","Special","NewTokyoArcade","Sector12CarmichaelSecurity","Sector12CityHall","Hospital","Slums","WorldStockExchange","ChongqingChurchOfTheMachineGod","IshimaGlitch","matchEnding","zip","JSZip","zipFiles","fileNames","fileContents","zipFn","generateAsync","FileSaver","saveAs","v2ModalOpen","openV2Modal","V2Modal","stealthIcon","xmlns","viewBox","killIcon","ActionLevel","isActive","canIncrease","canDecrease","Autolevel","TeamSizeButton","graftableAug","canGraft","AugPreReqsChecklist","preAug","GraftingRoot","graftableAugmentations","selectedAug","setSelectedAug","graftOpen","setGraftOpen","selectedAugmentation","switchSortOrder","newOrder","Cost","getAugsSorted","BlinkingCursor","setOn","StyleEditorButton","styleEditorOpen","setStyleEditorOpen","ThemeEditorButton","themeEditorOpen","setThemeEditorOpen","ThemeCollaborate","DeleteGameButton","modalOpened","setModalOpened","SoftResetButton","noConfirmation","PreReqs","ownedPreReqs","hasPreReqs","Requirement","gridArea","Exclusive","PurchasableAugmentations","augNames","PurchasableAugmentation","owned","sleeveAugs","canPurchase","float","gridTemplateAreas","TravelAgencyRoot","setDestination","startTravel","symbolsLoaded","symbols","SetupTextEditor","populate","exclude","OpenScript","lastPosition","model","openScripts","currentScript","Root","editorRef","monacoRef","vimStatusRef","vimEditor","setVimEditor","setEditor","setFilter","searchExpanded","setSearchExpanded","setRAM","ramEntries","setRamEntries","updatingRam","setUpdatingRam","decorations","setDecorations","optionsOpen","setOptionsOpen","setOptions","insertSpaces","ramInfoOpen","setRamInfoOpen","dimensions","setDimensions","regenerateModel","createModel","debouncedHandleResize","updateRAM","keydown","ctrlKey","metaKey","require","initVimMode","VimMode","Vim","defineEx","saveNQuit","defineAction","_cm","nTabs","currIndex","currentTabIndex","onTabClick","nextIndex","mapCommand","context","dispose","debouncedSetRAM","useMemo","newCode","entriesDisp","scriptToSave","textFile","cleanCode","ns1","ns2","curIndex","isDisposed","setModel","setPosition","revealLineInCenter","onTabClose","closingScript","savedScriptIndex","savedScriptCode","serverScriptIndex","indexOffset","getServerCode","openScript","serverScript","handleFilterChange","handleExpandSearch","filteredOpenScripts","editorHeight","tabMaxWidth","tabTextWidth","tabIconWidth","onDragEnd","items","endIndex","removed","reorder","droppableId","direction","provided","snapshot","innerRef","droppableProps","isDraggingOver","spellCheck","externalScript","colorProps","borderColor","iconButtonStyle","scriptTabText","serverScriptCode","dirty","draggableId","disableInteractiveElementBlocking","draggableProps","dragHandleProps","flexShrink","onTabUpdate","beforeMount","languages","registerCompletionItemProvider","provideCompletionItems","suggestions","kind","CompletionItemKind","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","getLanguages","loader","tokenizer","libSource","typescript","javascriptDefaults","addExtraLib","typescriptDefaults","onMount","Position","loading","defaultLanguage","defaultValue","newPos","newArr","tempScript","awaitWarning","newDecorations","deltaDecorations","startLineNumber","startColumn","endLineNumber","endColumn","isWholeLine","glyphMarginClassName","glyphMarginHoverMessage","infLoop","glyphMargin","getAction","getSubdirectories","t_dir","processFile","subdir","containsFiles","dirWithTrailingSlash","makeScriptBlob","compile","shouldCompile","uurls","_getScriptUrls","loadedModule","isDependencyOutOfDate","scriptModuleSequenceNumber","depScript","seen","urlStack","ranges","importNodes","ExportNamedDeclaration","ExportAllDeclaration","transformedCode","matchingScripts","importedScript","urls","blob","ScriptUrl","vargs","schema","numDashes","libarg","argv","TablePaginationActionsAll","rowsPerPage","onPageChange","BitnodeMultiplierDescription","BitNodeMultipliersDisplay","maxSfLevel","columnCount","columnGap","GeneralMults","SkillMults","FactionMults","AugmentationMults","HackingMults","PurchasedServersMults","StockMults","CrimeMults","InfiltrationMults","CompanyMults","GangMults","CorporationMults","BladeburnerMults","StanekMults","BNMultTable","rowsArray","rowData","marginBottom","sectionName","extraSize","StnakesGiftPowerMultiplier","Cell","cellProps","onMouseEnter","Grid","activeGrid","randomColor","elems","newNs2Template","detectSimpleScriptGlob","globString","globDatabase","parsedGlob","glob","preGlob","postGlob","globError","globMatches","globAgainst","parseSimpleScriptGlob","commonEditor","scriptEditorRouteOptions","filesToLoadOrCreate","globSearch","filepath","getFilepath","fileIsNs2","isNs2","CursorPositions","saveCursor","column","HammingEncode","enc","data_bits","parity","HammingEncodeProperly","HammingDecode","bits","bit","ans","automate","stop","findNode","setParent","queue","getMultiplierHelper","getProductProductionMultiplier","advertisingMult","employeeChaMult","employeeCreMult","employeeEffMult","employeeIntMult","productionMult","productProductionMult","salesMult","sciResearchMult","storageMult","StanekConstants","RAMBonus","BaseSize","MaxSize","detect","hasChanges","orig","nf","fl","backups","currPos","nextPosName","corpName","additionalShares","warehouseApi","OfficeApi","Engine","_lastUpdate","updateGame","decrementAllCounters","checkCounters","Counters","autoSaveCounter","updateSkillLevelsCounter","updateDisplays","updateDisplaysLong","updateActiveScriptsDisplay","createProgramNotifications","augmentationsNotifications","passiveFactionGrowth","mechanicProcess","contractGeneration","achievementsCounter","counterName","warningToast","warnAutosaveDisabled","adjustedCycles","startExploits","setupUncaughtPromiseHandler","timeOffline","numCyclesOffline","numContracts","offlineReputation","offlineHackingIncome","offlineProductionFromHacknetNodes","hacknetProdInfo","timeOfflineString","_thisUpdate","requestAnimationFrame","LoadingScreen","setShow","loaded","setLoaded","reason","doLoad","ignoreQueued","stacks","calculateEntropy","typ","invalidArgs","baseSize","charge","af","cotmg","inBonus","updateMults","effect","boost","neighboor","CalculateEffect","canPlace","rootX","rootY","newFrag","aFrag","place","findFragment","clearCharge","Void","StatsElement","EarningsElement","rates","ServerType","All","Foreign","Owned","Purchased","ServerDropdown","isValidServer","purchased","serverType","purchase","DECK_COUNT","Result","Blackjack","bet","canStartGame","playerHand","deck","safeDrawCard","dealerHand","gameInProgress","Pending","getTrueHandValue","finishGame","Tie","PlayerWonByBlackjack","DealerWon","hand","handValues","getHandValue","valuesUnder21","isHandBusted","newHand","newDealerHand","PlayerWon","dealerHandValue","playerHandValue","betInput","wager","wagerInvalid","wagerInvalidHelperText","startGame","Deck","render","playerHandValues","getHandDisplayValues","dealerHandValues","wagerOnChange","helperText","playerHit","playerStay","startOnClick","elevation","card","prev","hidden","red","ReactCard","Clubs","Spades","allFactionAugs","factionAugs","factionAug","TickerHeaderFormatData","longestName","longestSymbol","AchievementEntry","cssFiltersUnlocked","cssFiltersLocked","isUnlocked","mainColor","achievedOn","unlocked","colorFilters","Color","hueRotate","angle","PI","sin","cos","multiply","grayscale","sepia","saturate","matrix","newR","newG","newB","brightness","linear","contrast","slope","intercept","invert","hsl","Solver","targetHSL","reusedColor","solve","solveNarrow","solveWide","css","best","initial","spsa","A1","iters","bestLoss","deltas","highArgs","lowArgs","ck","lossDiff","ak","fix","filters","colorHSL","getFiltersFromHex","hex","rgb","hexToRgb","Theme","credit","screenshot","img1","reference","outputHistory","startHack","startGrow","startWeaken","startBackdoor","startAnalyze","finishHack","oldSec","newSec","finishGrow","finishWeaken","finishBackdoor","finishAnalyze","isHacknet","org","canRunScripts","hackingSkill","security","hackingChance","numPort","getProgressText","getFile","getLitFile","lit","currDir","setcwd","contractOpen","executeScanAnalyzeCommand","visited","depthQueue","newS","titleDashes","connectToServer","executeCommands","commandHistory","commandHistoryIndex","executeCommand","n00dlesServ","commandName","scananalyze","apr1","removeBracketsFromArrayString","strCpy","removeQuotesFromString","convert2DArrayToString","_data","nums","ways","maxLen","padStart","spiral","u","col","playerAns","_arr","reach","jumps","lastJump","jumpedFrom","intervals","numIntervals","interval","sanitizedResult","sanitizedAns","B","C","ansArr","ipInAns","maxCur","maxSoFar","hold1","MIN_SAFE_INTEGER","hold2","release1","release2","prices","hold","rele","cur","createTriangleRecurse","numLevels","createTriangle","triangle","dp","numRows","numColumns","currentRow","gridString","grid","obstacleGrid","dstY","dstX","minPathLength","distanceFactor","distance","MinHeap","validPosition","neighbors","yN","xN","changeWeight","yQ","xQ","ansX","ansY","roll","dfs","pair","sanitizedPlayerAnsArr","resultInAnswer","numDigits","digitsArray","helper","evaluated","multed","_alteredBit","_buildArray","_randomIndex","edges","shuffle","vertexShuffler","neighbourhood","vertex","adjLeft","adjRight","coloring","initialVertex","frontier","validColors","aColor","bColor","plaintext","ans_plain","run_length","compressed","BinHeap","heapifyUp","heapifyDown","predicate","heapOrderABeforeB","tmp","toSwap","weightA","weightB","requireHackingLevel","targetServer","numAugReq","ipaddress","byteRange","formattedHours","getHours","formattedMinutes","getMinutes","formattedSeconds","getSeconds","AllSoftwarePositions","AllITPositions","AllNetworkEngineerPositions","SecurityEngineerPositions","AllTechnologyPositions","AllBusinessPositions","AllAgentPositions","AllSecurityPositions","AllSoftwareConsultantPositions","AllBusinessConsultantPositions","SoftwarePositionsUpToHeadOfEngineering","SoftwarePositionsUpToLeadDeveloper","BusinessPositionsUpToOperationsManager","WaiterOnly","EmployeeOnly","PartTimeWaiterOnly","PartTimeEmployeeOnly","OperationsManagerOnly","CEOOnly","effectText","costPerLevel","hasTargetServer","collapsedSum","createDescription","checkGangApiAccess","getGangMember","_faction","wantedLevelGainRate","cpy","_memberName","memberName","hack_asc_mult","str_asc_mult","def_asc_mult","dex_asc_mult","agi_asc_mult","cha_asc_mult","recruited","tasks","_taskName","getGangTask","_equipName","equipName","equipment","typecheck","_engage","engage","_otherGang","playerPower","checkSleeveAPIAccess","checkSleeveNumber","sleeveNumber","sl","_sleeveNumber","_crimeRoughName","crimeRoughName","_universityName","_className","_cityName","acompanyName","_factionName","_workType","_gymName","_stat","jobTitle","agilityExp","charismaExp","companyRep","crimeMoney","crimeSuccess","defenseExp","dexterityExp","factionRep","hackingExp","strengthExp","workMoney","purchasableAugs","_augName","_action","_contract","devMenu","doc","completely_unused_field","real_document","recur","guess","bcrypt","getHacknetNode","hi","_i","hasUpgraded","timeOnline","totalProduction","_upgName","_count","_upgTarget","checkStanekAPIAccess","_rootX","_rootY","_rotation","_fragmentId","fragmentId","getLocationsWithInfiltrations","_location","tradeRep","sellCash","SoARep","calculateInfiltrationData","newTheme","currentTheme","errors","newStyles","currentStyles","checkBladeburnerAccess","skipjoined","apiDenied","bladeburnerDenied","checkBladeburnerCity","getBladeburnerActionObject","_blackOpName","blackOpName","_type","_level","_autoLevel","_skillName","_size","getCodingContract","returnReward","answerStr","is2DArray","answerComponents","creward","upgradeName","materialName","checkAccess","api","getSafeDivision","numAdVerts","_divisionName","_amt","_materialName","sell","sll","_productName","pCost","cityData","developmentProgress","_price","_all","_enabled","enabled","_designInvest","_marketingInvest","_qty","_sourceDivision","_sourceCity","_targetDivision","_targetCity","sourceDivision","targetDivision","targetCity","_on","_researchName","_employeeName","_job","_amount","amount","_costPerEmployee","_industryName","industryName","_upgradeName","_rate","dividendEarnings","_corporationName","_selfFund","corporationName","selfFund","fundingRound","percShares","funding","investShares","_numShares","initialSharePrice","_amountCash","amountCash","startingCost","reFac","robFac","aiFac","advFac","hwFac","getProductDescriptionText","getMaximumNumberProducts","additional","hasMaximumNumberProducts","calculateProductionFactors","multSum","cityMult","updateWarehouseSizeUsed","prodName","newInd","employeeSalary","officeLoc","processMaterialMarket","processProductMarket","popularityGain","awarenessGain","MAX_VALUE","processMaterials","processProducts","wh","foo","imp","buyAmt","maxAmt","smartBuy","smartSupplyStore","worseAmt","totalSize","freeSpace","maxProd","getOfficeProductivity","totalMatSize","reqMatName","normQty","producableFrac","reqMatQtyNeeded","fooProd","fooI","businessFactor","getBusinessFactor","advertisingFactor","getAdvertisingFactors","marketFactor","getMarketFactor","markupLimit","numerator","sqrtNumerator","sqrtDenominator","denominator","sqrt","optimalPrice","marketTa2Price","sellAmt","totalExp","expI","amtStr","expIndustry","expWarehouse","processProduct","totalProfit","forProduct","netStorageSize","sCostString","businessProd","calculateEffectWithFactors","awarenessFac","popularityFac","ratioFac","updateResearchTree","expFac","linearFac","morale","happiness","energy","det","trainingEff","effCre","effEff","prodBase","checkFormulasAccess","_favor","_rep","_player","_exp","_mult","_skill","_server","_startingLevel","_extraLevels","_costMult","_startingRam","_startingCore","_extraCores","extraCores","_ramUsed","_maxRam","HScalculateHashGainRate","HScalculateLevelUpgradeCost","HScalculateRamUpgradeCost","HScalculateCoreUpgradeCost","_startingCache","_extraCache","extraCache","HScalculateCacheUpgradeCost","HScalculateServerCost","_gang","_member","_task","_points","_crimeType","_classType","_locationName","checkTixApiAccess","getStockFromSymbol","_symbol","_shares","_posType","sanitizedPosType","_pos","orderPos","ltype","lpos","stockMarketOrders","forecast","checkGraftingAPIAccess","_focus","wasFocusing","craftableAug","getPlayerFields","matchJS","matchScript","offenders","processScript","formatRules","formatOffenders","off","fileline","rule","textfield","Language","InteractiveTutorialRoot","nsSelectionOpen","setNSSelectionOpen","setLanguage","tutorialScriptExtension","NS1","tutorialScriptName","contents","canNext","square","tab","updateOptions","readOnly","overviewContainer","visibilityToggle","collapse","Overview","setX","setY","CurrentIcon","KeyboardArrowUpIcon","KeyboardArrowDownIcon","LeftIcon","SchoolIcon","EqualizerIcon","fakeDrag","triggerMouseEvent","eventType","clickEvent","createEvent","initEvent","dispatchEvent","Loading","onStop","defaultPosition","onDoubleClick","openedMixin","transitions","easing","sharp","enteringScreen","closedMixin","leavingScreen","up","Drawer","styled","shouldForwardProp","active","borderLeft","listitem","SidebarRoot","hackingOpen","setHackingOpen","characterOpen","setCharacterOpen","worldOpen","setWorldOpen","helpOpen","setHelpOpen","flashTerminal","flashStats","flashActiveScripts","flashHacknet","flashCity","flashTutorial","augmentationCount","invitationsCount","programCount","getAvailableCreatePrograms","canOpenFactions","canOpenAugmentations","canOpenSleeves","canCorporation","canGang","canJob","canStockMarket","canBladeburner","canStaneksGift","clickTerminal","clickScriptEditor","clickStats","clickActiveScripts","clickCreateProgram","clickFactions","clickAugmentations","clickHacknet","clickCity","clickTravel","clickJob","clickBladeburner","clickGang","clickTutorial","clickOptions","handleShortcuts","altKey","E","H","R","P","F","U","G","anchor","timeout","unmountOnExit","clsx","badgeContent","NeuroFluxDisplay","EntropyDisplay","AugmentationsRoot","installOpen","setInstallOpen","InstalledAugmentations","sourceAugs","Alphabetically","aug1","aug2","BitNodeModifiedStats","MultiplierList","listItems","augmented","bnMult","py","disableTypography","PlayerMultipliers","augP","augObj","calculateAugmentedStats","leftColData","rightColData","PurchasedAugmentations","displayName","enterNextDelay","safeGetSf","sfNum","sfObj","getMaxLevel","SourceFilesElement","sourceSfs","sf1","sf2","selectedSf","setSelectedSf","DevMenuRoot","General","setError","setCorporationName","gangFaction","setGangFaction","addMoney","TransitionProps","expandIcon","bigNumber","modifyExp","modifier","modifyKarma","resetExperience","modifyFactionRep","AllFaction","modifyFactionFavor","labelId","arial-label","setAugmentation","validSFN","setSF","sfN","sfLvl","setAllSF","setProgram","AllPrograms","Servers","setServer","setCompany","modifyCompanyRep","AllCompanies","modifyCompanyFavor","modifyBladeburnerRank","modify","modifyBladeburnerCycles","modifyGangCycles","modifyCorporationFunds","modifyCorporationCycles","CodingContracts","setCodingcontract","cc","stockPrice","setStockPrice","setStockSymbol","processStocks","inputSymbols","SM","stocks","sleeveSetStoredCycles","Stanek","modCycles","modCharge","TimeSkip","timeskip","SaveFile","importInput","setSaveFile","restoreScripts","setRestoreScripts","restoreAugs","setRestoreAugs","restoreSFs","setRestoreSFs","File","FileList","ii","playerAchievement","setPlayerAchievements","achieved","grantAchievement","removeAchievement","Entropy","BladeburnerRoot","travelOpen","setTravelOpen","inFaction","wordBreak","TravelModal","nopadding","preformatted","Line","Console","setCommand","consoleInput","consoleHistoryIndex","setConsoleHistoryIndex","Logs","tabIndex","inputRef","prevCommand","currentTarget","scrollHook","scrollTop","scrollHeight","AllPages","GeneralActionPage","GeneralActionList","actions","GeneralActionElem","computedActionTimeCurrent","actionData","ContractPage","ContractList","ContractElem","Contracts","StealthIcon","KillIcon","OperationPage","OperationList","OperationElem","TeamSizeModal","BlackOpPage","BlackOpList","blackopName","blackop","BlackOpElem","hasReqdRank","SkillPage","valid","onUpgrade","SkillList","SkillElem","canLevel","GangRoot","ManagementSubpage","GangStats","territoryStr","BonusTime","CyclerPerSecond","bonusMillis","GangMemberList","ascendOnly","setAscendOnly","onRecruit","GangMemberCard","GangMemberCardContent","ascendOpen","setAscendOpen","borderRightWidth","onAscend","borderLeftWidth","onTaskChange","GangMemberStats","asc","KillScriptsModal","TaskSelector","currentTask","setCurrentTask","contextMember","TaskDescription","AscensionModal","RecruitButton","RecruitModal","setName","recruit","onKeyUp","TerritorySubpage","gangNames","infoOpen","setInfoOpen","formatTerritory","OtherGangTerritory","clashVictoryChance","TerritoryInfoModal","NextReveal","PurchasedUpgrade","UpgradeButton","GangMemberUpgradePanel","currentCategory","setCurrentCategory","filterUpgrades","weaponUpgrades","armorUpgrades","vehicleUpgrades","rootkitUpgrades","augUpgrades","categories","Weapons","Vehicles","Rootkits","EquipmentsSubpage","CorporationRoot","setDivisionName","canExpand","industryType","MainPanel","CityTabs","setCity","cityStateSetter","SwitchButton","manualMode","switchMode","ManualManagement","setEmployee","employeePositionSelectorInitialValue","employeePositions","positionNames","EmployeeCount","next","currJob","nextJob","nextUna","AutoManagement","vechain","totalMorale","totalHappiness","totalEnergy","avgMorale","avgHappiness","avgEnergy","currUna","IndustryOffice","upgradeOfficeSizeOpen","setUpgradeOfficeSizeOpen","throwPartyOpen","setThrowPartyOpen","employeeManualAssignMode","setEmployeeManualAssignMode","UpgradeSizeButton","upgradeSize","UpgradeOfficeSizeModal","upgradeCost","upgradeCost15","maxMult","maxNum","multIncrease","upgradeCostMax","ThrowPartyModal","setCost","canParty","EffectText","MakeProductButton","makeOpen","setMakeOpen","hasMaxProducts","createProductButtonText","IndustryOverview","researchOpen","setResearchOpen","advertisingInfo","advertisingFactors","totalAdvertisingFac","convertEffectFacToGraphic","MakeProductModal","allCities","design","setDesign","marketing","setMarketing","createProductPopupText","Upgrade","wrapInTooltip","ele","but","ResearchModal","retainHeight","WarehouseRoot","smartSupplyOpen","setSmartSupplyOpen","canAffordUpgrade","stateText","mats","isInStock","isRelevant","breakdownItems","breakdown","previous","IndustryWarehouse","EmptyWarehouse","Leftover","setChecked","SmartSupplyModal","ProductElem","sellOpen","setSellOpen","limitOpen","setLimitOpen","discontinueOpen","setDiscontinueOpen","cancelOpen","setCancelOpen","marketTaOpen","setMarketTaOpen","nfB","hasUpgradeDashboard","sellButtonText","limitProductionButtonText","DiscontinueProductModal","LimitProductProductionModal","setLimit","SellProductModal","iQty","setQty","setPx","initialPrice","MarketTA2","ProductMarketTaModal","CancelProductModal","MaterialElem","purchaseMaterialOpen","setPurchaseMaterialOpen","exportOpen","setExportOpen","sellMaterialOpen","setSellMaterialOpen","materialMarketTaOpen","setMaterialMarketTaOpen","limitProductionOpen","setLimitProductionOpen","tutorial","purchaseButtonText","limitMaterialButtonText","disablePurchaseLimit","ExportModal","possibleDivisions","defaultDivision","setIndustry","setAmt","removeExport","currentDivision","possibleCities","newCost","setNewCost","MaterialMarketTaModal","SellMaterialModal","setPrice","BulkPurchaseSection","setBuyAmt","setDisabled","BulkPurchaseText","parsedAmt","PurchaseMaterialModal","purchaseMaterial","LimitMaterialProductionModal","IndustryProductEquation","reqs","reqAmt","ExpandNewCity","ExpandIndustryTab","possibleIndustries","newIndustry","multRows","appendMult","DividendsStats","PublicButtons","PrivateButtons","BribeButton","Upgrades","findInvestorsopen","setFindInvestorsopen","goPublicopen","setGoPublicopen","fundingAvailable","findInvestorsTooltip","upgradeData","sellSharesOpen","setSellSharesOpen","buybackSharesOpen","setBuybackSharesOpen","issueNewSharesOpen","setIssueNewSharesOpen","issueDividendsOpen","setIssueDividendsOpen","sellSharesOnCd","sellSharesTooltip","issueNewSharesOnCd","issueNewSharesTooltip","canBribe","totalDividends","playerEarnings","storedTime","LevelableUpgrade","xs","UU","BribeFactionModal","selectedFaction","setSelectedFaction","getRepText","SellSharesModal","setShares","ProfitIndicator","BuybackSharesModal","CostIndicator","IssueDividendsModal","percent","setPercent","canIssue","maxNewSharesUnrounded","maxNewShares","newShares","IssueNewSharesModal","issueNewShares","privateShares","FindInvestorsModal","GoPublicModal","InfiltrationRoot","setStart","StartingDifficulty","Difficulty","Reward","cancel","Stage","minigames","SlashGame","BracketGame","BackwardGame","BribeGame","CheatCodeGame","Cyberpunk2077Game","MinesweeperGame","WireCuttingGame","setLevel","stage","setStage","Countdown","results","setResults","gameIds","setGameIds","lastGames","nextGameId","ids","setupNextGame","pushResult","stageComponent","onFinish","Minigame","MiniGame","onSuccess","Sell","onFailure","automated","Progress","difficulties","timer","words","makeAnswer","setGuess","hasAugment","BACKSPACE","shiftKey","ignorableKeyboardEvent","nextGuess","setRight","OPEN_BRACKET","LESS_THAN","OPEN_PARENTHESIS","OPEN_BRACE","generateLeftSide","CLOSE_PARENTHESIS","CLOSE_BRACKET","CLOSE_BRACE","GREATER_THAN","getChar","positive","option","negative","shuffleArray","makeChoices","correctIndex","setCorrectIndex","setIndex","currentChoice","choice","defaultColor","disabledColor","upColor","downColor","choiceColor","upIndex","upDistance","downIndex","downDistance","onCorrectIndex","newIndex","arrows","arrow","generateCode","puzzle","randChar","generatePuzzle","answers","generateAnswers","currentAnswerIndex","setCurrentAnswerIndex","setPos","flatGrid","isCorrectAnswer","optionColor","move","mines","minefield","generateEmptyField","generateMinefield","memoryPhase","setMemoryPhase","flagged","marked","fieldEquals","phase","setPhase","phaseZeroTime","timeUntilAttacking","Victory","quitInfiltration","handleInfiltrators","soa","infiltrationRepGain","isMemberOfInfiltrators","wiresmin","wiresmax","PIPE","DOT","FORWARD_SLASH","HYPHEN","HASH","colorNames","blue","wires","numWires","wireColors","generateWires","cutWires","setCutWires","questions","numQuestions","questionGenerators","randomPositionQuestion","randomColorQuestion","generateQuestion","checkWire","wireNum","shouldCut","wiresToBeCut","shouldBeCut","question","isCorrectWire","wire","wireColor","cutColor","arrowPart","Intro","CYCLES_PER_SEC","ExpRows","WorkInProgressRoot","workInfo","buttons","stopText","completion","unfocus","classWork","elapsed","stopTooltip","comp","tooltipInfo","GameOptionsRoot","currentTab","setCurrentTab","SYSTEM","setTab","CurrentOptionsPage","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","timestampFormat","setTimestampFormat","setLocale","_event","INTERFACE","GAMEPLAY","MISC","SideBarTab","sideBarProps","tabName","GameOptionsSidebar","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","confirmedImportGame","method","alt","ServerAccordion","FileDiagnosticModal","FontFamilyField","refreshId","errorText","setErrorText","setFontFamily","LineHeightField","setLineHeight","StyleEditorModal","setRefreshId","customStyle","setCustomStyle","persistToSettings","endIcon","ColorEditor","onColorChange","hideTextfield","deferred","newColor","disableAlpha","ThemeEditorModal","customTheme","setCustomTheme","setTemplateTheme","placement","maxRows","importedTheme","SleeveRoot","FAQOpen","setFAQOpen","SleeveElem","statsOpen","setStatsOpen","augmentationsOpen","setAugmentationsOpen","abc","setABC","doing","MoreStatsModal","SleeveAugmentationsModal","PurchaseAugmentationModal","universitySelectorOptions","gymSelectorOptions","bladeburnerSelectorOptions","possibleJobs","forbiddenCompanies","otherSleeve","possibleFactions","forbiddenFactions","factionObj","second","universities","gyms","possibleContracts","Synchronize","canDo","getABC","s0","setS0","setS1","setS2","validActions","detailsF","details2","detail","FAQModal","HacknetRoot","purchaseMultiplier","setPurchaseMultiplier","purchaseMultiplierOnClicks","onClicks","GeneralInfo","HacknetNodeElem","purchaseMult","upgradeLevelButton","upgradeRAMButton","upgradeCoresButton","increase","upgradeLevelCost","upgradeRamCost","upgradeCoreCost","HacknetServerElem","upgradeRamButton","upgradeCacheButton","base_increase","modded_increase","upgradeCacheCost","HashUpgradeModal","serversMap","HacknetUpgradeElem","selectedServer","setSelectedServer","MultiplierButton","MultiplierButtons","btnProps","PlayerInfo","hasServers","PurchaseButton","GenericLocation","locContent","locName","getLocationSpecificContent","CompanyLocation","quitOpen","setQuitOpen","isEmployedHere","favorGain","onQuit","QuitJobModal","GymLocation","train","HospitalLocation","getHealed","currHp","btnStyle","SlumsLocation","shopliftChance","robStoreChance","mugChance","larcenyChance","drugsChance","bondChance","armsChance","homicideChance","gtaChance","kidnapChance","assassinateChance","heistChance","SpecialLocation","handleBladeburner","worldHeader","HTMLElement","handleGrafting","CreateCorporation","handleCotMG","renderBladeburner","toStanek","renderCotMG","CreateCorporationModal","canSelfFund","n00dlePower","ArcadeRoot","Megabyteburner2000","currentGame","BBCabinetRoot","origin","joystick","borderStyle","borderWidth","ServerButton","TechVendorLocation","purchaseServerButtons","RamButton","TorButton","purchaseTorRouter","CoresButton","maxCores","PurchaseServerModal","setHostname","tryToPurchaseServer","TravelConfirmationModal","UniversityLocation","take","dataStructuresCost","networksCost","algorithmsCost","managementCost","leadershipCost","GameType","CasinoLocation","setGame","Coin","Slots","Roulette","numDecks","drawCard","CoinFlip","investment","setInvestment","setResult","setStatus","playLock","setPlayLock","play","correct","redNumbers","strategies","Red","payout","Black","Odd","Even","High","Low","Third1","Third2","Third3","Single","canPlay","setCanPlay","lock","setLock","strategy","playerWin","isRed","currentNumber","getPayout","payLines","SlotMachine","locks","setLocks","stoppedOne","getPaylineData","payline","point","countSequence","checkWinnings","getTable","LocationLetter","ASCIICity","locationLettersRegex","letterMap","K","M","N","Q","V","Y","lineElems","startI","endI","locationI","ListCity","locationButtons","LocationCity","OptionsModal","setInsertSpaces","setFontSize","setWordWrap","setVim","themePath","themeCopy","setThemeCopy","MilestonesRoot","milestones","highestMilestone","milestone","ActionTimer","TerminalRoot","setKey","doScroll","hook","scrollIntoView","debounced","maxWait","unsubscribe","scrollId","TerminalInput","terminalInput","postUpdateValue","setPostUpdateValue","possibilities","setPossibilities","saveValue","postUpdate","modifyInput","mod","inputLength","selectionStart","inputText","delStart","moveTextCursor","keyDown","autoComplete","onBlur","TAB","semiColonIndex","allPos","determineAllPossibilitiesForTabCompletion","tabCompletion","selectionEnd","anchorEl","parentDirPath","evaledParentDirPath","addAllCodingContracts","cct","addAllLitFiles","addAllPrograms","addAllScripts","processFilepath","addAllTextFiles","addAllDirectories","subdirs","t_parentDirPath","convertParentPath","isCommand","cmd","t_cmd","autocomplete","runArgs","permissive","flagFunc","autocompleteData","txts","pos2","scriptAutocomplete","addAllMessages","allPossibilities","oldValue","longestStartSubstr","TutorialRoot","confirmResetOpen","setConfirmResetOpen","ActiveScriptsRoot","ScriptProduction","prodRateSinceLastAug","ServerAccordions","setRowsPerPage","serverToScriptMap","filtered","rowsPerPageOptions","newPage","onRowsPerPageChange","ActionsComponent","paddedName","barOptions","headerTxt","ServerAccordionContent","noborder","WorkerScriptAccordion","killScript","onlineMps","onlineEps","RecentScriptsPage","recentScript","RecentScriptAccordion","MainPage","onAugmentations","sleevesOpen","setSleevesOpen","isPlayersGang","favorToDonate","canDonate","canPurchaseSleeves","startHackingContracts","startFieldWork","startSecurityWork","FactionRoot","purchasingAugs","setPurchasingAugs","routeToMainPage","AugmentationsPage","getAugs","augName1","augName2","getAugsSortedByCost","getAugsSortedByReputation","Purchasable","canBuy","hasReq","hasRep","cantBuy","getAugsSortedByPurchasable","purchasable","multiplierComponent","costs","showModal","DonateOption","donateAmt","setDonateAmt","Status","noformat","DefaultAssignment","Info","Assignment","CovenantPurchasesRoot","setUpdate","purchaseDisabled","upgradePanels","CovenantSleeveMemoryUpgrade","maxMemory","purchaseBtnDisabled","purchaseBtnContent","calculateStat","getFactionHackingWorkRepGain","srcFile","sourceFileObject","incMult","decMult","GangButton","gangOpen","setGangOpen","CreateGangModal","EmployersModal","MultiplierTable","noMargin","effValue","CurrentBitNode","MoneyModal","convertMoneySourceTrackerToString","CharacterStats","moneyOpen","setMoneyOpen","employersOpen","setEmployersOpen","timeRows","showBitNodeMults","isEqual","StockMarketRoot","Purchase4SMarketDataTixApiAccessButton","PurchaseWseAccountButton","PurchaseTixApiAccessButton","Purchase4SMarketDataButton","InfoAndPurchases","StockTickers","setTickerDisplayMode","AllStocks","watchlistSymbols","setWatchlistSymbols","tickers","stockMarketProp","rerenderAllTickers","sanitizedWatchlist","SelectorOrderType","StockTicker","setOrderType","Market","tickerOpen","setTicketOpen","modalProps","setModalProps","placeText","getQuantity","hasOrderAccess","Limit","Stop","getBuyTransactionCostContent","getSellTransactionCostContent","playerMoney","localesWithLongPriceFormat","StockTickerHeaderText","stockPriceFormat","spacesAllottedForStockPrice","spacesAfterStockName","spacesBeforePrice","hdrText","plusOrMinus","StockTickerOrderList","StockTickerOrder","posTxt","LongPosition","percentageGains","ShortPosition","StockTickerPositionText","PlaceOrderModal","portal","level0","level1","level2","level3","BitNodePortal","portalOpen","setPortalOpen","cssClass","aria-description","BitverseRoot","destroyed","destroySequence","setDestroySequence","nextSourceFileLvl","PortalModal","bitNodeKey","maxSourceFileLevel","newLevel","CinematicLine","setLength","ms","newLength","advance","StaneksGiftRoot","MainBoard","setGhostGrid","setRotation","selectedFragment","setSelectedFragment","moveGhost","clickAt","deleteAt","doRotate","selectFragment","FragmentInspector","setC","effectAmt","FragmentOption","colorAt","FragmentSelector","FragmentPreview","ActiveFragmentSummary","summary","coordinate","formatEffect","_width","_height","getComputedStyle","Element","visibility","AchievementsRoot","AchievementList","cssPrimary","cssSecondary","secret","unavailable","locked","pr","defaultExpanded","AchievementIcon","imgLoaded","setImgLoaded","onLoad","ErrorBoundary","Component","hasError","componentDidCatch","ex","previousScrollY","modalOpen","setModalOpen","modalImageSrc","setModalImageSrc","predefinedThemes","themes","templateTheme","onActivated","scrollY","previousColors","onImageClick","handleZoom","ThemeEntry","subheader","image","ComparisonIcon","isBetter","initialAutosave","ImportSaveRoot","currentData","setCurrentData","importModalOpen","setImportModalOpen","headback","setHeadback","dataBeingImported","dataCurrentlyInGame","fetchData","BypassWrapper","getAugmentation","runAfterReset","cbScript","_purchased","_facName","_cbScript","_programName","baseserver","installTime","wasWorking","_companyName","wasFocused","_field","repNeededToDonate","crimeTime","_nextBN","_callbackScript","nextBN","callbackScript","hackingRequirements","wrapFunction","wrappedAPI","tree","functionName","branch","getNestedProperty","wrapAPILayer","setNestedProperty","empty","nerf","normalServer","relative_filename","evaledDir","t_dst","dst","srcExt","tRes","sRes","sanitizedExpr","used","avail","usedPercent","incorrectUsage","newPath","allPrograms","allScripts","allTextFiles","allContracts","allMessages","folders","handleFn","dest","parsedFn","firstParentDir","msgOrLit","ClickableScriptRow","scriptLinksWrap","scriptLink","textDecorationLine","paddingRight","rowSplitArray","rowItem","onScriptLinkClick","ClickableMessageRow","linksWrap","link","onMessageLinkClick","FileType","postSegments","group","segments","linked","filesPerRow","Folder","numThreads","verboseEntries","t_dest","sourcePath","destFile","destPath","positions","getCursor","re","matching","rsObj","delTarget","executableName","runContract","runProgram","commandArgs","threadFlag","tailFlag","toLocaleLowerCase","hasRoot","maxHostname","maxIP","args2","headers","currRunningScripts","numSpacesScript","spacesScript","numSpacesPid","spacesPid","numSpacesThread","spacesThread","tampering","last","minute","timeCompression","ReactDOM","globalThis","onbeforeunload"],"mappings":"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A,mBACA,mBACA,mBACA,mBACA,gBACA,kBACA,oBACA,sBACA,wBACA,8BACA,YACA,YACA,aACA,0BACA,2BACA,kBACA,4BACA,0BACA,UACA,SACA,WACA,UACA,YACA,UACA,WACA,gBAEIC,EAAqB,CACzB,cACA,WACA,aACA,UACA,WACA,UACA,YACA,UACA,WACA,eACA,SACA,cACA,eACA,cACA,gBACA,cACA,eACA,mBACA,eACA,gBACA,eACA,iBACA,eACA,gBACA,mBACA,oBACA,mBACA,qBACA,mBACA,oBACA,sBACA,qBACA,qBACA,oBACA,mBACA,mBACA,mBACA,qBACA,kBACA,0BACA,kCACA,6BACA,8BACA,+BACA,+BACA,gCACA,4BACA,kCACA,YACA,YACA,cACA,sBACA,qBACA,kBACA,qBACA,oBACA,kBACA,kBACA,mBACA,QAEF,IAAItmC,EAASumC,OAAO7B,EAAUta,kBAC1Bn/C,MAAM+0B,KAASA,EAAS,GAC5B0kC,EAAU91B,IAAI+D,cAAgB3S,EAC9B,IAAK,MAAMwmC,KAASH,SACX3B,EAAU8B,GAEnB,IAAK,MAAM3L,KAAU6J,EAAUl0B,QAAS,CACtC,MAAMi2B,EAAY5L,EAClB,IAAI76B,EAASumC,OAAOE,EAAUrc,kBAC1Bn/C,MAAM+0B,KAASA,EAAS,GAC5BymC,EAAU73B,IAAI+D,cAAgB3S,EAC9B,IAAK,MAAMwmC,KAASF,SACXzL,EAAO2L,MAoFlBE,CAA6BjC,GACzB76D,OAAOgJ,SAAS+zD,KAAK1zB,cAAc1kC,SAAS,kBAkDpDmW,YACE,4TAIE9S,IAAUoS,aACZ4iD,GArDanC,IAAQ7yD,IAAUqN,eAC3B4nD,IAEF,MAAOngC,GACPmgC,SAGFA,IAEF,OAAO,EAWT,MAAMD,EAAkB,CACtB,yCAA0C,CACxC/Z,OAAQ,EACRvnC,MAAOjL,IAAST,MAAMqc,QACtB6wC,WAAY,WAEd,OAAQ,CACNC,YAAa,QACbC,WAAY,MAIhB,SAASH,IACPr5D,WACE,IACEkX,YACE,0IAGE9S,IAAUoS,aACZ4iD,GAEJ,KAeJ,SAAS9D,EAAShuD,EAAkByxC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,KAENA,EAjDT,mC,6BCHA,oEAGO,MAAMg6G,EAA6B,CACxC,oDACA,IACA,8EACA,sFACA,sFACA,mFACA,8EACA,qEACA,6EACA,2EACA,gEACA,uEACA,uDACA,4FACA,8EACA,kFACA,mHACA,oEACA,kGACA,wEACA,oEACA,gFACA,6FACA,4FACA,6EACA,2FACA,iGACA,6EACA,4GACA,0FACA,yEACA,uEACA,gGACA,0FACA,iFACA,+FACA,0FACA,4FACA,uEACA,wHACA,sFACA,iFACA,KAGIC,EACW76D,GACN,CACJ,UAASA,wBACT,IACA,4GACA,4FACA,IACA,4CAA2CA,kDAC3C,kBAAiBA,yEACjB,IACA,YACA,IACA,OAAMA,YACN,OAAMA,qBACN,IACA,OAAMA,WACN,OAAMA,iBACN,KAKM86D,EAA4B,CACvCzyE,MAAO,CACL,oCACA,IACA,4FACA,uGACA,yHACA,kGACA,IACA,gCACA,IACA,mHACA,yHACA,4CACA,IACA,gCACA,IACA,6DACA,IACA,eACA,IACA,2HACA,4HACA,IACA,mCACA,IACA,8GACA,IACA,uHACA,uCACA,IACA,uDACA,KAEF0yE,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEFjmH,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEFkmH,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEFhV,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEFiV,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEFznE,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEF0nE,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEF3oD,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEF4oD,GAAI,CAAC,wBAAyB,IAAK,wEAAyE,KAC5GrtF,SAAU,CACR,qCACA,IACA,mFACA,IACA,4GACA,IACA,kDACA,IACA,0CACA,IACA,0CACA,KAEFstF,KAAM,CACJ,wCACA,IACA,oFACA,IACA,oBACA,IACA,WACA,IACA,wBACA,IACA,qFACA,KAEFC,KAAM,CACJ,cACA,IACA,gIACA,gCACA,KAEFx6C,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEF7mG,KAAM,CACJ,cACA,IACA,uHACA,KAEFshJ,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEFv9G,KAAM,CACJ,cACA,IACA,sGACA,KAEFjlC,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChFw2E,KAAM,CACJ,mDACA,IACA,4EACA,IACA,6EACA,4EACA,iFACA,4DACA,IACA,uCACA,IACA,qEACA,IACA,wCACA,IACA,qFACA,KAEF0yB,QAAS,CACP,iBACA,IACA,4CACA,2HACA,uHACA,2EACA,KAEFG,GAAI,CACF,wCACA,IACA,iIACA,sDACA,IACA,8FACA,IACA,gFACA,IACA,yHACA,IACA,YACA,IACA,wEACA,IACA,2BACA,IACA,iEACA,IACA,yBACA,IACA,uFACA,IACA,oCACA,KAEFo5C,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEFhzF,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEFizF,KAAMd,EAAgC,QACtCv4C,GAAI,CAAC,YAAa,IAAK,4DAA6D,KACpF8B,GAAI,CACF,mBACA,IACA,6GACA,IACA,kDACA,KAEFr1D,IAAK,CACH,sDACA,IACA,gDACA,IACA,sHACA,2GACA,gEACA,2DACA,2FACA,IACA,kHACA,iFACA,KAEFsxD,KAAM,CACJ,cACA,IACA,6HACA,2CACA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,8BACA,aACA,oBACA,qBACA,+CACA,YACA,IACA,OACA,IACA,aACA,KACA,sBACA,iBACA,MACA,IAIA,oDACA,8CACA,gCACA,kEACA,YACA,wBACA,4BACA,yCACA,SACA,oBACA,4CACA,OACA,IACA,IACA,MAIA,uDACA,8CACA,sBACA,0DACA,IACA,yCACA,wBACA,mDACA,4BACA,mCACA,mBACA,gBACA,IACA,yCACA,qEACA,yBACA,uBACA,qBACA,oBACA,2BACA,+BACA,uDACA,iCACA,8FACA,IACA,8BACA,oBACA,+DACA,wEACA,4CACA,eACA,IACA,0BACA,OACA,IACA,qBACA,gBACA,IACA,MAIA,gDACA,8CACA,gCACA,8DACA,eACA,wBACA,4BACA,yCACA,sBACA,SACA,oBACA,mDACA,OACA,IACA,YACA,IACA,MAIA,mDACA,8CACA,0CACA,kEACA,4DACA,gCACA,wBACA,WACA,oCACA,kBACA,kEACA,IACA,kBACA,IACA,yBACA,mDACA,IACA,gBACA,IACA,MAIA,wDACA,8CACA,0CACA,yGACA,kEACA,+BACA,wBACA,WACA,mCACA,eACA,kEACA,IACA,kBACA,IACA,wBACA,mDACA,IACA,gBACA,IACA,MAIA,iDACA,8CACA,+BACA,6DACA,wBACA,4BACA,+DACA,kCACA,iDACA,eACA,IACA,IACA,gBACA,IACA,MAEA,gBACA,oCACA,8CAEA,wCACA,2BACA,IAEA,0CACA,mBACA,kDACA,4CACA,sBACA,yBACA,sBACA,aACA,IACA,IACA,uBACA,IACA,eACA,KACA,QAEA,2DACA,8CACA,eACA,gBACA,0CACA,wFACA,IACA,wBACA,IACA,MACA,KAQJmkF,EAAYvkF,UAAUuwJ,WAAa,SAAU9sE,GAC3C,IACI4tE,EADAN,EAAkBj8I,KAGtBu8I,EAAU,SAAUjvJ,GAElB,OADAA,EAAQwuE,OAAOxuE,GACX2uJ,EAAgBmB,iBAElBp9I,KAAKxV,KAAO8C,EACL0S,MAGA1S,GAGX0S,KAAKsgJ,OAAStgJ,KAAKsvE,qBAAqBitE,GAAS,GACjDv8I,KAA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B37B,sBAAuB,KAEzBvlI,KAAMwW,IAAa+rG,kBACnB/tB,MAAO,CAACv9D,IAAa6V,QAAS7V,IAAayqI,UAE7C,CACE57J,KAAME,IAAS0gB,SACf8+G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAa85C,iBACnBkkC,MAAO,CAACv9D,IAAa6V,QAAS7V,IAAayqI,UAE7C,CACE57J,KAAME,IAAS0gB,SACf1mB,KAAMwW,IAAamrJ,eACnBntE,MAAO,CAACv9D,IAAayqI,UAEvB,CACE57J,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAay6C,yBACnBujC,MAAO,CAACv9D,IAAa6V,QAAS7V,IAAamqI,YAC3CC,iBAAkB,EAClBC,iBAAkB,GAEpB,CACEx7J,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,OAEzBvlI,KAAMwW,IAAaw8B,wBACnBwhD,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACfzmB,KAAMwW,IAAag/B,YACnBg/C,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAaorJ,2BACnBptE,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACfzmB,KAAMwW,IAAaqrJ,iBACnBrtE,MAAO,CAACv9D,IAAayqI,UAEvB,CACE57J,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,KAEzBvlI,KAAMwW,IAAa8lH,iBACnB9nC,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACfzmB,KAAMwW,IAAa86C,mBACnBkjC,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAao9B,kBACnB4gD,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAa+5C,2BACnBikC,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACfyyF,QAAS,EACTlrD,SAAU,EACVhuD,KAAMwW,IAAammH,gBACnBnoC,MAAO,CAACv9D,IAAakqI,MAEvB,CACEr7J,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,EACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAa+6C,iBACnBijC,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,OAEzBvlI,KAAMwW,IAAak8B,iBACnB8hD,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAASygB,SACfzmB,KAAMwW,IAAai/B,YACnB++C,MAAO,CAACv9D,IAAa6V,QAAS7V,IAAayqI,UAE7C,CACE57J,KAAME,IAASygB,SACfunC,SAAU,GACVkrD,QAAS,GACTl5G,KAAMwW,IAAaqmH,sBACnBroC,MAAO,CAACv9D,IAAakqI,MAEvB,CACEr7J,KAAME,IAASygB,SACfunC,SAAU,EACVkrD,QAAS,EACTl5G,KAAMwW,IAAawiB,0BACnBw7D,MAAO,CAACv9D,IAAasqI,aAEvB,CACEz7J,KAAME,IAASygB,SACf++G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,KAEzBvlI,KAAMwW,IAAag6C,wBACnBgkC,MAAO,CAACv9D,IAAa6V,UAEvB,CACEhnC,KAAME,IAAS4gB,SACf4+G,iBAAkB,CAChB07B,kBAAmB,GACnB37B,sBAAuB,MAEzBvlI,KAAMwW,IAAa26C,iBACnBqjC,MAAO,CAACv9D,IAAa6V,QAAS7V,IAAamqI,YAC3CC,iBAAkB,IAClBC,iBAAkB,GAEpB,CACEx7J,KAAME,IAAS4gB,SACf4+G,iBAAkB,CAChB07B,kBAA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CA,qFACA,wGACA,qFACA,uFACA,8GACA,8EACA,sCACA,qDACA,6GACA,iHACA,8CACC,iBAAgBxpL,EAAK,SAASA,EAAK,SACpC,6EACA,8CACAmR,KAAK,MAETuoC,WAAY,EACZ2qB,IAAK,IAqHI,CAnHO,CACZ,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SA4FG1/C,KAAK,IAAM1a,KAAKC,SAAW,IAC3BrG,MAAM,EAAG,GACTsN,KAAK,IA5FG,CACX,YACA,YACA,UACA,WACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,UACA,YACA,WACA,YACA,WACA,WACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACA,UACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,YACA,UACA,UACA,WACA,aAOKwT,KAAK,IAAM1a,KAAKC,SAAW,IAAK,IAGzC7H,KAAM,iCACNmiE,SAAU,GACVF,OAAQ,CAACklH,EAAgB9Q,KACvB,IAAKppK,MAAMC,QAAQi6K,GAAQ,MAAM,IAAI1gL,MAAM,kCAC3C,MAAM9I,EAAOwpL,EAUb,MAPe,IAAIxpL,EAAK,IACrBwuB,IAAI,CAACzJ,EAAGzkB,IACM,MAANykB,EACHA,EACAusD,OAAOykF,cAAehxI,EAAEkB,WAAW,GAAK,IAASjmB,EAAK,GAAGimB,WAAW3lB,EAAIN,EAAK,GAAGQ,SAAW,GAAM,KAEtG2Q,KAAK,MACUunK,M,6BCp2DxB,kCACA,MAAewW,EAWb35K,cACEC,KAAKxV,KAAO,GAIC,WACb,OAAOwV,K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YACA,cACA,aACA,uBACA,kBACA,cACA,UACA,WACA,YACA,aACA,eACA,mBACA,mBACA,iBACA,iBACA,kBAGIkpK,EAAkB,CACtB,mBACA,yBACA,mBACA,oBACA,sBACA,mBACA,cACA,YACA,gBACA,qBACA,WACA,qBACA,YACA,kBACA,mBACA,gCACA,sBACA,qBACA,qBACA,kBACA,oBACA,oBACA,oBACA,qBACA,mBACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,eACA,cACA,eACA,cACA,gBACA,cACA,eACA,mBACA,KACA,SACA,gBACA,kBACA,YACA,mBAGI53L,EAAQ,CACZ,sBACA,qBACA,qBACA,oBACA,eACA,mBACA,gBACA,oBACA,eACA,mBACA,iBACA,qBACA,eACA,mBACA,gBACA,oBACA,0BACA,kCACA,6BACA,8BACA,+BACA,mBACA,mBACA,kBACA,qBACA,mBACA,+BACA,gCACA,4BACA,mCAUW0zD,EAAa,KACxB,MAAMpzB,EAAO37B,YAAU,QACvB,IAAK27B,EAAM,MAAM,IAAIjkC,MAAM,gCAC3B,MAAM6gE,EAAiB,CACrB,CACE26H,QAAS,sBACTC,YAAa,kBACbtnB,OAAQ,2DACRunB,UAAW,IAEb,CACEF,QAAS,wBACTC,YAAa,oBACbtnB,OAAQ,uGACRunB,UAAW,IAEb,CACEF,QAAS,wBACTC,YAAa,oBACbtnB,OAAQ,qGACRunB,UAAW,IAEb,CACEF,QAAS,WACTC,YAAa,OACbtnB,OACE,iJACFunB,UAAW,IAEb,CACEF,QAAS,kBACTC,YAAa,cACbtnB,OAAQ,4FACRunB,UAAW,IAEb,CACEF,QAAS,mBACTC,YAAa,eACbtnB,OAAQ,8FACRunB,UAAW,IAEb,CACEF,QAAS,oBACTC,YAAa,gBACbtnB,OAAQ,8FACRunB,UAAW,IAEb,CACEF,QAAS,0BACTC,YAAa,sBACbtnB,OAAQ,2EACRunB,UAAW,KAIf,IAAK,MAAM5yL,KAAMupB,EACfwuC,EAAM7oE,KAAK,CACTwjM,QAAS,IAAIz0L,OAAQ,MAAK+B,EAAM,KAChCqrK,OAAS,MAAKrrK,iCAAk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A,OACA,SACA,WACA,YACA,OACA,OACA,YACA,YACA,OACA,QACA,UACA,YACA,WACA,aACA,YACA,OACA,WACA,WACA,SACA,MACA,WACA,UACA,SACA,gBACA,OACA,QACA,UACA,QACA,QACA,UACA,YACA,QACA,YACA,UACA,QACA,SACA,SACA,QACA,UACA,cACA,QACA,aACA,MACA,UACA,OACA,WACA,WACA,UACA,SACA,aACA,YACA,SACA,SACA,SACA,OACA,WACA,QACA,OACA,WACA,SACA,SACA,WACA,SACA,UACA,QACA,SACA,QACA,UACA,UACA,UACA,UACA,aACA,WACA,QACA,SACA,MACA,WACA,SACA,aACA,UACA,MACA,OACA,SACA,UACA,OACA,OACA,UACA,SACA,aACA,SACA,SACA,SACA,SACA,SACA,WACA,SACA,YACA,QACA,QACA,YACA,WACA,oBACA,WACA,OACA,UACA,cACA,UACA,SACA,UACA,gBACA,OACA,SACA,QACA,MACA,WACA,WACA,WACA,cACA,SACA,UACA,QACA,eACA,WACA,OACA,OACA,SACA,MACA,OACA,iBACA,WACA,UACA,UACA,UACA,iBACA,QACA,MACA,YACA,UACA,SACA,OACA,SACA,UACA,WACA,YACA,cACA,MACA,OACA,MACA,MACA,Q,6BCzTF,yIAmBA,MAAMF,EAKF,CACFnwH,QAAS,CAAEowH,MAAO,IAAMt9M,IAAK,EAAG2M,IAAK,GACrCwgF,OAAQ,CAAEmwH,MAAO,IAAMt9M,IAAK,EAAG2M,IAAK,GACpCygF,KAAM,CAAEkwH,MAAO,IAAMt9M,IAAK,EAAG2M,IAAK,GAClC0gF,WAAY,CAAEiwH,MAAO,KAAMt9M,IAAK,EAAG2M,IAAK,IAkCnC,SAAS6uM,EAAY1nM,GAC1B,MAAM+5B,EAAyB,CAAEyvK,MAAO,EAAGt9M,IAAK,EAAG2M,IAAK,GACxDmgF,YAAYuwH,EAAcvpM,EAAM+5B,WAAYA,GAC5C,MAAMyvK,EAAQzvK,EAAWyvK,OAClB9pI,EAAOuqI,GAAYlgK,mBAAS,KAC5B61B,GAAQ71B,mBApCjB,SAA0BhQ,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","file":"main.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1563,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { PlayerObject } from \"./PersonObjects/Player/PlayerObject\";\nimport { sanitizeExploits } from \"./Exploits/Exploit\";\n\nimport { Reviver } from \"./utils/JSONReviver\";\n\nexport let Player = new PlayerObject();\n\nexport function loadPlayer(saveString: string): void {\n Player = JSON.parse(saveString, Reviver);\n Player.money = parseFloat(Player.money + \"\");\n Player.exploits = sanitizeExploits(Player.exploits);\n}\n","import { NetscriptContext } from \"./APIWrapper\";\nimport { WorkerScript } from \"./WorkerScript\";\nimport { GetAllServers, GetServer } from \"../Server/AllServers\";\nimport { Player } from \"../Player\";\nimport { ScriptDeath } from \"./ScriptDeath\";\nimport { isString } from \"../utils/helpers/isString\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { ScriptArg } from \"./ScriptArg\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { BasicHGWOptions } from \"src/ScriptEditor/NetscriptDefinitions\";\nimport { Server } from \"../Server/Server\";\nimport {\n calculateHackingChance,\n calculateHackingExpGain,\n calculateHackingTime,\n calculatePercentMoneyHacked,\n} from \"../Hacking\";\nimport { netscriptCanHack } from \"../Hacking/netscriptCanHack\";\nimport { convertTimeMsToTimeElapsedString } from \"../utils/StringHelperFunctions\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { influenceStockThroughServerHack } from \"../StockMarket/PlayerInfluencing\";\nimport { IPort } from \"../NetscriptPort\";\nimport { NetscriptPorts } from \"../NetscriptWorker\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { FormulaGang } from \"../Gang/formulas/formulas\";\nimport { GangMember } from \"../Gang/GangMember\";\nimport { GangMemberTask } from \"../Gang/GangMemberTask\";\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { toNative } from \"../NetscriptFunctions/toNative\";\nimport { ScriptIdentifier } from \"./ScriptIdentifier\";\nimport { findRunningScript, findRunningScriptByPid } from \"../Script/ScriptHelpers\";\nimport { RunningScript as IRunningScript } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { arrayToString } from \"../utils/helpers/arrayToString\";\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport const helpers = {\n string,\n number,\n scriptArgs,\n argsToString,\n isScriptErrorMessage,\n makeRuntimeRejectMsg,\n makeRuntimeErrorMsg,\n resolveNetscriptRequestedThreads,\n checkEnvFlags,\n checkSingularityAccess,\n netscriptDelay,\n updateDynamicRam,\n city,\n getServer,\n scriptIdentifier,\n hack,\n getValidPort,\n player,\n server,\n gang,\n gangMember,\n gangTask,\n log,\n getFunctionNames,\n getRunningScript,\n getRunningScriptByArgs,\n getCannotFindRunningScriptErrorMessage,\n createPublicRunningScript,\n failOnHacknetServer,\n};\n\n/** Convert a provided value v for argument argName to string. If it wasn't originally a string or number, throw. */\nfunction string(ctx: NetscriptContext, argName: string, v: unknown): string {\n if (typeof v === \"string\") return v;\n if (typeof v === \"number\") return v + \"\"; // cast to string;\n throw makeRuntimeErrorMsg(ctx, `'${argName}' should be a string.`);\n}\n\n/** Convert provided value v for argument argName to number. Throw if could not convert to a non-NaN number. */\nfunction number(ctx: NetscriptContext, argName: string, v: unknown): number {\n if (typeof v === \"string\") {\n const x = parseFloat(v);\n if (!isNaN(x)) return x; // otherwise it wasn't even a string representing a number.\n } else if (typeof v === \"number\") {\n if (isNaN(v)) throw makeRuntimeErrorMsg(ctx, `'${argName}' is NaN.`);\n return v;\n }\n throw makeRuntimeErrorMsg(ctx, `'${argName}' should be a number.`);\n}\n\n/** Returns args back if it is a ScriptArg[]. Throws an error if it is not. */\nfunction scriptArgs(ctx: NetscriptContext, args: unknown) {\n if (!isScriptArgs(args)) throw makeRuntimeErrorMsg(ctx, \"'args' is not an array of script args\");\n return args;\n}\n\n/** Determines if the given msg string is an error created by makeRuntimeRejectMsg. */\nfunction isScriptErrorMessage(msg: string): boolean {\n if (!isString(msg)) {\n return false;\n }\n const splitMsg = msg.split(\"|DELIMITER|\");\n return splitMsg.length == 4;\n}\n\n/** Convert multiple arguments for tprint or print into a single string. */\nfunction argsToString(args: unknown[]): string {\n let out = \"\";\n for (let arg of args) {\n if (arg === null) {\n out += \"null\";\n continue;\n }\n if (arg === undefined) {\n out += \"undefined\";\n continue;\n }\n arg = toNative(arg);\n out += typeof arg === \"object\" ? JSON.stringify(arg) : `${arg}`;\n }\n\n return out;\n}\n\n/** Creates an error message string containing hostname, scriptname, and the error message msg */\nfunction makeRuntimeRejectMsg(workerScript: WorkerScript, msg: string): string {\n for (const scriptUrl of workerScript.scriptRef.dependencies) {\n msg = msg.replace(new RegExp(scriptUrl.url, \"g\"), scriptUrl.filename);\n }\n\n return \"|DELIMITER|\" + workerScript.hostname + \"|DELIMITER|\" + workerScript.name + \"|DELIMITER|\" + msg;\n}\n\n/** Creates an error message string with a stack trace. */\nfunction makeRuntimeErrorMsg(ctx: NetscriptContext, msg: string): string {\n const errstack = new Error().stack;\n if (errstack === undefined) throw new Error(\"how did we not throw an error?\");\n const stack = errstack.split(\"\\n\").slice(1);\n const workerScript = ctx.workerScript;\n const caller = ctx.function;\n const scripts = workerScript.getServer().scripts;\n const userstack = [];\n for (const stackline of stack) {\n let filename;\n for (const script of scripts) {\n if (script.url && stackline.includes(script.url)) {\n filename = script.filename;\n }\n for (const dependency of script.dependencies) {\n if (stackline.includes(dependency.url)) {\n filename = dependency.filename;\n }\n }\n }\n if (!filename) continue;\n\n interface ILine {\n line: string;\n func: string;\n }\n\n function parseChromeStackline(line: string): ILine | null {\n const lineRe = /.*:(\\d+):\\d+.*/;\n const funcRe = /.*at (.+) \\(.*/;\n\n const lineMatch = line.match(lineRe);\n const funcMatch = line.match(funcRe);\n if (lineMatch && funcMatch) {\n return { line: lineMatch[1], func: funcMatch[1] };\n }\n return null;\n }\n let call = { line: \"-1\", func: \"unknown\" };\n const chromeCall = parseChromeStackline(stackline);\n if (chromeCall) {\n call = chromeCall;\n }\n\n function parseFirefoxStackline(line: string): ILine | null {\n const lineRe = /.*:(\\d+):\\d+$/;\n const lineMatch = line.match(lineRe);\n\n const lio = line.lastIndexOf(\"@\");\n\n if (lineMatch && lio !== -1) {\n return { line: lineMatch[1], func: line.slice(0, lio) };\n }\n return null;\n }\n\n const firefoxCall = parseFirefoxStackline(stackline);\n if (firefoxCall) {\n call = firefoxCall;\n }\n\n userstack.push(`${filename}:L${call.line}@${call.func}`);\n }\n\n workerScript.log(caller, () => msg);\n let rejectMsg = `${caller}: ${msg}`;\n if (userstack.length !== 0) rejectMsg += `
Stack: ${userstack.join(\" \")}`;\n return makeRuntimeRejectMsg(workerScript, rejectMsg);\n}\n\n/** Validate requested number of threads for h/g/w options */\nfunction resolveNetscriptRequestedThreads(ctx: NetscriptContext, requestedThreads?: number): number {\n const threads = ctx.workerScript.scriptRef.threads;\n if (!requestedThreads) {\n return isNaN(threads) || threads < 1 ? 1 : threads;\n }\n const requestedThreadsAsInt = requestedThreads | 0;\n if (isNaN(requestedThreads) || requestedThreadsAsInt < 1) {\n throw makeRuntimeRejectMsg(\n ctx.workerScript,\n `Invalid thread count passed to ${ctx.function}: ${requestedThreads}. Threads must be a positive number.`,\n );\n }\n if (requestedThreadsAsInt > threads) {\n throw makeRuntimeRejectMsg(\n ctx.workerScript,\n `Too many threads requested by ${ctx.function}. Requested: ${requestedThreads}. Has: ${threads}.`,\n );\n }\n return requestedThreadsAsInt;\n}\n\n/** Validate singularity access by throwing an error if the player does not have access. */\nfunction checkSingularityAccess(ctx: NetscriptContext): void {\n if (Player.bitNodeN !== 4 && Player.sourceFileLvl(4) === 0) {\n throw makeRuntimeErrorMsg(\n ctx,\n `This singularity function requires Source-File 4 to run. A power up you obtain later in the game.\n It will be very obvious when and how you can obtain it.`,\n );\n }\n}\n\n/** Create an error if a script is dead or if concurrent ns function calls are made */\nfunction checkEnvFlags(ctx: NetscriptContext): void {\n const ws = ctx.workerScript;\n if (ws.env.stopFlag) throw new ScriptDeath(ws);\n if (ws.env.runningFn && ctx.function !== \"asleep\") {\n ws.errorMessage = makeRuntimeRejectMsg(\n ws,\n `Concurrent calls to Netscript functions are not allowed!\n Did you forget to await hack(), grow(), or some other\n promise-returning function?\n Currently running: ${ws.env.runningFn} tried to run: ${ctx.function}`,\n );\n if (ws.delayReject) ws.delayReject(new ScriptDeath(ws));\n throw new ScriptDeath(ws); //No idea if this is the right thing to throw\n }\n}\n\n/** Set a timeout for performing a task, mark the script as busy in the meantime. */\nfunction netscriptDelay(ctx: NetscriptContext, time: number): Promise {\n const ws = ctx.workerScript;\n return new Promise(function (resolve, reject) {\n ws.delay = window.setTimeout(() => {\n ws.delay = null;\n ws.delayReject = undefined;\n ws.env.runningFn = \"\";\n if (ws.env.stopFlag) reject(new ScriptDeath(ws));\n else resolve();\n }, time);\n ws.delayReject = reject;\n ws.env.runningFn = ctx.function;\n });\n}\n\n/** Adds to dynamic ram cost when calling new ns functions from a script */\nfunction updateDynamicRam(ctx: NetscriptContext, ramCost: number): void {\n const ws = ctx.workerScript;\n const fnName = ctx.function;\n if (ws.dynamicLoadedFns[fnName]) return;\n ws.dynamicLoadedFns[fnName] = true;\n\n let threads = ws.scriptRef.threads;\n if (typeof threads !== \"number\") {\n console.warn(`WorkerScript detected NaN for threadcount for ${ws.name} on ${ws.hostname}`);\n threads = 1;\n }\n ws.dynamicRamUsage += ramCost;\n if (ws.dynamicRamUsage > 1.01 * ws.ramUsage) {\n ws.errorMessage = makeRuntimeRejectMsg(\n ws,\n `Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${fnName}.\n This is probably because you somehow circumvented the static RAM calculation.\n\n Threads: ${threads}\n Dynamic RAM Usage: ${numeralWrapper.formatRAM(ws.dynamicRamUsage)}\n Static RAM Usage: ${numeralWrapper.formatRAM(ws.ramUsage)}\n\n One of these could be the reason:\n * Using eval() to get a reference to a ns function\n const myScan = eval('ns.scan');\n\n * Using map access to do the same\n const myScan = ns['scan'];\n\n Sorry :(`,\n );\n }\n}\n\n/** Validates the input v as being a CityName. Throws an error if it is not. */\nfunction city(ctx: NetscriptContext, argName: string, v: unknown): CityName {\n if (typeof v !== \"string\") throw makeRuntimeErrorMsg(ctx, `${argName} should be a city name.`);\n const s = v as CityName;\n if (!Object.values(CityName).includes(s)) throw makeRuntimeErrorMsg(ctx, `${argName} should be a city name.`);\n return s;\n}\n\nfunction scriptIdentifier(\n ctx: NetscriptContext,\n scriptID: unknown,\n _hostname: unknown,\n _args: unknown,\n): ScriptIdentifier {\n const ws = ctx.workerScript;\n // Provide the pid for the current script if no identifier provided\n if (scriptID === undefined) return ws.pid;\n if (typeof scriptID === \"number\") return scriptID;\n if (typeof scriptID === \"string\") {\n const hostname = _hostname === undefined ? ctx.workerScript.hostname : string(ctx, \"hostname\", _hostname);\n const args = _args === undefined ? [] : scriptArgs(ctx, _args);\n return {\n scriptname: scriptID,\n hostname,\n args,\n };\n }\n throw new Error(\"not implemented\");\n}\n\n/**\n * Gets the Server for a specific hostname/ip, throwing an error\n * if the server doesn't exist.\n * @param {NetscriptContext} ctx - Context from which getServer is being called. For logging purposes.\n * @param {string} hostname - Hostname of the server\n * @returns {BaseServer} The specified server as a BaseServer\n */\nfunction getServer(ctx: NetscriptContext, hostname: string) {\n const server = GetServer(hostname);\n if (server == null) {\n const str = hostname === \"\" ? \"'' (empty string)\" : \"'\" + hostname + \"'\";\n throw makeRuntimeErrorMsg(ctx, `Invalid hostname: ${str}`);\n }\n return server;\n}\n\nfunction isScriptArgs(args: unknown): args is ScriptArg[] {\n const isScriptArg = (arg: unknown) => typeof arg === \"string\" || typeof arg === \"number\" || typeof arg === \"boolean\";\n return Array.isArray(args) && args.every(isScriptArg);\n}\n\nasync function hack(\n ctx: NetscriptContext,\n hostname: string,\n manual: boolean,\n { threads: requestedThreads, stock }: BasicHGWOptions = {},\n): Promise {\n const ws = ctx.workerScript;\n const threads = helpers.resolveNetscriptRequestedThreads(ctx, requestedThreads);\n const server = getServer(ctx, hostname);\n if (!(server instanceof Server)) {\n throw makeRuntimeErrorMsg(ctx, \"Cannot be executed on this server.\");\n }\n\n // Calculate the hacking time\n const hackingTime = calculateHackingTime(server, Player); // This is in seconds\n\n // No root access or skill level too low\n const canHack = netscriptCanHack(server, Player);\n if (!canHack.res) {\n throw makeRuntimeErrorMsg(ctx, canHack.msg || \"\");\n }\n\n log(\n ctx,\n () =>\n `Executing on '${server.hostname}' in ${convertTimeMsToTimeElapsedString(\n hackingTime * 1000,\n true,\n )} (t=${numeralWrapper.formatThreads(threads)})`,\n );\n\n return helpers.netscriptDelay(ctx, hackingTime * 1000).then(function () {\n const hackChance = calculateHackingChance(server, Player);\n const rand = Math.random();\n let expGainedOnSuccess = calculateHackingExpGain(server, Player) * threads;\n const expGainedOnFailure = expGainedOnSuccess / 4;\n if (rand < hackChance) {\n // Success!\n const percentHacked = calculatePercentMoneyHacked(server, Player);\n let maxThreadNeeded = Math.ceil(1 / percentHacked);\n if (isNaN(maxThreadNeeded)) {\n // Server has a 'max money' of 0 (probably). We'll set this to an arbitrarily large value\n maxThreadNeeded = 1e6;\n }\n\n let moneyDrained = Math.floor(server.moneyAvailable * percentHacked) * threads;\n\n // Over-the-top safety checks\n if (moneyDrained <= 0) {\n moneyDrained = 0;\n expGainedOnSuccess = expGainedOnFailure;\n }\n if (moneyDrained > server.moneyAvailable) {\n moneyDrained = server.moneyAvailable;\n }\n server.moneyAvailable -= moneyDrained;\n if (server.moneyAvailable < 0) {\n server.moneyAvailable = 0;\n }\n\n let moneyGained = moneyDrained * BitNodeMultipliers.ScriptHackMoneyGain;\n if (manual) {\n moneyGained = moneyDrained * BitNodeMultipliers.ManualHackMoney;\n }\n\n Player.gainMoney(moneyGained, \"hacking\");\n ws.scriptRef.onlineMoneyMade += moneyGained;\n Player.scriptProdSinceLastAug += moneyGained;\n ws.scriptRef.recordHack(server.hostname, moneyGained, threads);\n Player.gainHackingExp(expGainedOnSuccess);\n if (manual) Player.gainIntelligenceExp(0.005);\n ws.scriptRef.onlineExpGained += expGainedOnSuccess;\n log(\n ctx,\n () =>\n `Successfully hacked '${server.hostname}' for ${numeralWrapper.formatMoney(\n moneyGained,\n )} and ${numeralWrapper.formatExp(expGainedOnSuccess)} exp (t=${numeralWrapper.formatThreads(threads)})`,\n );\n server.fortify(CONSTANTS.ServerFortifyAmount * Math.min(threads, maxThreadNeeded));\n if (stock) {\n influenceStockThroughServerHack(server, moneyDrained);\n }\n if (manual) {\n server.backdoorInstalled = true;\n }\n return Promise.resolve(moneyGained);\n } else {\n // Player only gains 25% exp for failure?\n Player.gainHackingExp(expGainedOnFailure);\n ws.scriptRef.onlineExpGained += expGainedOnFailure;\n log(\n ctx,\n () =>\n `Failed to hack '${server.hostname}'. Gained ${numeralWrapper.formatExp(\n expGainedOnFailure,\n )} exp (t=${numeralWrapper.formatThreads(threads)})`,\n );\n return Promise.resolve(0);\n }\n });\n}\n\nfunction getValidPort(ctx: NetscriptContext, port: number): IPort {\n if (isNaN(port)) {\n throw makeRuntimeErrorMsg(\n ctx,\n `Invalid argument. Must be a port number between 1 and ${CONSTANTS.NumNetscriptPorts}, is ${port}`,\n );\n }\n port = Math.round(port);\n if (port < 1 || port > CONSTANTS.NumNetscriptPorts) {\n throw makeRuntimeErrorMsg(\n ctx,\n `Trying to use an invalid port: ${port}. Only ports 1-${CONSTANTS.NumNetscriptPorts} are valid.`,\n );\n }\n const iport = NetscriptPorts[port - 1];\n if (iport == null || !(iport instanceof Object)) {\n throw makeRuntimeErrorMsg(ctx, `Could not find port: ${port}. This is a bug. Report to dev.`);\n }\n return iport;\n}\n\nfunction player(ctx: NetscriptContext, p: unknown): IPlayer {\n const fakePlayer = {\n hp: undefined,\n mults: undefined,\n numPeopleKilled: undefined,\n money: undefined,\n city: undefined,\n location: undefined,\n bitNodeN: undefined,\n totalPlaytime: undefined,\n playtimeSinceLastAug: undefined,\n playtimeSinceLastBitnode: undefined,\n jobs: undefined,\n factions: undefined,\n tor: undefined,\n inBladeburner: undefined,\n hasCorporation: undefined,\n entropy: undefined,\n };\n if (!roughlyIs(fakePlayer, p)) throw makeRuntimeErrorMsg(ctx, `player should be a Player.`);\n return p as IPlayer;\n}\n\nfunction server(ctx: NetscriptContext, s: unknown): Server {\n if (!roughlyIs(new Server(), s)) throw makeRuntimeErrorMsg(ctx, `server should be a Server.`);\n return s as Server;\n}\n\nfunction roughlyIs(expect: object, actual: unknown): boolean {\n if (typeof actual !== \"object\" || actual == null) return false;\n const expects = Object.keys(expect);\n const actuals = Object.keys(actual);\n for (const expect of expects)\n if (!actuals.includes(expect)) {\n return false;\n }\n return true;\n}\n\nfunction gang(ctx: NetscriptContext, g: unknown): FormulaGang {\n if (!roughlyIs({ respect: 0, territory: 0, wantedLevel: 0 }, g))\n throw makeRuntimeErrorMsg(ctx, `gang should be a Gang.`);\n return g as FormulaGang;\n}\n\nfunction gangMember(ctx: NetscriptContext, m: unknown): GangMember {\n if (!roughlyIs(new GangMember(), m)) throw makeRuntimeErrorMsg(ctx, `member should be a GangMember.`);\n return m as GangMember;\n}\n\nfunction gangTask(ctx: NetscriptContext, t: unknown): GangMemberTask {\n if (!roughlyIs(new GangMemberTask(\"\", \"\", false, false, {}), t))\n throw makeRuntimeErrorMsg(ctx, `task should be a GangMemberTask.`);\n return t as GangMemberTask;\n}\n\nfunction log(ctx: NetscriptContext, message: () => string) {\n ctx.workerScript.log(ctx.functionPath, message);\n}\n\n/**\n * Searches for and returns the RunningScript object for the specified script.\n * If the 'fn' argument is not specified, this returns the current RunningScript.\n * @param {string} fn - Filename of script\n * @param {string} hostname - Hostname/ip of the server on which the script resides\n * @param {any[]} scriptArgs - Running script's arguments\n * @returns {RunningScript}\n * Running script identified by the parameters, or null if no such script\n * exists, or the current running script if the first argument 'fn'\n * is not specified.\n */\nfunction getRunningScriptByArgs(\n ctx: NetscriptContext,\n fn: string,\n hostname: string,\n scriptArgs: ScriptArg[],\n): RunningScript | null {\n if (!Array.isArray(scriptArgs)) {\n throw helpers.makeRuntimeRejectMsg(\n ctx.workerScript,\n `Invalid scriptArgs argument passed into getRunningScript() from ${ctx.function}(). ` +\n `This is probably a bug. Please report to game developer`,\n );\n }\n\n if (fn != null && typeof fn === \"string\") {\n // Get Logs of another script\n if (hostname == null) {\n hostname = ctx.workerScript.hostname;\n }\n const server = helpers.getServer(ctx, hostname);\n\n return findRunningScript(fn, scriptArgs, server);\n }\n\n // If no arguments are specified, return the current RunningScript\n return ctx.workerScript.scriptRef;\n}\n\n/** Provides an array of all function names on a nested object */\nfunction getFunctionNames(obj: object, prefix: string): string[] {\n const functionNames: string[] = [];\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"args\") {\n continue;\n } else if (typeof value == \"function\") {\n functionNames.push(prefix + key);\n } else if (typeof value == \"object\") {\n functionNames.push(...getFunctionNames(value, key + \".\"));\n }\n }\n return functionNames;\n}\n\nfunction getRunningScriptByPid(pid: number): RunningScript | null {\n for (const server of GetAllServers()) {\n const runningScript = findRunningScriptByPid(pid, server);\n if (runningScript) return runningScript;\n }\n return null;\n}\n\nfunction getRunningScript(ctx: NetscriptContext, ident: ScriptIdentifier): RunningScript | null {\n if (typeof ident === \"number\") {\n return getRunningScriptByPid(ident);\n } else {\n return getRunningScriptByArgs(ctx, ident.scriptname, ident.hostname, ident.args);\n }\n}\n\n/**\n * Helper function for getting the error log message when the user specifies\n * a nonexistent running script\n * @param {string} fn - Filename of script\n * @param {string} hostname - Hostname/ip of the server on which the script resides\n * @param {any[]} scriptArgs - Running script's arguments\n * @returns {string} Error message to print to logs\n */\nfunction getCannotFindRunningScriptErrorMessage(ident: ScriptIdentifier): string {\n if (typeof ident === \"number\") return `Cannot find running script with pid: ${ident}`;\n\n return `Cannot find running script ${ident.scriptname} on server ${ident.hostname} with args: ${arrayToString(\n ident.args,\n )}`;\n}\n\n/**\n * Sanitizes a `RunningScript` to remove sensitive information, making it suitable for\n * return through an NS function.\n * @see NS.getRecentScripts\n * @see NS.getRunningScript\n * @param runningScript Existing, internal RunningScript\n * @returns A sanitized, NS-facing copy of the RunningScript\n */\nfunction createPublicRunningScript(runningScript: RunningScript): IRunningScript {\n return {\n args: runningScript.args.slice(),\n filename: runningScript.filename,\n logs: runningScript.logs.slice(),\n offlineExpGained: runningScript.offlineExpGained,\n offlineMoneyMade: runningScript.offlineMoneyMade,\n offlineRunningTime: runningScript.offlineRunningTime,\n onlineExpGained: runningScript.onlineExpGained,\n onlineMoneyMade: runningScript.onlineMoneyMade,\n onlineRunningTime: runningScript.onlineRunningTime,\n pid: runningScript.pid,\n ramUsage: runningScript.ramUsage,\n server: runningScript.server,\n threads: runningScript.threads,\n };\n}\n\n/**\n * Used to fail a function if the function's target is a Hacknet Server.\n * This is used for functions that should run on normal Servers, but not Hacknet Servers\n * @param {Server} server - Target server\n * @param {string} callingFn - Name of calling function. For logging purposes\n * @returns {boolean} True if the server is a Hacknet Server, false otherwise\n */\nfunction failOnHacknetServer(ctx: NetscriptContext, server: BaseServer, callingFn = \"\"): boolean {\n if (server instanceof HacknetServer) {\n ctx.workerScript.log(callingFn, () => `Does not work on Hacknet Servers`);\n return true;\n } else {\n return false;\n }\n}\n","export enum FactionNames {\n Illuminati = \"Illuminati\",\n Daedalus = \"Daedalus\",\n TheCovenant = \"The Covenant\",\n ECorp = \"ECorp\",\n MegaCorp = \"MegaCorp\",\n BachmanAssociates = \"Bachman & Associates\",\n BladeIndustries = \"Blade Industries\",\n NWO = \"NWO\",\n ClarkeIncorporated = \"Clarke Incorporated\",\n OmniTekIncorporated = \"OmniTek Incorporated\",\n FourSigma = \"Four Sigma\",\n KuaiGongInternational = \"KuaiGong International\",\n FulcrumSecretTechnologies = \"Fulcrum Secret Technologies\",\n BitRunners = \"BitRunners\",\n TheBlackHand = \"The Black Hand\",\n NiteSec = \"NiteSec\",\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n SpeakersForTheDead = \"Speakers for the Dead\",\n TheDarkArmy = \"The Dark Army\",\n TheSyndicate = \"The Syndicate\",\n Silhouette = \"Silhouette\",\n Tetrads = \"Tetrads\",\n SlumSnakes = \"Slum Snakes\",\n Netburners = \"Netburners\",\n TianDiHui = \"Tian Di Hui\",\n CyberSec = \"CyberSec\",\n Bladeburners = \"Bladeburners\",\n ChurchOfTheMachineGod = \"Church of the Machine God\",\n ShadowsOfAnarchy = \"Shadows of Anarchy\",\n}\n","import { ISelfInitializer, ISelfLoading } from \"../types\";\nimport { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from \"./SettingEnums\";\nimport { defaultTheme, ITheme } from \"../Themes/Themes\";\nimport { defaultStyles } from \"../Themes/Styles\";\nimport { WordWrapOptions } from \"../ScriptEditor/ui/Options\";\nimport { OverviewSettings } from \"../ui/React/Overview\";\nimport { IStyleSettings } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { defaultMonacoTheme, IScriptEditorTheme } from \"../ScriptEditor/ui/themes\";\n\n/**\n * Represents the default settings the player could customize.\n */\ninterface IDefaultSettings {\n /**\n * How many servers per page\n */\n ActiveScriptsServerPageSize: number;\n /**\n * How many scripts per page\n */\n ActiveScriptsScriptPageSize: number;\n /**\n * How often the game should autosave the player's progress, in seconds.\n */\n AutosaveInterval: number;\n\n /**\n * How many milliseconds between execution points for Netscript 1 statements.\n */\n CodeInstructionRunTime: number;\n\n /**\n * Render city as list of buttons.\n */\n DisableASCIIArt: boolean;\n\n /**\n * Whether global keyboard shortcuts should be recognized throughout the game.\n */\n DisableHotkeys: boolean;\n\n /**\n * Whether text effects such as corruption should be visible.\n */\n DisableTextEffects: boolean;\n\n /**\n * Whether overview progress bars should be visible.\n */\n DisableOverviewProgressBars: boolean;\n\n /**\n * Enable bash hotkeys\n */\n EnableBashHotkeys: boolean;\n\n /**\n * Timestamps format\n */\n TimestampsFormat: string;\n\n /**\n * Locale used for display numbers\n */\n Locale: string;\n\n /**\n * Limit the number of recently killed script entries being tracked.\n */\n MaxRecentScriptsCapacity: number;\n\n /**\n * Limit the number of log entries for each script being executed on each server.\n */\n MaxLogCapacity: number;\n\n /**\n * Limit how many entries can be written to a Netscript Port before entries start to get pushed out.\n */\n MaxPortCapacity: number;\n\n /**\n * Limit the number of entries in the terminal.\n */\n MaxTerminalCapacity: number;\n\n /**\n * Save the game when you save any file.\n */\n SaveGameOnFileSave: boolean;\n\n /**\n * Whether the player should be asked to confirm purchasing each and every augmentation.\n */\n SuppressBuyAugmentationConfirmation: boolean;\n\n /**\n * Whether the user should be prompted to join each faction via a dialog box.\n */\n SuppressFactionInvites: boolean;\n\n /**\n * Whether the user should be shown a dialog box whenever they receive a new message file.\n */\n SuppressMessages: boolean;\n\n /**\n * Whether the user should be asked to confirm travelling between cities.\n */\n SuppressTravelConfirmation: boolean;\n\n /**\n * Whether the user should be displayed a popup message when his Bladeburner actions are cancelled.\n */\n SuppressBladeburnerPopup: boolean;\n\n /**\n * Whether the user should be displayed a popup message on stock market actions.\n */\n SuppressTIXPopup: boolean;\n\n /**\n * Whether the user should be displayed a toast alert when the game is saved.\n */\n SuppressSavedGameToast: boolean;\n\n /**\n * Whether the user should be displayed a toast warning when the autosave is disabled.\n */\n SuppressAutosaveDisabledWarnings: boolean;\n\n /*\n * Whether the game should skip saving the running scripts for late game\n */\n ExcludeRunningScriptsFromSave: boolean;\n\n /*\n * Theme colors\n */\n theme: ITheme;\n\n /*\n * Interface styles\n */\n styles: IStyleSettings;\n\n /*\n * Use GiB instead of GB\n */\n UseIEC60027_2: boolean;\n\n /*\n * Character overview settings\n */\n overview: OverviewSettings;\n\n /**\n * If the game's sidebar is opened\n */\n IsSidebarOpened: boolean;\n\n /**\n * Script editor theme data\n */\n EditorTheme: IScriptEditorTheme;\n}\n\n/**\n * Represents all possible settings the player wants to customize to their play style.\n */\ninterface ISettings extends IDefaultSettings {\n /**\n * What order the player's owned Augmentations/Source Files should be displayed in\n */\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting;\n\n /**\n * What order the Augmentations should be displayed in when purchasing from a Faction\n */\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting;\n\n MonacoTheme: string;\n\n MonacoInsertSpaces: boolean;\n\n MonacoFontSize: number;\n\n MonacoVim: boolean;\n\n MonacoWordWrap: WordWrapOptions;\n}\n\nexport const defaultSettings: IDefaultSettings = {\n ActiveScriptsServerPageSize: 10,\n ActiveScriptsScriptPageSize: 10,\n AutosaveInterval: 60,\n CodeInstructionRunTime: 50,\n DisableASCIIArt: false,\n DisableHotkeys: false,\n DisableTextEffects: false,\n DisableOverviewProgressBars: false,\n EnableBashHotkeys: false,\n TimestampsFormat: \"\",\n Locale: \"en\",\n MaxRecentScriptsCapacity: 50,\n MaxLogCapacity: 50,\n MaxPortCapacity: 50,\n MaxTerminalCapacity: 500,\n SaveGameOnFileSave: true,\n SuppressBuyAugmentationConfirmation: false,\n SuppressFactionInvites: false,\n SuppressMessages: false,\n SuppressTravelConfirmation: false,\n SuppressBladeburnerPopup: false,\n SuppressTIXPopup: false,\n SuppressSavedGameToast: false,\n SuppressAutosaveDisabledWarnings: false,\n UseIEC60027_2: false,\n ExcludeRunningScriptsFromSave: false,\n IsSidebarOpened: true,\n\n theme: defaultTheme,\n styles: defaultStyles,\n overview: { x: 0, y: 0, opened: true },\n\n EditorTheme: defaultMonacoTheme,\n};\n\n/**\n * The current options the player has customized to their play style.\n */\n// tslint:disable-next-line:variable-name\nexport const Settings: ISettings & ISelfInitializer & ISelfLoading = {\n ActiveScriptsServerPageSize: defaultSettings.ActiveScriptsServerPageSize,\n ActiveScriptsScriptPageSize: defaultSettings.ActiveScriptsScriptPageSize,\n AutosaveInterval: defaultSettings.AutosaveInterval,\n CodeInstructionRunTime: 25,\n DisableASCIIArt: defaultSettings.DisableASCIIArt,\n DisableHotkeys: defaultSettings.DisableHotkeys,\n DisableTextEffects: defaultSettings.DisableTextEffects,\n DisableOverviewProgressBars: defaultSettings.DisableOverviewProgressBars,\n EnableBashHotkeys: defaultSettings.EnableBashHotkeys,\n TimestampsFormat: defaultSettings.TimestampsFormat,\n Locale: \"en\",\n MaxRecentScriptsCapacity: defaultSettings.MaxRecentScriptsCapacity,\n MaxLogCapacity: defaultSettings.MaxLogCapacity,\n MaxPortCapacity: defaultSettings.MaxPortCapacity,\n MaxTerminalCapacity: defaultSettings.MaxTerminalCapacity,\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting.AcquirementTime,\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting.Default,\n SaveGameOnFileSave: defaultSettings.SaveGameOnFileSave,\n SuppressBuyAugmentationConfirmation: defaultSettings.SuppressBuyAugmentationConfirmation,\n SuppressFactionInvites: defaultSettings.SuppressFactionInvites,\n SuppressMessages: defaultSettings.SuppressMessages,\n SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,\n SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,\n SuppressTIXPopup: defaultSettings.SuppressTIXPopup,\n SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,\n SuppressAutosaveDisabledWarnings: defaultSettings.SuppressAutosaveDisabledWarnings,\n UseIEC60027_2: defaultSettings.UseIEC60027_2,\n ExcludeRunningScriptsFromSave: defaultSettings.ExcludeRunningScriptsFromSave,\n IsSidebarOpened: defaultSettings.IsSidebarOpened,\n\n MonacoTheme: \"monokai\",\n MonacoInsertSpaces: false,\n MonacoFontSize: 20,\n MonacoVim: false,\n MonacoWordWrap: \"off\",\n\n theme: { ...defaultTheme },\n styles: { ...defaultStyles },\n overview: defaultSettings.overview,\n EditorTheme: { ...defaultMonacoTheme },\n init() {\n Object.assign(Settings, defaultSettings);\n },\n load(saveString: string) {\n const save = JSON.parse(saveString);\n Object.assign(Settings.theme, save.theme);\n delete save.theme;\n Object.assign(Settings.styles, save.styles);\n delete save.styles;\n Object.assign(Settings.overview, save.overview);\n delete save.overview;\n Object.assign(Settings.EditorTheme, save.EditorTheme);\n delete save.EditorTheme;\n Object.assign(Settings, save);\n },\n};\n","import numeral from \"numeral\";\nimport \"numeral/locales/bg\";\nimport \"numeral/locales/cs\";\nimport \"numeral/locales/da-dk\";\nimport \"numeral/locales/de\";\nimport \"numeral/locales/en-au\";\nimport \"numeral/locales/en-gb\";\nimport \"numeral/locales/es\";\nimport \"numeral/locales/fr\";\nimport \"numeral/locales/hu\";\nimport \"numeral/locales/it\";\nimport \"numeral/locales/lv\";\nimport \"numeral/locales/no\";\nimport \"numeral/locales/pl\";\nimport \"numeral/locales/ru\";\n\nimport { Settings } from \"../Settings/Settings\";\n\nconst extraFormats = [1e15, 1e18, 1e21, 1e24, 1e27, 1e30];\nconst extraNotations = [\"q\", \"Q\", \"s\", \"S\", \"o\", \"n\"];\nconst gigaMultiplier = { standard: 1e9, iec60027_2: 2 ** 30 };\n\nclass NumeralFormatter {\n // Default Locale\n defaultLocale = \"en\";\n\n constructor() {\n this.defaultLocale = \"en\";\n }\n\n updateLocale(l: string): boolean {\n if (numeral.locale(l) == null) {\n console.warn(`Invalid locale for numeral: ${l}`);\n\n numeral.locale(this.defaultLocale);\n return false;\n }\n return true;\n }\n\n format(n: number, format: string): string {\n // numeraljs doesnt properly format numbers that are too big or too small\n if (Math.abs(n) < 1e-6) {\n n = 0;\n }\n const answer = numeral(n).format(format);\n if (answer === \"NaN\") {\n return `${n}`;\n }\n return answer;\n }\n\n formatBigNumber(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n // TODO: leverage numeral.js to do it. This function also implies you can\n // use this format in some text field but you can't. ( \"1t\" will parse but\n // \"1s\" will not)\n formatReallyBigNumber(n: number, decimalPlaces = 3): string {\n const nAbs = Math.abs(n);\n if (n === Infinity) return \"∞\";\n for (let i = 0; i < extraFormats.length; i++) {\n if (extraFormats[i] < nAbs && nAbs <= extraFormats[i] * 1000) {\n return this.format(n / extraFormats[i], \"0.\" + \"0\".repeat(decimalPlaces)) + extraNotations[i];\n }\n }\n if (nAbs < 1000) {\n return this.format(n, \"0.\" + \"0\".repeat(decimalPlaces));\n }\n const str = this.format(n, \"0.\" + \"0\".repeat(decimalPlaces) + \"a\");\n if (str === \"NaNt\") return this.format(n, \"0.\" + \" \".repeat(decimalPlaces) + \"e+0\");\n return str;\n }\n\n formatHp(n: number): string {\n if (n < 1e6) {\n return this.format(n, \"0,0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatMoney(n: number): string {\n return \"$\" + this.formatReallyBigNumber(n);\n }\n\n formatSkill(n: number): string {\n if (n < 1e15) {\n return this.format(n, \"0,0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatExp(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatHashes(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatReputation(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatFavor(n: number): string {\n return this.format(n, \"0,0\");\n }\n\n formatSecurity(n: number): string {\n return n.toFixed(3);\n }\n\n formatRAM(n: number): string {\n if (Settings.UseIEC60027_2) {\n return this.format(n * gigaMultiplier.iec60027_2, \"0.00ib\");\n }\n return this.format(n * gigaMultiplier.standard, \"0.00b\");\n }\n\n formatPercentage(n: number, decimalPlaces = 2): string {\n const formatter: string = \"0.\" + \"0\".repeat(decimalPlaces) + \"%\";\n return this.format(n, formatter);\n }\n\n formatServerSecurity(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatRespect(n: number): string {\n return this.formatReallyBigNumber(n, 5);\n }\n\n formatWanted(n: number): string {\n return this.formatReallyBigNumber(n, 5);\n }\n\n formatMultiplier(n: number): string {\n return this.format(n, \"0,0.00\");\n }\n\n formatSleeveShock(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatSleeveSynchro(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatSleeveMemory(n: number): string {\n return this.format(n, \"0\");\n }\n\n formatPopulation(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStamina(n: number): string {\n return this.format(n, \"0.0\");\n }\n\n formatShares(n: number): string {\n if (n < 1000) {\n return this.format(n, \"0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatInfiltrationSecurity(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatThreads(n: number): string {\n return this.format(n, \"0,0\");\n }\n\n formatStaneksGiftHeat(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStaneksGiftCharge(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStaneksGiftPower(n: number): string {\n return this.format(n, \"0.00\");\n }\n\n parseCustomLargeNumber(str: string): number {\n const numericRegExp = new RegExp(\"^(-?\\\\d+\\\\.?\\\\d*)([\" + extraNotations.join(\"\") + \"]?)$\");\n const match = str.match(numericRegExp);\n if (match == null) {\n return NaN;\n }\n const [, number, notation] = match;\n const notationIndex = extraNotations.indexOf(notation);\n if (notationIndex === -1) {\n return NaN;\n }\n return parseFloat(number) * extraFormats[notationIndex];\n }\n\n largestAbsoluteNumber(n1: number, n2 = 0, n3 = 0): number {\n if (isNaN(n1)) n1 = 0;\n if (isNaN(n2)) n2 = 0;\n if (isNaN(n3)) n3 = 0;\n const largestAbsolute = Math.max(Math.abs(n1), Math.abs(n2), Math.abs(n3));\n switch (largestAbsolute) {\n case Math.abs(n1):\n return n1;\n case Math.abs(n2):\n return n2;\n case Math.abs(n3):\n return n3;\n }\n return 0;\n }\n\n parseMoney(s: string): number {\n // numeral library does not handle formats like 1s (returns 1) and 1e10 (returns 110) well,\n // so if more then 1 return a valid number, return the one farthest from 0\n const numeralValue = numeral(s).value();\n const parsed = parseFloat(s);\n const selfParsed = this.parseCustomLargeNumber(s);\n // Check for one or more NaN values\n if (isNaN(parsed) && isNaN(selfParsed)) {\n if (numeralValue === null) {\n // 3x NaN\n return NaN;\n }\n // 2x NaN\n return numeralValue;\n } else if (numeralValue === null && isNaN(selfParsed)) {\n // 2x NaN\n return parsed;\n } else if (isNaN(parsed)) {\n if (numeralValue === null) {\n // 2x NaN\n return selfParsed;\n }\n // 1x NaN\n return this.largestAbsoluteNumber(numeralValue, selfParsed);\n } else if (numeralValue === null) {\n // 1x NaN\n return this.largestAbsoluteNumber(parsed, selfParsed);\n } else if (isNaN(selfParsed)) {\n // 1x NaN\n return this.largestAbsoluteNumber(numeralValue, parsed);\n } else {\n // no NaN\n return this.largestAbsoluteNumber(numeralValue, parsed, selfParsed);\n }\n }\n}\n\nexport const numeralWrapper = new NumeralFormatter();\n","/**\n * Names of all locations\n */\nexport enum LocationName {\n // Aevum Locations\n AevumAeroCorp = \"AeroCorp\",\n AevumBachmanAndAssociates = \"Bachman & Associates\",\n AevumClarkeIncorporated = \"Clarke Incorporated\",\n AevumCrushFitnessGym = \"Crush Fitness Gym\",\n AevumECorp = \"ECorp\",\n AevumFulcrumTechnologies = \"Fulcrum Technologies\",\n AevumGalacticCybersystems = \"Galactic Cybersystems\",\n AevumNetLinkTechnologies = \"NetLink Technologies\",\n AevumPolice = \"Aevum Police Headquarters\",\n AevumRhoConstruction = \"Rho Construction\",\n AevumSnapFitnessGym = \"Snap Fitness Gym\",\n AevumSummitUniversity = \"Summit University\",\n AevumWatchdogSecurity = \"Watchdog Security\",\n AevumCasino = \"Iker Molina Casino\",\n\n // Chongqing locations\n ChongqingKuaiGongInternational = \"KuaiGong International\",\n ChongqingSolarisSpaceSystems = \"Solaris Space Systems\",\n ChongqingChurchOfTheMachineGod = \"Church of the Machine God\",\n\n // Sector 12\n Sector12AlphaEnterprises = \"Alpha Enterprises\",\n Sector12BladeIndustries = \"Blade Industries\",\n Sector12CIA = \"Central Intelligence Agency\",\n Sector12CarmichaelSecurity = \"Carmichael Security\",\n Sector12CityHall = \"Sector-12 City Hall\",\n Sector12DeltaOne = \"DeltaOne\",\n Sector12FoodNStuff = \"FoodNStuff\",\n Sector12FourSigma = \"Four Sigma\",\n Sector12IcarusMicrosystems = \"Icarus Microsystems\",\n Sector12IronGym = \"Iron Gym\",\n Sector12JoesGuns = \"Joe's Guns\",\n Sector12MegaCorp = \"MegaCorp\",\n Sector12NSA = \"National Security Agency\",\n Sector12PowerhouseGym = \"Powerhouse Gym\",\n Sector12RothmanUniversity = \"Rothman University\",\n Sector12UniversalEnergy = \"Universal Energy\",\n\n // New Tokyo\n NewTokyoDefComm = \"DefComm\",\n NewTokyoGlobalPharmaceuticals = \"Global Pharmaceuticals\",\n NewTokyoNoodleBar = \"Noodle Bar\",\n NewTokyoVitaLife = \"VitaLife\",\n NewTokyoArcade = \"Arcade\",\n\n // Ishima\n IshimaNovaMedical = \"Nova Medical\",\n IshimaOmegaSoftware = \"Omega Software\",\n IshimaStormTechnologies = \"Storm Technologies\",\n IshimaGlitch = \"0x6C1\",\n\n // Volhaven\n VolhavenCompuTek = \"CompuTek\",\n VolhavenHeliosLabs = \"Helios Labs\",\n VolhavenLexoCorp = \"LexoCorp\",\n VolhavenMilleniumFitnessGym = \"Millenium Fitness Gym\",\n VolhavenNWO = \"NWO\",\n VolhavenOmniTekIncorporated = \"OmniTek Incorporated\",\n VolhavenOmniaCybersystems = \"Omnia Cybersystems\",\n VolhavenSysCoreSecurities = \"SysCore Securities\",\n VolhavenZBInstituteOfTechnology = \"ZB Institute of Technology\",\n\n // Generic locations\n Hospital = \"Hospital\",\n Slums = \"The Slums\",\n TravelAgency = \"Travel Agency\",\n WorldStockExchange = \"World Stock Exchange\",\n\n // Default name for Location objects\n Void = \"The Void\",\n}\n","export enum AugmentationNames {\n Targeting1 = \"Augmented Targeting I\",\n Targeting2 = \"Augmented Targeting II\",\n Targeting3 = \"Augmented Targeting III\",\n SyntheticHeart = \"Synthetic Heart\",\n SynfibrilMuscle = \"Synfibril Muscle\",\n CombatRib1 = \"Combat Rib I\",\n CombatRib2 = \"Combat Rib II\",\n CombatRib3 = \"Combat Rib III\",\n NanofiberWeave = \"Nanofiber Weave\",\n SubdermalArmor = \"NEMEAN Subdermal Weave\",\n WiredReflexes = \"Wired Reflexes\",\n GrapheneBoneLacings = \"Graphene Bone Lacings\",\n BionicSpine = \"Bionic Spine\",\n GrapheneBionicSpine = \"Graphene Bionic Spine Upgrade\",\n BionicLegs = \"Bionic Legs\",\n GrapheneBionicLegs = \"Graphene Bionic Legs Upgrade\",\n SpeechProcessor = \"Speech Processor Implant\",\n TITN41Injection = \"TITN-41 Gene-Modification Injection\",\n EnhancedSocialInteractionImplant = \"Enhanced Social Interaction Implant\",\n BitWire = \"BitWire\",\n ArtificialBioNeuralNetwork = \"Artificial Bio-neural Network Implant\",\n ArtificialSynapticPotentiation = \"Artificial Synaptic Potentiation\",\n EnhancedMyelinSheathing = \"Enhanced Myelin Sheathing\",\n SynapticEnhancement = \"Synaptic Enhancement Implant\",\n NeuralRetentionEnhancement = \"Neural-Retention Enhancement\",\n DataJack = \"DataJack\",\n ENM = \"Embedded Netburner Module\",\n ENMCore = \"Embedded Netburner Module Core Implant\",\n ENMCoreV2 = \"Embedded Netburner Module Core V2 Upgrade\",\n ENMCoreV3 = \"Embedded Netburner Module Core V3 Upgrade\",\n ENMAnalyzeEngine = \"Embedded Netburner Module Analyze Engine\",\n ENMDMA = \"Embedded Netburner Module Direct Memory Access Upgrade\",\n Neuralstimulator = \"Neuralstimulator\",\n NeuralAccelerator = \"Neural Accelerator\",\n CranialSignalProcessorsG1 = \"Cranial Signal Processors - Gen I\",\n CranialSignalProcessorsG2 = \"Cranial Signal Processors - Gen II\",\n CranialSignalProcessorsG3 = \"Cranial Signal Processors - Gen III\",\n CranialSignalProcessorsG4 = \"Cranial Signal Processors - Gen IV\",\n CranialSignalProcessorsG5 = \"Cranial Signal Processors - Gen V\",\n NeuronalDensification = \"Neuronal Densification\",\n NeuroreceptorManager = \"Neuroreceptor Management Implant\",\n NuoptimalInjectorImplant = \"Nuoptimal Nootropic Injector Implant\",\n SpeechEnhancement = \"Speech Enhancement\",\n FocusWire = \"FocusWire\",\n PCDNI = \"PC Direct-Neural Interface\",\n PCDNIOptimizer = \"PC Direct-Neural Interface Optimization Submodule\",\n PCDNINeuralNetwork = \"PC Direct-Neural Interface NeuroNet Injector\",\n PCMatrix = \"PCMatrix\",\n ADRPheromone1 = \"ADR-V1 Pheromone Gene\",\n ADRPheromone2 = \"ADR-V2 Pheromone Gene\",\n ShadowsSimulacrum = \"The Shadow's Simulacrum\",\n HacknetNodeCPUUpload = \"Hacknet Node CPU Architecture Neural-Upload\",\n HacknetNodeCacheUpload = \"Hacknet Node Cache Architecture Neural-Upload\",\n HacknetNodeNICUpload = \"Hacknet Node NIC Architecture Neural-Upload\",\n HacknetNodeKernelDNI = \"Hacknet Node Kernel Direct-Neural Interface\",\n HacknetNodeCoreDNI = \"Hacknet Node Core Direct-Neural Interface\",\n NeuroFluxGovernor = \"NeuroFlux Governor\",\n Neurotrainer1 = \"Neurotrainer I\",\n Neurotrainer2 = \"Neurotrainer II\",\n Neurotrainer3 = \"Neurotrainer III\",\n Hypersight = \"HyperSight Corneal Implant\",\n LuminCloaking1 = \"LuminCloaking-V1 Skin Implant\",\n LuminCloaking2 = \"LuminCloaking-V2 Skin Implant\",\n HemoRecirculator = \"HemoRecirculator\",\n SmartSonar = \"SmartSonar Implant\",\n PowerRecirculator = \"Power Recirculation Core\",\n QLink = \"QLink\",\n TheRedPill = \"The Red Pill\",\n SPTN97 = \"SPTN-97 Gene Modification\",\n HiveMind = \"ECorp HVMind Implant\",\n CordiARCReactor = \"CordiARC Fusion Reactor\",\n SmartJaw = \"SmartJaw\",\n Neotra = \"Neotra\",\n Xanipher = \"Xanipher\",\n nextSENS = \"nextSENS Gene Modification\",\n OmniTekInfoLoad = \"OmniTek InfoLoad\",\n PhotosyntheticCells = \"Photosynthetic Cells\",\n Neurolink = \"BitRunners Neurolink\",\n TheBlackHand = \"The Black Hand\",\n UnstableCircadianModulator = \"Unstable Circadian Modulator\",\n CRTX42AA = \"CRTX42-AA Gene Modification\",\n Neuregen = \"Neuregen Gene Modification\",\n CashRoot = \"CashRoot Starter Kit\",\n NutriGen = \"NutriGen Implant\",\n INFRARet = \"INFRARET Enhancement\",\n DermaForce = \"DermaForce Particle Barrier\",\n GrapheneBrachiBlades = \"Graphene BrachiBlades Upgrade\",\n GrapheneBionicArms = \"Graphene Bionic Arms Upgrade\",\n BrachiBlades = \"BrachiBlades\",\n BionicArms = \"Bionic Arms\",\n SNA = \"Social Negotiation Assistant (S.N.A)\",\n HydroflameLeftArm = \"Hydroflame Left Arm\",\n CongruityImplant = \"nickofolas Congruity Implant\",\n EsperEyewear = \"EsperTech Bladeburner Eyewear\",\n EMS4Recombination = \"EMS-4 Recombination\",\n OrionShoulder = \"ORION-MKIV Shoulder\",\n HyperionV1 = \"Hyperion Plasma Cannon V1\",\n HyperionV2 = \"Hyperion Plasma Cannon V2\",\n GolemSerum = \"GOLEM Serum\",\n VangelisVirus = \"Vangelis Virus\",\n VangelisVirus3 = \"Vangelis Virus 3.0\",\n INTERLINKED = \"I.N.T.E.R.L.I.N.K.E.D\",\n BladeRunner = \"Blade's Runners\",\n BladeArmor = \"BLADE-51b Tesla Armor\",\n BladeArmorPowerCells = \"BLADE-51b Tesla Armor: Power Cells Upgrade\",\n BladeArmorEnergyShielding = \"BLADE-51b Tesla Armor: Energy Shielding Upgrade\",\n BladeArmorUnibeam = \"BLADE-51b Tesla Armor: Unibeam Upgrade\",\n BladeArmorOmnibeam = \"BLADE-51b Tesla Armor: Omnibeam Upgrade\",\n BladeArmorIPU = \"BLADE-51b Tesla Armor: IPU Upgrade\",\n BladesSimulacrum = \"The Blade's Simulacrum\",\n\n StaneksGift1 = \"Stanek's Gift - Genesis\",\n StaneksGift2 = \"Stanek's Gift - Awakening\",\n StaneksGift3 = \"Stanek's Gift - Serenity\",\n\n // Infiltrators MiniGames\n MightOfAres = \"SoA - Might of Ares\", // slash\n WisdomOfAthena = \"SoA - Wisdom of Athena\", // bracket\n TrickeryOfHermes = \"SoA - Trickery of Hermes\", // cheatcode\n BeautyOfAphrodite = \"SoA - Beauty of Aphrodite\", // bribe\n ChaosOfDionysus = \"SoA - Chaos of Dionysus\", // reverse\n FloodOfPoseidon = \"SoA - Flood of Poseidon\", // hex\n HuntOfArtemis = \"SoA - Hunt of Artemis\", // mine\n KnowledgeOfApollo = \"SoA - Knowledge of Apollo\", // wire\n WKSharmonizer = \"SoA - phyzical WKS harmonizer\",\n}\n","/**\n * Generic Game Constants\n *\n * Constants for specific mechanics or features will NOT be here.\n */\nexport const CONSTANTS: {\n VersionString: string;\n VersionNumber: number;\n _idleSpeed: number;\n MaxSkillLevel: number;\n MilliPerCycle: number;\n CorpFactionRepRequirement: number;\n BaseFocusBonus: number;\n BaseCostFor1GBOfRamHome: number;\n BaseCostFor1GBOfRamServer: number;\n TravelCost: number;\n BaseFavorToDonate: number;\n DonateMoneyToRepDivisor: number;\n FactionReputationToFavorBase: number;\n FactionReputationToFavorMult: number;\n CompanyReputationToFavorBase: number;\n CompanyReputationToFavorMult: number;\n NeuroFluxGovernorLevelMult: number;\n NumNetscriptPorts: number;\n HomeComputerMaxRam: number;\n ServerBaseGrowthRate: number;\n ServerMaxGrowthRate: number;\n ServerFortifyAmount: number;\n ServerWeakenAmount: number;\n PurchasedServerLimit: number;\n PurchasedServerMaxRam: number;\n MultipleAugMultiplier: number;\n TorRouterCost: number;\n WSEAccountCost: number;\n TIXAPICost: number;\n MarketData4SCost: number;\n MarketDataTixApi4SCost: number;\n StockMarketCommission: number;\n HospitalCostPerHp: number;\n IntelligenceCrimeWeight: number;\n IntelligenceInfiltrationWeight: number;\n IntelligenceCrimeBaseExpGain: number;\n IntelligenceProgramBaseExpGain: number;\n IntelligenceGraftBaseExpGain: number;\n IntelligenceTerminalHackBaseExpGain: number;\n IntelligenceSingFnBaseExpGain: number;\n IntelligenceClassBaseExpGain: number;\n MillisecondsPer20Hours: number;\n GameCyclesPer20Hours: number;\n MillisecondsPer10Hours: number;\n GameCyclesPer10Hours: number;\n MillisecondsPer8Hours: number;\n GameCyclesPer8Hours: number;\n MillisecondsPer4Hours: number;\n GameCyclesPer4Hours: number;\n MillisecondsPer2Hours: number;\n GameCyclesPer2Hours: number;\n MillisecondsPerHour: number;\n GameCyclesPerHour: number;\n MillisecondsPerHalfHour: number;\n GameCyclesPerHalfHour: number;\n MillisecondsPerQuarterHour: number;\n GameCyclesPerQuarterHour: number;\n MillisecondsPerFiveMinutes: number;\n GameCyclesPerFiveMinutes: number;\n ClassDataStructuresBaseCost: number;\n ClassNetworksBaseCost: number;\n ClassAlgorithmsBaseCost: number;\n ClassManagementBaseCost: number;\n ClassLeadershipBaseCost: number;\n ClassGymBaseCost: number;\n ClassStudyComputerScienceBaseExp: number;\n ClassDataStructuresBaseExp: number;\n ClassNetworksBaseExp: number;\n ClassAlgorithmsBaseExp: number;\n ClassManagementBaseExp: number;\n ClassLeadershipBaseExp: number;\n CodingContractBaseFactionRepGain: number;\n CodingContractBaseCompanyRepGain: number;\n CodingContractBaseMoneyGain: number;\n AugmentationGraftingCostMult: number;\n AugmentationGraftingTimeBase: number;\n SoACostMult: number;\n SoARepMult: number;\n EntropyEffect: number;\n TotalNumBitNodes: number;\n InfiniteLoopLimit: number;\n Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG\n LatestUpdate: string;\n} = {\n VersionString: \"2.0.2\",\n VersionNumber: 25,\n\n // Speed (in ms) at which the main loop is updated\n _idleSpeed: 200,\n\n /** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience\n * and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then\n * the player will have this level assuming no multipliers. Multipliers can cause skills to go above this.\n */\n MaxSkillLevel: 975,\n\n // Milliseconds per game cycle\n MilliPerCycle: 200,\n\n // How much reputation is needed to join a megacorporation's faction\n CorpFactionRepRequirement: 400e3,\n\n // Base RAM costs\n BaseCostFor1GBOfRamHome: 32000,\n BaseCostFor1GBOfRamServer: 55000, //1 GB of RAM\n\n // Cost to travel to another city\n TravelCost: 200e3,\n\n // Faction and Company favor-related things\n BaseFavorToDonate: 150,\n DonateMoneyToRepDivisor: 1e6,\n FactionReputationToFavorBase: 500,\n FactionReputationToFavorMult: 1.02,\n CompanyReputationToFavorBase: 500,\n CompanyReputationToFavorMult: 1.02,\n\n // NeuroFlux Governor Augmentation cost multiplier\n NeuroFluxGovernorLevelMult: 1.14,\n\n NumNetscriptPorts: 20,\n\n // Server-related constants\n HomeComputerMaxRam: 1073741824, // 2 ^ 30\n ServerBaseGrowthRate: 1.03, // Unadjusted Growth rate\n ServerMaxGrowthRate: 1.0035, // Maximum possible growth rate (max rate accounting for server security)\n ServerFortifyAmount: 0.002, // Amount by which server's security increases when its hacked/grown\n ServerWeakenAmount: 0.05, // Amount by which server's security decreases when weakened\n\n PurchasedServerLimit: 25,\n PurchasedServerMaxRam: 1048576, // 2^20\n\n // Augmentation Constants\n MultipleAugMultiplier: 1.9,\n\n // TOR Router\n TorRouterCost: 200e3,\n\n // Stock market\n WSEAccountCost: 200e6,\n TIXAPICost: 5e9,\n MarketData4SCost: 1e9,\n MarketDataTixApi4SCost: 25e9,\n StockMarketCommission: 100e3,\n\n // Hospital/Health\n HospitalCostPerHp: 100e3,\n\n // Intelligence-related constants\n IntelligenceCrimeWeight: 0.025, // Weight for how much int affects crime success rates\n IntelligenceInfiltrationWeight: 0.1, // Weight for how much int affects infiltration success rates\n IntelligenceCrimeBaseExpGain: 0.05,\n IntelligenceProgramBaseExpGain: 0.1, // Program required hack level divided by this to determine int exp gain\n IntelligenceGraftBaseExpGain: 0.05,\n IntelligenceTerminalHackBaseExpGain: 200, // Hacking exp divided by this to determine int exp gain\n IntelligenceSingFnBaseExpGain: 1.5,\n IntelligenceClassBaseExpGain: 0.01,\n\n // Time-related constants\n MillisecondsPer20Hours: 72000000,\n GameCyclesPer20Hours: 72000000 / 200,\n\n MillisecondsPer10Hours: 36000000,\n GameCyclesPer10Hours: 36000000 / 200,\n\n MillisecondsPer8Hours: 28800000,\n GameCyclesPer8Hours: 28800000 / 200,\n\n MillisecondsPer4Hours: 14400000,\n GameCyclesPer4Hours: 14400000 / 200,\n\n MillisecondsPer2Hours: 7200000,\n GameCyclesPer2Hours: 7200000 / 200,\n\n MillisecondsPerHour: 3600000,\n GameCyclesPerHour: 3600000 / 200,\n\n MillisecondsPerHalfHour: 1800000,\n GameCyclesPerHalfHour: 1800000 / 200,\n\n MillisecondsPerQuarterHour: 900000,\n GameCyclesPerQuarterHour: 900000 / 200,\n\n MillisecondsPerFiveMinutes: 300000,\n GameCyclesPerFiveMinutes: 300000 / 200,\n\n // Player Work & Action\n BaseFocusBonus: 0.8,\n\n ClassDataStructuresBaseCost: 40,\n ClassNetworksBaseCost: 80,\n ClassAlgorithmsBaseCost: 320,\n ClassManagementBaseCost: 160,\n ClassLeadershipBaseCost: 320,\n ClassGymBaseCost: 120,\n\n ClassStudyComputerScienceBaseExp: 0.5,\n ClassDataStructuresBaseExp: 1,\n ClassNetworksBaseExp: 2,\n ClassAlgorithmsBaseExp: 4,\n ClassManagementBaseExp: 2,\n ClassLeadershipBaseExp: 4,\n\n // Coding Contract\n // TODO: Move this into Coding contract implementation?\n CodingContractBaseFactionRepGain: 2500,\n CodingContractBaseCompanyRepGain: 4000,\n CodingContractBaseMoneyGain: 75e6,\n\n // Augmentation grafting multipliers\n AugmentationGraftingCostMult: 3,\n AugmentationGraftingTimeBase: 3600000,\n\n // SoA mults\n SoACostMult: 7,\n SoARepMult: 1.3,\n\n // Value raised to the number of entropy stacks, then multiplied to player multipliers\n EntropyEffect: 0.98,\n\n // BitNode/Source-File related stuff\n TotalNumBitNodes: 24,\n\n InfiniteLoopLimit: 2000,\n\n Donations: 22,\n\n LatestUpdate: `\nv2.0.0 - 2022-07-19 Work rework\n-------------------------------\n\n API break rewards\n\n * Everyone is awarded 10 NFG.\n * All work in progress program is auto completed.\n * All work in progress crafting is auto completed without adding entropy.\n\n Work (Create program / Work for faction / Studying / etc ...)\n\n * Working has been rebuilt from the grounds up. The motivation for that change is that all\n different types of work all required different cached variables on the main Player object.\n This caused a lot of bugs and crashes. It's been reworked in such a way as to prevent bugs\n and make it nearly trivial to add new kinds of work. However, since this caused a few API break\n I've decided to mark this version following semver protocols and call it 2.0.0\n * Crime can be unfocused and auto loops, no more spam clicking.\n * All work type give their reward immediately. No need to stop work to bank rewards like reputation.\n * Faction and Company work no longer have a time limit.\n * Company work no longer reduces rep gain by half for quitting early.\n * Company faction require 400k rep to join (from 200k)\n * Backdooring company server reduces faction requirement to 300k.\n * All work generally no longer keep track of cumulative gains like exp and reputation since it's applied instantly.\n * getPlayer returns way less fields but does return the new 'currentWork' field, some fields are moved around.\n\n API breaks\n\n * workForCompany argument 'companyName' is now not-optional\n * commitCrime now has 'focus' optional parameter\n * using getScriptIncome to get total income has been separated to getTotalScriptIncome.\n * using getScriptExpGain to get total income has been separated to getTotalScriptExpGain.\n * scp has it's 2 last argument reversed, the signature is now (files, destination, optional_source)\n * ns.connect and other singularity function are no longer available at the top level.\n They were already hidden from documentation but now they're gone.\n * stock.buy and stock.sell were renamed to stock.buyStock and stock.sellStock because 'buy' and 'sell'\n are very common tokens.\n * corporation.bribe no longer allows to give shares as bribe.\n * hasWseAccount, hasTixApiAccess, has4SData, has4SDataTixApi have been removed and replaced with similar stock functions.\n\n Netscript\n\n * Add singularity.getCurrentWork\n * Add singularity.getAugmentationBasePrice\n * Add sleeve.getSleeveAugmentationPrice\n * Add sleeve.getSleeveAugmentationRepReq\n * Fix infiltration.getInfiltrationLocations\n * Singularity.goToLocation support for non-city-specific locations (@Ansopedian)\n * All corporation functions are synchronous. Job assignment only works on the following cycle. (@stalefishies)\n * Add batch functionality to NS spendHashes API (@undeemiss)\n * Fix #3661 Add missing memory property to Sleeve API (@borisflagell)\n * FIX#3732 Cannot assign two sleeve on \"Take on contracts\" regardless of contract type. (@borisflagell)\n\n Corporation\n\n * Dividend fixes and exposing dividends info via scripts (@stalefishies)\n * Add big number format support in some Corporation's modal (@borisflagell)\n * Fix #3261 Industry overview number formatting (@nickofolas)\n\n Multipliers\n\n * The main player object was also plagues with a million fields all called '*_mult'. Representing the different multipliers\n * These have been refactored in a field called 'mults'.\n\n Misc. \n\n * #3596 Enhanced terminal command parsing (@RevanProdigalKnight)\n * Fix #3366 Sleeve UI would sometimes displays the wrong stat while working out. (@borisflagell)\n * Two new encryption themed contracts - caesar and vigenere (@Markus-D-M)\n * Fixes #3132 several Sleeve can no longer works concurrently in the same company (@borisflagell)\n * FIX #3514 Clear recently killed tab on BN end event (@Daniel-Barbera)\n * HammingCodes description and implementation fixes (@s2ks)\n * FIX #3794 Sleeve were getting less shocked when hospitalized (was positive, should have detrimental) (@borisflagell)\n * Fix #3803 Servers can no longer have duplicate IPs (@crimsonhawk47)\n * Fix #3854 ctrl+c does not clear terminal input (@evil-tim)\n * Nerf noodle bar, obviously.\n\n`,\n};\n","/* Generic Reviver, toJSON, and fromJSON functions used for saving and loading objects */\n\nimport { validateObject } from \"./Validator\";\n\nexport interface IReviverValue {\n ctor: string;\n data: any;\n}\n\n// A generic \"smart reviver\" function.\n// Looks for object values with a `ctor` property and\n// a `data` property. If it finds them, and finds a matching\n// constructor that has a `fromJSON` property on it, it hands\n// off to that `fromJSON` fuunction, passing in the value.\nexport function Reviver(key: string, value: IReviverValue | null): any {\n if (value == null) {\n return null;\n }\n\n if (typeof value === \"object\" && typeof value.ctor === \"string\" && typeof value.data !== \"undefined\") {\n // Compatibility for version v0.43.1\n // TODO Remove this eventually\n if (value.ctor === \"AllServersMap\") {\n console.warn(\"Converting AllServersMap for v0.43.1\");\n return value.data;\n }\n\n const ctor = Reviver.constructors[value.ctor];\n\n if (typeof ctor === \"function\" && typeof ctor.fromJSON === \"function\") {\n const obj = ctor.fromJSON(value);\n if (ctor.validationData !== undefined) {\n validateObject(obj, ctor.validationData);\n }\n return obj;\n }\n }\n return value;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Reviver {\n export const constructors: { [key: string]: any } = {};\n}\n\n// A generic \"toJSON\" function that creates the data expected\n// by Reviver.\n// `ctorName` The name of the constructor to use to revive it\n// `obj` The object being serialized\n// `keys` (Optional) Array of the properties to serialize,\n// if not given then all of the objects \"own\" properties\n// that don't have function values will be serialized.\n// (Note: If you list a property in `keys`, it will be serialized\n// regardless of whether it's an \"own\" property.)\n// Returns: The structure (which will then be turned into a string\n// as part of the JSON.stringify algorithm)\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Generic_toJSON(ctorName: string, obj: Record, keys?: string[]): IReviverValue {\n if (!keys) {\n keys = Object.keys(obj); // Only \"own\" properties are included\n }\n\n const data: Record = {};\n for (let index = 0; index < keys.length; ++index) {\n const key = keys[index];\n data[key] = obj[key];\n }\n return { ctor: ctorName, data: data };\n}\n\n// A generic \"fromJSON\" function for use with Reviver: Just calls the\n// constructor function with no arguments, then applies all of the\n// key/value pairs from the raw data to the instance. Only useful for\n// constructors that can be reasonably called without arguments!\n// `ctor` The constructor to call\n// `data` The data to apply\n// Returns: The object\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Generic_fromJSON(ctor: new () => T, data: any): T {\n const obj: any = new ctor();\n for (const name in data) {\n obj[name] = data[name];\n }\n return obj;\n}\n","import { AlertEvents } from \"./AlertManager\";\n\nimport React from \"react\";\nimport { SxProps } from \"@mui/system\";\nimport { Typography } from \"@mui/material\";\n\nexport function dialogBoxCreate(txt: string | JSX.Element, styles?: SxProps): void {\n if (typeof txt !== \"string\") {\n AlertEvents.emit(txt);\n } else {\n AlertEvents.emit();\n }\n}\n","/**\n * All possible Cities in the game. Names only, not actual \"City\" object\n * Implemented as an enum for typing purposes\n */\nexport enum CityName {\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n}\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { IPlayer } from \"../../PersonObjects/IPlayer\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number | string;\n player?: IPlayer;\n}\nexport function Money(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (props.player !== undefined) {\n if (typeof props.money !== \"number\") throw new Error(\"if player if provided, money should be number, contact dev\");\n if (!props.player.canAfford(props.money))\n return {numeralWrapper.formatMoney(props.money)};\n }\n return (\n \n {typeof props.money === \"number\" ? numeralWrapper.formatMoney(props.money) : props.money}\n \n );\n}\n","import { defaultMultipliers } from \"./BitNode\";\n\n/**\n * Bitnode multipliers influence the difficulty of different aspects of the game.\n * Each Bitnode has a different theme/strategy to achieving the end goal, so these multipliers will can help drive the\n * player toward the intended strategy. Unless they really want to play the long, slow game of waiting...\n */\nexport interface IBitNodeMultipliers {\n /**\n * Influences how quickly the player's agility level (not exp) scales\n */\n AgilityLevelMultiplier: number;\n\n /**\n * Influences the base cost to purchase an augmentation.\n */\n AugmentationMoneyCost: number;\n\n /**\n * Influences the base rep the player must have with a faction to purchase an augmentation.\n */\n AugmentationRepCost: number;\n\n /**\n * Influences how quickly the player can gain rank within Bladeburner.\n */\n BladeburnerRank: number;\n\n /**\n * Influences the cost of skill levels from Bladeburner.\n */\n BladeburnerSkillCost: number;\n\n /**\n * Influences how quickly the player's charisma level (not exp) scales\n */\n CharismaLevelMultiplier: number;\n\n /**\n * Influences the experience gained for each ability when a player completes a class.\n */\n ClassGymExpGain: number;\n\n /**\n * Influences the amount of money gained from completing Coding Contracts\n **/\n CodingContractMoney: number;\n\n /**\n * Influences the experience gained for each ability when the player completes working their job.\n */\n CompanyWorkExpGain: number;\n\n /**\n * Influences how much money the player earns when completing working their job.\n */\n CompanyWorkMoney: number;\n\n /**\n * Influences the valuation of corporations created by the player.\n */\n CorporationValuation: number;\n\n /**\n * Influences the base experience gained for each ability when the player commits a crime.\n */\n CrimeExpGain: number;\n\n /**\n * Influences the base money gained when the player commits a crime.\n */\n CrimeMoney: number;\n\n /**\n * Influences how many Augmentations you need in order to get invited to the Daedalus faction\n */\n DaedalusAugsRequirement: number;\n\n /**\n * Influences how quickly the player's defense level (not exp) scales\n */\n DefenseLevelMultiplier: number;\n\n /**\n * Influences how quickly the player's dexterity level (not exp) scales\n */\n DexterityLevelMultiplier: number;\n\n /**\n * Influences how much rep the player gains in each faction simply by being a member.\n */\n FactionPassiveRepGain: number;\n\n /**\n * Influences the experience gained for each ability when the player completes work for a Faction.\n */\n FactionWorkExpGain: number;\n\n /**\n * Influences how much rep the player gains when performing work for a faction.\n */\n FactionWorkRepGain: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data API\n */\n FourSigmaMarketDataApiCost: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data (NOT API)\n */\n FourSigmaMarketDataCost: number;\n\n /**\n * Reduces gangs earning.\n */\n GangSoftcap: number;\n\n /**\n * Percentage of unique augs that the gang has.\n */\n GangUniqueAugs: number;\n\n /**\n * Influences the experienced gained when hacking a server.\n */\n HackExpGain: number;\n\n /**\n * Influences how quickly the player's hacking level (not experience) scales\n */\n HackingLevelMultiplier: number;\n\n /**\n * Influences how much money is produced by Hacknet Nodes.\n * Influeces the hash rate of Hacknet Servers (unlocked in BitNode-9)\n */\n HacknetNodeMoney: number;\n\n /**\n * Influences how much money it costs to upgrade your home computer's RAM\n */\n HomeComputerRamCost: number;\n\n /**\n * Influences how much money is gained when the player infiltrates a company.\n */\n InfiltrationMoney: number;\n\n /**\n * Influences how much rep the player can gain from factions when selling stolen documents and secrets\n */\n InfiltrationRep: number;\n\n /**\n * Influences how much money can be stolen from a server when the player performs a hack against it through\n * the Terminal.\n */\n ManualHackMoney: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerCost: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerSoftcap: number;\n\n /**\n * Influences the maximum number of purchased servers you can have\n */\n PurchasedServerLimit: number;\n\n /**\n * Influences the maximum allowed RAM for a purchased server\n */\n PurchasedServerMaxRam: number;\n /**\n * Influences the minimum favor the player must have with a faction before they can donate to gain rep.\n */\n RepToDonateToFaction: number;\n\n /**\n * Influences how much money can be stolen from a server when a script performs a hack against it.\n */\n ScriptHackMoney: number;\n\n /**\n * The amount of money actually gained when script hack a server. This is\n * different than the above because you can reduce the amount of money but\n * not gain that same amount.\n */\n ScriptHackMoneyGain: number;\n\n /**\n * Influences the growth percentage per cycle against a server.\n */\n ServerGrowthRate: number;\n\n /**\n * Influences the maxmimum money that a server can grow to.\n */\n ServerMaxMoney: number;\n\n /**\n * Influences the initial money that a server starts with.\n */\n ServerStartingMoney: number;\n\n /**\n * Influences the initial security level (hackDifficulty) of a server.\n */\n ServerStartingSecurity: number;\n\n /**\n * Influences the weaken amount per invocation against a server.\n */\n ServerWeakenRate: number;\n\n /**\n * Influences how quickly the player's strength level (not exp) scales\n */\n StrengthLevelMultiplier: number;\n\n /**\n * Influences the power of the gift.\n */\n StaneksGiftPowerMultiplier: number;\n\n /**\n * Influences the size of the gift.\n */\n StaneksGiftExtraSize: number;\n\n /**\n * Influences the hacking skill required to backdoor the world daemon.\n */\n WorldDaemonDifficulty: number;\n\n /**\n * Influences corporation dividends.\n */\n CorporationSoftcap: number;\n\n // Index signature\n [key: string]: number;\n}\n\n/**\n * The multipliers that are influenced by current Bitnode progression.\n */\n// tslint:disable-next-line:variable-name\nexport const BitNodeMultipliers = Object.assign({}, defaultMultipliers);\n","import { Server } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { serverMetadata } from \"./data/servers\";\n\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\n\nimport { IMap, IMinMaxRange } from \"../types\";\nimport { createRandomIp } from \"../utils/IPAddress\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { Reviver } from \"../utils/JSONReviver\";\nimport { isValidIPAddress } from \"../utils/helpers/isValidIPAddress\";\nimport { SpecialServers } from \"./data/SpecialServers\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\n/**\n * Map of all Servers that exist in the game\n * Key (string) = IP\n * Value = Server object\n */\nlet AllServers: IMap = {};\n\nfunction GetServerByIP(ip: string): BaseServer | undefined {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.ip !== ip) continue;\n return server;\n }\n}\n\n//Returns server object with corresponding hostname\n// Relatively slow, would rather not use this a lot\nfunction GetServerByHostname(hostname: string): BaseServer | null {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.hostname == hostname) {\n return server;\n }\n }\n\n return null;\n}\n\n//Get server by IP or hostname. Returns null if invalid\nexport function GetServer(s: string): BaseServer | null {\n if (AllServers.hasOwnProperty(s)) {\n const server = AllServers[s];\n if (server) return server;\n }\n\n if (!isValidIPAddress(s)) {\n return GetServerByHostname(s);\n }\n\n const ipserver = GetServerByIP(s);\n if (ipserver !== undefined) {\n return ipserver;\n }\n\n return null;\n}\n\nexport function GetAllServers(): BaseServer[] {\n const servers: BaseServer[] = [];\n for (const key of Object.keys(AllServers)) {\n servers.push(AllServers[key]);\n }\n return servers;\n}\n\nexport function DeleteServer(serverkey: string): void {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.ip !== serverkey && server.hostname !== serverkey) continue;\n delete AllServers[key];\n break;\n }\n}\n\nexport function ipExists(ip: string): boolean {\n for (const hostName in AllServers) {\n if (AllServers[hostName].ip === ip) {\n return true;\n }\n }\n return false;\n}\n\nexport function createUniqueRandomIp(): string {\n let ip: string;\n // Repeat generating ip, until unique one is found\n do {\n ip = createRandomIp();\n } while (ipExists(ip));\n\n return ip;\n}\n\n// Saftely add a Server to the AllServers map\nexport function AddToAllServers(server: Server | HacknetServer): void {\n if (GetServer(server.hostname)) {\n console.warn(`Hostname of the server thats being added: ${server.hostname}`);\n console.warn(`The server that already has this IP is: ${AllServers[server.hostname].hostname}`);\n throw new Error(\"Error: Trying to add a server with an existing IP\");\n }\n\n AllServers[server.hostname] = server;\n}\n\ninterface IServerParams {\n hackDifficulty?: number;\n hostname: string;\n ip: string;\n maxRam?: number;\n moneyAvailable?: number;\n numOpenPortsRequired: number;\n organizationName: string;\n requiredHackingSkill?: number;\n serverGrowth?: number;\n}\n\nexport function initForeignServers(homeComputer: Server): void {\n /* Create a randomized network for all the foreign servers */\n //Groupings for creating a randomized network\n const networkLayers: Server[][] = [];\n for (let i = 0; i < 15; i++) {\n networkLayers.push([]);\n }\n\n const toNumber = (value: number | IMinMaxRange): number => {\n if (typeof value === \"number\") return value;\n else return getRandomInt(value.min, value.max);\n };\n\n for (const metadata of serverMetadata) {\n const serverParams: IServerParams = {\n hostname: metadata.hostname,\n ip: createUniqueRandomIp(),\n numOpenPortsRequired: metadata.numOpenPortsRequired,\n organizationName: metadata.organizationName,\n };\n\n if (metadata.maxRamExponent !== undefined) {\n serverParams.maxRam = Math.pow(2, toNumber(metadata.maxRamExponent));\n }\n\n if (metadata.hackDifficulty) serverParams.hackDifficulty = toNumber(metadata.hackDifficulty);\n if (metadata.moneyAvailable) serverParams.moneyAvailable = toNumber(metadata.moneyAvailable);\n if (metadata.requiredHackingSkill) serverParams.requiredHackingSkill = toNumber(metadata.requiredHackingSkill);\n if (metadata.serverGrowth) serverParams.serverGrowth = toNumber(metadata.serverGrowth);\n\n const server = new Server(serverParams);\n for (const filename of metadata.literature || []) {\n server.messages.push(filename);\n }\n\n if (server.hostname === SpecialServers.WorldDaemon) {\n server.requiredHackingSkill *= BitNodeMultipliers.WorldDaemonDifficulty;\n }\n AddToAllServers(server);\n if (metadata.networkLayer !== undefined) {\n networkLayers[toNumber(metadata.networkLayer) - 1].push(server);\n }\n }\n\n /* Create a randomized network for all the foreign servers */\n const linkComputers = (server1: Server, server2: Server): void => {\n server1.serversOnNetwork.push(server2.hostname);\n server2.serversOnNetwork.push(server1.hostname);\n };\n\n const getRandomArrayItem = (arr: T[]): T => arr[Math.floor(Math.random() * arr.length)];\n\n const linkNetworkLayers = (network1: Server[], selectServer: () => Server): void => {\n for (const server of network1) {\n linkComputers(server, selectServer());\n }\n };\n\n // Connect the first tier of servers to the player's home computer\n linkNetworkLayers(networkLayers[0], () => homeComputer);\n for (let i = 1; i < networkLayers.length; i++) {\n linkNetworkLayers(networkLayers[i], () => getRandomArrayItem(networkLayers[i - 1]));\n }\n}\n\nexport function prestigeAllServers(): void {\n for (const member of Object.keys(AllServers)) {\n delete AllServers[member];\n }\n AllServers = {};\n}\n\nexport function loadAllServers(saveString: string): void {\n AllServers = JSON.parse(saveString, Reviver);\n}\n\nexport function saveAllServers(excludeRunningScripts = false): string {\n const TempAllServers = JSON.parse(JSON.stringify(AllServers), Reviver);\n for (const key of Object.keys(TempAllServers)) {\n const server = TempAllServers[key];\n if (excludeRunningScripts) {\n server.runningScripts = [];\n continue;\n }\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScriptObj = server.runningScripts[i];\n runningScriptObj.logs.length = 0;\n runningScriptObj.logs = [];\n }\n }\n\n return JSON.stringify(TempAllServers);\n}\n","import { Faction } from \"../Faction/Faction\";\nimport { Location } from \"../Locations/Location\";\n\n/**\n * The full-screen page the player is currently be on.\n * These pages are mutually exclusive.\n */\nexport enum Page {\n ActiveScripts,\n Augmentations,\n BitVerse,\n Bladeburner,\n City,\n Corporation,\n CreateProgram,\n ScriptEditor,\n DevMenu,\n Faction,\n Factions,\n Gang,\n Hacknet,\n Infiltration,\n Job,\n Milestones,\n Options,\n Grafting,\n Sleeves,\n Stats,\n StockMarket,\n Terminal,\n Travel,\n Tutorial,\n Work,\n BladeburnerCinematic,\n Location,\n Loading,\n StaneksGift,\n Recovery,\n Achievements,\n ThemeBrowser,\n ImportSave,\n}\n\nexport interface ScriptEditorRouteOptions {\n vim: boolean;\n}\n\n/**\n * This class keeps track of player navigation/routing within the game.\n */\nexport interface IRouter {\n // toCinematicText(): void;\n // toInfiltration(): void;\n // toMission(): void;\n // toRedPill(): void;\n // toworkInProgress(): void;\n isInitialized: boolean;\n page(): Page;\n allowRouting(value: boolean): void;\n toActiveScripts(): void;\n toAugmentations(): void;\n toBitVerse(flume: boolean, quick: boolean): void;\n toBladeburner(): void;\n toStats(): void;\n toCity(): void; // travel ? city ?\n toCorporation(): void;\n toCreateProgram(): void;\n toDevMenu(): void;\n toFaction(faction: Faction, augPage?: boolean): void; // faction name\n toFactions(): void;\n toGameOptions(): void;\n toGang(): void;\n toHacknetNodes(): void;\n toInfiltration(location: Location): void;\n toJob(location: Location): void;\n toMilestones(): void;\n toGrafting(): void;\n toScriptEditor(files?: Record, options?: ScriptEditorRouteOptions): void;\n toSleeves(): void;\n toStockMarket(): void;\n toTerminal(): void;\n toTravel(): void;\n toTutorial(): void;\n toWork(): void;\n toBladeburnerCinematic(): void;\n toLocation(location: Location): void;\n toStaneksGift(): void;\n toAchievements(): void;\n toThemeBrowser(): void;\n toImportSave(base64Save: string, automatic?: boolean): void;\n}\n","import React, { useContext } from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"./Router\";\n\nexport const Context: {\n Player: React.Context;\n Router: React.Context;\n} = {\n Player: React.createContext({} as IPlayer),\n Router: React.createContext({} as IRouter),\n};\n\nexport const use: {\n Player: () => IPlayer;\n Router: () => IRouter;\n} = {\n Player: () => useContext(Context.Player),\n Router: () => useContext(Context.Router),\n};\n","import { EqualityFunc } from \"../types\";\nimport { isString } from \"./helpers/isString\";\n\n/*\nConverts a date representing time in milliseconds to a string with the format H hours M minutes and S seconds\ne.g. 10000 -> \"10 seconds\"\n 120000 -> \"2 minutes and 0 seconds\"\n*/\nfunction convertTimeMsToTimeElapsedString(time: number, showMilli = false): string {\n time = Math.floor(time);\n const millisecondsPerSecond = 1000;\n const secondPerMinute = 60;\n const minutesPerHours = 60;\n const secondPerHours: number = secondPerMinute * minutesPerHours;\n const hoursPerDays = 24;\n const secondPerDay: number = secondPerHours * hoursPerDays;\n\n // Convert ms to seconds, since we only have second-level precision\n const totalSeconds: number = Math.floor(time / millisecondsPerSecond);\n\n const days: number = Math.floor(totalSeconds / secondPerDay);\n const secTruncDays: number = totalSeconds % secondPerDay;\n\n const hours: number = Math.floor(secTruncDays / secondPerHours);\n const secTruncHours: number = secTruncDays % secondPerHours;\n\n const minutes: number = Math.floor(secTruncHours / secondPerMinute);\n const secTruncMinutes: number = secTruncHours % secondPerMinute;\n\n const milliTruncSec: string = (() => {\n let str = `${time % millisecondsPerSecond}`;\n while (str.length < 3) str = \"0\" + str;\n return str;\n })();\n\n const seconds: string = showMilli ? `${secTruncMinutes}.${milliTruncSec}` : `${secTruncMinutes}`;\n\n let res = \"\";\n if (days > 0) {\n res += `${days} days `;\n }\n if (hours > 0) {\n res += `${hours} hours `;\n }\n if (minutes > 0) {\n res += `${minutes} minutes `;\n }\n res += `${seconds} seconds`;\n\n return res;\n}\n\n// Finds the longest common starting substring in a set of strings\nfunction longestCommonStart(strings: string[]): string {\n if (!containsAllStrings(strings)) {\n return \"\";\n }\n if (strings.length === 0) {\n return \"\";\n }\n\n const A: string[] = strings.concat().sort();\n const a1: string = A[0];\n const a2: string = A[A.length - 1];\n const L: number = a1.length;\n let i = 0;\n const areEqualCaseInsensitive: EqualityFunc = (a: string, b: string) => a.toUpperCase() === b.toUpperCase();\n while (i < L && areEqualCaseInsensitive(a1.charAt(i), a2.charAt(i))) {\n i++;\n }\n\n return a1.substring(0, i);\n}\n\n// Returns whether an array contains entirely of string objects\nfunction containsAllStrings(arr: string[]): boolean {\n return arr.every(isString);\n}\n\n// Formats a number with commas and a specific number of decimal digits\nfunction formatNumber(num: number, numFractionDigits = 0): string {\n return num.toLocaleString(undefined, {\n maximumFractionDigits: numFractionDigits,\n minimumFractionDigits: numFractionDigits,\n });\n}\n\n// Generates a random alphanumeric string with N characters\nfunction generateRandomString(n: number): string {\n let str = \"\";\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\n for (let i = 0; i < n; i++) {\n str += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n\n return str;\n}\n\n/**\n * Hashes the input string. This is a fast hash, so NOT good for cryptography.\n * This has been ripped off here: https://stackoverflow.com/a/52171480\n * @param str The string that is to be hashed\n * @param seed A seed to randomize the result\n * @returns An hexadecimal string representation of the hashed input\n */\nfunction cyrb53(str: string, seed = 0): string {\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16);\n}\n\nfunction capitalizeFirstLetter(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n\nfunction capitalizeEachWord(s: string): string {\n return s\n .split(\" \")\n .map((word) => capitalizeFirstLetter(word))\n .join(\" \");\n}\n\nexport {\n convertTimeMsToTimeElapsedString,\n longestCommonStart,\n containsAllStrings,\n formatNumber,\n generateRandomString,\n cyrb53,\n capitalizeFirstLetter,\n capitalizeEachWord,\n};\n","/**\n * Initialization and manipulation of the Factions object, which stores data\n * about all Factions in the game\n */\nimport { Faction } from \"./Faction\";\nimport { FactionInfos } from \"./FactionInfo\";\n\nimport { IMap } from \"../types\";\n\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let Factions: IMap = {};\n\nexport function loadFactions(saveString: string): void {\n Factions = JSON.parse(saveString, Reviver);\n // safety check for when we load older save file that don't have newer factions\n for (const faction of Object.keys(Factions)) {\n try {\n Factions[faction].getInfo();\n } catch (err) {\n console.error(\"deleting \" + faction);\n delete Factions[faction];\n }\n }\n}\n\nfunction AddToFactions(faction: Faction): void {\n const name: string = faction.name;\n Factions[name] = faction;\n}\n\nexport function factionExists(name: string): boolean {\n return Factions.hasOwnProperty(name);\n}\n\nexport function initFactions(): void {\n for (const name of Object.keys(FactionInfos)) {\n resetFaction(new Faction(name));\n }\n}\n\n//Resets a faction during (re-)initialization. Saves the favor in the new\n//Faction object and deletes the old Faction Object from \"Factions\". Then\n//reinserts the new Faction object\nfunction resetFaction(newFactionObject: Faction): void {\n if (!(newFactionObject instanceof Faction)) {\n throw new Error(\"Invalid argument 'newFactionObject' passed into resetFaction()\");\n }\n const factionName: string = newFactionObject.name;\n if (factionExists(factionName)) {\n newFactionObject.favor = Factions[factionName].favor;\n delete Factions[factionName];\n }\n AddToFactions(newFactionObject);\n}\n","/**\n * Keyboard key codes as returned by event.key\n */\nexport enum KEY {\n //SHIFT: 16, // Check by `&& event.shiftKey`\n //CTRL: 17, // Check by `&& event.ctrlKey`\n //ALT: 18, // Check by `&& event.altKey`\n ENTER = \"Enter\",\n ESC = \"Escape\",\n TAB = \"Tab\",\n SPACE = \" \",\n BACKSPACE = \"Backspace\",\n UP_ARROW = \"ArrowUp\",\n DOWN_ARROW = \"ArrowDown\",\n LEFT_ARROW = \"ArrowLeft\",\n RIGHT_ARROW = \"ArrowRight\",\n\n QUOTE = \"'\",\n DOUBLE_QUOTE = '\"',\n OPEN_BRACKET = \"[\",\n CLOSE_BRACKET = \"]\",\n LESS_THAN = \"<\",\n GREATER_THAN = \">\",\n OPEN_PARENTHESIS = \"(\",\n CLOSE_PARENTHESIS = \")\",\n OPEN_BRACE = \"{\",\n CLOSE_BRACE = \"}\",\n EQUAL = \"=\",\n\n PIPE = \"|\",\n DOT = \".\",\n FORWARD_SLASH = \"/\",\n HYPHEN = \"-\",\n HASH = \"#\",\n\n k0 = \"0\",\n k1 = \"1\",\n k2 = \"2\",\n k3 = \"3\",\n k4 = \"4\",\n k5 = \"5\",\n k6 = \"6\",\n k7 = \"7\",\n k8 = \"8\",\n k9 = \"9\",\n\n A = \"a\",\n B = \"b\",\n C = \"c\",\n D = \"d\",\n E = \"e\",\n F = \"f\",\n G = \"g\",\n H = \"h\",\n I = \"i\",\n J = \"j\",\n K = \"k\",\n L = \"l\",\n M = \"m\",\n N = \"n\",\n O = \"o\",\n P = \"p\",\n Q = \"q\",\n R = \"r\",\n S = \"s\",\n T = \"t\",\n U = \"u\",\n V = \"v\",\n W = \"w\",\n X = \"x\",\n Y = \"y\",\n Z = \"z\",\n}\n\n/**\n * Keyboard key codes as returned by event.code\n */\nexport enum KEYCODE {\n //SHIFT: 16, // Check by `&& event.shiftKey`\n //CTRL: 17, // Check by `&& event.ctrlKey`\n //ALT: 18, // Check by `&& event.altKey`\n ENTER = \"Enter\",\n ESC = \"Escape\",\n TAB = \"Tab\",\n SPACE = \"Space\",\n BACKSPACE = \"Backspace\",\n UP_ARROW = \"ArrowUp\",\n DOWN_ARROW = \"ArrowDown\",\n LEFT_ARROW = \"ArrowLeft\",\n RIGHT_ARROW = \"ArrowRight\",\n\n BACKWARD_SLASH = \"Backslash\",\n BACKQUOTE = \"Backquote\",\n COMMA = \"Comma\",\n DOT = \"Period\",\n EQUAL = \"Equal\",\n FORWARD_SLASH = \"Slash\",\n HYPHEN = \"Minus\",\n SEMICOLON = \"Semicolon\",\n QUOTE = \"Quote\",\n\n k0 = \"Digit0\",\n k1 = \"Digit1\",\n k2 = \"Digit2\",\n k3 = \"Digit3\",\n k4 = \"Digit4\",\n k5 = \"Digit5\",\n k6 = \"Digit6\",\n k7 = \"Digit7\",\n k8 = \"Digit8\",\n k9 = \"Digit9\",\n\n A = \"KeyA\",\n B = \"KeyB\",\n C = \"KeyC\",\n D = \"KeyD\",\n E = \"KeyE\",\n F = \"KeyF\",\n G = \"KeyG\",\n H = \"KeyH\",\n I = \"KeyI\",\n J = \"KeyJ\",\n K = \"KeyK\",\n L = \"KeyL\",\n M = \"KeyM\",\n N = \"KeyN\",\n O = \"KeyO\",\n P = \"KeyP\",\n Q = \"KeyQ\",\n R = \"KeyR\",\n S = \"KeyS\",\n T = \"KeyT\",\n U = \"KeyU\",\n V = \"KeyV\",\n W = \"KeyW\",\n X = \"KeyX\",\n Y = \"KeyY\",\n Z = \"KeyZ\",\n}\n","// Defs for job titles, stored in arrays and categorized by job \"type\"\n\nexport const SoftwareCompanyPositions: string[] = [\n \"Software Engineering Intern\",\n \"Junior Software Engineer\",\n \"Senior Software Engineer\",\n \"Lead Software Developer\",\n \"Head of Software\",\n \"Head of Engineering\",\n \"Vice President of Technology\",\n \"Chief Technology Officer\",\n];\n\nexport const ITCompanyPositions: string[] = [\"IT Intern\", \"IT Analyst\", \"IT Manager\", \"Systems Administrator\"];\n\nexport const SecurityEngineerCompanyPositions: string[] = [\"Security Engineer\"];\n\nexport const NetworkEngineerCompanyPositions: string[] = [\"Network Engineer\", \"Network Administrator\"];\n\nexport const BusinessCompanyPositions: string[] = [\n \"Business Intern\",\n \"Business Analyst\",\n \"Business Manager\",\n \"Operations Manager\",\n \"Chief Financial Officer\",\n \"Chief Executive Officer\",\n];\n\nexport const SecurityCompanyPositions: string[] = [\n \"Police Officer\",\n \"Police Chief\",\n \"Security Guard\",\n \"Security Officer\",\n \"Security Supervisor\",\n \"Head of Security\",\n];\n\nexport const AgentCompanyPositions: string[] = [\"Field Agent\", \"Secret Agent\", \"Special Operative\"];\n\nexport const MiscCompanyPositions: string[] = [\"Waiter\", \"Employee\"];\n\nexport const SoftwareConsultantCompanyPositions: string[] = [\"Software Consultant\", \"Senior Software Consultant\"];\n\nexport const BusinessConsultantCompanyPositions: string[] = [\"Business Consultant\", \"Senior Business Consultant\"];\n\nexport const PartTimeCompanyPositions: string[] = [\"Part-time Waiter\", \"Part-time Employee\"];\n","/**\n * Gets a random integer bounded by the values passed in.\n * @param min The minimum value in the range.\n * @param max The maximum value in the range.\n */\nexport function getRandomInt(min: number, max: number): number {\n const lower: number = Math.min(min, max);\n const upper: number = Math.max(min, max);\n\n return Math.floor(Math.random() * (upper - lower + 1)) + lower;\n}\n","import { CityName } from \"./../../Locations/data/CityNames\";\nconst CyclesPerMarketCycle = 50;\nconst AllCorporationStates = [\"START\", \"PURCHASE\", \"PRODUCTION\", \"SALE\", \"EXPORT\"];\nexport const CorporationConstants: {\n INITIALSHARES: number;\n SHARESPERPRICEUPDATE: number;\n IssueNewSharesCooldown: number;\n SellSharesCooldown: number;\n CyclesPerMarketCycle: number;\n CyclesPerIndustryStateCycle: number;\n SecsPerMarketCycle: number;\n Cities: string[];\n WarehouseInitialCost: number;\n WarehouseInitialSize: number;\n WarehouseUpgradeBaseCost: number;\n OfficeInitialCost: number;\n OfficeInitialSize: number;\n OfficeUpgradeBaseCost: number;\n BribeThreshold: number;\n BribeToRepRatio: number;\n ProductProductionCostRatio: number;\n DividendMaxRate: number;\n EmployeeSalaryMultiplier: number;\n CyclesPerEmployeeRaise: number;\n EmployeeRaiseAmount: number;\n BaseMaxProducts: number;\n AllCorporationStates: string[];\n AllMaterials: string[];\n AllIndustryTypes: string[];\n AllUnlocks: string[];\n AllUpgrades: string[];\n AllResearch: string[];\n FundingRoundShares: number[];\n FundingRoundMultiplier: number[];\n AvgProfitLength: number;\n} = {\n INITIALSHARES: 1e9, //Total number of shares you have at your company\n SHARESPERPRICEUPDATE: 1e6, //When selling large number of shares, price is dynamically updated for every batch of this amount\n IssueNewSharesCooldown: 216e3, // 12 Hour in terms of game cycles\n SellSharesCooldown: 18e3, // 1 Hour in terms of game cycles\n\n CyclesPerMarketCycle: CyclesPerMarketCycle,\n CyclesPerIndustryStateCycle: CyclesPerMarketCycle / AllCorporationStates.length,\n SecsPerMarketCycle: CyclesPerMarketCycle / 5,\n\n Cities: [\n CityName.Aevum,\n CityName.Chongqing,\n CityName.Sector12,\n CityName.NewTokyo,\n CityName.Ishima,\n CityName.Volhaven,\n ],\n\n WarehouseInitialCost: 5e9, //Initial purchase cost of warehouse\n WarehouseInitialSize: 100,\n WarehouseUpgradeBaseCost: 1e9,\n\n OfficeInitialCost: 4e9,\n OfficeInitialSize: 3,\n OfficeUpgradeBaseCost: 1e9,\n\n BribeThreshold: 100e12, //Money needed to be able to bribe for faction rep\n BribeToRepRatio: 1e9, //Bribe Value divided by this = rep gain\n\n ProductProductionCostRatio: 5, //Ratio of material cost of a product to its production cost\n\n DividendMaxRate: 1,\n\n EmployeeSalaryMultiplier: 3, // Employee stats multiplied by this to determine initial salary\n CyclesPerEmployeeRaise: 400, // All employees get a raise every X market cycles\n EmployeeRaiseAmount: 50, // Employee salary increases by this (additive)\n\n BaseMaxProducts: 3, // Initial value for maximum number of products allowed\n AllCorporationStates: AllCorporationStates,\n AllMaterials: [\n \"Water\",\n \"Energy\",\n \"Food\",\n \"Plants\",\n \"Metal\",\n \"Hardware\",\n \"Chemicals\",\n \"Drugs\",\n \"Robots\",\n \"AI Cores\",\n \"Real Estate\",\n ],\n AllIndustryTypes: [\n \"Energy\",\n \"Utilities\",\n \"Agriculture\",\n \"Fishing\",\n \"Mining\",\n \"Food\",\n \"Tobacco\",\n \"Chemical\",\n \"Pharmaceutical\",\n \"Hardware\",\n \"Robotics\",\n \"Software\",\n \"Healthcare\",\n \"RealEstate\",\n ],\n AllUnlocks: [\n \"Export\",\n \"Smart Supply\",\n \"Market Research - Demand\",\n \"Market Data - Competition\",\n \"VeChain\",\n \"Shady Accounting\",\n \"Government Partnership\",\n \"Warehouse API\",\n \"Office API\",\n ],\n AllUpgrades: [\n \"Smart Factories\",\n \"Smart Storage\",\n \"DreamSense\",\n \"Wilson Analytics\",\n \"Nuoptimal Nootropic Injector Implants\",\n \"Speech Processor Implants\",\n \"Neural Accelerators\",\n \"FocusWires\",\n \"ABC SalesBots\",\n \"Project Insight\",\n ],\n AllResearch: [\n \"Hi-Tech R&D Laboratory\",\n \"AutoBrew\",\n \"AutoPartyManager\",\n \"Automatic Drug Administration\",\n \"Bulk Purchasing\",\n \"CPH4 Injections\",\n \"Drones\",\n \"Drones - Assembly\",\n \"Drones - Transport\",\n \"Go-Juice\",\n \"HRBuddy-Recruitment\",\n \"HRBuddy-Training\",\n \"JoyWire\",\n \"Market-TA.I\",\n \"Market-TA.II\",\n \"Overclock\",\n \"Self-Correcting Assemblers\",\n \"Sti.mu\",\n \"sudo.Assist\",\n \"uPgrade: Capacity.I\",\n \"uPgrade: Capacity.II\",\n \"uPgrade: Dashboard\",\n \"uPgrade: Fulcrum\",\n ],\n FundingRoundShares: [0.1, 0.35, 0.25, 0.2],\n FundingRoundMultiplier: [4, 3, 3, 2.5],\n\n AvgProfitLength: 1,\n};\n","// Class definition for a single Augmentation object\nimport * as React from \"react\";\n\nimport { Faction } from \"../Faction/Faction\";\nimport { Factions } from \"../Faction/Factions\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { AugmentationNames } from \"./data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\nimport { StaticAugmentations } from \"./StaticAugmentations\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { getBaseAugmentationPriceMultiplier, getGenericAugmentationPriceMultiplier } from \"./AugmentationHelpers\";\nimport { initSoAAugmentations } from \"./data/AugmentationCreator\";\nimport { Multipliers, defaultMultipliers } from \"../PersonObjects/Multipliers\";\n\nexport interface AugmentationCosts {\n moneyCost: number;\n repCost: number;\n}\n\nexport interface IConstructorParams {\n info: string | JSX.Element;\n stats?: JSX.Element | null;\n isSpecial?: boolean;\n moneyCost: number;\n name: string;\n prereqs?: string[];\n repCost: number;\n factions: string[];\n\n hacking?: number;\n strength?: number;\n defense?: number;\n dexterity?: number;\n agility?: number;\n charisma?: number;\n hacking_exp?: number;\n strength_exp?: number;\n defense_exp?: number;\n dexterity_exp?: number;\n agility_exp?: number;\n charisma_exp?: number;\n hacking_chance?: number;\n hacking_speed?: number;\n hacking_money?: number;\n hacking_grow?: number;\n company_rep?: number;\n faction_rep?: number;\n crime_money?: number;\n crime_success?: number;\n work_money?: number;\n hacknet_node_money?: number;\n hacknet_node_purchase_cost?: number;\n hacknet_node_ram_cost?: number;\n hacknet_node_core_cost?: number;\n hacknet_node_level_cost?: number;\n bladeburner_max_stamina?: number;\n bladeburner_stamina_gain?: number;\n bladeburner_analysis?: number;\n bladeburner_success_chance?: number;\n infiltration_base_rep_increase?: number;\n infiltration_rep?: number;\n infiltration_trade?: number;\n infiltration_sell?: number;\n infiltration_timer?: number;\n infiltration_damage_reduction?: number;\n\n startingMoney?: number;\n programs?: string[];\n}\n\nfunction generateStatsDescription(mults: Multipliers, programs?: string[], startingMoney?: number): JSX.Element {\n const f = (x: number, decimals = 0): string => {\n // look, I don't know how to make a \"smart decimals\"\n // todo, make it smarter\n if (x === 1.0777 - 1) return \"7.77%\";\n if (x === 1.777 - 1) return \"77.7%\";\n return numeralWrapper.formatPercentage(x, decimals);\n };\n let desc = <>Effects:>;\n\n if (\n mults.hacking !== 1 &&\n mults.hacking == mults.strength &&\n mults.hacking == mults.defense &&\n mults.hacking == mults.dexterity &&\n mults.hacking == mults.agility &&\n mults.hacking == mults.charisma\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.hacking - 1)} all skills\n >\n );\n } else {\n if (mults.hacking !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking - 1)} hacking skill\n >\n );\n\n if (\n mults.strength !== 1 &&\n mults.strength == mults.defense &&\n mults.strength == mults.dexterity &&\n mults.strength == mults.agility\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.strength - 1)} combat skills\n >\n );\n } else {\n if (mults.strength !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.strength - 1)} strength skill\n >\n );\n if (mults.defense !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.defense - 1)} defense skill\n >\n );\n if (mults.dexterity !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.dexterity - 1)} dexterity skill\n >\n );\n if (mults.agility !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.agility - 1)} agility skill\n >\n );\n }\n if (mults.charisma !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.charisma - 1)} charisma skill\n >\n );\n }\n\n if (\n mults.hacking_exp !== 1 &&\n mults.hacking_exp === mults.strength_exp &&\n mults.hacking_exp === mults.defense_exp &&\n mults.hacking_exp === mults.dexterity_exp &&\n mults.hacking_exp === mults.agility_exp &&\n mults.hacking_exp === mults.charisma_exp\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.hacking_exp - 1)} exp for all skills\n >\n );\n } else {\n if (mults.hacking_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_exp - 1)} hacking exp\n >\n );\n\n if (\n mults.strength_exp !== 1 &&\n mults.strength_exp === mults.defense_exp &&\n mults.strength_exp === mults.dexterity_exp &&\n mults.strength_exp === mults.agility_exp\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.strength_exp - 1)} combat exp\n >\n );\n } else {\n if (mults.strength_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.strength_exp - 1)} strength exp\n >\n );\n if (mults.defense_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.defense_exp - 1)} defense exp\n >\n );\n if (mults.dexterity_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.dexterity_exp - 1)} dexterity exp\n >\n );\n if (mults.agility_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.agility_exp - 1)} agility exp\n >\n );\n }\n if (mults.charisma_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.charisma_exp - 1)} charisma exp\n >\n );\n }\n\n if (mults.hacking_speed !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_speed - 1)} faster hack(), grow(), and weaken()\n >\n );\n if (mults.hacking_chance !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_chance - 1)} hack() success chance\n >\n );\n if (mults.hacking_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_money - 1)} hack() power\n >\n );\n if (mults.hacking_grow !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_grow - 1)} grow() power\n >\n );\n\n if (mults.faction_rep !== 1 && mults.faction_rep === mults.company_rep) {\n desc = (\n <>\n {desc}\n +{f(mults.faction_rep - 1)} reputation from factions and companies\n >\n );\n } else {\n if (mults.faction_rep !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.faction_rep - 1)} reputation from factions\n >\n );\n if (mults.company_rep !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.company_rep - 1)} reputation from companies\n >\n );\n }\n\n if (mults.crime_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.crime_money - 1)} crime money\n >\n );\n if (mults.crime_success !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.crime_success - 1)} crime success rate\n >\n );\n if (mults.work_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.work_money - 1)} work money\n >\n );\n\n if (mults.hacknet_node_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacknet_node_money - 1)} hacknet production\n >\n );\n if (mults.hacknet_node_purchase_cost !== 1)\n desc = (\n <>\n {desc}\n -{f(-(mults.hacknet_node_purchase_cost - 1))} hacknet nodes cost\n >\n );\n if (mults.hacknet_node_level_cost !== 1)\n desc = (\n <>\n {desc}\n -{f(-(mults.hacknet_node_level_cost - 1))} hacknet nodes upgrade cost\n >\n );\n\n if (mults.bladeburner_max_stamina !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_max_stamina - 1)} Bladeburner Max Stamina\n >\n );\n if (mults.bladeburner_stamina_gain !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_stamina_gain - 1)} Bladeburner Stamina gain\n >\n );\n if (mults.bladeburner_analysis !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_analysis - 1)} Bladeburner Field Analysis effectiveness\n >\n );\n if (mults.bladeburner_success_chance !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_success_chance - 1)} Bladeburner Contracts and Operations success chance\n >\n );\n if (startingMoney)\n desc = (\n <>\n {desc}\n \n Start with after installing Augmentations.\n >\n );\n\n if (programs)\n desc = (\n <>\n {desc}\n \n Start with {programs.join(\" and \")} after installing Augmentations.\n >\n );\n return desc;\n}\n\nexport class Augmentation {\n // How much money this costs to buy before multipliers\n baseCost = 0;\n\n // How much faction reputation is required to unlock this before multipliers\n baseRepRequirement = 0;\n\n // Description of what this Aug is and what it does\n info: string | JSX.Element;\n\n // Description of the stats, often autogenerated, sometimes manually written.\n stats: JSX.Element | null;\n\n // Any Augmentation not immediately available in BitNode-1 is special (e.g. Bladeburner augs)\n isSpecial = false;\n\n // Name of Augmentation\n name = \"\";\n\n // Array of names of all prerequisites\n prereqs: string[] = [];\n\n // Multipliers given by this Augmentation. Must match the property name in\n // The Player/Person classes\n mults: Multipliers = defaultMultipliers();\n\n // Factions that offer this aug.\n factions: string[] = [];\n\n constructor(\n params: IConstructorParams = {\n info: \"\",\n moneyCost: 0,\n name: \"\",\n repCost: 0,\n factions: [],\n },\n ) {\n this.name = params.name;\n this.info = params.info;\n this.prereqs = params.prereqs ? params.prereqs : [];\n\n this.baseRepRequirement = params.repCost;\n Object.freeze(this.baseRepRequirement);\n this.baseCost = params.moneyCost;\n Object.freeze(this.baseCost);\n this.factions = params.factions;\n\n if (params.isSpecial) {\n this.isSpecial = true;\n }\n\n // Set multipliers\n if (params.hacking) {\n this.mults.hacking = params.hacking;\n }\n if (params.strength) {\n this.mults.strength = params.strength;\n }\n if (params.defense) {\n this.mults.defense = params.defense;\n }\n if (params.dexterity) {\n this.mults.dexterity = params.dexterity;\n }\n if (params.agility) {\n this.mults.agility = params.agility;\n }\n if (params.charisma) {\n this.mults.charisma = params.charisma;\n }\n if (params.hacking_exp) {\n this.mults.hacking_exp = params.hacking_exp;\n }\n if (params.strength_exp) {\n this.mults.strength_exp = params.strength_exp;\n }\n if (params.defense_exp) {\n this.mults.defense_exp = params.defense_exp;\n }\n if (params.dexterity_exp) {\n this.mults.dexterity_exp = params.dexterity_exp;\n }\n if (params.agility_exp) {\n this.mults.agility_exp = params.agility_exp;\n }\n if (params.charisma_exp) {\n this.mults.charisma_exp = params.charisma_exp;\n }\n if (params.hacking_chance) {\n this.mults.hacking_chance = params.hacking_chance;\n }\n if (params.hacking_speed) {\n this.mults.hacking_speed = params.hacking_speed;\n }\n if (params.hacking_money) {\n this.mults.hacking_money = params.hacking_money;\n }\n if (params.hacking_grow) {\n this.mults.hacking_grow = params.hacking_grow;\n }\n if (params.company_rep) {\n this.mults.company_rep = params.company_rep;\n }\n if (params.faction_rep) {\n this.mults.faction_rep = params.faction_rep;\n }\n if (params.crime_money) {\n this.mults.crime_money = params.crime_money;\n }\n if (params.crime_success) {\n this.mults.crime_success = params.crime_success;\n }\n if (params.work_money) {\n this.mults.work_money = params.work_money;\n }\n if (params.hacknet_node_money) {\n this.mults.hacknet_node_money = params.hacknet_node_money;\n }\n if (params.hacknet_node_purchase_cost) {\n this.mults.hacknet_node_purchase_cost = params.hacknet_node_purchase_cost;\n }\n if (params.hacknet_node_ram_cost) {\n this.mults.hacknet_node_ram_cost = params.hacknet_node_ram_cost;\n }\n if (params.hacknet_node_core_cost) {\n this.mults.hacknet_node_core_cost = params.hacknet_node_core_cost;\n }\n if (params.hacknet_node_level_cost) {\n this.mults.hacknet_node_level_cost = params.hacknet_node_level_cost;\n }\n if (params.bladeburner_max_stamina) {\n this.mults.bladeburner_max_stamina = params.bladeburner_max_stamina;\n }\n if (params.bladeburner_stamina_gain) {\n this.mults.bladeburner_stamina_gain = params.bladeburner_stamina_gain;\n }\n if (params.bladeburner_analysis) {\n this.mults.bladeburner_analysis = params.bladeburner_analysis;\n }\n if (params.bladeburner_success_chance) {\n this.mults.bladeburner_success_chance = params.bladeburner_success_chance;\n }\n\n if (params.stats === undefined)\n this.stats = generateStatsDescription(this.mults, params.programs, params.startingMoney);\n else this.stats = params.stats;\n }\n\n // Adds this Augmentation to the specified Factions\n addToFactions(factionList: string[]): void {\n for (let i = 0; i < factionList.length; ++i) {\n const faction: Faction | null = Factions[factionList[i]];\n if (faction == null) {\n console.warn(`In Augmentation.addToFactions(), could not find faction with this name: ${factionList[i]}`);\n continue;\n }\n faction.augmentations.push(this.name);\n }\n }\n\n getCost(player: IPlayer): AugmentationCosts {\n const augmentationReference = StaticAugmentations[this.name];\n let moneyCost = augmentationReference.baseCost;\n let repCost = augmentationReference.baseRepRequirement;\n\n if (augmentationReference.name === AugmentationNames.NeuroFluxGovernor) {\n let nextLevel = this.getLevel(player);\n --nextLevel;\n const multiplier = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);\n repCost = augmentationReference.baseRepRequirement * multiplier * BitNodeMultipliers.AugmentationRepCost;\n moneyCost = augmentationReference.baseCost * multiplier * BitNodeMultipliers.AugmentationMoneyCost;\n\n for (let i = 0; i < player.queuedAugmentations.length; ++i) {\n moneyCost *= getBaseAugmentationPriceMultiplier();\n }\n } else if (augmentationReference.factions.includes(FactionNames.ShadowsOfAnarchy)) {\n const soaAugmentationNames = initSoAAugmentations().map((augmentation) => augmentation.name);\n const soaMultiplier = Math.pow(\n CONSTANTS.SoACostMult,\n soaAugmentationNames.filter((augmentationName) => player.hasAugmentation(augmentationName)).length,\n );\n moneyCost = augmentationReference.baseCost * soaMultiplier;\n if (soaAugmentationNames.find((augmentationName) => augmentationName === augmentationReference.name)) {\n repCost = augmentationReference.baseRepRequirement * soaMultiplier;\n }\n } else {\n moneyCost =\n augmentationReference.baseCost *\n getGenericAugmentationPriceMultiplier() *\n BitNodeMultipliers.AugmentationMoneyCost;\n repCost = augmentationReference.baseRepRequirement * BitNodeMultipliers.AugmentationRepCost;\n }\n return { moneyCost, repCost };\n }\n\n getLevel(player: IPlayer): number {\n // Get current Neuroflux level based on Player's augmentations\n if (this.name === AugmentationNames.NeuroFluxGovernor) {\n let currLevel = 0;\n for (let i = 0; i < player.augmentations.length; ++i) {\n if (player.augmentations[i].name === AugmentationNames.NeuroFluxGovernor) {\n currLevel = player.augmentations[i].level;\n }\n }\n\n // Account for purchased but uninstalled Augmentations\n for (let i = 0; i < player.queuedAugmentations.length; ++i) {\n if (player.queuedAugmentations[i].name == AugmentationNames.NeuroFluxGovernor) {\n ++currLevel;\n }\n }\n return currLevel + 1;\n }\n return 0;\n }\n\n // Adds this Augmentation to all Factions\n addToAllFactions(): void {\n for (const fac of Object.keys(Factions)) {\n if (Factions.hasOwnProperty(fac)) {\n const facObj: Faction | null = Factions[fac];\n if (facObj == null) {\n console.warn(`Invalid Faction object in addToAllFactions(). Key value: ${fac}`);\n continue;\n }\n if (facObj.getInfo().special) continue;\n facObj.augmentations.push(this.name);\n }\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Augmentation\", this);\n }\n\n // Initiatizes a Augmentation object from a JSON save state.\n static fromJSON(value: IReviverValue): Augmentation {\n return Generic_fromJSON(Augmentation, value.data);\n }\n}\n\nReviver.constructors.Augmentation = Augmentation;\n","import { Theme } from \"@mui/material\";\nimport Box from \"@mui/material/Box\";\nimport Fade from \"@mui/material/Fade\";\nimport M from \"@mui/material/Modal\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { SxProps } from \"@mui/system\";\nimport React from \"react\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n modal: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n paper: {\n backgroundColor: theme.palette.background.default,\n border: \"2px solid \" + theme.palette.primary.main,\n boxShadow: `0px 3px 5px -1px ${theme.palette.primary.dark},0px 5px 8px 0px ${theme.palette.primary.dark},0px 1px 14px 0px ${theme.palette.primary.dark}`,\n padding: 2,\n maxWidth: \"80%\",\n maxHeight: \"80%\",\n overflow: \"auto\",\n \"&::-webkit-scrollbar\": {\n // webkit\n display: \"none\",\n },\n scrollbarWidth: \"none\", // firefox\n },\n }),\n);\n\ninterface IProps {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n sx?: SxProps;\n}\n\nexport const Modal = (props: IProps): React.ReactElement => {\n const classes = useStyles();\n return (\n \n \n
\n {props.children}\n
\n \n \n );\n};\n","export const HacknetNodeConstants: {\n // Constants for Hacknet Node production\n MoneyGainPerLevel: number;\n\n // Constants for Hacknet Node purchase/upgrade costs\n BaseCost: number;\n LevelBaseCost: number;\n RamBaseCost: number;\n CoreBaseCost: number;\n\n PurchaseNextMult: number;\n UpgradeLevelMult: number;\n UpgradeRamMult: number;\n UpgradeCoreMult: number;\n\n // Constants for max upgrade levels for Hacknet Nodes\n MaxLevel: number;\n MaxRam: number;\n MaxCores: number;\n} = {\n MoneyGainPerLevel: 1.5,\n\n BaseCost: 1000,\n LevelBaseCost: 1,\n RamBaseCost: 30e3,\n CoreBaseCost: 500e3,\n\n PurchaseNextMult: 1.85,\n UpgradeLevelMult: 1.04,\n UpgradeRamMult: 1.28,\n UpgradeCoreMult: 1.48,\n\n MaxLevel: 200,\n MaxRam: 64,\n MaxCores: 16,\n};\n\nexport const PurchaseMultipliers: {\n [key: string]: number | \"MAX\" | undefined;\n x1: number;\n x5: number;\n x10: number;\n MAX: \"MAX\";\n} = {\n x1: 1,\n x5: 5,\n x10: 10,\n MAX: \"MAX\",\n};\n\nexport const HacknetServerConstants: {\n // Constants for Hacknet Server stats/production\n HashesPerLevel: number;\n\n // Constants for Hacknet Server purchase/upgrade costs\n BaseCost: number;\n RamBaseCost: number;\n CoreBaseCost: number;\n CacheBaseCost: number;\n\n PurchaseMult: number; // Multiplier for puchasing an additional Hacknet Server\n UpgradeLevelMult: number; // Multiplier for cost when upgrading level\n UpgradeRamMult: number; // Multiplier for cost when upgrading RAM\n UpgradeCoreMult: number; // Multiplier for cost when buying another core\n UpgradeCacheMult: number; // Multiplier for cost when upgrading cache\n MaxServers: number; // Max number of Hacknet Servers you can own\n\n // Constants for max upgrade levels for Hacknet Server\n MaxLevel: number;\n MaxRam: number;\n MaxCores: number;\n MaxCache: number;\n} = {\n HashesPerLevel: 0.001,\n\n BaseCost: 50e3,\n RamBaseCost: 200e3,\n CoreBaseCost: 1e6,\n CacheBaseCost: 10e6,\n\n PurchaseMult: 3.2,\n UpgradeLevelMult: 1.1,\n UpgradeRamMult: 1.4,\n UpgradeCoreMult: 1.55,\n UpgradeCacheMult: 1.85,\n\n MaxServers: 20,\n\n MaxLevel: 300,\n MaxRam: 8192,\n MaxCores: 128,\n MaxCache: 15,\n};\n","import { IMap } from \"../types\";\n\nexport const EmployeePositions: IMap = {\n Operations: \"Operations\",\n Engineer: \"Engineer\",\n Business: \"Business\",\n Management: \"Management\",\n RandD: \"Research & Development\",\n Training: \"Training\",\n Unassigned: \"Unassigned\",\n};\n","// Action Identifier enum\nexport const ActionTypes: {\n [key: string]: number;\n Idle: number;\n Contract: number;\n Operation: number;\n BlackOp: number;\n BlackOperation: number;\n Training: number;\n Recruitment: number;\n FieldAnalysis: number;\n \"Field Analysis\": number;\n Diplomacy: number;\n \"Hyperbolic Regeneration Chamber\": number;\n \"Incite Violence\": number;\n} = {\n Idle: 1,\n Contract: 2,\n Operation: 3,\n BlackOp: 4,\n BlackOperation: 4,\n Training: 5,\n Recruitment: 6,\n FieldAnalysis: 7,\n \"Field Analysis\": 7,\n Diplomacy: 8,\n \"Hyperbolic Regeneration Chamber\": 9,\n \"Incite Violence\": 10,\n};\n","import { Player } from \"./Player\";\n\nimport { LiteratureNames } from \"./Literature/data/LiteratureNames\";\n\nimport { ITutorialEvents } from \"./ui/InteractiveTutorial/ITutorialEvents\";\n\n// Ordered array of keys to Interactive Tutorial Steps\nenum iTutorialSteps {\n Start,\n NSSelection,\n GoToCharacterPage, // Click on 'Stats' page\n CharacterPage, // Introduction to 'Stats' page\n CharacterGoToTerminalPage, // Go back to Terminal\n TerminalIntro, // Introduction to Terminal\n TerminalHelp, // Using 'help' Terminal command\n TerminalLs, // Using 'ls' Terminal command\n TerminalScan, // Using 'scan' Terminal command\n TerminalScanAnalyze1, // Using 'scan-analyze' Terminal command\n TerminalScanAnalyze2, // Using 'scan-analyze 3' Terminal command\n TerminalConnect, // Connecting to n00dles\n TerminalAnalyze, // Analyzing n00dles\n TerminalNuke, // NUKE n00dles\n TerminalManualHack, // Hack n00dles\n TerminalHackingMechanics, // Explanation of hacking mechanics\n TerminalGoHome, // Go home before creating a script.\n TerminalCreateScript, // Create a script using 'nano'\n TerminalTypeScript, // Script Editor page - Type script and then save & close\n TerminalFree, // Using 'Free' Terminal command\n TerminalRunScript, // Running script using 'run' Terminal command\n TerminalGoToActiveScriptsPage,\n ActiveScriptsPage,\n ActiveScriptsToTerminal,\n TerminalTailScript,\n GoToHacknetNodesPage,\n HacknetNodesIntroduction,\n HacknetNodesGoToWorldPage,\n WorldDescription,\n TutorialPageInfo,\n End,\n}\n\nconst ITutorial: {\n currStep: iTutorialSteps;\n isRunning: boolean;\n stepIsDone: {\n [iTutorialSteps.Start]: boolean;\n [iTutorialSteps.NSSelection]: boolean;\n [iTutorialSteps.GoToCharacterPage]: boolean;\n [iTutorialSteps.CharacterPage]: boolean;\n [iTutorialSteps.CharacterGoToTerminalPage]: boolean;\n [iTutorialSteps.TerminalIntro]: boolean;\n [iTutorialSteps.TerminalHelp]: boolean;\n [iTutorialSteps.TerminalLs]: boolean;\n [iTutorialSteps.TerminalScan]: boolean;\n [iTutorialSteps.TerminalScanAnalyze1]: boolean;\n [iTutorialSteps.TerminalScanAnalyze2]: boolean;\n [iTutorialSteps.TerminalConnect]: boolean;\n [iTutorialSteps.TerminalAnalyze]: boolean;\n [iTutorialSteps.TerminalNuke]: boolean;\n [iTutorialSteps.TerminalManualHack]: boolean;\n [iTutorialSteps.TerminalHackingMechanics]: boolean;\n [iTutorialSteps.TerminalGoHome]: boolean;\n [iTutorialSteps.TerminalCreateScript]: boolean;\n [iTutorialSteps.TerminalTypeScript]: boolean;\n [iTutorialSteps.TerminalFree]: boolean;\n [iTutorialSteps.TerminalRunScript]: boolean;\n [iTutorialSteps.TerminalGoToActiveScriptsPage]: boolean;\n [iTutorialSteps.ActiveScriptsPage]: boolean;\n [iTutorialSteps.ActiveScriptsToTerminal]: boolean;\n [iTutorialSteps.TerminalTailScript]: boolean;\n [iTutorialSteps.GoToHacknetNodesPage]: boolean;\n [iTutorialSteps.HacknetNodesIntroduction]: boolean;\n [iTutorialSteps.HacknetNodesGoToWorldPage]: boolean;\n [iTutorialSteps.WorldDescription]: boolean;\n [iTutorialSteps.TutorialPageInfo]: boolean;\n [iTutorialSteps.End]: boolean;\n };\n} = {\n currStep: iTutorialSteps.Start,\n isRunning: false,\n\n // Keeps track of whether each step has been done\n stepIsDone: {\n [iTutorialSteps.Start]: false,\n [iTutorialSteps.NSSelection]: false,\n [iTutorialSteps.GoToCharacterPage]: false,\n [iTutorialSteps.CharacterPage]: false,\n [iTutorialSteps.CharacterGoToTerminalPage]: false,\n [iTutorialSteps.TerminalIntro]: false,\n [iTutorialSteps.TerminalHelp]: false,\n [iTutorialSteps.TerminalLs]: false,\n [iTutorialSteps.TerminalScan]: false,\n [iTutorialSteps.TerminalScanAnalyze1]: false,\n [iTutorialSteps.TerminalScanAnalyze2]: false,\n [iTutorialSteps.TerminalConnect]: false,\n [iTutorialSteps.TerminalAnalyze]: false,\n [iTutorialSteps.TerminalNuke]: false,\n [iTutorialSteps.TerminalManualHack]: false,\n [iTutorialSteps.TerminalHackingMechanics]: false,\n [iTutorialSteps.TerminalGoHome]: false,\n [iTutorialSteps.TerminalCreateScript]: false,\n [iTutorialSteps.TerminalTypeScript]: false,\n [iTutorialSteps.TerminalFree]: false,\n [iTutorialSteps.TerminalRunScript]: false,\n [iTutorialSteps.TerminalGoToActiveScriptsPage]: false,\n [iTutorialSteps.ActiveScriptsPage]: false,\n [iTutorialSteps.ActiveScriptsToTerminal]: false,\n [iTutorialSteps.TerminalTailScript]: false,\n [iTutorialSteps.GoToHacknetNodesPage]: false,\n [iTutorialSteps.HacknetNodesIntroduction]: false,\n [iTutorialSteps.HacknetNodesGoToWorldPage]: false,\n [iTutorialSteps.WorldDescription]: false,\n [iTutorialSteps.TutorialPageInfo]: false,\n [iTutorialSteps.End]: false,\n },\n};\n\nfunction iTutorialStart(): void {\n ITutorial.isRunning = true;\n ITutorial.currStep = iTutorialSteps.Start;\n}\n\n// Go to the next step and evaluate it\nfunction iTutorialNextStep(): void {\n ITutorial.stepIsDone[ITutorial.currStep] = true;\n if (ITutorial.currStep < iTutorialSteps.End) {\n ITutorial.currStep += 1;\n }\n if (ITutorial.currStep === iTutorialSteps.End) iTutorialEnd();\n ITutorialEvents.emit();\n}\n\n// Go to previous step and evaluate\nfunction iTutorialPrevStep(): void {\n if (ITutorial.currStep > iTutorialSteps.Start) {\n ITutorial.currStep -= 1;\n }\n ITutorialEvents.emit();\n}\n\nfunction iTutorialEnd(): void {\n ITutorial.isRunning = false;\n ITutorial.currStep = iTutorialSteps.Start;\n Player.getHomeComputer().messages.push(LiteratureNames.HackersStartingHandbook);\n ITutorialEvents.emit();\n}\n\nexport { iTutorialSteps, iTutorialEnd, iTutorialStart, iTutorialNextStep, ITutorial, iTutorialPrevStep };\n","// Class representing a single hackable Server\nimport { BaseServer } from \"./BaseServer\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\nimport { createRandomString } from \"../utils/helpers/createRandomString\";\nimport { createRandomIp } from \"../utils/IPAddress\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IConstructorParams {\n adminRights?: boolean;\n hackDifficulty?: number;\n hostname: string;\n ip?: string;\n isConnectedTo?: boolean;\n maxRam?: number;\n moneyAvailable?: number;\n numOpenPortsRequired?: number;\n organizationName?: string;\n purchasedByPlayer?: boolean;\n requiredHackingSkill?: number;\n serverGrowth?: number;\n}\n\nexport class Server extends BaseServer {\n // Flag indicating whether this server has a backdoor installed by a player\n backdoorInstalled = false;\n\n // Initial server security level\n // (i.e. security level when the server was created)\n baseDifficulty = 1;\n\n // Server Security Level\n hackDifficulty = 1;\n\n // Minimum server security level that this server can be weakened to\n minDifficulty = 1;\n\n // How much money currently resides on the server and can be hacked\n moneyAvailable = 0;\n\n // Maximum amount of money that this server can hold\n moneyMax = 0;\n\n // Number of open ports required in order to gain admin/root access\n numOpenPortsRequired = 5;\n\n // How many ports are currently opened on the server\n openPortCount = 0;\n\n // Hacking level required to hack this server\n requiredHackingSkill = 1;\n\n // Parameter that affects how effectively this server's money can\n // be increased using the grow() Netscript function\n serverGrowth = 1;\n\n constructor(params: IConstructorParams = { hostname: \"\", ip: createRandomIp() }) {\n super(params);\n\n // \"hacknet-node-X\" hostnames are reserved for Hacknet Servers\n if (this.hostname.startsWith(\"hacknet-node-\")) {\n this.hostname = createRandomString(10);\n }\n\n this.purchasedByPlayer = params.purchasedByPlayer != null ? params.purchasedByPlayer : false;\n\n //RAM, CPU speed and Scripts\n this.maxRam = params.maxRam != null ? params.maxRam : 0; //GB\n\n /* Hacking information (only valid for \"foreign\" aka non-purchased servers) */\n this.requiredHackingSkill = params.requiredHackingSkill != null ? params.requiredHackingSkill : 1;\n this.moneyAvailable =\n params.moneyAvailable != null ? params.moneyAvailable * BitNodeMultipliers.ServerStartingMoney : 0;\n this.moneyMax = 25 * this.moneyAvailable * BitNodeMultipliers.ServerMaxMoney;\n\n //Hack Difficulty is synonymous with server security. Base Difficulty = Starting difficulty\n this.hackDifficulty =\n params.hackDifficulty != null ? params.hackDifficulty * BitNodeMultipliers.ServerStartingSecurity : 1;\n this.baseDifficulty = this.hackDifficulty;\n this.minDifficulty = Math.max(1, Math.round(this.hackDifficulty / 3));\n this.serverGrowth = params.serverGrowth != null ? params.serverGrowth : 1; //Integer from 0 to 100. Affects money increase from grow()\n\n //Port information, required for porthacking servers to get admin rights\n this.numOpenPortsRequired = params.numOpenPortsRequired != null ? params.numOpenPortsRequired : 5;\n }\n\n /**\n * Ensures that the server's difficulty (server security) doesn't get too high\n */\n capDifficulty(): void {\n if (this.hackDifficulty < this.minDifficulty) {\n this.hackDifficulty = this.minDifficulty;\n }\n if (this.hackDifficulty < 1) {\n this.hackDifficulty = 1;\n }\n\n // Place some arbitrarily limit that realistically should never happen unless someone is\n // screwing around with the game\n if (this.hackDifficulty > 100) {\n this.hackDifficulty = 100;\n }\n }\n\n /**\n * Change this server's minimum security\n * @param n - Value by which to increase/decrease the server's minimum security\n * @param perc - Whether it should be changed by a percentage, or a flat value\n */\n changeMinimumSecurity(n: number, perc = false): void {\n if (perc) {\n this.minDifficulty *= n;\n } else {\n this.minDifficulty += n;\n }\n\n // Server security cannot go below 1\n this.minDifficulty = Math.max(1, this.minDifficulty);\n }\n\n /**\n * Change this server's maximum money\n * @param n - Value by which to change the server's maximum money\n */\n changeMaximumMoney(n: number): void {\n const softCap = 10e12;\n if (this.moneyMax > softCap) {\n const aboveCap = this.moneyMax - softCap;\n n = 1 + (n - 1) / Math.log(aboveCap) / Math.log(8);\n }\n\n this.moneyMax *= n;\n }\n\n /**\n * Strengthens a server's security level (difficulty) by the specified amount\n */\n fortify(amt: number): void {\n this.hackDifficulty += amt;\n this.capDifficulty();\n }\n\n /**\n * Lowers the server's security level (difficulty) by the specified amount)\n */\n weaken(amt: number): void {\n this.hackDifficulty -= amt * BitNodeMultipliers.ServerWeakenRate;\n this.capDifficulty();\n }\n\n /**\n * Serialize the current object to a JSON save state\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Server\", this);\n }\n\n // Initializes a Server Object from a JSON save state\n static fromJSON(value: IReviverValue): Server {\n return Generic_fromJSON(Server, value.data);\n }\n}\n\nReviver.constructors.Server = Server;\n","import React, { useContext } from \"react\";\nimport { ICorporation } from \"../ICorporation\";\nimport { IIndustry } from \"../IIndustry\";\n\nexport const Context: {\n Corporation: React.Context;\n Division: React.Context;\n} = {\n Corporation: React.createContext({} as ICorporation),\n Division: React.createContext({} as IIndustry),\n};\n\nexport const useCorporation = (): ICorporation => useContext(Context.Corporation);\nexport const useDivision = (): IIndustry => useContext(Context.Division);\n","import React from \"react\";\nimport { ResearchTree } from \"./ResearchTree\";\nimport { ICorporation } from \"./ICorporation\";\nimport { getBaseResearchTreeCopy, getProductIndustryResearchTreeCopy } from \"./data/BaseResearchTree\";\nimport { MoneyCost } from \"./ui/MoneyCost\";\n\ninterface IIndustryMap {\n [key: string]: T | undefined;\n Energy: T;\n Utilities: T;\n Agriculture: T;\n Fishing: T;\n Mining: T;\n Food: T;\n Tobacco: T;\n Chemical: T;\n Pharmaceutical: T;\n Computer: T;\n Robotics: T;\n Software: T;\n Healthcare: T;\n RealEstate: T;\n}\n\n// Map of official names for each Industry\nexport const Industries: IIndustryMap = {\n Energy: \"Energy\",\n Utilities: \"Water Utilities\",\n Agriculture: \"Agriculture\",\n Fishing: \"Fishing\",\n Mining: \"Mining\",\n Food: \"Food\",\n Tobacco: \"Tobacco\",\n Chemical: \"Chemical\",\n Pharmaceutical: \"Pharmaceutical\",\n Computer: \"Computer Hardware\",\n Robotics: \"Robotics\",\n Software: \"Software\",\n Healthcare: \"Healthcare\",\n RealEstate: \"RealEstate\",\n};\n\n// Map of how much money it takes to start each industry\nexport const IndustryStartingCosts: IIndustryMap = {\n Energy: 225e9,\n Utilities: 150e9,\n Agriculture: 40e9,\n Fishing: 80e9,\n Mining: 300e9,\n Food: 10e9,\n Tobacco: 20e9,\n Chemical: 70e9,\n Pharmaceutical: 200e9,\n Computer: 500e9,\n Robotics: 1e12,\n Software: 25e9,\n Healthcare: 750e9,\n RealEstate: 600e9,\n};\n\n// Map of description for each industry\nexport const IndustryDescriptions: IIndustryMap<(corp: ICorporation) => React.ReactElement> = {\n Energy: (corp: ICorporation) => (\n <>\n Engage in the production and distribution of energy.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Utilities: (corp: ICorporation) => (\n <>\n Distribute water and provide wastewater services.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Agriculture: (corp: ICorporation) => (\n <>\n Cultivate crops and breed livestock to produce food.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Fishing: (corp: ICorporation) => (\n <>\n Produce food through the breeding and processing of fish and fish products.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Mining: (corp: ICorporation) => (\n <>\n Extract and process metals from the earth.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Food: (corp: ICorporation) => (\n <>\n Create your own restaurants all around the world.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Tobacco: (corp: ICorporation) => (\n <>\n Create and distribute tobacco and tobacco-related products.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Chemical: (corp: ICorporation) => (\n <>\n Produce industrial chemicals.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Pharmaceutical: (corp: ICorporation) => (\n <>\n Discover, develop, and create new pharmaceutical drugs.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Computer: (corp: ICorporation) => (\n <>\n Develop and manufacture new computer hardware and networking infrastructures.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Robotics: (corp: ICorporation) => (\n <>\n Develop and create robots.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Software: (corp: ICorporation) => (\n <>\n Develop computer software and create AI Cores.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Healthcare: (corp: ICorporation) => (\n <>\n Create and manage hospitals.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n RealEstate: (corp: ICorporation) => (\n <>\n Develop and manage real estate properties.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n};\n\n// Map of available Research for each Industry. This data is held in a\n// ResearchTree object\nexport const IndustryResearchTrees: IIndustryMap = {\n Energy: getBaseResearchTreeCopy(),\n Utilities: getBaseResearchTreeCopy(),\n Agriculture: getBaseResearchTreeCopy(),\n Fishing: getBaseResearchTreeCopy(),\n Mining: getBaseResearchTreeCopy(),\n Food: getProductIndustryResearchTreeCopy(),\n Tobacco: getProductIndustryResearchTreeCopy(),\n Chemical: getBaseResearchTreeCopy(),\n Pharmaceutical: getProductIndustryResearchTreeCopy(),\n Computer: getProductIndustryResearchTreeCopy(),\n Robotics: getProductIndustryResearchTreeCopy(),\n Software: getProductIndustryResearchTreeCopy(),\n Healthcare: getProductIndustryResearchTreeCopy(),\n RealEstate: getProductIndustryResearchTreeCopy(),\n};\n\nexport function resetIndustryResearchTrees(): void {\n IndustryResearchTrees.Energy = getBaseResearchTreeCopy();\n IndustryResearchTrees.Utilities = getBaseResearchTreeCopy();\n IndustryResearchTrees.Agriculture = getBaseResearchTreeCopy();\n IndustryResearchTrees.Fishing = getBaseResearchTreeCopy();\n IndustryResearchTrees.Mining = getBaseResearchTreeCopy();\n IndustryResearchTrees.Food = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Tobacco = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Chemical = getBaseResearchTreeCopy();\n IndustryResearchTrees.Pharmaceutical = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Computer = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Robotics = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Software = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Healthcare = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.RealEstate = getProductIndustryResearchTreeCopy();\n}\n","/**\n * Enum defining the different types of possible locations\n */\nexport enum LocationType {\n Company,\n Gym,\n Hospital,\n Slums,\n Special, // This location has special options/activities (e.g. Bladeburner, Re-sleeving)\n StockMarket,\n TechVendor,\n TravelAgency,\n University,\n Casino,\n}\n","import React from \"react\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { CONSTANTS } from \"../Constants\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Money } from \"../ui/React/Money\";\nimport { convertTimeMsToTimeElapsedString } from \"../utils/StringHelperFunctions\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { calculateClassEarnings as calculateClassEarningsRate } from \"./formulas/Class\";\nimport { Work, WorkType } from \"./Work\";\nimport { applyWorkStats, newWorkStats, sumWorkStats, WorkStats } from \"./WorkStats\";\n\nexport enum ClassType {\n StudyComputerScience = \"STUDYCOMPUTERSCIENCE\",\n DataStructures = \"DATASTRUCTURES\",\n Networks = \"NETWORKS\",\n Algorithms = \"ALGORITHMS\",\n\n Management = \"MANAGEMENT\",\n Leadership = \"LEADERSHIP\",\n\n GymStrength = \"GYMSTRENGTH\",\n GymDefense = \"GYMDEFENSE\",\n GymDexterity = \"GYMDEXTERITY\",\n GymAgility = \"GYMAGILITY\",\n}\n\nexport interface Class {\n youAreCurrently: string;\n type: ClassType;\n earnings: WorkStats;\n}\n\nexport const Classes: Record = {\n [ClassType.StudyComputerScience]: {\n youAreCurrently: \"studying Computer Science\",\n type: ClassType.StudyComputerScience,\n earnings: newWorkStats({ hackExp: 0.5, intExp: 0.01 }),\n },\n [ClassType.DataStructures]: {\n youAreCurrently: \"taking a Data Structures course\",\n type: ClassType.DataStructures,\n earnings: newWorkStats({\n money: -40,\n hackExp: 1,\n intExp: 0.01,\n }),\n },\n [ClassType.Networks]: {\n youAreCurrently: \"taking a Networks course\",\n type: ClassType.Networks,\n earnings: newWorkStats({\n money: -80,\n hackExp: 2,\n intExp: 0.01,\n }),\n },\n [ClassType.Algorithms]: {\n youAreCurrently: \"taking an Algorithms course\",\n type: ClassType.Algorithms,\n earnings: newWorkStats({\n money: -320,\n hackExp: 4,\n intExp: 0.01,\n }),\n },\n [ClassType.Management]: {\n youAreCurrently: \"taking a Management course\",\n type: ClassType.Management,\n earnings: newWorkStats({\n money: -160,\n chaExp: 2,\n intExp: 0.01,\n }),\n },\n [ClassType.Leadership]: {\n youAreCurrently: \"taking a Leadership course\",\n type: ClassType.Leadership,\n earnings: newWorkStats({\n money: -320,\n chaExp: 4,\n intExp: 0.01,\n }),\n },\n [ClassType.GymStrength]: {\n youAreCurrently: \"training your strength at a gym\",\n type: ClassType.GymStrength,\n earnings: newWorkStats({\n money: -120,\n strExp: 1,\n }),\n },\n [ClassType.GymDefense]: {\n youAreCurrently: \"training your defense at a gym\",\n type: ClassType.GymDefense,\n earnings: newWorkStats({\n money: -120,\n defExp: 1,\n }),\n },\n [ClassType.GymDexterity]: {\n youAreCurrently: \"training your dexterity at a gym\",\n type: ClassType.GymDexterity,\n earnings: newWorkStats({\n money: -120,\n dexExp: 1,\n }),\n },\n [ClassType.GymAgility]: {\n youAreCurrently: \"training your agility at a gym\",\n type: ClassType.GymAgility,\n earnings: newWorkStats({\n money: -120,\n agiExp: 1,\n }),\n },\n};\n\ninterface ClassWorkParams {\n classType: ClassType;\n location: LocationName;\n singularity: boolean;\n}\n\nexport const isClassWork = (w: Work | null): w is ClassWork => w !== null && w.type === WorkType.CLASS;\n\nexport class ClassWork extends Work {\n classType: ClassType;\n location: LocationName;\n earnings = newWorkStats();\n\n constructor(params?: ClassWorkParams) {\n super(WorkType.CLASS, params?.singularity ?? true);\n this.classType = params?.classType ?? ClassType.StudyComputerScience;\n this.location = params?.location ?? LocationName.Sector12RothmanUniversity;\n }\n\n isGym(): boolean {\n return [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymDexterity, ClassType.GymStrength].includes(\n this.classType,\n );\n }\n\n getClass(): Class {\n return Classes[this.classType];\n }\n\n calculateRates(player: IPlayer): WorkStats {\n return calculateClassEarningsRate(player, player, this.classType, this.location);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n const rate = this.calculateRates(player);\n const earnings = applyWorkStats(player, player, rate, cycles, \"class\");\n this.earnings = sumWorkStats(this.earnings, earnings);\n return false;\n }\n\n finish(): void {\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n After {this.getClass().youAreCurrently} for{\" \"}\n {convertTimeMsToTimeElapsedString(this.cyclesWorked * CONSTANTS._idleSpeed)}, \n you spent a total of . \n \n You earned a total of: \n {numeralWrapper.formatExp(this.earnings.hackExp)} hacking exp \n {numeralWrapper.formatExp(this.earnings.strExp)} strength exp \n {numeralWrapper.formatExp(this.earnings.defExp)} defense exp \n {numeralWrapper.formatExp(this.earnings.dexExp)} dexterity exp \n {numeralWrapper.formatExp(this.earnings.agiExp)} agility exp \n {numeralWrapper.formatExp(this.earnings.chaExp)} charisma exp\n \n >,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n classType: this.classType,\n location: this.location,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ClassWork\", this);\n }\n\n /**\n * Initiatizes a ClassWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): ClassWork {\n return Generic_fromJSON(ClassWork, value.data);\n }\n}\n\nReviver.constructors.ClassWork = ClassWork;\n","/**\n * Generic helper/utility functions for the Hacknet mechanic:\n * - Purchase nodes/upgrades\n * - Calculating maximum number of upgrades\n * - Processing Hacknet earnings\n * - Updating Hash Manager capacity\n * - Purchasing hash upgrades\n *\n * TODO Should probably split the different types of functions into their own modules\n */\nimport { HacknetNode } from \"./HacknetNode\";\nimport { calculateNodeCost } from \"./formulas/HacknetNodes\";\nimport { calculateServerCost } from \"./formulas/HacknetServers\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"./data/Constants\";\nimport { HacknetServer } from \"./HacknetServer\";\nimport { HashManager } from \"./HashManager\";\nimport { HashUpgrades } from \"./HashUpgrades\";\n\nimport { generateRandomContract } from \"../CodingContractGenerator\";\nimport { iTutorialSteps, iTutorialNextStep, ITutorial } from \"../InteractiveTutorial\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { Server } from \"../Server/Server\";\n\n// Returns a boolean indicating whether the player has Hacknet Servers\n// (the upgraded form of Hacknet Nodes)\nexport function hasHacknetServers(player: IPlayer): boolean {\n return player.bitNodeN === 9 || player.sourceFileLvl(9) > 0;\n}\n\nexport function purchaseHacknet(player: IPlayer): number {\n /* INTERACTIVE TUTORIAL */\n if (ITutorial.isRunning) {\n if (ITutorial.currStep === iTutorialSteps.HacknetNodesIntroduction) {\n iTutorialNextStep();\n } else {\n return -1;\n }\n }\n /* END INTERACTIVE TUTORIAL */\n\n const numOwned = player.hacknetNodes.length;\n if (hasHacknetServers(player)) {\n const cost = getCostOfNextHacknetServer(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetServer is NaN`);\n }\n\n if (!player.canAfford(cost) || numOwned >= HacknetServerConstants.MaxServers) {\n return -1;\n }\n player.loseMoney(cost, \"hacknet_expenses\");\n player.createHacknetServer();\n updateHashManagerCapacity(player);\n\n return numOwned;\n } else {\n const cost = getCostOfNextHacknetNode(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetNode is NaN`);\n }\n\n if (!player.canAfford(cost)) {\n return -1;\n }\n\n // Auto generate a name for the Node\n const name = \"hacknet-node-\" + numOwned;\n const node = new HacknetNode(name, player.mults.hacknet_node_money);\n\n player.loseMoney(cost, \"hacknet_expenses\");\n player.hacknetNodes.push(node);\n\n return numOwned;\n }\n}\n\nexport function hasMaxNumberHacknetServers(player: IPlayer): boolean {\n return hasHacknetServers(player) && player.hacknetNodes.length >= HacknetServerConstants.MaxServers;\n}\n\nexport function getCostOfNextHacknetNode(player: IPlayer): number {\n return calculateNodeCost(player.hacknetNodes.length + 1, player.mults.hacknet_node_purchase_cost);\n}\n\nexport function getCostOfNextHacknetServer(player: IPlayer): number {\n return calculateServerCost(player.hacknetNodes.length + 1, player.mults.hacknet_node_purchase_cost);\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's level\nexport function getMaxNumberLevelUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberLevelUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateLevelUpgradeCost(1, player.mults.hacknet_node_level_cost)) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.level;\n if (player.money > nodeObj.calculateLevelUpgradeCost(levelsToMax, player.mults.hacknet_node_level_cost)) {\n return levelsToMax;\n }\n\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr !== maxLevel &&\n player.money > nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost) &&\n player.money < nodeObj.calculateLevelUpgradeCost(curr + 1, player.mults.hacknet_node_level_cost)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost)) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's RAM\nexport function getMaxNumberRamUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberRamUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateRamUpgradeCost(1, player.mults.hacknet_node_ram_cost)) {\n return 0;\n }\n\n let levelsToMax;\n if (nodeObj instanceof HacknetServer) {\n levelsToMax = Math.round(Math.log2(maxLevel / nodeObj.maxRam));\n } else {\n levelsToMax = Math.round(Math.log2(maxLevel / nodeObj.ram));\n }\n if (player.money > nodeObj.calculateRamUpgradeCost(levelsToMax, player.mults.hacknet_node_ram_cost)) {\n return levelsToMax;\n }\n\n //We'll just loop until we find the max\n for (let i = levelsToMax - 1; i >= 0; --i) {\n if (player.money > nodeObj.calculateRamUpgradeCost(i, player.mults.hacknet_node_ram_cost)) {\n return i;\n }\n }\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's cores\nexport function getMaxNumberCoreUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberCoreUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateCoreUpgradeCost(1, player.mults.hacknet_node_core_cost)) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.cores;\n if (player.money > nodeObj.calculateCoreUpgradeCost(levelsToMax, player.mults.hacknet_node_core_cost)) {\n return levelsToMax;\n }\n\n // Use a binary search to find the max possible number of upgrades\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr != maxLevel &&\n player.money > nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost) &&\n player.money < nodeObj.calculateCoreUpgradeCost(curr + 1, player.mults.hacknet_node_core_cost)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost)) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's cache\nexport function getMaxNumberCacheUpgrades(player: IPlayer, nodeObj: HacknetServer, maxLevel: number): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberCacheUpgrades() called without maxLevel arg`);\n }\n\n if (!player.canAfford(nodeObj.calculateCacheUpgradeCost(1))) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.cache;\n if (player.canAfford(nodeObj.calculateCacheUpgradeCost(levelsToMax))) {\n return levelsToMax;\n }\n\n // Use a binary search to find the max possible number of upgrades\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr != maxLevel &&\n player.canAfford(nodeObj.calculateCacheUpgradeCost(curr)) &&\n !player.canAfford(nodeObj.calculateCacheUpgradeCost(curr + 1))\n ) {\n return Math.min(levelsToMax, curr);\n } else if (!player.canAfford(nodeObj.calculateCacheUpgradeCost(curr))) {\n max = curr - 1;\n } else if (player.canAfford(nodeObj.calculateCacheUpgradeCost(curr))) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n\n return 0;\n}\n\nexport function purchaseLevelUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateLevelUpgradeCost(sanitizedLevels, player.mults.hacknet_node_level_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n const isServer = node instanceof HacknetServer;\n\n // If we're at max level, return false\n if (node.level >= (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel)) {\n return false;\n }\n\n // If the number of specified upgrades would exceed the max level, calculate\n // the maximum number of upgrades and use that\n if (node.level + sanitizedLevels > (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel)) {\n const diff = Math.max(0, (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel) - node.level);\n return purchaseLevelUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeLevel(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseRamUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateRamUpgradeCost(sanitizedLevels, player.mults.hacknet_node_ram_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n if (node instanceof HacknetServer && node.maxRam >= HacknetServerConstants.MaxRam) {\n return false;\n }\n\n if (node instanceof HacknetNode && node.ram >= HacknetNodeConstants.MaxRam) {\n return false;\n }\n\n // If the number of specified upgrades would exceed the max RAM, calculate the\n // max possible number of upgrades and use that\n if (node instanceof HacknetServer) {\n if (node.maxRam * Math.pow(2, sanitizedLevels) > HacknetServerConstants.MaxRam) {\n const diff = Math.max(0, Math.log2(Math.round(HacknetServerConstants.MaxRam / node.maxRam)));\n return purchaseRamUpgrade(player, node, diff);\n }\n } else if (node instanceof HacknetNode) {\n if (node.ram * Math.pow(2, sanitizedLevels) > HacknetNodeConstants.MaxRam) {\n const diff = Math.max(0, Math.log2(Math.round(HacknetNodeConstants.MaxRam / node.ram)));\n return purchaseRamUpgrade(player, node, diff);\n }\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeRam(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseCoreUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateCoreUpgradeCost(sanitizedLevels, player.mults.hacknet_node_core_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n const isServer = node instanceof HacknetServer;\n\n // Fail if we're already at max\n if (node.cores >= (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores)) {\n return false;\n }\n\n // If the specified number of upgrades would exceed the max Cores, calculate\n // the max possible number of upgrades and use that\n if (node.cores + sanitizedLevels > (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores)) {\n const diff = Math.max(0, (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores) - node.cores);\n return purchaseCoreUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeCore(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseCacheUpgrade(player: IPlayer, node: HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateCacheUpgradeCost(sanitizedLevels);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n if (!(node instanceof HacknetServer)) {\n console.warn(`purchaseCacheUpgrade() called for a non-HacknetNode`);\n return false;\n }\n\n // Fail if we're already at max\n if (node.cache + sanitizedLevels > HacknetServerConstants.MaxCache) {\n const diff = Math.max(0, HacknetServerConstants.MaxCache - node.cache);\n return purchaseCacheUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeCache(sanitizedLevels);\n\n return true;\n}\n\nexport function processHacknetEarnings(player: IPlayer, numCycles: number): number {\n // Determine if player has Hacknet Nodes or Hacknet Servers, then\n // call the appropriate function\n if (player.hacknetNodes.length === 0) {\n return 0;\n }\n if (hasHacknetServers(player)) {\n return processAllHacknetServerEarnings(player, numCycles);\n } else if (player.hacknetNodes[0] instanceof HacknetNode) {\n return processAllHacknetNodeEarnings(player, numCycles);\n } else {\n return 0;\n }\n}\n\nfunction processAllHacknetNodeEarnings(player: IPlayer, numCycles: number): number {\n let total = 0;\n for (let i = 0; i < player.hacknetNodes.length; ++i) {\n const node = player.hacknetNodes[i];\n if (typeof node === \"string\") throw new Error(\"player node should not be ip string\");\n total += processSingleHacknetNodeEarnings(player, numCycles, node);\n }\n\n return total;\n}\n\nfunction processSingleHacknetNodeEarnings(player: IPlayer, numCycles: number, nodeObj: HacknetNode): number {\n const totalEarnings = nodeObj.process(numCycles);\n player.gainMoney(totalEarnings, \"hacknet\");\n\n return totalEarnings;\n}\n\nfunction processAllHacknetServerEarnings(player: IPlayer, numCycles: number): number {\n if (!(player.hashManager instanceof HashManager)) {\n throw new Error(`Player does not have a HashManager (should be in 'hashManager' prop)`);\n }\n\n let hashes = 0;\n for (let i = 0; i < player.hacknetNodes.length; ++i) {\n // hacknetNodes array only contains the IP addresses of the servers.\n // Also, update the hash rate before processing\n const ip = player.hacknetNodes[i];\n if (ip instanceof HacknetNode) throw new Error(`player nodes should not be HacketNode`);\n const hserver = GetServer(ip);\n if (!(hserver instanceof HacknetServer)) throw new Error(`player nodes shoud not be Server`);\n hserver.updateHashRate(player.mults.hacknet_node_money);\n const h = hserver.process(numCycles);\n hashes += h;\n }\n\n const wastedHashes = player.hashManager.storeHashes(hashes);\n if (wastedHashes > 0) {\n const upgrade = HashUpgrades[\"Sell for Money\"];\n if (upgrade === null) throw new Error(\"Could not get the hash upgrade\");\n if (!upgrade.cost) throw new Error(\"Upgrade is not properly configured\");\n\n const multiplier = wastedHashes / upgrade.cost;\n if (multiplier > 0) {\n player.gainMoney(upgrade.value * multiplier, \"hacknet\");\n }\n }\n\n return hashes;\n}\n\nexport function updateHashManagerCapacity(player: IPlayer): void {\n if (!(player.hashManager instanceof HashManager)) {\n console.error(`Player does not have a HashManager`);\n return;\n }\n\n const nodes = player.hacknetNodes;\n if (nodes.length === 0) {\n player.hashManager.updateCapacity(0);\n return;\n }\n\n let total = 0;\n for (let i = 0; i < nodes.length; ++i) {\n if (typeof nodes[i] !== \"string\") {\n player.hashManager.updateCapacity(0);\n return;\n }\n const ip = nodes[i];\n if (ip instanceof HacknetNode) throw new Error(`player nodes should be string but isn't`);\n const h = GetServer(ip);\n if (!(h instanceof HacknetServer)) {\n player.hashManager.updateCapacity(0);\n return;\n }\n\n total += h.hashCapacity;\n }\n\n player.hashManager.updateCapacity(total);\n}\n\nexport function purchaseHashUpgrade(player: IPlayer, upgName: string, upgTarget: string, count = 1): boolean {\n if (!(player.hashManager instanceof HashManager)) {\n console.error(`Player does not have a HashManager`);\n return false;\n }\n\n // HashManager handles the transaction. This just needs to actually implement\n // the effects of the upgrade\n if (player.hashManager.upgrade(upgName, count)) {\n const upg = HashUpgrades[upgName];\n\n switch (upgName) {\n case \"Sell for Money\": {\n player.gainMoney(upg.value * count, \"hacknet\");\n break;\n }\n case \"Sell for Corporation Funds\": {\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n corp.funds = corp.funds + upg.value * count;\n break;\n }\n case \"Reduce Minimum Security\": {\n try {\n const target = GetServer(upgTarget);\n if (target == null) {\n console.error(`Invalid target specified in purchaseHashUpgrade(): ${upgTarget}`);\n throw new Error(`'${upgTarget}' is not a server.`);\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n target.changeMinimumSecurity(upg.value ** count, true);\n } catch (e) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n break;\n }\n case \"Increase Maximum Money\": {\n try {\n const target = GetServer(upgTarget);\n if (target == null) {\n console.error(`Invalid target specified in purchaseHashUpgrade(): ${upgTarget}`);\n throw new Error(`'${upgTarget}' is not a server.`);\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n //Manually loop the change so as to properly handle the softcap\n for (let i = 0; i < count; i++) {\n target.changeMaximumMoney(upg.value);\n }\n } catch (e) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n break;\n }\n case \"Improve Studying\": {\n // Multiplier handled by HashManager\n break;\n }\n case \"Improve Gym Training\": {\n // Multiplier handled by HashManager\n break;\n }\n case \"Exchange for Corporation Research\": {\n // This will throw if player doesn't have a corporation\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n for (const division of corp.divisions) {\n division.sciResearch.qty += upg.value * count;\n }\n break;\n }\n case \"Exchange for Bladeburner Rank\": {\n // This will throw if player isnt in Bladeburner\n const bladeburner = player.bladeburner;\n if (bladeburner === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n bladeburner.changeRank(player, upg.value * count);\n break;\n }\n case \"Exchange for Bladeburner SP\": {\n // This will throw if player isnt in Bladeburner\n const bladeburner = player.bladeburner;\n if (bladeburner === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n\n bladeburner.skillPoints += upg.value * count;\n break;\n }\n case \"Generate Coding Contract\": {\n for (let i = 0; i < count; i++) {\n generateRandomContract();\n }\n break;\n }\n default:\n console.warn(`Unrecognized upgrade name ${upgName}. Upgrade has no effect`);\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n","import { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { IndustryStartingCosts, IndustryResearchTrees } from \"./IndustryData\";\nimport { Industry } from \"./Industry\";\nimport { CorporationConstants } from \"./data/Constants\";\nimport { OfficeSpace } from \"./OfficeSpace\";\nimport { Material } from \"./Material\";\nimport { Product } from \"./Product\";\nimport { Warehouse } from \"./Warehouse\";\nimport { CorporationUnlockUpgrade } from \"./data/CorporationUnlockUpgrades\";\nimport { CorporationUpgrade } from \"./data/CorporationUpgrades\";\nimport { Cities } from \"../Locations/Cities\";\nimport { EmployeePositions } from \"./EmployeePositions\";\nimport { ResearchMap } from \"./ResearchMap\";\nimport { isRelevantMaterial } from \"./ui/Helpers\";\n\nexport function NewIndustry(corporation: ICorporation, industry: string, name: string): void {\n if (corporation.divisions.find(({ type }) => industry == type))\n throw new Error(`You have already expanded into the ${industry} industry!`);\n\n for (let i = 0; i < corporation.divisions.length; ++i) {\n if (corporation.divisions[i].name === name) {\n throw new Error(\"This division name is already in use!\");\n }\n }\n\n const cost = IndustryStartingCosts[industry];\n if (cost === undefined) {\n throw new Error(`Invalid industry: '${industry}'`);\n }\n if (corporation.funds < cost) {\n throw new Error(\"Not enough money to create a new division in this industry\");\n } else if (name === \"\") {\n throw new Error(\"New division must have a name!\");\n } else {\n corporation.funds = corporation.funds - cost;\n corporation.divisions.push(\n new Industry({\n corp: corporation,\n name: name,\n type: industry,\n }),\n );\n }\n}\n\nexport function NewCity(corporation: ICorporation, division: IIndustry, city: string): void {\n if (corporation.funds < CorporationConstants.OfficeInitialCost) {\n throw new Error(\"You don't have enough company funds to open a new office!\");\n }\n if (division.offices[city]) {\n throw new Error(`You have already expanded into ${city} for ${division.name}`);\n }\n corporation.funds = corporation.funds - CorporationConstants.OfficeInitialCost;\n division.offices[city] = new OfficeSpace({\n loc: city,\n size: CorporationConstants.OfficeInitialSize,\n });\n}\n\nexport function UnlockUpgrade(corporation: ICorporation, upgrade: CorporationUnlockUpgrade): void {\n if (corporation.funds < upgrade.price) {\n throw new Error(\"Insufficient funds\");\n }\n if (corporation.unlockUpgrades[upgrade.index] === 1) {\n throw new Error(`You have already unlocked the ${upgrade.name} upgrade!`);\n }\n corporation.unlock(upgrade);\n}\n\nexport function LevelUpgrade(corporation: ICorporation, upgrade: CorporationUpgrade): void {\n const baseCost = upgrade.basePrice;\n const priceMult = upgrade.priceMult;\n const level = corporation.upgrades[upgrade.index];\n const cost = baseCost * Math.pow(priceMult, level);\n if (corporation.funds < cost) {\n throw new Error(\"Insufficient funds\");\n } else {\n corporation.upgrade(upgrade);\n }\n}\n\nexport function IssueDividends(corporation: ICorporation, rate: number): void {\n if (isNaN(rate) || rate < 0 || rate > CorporationConstants.DividendMaxRate) {\n throw new Error(`Invalid value. Must be an number between 0 and ${CorporationConstants.DividendMaxRate}`);\n }\n\n corporation.dividendRate = rate;\n}\n\nexport function SellMaterial(mat: Material, amt: string, price: string): void {\n if (price === \"\") price = \"0\";\n if (amt === \"\") amt = \"0\";\n let cost = price.replace(/\\s+/g, \"\");\n cost = cost.replace(/[^-()\\d/*+.MPe]/g, \"\"); //Sanitize cost\n let temp = cost.replace(/MP/g, mat.bCost + \"\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell price field: \" + e);\n }\n\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell price field\");\n }\n\n if (cost.includes(\"MP\")) {\n mat.sCost = cost; //Dynamically evaluated\n } else {\n mat.sCost = temp;\n }\n\n //Parse quantity\n amt = amt.toUpperCase();\n if (amt.includes(\"MAX\") || amt.includes(\"PROD\")) {\n let q = amt.replace(/\\s+/g, \"\");\n q = q.replace(/[^-()\\d/*+.MAXPROD]/g, \"\");\n let tempQty = q.replace(/MAX/g, mat.maxsll.toString());\n tempQty = tempQty.replace(/PROD/g, mat.prd.toString());\n try {\n tempQty = eval(tempQty);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell quantity field: \" + e);\n }\n\n if (tempQty == null || isNaN(parseFloat(tempQty)) || parseFloat(tempQty) < 0) {\n throw new Error(\"Invalid value or expression for sell quantity field\");\n }\n\n mat.sllman[0] = true;\n mat.sllman[1] = q; //Use sanitized input\n } else if (isNaN(parseFloat(amt)) || parseFloat(amt) < 0) {\n throw new Error(\"Invalid value for sell quantity field! Must be numeric or 'PROD' or 'MAX'\");\n } else {\n let q = parseFloat(amt);\n if (isNaN(q)) {\n q = 0;\n }\n if (q === 0) {\n mat.sllman[0] = false;\n mat.sllman[1] = 0;\n } else {\n mat.sllman[0] = true;\n mat.sllman[1] = q;\n }\n }\n}\n\nexport function SellProduct(product: Product, city: string, amt: string, price: string, all: boolean): void {\n //Parse price\n if (price.includes(\"MP\")) {\n //Dynamically evaluated quantity. First test to make sure its valid\n //Sanitize input, then replace dynamic variables with arbitrary numbers\n price = price.replace(/\\s+/g, \"\");\n price = price.replace(/[^-()\\d/*+.MP]/g, \"\");\n let temp = price.replace(/MP/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell price field: \" + e);\n }\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell price field.\");\n }\n product.sCost = price; //Use sanitized price\n } else {\n const cost = parseFloat(price);\n if (isNaN(cost)) {\n throw new Error(\"Invalid value for sell price field\");\n }\n product.sCost = cost;\n }\n\n // Array of all cities. Used later\n const cities = Object.keys(Cities);\n\n // Parse quantity\n amt = amt.toUpperCase();\n if (amt.includes(\"MAX\") || amt.includes(\"PROD\")) {\n //Dynamically evaluated quantity. First test to make sure its valid\n let qty = amt.replace(/\\s+/g, \"\");\n qty = qty.replace(/[^-()\\d/*+.MAXPROD]/g, \"\");\n let temp = qty.replace(/MAX/g, product.maxsll.toString());\n temp = temp.replace(/PROD/g, product.data[city][1].toString());\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell quantity field: \" + e);\n }\n\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell quantity field\");\n }\n if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = true;\n product.sllman[tempCity][1] = qty; //Use sanitized input\n }\n } else {\n product.sllman[city][0] = true;\n product.sllman[city][1] = qty; //Use sanitized input\n }\n } else if (isNaN(parseFloat(amt)) || parseFloat(amt) < 0) {\n throw new Error(\"Invalid value for sell quantity field! Must be numeric or 'PROD' or 'MAX'\");\n } else {\n let qty = parseFloat(amt);\n if (isNaN(qty)) {\n qty = 0;\n }\n if (qty === 0) {\n if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = false;\n product.sllman[tempCity][1] = \"\";\n }\n } else {\n product.sllman[city][0] = false;\n product.sllman[city][1] = \"\";\n }\n } else if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = true;\n product.sllman[tempCity][1] = qty;\n }\n } else {\n product.sllman[city][0] = true;\n product.sllman[city][1] = qty;\n }\n }\n}\n\nexport function SetSmartSupply(warehouse: Warehouse, smartSupply: boolean): void {\n warehouse.smartSupplyEnabled = smartSupply;\n}\n\nexport function SetSmartSupplyUseLeftovers(warehouse: Warehouse, material: Material, useLeftover: boolean): void {\n if (!Object.keys(warehouse.smartSupplyUseLeftovers).includes(material.name.replace(/ /g, \"\")))\n throw new Error(`Invalid material '${material.name}'`);\n warehouse.smartSupplyUseLeftovers[material.name.replace(/ /g, \"\")] = useLeftover;\n}\n\nexport function BuyMaterial(material: Material, amt: number): void {\n if (isNaN(amt) || amt < 0) {\n throw new Error(`Invalid amount '${amt}' to buy material '${material.name}'`);\n }\n material.buy = amt;\n}\n\nexport function BulkPurchase(corp: ICorporation, warehouse: Warehouse, material: Material, amt: number): void {\n const matSize = MaterialSizes[material.name];\n const maxAmount = (warehouse.size - warehouse.sizeUsed) / matSize;\n if (isNaN(amt) || amt < 0) {\n throw new Error(`Invalid input amount`);\n }\n if (amt > maxAmount) {\n throw new Error(`You do not have enough warehouse size to fit this purchase`);\n }\n const cost = amt * material.bCost;\n if (corp.funds >= cost) {\n corp.funds = corp.funds - cost;\n material.qty += amt;\n } else {\n throw new Error(`You cannot afford this purchase.`);\n }\n}\n\nexport function SellShares(corporation: ICorporation, player: IPlayer, numShares: number): number {\n if (isNaN(numShares)) throw new Error(\"Invalid value for number of shares\");\n if (numShares < 0) throw new Error(\"Invalid value for number of shares\");\n if (numShares > corporation.numShares) throw new Error(\"You don't have that many shares to sell!\");\n if (!corporation.public) throw new Error(\"You haven't gone public!\");\n if (corporation.shareSaleCooldown) throw new Error(\"Share sale on cooldown!\");\n const stockSaleResults = corporation.calculateShareSale(numShares);\n const profit = stockSaleResults[0];\n const newSharePrice = stockSaleResults[1];\n const newSharesUntilUpdate = stockSaleResults[2];\n\n corporation.numShares -= numShares;\n corporation.issuedShares += numShares;\n corporation.sharePrice = newSharePrice;\n corporation.shareSalesUntilPriceUpdate = newSharesUntilUpdate;\n corporation.shareSaleCooldown = CorporationConstants.SellSharesCooldown;\n player.gainMoney(profit, \"corporation\");\n return profit;\n}\n\nexport function BuyBackShares(corporation: ICorporation, player: IPlayer, numShares: number): boolean {\n if (isNaN(numShares)) throw new Error(\"Invalid value for number of shares\");\n if (numShares < 0) throw new Error(\"Invalid value for number of shares\");\n if (numShares > corporation.issuedShares) throw new Error(\"You don't have that many shares to buy!\");\n if (!corporation.public) throw new Error(\"You haven't gone public!\");\n const buybackPrice = corporation.sharePrice * 1.1;\n if (player.money < numShares * buybackPrice) throw new Error(\"You cant afford that many shares!\");\n corporation.numShares += numShares;\n corporation.issuedShares -= numShares;\n player.loseMoney(numShares * buybackPrice, \"corporation\");\n return true;\n}\n\nexport function AssignJob(office: OfficeSpace, employeeName: string, job: string): void {\n const employee = office.employees.find((e) => e.name === employeeName);\n\n if (!employee) throw new Error(`Could not find employee '${name}'.`);\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n\n office.assignSingleJob(employee, job);\n}\n\nexport function AutoAssignJob(office: OfficeSpace, job: string, count: number): boolean {\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n\n return office.autoAssignJob(job, count);\n}\n\nexport function UpgradeOfficeSize(corp: ICorporation, office: OfficeSpace, size: number): void {\n const initialPriceMult = Math.round(office.size / CorporationConstants.OfficeInitialSize);\n const costMultiplier = 1.09;\n // Calculate cost to upgrade size by 15 employees\n let mult = 0;\n for (let i = 0; i < size / CorporationConstants.OfficeInitialSize; ++i) {\n mult += Math.pow(costMultiplier, initialPriceMult + i);\n }\n const cost = CorporationConstants.OfficeInitialCost * mult;\n if (corp.funds < cost) return;\n office.size += size;\n corp.funds = corp.funds - cost;\n}\n\nexport function BuyCoffee(corp: ICorporation, office: OfficeSpace): boolean {\n const cost = office.getCoffeeCost();\n if (corp.funds < cost) {\n return false;\n }\n\n if (!office.setCoffee()) {\n return false;\n }\n corp.funds -= cost;\n\n return true;\n}\n\nexport function ThrowParty(corp: ICorporation, office: OfficeSpace, costPerEmployee: number): number {\n const mult = 1 + costPerEmployee / 10e6;\n const cost = costPerEmployee * office.employees.length;\n if (corp.funds < cost) {\n return 0;\n }\n\n if (!office.setParty(mult)) {\n return 0;\n }\n corp.funds -= cost;\n\n return mult;\n}\n\nexport function PurchaseWarehouse(corp: ICorporation, division: IIndustry, city: string): void {\n if (corp.funds < CorporationConstants.WarehouseInitialCost) return;\n if (division.warehouses[city] instanceof Warehouse) return;\n division.warehouses[city] = new Warehouse({\n corp: corp,\n industry: division,\n loc: city,\n size: CorporationConstants.WarehouseInitialSize,\n });\n corp.funds = corp.funds - CorporationConstants.WarehouseInitialCost;\n}\n\nexport function UpgradeWarehouseCost(warehouse: Warehouse, amt: number): number {\n return Array.from(Array(amt).keys()).reduce(\n (acc, index) => acc + CorporationConstants.WarehouseUpgradeBaseCost * Math.pow(1.07, warehouse.level + 1 + index),\n 0,\n );\n}\n\nexport function UpgradeWarehouse(corp: ICorporation, division: IIndustry, warehouse: Warehouse, amt = 1): void {\n const sizeUpgradeCost = UpgradeWarehouseCost(warehouse, amt);\n if (corp.funds < sizeUpgradeCost) return;\n warehouse.level += amt;\n warehouse.updateSize(corp, division);\n corp.funds = corp.funds - sizeUpgradeCost;\n}\n\nexport function HireAdVert(corp: ICorporation, division: IIndustry): void {\n const cost = division.getAdVertCost();\n if (corp.funds < cost) return;\n corp.funds = corp.funds - cost;\n division.applyAdVert(corp);\n}\n\nexport function MakeProduct(\n corp: ICorporation,\n division: IIndustry,\n city: string,\n productName: string,\n designInvest: number,\n marketingInvest: number,\n): void {\n if (designInvest < 0) {\n designInvest = 0;\n }\n if (marketingInvest < 0) {\n marketingInvest = 0;\n }\n if (productName == null || productName === \"\") {\n throw new Error(\"You must specify a name for your product!\");\n }\n if (!division.makesProducts) {\n throw new Error(\"You cannot create products for this industry!\");\n }\n if (isNaN(designInvest)) {\n throw new Error(\"Invalid value for design investment\");\n }\n if (isNaN(marketingInvest)) {\n throw new Error(\"Invalid value for marketing investment\");\n }\n if (corp.funds < designInvest + marketingInvest) {\n throw new Error(\"You don't have enough company funds to make this large of an investment\");\n }\n let maxProducts = 3;\n if (division.hasResearch(\"uPgrade: Capacity.II\")) {\n maxProducts = 5;\n } else if (division.hasResearch(\"uPgrade: Capacity.I\")) {\n maxProducts = 4;\n }\n const products = division.products;\n if (Object.keys(products).length >= maxProducts) {\n throw new Error(`You are already at the max products (${maxProducts}) for division: ${division.name}!`);\n }\n\n const product = new Product({\n name: productName.replace(/[<>]/g, \"\").trim(), //Sanitize for HTMl elements\n createCity: city,\n designCost: designInvest,\n advCost: marketingInvest,\n });\n if (products[product.name] instanceof Product) {\n throw new Error(`You already have a product with this name!`);\n }\n\n corp.funds = corp.funds - (designInvest + marketingInvest);\n products[product.name] = product;\n}\n\nexport function Research(division: IIndustry, researchName: string): void {\n const researchTree = IndustryResearchTrees[division.type];\n if (researchTree === undefined) throw new Error(`No research tree for industry '${division.type}'`);\n const allResearch = researchTree.getAllNodes();\n if (!allResearch.includes(researchName)) throw new Error(`No research named '${researchName}'`);\n const research = ResearchMap[researchName];\n\n if (division.sciResearch.qty < research.cost)\n throw new Error(`You do not have enough Scientific Research for ${research.name}`);\n division.sciResearch.qty -= research.cost;\n\n // Get the Node from the Research Tree and set its 'researched' property\n researchTree.research(researchName);\n division.researched[researchName] = true;\n}\n\nexport function ExportMaterial(\n divisionName: string,\n cityName: string,\n material: Material,\n amt: string,\n division?: Industry,\n): void {\n // Sanitize amt\n let sanitizedAmt = amt.replace(/\\s+/g, \"\").toUpperCase();\n sanitizedAmt = sanitizedAmt.replace(/[^-()\\d/*+.MAX]/g, \"\");\n let temp = sanitizedAmt.replace(/MAX/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid expression entered for export amount: \" + e);\n }\n\n const n = parseFloat(temp);\n\n if (n == null || isNaN(n) || n < 0) {\n throw new Error(\"Invalid amount entered for export\");\n }\n\n if (!division || !isRelevantMaterial(material.name, division)) {\n throw new Error(`You cannot export material: ${material.name} to division: ${divisionName}!`);\n }\n\n const exportObj = { ind: divisionName, city: cityName, amt: sanitizedAmt };\n material.exp.push(exportObj);\n}\n\nexport function CancelExportMaterial(divisionName: string, cityName: string, material: Material, amt: string): void {\n for (let i = 0; i < material.exp.length; ++i) {\n if (material.exp[i].ind !== divisionName || material.exp[i].city !== cityName || material.exp[i].amt !== amt)\n continue;\n material.exp.splice(i, 1);\n break;\n }\n}\n\nexport function LimitProductProduction(product: Product, cityName: string, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n product.prdman[cityName][0] = false;\n product.prdman[cityName][1] = 0;\n } else {\n product.prdman[cityName][0] = true;\n product.prdman[cityName][1] = qty;\n }\n}\n\nexport function LimitMaterialProduction(material: Material, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n material.prdman[0] = false;\n material.prdman[1] = 0;\n } else {\n material.prdman[0] = true;\n material.prdman[1] = qty;\n }\n}\n\nexport function SetMaterialMarketTA1(material: Material, on: boolean): void {\n material.marketTa1 = on;\n}\n\nexport function SetMaterialMarketTA2(material: Material, on: boolean): void {\n material.marketTa2 = on;\n}\n\nexport function SetProductMarketTA1(product: Product, on: boolean): void {\n product.marketTa1 = on;\n}\n\nexport function SetProductMarketTA2(product: Product, on: boolean): void {\n product.marketTa2 = on;\n}\n","export enum BlackOperationNames {\n OperationTyphoon = \"Operation Typhoon\",\n OperationZero = \"Operation Zero\",\n OperationX = \"Operation X\",\n OperationTitan = \"Operation Titan\",\n OperationAres = \"Operation Ares\",\n OperationArchangel = \"Operation Archangel\",\n OperationJuggernaut = \"Operation Juggernaut\",\n OperationRedDragon = \"Operation Red Dragon\",\n OperationK = \"Operation K\",\n OperationDeckard = \"Operation Deckard\",\n OperationTyrell = \"Operation Tyrell\",\n OperationWallace = \"Operation Wallace\",\n OperationShoulderOfOrion = \"Operation Shoulder of Orion\",\n OperationHyron = \"Operation Hyron\",\n OperationMorpheus = \"Operation Morpheus\",\n OperationIonStorm = \"Operation Ion Storm\",\n OperationAnnihilus = \"Operation Annihilus\",\n OperationUltron = \"Operation Ultron\",\n OperationCenturion = \"Operation Centurion\",\n OperationVindictus = \"Operation Vindictus\",\n OperationDaedalus = \"Operation Daedalus\",\n}\n","import { IPlayer } from \"../IPlayer\";\nimport { PlayerObject } from \"./PlayerObject\";\nimport { applyAugmentation } from \"../../Augmentation/AugmentationHelpers\";\nimport { PlayerOwnedAugmentation } from \"../../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CodingContractRewardType, ICodingContractReward } from \"../../CodingContracts\";\nimport { Company } from \"../../Company/Company\";\nimport { Companies } from \"../../Company/Companies\";\nimport { getNextCompanyPositionHelper } from \"../../Company/GetNextCompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\nimport { CompanyPositions } from \"../../Company/CompanyPositions\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport * as posNames from \"../../Company/data/companypositionnames\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { Programs } from \"../../Programs/Programs\";\nimport { Exploit } from \"../../Exploits/Exploit\";\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\nimport { resetGangs } from \"../../Gang/AllGangs\";\nimport { Cities } from \"../../Locations/Cities\";\nimport { Locations } from \"../../Locations/Locations\";\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { Sleeve } from \"../Sleeve/Sleeve\";\nimport {\n calculateSkill as calculateSkillF,\n calculateSkillProgress as calculateSkillProgressF,\n ISkillProgress,\n} from \"../formulas/skill\";\nimport { calculateIntelligenceBonus } from \"../formulas/intelligence\";\nimport { GetServer, AddToAllServers, createUniqueRandomIp } from \"../../Server/AllServers\";\nimport { Server } from \"../../Server/Server\";\nimport { safetlyCreateUniqueServer } from \"../../Server/ServerHelpers\";\n\nimport { SpecialServers } from \"../../Server/data/SpecialServers\";\nimport { applySourceFile } from \"../../SourceFile/applySourceFile\";\nimport { applyExploit } from \"../../Exploits/applyExploits\";\nimport { SourceFiles } from \"../../SourceFile/SourceFiles\";\nimport { getHospitalizationCost } from \"../../Hospital/Hospital\";\nimport { HacknetServer } from \"../../Hacknet/HacknetServer\";\n\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { MoneySourceTracker } from \"../../utils/MoneySourceTracker\";\nimport { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\nimport { SnackbarEvents, ToastVariant } from \"../../ui/React/Snackbar\";\nimport { achievements } from \"../../Achievements/Achievements\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\nimport { ITaskTracker } from \"../ITaskTracker\";\nimport { IPerson } from \"../IPerson\";\nimport { Player } from \"../../Player\";\n\nimport { isCompanyWork } from \"../../Work/CompanyWork\";\nimport { defaultMultipliers } from \"../Multipliers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\n\nexport function init(this: IPlayer): void {\n /* Initialize Player's home computer */\n const t_homeComp = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: \"home\",\n ip: createUniqueRandomIp(),\n isConnectedTo: true,\n maxRam: 8,\n organizationName: \"Home PC\",\n purchasedByPlayer: true,\n });\n this.currentServer = SpecialServers.Home;\n AddToAllServers(t_homeComp);\n\n this.getHomeComputer().programs.push(Programs.NukeProgram.name);\n}\n\nexport function prestigeAugmentation(this: PlayerObject): void {\n this.currentServer = SpecialServers.Home;\n\n this.numPeopleKilled = 0;\n\n //Reset stats\n this.skills.hacking = 1;\n\n this.skills.strength = 1;\n this.skills.defense = 1;\n this.skills.dexterity = 1;\n this.skills.agility = 1;\n\n this.skills.charisma = 1;\n\n this.exp.hacking = 0;\n this.exp.strength = 0;\n this.exp.defense = 0;\n this.exp.dexterity = 0;\n this.exp.agility = 0;\n this.exp.charisma = 0;\n\n this.money = 1000 + CONSTANTS.Donations;\n\n this.city = CityName.Sector12;\n this.location = LocationName.TravelAgency;\n\n this.jobs = {};\n\n this.purchasedServers = [];\n\n this.factions = [];\n this.factionInvitations = [];\n\n this.queuedAugmentations = [];\n\n const numSleeves = Math.min(3, this.sourceFileLvl(10) + (this.bitNodeN === 10 ? 1 : 0)) + this.sleevesFromCovenant;\n if (this.sleeves.length > numSleeves) this.sleeves.length = numSleeves;\n for (let i = this.sleeves.length; i < numSleeves; i++) {\n this.sleeves.push(new Sleeve(this));\n }\n\n for (let i = 0; i < this.sleeves.length; ++i) {\n if (this.sleeves[i] instanceof Sleeve) {\n if (this.sleeves[i].shock >= 100) {\n this.sleeves[i].synchronize(this);\n } else {\n this.sleeves[i].shockRecovery(this);\n }\n }\n }\n\n this.lastUpdate = new Date().getTime();\n\n // Statistics Trackers\n this.playtimeSinceLastAug = 0;\n this.scriptProdSinceLastAug = 0;\n this.moneySourceA.reset();\n\n this.hacknetNodes.length = 0;\n this.hashManager.prestige();\n\n // Reapply augs, re-calculate skills and reset HP\n this.reapplyAllAugmentations(true);\n this.hp.current = this.hp.max;\n\n this.finishWork(true);\n}\n\nexport function prestigeSourceFile(this: IPlayer): void {\n this.entropy = 0;\n this.prestigeAugmentation();\n this.karma = 0;\n // Duplicate sleeves are reset to level 1 every Bit Node (but the number of sleeves you have persists)\n for (let i = 0; i < this.sleeves.length; ++i) {\n if (this.sleeves[i] instanceof Sleeve) {\n this.sleeves[i].prestige(this);\n } else {\n this.sleeves[i] = new Sleeve(this);\n }\n }\n\n if (this.bitNodeN === 10) {\n for (let i = 0; i < this.sleeves.length; i++) {\n this.sleeves[i].shock = Math.max(25, this.sleeves[i].shock);\n this.sleeves[i].sync = Math.max(25, this.sleeves[i].sync);\n }\n }\n\n // Gang\n this.gang = null;\n resetGangs();\n\n // Reset Stock market\n this.hasWseAccount = false;\n this.hasTixApiAccess = false;\n this.has4SData = false;\n this.has4SDataTixApi = false;\n\n // BitNode 3: Corporatocracy\n this.corporation = null;\n\n this.moneySourceB.reset();\n this.playtimeSinceLastBitnode = 0;\n this.augmentations = [];\n}\n\nexport function receiveInvite(this: IPlayer, factionName: string): void {\n if (this.factionInvitations.includes(factionName) || this.factions.includes(factionName)) {\n return;\n }\n this.factionInvitations.push(factionName);\n}\n\n//Calculates skill level based on experience. The same formula will be used for every skill\nexport function calculateSkill(this: IPerson, exp: number, mult = 1): number {\n return calculateSkillF(exp, mult);\n}\n\n//Calculates skill level progress based on experience. The same formula will be used for every skill\nexport function calculateSkillProgress(this: IPlayer, exp: number, mult = 1): ISkillProgress {\n return calculateSkillProgressF(exp, mult);\n}\n\nexport function updateSkillLevels(this: IPlayer): void {\n this.skills.hacking = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.hacking, this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier)),\n );\n this.skills.strength = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.strength, this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier),\n ),\n );\n this.skills.defense = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.defense, this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier)),\n );\n this.skills.dexterity = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.dexterity, this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier),\n ),\n );\n this.skills.agility = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.agility, this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier)),\n );\n this.skills.charisma = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.charisma, this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier),\n ),\n );\n\n if (this.skills.intelligence > 0) {\n this.skills.intelligence = Math.floor(this.calculateSkill(this.exp.intelligence));\n } else {\n this.skills.intelligence = 0;\n }\n\n const ratio = this.hp.current / this.hp.max;\n this.hp.max = Math.floor(10 + this.skills.defense / 10);\n this.hp.current = Math.round(this.hp.max * ratio);\n}\n\nexport function resetMultipliers(this: IPlayer): void {\n this.mults = defaultMultipliers();\n}\n\nexport function hasProgram(this: IPlayer, programName: string): boolean {\n const home = this.getHomeComputer();\n if (home == null) {\n return false;\n }\n\n for (let i = 0; i < home.programs.length; ++i) {\n if (programName.toLowerCase() == home.programs[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n}\n\nexport function setMoney(this: PlayerObject, money: number): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.setMoney()\");\n return;\n }\n this.money = money;\n}\n\nexport function gainMoney(this: PlayerObject, money: number, source: string): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.gainMoney()\");\n return;\n }\n\n this.money = this.money + money;\n this.recordMoneySource(money, source);\n}\n\nexport function loseMoney(this: PlayerObject, money: number, source: string): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.loseMoney()\");\n return;\n }\n if (this.money === Infinity && money === Infinity) return;\n this.money = this.money - money;\n this.recordMoneySource(-1 * money, source);\n}\n\nexport function canAfford(this: IPlayer, cost: number): boolean {\n if (isNaN(cost)) {\n console.error(`NaN passed into Player.canAfford()`);\n return false;\n }\n return this.money >= cost;\n}\n\nexport function recordMoneySource(this: PlayerObject, amt: number, source: string): void {\n if (!(this.moneySourceA instanceof MoneySourceTracker)) {\n console.warn(`Player.moneySourceA was not properly initialized. Resetting`);\n this.moneySourceA = new MoneySourceTracker();\n }\n if (!(this.moneySourceB instanceof MoneySourceTracker)) {\n console.warn(`Player.moneySourceB was not properly initialized. Resetting`);\n this.moneySourceB = new MoneySourceTracker();\n }\n this.moneySourceA.record(amt, source);\n this.moneySourceB.record(amt, source);\n}\n\nexport function gainHackingExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainHackingExp()\");\n return;\n }\n this.exp.hacking += exp;\n if (this.exp.hacking < 0) {\n this.exp.hacking = 0;\n }\n\n this.skills.hacking = calculateSkillF(\n this.exp.hacking,\n this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,\n );\n}\n\nexport function gainStrengthExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainStrengthExp()\");\n return;\n }\n this.exp.strength += exp;\n if (this.exp.strength < 0) {\n this.exp.strength = 0;\n }\n\n this.skills.strength = calculateSkillF(\n this.exp.strength,\n this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,\n );\n}\n\nexport function gainDefenseExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into player.gainDefenseExp()\");\n return;\n }\n this.exp.defense += exp;\n if (this.exp.defense < 0) {\n this.exp.defense = 0;\n }\n\n this.skills.defense = calculateSkillF(\n this.exp.defense,\n this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,\n );\n const ratio = this.hp.current / this.hp.max;\n this.hp.max = Math.floor(10 + this.skills.defense / 10);\n this.hp.current = Math.round(this.hp.max * ratio);\n}\n\nexport function gainDexterityExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainDexterityExp()\");\n return;\n }\n this.exp.dexterity += exp;\n if (this.exp.dexterity < 0) {\n this.exp.dexterity = 0;\n }\n\n this.skills.dexterity = calculateSkillF(\n this.exp.dexterity,\n this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,\n );\n}\n\nexport function gainAgilityExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainAgilityExp()\");\n return;\n }\n this.exp.agility += exp;\n if (this.exp.agility < 0) {\n this.exp.agility = 0;\n }\n\n this.skills.agility = calculateSkillF(\n this.exp.agility,\n this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,\n );\n}\n\nexport function gainCharismaExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainCharismaExp()\");\n return;\n }\n this.exp.charisma += exp;\n if (this.exp.charisma < 0) {\n this.exp.charisma = 0;\n }\n\n this.skills.charisma = calculateSkillF(\n this.exp.charisma,\n this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,\n );\n}\n\nexport function gainIntelligenceExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERROR: NaN passed into Player.gainIntelligenceExp()\");\n return;\n }\n if (Player.sourceFileLvl(5) > 0 || this.skills.intelligence > 0 || Player.bitNodeN === 5) {\n this.exp.intelligence += exp;\n this.skills.intelligence = Math.floor(this.calculateSkill(this.exp.intelligence, 1));\n }\n}\n\nexport function gainStats(this: IPerson, retValue: ITaskTracker): void {\n this.gainHackingExp(retValue.hack * this.mults.hacking_exp);\n this.gainStrengthExp(retValue.str * this.mults.strength_exp);\n this.gainDefenseExp(retValue.def * this.mults.defense_exp);\n this.gainDexterityExp(retValue.dex * this.mults.dexterity_exp);\n this.gainAgilityExp(retValue.agi * this.mults.agility_exp);\n this.gainCharismaExp(retValue.cha * this.mults.charisma_exp);\n this.gainIntelligenceExp(retValue.int);\n}\n\n//Given a string expression like \"str\" or \"strength\", returns the given stat\nexport function queryStatFromString(this: IPlayer, str: string): number {\n const tempStr = str.toLowerCase();\n if (tempStr.includes(\"hack\")) {\n return this.skills.hacking;\n }\n if (tempStr.includes(\"str\")) {\n return this.skills.strength;\n }\n if (tempStr.includes(\"def\")) {\n return this.skills.defense;\n }\n if (tempStr.includes(\"dex\")) {\n return this.skills.dexterity;\n }\n if (tempStr.includes(\"agi\")) {\n return this.skills.agility;\n }\n if (tempStr.includes(\"cha\")) {\n return this.skills.charisma;\n }\n if (tempStr.includes(\"int\")) {\n return this.skills.intelligence;\n }\n return 0;\n}\n\nexport function startFocusing(this: IPlayer): void {\n this.focus = true;\n}\n\nexport function stopFocusing(this: IPlayer): void {\n this.focus = false;\n}\n\n// Returns true if hospitalized, false otherwise\nexport function takeDamage(this: IPlayer, amt: number): boolean {\n if (typeof amt !== \"number\") {\n console.warn(`Player.takeDamage() called without a numeric argument: ${amt}`);\n return false;\n }\n\n this.hp.current -= amt;\n if (this.hp.current <= 0) {\n this.hospitalize();\n return true;\n } else {\n return false;\n }\n}\n\nexport function regenerateHp(this: IPerson, amt: number): void {\n if (typeof amt !== \"number\") {\n console.warn(`Player.regenerateHp() called without a numeric argument: ${amt}`);\n return;\n }\n this.hp.current += amt;\n if (this.hp.current > this.hp.max) {\n this.hp.current = this.hp.max;\n }\n}\n\nexport function hospitalize(this: IPlayer): number {\n const cost = getHospitalizationCost(this);\n SnackbarEvents.emit(`You've been Hospitalized for ${numeralWrapper.formatMoney(cost)}`, ToastVariant.WARNING, 2000);\n\n this.loseMoney(cost, \"hospitalization\");\n this.hp.current = this.hp.max;\n return cost;\n}\n\n/********* Company job application **********/\n//Determines the job that the Player should get (if any) at the current company\n//The 'sing' argument designates whether or not this is being called from\n//the applyToCompany() Netscript Singularity function\nexport function applyForJob(this: IPlayer, entryPosType: CompanyPosition, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (!(company instanceof Company)) {\n console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`);\n return false;\n }\n\n let pos = entryPosType;\n\n if (!this.isQualified(company, pos)) {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position \" + getJobRequirementText(company, pos));\n }\n return false;\n }\n\n if (!company.hasPosition(pos)) {\n console.error(`Company ${company.name} does not have position ${pos}. Player.applyToCompany() failed`);\n return false;\n }\n\n while (true) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null) break;\n if (company.hasPosition(nextPos) && this.isQualified(company, nextPos)) {\n pos = nextPos;\n } else break;\n }\n\n //Check if player already has the assigned job\n if (this.jobs[company.name] === pos.name) {\n if (!sing) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null || !company.hasPosition(nextPos)) {\n dialogBoxCreate(\"You are already at the highest position for your field! No promotion available\");\n } else {\n const reqText = getJobRequirementText(company, nextPos);\n dialogBoxCreate(\"Unfortunately, you do not qualify for a promotion \" + reqText);\n }\n }\n return false;\n }\n\n this.jobs[company.name] = pos.name;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations! You were offered a new job at \" + company.name + \" as a \" + pos.name + \"!\");\n }\n return true;\n}\n\n//Returns your next position at a company given the field (software, business, etc.)\nexport function getNextCompanyPosition(\n this: IPlayer,\n company: Company,\n entryPosType: CompanyPosition,\n): CompanyPosition | null {\n const currCompany = Companies[company.name];\n\n //Not employed at this company, so return the entry position\n if (currCompany == null || currCompany.name != company.name) {\n return entryPosType;\n }\n\n //If the entry pos type and the player's current position have the same type,\n //return the player's \"nextCompanyPosition\". Otherwise return the entryposType\n //Employed at this company, so just return the next position if it exists.\n const currentPositionName = this.jobs[company.name];\n if (!currentPositionName) return entryPosType;\n const currentPosition = CompanyPositions[currentPositionName];\n if (\n (currentPosition.isSoftwareJob() && entryPosType.isSoftwareJob()) ||\n (currentPosition.isITJob() && entryPosType.isITJob()) ||\n (currentPosition.isBusinessJob() && entryPosType.isBusinessJob()) ||\n (currentPosition.isSecurityEngineerJob() && entryPosType.isSecurityEngineerJob()) ||\n (currentPosition.isNetworkEngineerJob() && entryPosType.isNetworkEngineerJob()) ||\n (currentPosition.isSecurityJob() && entryPosType.isSecurityJob()) ||\n (currentPosition.isAgentJob() && entryPosType.isAgentJob()) ||\n (currentPosition.isSoftwareConsultantJob() && entryPosType.isSoftwareConsultantJob()) ||\n (currentPosition.isBusinessConsultantJob() && entryPosType.isBusinessConsultantJob()) ||\n (currentPosition.isPartTimeJob() && entryPosType.isPartTimeJob())\n ) {\n return getNextCompanyPositionHelper(currentPosition);\n }\n\n return entryPosType;\n}\n\nexport function quitJob(this: IPlayer, company: string): void {\n if (isCompanyWork(this.currentWork) && this.currentWork.companyName === company) {\n this.finishWork(true);\n }\n delete this.jobs[company];\n}\n\n/**\n * Method to see if the player has at least one job assigned to them\n * @param this The player instance\n * @returns Whether the user has at least one job\n */\nexport function hasJob(this: IPlayer): boolean {\n return Boolean(Object.keys(this.jobs).length);\n}\n\nexport function applyForSoftwareJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareCompanyPositions[0]], sing);\n}\n\nexport function applyForSoftwareConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForItJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.ITCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]])) {\n return this.applyForJob(CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]], sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForNetworkEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForBusinessJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessCompanyPositions[0]], sing);\n}\n\nexport function applyForBusinessConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityJob(this: IPlayer, sing = false): boolean {\n // TODO Police Jobs\n // Indexing starts at 2 because 0 is for police officer\n return this.applyForJob(CompanyPositions[posNames.SecurityCompanyPositions[2]], sing);\n}\n\nexport function applyForAgentJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.AgentCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.AgentCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForPartTimeEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed part-time at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForPartTimeWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a part-time waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\n//Checks if the Player is qualified for a certain position\nexport function isQualified(this: IPlayer, company: Company, position: CompanyPosition): boolean {\n const offset = company.jobStatReqOffset;\n const reqHacking = position.requiredHacking > 0 ? position.requiredHacking + offset : 0;\n const reqStrength = position.requiredStrength > 0 ? position.requiredStrength + offset : 0;\n const reqDefense = position.requiredDefense > 0 ? position.requiredDefense + offset : 0;\n const reqDexterity = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqAgility = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqCharisma = position.requiredCharisma > 0 ? position.requiredCharisma + offset : 0;\n\n return (\n this.skills.hacking >= reqHacking &&\n this.skills.strength >= reqStrength &&\n this.skills.defense >= reqDefense &&\n this.skills.dexterity >= reqDexterity &&\n this.skills.agility >= reqAgility &&\n this.skills.charisma >= reqCharisma &&\n company.playerReputation >= position.requiredReputation\n );\n}\n\n/********** Reapplying Augmentations and Source File ***********/\nexport function reapplyAllAugmentations(this: IPlayer, resetMultipliers = true): void {\n if (resetMultipliers) {\n this.resetMultipliers();\n }\n\n for (let i = 0; i < this.augmentations.length; ++i) {\n //Compatibility with new version\n if (this.augmentations[i].name === \"HacknetNode NIC Architecture Neural-Upload\") {\n this.augmentations[i].name = \"Hacknet Node NIC Architecture Neural-Upload\";\n }\n\n const playerAug = this.augmentations[i];\n const augName = playerAug.name;\n\n if (augName == AugmentationNames.NeuroFluxGovernor) {\n for (let j = 0; j < playerAug.level; ++j) {\n applyAugmentation(this.augmentations[i], true);\n }\n continue;\n }\n applyAugmentation(this.augmentations[i], true);\n }\n\n this.updateSkillLevels();\n}\n\nexport function reapplyAllSourceFiles(this: IPlayer): void {\n //Will always be called after reapplyAllAugmentations() so multipliers do not have to be reset\n //this.resetMultipliers();\n\n for (let i = 0; i < this.sourceFiles.length; ++i) {\n const srcFileKey = \"SourceFile\" + this.sourceFiles[i].n;\n const sourceFileObject = SourceFiles[srcFileKey];\n if (sourceFileObject == null) {\n console.error(`Invalid source file number: ${this.sourceFiles[i].n}`);\n continue;\n }\n applySourceFile(this.sourceFiles[i]);\n }\n applyExploit();\n this.updateSkillLevels();\n}\n\n/*************** Check for Faction Invitations *************/\n//This function sets the requirements to join a Faction. It checks whether the Player meets\n//those requirements and will return an array of all factions that the Player should\n//receive an invitation to\nexport function checkForFactionInvitations(this: IPlayer): Faction[] {\n const invitedFactions: Faction[] = []; //Array which will hold all Factions the player should be invited to\n\n const numAugmentations = this.augmentations.length;\n\n const allCompanies = Object.keys(this.jobs);\n const allPositions = Object.values(this.jobs);\n\n // Given a company name, safely returns the reputation (returns 0 if invalid company is specified)\n function getCompanyRep(companyName: string): number {\n const company = Companies[companyName];\n if (company == null) {\n return 0;\n } else {\n return company.playerReputation;\n }\n }\n\n // Helper function that returns a boolean indicating whether the Player meets\n // the requirements for the specified company. There are two requirements:\n // 1. High enough reputation\n // 2. Player is employed at the company\n function checkMegacorpRequirements(companyName: string): boolean {\n const serverMeta = serverMetadata.find((s) => s.specialName === companyName);\n const server = GetServer(serverMeta ? serverMeta.hostname : \"\");\n const bonus = (server as Server).backdoorInstalled ? -100e3 : 0;\n return (\n allCompanies.includes(companyName) && getCompanyRep(companyName) > CONSTANTS.CorpFactionRepRequirement + bonus\n );\n }\n\n //Illuminati\n const illuminatiFac = Factions[FactionNames.Illuminati];\n if (\n !illuminatiFac.isBanned &&\n !illuminatiFac.isMember &&\n !illuminatiFac.alreadyInvited &&\n numAugmentations >= 30 &&\n this.money >= 150000000000 &&\n this.skills.hacking >= 1500 &&\n this.skills.strength >= 1200 &&\n this.skills.defense >= 1200 &&\n this.skills.dexterity >= 1200 &&\n this.skills.agility >= 1200\n ) {\n invitedFactions.push(illuminatiFac);\n }\n\n //Daedalus\n const daedalusFac = Factions[FactionNames.Daedalus];\n if (\n !daedalusFac.isBanned &&\n !daedalusFac.isMember &&\n !daedalusFac.alreadyInvited &&\n numAugmentations >= BitNodeMultipliers.DaedalusAugsRequirement &&\n this.money >= 100000000000 &&\n (this.skills.hacking >= 2500 ||\n (this.skills.strength >= 1500 &&\n this.skills.defense >= 1500 &&\n this.skills.dexterity >= 1500 &&\n this.skills.agility >= 1500))\n ) {\n invitedFactions.push(daedalusFac);\n }\n\n //The Covenant\n const covenantFac = Factions[FactionNames.TheCovenant];\n if (\n !covenantFac.isBanned &&\n !covenantFac.isMember &&\n !covenantFac.alreadyInvited &&\n numAugmentations >= 20 &&\n this.money >= 75000000000 &&\n this.skills.hacking >= 850 &&\n this.skills.strength >= 850 &&\n this.skills.defense >= 850 &&\n this.skills.dexterity >= 850 &&\n this.skills.agility >= 850\n ) {\n invitedFactions.push(covenantFac);\n }\n\n //ECorp\n const ecorpFac = Factions[FactionNames.ECorp];\n if (\n !ecorpFac.isBanned &&\n !ecorpFac.isMember &&\n !ecorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumECorp)\n ) {\n invitedFactions.push(ecorpFac);\n }\n\n //MegaCorp\n const megacorpFac = Factions[FactionNames.MegaCorp];\n if (\n !megacorpFac.isBanned &&\n !megacorpFac.isMember &&\n !megacorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12MegaCorp)\n ) {\n invitedFactions.push(megacorpFac);\n }\n\n //Bachman & Associates\n const bachmanandassociatesFac = Factions[FactionNames.BachmanAssociates];\n if (\n !bachmanandassociatesFac.isBanned &&\n !bachmanandassociatesFac.isMember &&\n !bachmanandassociatesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumBachmanAndAssociates)\n ) {\n invitedFactions.push(bachmanandassociatesFac);\n }\n\n //Blade Industries\n const bladeindustriesFac = Factions[FactionNames.BladeIndustries];\n if (\n !bladeindustriesFac.isBanned &&\n !bladeindustriesFac.isMember &&\n !bladeindustriesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12BladeIndustries)\n ) {\n invitedFactions.push(bladeindustriesFac);\n }\n\n //NWO\n const nwoFac = Factions[FactionNames.NWO];\n if (\n !nwoFac.isBanned &&\n !nwoFac.isMember &&\n !nwoFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenNWO)\n ) {\n invitedFactions.push(nwoFac);\n }\n\n //Clarke Incorporated\n const clarkeincorporatedFac = Factions[FactionNames.ClarkeIncorporated];\n if (\n !clarkeincorporatedFac.isBanned &&\n !clarkeincorporatedFac.isMember &&\n !clarkeincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumClarkeIncorporated)\n ) {\n invitedFactions.push(clarkeincorporatedFac);\n }\n\n //OmniTek Incorporated\n const omnitekincorporatedFac = Factions[FactionNames.OmniTekIncorporated];\n if (\n !omnitekincorporatedFac.isBanned &&\n !omnitekincorporatedFac.isMember &&\n !omnitekincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenOmniTekIncorporated)\n ) {\n invitedFactions.push(omnitekincorporatedFac);\n }\n\n //Four Sigma\n const foursigmaFac = Factions[FactionNames.FourSigma];\n if (\n !foursigmaFac.isBanned &&\n !foursigmaFac.isMember &&\n !foursigmaFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12FourSigma)\n ) {\n invitedFactions.push(foursigmaFac);\n }\n\n //KuaiGong International\n const kuaigonginternationalFac = Factions[FactionNames.KuaiGongInternational];\n if (\n !kuaigonginternationalFac.isBanned &&\n !kuaigonginternationalFac.isMember &&\n !kuaigonginternationalFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.ChongqingKuaiGongInternational)\n ) {\n invitedFactions.push(kuaigonginternationalFac);\n }\n\n //Fulcrum Secret Technologies - If u've unlocked fulcrum secret technolgoies server and have a high rep with the company\n const fulcrumsecrettechonologiesFac = Factions[FactionNames.FulcrumSecretTechnologies];\n const fulcrumSecretServer = GetServer(SpecialServers.FulcrumSecretTechnologies);\n if (!(fulcrumSecretServer instanceof Server))\n throw new Error(`${FactionNames.FulcrumSecretTechnologies} should be normal server`);\n if (fulcrumSecretServer == null) {\n console.error(`Could not find ${FactionNames.FulcrumSecretTechnologies} Server`);\n } else if (\n !fulcrumsecrettechonologiesFac.isBanned &&\n !fulcrumsecrettechonologiesFac.isMember &&\n !fulcrumsecrettechonologiesFac.alreadyInvited &&\n fulcrumSecretServer.backdoorInstalled &&\n checkMegacorpRequirements(LocationName.AevumFulcrumTechnologies)\n ) {\n invitedFactions.push(fulcrumsecrettechonologiesFac);\n }\n\n //BitRunners\n const bitrunnersFac = Factions[FactionNames.BitRunners];\n const bitrunnersServer = GetServer(SpecialServers.BitRunnersServer);\n if (!(bitrunnersServer instanceof Server)) throw new Error(`${FactionNames.BitRunners} should be normal server`);\n if (bitrunnersServer == null) {\n console.error(`Could not find ${FactionNames.BitRunners} Server`);\n } else if (\n !bitrunnersFac.isBanned &&\n !bitrunnersFac.isMember &&\n bitrunnersServer.backdoorInstalled &&\n !bitrunnersFac.alreadyInvited\n ) {\n invitedFactions.push(bitrunnersFac);\n }\n\n //The Black Hand\n\n const theblackhandFac = Factions[FactionNames.TheBlackHand];\n const blackhandServer = GetServer(SpecialServers.TheBlackHandServer);\n if (!(blackhandServer instanceof Server)) throw new Error(`${FactionNames.TheBlackHand} should be normal server`);\n if (blackhandServer == null) {\n console.error(`Could not find ${FactionNames.TheBlackHand} Server`);\n } else if (\n !theblackhandFac.isBanned &&\n !theblackhandFac.isMember &&\n blackhandServer.backdoorInstalled &&\n !theblackhandFac.alreadyInvited\n ) {\n invitedFactions.push(theblackhandFac);\n }\n\n //NiteSec\n const nitesecFac = Factions[FactionNames.NiteSec];\n const nitesecServer = GetServer(SpecialServers.NiteSecServer);\n if (!(nitesecServer instanceof Server)) throw new Error(`${FactionNames.NiteSec} should be normal server`);\n if (nitesecServer == null) {\n console.error(`Could not find ${FactionNames.NiteSec} Server`);\n } else if (\n !nitesecFac.isBanned &&\n !nitesecFac.isMember &&\n nitesecServer.backdoorInstalled &&\n !nitesecFac.alreadyInvited\n ) {\n invitedFactions.push(nitesecFac);\n }\n\n //Chongqing\n const chongqingFac = Factions[FactionNames.Chongqing];\n if (\n !chongqingFac.isBanned &&\n !chongqingFac.isMember &&\n !chongqingFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.Chongqing\n ) {\n invitedFactions.push(chongqingFac);\n }\n\n //Sector-12\n const sector12Fac = Factions[FactionNames.Sector12];\n if (\n !sector12Fac.isBanned &&\n !sector12Fac.isMember &&\n !sector12Fac.alreadyInvited &&\n this.money >= 15000000 &&\n this.city == CityName.Sector12\n ) {\n invitedFactions.push(sector12Fac);\n }\n\n //New Tokyo\n const newtokyoFac = Factions[FactionNames.NewTokyo];\n if (\n !newtokyoFac.isBanned &&\n !newtokyoFac.isMember &&\n !newtokyoFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.NewTokyo\n ) {\n invitedFactions.push(newtokyoFac);\n }\n\n //Aevum\n const aevumFac = Factions[FactionNames.Aevum];\n if (\n !aevumFac.isBanned &&\n !aevumFac.isMember &&\n !aevumFac.alreadyInvited &&\n this.money >= 40000000 &&\n this.city == CityName.Aevum\n ) {\n invitedFactions.push(aevumFac);\n }\n\n //Ishima\n const ishimaFac = Factions[FactionNames.Ishima];\n if (\n !ishimaFac.isBanned &&\n !ishimaFac.isMember &&\n !ishimaFac.alreadyInvited &&\n this.money >= 30000000 &&\n this.city == CityName.Ishima\n ) {\n invitedFactions.push(ishimaFac);\n }\n\n //Volhaven\n const volhavenFac = Factions[FactionNames.Volhaven];\n if (\n !volhavenFac.isBanned &&\n !volhavenFac.isMember &&\n !volhavenFac.alreadyInvited &&\n this.money >= 50000000 &&\n this.city == CityName.Volhaven\n ) {\n invitedFactions.push(volhavenFac);\n }\n\n //Speakers for the Dead\n const speakersforthedeadFac = Factions[FactionNames.SpeakersForTheDead];\n if (\n !speakersforthedeadFac.isBanned &&\n !speakersforthedeadFac.isMember &&\n !speakersforthedeadFac.alreadyInvited &&\n this.skills.hacking >= 100 &&\n this.skills.strength >= 300 &&\n this.skills.defense >= 300 &&\n this.skills.dexterity >= 300 &&\n this.skills.agility >= 300 &&\n this.numPeopleKilled >= 30 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(speakersforthedeadFac);\n }\n\n //The Dark Army\n const thedarkarmyFac = Factions[FactionNames.TheDarkArmy];\n if (\n !thedarkarmyFac.isBanned &&\n !thedarkarmyFac.isMember &&\n !thedarkarmyFac.alreadyInvited &&\n this.skills.hacking >= 300 &&\n this.skills.strength >= 300 &&\n this.skills.defense >= 300 &&\n this.skills.dexterity >= 300 &&\n this.skills.agility >= 300 &&\n this.city == CityName.Chongqing &&\n this.numPeopleKilled >= 5 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thedarkarmyFac);\n }\n\n //The Syndicate\n const thesyndicateFac = Factions[FactionNames.TheSyndicate];\n if (\n !thesyndicateFac.isBanned &&\n !thesyndicateFac.isMember &&\n !thesyndicateFac.alreadyInvited &&\n this.skills.hacking >= 200 &&\n this.skills.strength >= 200 &&\n this.skills.defense >= 200 &&\n this.skills.dexterity >= 200 &&\n this.skills.agility >= 200 &&\n (this.city == CityName.Aevum || this.city == CityName.Sector12) &&\n this.money >= 10000000 &&\n this.karma <= -90 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thesyndicateFac);\n }\n\n //Silhouette\n const silhouetteFac = Factions[FactionNames.Silhouette];\n if (\n !silhouetteFac.isBanned &&\n !silhouetteFac.isMember &&\n !silhouetteFac.alreadyInvited &&\n (allPositions.includes(\"Chief Technology Officer\") ||\n allPositions.includes(\"Chief Financial Officer\") ||\n allPositions.includes(\"Chief Executive Officer\")) &&\n this.money >= 15000000 &&\n this.karma <= -22\n ) {\n invitedFactions.push(silhouetteFac);\n }\n\n //Tetrads\n const tetradsFac = Factions[FactionNames.Tetrads];\n if (\n !tetradsFac.isBanned &&\n !tetradsFac.isMember &&\n !tetradsFac.alreadyInvited &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima) &&\n this.skills.strength >= 75 &&\n this.skills.defense >= 75 &&\n this.skills.dexterity >= 75 &&\n this.skills.agility >= 75 &&\n this.karma <= -18\n ) {\n invitedFactions.push(tetradsFac);\n }\n\n //SlumSnakes\n const slumsnakesFac = Factions[FactionNames.SlumSnakes];\n if (\n !slumsnakesFac.isBanned &&\n !slumsnakesFac.isMember &&\n !slumsnakesFac.alreadyInvited &&\n this.skills.strength >= 30 &&\n this.skills.defense >= 30 &&\n this.skills.dexterity >= 30 &&\n this.skills.agility >= 30 &&\n this.karma <= -9 &&\n this.money >= 1000000\n ) {\n invitedFactions.push(slumsnakesFac);\n }\n\n //Netburners\n const netburnersFac = Factions[FactionNames.Netburners];\n let totalHacknetRam = 0;\n let totalHacknetCores = 0;\n let totalHacknetLevels = 0;\n for (let i = 0; i < this.hacknetNodes.length; ++i) {\n const v = this.hacknetNodes[i];\n if (typeof v === \"string\") {\n const hserver = GetServer(v);\n if (hserver === null || !(hserver instanceof HacknetServer))\n throw new Error(\"player hacknet server was not HacknetServer\");\n totalHacknetLevels += hserver.level;\n totalHacknetRam += hserver.maxRam;\n totalHacknetCores += hserver.cores;\n } else {\n totalHacknetLevels += v.level;\n totalHacknetRam += v.ram;\n totalHacknetCores += v.cores;\n }\n }\n if (\n !netburnersFac.isBanned &&\n !netburnersFac.isMember &&\n !netburnersFac.alreadyInvited &&\n this.skills.hacking >= 80 &&\n totalHacknetRam >= 8 &&\n totalHacknetCores >= 4 &&\n totalHacknetLevels >= 100\n ) {\n invitedFactions.push(netburnersFac);\n }\n\n //Tian Di Hui\n const tiandihuiFac = Factions[FactionNames.TianDiHui];\n if (\n !tiandihuiFac.isBanned &&\n !tiandihuiFac.isMember &&\n !tiandihuiFac.alreadyInvited &&\n this.money >= 1000000 &&\n this.skills.hacking >= 50 &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima)\n ) {\n invitedFactions.push(tiandihuiFac);\n }\n\n //CyberSec\n const cybersecFac = Factions[FactionNames.CyberSec];\n const cybersecServer = GetServer(SpecialServers.CyberSecServer);\n if (!(cybersecServer instanceof Server)) throw new Error(`${FactionNames.CyberSec} should be normal server`);\n if (cybersecServer == null) {\n console.error(`Could not find ${FactionNames.CyberSec} Server`);\n } else if (\n !cybersecFac.isBanned &&\n !cybersecFac.isMember &&\n cybersecServer.backdoorInstalled &&\n !cybersecFac.alreadyInvited\n ) {\n invitedFactions.push(cybersecFac);\n }\n\n return invitedFactions;\n}\n\n/************* BitNodes **************/\nexport function setBitNodeNumber(this: IPlayer, n: number): void {\n this.bitNodeN = n;\n}\n\nexport function queueAugmentation(this: IPlayer, name: string): void {\n for (const aug of this.queuedAugmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n for (const aug of this.augmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n this.queuedAugmentations.push(new PlayerOwnedAugmentation(name));\n}\n\n/************* Coding Contracts **************/\nexport function gainCodingContractReward(this: IPlayer, reward: ICodingContractReward, difficulty = 1): string {\n if (reward == null || reward.type == null) {\n return `No reward for this contract`;\n }\n\n /* eslint-disable no-case-declarations */\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation:\n if (reward.name == null || !(Factions[reward.name] instanceof Faction)) {\n // If no/invalid faction was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n Factions[reward.name].playerReputation += repGain;\n return `Gained ${repGain} faction reputation for ${reward.name}`;\n case CodingContractRewardType.FactionReputationAll:\n const totalGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n\n // Ignore Bladeburners and other special factions for this calculation\n const specialFactions = [FactionNames.Bladeburners as string];\n const factions = this.factions.slice().filter((f) => {\n return !specialFactions.includes(f);\n });\n\n // If the player was only part of the special factions, we'll just give money\n if (factions.length == 0) {\n reward.type = CodingContractRewardType.Money;\n return this.gainCodingContractReward(reward, difficulty);\n }\n\n const gainPerFaction = Math.floor(totalGain / factions.length);\n for (const facName of factions) {\n if (!(Factions[facName] instanceof Faction)) {\n continue;\n }\n Factions[facName].playerReputation += gainPerFaction;\n }\n return `Gained ${gainPerFaction} reputation for each of the following factions: ${factions.toString()}`;\n case CodingContractRewardType.CompanyReputation: {\n if (reward.name == null || !(Companies[reward.name] instanceof Company)) {\n //If no/invalid company was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseCompanyRepGain * difficulty;\n Companies[reward.name].playerReputation += repGain;\n return `Gained ${repGain} company reputation for ${reward.name}`;\n }\n case CodingContractRewardType.Money:\n default: {\n const moneyGain = CONSTANTS.CodingContractBaseMoneyGain * difficulty * BitNodeMultipliers.CodingContractMoney;\n this.gainMoney(moneyGain, \"codingcontract\");\n return `Gained ${numeralWrapper.formatMoney(moneyGain)}`;\n }\n }\n /* eslint-enable no-case-declarations */\n}\n\nexport function travel(this: IPlayer, to: CityName): boolean {\n if (Cities[to] == null) {\n console.warn(`Player.travel() called with invalid city: ${to}`);\n return false;\n }\n this.city = to;\n\n return true;\n}\n\nexport function gotoLocation(this: IPlayer, to: LocationName): boolean {\n if (Locations[to] == null) {\n console.warn(`Player.gotoLocation() called with invalid location: ${to}`);\n return false;\n }\n this.location = to;\n\n return true;\n}\n\nexport function canAccessGrafting(this: IPlayer): boolean {\n return this.bitNodeN === 10 || this.sourceFileLvl(10) > 0;\n}\n\nexport function giveExploit(this: IPlayer, exploit: Exploit): void {\n if (!this.exploits.includes(exploit)) {\n this.exploits.push(exploit);\n SnackbarEvents.emit(\"SF -1 acquired!\", ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function giveAchievement(this: IPlayer, achievementId: string): void {\n const achievement = achievements[achievementId];\n if (!achievement) return;\n if (!this.achievements.map((a) => a.ID).includes(achievementId)) {\n this.achievements.push({ ID: achievementId, unlockedOn: new Date().getTime() });\n SnackbarEvents.emit(`Unlocked Achievement: \"${achievement.Name}\"`, ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function getIntelligenceBonus(this: IPlayer, weight: number): number {\n return calculateIntelligenceBonus(this.skills.intelligence, weight);\n}\n\nexport function getCasinoWinnings(this: IPlayer): number {\n return this.moneySourceA.casino;\n}\n\nexport function canAccessCotMG(this: IPlayer): boolean {\n return this.bitNodeN === 13 || this.sourceFileLvl(13) > 0;\n}\n\nexport function sourceFileLvl(this: IPlayer, n: number): number {\n const sf = this.sourceFiles.find((sf) => sf.n === n);\n if (!sf) return 0;\n return sf.lvl;\n}\n\nexport function focusPenalty(this: IPlayer): number {\n let focus = 1;\n if (!this.hasAugmentation(AugmentationNames[\"NeuroreceptorManager\"])) {\n focus = this.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return focus;\n}\n","import { CityName } from \"./../../Locations/data/CityNames\";\nexport const BladeburnerConstants: {\n CityNames: string[];\n CyclesPerSecond: number;\n StaminaGainPerSecond: number;\n BaseStaminaLoss: number;\n MaxStaminaToGainFactor: number;\n DifficultyToTimeFactor: number;\n DiffMultExponentialFactor: number;\n DiffMultLinearFactor: number;\n EffAgiLinearFactor: number;\n EffDexLinearFactor: number;\n EffAgiExponentialFactor: number;\n EffDexExponentialFactor: number;\n BaseRecruitmentTimeNeeded: number;\n PopulationThreshold: number;\n PopulationExponent: number;\n ChaosThreshold: number;\n BaseStatGain: number;\n BaseIntGain: number;\n ActionCountGrowthPeriod: number;\n RankToFactionRepFactor: number;\n RankNeededForFaction: number;\n ContractSuccessesPerLevel: number;\n OperationSuccessesPerLevel: number;\n RanksPerSkillPoint: number;\n ContractBaseMoneyGain: number;\n HrcHpGain: number;\n HrcStaminaGain: number;\n} = {\n CityNames: [\n CityName.Aevum,\n CityName.Chongqing,\n CityName.Sector12,\n CityName.NewTokyo,\n CityName.Ishima,\n CityName.Volhaven,\n ],\n CyclesPerSecond: 5, // Game cycle is 200 ms\n\n StaminaGainPerSecond: 0.0085,\n BaseStaminaLoss: 0.285, // Base stamina loss per action. Increased based on difficulty\n MaxStaminaToGainFactor: 70000, // Max Stamina is divided by this to get bonus stamina gain\n\n DifficultyToTimeFactor: 10, // Action Difficulty divided by this to get base action time\n\n /**\n * The difficulty multiplier affects stamina loss and hp loss of an action. Also affects\n * experience gain. Its formula is:\n * difficulty ^ exponentialFactor + difficulty / linearFactor\n */\n DiffMultExponentialFactor: 0.28,\n DiffMultLinearFactor: 650,\n\n /**\n * These factors are used to calculate action time.\n * They affect how much action time is reduced based on your agility and dexterity\n */\n EffAgiLinearFactor: 10e3,\n EffDexLinearFactor: 10e3,\n EffAgiExponentialFactor: 0.04,\n EffDexExponentialFactor: 0.035,\n\n BaseRecruitmentTimeNeeded: 300, // Base time needed (s) to complete a Recruitment action\n\n PopulationThreshold: 1e9, // Population which determines baseline success rate\n PopulationExponent: 0.7, // Exponent that influences how different populations affect success rate\n ChaosThreshold: 50, // City chaos level after which it starts making tasks harder\n\n BaseStatGain: 1, // Base stat gain per second\n BaseIntGain: 0.003, // Base intelligence stat gain\n\n ActionCountGrowthPeriod: 480, // Time (s) it takes for action count to grow by its specified value\n\n RankToFactionRepFactor: 2, // Delta Faction Rep = this * Delta Rank\n RankNeededForFaction: 25,\n\n ContractSuccessesPerLevel: 3, // How many successes you need to level up a contract\n OperationSuccessesPerLevel: 2.5, // How many successes you need to level up an op\n\n RanksPerSkillPoint: 3, // How many ranks needed to get 1 Skill Point\n\n ContractBaseMoneyGain: 250e3, // Base Money Gained per contract\n\n HrcHpGain: 2, // HP Gained from Hyperbolic Regeneration chamber\n HrcStaminaGain: 1, // Percentage Stamina gained from Hyperbolic Regeneration Chamber\n};\n","import { Program } from \"./Program\";\nimport { programsMetadata } from \"./data/ProgramsMetadata\";\nimport { IMap } from \"../types\";\n\nexport const Programs: IMap = {};\n\nfor (const params of programsMetadata) {\n Programs[params.key] = new Program(params.name, params.create, params.run);\n}\n","export enum FragmentType {\n // Special fragments for the UI\n None,\n Delete,\n\n // Stats boosting fragments\n HackingChance,\n HackingSpeed,\n HackingMoney,\n HackingGrow,\n Hacking,\n Strength,\n Defense,\n Dexterity,\n Agility,\n Charisma,\n HacknetMoney,\n HacknetCost,\n Rep,\n WorkMoney,\n Crime,\n Bladeburner,\n\n // utility fragments.\n Booster,\n}\n\nexport function Effect(tpe: FragmentType): string {\n switch (tpe) {\n case FragmentType.HackingChance: {\n return \"+x% hack() success chance\";\n }\n case FragmentType.HackingSpeed: {\n return \"+x% faster hack(), grow(), and weaken()\";\n }\n case FragmentType.HackingMoney: {\n return \"+x% hack() power\";\n }\n case FragmentType.HackingGrow: {\n return \"+x% grow() power\";\n }\n case FragmentType.Hacking: {\n return \"+x% hacking skill\";\n }\n case FragmentType.Strength: {\n return \"+x% strength skill\";\n }\n case FragmentType.Defense: {\n return \"+x% defense skill\";\n }\n case FragmentType.Dexterity: {\n return \"+x% dexterity skill\";\n }\n case FragmentType.Agility: {\n return \"+x% agility skill\";\n }\n case FragmentType.Charisma: {\n return \"+x% charisma skill\";\n }\n case FragmentType.HacknetMoney: {\n return \"+x% hacknet production\";\n }\n case FragmentType.HacknetCost: {\n return \"-x% cheaper hacknet cost\";\n }\n case FragmentType.Rep: {\n return \"+x% reputation from factions and companies\";\n }\n case FragmentType.WorkMoney: {\n return \"+x% work money\";\n }\n case FragmentType.Crime: {\n return \"+x% crime money\";\n }\n case FragmentType.Bladeburner: {\n return \"+x% all bladeburner stats\";\n }\n }\n throw new Error(\"Calling effect for fragment type that doesn't have an effect \" + tpe);\n}\n","import { IMap } from \"../../types\";\n\nexport const LiteratureNames: IMap = {\n HackersStartingHandbook: \"hackers-starting-handbook.lit\",\n CorporationManagementHandbook: \"corporation-management-handbook.lit\",\n HistoryOfSynthoids: \"history-of-synthoids.lit\",\n AGreenTomorrow: \"A-Green-Tomorrow.lit\",\n AlphaOmega: \"alpha-omega.lit\",\n SimulatedReality: \"simulated-reality.lit\",\n BeyondMan: \"beyond-man.lit\",\n BrighterThanTheSun: \"brighter-than-the-sun.lit\",\n DemocracyIsDead: \"democracy-is-dead.lit\",\n Sector12Crime: \"sector-12-crime.lit\",\n ManAndMachine: \"man-and-machine.lit\",\n SecretSocieties: \"secret-societies.lit\",\n TheFailedFrontier: \"the-failed-frontier.lit\",\n CodedIntelligence: \"coded-intelligence.lit\",\n SyntheticMuscles: \"synthetic-muscles.lit\",\n TensionsInTechRace: \"tensions-in-tech-race.lit\",\n CostOfImmortality: \"cost-of-immortality.lit\",\n TheHiddenWorld: \"the-hidden-world.lit\",\n TheNewGod: \"the-new-god.lit\",\n NewTriads: \"new-triads.lit\",\n TheSecretWar: \"the-secret-war.lit\",\n};\n","import React from \"react\";\n\nimport { Typography, TableCell, TableRow } from \"@mui/material\";\n\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { formatNumber } from \"../../utils/StringHelperFunctions\";\nimport { characterOverviewStyles as useStyles } from \"./CharacterOverview\";\nimport { ClassNameMap } from \"@material-ui/core/styles/withStyles\";\n\ninterface ITableRowData {\n content?: string;\n level?: number;\n exp?: number;\n}\n\ninterface IProps {\n name: string;\n color: string;\n classes?: ClassNameMap;\n data?: ITableRowData;\n children?: React.ReactElement;\n}\n\nexport const StatsRow = ({ name, color, classes = useStyles(), children, data }: IProps): React.ReactElement => {\n let content = \"\";\n\n if (data) {\n if (data.content !== undefined) {\n content = data.content;\n } else if (data.level !== undefined && data.exp !== undefined) {\n content = `${formatNumber(data.level, 0)} (${numeralWrapper.formatExp(data.exp)} exp)`;\n } else if (data.level !== undefined && data.exp === undefined) {\n content = `${formatNumber(data.level, 0)}`;\n }\n }\n\n return (\n \n \n {name}\n \n \n {content ? {content} : <>>}\n {children}\n \n \n );\n};\n","import { Augmentation } from \"./Augmentation\";\nimport { IMap } from \"../types\";\n\nexport const StaticAugmentations: IMap = {};\n","export enum PositionTypes {\n Long = \"L\",\n Short = \"S\",\n}\n","import React from \"react\";\nimport { TableCell as MuiTableCell, TableCellProps, Table as MuiTable, TableProps } from \"@mui/material\";\n\nimport makeStyles from \"@mui/styles/makeStyles\";\n\nconst useStyles = makeStyles({\n root: {\n borderBottom: \"none\",\n },\n small: {\n width: \"1px\",\n },\n});\n\nexport const TableCell: React.FC = (props: TableCellProps) => {\n return (\n \n );\n};\n\nexport const Table: React.FC = (props: TableProps) => {\n return (\n \n );\n};\n","// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts\nimport { companiesMetadata } from \"./data/CompaniesMetadata\";\nimport { Company, IConstructorParams } from \"./Company\";\nimport { IMap } from \"../types\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let Companies: IMap = {};\n\nfunction addCompany(params: IConstructorParams): void {\n if (Companies[params.name] != null) {\n console.warn(`Duplicate Company Position being defined: ${params.name}`);\n }\n Companies[params.name] = new Company(params);\n}\n\n// Used to initialize new Company objects for the Companies map\n// Called when creating new game or after a prestige/reset\nexport function initCompanies(): void {\n // Save Old Company data for 'favor'\n const oldCompanies = Companies;\n\n // Re-construct all Companies\n Companies = {};\n companiesMetadata.forEach((e) => {\n addCompany(e);\n });\n\n // Reset data\n for (const companyName of Object.keys(Companies)) {\n const company = Companies[companyName];\n const oldCompany = oldCompanies[companyName];\n if (!(oldCompany instanceof Company)) {\n // New game, so no OldCompanies data\n company.favor = 0;\n } else {\n company.favor = oldCompanies[companyName].favor;\n if (isNaN(company.favor)) {\n company.favor = 0;\n }\n }\n }\n}\n\n// Used to load Companies map from a save\nexport function loadCompanies(saveString: string): void {\n Companies = JSON.parse(saveString, Reviver);\n}\n","import { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\ninterface GangTerritory {\n power: number;\n territory: number;\n}\n\nexport let AllGangs: {\n [key: string]: GangTerritory;\n} = {\n [FactionNames.SlumSnakes]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.Tetrads]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheSyndicate]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheDarkArmy]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.SpeakersForTheDead]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.NiteSec]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheBlackHand]: {\n power: 1,\n territory: 1 / 7,\n },\n};\n\nexport function resetGangs(): void {\n AllGangs = {\n [FactionNames.SlumSnakes]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.Tetrads]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheSyndicate]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheDarkArmy]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.SpeakersForTheDead]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.NiteSec]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheBlackHand]: {\n power: 1,\n territory: 1 / 7,\n },\n };\n}\n\nexport function loadAllGangs(saveString: string): void {\n AllGangs = JSON.parse(saveString, Reviver);\n}\n","/**\n * Helper functions that implement \"directory\" functionality in the Terminal.\n * These aren't \"real\" directories, it's more of a pseudo-directory implementation\n * that uses mainly string manipulation.\n *\n * This file contains functions that deal only with that string manipulation.\n * Functions that need to access/process Server-related things can be\n * found in ./DirectoryServerHelpers.ts\n */\n\n/**\n * Removes leading forward slash (\"/\") from a string.\n */\nexport function removeLeadingSlash(s: string): string {\n if (s.startsWith(\"/\")) {\n return s.slice(1);\n }\n\n return s;\n}\n\n/**\n * Removes trailing forward slash (\"/\") from a string.\n * Note that this will also remove the slash if it is the leading slash (i.e. if s = \"/\")\n */\nexport function removeTrailingSlash(s: string): string {\n if (s.endsWith(\"/\")) {\n return s.slice(0, -1);\n }\n\n return s;\n}\n\n/**\n * Checks whether a string is a valid filename. Only used for the filename itself,\n * not the entire filepath\n */\nexport function isValidFilename(filename: string): boolean {\n // Allows alphanumerics, hyphens, underscores, and percentage signs\n // Must have a file extension\n const regex = /^[.a-zA-Z0-9_-]+[.][a-zA-Z0-9]+(?:-\\d+(?:\\.\\d*)?%-INC)?$/;\n\n // match() returns null if no match is found\n return filename.match(regex) != null;\n}\n\n/**\n * Checks whether a string is a valid directory name. Only used for the directory itself,\n * not an entire path\n */\nexport function isValidDirectoryName(name: string): boolean {\n // A valid directory name:\n // Must be at least 1 character long\n // Can only include characters in the character set [-.%a-zA-Z0-9_]\n // Cannot end with a '.'\n const regex = /^.?[a-zA-Z0-9_-]+$/;\n\n // match() returns null if no match is found\n return name.match(regex) != null;\n}\n\n/**\n * Checks whether a string is a valid directory path.\n * This only checks if it has the proper formatting. It does NOT check\n * if the directories actually exist on Terminal\n */\nexport function isValidDirectoryPath(path: string): boolean {\n let t_path: string = path;\n\n if (t_path.length === 0) {\n return false;\n }\n if (t_path.length === 1) {\n return t_path === \"/\";\n }\n\n // A full path must have a leading slash, but we'll ignore it for the checks\n if (t_path.startsWith(\"/\")) {\n t_path = t_path.slice(1);\n } else {\n return false;\n }\n\n // Trailing slash does not matter\n t_path = removeTrailingSlash(t_path);\n\n // Check that every section of the path is a valid directory name\n const dirs = t_path.split(\"/\");\n for (const dir of dirs) {\n // Special case, \".\" and \"..\" are valid for path\n if (dir === \".\" || dir === \"..\") {\n continue;\n }\n if (!isValidDirectoryName(dir)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether a string is a valid file path. This only checks if it has the\n * proper formatting. It dose NOT check if the file actually exists on Terminal\n */\nexport function isValidFilePath(path: string): boolean {\n if (path == null || typeof path !== \"string\") {\n return false;\n }\n const t_path = path;\n\n // Impossible for filename to have less than length of 3\n if (t_path.length < 3) {\n return false;\n }\n\n // Full filepath can't end with trailing slash because it must be a file\n if (t_path.endsWith(\"/\")) {\n return false;\n }\n\n // Everything after the last forward slash is the filename. Everything before\n // it is the file path\n const fnSeparator = t_path.lastIndexOf(\"/\");\n if (fnSeparator === -1) {\n return isValidFilename(t_path);\n }\n\n const fn = t_path.slice(fnSeparator + 1);\n const dirPath = t_path.slice(0, fnSeparator + 1);\n\n return isValidDirectoryPath(dirPath) && isValidFilename(fn);\n}\n\n/**\n * Returns a formatted string for the first parent directory in a filepath. For example:\n * /home/var/test/ -> home/\n * If there is no first parent directory, then it returns \"/\" for root\n */\nexport function getFirstParentDirectory(path: string): string {\n let t_path = path;\n t_path = removeLeadingSlash(t_path);\n t_path = removeTrailingSlash(t_path);\n\n if (t_path.lastIndexOf(\"/\") === -1) {\n return \"/\";\n }\n\n const dirs = t_path.split(\"/\");\n if (dirs.length === 0) {\n return \"/\";\n }\n\n return dirs[0] + \"/\";\n}\n\n/**\n * Given a filepath, returns a formatted string for all of the parent directories\n * in that filepath. For example:\n * /home/var/tes -> home/var/\n * /home/var/test/ -> home/var/test/\n * If there are no parent directories, it returns the empty string\n */\nexport function getAllParentDirectories(path: string): string {\n const t_path = path;\n const lastSlash = t_path.lastIndexOf(\"/\");\n if (lastSlash === -1) {\n return \"\";\n }\n\n return t_path.slice(0, lastSlash + 1);\n}\n\n/**\n * Given a destination that only contains a directory part, returns the\n * path to the source filename inside the new destination directory.\n * Otherwise, returns the path to the destination file.\n * @param destination The destination path or file name\n * @param source The source path\n * @param cwd The current working directory\n * @returns A file path which may be absolute or relative\n */\nexport function getDestinationFilepath(destination: string, source: string, cwd: string): string {\n const dstDir = evaluateDirectoryPath(destination, cwd);\n // If evaluating the directory for this destination fails, we have a filename or full path.\n if (dstDir === null) {\n return destination;\n } else {\n // Append the filename to the directory provided.\n const t_path = removeTrailingSlash(dstDir);\n const fileName = getFileName(source);\n return t_path + \"/\" + fileName;\n }\n}\n\n/**\n * Given a filepath, returns the file name (e.g. without directory parts)\n * For example:\n * /home/var/test.js -> test.js\n * ./var/test.js -> test.js\n * test.js -> test.js\n */\nexport function getFileName(path: string): string {\n const t_path = path;\n const lastSlash = t_path.lastIndexOf(\"/\");\n if (lastSlash === -1) {\n return t_path;\n }\n\n return t_path.slice(lastSlash + 1);\n}\n\n/**\n * Checks if a file path refers to a file in the root directory.\n */\nexport function isInRootDirectory(path: string): boolean {\n if (!isValidFilePath(path)) {\n return false;\n }\n if (path == null || path.length === 0) {\n return false;\n }\n\n return path.lastIndexOf(\"/\") <= 0;\n}\n\n/**\n * Evaluates a directory path, including the processing of linux dots.\n * Returns the full, proper path, or null if an invalid path is passed in\n */\nexport function evaluateDirectoryPath(path: string, currPath?: string): string | null {\n let t_path = path;\n\n // If the path begins with a slash, then its an absolute path. Otherwise its relative\n // For relative paths, we need to prepend the current directory\n if (!t_path.startsWith(\"/\") && currPath) {\n t_path = currPath + (currPath.endsWith(\"/\") ? \"\" : \"/\") + t_path;\n }\n\n if (!isValidDirectoryPath(t_path)) {\n return null;\n }\n\n // Trim leading/trailing slashes\n t_path = removeLeadingSlash(t_path);\n t_path = removeTrailingSlash(t_path);\n\n const dirs = t_path.split(\"/\");\n const reconstructedPath: string[] = [];\n\n for (const dir of dirs) {\n if (dir === \".\") {\n // Current directory, do nothing\n continue;\n } else if (dir === \"..\") {\n // Parent directory\n const res = reconstructedPath.pop();\n if (res == null) {\n return null; // Array was empty, invalid path\n }\n } else {\n reconstructedPath.push(dir);\n }\n }\n\n return \"/\" + reconstructedPath.join(\"/\");\n}\n\n/**\n * Evaluates a file path, including the processing of linux dots.\n * Returns the full, proper path, or null if an invalid path is passed in\n */\nexport function evaluateFilePath(path: string, currPath?: string): string | null {\n let t_path = path;\n\n // If the path begins with a slash, then its an absolute path. Otherwise its relative\n // For relative paths, we need to prepend the current directory\n if (!t_path.startsWith(\"/\") && currPath != null) {\n t_path = currPath + (currPath.endsWith(\"/\") ? \"\" : \"/\") + t_path;\n }\n\n if (!isValidFilePath(t_path)) {\n return null;\n }\n\n // Trim leading/trailing slashes\n t_path = removeLeadingSlash(t_path);\n\n const dirs = t_path.split(\"/\");\n const reconstructedPath: string[] = [];\n\n for (const dir of dirs) {\n if (dir === \".\") {\n // Current directory, do nothing\n continue;\n } else if (dir === \"..\") {\n // Parent directory\n const res = reconstructedPath.pop();\n if (res == null) {\n return null; // Array was empty, invalid path\n }\n } else {\n reconstructedPath.push(dir);\n }\n }\n\n return \"/\" + reconstructedPath.join(\"/\");\n}\n\nexport function areFilesEqual(f0: string, f1: string): boolean {\n if (!f0.startsWith(\"/\")) f0 = \"/\" + f0;\n if (!f1.startsWith(\"/\")) f1 = \"/\" + f1;\n return f0 === f1;\n}\n\nexport function areImportsEquals(f0: string, f1: string): boolean {\n if (!f0.endsWith(\".js\")) f0 = f0 + \".js\";\n if (!f1.endsWith(\".js\")) f1 = f1 + \".js\";\n return areFilesEqual(f0, f1);\n}\n","import { Terminal as TTerminal } from \"./Terminal/Terminal\";\n\nexport const Terminal = new TTerminal();\n","import { Crime } from \"./Crime\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { IMap } from \"../types\";\n\nimport { CrimeType } from \"../utils/WorkType\";\n\nexport const Crimes: IMap = {\n Shoplift: new Crime(\"Shoplift\", CrimeType.SHOPLIFT, 2e3, 15e3, 1 / 20, 0.1, {\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n dexterity_exp: 2,\n agility_exp: 2,\n }),\n\n RobStore: new Crime(\"Rob Store\", CrimeType.ROB_STORE, 60e3, 400e3, 1 / 5, 0.5, {\n hacking_exp: 30,\n dexterity_exp: 45,\n agility_exp: 45,\n\n hacking_success_weight: 0.5,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n\n intelligence_exp: 7.5 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Mug: new Crime(\"Mug\", CrimeType.MUG, 4e3, 36e3, 1 / 5, 0.25, {\n strength_exp: 3,\n defense_exp: 3,\n dexterity_exp: 3,\n agility_exp: 3,\n\n strength_success_weight: 1.5,\n defense_success_weight: 0.5,\n dexterity_success_weight: 1.5,\n agility_success_weight: 0.5,\n }),\n\n Larceny: new Crime(\"Larceny\", CrimeType.LARCENY, 90e3, 800e3, 1 / 3, 1.5, {\n hacking_exp: 45,\n dexterity_exp: 60,\n agility_exp: 60,\n\n hacking_success_weight: 0.5,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n intelligence_exp: 15 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n DealDrugs: new Crime(\"Deal Drugs\", CrimeType.DRUGS, 10e3, 120e3, 1, 0.5, {\n dexterity_exp: 5,\n agility_exp: 5,\n charisma_exp: 10,\n\n charisma_success_weight: 3,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n }),\n\n BondForgery: new Crime(\"Bond Forgery\", CrimeType.BOND_FORGERY, 300e3, 4.5e6, 1 / 2, 0.1, {\n hacking_exp: 100,\n dexterity_exp: 150,\n charisma_exp: 15,\n\n hacking_success_weight: 0.05,\n dexterity_success_weight: 1.25,\n\n intelligence_exp: 60 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n TraffickArms: new Crime(\"Traffick Arms\", CrimeType.TRAFFIC_ARMS, 40e3, 600e3, 2, 1, {\n strength_exp: 20,\n defense_exp: 20,\n dexterity_exp: 20,\n agility_exp: 20,\n charisma_exp: 40,\n\n charisma_success_weight: 1,\n strength_success_weight: 1,\n defense_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n }),\n\n Homicide: new Crime(\"Homicide\", CrimeType.HOMICIDE, 3e3, 45e3, 1, 3, {\n strength_exp: 2,\n defense_exp: 2,\n dexterity_exp: 2,\n agility_exp: 2,\n\n strength_success_weight: 2,\n defense_success_weight: 2,\n dexterity_success_weight: 0.5,\n agility_success_weight: 0.5,\n\n kills: 1,\n }),\n\n GrandTheftAuto: new Crime(\"Grand Theft Auto\", CrimeType.GRAND_THEFT_AUTO, 80e3, 1.6e6, 8, 5, {\n strength_exp: 20,\n defense_exp: 20,\n dexterity_exp: 20,\n agility_exp: 80,\n charisma_exp: 40,\n\n hacking_success_weight: 1,\n strength_success_weight: 1,\n dexterity_success_weight: 4,\n agility_success_weight: 2,\n charisma_success_weight: 2,\n\n intelligence_exp: 16 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Kidnap: new Crime(\"Kidnap\", CrimeType.KIDNAP, 120e3, 3.6e6, 5, 6, {\n strength_exp: 80,\n defense_exp: 80,\n dexterity_exp: 80,\n agility_exp: 80,\n charisma_exp: 80,\n\n charisma_success_weight: 1,\n strength_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n intelligence_exp: 26 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Assassination: new Crime(\"Assassination\", CrimeType.ASSASSINATION, 300e3, 12e6, 8, 10, {\n strength_exp: 300,\n defense_exp: 300,\n dexterity_exp: 300,\n agility_exp: 300,\n\n strength_success_weight: 1,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n\n intelligence_exp: 65 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n\n kills: 1,\n }),\n\n Heist: new Crime(\"Heist\", CrimeType.HEIST, 600e3, 120e6, 18, 15, {\n hacking_exp: 450,\n strength_exp: 450,\n defense_exp: 450,\n dexterity_exp: 450,\n agility_exp: 450,\n charisma_exp: 450,\n\n hacking_success_weight: 1,\n strength_success_weight: 1,\n defense_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n charisma_success_weight: 1,\n\n intelligence_exp: 130 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n};\n","import * as React from \"react\";\n\nexport function trusted(f: () => void): (event: React.MouseEvent) => void {\n return function (event: React.MouseEvent): void {\n if (!event.isTrusted) return;\n f();\n };\n}\n","/* Holds IP of Special Servers */\nexport const SpecialServers: {\n [key: string]: string | undefined;\n\n Home: string;\n FulcrumSecretTechnologies: string;\n CyberSecServer: string;\n NiteSecServer: string;\n TheBlackHandServer: string;\n BitRunnersServer: string;\n TheDarkArmyServer: string;\n DaedalusServer: string;\n WorldDaemon: string;\n DarkWeb: string;\n} = {\n Home: \"home\",\n FulcrumSecretTechnologies: \"fulcrumassets\",\n CyberSecServer: \"CSEC\",\n NiteSecServer: \"avmnite-02h\",\n TheBlackHandServer: \"I.I.I.I\",\n BitRunnersServer: \"run4theh111z\",\n TheDarkArmyServer: \".\",\n DaedalusServer: \"The-Cave\",\n WorldDaemon: \"w0r1d_d43m0n\",\n DarkWeb: \"darkweb\",\n};\n","import { IPerson } from \"src/PersonObjects/IPerson\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\nexport interface WorkStats {\n money: number;\n reputation: number;\n hackExp: number;\n strExp: number;\n defExp: number;\n dexExp: number;\n agiExp: number;\n chaExp: number;\n intExp: number;\n}\n\ninterface newWorkStatsParams {\n money?: number;\n reputation?: number;\n hackExp?: number;\n strExp?: number;\n defExp?: number;\n dexExp?: number;\n agiExp?: number;\n chaExp?: number;\n intExp?: number;\n}\n\nexport const newWorkStats = (params?: newWorkStatsParams): WorkStats => {\n return {\n money: params?.money ?? 0,\n reputation: params?.reputation ?? 0,\n hackExp: params?.hackExp ?? 0,\n strExp: params?.strExp ?? 0,\n defExp: params?.defExp ?? 0,\n dexExp: params?.dexExp ?? 0,\n agiExp: params?.agiExp ?? 0,\n chaExp: params?.chaExp ?? 0,\n intExp: params?.intExp ?? 0,\n };\n};\n\nexport const sumWorkStats = (w0: WorkStats, w1: WorkStats): WorkStats => {\n return {\n money: w0.money + w1.money,\n reputation: w0.reputation + w1.reputation,\n hackExp: w0.hackExp + w1.hackExp,\n strExp: w0.strExp + w1.strExp,\n defExp: w0.defExp + w1.defExp,\n dexExp: w0.dexExp + w1.dexExp,\n agiExp: w0.agiExp + w1.agiExp,\n chaExp: w0.chaExp + w1.chaExp,\n intExp: w0.intExp + w1.intExp,\n };\n};\n\nexport const scaleWorkStats = (w: WorkStats, n: number, scaleMoney = true): WorkStats => {\n const m = scaleMoney ? n : 1;\n return {\n money: w.money * m,\n reputation: w.reputation * n,\n hackExp: w.hackExp * n,\n strExp: w.strExp * n,\n defExp: w.defExp * n,\n dexExp: w.dexExp * n,\n agiExp: w.agiExp * n,\n chaExp: w.chaExp * n,\n intExp: w.intExp * n,\n };\n};\n\nexport const applyWorkStats = (\n player: IPlayer,\n target: IPerson,\n workStats: WorkStats,\n cycles: number,\n source: string,\n): WorkStats => {\n const expStats = applyWorkStatsExp(target, workStats, cycles);\n const gains = {\n money: workStats.money * cycles,\n reputation: 0,\n hackExp: expStats.hackExp,\n strExp: expStats.strExp,\n defExp: expStats.defExp,\n dexExp: expStats.dexExp,\n agiExp: expStats.agiExp,\n chaExp: expStats.chaExp,\n intExp: expStats.intExp,\n };\n player.gainMoney(gains.money, source);\n\n return gains;\n};\n\nexport const applyWorkStatsExp = (target: IPerson, workStats: WorkStats, cycles: number): WorkStats => {\n const gains = {\n money: 0,\n reputation: 0,\n hackExp: workStats.hackExp * cycles,\n strExp: workStats.strExp * cycles,\n defExp: workStats.defExp * cycles,\n dexExp: workStats.dexExp * cycles,\n agiExp: workStats.agiExp * cycles,\n chaExp: workStats.chaExp * cycles,\n intExp: workStats.intExp * cycles,\n };\n target.gainHackingExp(gains.hackExp);\n target.gainStrengthExp(gains.strExp);\n target.gainDefenseExp(gains.defExp);\n target.gainDexterityExp(gains.dexExp);\n target.gainAgilityExp(gains.agiExp);\n target.gainCharismaExp(gains.chaExp);\n target.gainIntelligenceExp(gains.intExp);\n return gains;\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IEngine } from \"../IEngine\";\nimport { ITerminal } from \"../Terminal/ITerminal\";\nimport { installAugmentations } from \"../Augmentation/AugmentationHelpers\";\nimport { saveObject } from \"../SaveObject\";\nimport { onExport } from \"../ExportBonus\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { Location } from \"../Locations/Location\";\nimport { ITutorial, iTutorialStart } from \"../InteractiveTutorial\";\nimport { InteractiveTutorialRoot } from \"./InteractiveTutorial/InteractiveTutorialRoot\";\nimport { ITutorialEvents } from \"./InteractiveTutorial/ITutorialEvents\";\n\nimport { Faction } from \"../Faction/Faction\";\nimport { prestigeAugmentation } from \"../Prestige\";\nimport { dialogBoxCreate } from \"./React/DialogBox\";\nimport { GetAllServers } from \"../Server/AllServers\";\nimport { Factions } from \"../Faction/Factions\";\nimport { buyStock, sellStock, shortStock, sellShort } from \"../StockMarket/BuyingAndSelling\";\nimport {\n cancelOrder,\n eventEmitterForUiReset,\n initStockMarketFn,\n placeOrder,\n StockMarket,\n} from \"../StockMarket/StockMarket\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\n\nimport { Page, IRouter, ScriptEditorRouteOptions } from \"./Router\";\nimport { Overview } from \"./React/Overview\";\nimport { SidebarRoot } from \"../Sidebar/ui/SidebarRoot\";\nimport { AugmentationsRoot } from \"../Augmentation/ui/AugmentationsRoot\";\nimport { DevMenuRoot } from \"../DevMenu\";\nimport { BladeburnerRoot } from \"../Bladeburner/ui/BladeburnerRoot\";\nimport { GangRoot } from \"../Gang/ui/GangRoot\";\nimport { CorporationRoot } from \"../Corporation/ui/CorporationRoot\";\nimport { InfiltrationRoot } from \"../Infiltration/ui/InfiltrationRoot\";\nimport { GraftingRoot } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { WorkInProgressRoot } from \"./WorkInProgressRoot\";\nimport { GameOptionsRoot } from \"../GameOptions/ui/GameOptionsRoot\";\nimport { SleeveRoot } from \"../PersonObjects/Sleeve/ui/SleeveRoot\";\nimport { HacknetRoot } from \"../Hacknet/ui/HacknetRoot\";\nimport { GenericLocation } from \"../Locations/ui/GenericLocation\";\nimport { LocationCity } from \"../Locations/ui/City\";\nimport { ProgramsRoot } from \"../Programs/ui/ProgramsRoot\";\nimport { Root as ScriptEditorRoot } from \"../ScriptEditor/ui/ScriptEditorRoot\";\nimport { MilestonesRoot } from \"../Milestones/ui/MilestonesRoot\";\nimport { TerminalRoot } from \"../Terminal/ui/TerminalRoot\";\nimport { TutorialRoot } from \"../Tutorial/ui/TutorialRoot\";\nimport { ActiveScriptsRoot } from \"./ActiveScripts/ActiveScriptsRoot\";\nimport { FactionsRoot } from \"../Faction/ui/FactionsRoot\";\nimport { FactionRoot } from \"../Faction/ui/FactionRoot\";\nimport { CharacterStats } from \"./CharacterStats\";\nimport { TravelAgencyRoot } from \"../Locations/ui/TravelAgencyRoot\";\nimport { StockMarketRoot } from \"../StockMarket/ui/StockMarketRoot\";\nimport { BitverseRoot } from \"../BitNode/ui/BitverseRoot\";\nimport { StaneksGiftRoot } from \"../CotMG/ui/StaneksGiftRoot\";\nimport { staneksGift } from \"../CotMG/Helper\";\nimport { CharacterOverview } from \"./React/CharacterOverview\";\nimport { BladeburnerCinematic } from \"../Bladeburner/ui/BladeburnerCinematic\";\nimport { workerScripts } from \"../Netscript/WorkerScripts\";\nimport { Unclickable } from \"../Exploits/Unclickable\";\nimport { Snackbar, SnackbarProvider } from \"./React/Snackbar\";\nimport { LogBoxManager } from \"./React/LogBoxManager\";\nimport { AlertManager } from \"./React/AlertManager\";\nimport { PromptManager } from \"./React/PromptManager\";\nimport { InvitationModal } from \"../Faction/ui/InvitationModal\";\nimport { calculateAchievements } from \"../Achievements/Achievements\";\n\nimport { enterBitNode } from \"../RedPill\";\nimport { Context } from \"./Context\";\nimport { RecoveryMode, RecoveryRoot } from \"./React/RecoveryRoot\";\nimport { AchievementsRoot } from \"../Achievements/AchievementsRoot\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { Settings } from \"../Settings/Settings\";\nimport { ThemeBrowser } from \"../Themes/ui/ThemeBrowser\";\nimport { ImportSaveRoot } from \"./React/ImportSaveRoot\";\nimport { BypassWrapper } from \"./React/BypassWrapper\";\n\nimport _wrap from \"lodash/wrap\";\nimport _functions from \"lodash/functions\";\nimport { Apr1 } from \"./Apr1\";\nimport { isFactionWork } from \"../Work/FactionWork\";\nimport { V2Modal } from \"../utils/V2Modal\";\n\nconst htmlLocation = location;\n\ninterface IProps {\n terminal: ITerminal;\n player: IPlayer;\n engine: IEngine;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"-ms-overflow-style\": \"none\" /* for Internet Explorer, Edge */,\n \"scrollbar-width\": \"none\" /* for Firefox */,\n margin: theme.spacing(0),\n flexGrow: 1,\n display: \"block\",\n padding: \"8px\",\n minHeight: \"100vh\",\n boxSizing: \"border-box\",\n },\n }),\n);\n\nconst uninitialized = (): void => {\n throw new Error(\"Router called before initialization\");\n};\n\nexport let Router: IRouter = {\n isInitialized: false,\n page: () => {\n throw new Error(\"Router called before initialization\");\n },\n allowRouting: uninitialized,\n toActiveScripts: uninitialized,\n toAugmentations: uninitialized,\n toBitVerse: uninitialized,\n toBladeburner: uninitialized,\n toStats: uninitialized,\n toCity: uninitialized,\n toCorporation: uninitialized,\n toCreateProgram: uninitialized,\n toDevMenu: uninitialized,\n toFaction: uninitialized,\n toFactions: uninitialized,\n toGameOptions: uninitialized,\n toGang: uninitialized,\n toHacknetNodes: uninitialized,\n toInfiltration: uninitialized,\n toJob: uninitialized,\n toMilestones: uninitialized,\n toGrafting: uninitialized,\n toScriptEditor: uninitialized,\n toSleeves: uninitialized,\n toStockMarket: uninitialized,\n toTerminal: uninitialized,\n toTravel: uninitialized,\n toTutorial: uninitialized,\n toWork: uninitialized,\n toBladeburnerCinematic: uninitialized,\n toLocation: uninitialized,\n toStaneksGift: uninitialized,\n toAchievements: uninitialized,\n toThemeBrowser: uninitialized,\n toImportSave: uninitialized,\n};\n\nfunction determineStartPage(player: IPlayer): Page {\n if (RecoveryMode) return Page.Recovery;\n if (player.currentWork !== null) return Page.Work;\n return Page.Terminal;\n}\n\nexport function GameRoot({ player, engine, terminal }: IProps): React.ReactElement {\n const classes = useStyles();\n const [{ files, vim }, setEditorOptions] = useState({ files: {}, vim: false });\n const [page, setPage] = useState(determineStartPage(player));\n const setRerender = useState(0)[1];\n const [augPage, setAugPage] = useState(false);\n const [faction, setFaction] = useState(\n isFactionWork(player.currentWork) ? Factions[player.currentWork.factionName] : (undefined as unknown as Faction),\n );\n if (faction === undefined && page === Page.Faction)\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [flume, setFlume] = useState(false);\n const [quick, setQuick] = useState(false);\n const [location, setLocation] = useState(undefined as unknown as Location);\n if (location === undefined && (page === Page.Infiltration || page === Page.Location || page === Page.Job))\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [cinematicText, setCinematicText] = useState(\"\");\n const [errorBoundaryKey, setErrorBoundaryKey] = useState(0);\n const [sidebarOpened, setSideBarOpened] = useState(Settings.IsSidebarOpened);\n\n const [importString, setImportString] = useState(undefined as unknown as string);\n const [importAutomatic, setImportAutomatic] = useState(false);\n if (importString === undefined && page === Page.ImportSave)\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [allowRoutingCalls, setAllowRoutingCalls] = useState(true);\n\n function resetErrorBoundary(): void {\n setErrorBoundaryKey(errorBoundaryKey + 1);\n }\n\n function rerender(): void {\n setRerender((old) => old + 1);\n }\n useEffect(() => {\n return ITutorialEvents.subscribe(rerender);\n }, []);\n\n function killAllScripts(): void {\n for (const server of GetAllServers()) {\n server.runningScripts = [];\n }\n saveObject.saveGame();\n setTimeout(() => htmlLocation.reload(), 2000);\n }\n\n Router = {\n isInitialized: true,\n page: () => page,\n allowRouting: (value: boolean) => setAllowRoutingCalls(value),\n toActiveScripts: () => setPage(Page.ActiveScripts),\n toAugmentations: () => setPage(Page.Augmentations),\n toBladeburner: () => setPage(Page.Bladeburner),\n toStats: () => setPage(Page.Stats),\n toCorporation: () => setPage(Page.Corporation),\n toCreateProgram: () => setPage(Page.CreateProgram),\n toDevMenu: () => setPage(Page.DevMenu),\n toFaction: (faction: Faction, augPage = false) => {\n setAugPage(augPage);\n setPage(Page.Faction);\n if (faction) setFaction(faction);\n },\n toFactions: () => setPage(Page.Factions),\n toGameOptions: () => setPage(Page.Options),\n toGang: () => setPage(Page.Gang),\n toHacknetNodes: () => setPage(Page.Hacknet),\n toMilestones: () => setPage(Page.Milestones),\n toGrafting: () => setPage(Page.Grafting),\n toScriptEditor: (files: Record, options?: ScriptEditorRouteOptions) => {\n setEditorOptions({\n files,\n vim: !!options?.vim,\n });\n setPage(Page.ScriptEditor);\n },\n toSleeves: () => setPage(Page.Sleeves),\n toStockMarket: () => setPage(Page.StockMarket),\n toTerminal: () => setPage(Page.Terminal),\n toTutorial: () => setPage(Page.Tutorial),\n toJob: (location: Location) => {\n setLocation(location);\n setPage(Page.Job);\n },\n toCity: () => {\n setPage(Page.City);\n },\n toTravel: () => {\n player.gotoLocation(LocationName.TravelAgency);\n setPage(Page.Travel);\n },\n toBitVerse: (flume: boolean, quick: boolean) => {\n setFlume(flume);\n setQuick(quick);\n calculateAchievements();\n setPage(Page.BitVerse);\n },\n toInfiltration: (location: Location) => {\n setLocation(location);\n setPage(Page.Infiltration);\n },\n toWork: () => setPage(Page.Work),\n toBladeburnerCinematic: () => {\n setPage(Page.BladeburnerCinematic);\n setCinematicText(cinematicText);\n },\n toLocation: (location: Location) => {\n setLocation(location);\n setPage(Page.Location);\n },\n toStaneksGift: () => {\n setPage(Page.StaneksGift);\n },\n toAchievements: () => {\n setPage(Page.Achievements);\n },\n toThemeBrowser: () => {\n setPage(Page.ThemeBrowser);\n },\n toImportSave: (base64save: string, automatic = false) => {\n setImportString(base64save);\n setImportAutomatic(automatic);\n setPage(Page.ImportSave);\n },\n };\n\n useEffect(() => {\n // Wrap Router navigate functions to be able to disable the execution\n _functions(Router)\n .filter((fnName) => fnName.startsWith(\"to\"))\n .forEach((fnName) => {\n // @ts-ignore - tslint does not like this, couldn't find a way to make it cooperate\n Router[fnName] = _wrap(Router[fnName], (func, ...args) => {\n if (!allowRoutingCalls) {\n // Let's just log to console.\n console.error(`Routing is currently disabled - Attempted router.${fnName}()`);\n return;\n }\n\n // Call the function normally\n return func(...args);\n });\n });\n });\n\n useEffect(() => {\n if (page !== Page.Terminal) window.scrollTo(0, 0);\n });\n\n function softReset(): void {\n dialogBoxCreate(\"Soft Reset!\");\n installAugmentations(true);\n resetErrorBoundary();\n Router.toTerminal();\n }\n\n let mainPage = Cannot load;\n let withSidebar = true;\n let withPopups = true;\n let bypassGame = false;\n switch (page) {\n case Page.Recovery: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n break;\n }\n case Page.BitVerse: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Infiltration: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.BladeburnerCinematic: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Work: {\n mainPage = ;\n withSidebar = false;\n break;\n }\n case Page.Terminal: {\n mainPage = ;\n break;\n }\n case Page.Sleeves: {\n mainPage = ;\n break;\n }\n case Page.StaneksGift: {\n mainPage = ;\n break;\n }\n case Page.Stats: {\n mainPage = ;\n break;\n }\n case Page.ScriptEditor: {\n mainPage = (\n \n );\n break;\n }\n case Page.ActiveScripts: {\n mainPage = ;\n break;\n }\n case Page.Hacknet: {\n mainPage = ;\n break;\n }\n case Page.CreateProgram: {\n mainPage = ;\n break;\n }\n case Page.Factions: {\n mainPage = ;\n break;\n }\n case Page.Faction: {\n mainPage = ;\n break;\n }\n case Page.Milestones: {\n mainPage = ;\n break;\n }\n case Page.Tutorial: {\n mainPage = (\n {\n prestigeAugmentation();\n Router.toTerminal();\n iTutorialStart();\n }}\n />\n );\n break;\n }\n case Page.DevMenu: {\n mainPage = ;\n break;\n }\n case Page.Gang: {\n mainPage = ;\n break;\n }\n case Page.Corporation: {\n mainPage = ;\n break;\n }\n case Page.Bladeburner: {\n mainPage = ;\n break;\n }\n case Page.Grafting: {\n mainPage = ;\n break;\n }\n case Page.Travel: {\n mainPage = ;\n break;\n }\n case Page.StockMarket: {\n mainPage = (\n \n );\n break;\n }\n case Page.City: {\n mainPage = ;\n break;\n }\n case Page.Job:\n case Page.Location: {\n mainPage = ;\n break;\n }\n case Page.Options: {\n mainPage = (\n saveObject.saveGame()}\n export={() => {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n forceKill={killAllScripts}\n softReset={softReset}\n />\n );\n break;\n }\n case Page.Augmentations: {\n mainPage = (\n {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n installAugmentationsFn={() => {\n installAugmentations();\n }}\n />\n );\n break;\n }\n case Page.Achievements: {\n mainPage = ;\n break;\n }\n case Page.ThemeBrowser: {\n mainPage = ;\n break;\n }\n case Page.ImportSave: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n }\n }\n\n return (\n \n \n \n \n \n \n {!ITutorial.isRunning ? (\n saveObject.saveGame()} killScripts={killAllScripts} />\n ) : (\n \n )}\n \n {withSidebar ? (\n \n {\n setSideBarOpened(isOpened);\n Settings.IsSidebarOpened = isOpened;\n }}\n />\n {mainPage}\n \n ) : (\n {mainPage}\n )}\n \n {withPopups && (\n <>\n \n \n \n \n \n >\n )}\n \n \n \n \n \n \n \n );\n}\n","/**\n * Hacknet Servers - Reworked Hacknet Node mechanic for BitNode-9\n */\nimport { CONSTANTS } from \"../Constants\";\n\nimport { IHacknetNode } from \"./IHacknetNode\";\n\nimport { BaseServer } from \"../Server/BaseServer\";\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { HacknetServerConstants } from \"./data/Constants\";\nimport {\n calculateHashGainRate,\n calculateLevelUpgradeCost,\n calculateRamUpgradeCost,\n calculateCoreUpgradeCost,\n calculateCacheUpgradeCost,\n} from \"./formulas/HacknetServers\";\n\nimport { createRandomIp } from \"../utils/IPAddress\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\ninterface IConstructorParams {\n adminRights?: boolean;\n hostname: string;\n ip?: string;\n isConnectedTo?: boolean;\n maxRam?: number;\n organizationName?: string;\n}\n\nexport class HacknetServer extends BaseServer implements IHacknetNode {\n // Cache level. Affects hash Capacity\n cache = 1;\n\n // Number of cores. Improves hash production\n cores = 1;\n\n // Number of hashes that can be stored by this Hacknet Server\n hashCapacity = 0;\n\n // Hashes produced per second\n hashRate = 0;\n\n // Similar to Node level. Improves hash production\n level = 1;\n\n // How long this HacknetServer has existed, in seconds\n onlineTimeSeconds = 0;\n\n // Total number of hashes earned by this server\n totalHashesGenerated = 0;\n\n // Flag indicating wehther this is a purchased server\n purchasedByPlayer = true;\n\n constructor(params: IConstructorParams = { hostname: \"\", ip: createRandomIp() }) {\n super(params);\n\n this.maxRam = 1;\n this.updateHashCapacity();\n }\n\n calculateCacheUpgradeCost(levels: number): number {\n return calculateCacheUpgradeCost(this.cache, levels);\n }\n\n calculateCoreUpgradeCost(levels: number, costMult: number): number {\n return calculateCoreUpgradeCost(this.cores, levels, costMult);\n }\n\n calculateLevelUpgradeCost(levels: number, costMult: number): number {\n return calculateLevelUpgradeCost(this.level, levels, costMult);\n }\n\n calculateRamUpgradeCost(levels: number, costMult: number): number {\n return calculateRamUpgradeCost(this.maxRam, levels, costMult);\n }\n\n // Process this Hacknet Server in the game loop. Returns the number of hashes generated\n process(numCycles = 1): number {\n const seconds = (numCycles * CONSTANTS.MilliPerCycle) / 1000;\n this.onlineTimeSeconds += seconds;\n\n const hashes = this.hashRate * seconds;\n this.totalHashesGenerated += hashes;\n\n return hashes;\n }\n\n upgradeCache(levels: number): void {\n this.cache = Math.min(HacknetServerConstants.MaxCache, Math.round(this.cache + levels));\n this.updateHashCapacity();\n }\n\n upgradeCore(levels: number, prodMult: number): void {\n this.cores = Math.min(HacknetServerConstants.MaxCores, Math.round(this.cores + levels));\n this.updateHashRate(prodMult);\n this.cpuCores = this.cores;\n }\n\n upgradeLevel(levels: number, prodMult: number): void {\n this.level = Math.min(HacknetServerConstants.MaxLevel, Math.round(this.level + levels));\n this.updateHashRate(prodMult);\n }\n\n upgradeRam(levels: number, prodMult: number): boolean {\n for (let i = 0; i < levels; ++i) {\n this.maxRam *= 2;\n }\n this.maxRam = Math.min(HacknetServerConstants.MaxRam, Math.round(this.maxRam));\n this.updateHashRate(prodMult);\n\n return true;\n }\n\n // Whenever a script is run, we must update this server's hash rate\n runScript(script: RunningScript, prodMult?: number): void {\n super.runScript(script);\n if (prodMult != null && typeof prodMult === \"number\") {\n this.updateHashRate(prodMult);\n }\n }\n\n updateRamUsed(ram: number, player: IPlayer): void {\n super.updateRamUsed(ram, player);\n this.updateHashRate(player.mults.hacknet_node_money);\n }\n\n updateHashCapacity(): void {\n this.hashCapacity = 32 * Math.pow(2, this.cache);\n }\n\n updateHashRate(prodMult: number): void {\n this.hashRate = calculateHashGainRate(this.level, this.ramUsed, this.maxRam, this.cores, prodMult);\n\n if (isNaN(this.hashRate)) {\n this.hashRate = 0;\n console.error(\n `Error calculating Hacknet Server hash production. This is a bug. Please report to game dev`,\n false,\n );\n }\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): IReviverValue {\n return Generic_toJSON(\"HacknetServer\", this);\n }\n\n // Initializes a HacknetServer Object from a JSON save state\n static fromJSON(value: IReviverValue): HacknetServer {\n return Generic_fromJSON(HacknetServer, value.data);\n }\n}\n\nReviver.constructors.HacknetServer = HacknetServer;\n","import React, { useEffect } from \"react\";\nimport { useSnackbar, SnackbarProvider as SB } from \"notistack\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport Alert from \"@mui/material/Alert\";\nimport Paper from \"@mui/material/Paper\";\nimport { logBoxBaseZIndex } from \"./LogBoxManager\";\n\ninterface IProps {\n children: React.ReactNode | React.ReactNode[];\n}\n\nexport enum ToastVariant {\n SUCCESS = \"success\",\n WARNING = \"warning\",\n ERROR = \"error\",\n INFO = \"info\",\n}\n\nconst useStyles = makeStyles(() => ({\n snackbar: {\n // Log popup z-index increments, so let's add a padding to be well above them.\n zIndex: `${logBoxBaseZIndex + 1000} !important` as any,\n\n \"& .MuiAlert-icon\": {\n alignSelf: \"center\",\n },\n },\n}));\n\nexport function SnackbarProvider(props: IProps): React.ReactElement {\n const classes = useStyles();\n return (\n \n {props.children}\n \n );\n}\n\nexport const SnackbarEvents = new EventEmitter<[string | React.ReactNode, ToastVariant, number]>();\n\nexport function Snackbar(): React.ReactElement {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n useEffect(() =>\n SnackbarEvents.subscribe((s, variant, duration) => {\n const id = enqueueSnackbar({s}, {\n content: (k, m) => {m},\n variant: variant,\n autoHideDuration: duration,\n onClick: () => closeSnackbar(id),\n });\n }),\n );\n return <>>;\n}\n","import { IMap } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nexport const StockSymbols: IMap = {};\n\n// Stocks for companies at which you can work\nStockSymbols[LocationName.AevumECorp] = \"ECP\";\nStockSymbols[LocationName.Sector12MegaCorp] = \"MGCP\";\nStockSymbols[LocationName.Sector12BladeIndustries] = \"BLD\";\nStockSymbols[LocationName.AevumClarkeIncorporated] = \"CLRK\";\nStockSymbols[LocationName.VolhavenOmniTekIncorporated] = \"OMTK\";\nStockSymbols[LocationName.Sector12FourSigma] = \"FSIG\";\nStockSymbols[LocationName.ChongqingKuaiGongInternational] = \"KGI\";\nStockSymbols[LocationName.AevumFulcrumTechnologies] = \"FLCM\";\nStockSymbols[LocationName.IshimaStormTechnologies] = \"STM\";\nStockSymbols[LocationName.NewTokyoDefComm] = \"DCOMM\";\nStockSymbols[LocationName.VolhavenHeliosLabs] = \"HLS\";\nStockSymbols[LocationName.NewTokyoVitaLife] = \"VITA\";\nStockSymbols[LocationName.Sector12IcarusMicrosystems] = \"ICRS\";\nStockSymbols[LocationName.Sector12UniversalEnergy] = \"UNV\";\nStockSymbols[LocationName.AevumAeroCorp] = \"AERO\";\nStockSymbols[LocationName.VolhavenOmniaCybersystems] = \"OMN\";\nStockSymbols[LocationName.ChongqingSolarisSpaceSystems] = \"SLRS\";\nStockSymbols[LocationName.NewTokyoGlobalPharmaceuticals] = \"GPH\";\nStockSymbols[LocationName.IshimaNovaMedical] = \"NVMD\";\nStockSymbols[LocationName.AevumWatchdogSecurity] = \"WDS\";\nStockSymbols[LocationName.VolhavenLexoCorp] = \"LXO\";\nStockSymbols[LocationName.AevumRhoConstruction] = \"RHOC\";\nStockSymbols[LocationName.Sector12AlphaEnterprises] = \"APHE\";\nStockSymbols[LocationName.VolhavenSysCoreSecurities] = \"SYSC\";\nStockSymbols[LocationName.VolhavenCompuTek] = \"CTK\";\nStockSymbols[LocationName.AevumNetLinkTechnologies] = \"NTLK\";\nStockSymbols[LocationName.IshimaOmegaSoftware] = \"OMGA\";\nStockSymbols[LocationName.Sector12FoodNStuff] = \"FNS\";\nStockSymbols[LocationName.Sector12JoesGuns] = \"JGN\";\n\n// Stocks for other companies\nStockSymbols[\"Sigma Cosmetics\"] = \"SGC\";\nStockSymbols[\"Catalyst Ventures\"] = \"CTYS\";\nStockSymbols[\"Microdyne Technologies\"] = \"MDYN\";\nStockSymbols[\"Titan Laboratories\"] = \"TITN\";\n","export const validScriptExtensions: Array = [`.js`, `.script`];\n\nexport function isScriptFilename(f: string): boolean {\n return validScriptExtensions.some((ext) => f.endsWith(ext));\n}\n","import { BitNodeMultipliers } from \"./BitNode/BitNodeMultipliers\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { calculateIntelligenceBonus } from \"./PersonObjects/formulas/intelligence\";\nimport { Server } from \"./Server/Server\";\n\n/**\n * Returns the chance the player has to successfully hack a server\n */\nexport function calculateHackingChance(server: Server, player: IPlayer): number {\n const hackFactor = 1.75;\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = hackFactor * player.skills.hacking;\n const skillChance = (skillMult - server.requiredHackingSkill) / skillMult;\n const chance =\n skillChance *\n difficultyMult *\n player.mults.hacking_chance *\n calculateIntelligenceBonus(player.skills.intelligence, 1);\n if (chance > 1) {\n return 1;\n }\n if (chance < 0) {\n return 0;\n }\n\n return chance;\n}\n\n/**\n * Returns the amount of hacking experience the player will gain upon\n * successfully hacking a server\n */\nexport function calculateHackingExpGain(server: Server, player: IPlayer): number {\n const baseExpGain = 3;\n const diffFactor = 0.3;\n if (server.baseDifficulty == null) {\n server.baseDifficulty = server.hackDifficulty;\n }\n let expGain = baseExpGain;\n expGain += server.baseDifficulty * diffFactor;\n\n return expGain * player.mults.hacking_exp * BitNodeMultipliers.HackExpGain;\n}\n\n/**\n * Returns the percentage of money that will be stolen from a server if\n * it is successfully hacked (returns the decimal form, not the actual percent value)\n */\nexport function calculatePercentMoneyHacked(server: Server, player: IPlayer): number {\n // Adjust if needed for balancing. This is the divisor for the final calculation\n const balanceFactor = 240;\n\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = (player.skills.hacking - (server.requiredHackingSkill - 1)) / player.skills.hacking;\n const percentMoneyHacked =\n (difficultyMult * skillMult * player.mults.hacking_money * BitNodeMultipliers.ScriptHackMoney) / balanceFactor;\n if (percentMoneyHacked < 0) {\n return 0;\n }\n if (percentMoneyHacked > 1) {\n return 1;\n }\n\n return percentMoneyHacked;\n}\n\n/**\n * Returns time it takes to complete a hack on a server, in seconds\n */\nexport function calculateHackingTime(server: Server, player: IPlayer): number {\n const difficultyMult = server.requiredHackingSkill * server.hackDifficulty;\n\n const baseDiff = 500;\n const baseSkill = 50;\n const diffFactor = 2.5;\n let skillFactor = diffFactor * difficultyMult + baseDiff;\n // tslint:disable-next-line\n skillFactor /= player.skills.hacking + baseSkill;\n\n const hackTimeMultiplier = 5;\n const hackingTime =\n (hackTimeMultiplier * skillFactor) /\n (player.mults.hacking_speed * calculateIntelligenceBonus(player.skills.intelligence, 1));\n\n return hackingTime;\n}\n\n/**\n * Returns time it takes to complete a grow operation on a server, in seconds\n */\nexport function calculateGrowTime(server: Server, player: IPlayer): number {\n const growTimeMultiplier = 3.2; // Relative to hacking time. 16/5 = 3.2\n\n return growTimeMultiplier * calculateHackingTime(server, player);\n}\n\n/**\n * Returns time it takes to complete a weaken operation on a server, in seconds\n */\nexport function calculateWeakenTime(server: Server, player: IPlayer): number {\n const weakenTimeMultiplier = 4; // Relative to hacking time\n\n return weakenTimeMultiplier * calculateHackingTime(server, player);\n}\n","import { IPlayer } from \"../../IPlayer\";\nimport { IReviverValue } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applyWorkStats, applyWorkStatsExp, scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\nexport const applySleeveGains = (player: IPlayer, sleeve: Sleeve, rawStats: WorkStats, cycles = 1): void => {\n const shockedStats = scaleWorkStats(rawStats, sleeve.shockBonus(), rawStats.money > 0);\n applyWorkStatsExp(sleeve, shockedStats, cycles);\n const syncStats = scaleWorkStats(shockedStats, sleeve.syncBonus(), rawStats.money > 0);\n applyWorkStats(player, player, syncStats, cycles, \"sleeves\");\n player.sleeves.filter((s) => s != sleeve).forEach((s) => applyWorkStatsExp(s, syncStats, cycles));\n};\n\nexport abstract class Work {\n type: WorkType;\n\n constructor(type: WorkType) {\n this.type = type;\n }\n\n abstract process(player: IPlayer, sleeve: Sleeve, cycles: number): number;\n abstract APICopy(): Record;\n abstract toJSON(): IReviverValue;\n finish(__player: IPlayer): void {\n /* left for children to implement */\n }\n}\n\nexport enum WorkType {\n COMPANY = \"COMPANY\",\n FACTION = \"FACTION\",\n CRIME = \"CRIME\",\n CLASS = \"CLASS\",\n RECOVERY = \"RECOVERY\",\n SYNCHRO = \"SYNCHRO\",\n BLADEBURNER = \"BLADEBURNER\",\n INFILTRATE = \"INFILTRATE\",\n SUPPORT = \"SUPPORT\",\n}\n","import { Reviver } from \"../utils/JSONReviver\";\n\nimport { IStaneksGift } from \"./IStaneksGift\";\nimport { StaneksGift } from \"./StaneksGift\";\n\nexport let staneksGift: IStaneksGift = new StaneksGift();\n\nexport function loadStaneksGift(saveString: string): void {\n if (saveString) {\n staneksGift = JSON.parse(saveString, Reviver);\n } else {\n staneksGift = new StaneksGift();\n }\n}\n\nexport function zeros(width: number, height: number): number[][] {\n const array = [];\n\n for (let i = 0; i < width; ++i) {\n array.push(Array(height).fill(0));\n }\n\n return array;\n}\n\nexport function calculateGrid(gift: IStaneksGift): number[][] {\n const newgrid = zeros(gift.width(), gift.height()) as unknown as number[][];\n for (let i = 0; i < gift.width(); i++) {\n for (let j = 0; j < gift.height(); j++) {\n const fragment = gift.fragmentAt(i, j);\n if (!fragment) continue;\n newgrid[i][j] = 1;\n }\n }\n\n return newgrid;\n}\n","import { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { processOrders } from \"./OrderProcessing\";\nimport { Stock } from \"./Stock\";\nimport { TicksPerCycle } from \"./StockMarketConstants\";\nimport { InitStockMetadata } from \"./data/InitStockMetadata\";\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { StockSymbols } from \"./data/StockSymbols\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { IMap } from \"../types\";\nimport { EventEmitter } from \"../utils/EventEmitter\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let StockMarket: IStockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n} as IStockMarket; // Maps full stock name -> Stock object\nexport const SymbolToStockMap: IMap = {}; // Maps symbol -> Stock object\n\nexport function placeOrder(\n stock: Stock,\n shares: number,\n price: number,\n type: OrderTypes,\n position: PositionTypes,\n workerScript: WorkerScript | null = null,\n): boolean {\n if (!(stock instanceof Stock)) {\n if (workerScript) {\n workerScript.log(\"stock.placeOrder\", () => `Invalid stock: '${stock}'`);\n } else {\n dialogBoxCreate(`ERROR: Invalid stock passed to placeOrder() function`);\n }\n return false;\n }\n if (typeof shares !== \"number\" || typeof price !== \"number\") {\n if (workerScript) {\n workerScript.log(\"stock.placeOrder\", () => `Invalid arguments: shares='${shares}' price='${price}'`);\n } else {\n dialogBoxCreate(\"ERROR: Invalid numeric value provided for either 'shares' or 'price' argument\");\n }\n return false;\n }\n\n const order = new Order(stock.symbol, shares, price, type, position);\n if (StockMarket[\"Orders\"] == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stk = StockMarket[name];\n if (!(stk instanceof Stock)) {\n continue;\n }\n orders[stk.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n }\n StockMarket[\"Orders\"][stock.symbol].push(order);\n\n // Process to see if it should be executed immediately\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n processOrders(stock, order.type, order.pos, processOrderRefs);\n\n return true;\n}\n\n// Returns true if successfully cancels an order, false otherwise\nexport interface ICancelOrderParams {\n order?: Order;\n pos?: PositionTypes;\n price?: number;\n shares?: number;\n stock?: Stock;\n type?: OrderTypes;\n}\nexport function cancelOrder(params: ICancelOrderParams, workerScript: WorkerScript | null = null): boolean {\n if (StockMarket[\"Orders\"] == null) {\n return false;\n }\n if (params.order && params.order instanceof Order) {\n const order = params.order;\n // An 'Order' object is passed in\n const stockOrders = StockMarket[\"Orders\"][order.stockSymbol];\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n return true;\n }\n }\n return false;\n } else if (\n params.stock &&\n params.shares &&\n params.price &&\n params.type &&\n params.pos &&\n params.stock instanceof Stock\n ) {\n // Order properties are passed in. Need to look for the order\n const stockOrders = StockMarket[\"Orders\"][params.stock.symbol];\n const orderTxt = params.stock.symbol + \" - \" + params.shares + \" @ \" + numeralWrapper.formatMoney(params.price);\n for (let i = 0; i < stockOrders.length; ++i) {\n const order = stockOrders[i];\n if (\n params.shares === order.shares &&\n params.price === order.price &&\n params.type === order.type &&\n params.pos === order.pos\n ) {\n stockOrders.splice(i, 1);\n if (workerScript) {\n workerScript.scriptRef.log(\"Successfully cancelled order: \" + orderTxt);\n }\n return true;\n }\n }\n if (workerScript) {\n workerScript.scriptRef.log(\"Failed to cancel order: \" + orderTxt);\n }\n return false;\n }\n return false;\n}\n\nexport function loadStockMarket(saveString: string): void {\n if (saveString === \"\") {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n } else {\n StockMarket = JSON.parse(saveString, Reviver);\n }\n}\n\nexport function deleteStockMarket(): void {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n}\n\nexport function initStockMarket(): void {\n for (const stk of Object.keys(StockMarket)) {\n if (StockMarket.hasOwnProperty(stk)) {\n delete StockMarket[stk];\n }\n }\n\n for (const metadata of InitStockMetadata) {\n const name = metadata.name;\n StockMarket[name] = new Stock(metadata);\n }\n\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n\n StockMarket.storedCycles = 0;\n StockMarket.lastUpdate = 0;\n StockMarket.ticksUntilCycle = TicksPerCycle;\n}\n\nexport function initSymbolToStockMap(): void {\n for (const name of Object.keys(StockSymbols)) {\n if (StockSymbols.hasOwnProperty(name)) {\n const stock = StockMarket[name];\n if (stock == null) {\n console.error(`Could not find Stock for ${name}`);\n continue;\n }\n const symbol = StockSymbols[name];\n SymbolToStockMap[symbol] = stock;\n }\n }\n}\n\nfunction stockMarketCycle(): void {\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n\n const roll = Math.random();\n if (roll < 0.45) {\n stock.b = !stock.b;\n stock.flipForecastForecast();\n }\n\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n}\n\n// Stock prices updated every 6 seconds\nconst msPerStockUpdate = 6e3;\nconst cyclesPerStockUpdate = msPerStockUpdate / CONSTANTS.MilliPerCycle;\nexport function processStockPrices(numCycles = 1): void {\n if (StockMarket.storedCycles == null || isNaN(StockMarket.storedCycles)) {\n StockMarket.storedCycles = 0;\n }\n StockMarket.storedCycles += numCycles;\n\n if (StockMarket.storedCycles < cyclesPerStockUpdate) {\n return;\n }\n\n // We can process the update every 4 seconds as long as there are enough\n // stored cycles. This lets us account for offline time\n const timeNow = new Date().getTime();\n if (timeNow - StockMarket.lastUpdate < 4e3) {\n return;\n }\n\n StockMarket.lastUpdate = timeNow;\n StockMarket.storedCycles -= cyclesPerStockUpdate;\n\n // Cycle\n if (StockMarket.ticksUntilCycle == null || typeof StockMarket.ticksUntilCycle !== \"number\") {\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n --StockMarket.ticksUntilCycle;\n if (StockMarket.ticksUntilCycle <= 0) {\n stockMarketCycle();\n }\n\n const v = Math.random();\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n let av = (v * stock.mv) / 100;\n if (isNaN(av)) {\n av = 0.02;\n }\n\n let chc = 50;\n if (stock.b) {\n chc = (chc + stock.otlkMag) / 100;\n } else {\n chc = (chc - stock.otlkMag) / 100;\n }\n if (stock.price >= stock.cap) {\n chc = 0.1; // \"Soft Limit\" on stock price. It could still go up but its unlikely\n stock.b = false;\n }\n if (isNaN(chc)) {\n chc = 0.5;\n }\n\n const c = Math.random();\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n if (c < chc) {\n stock.changePrice(stock.price * (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Short, processOrderRefs);\n } else {\n stock.changePrice(stock.price / (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Long, processOrderRefs);\n }\n\n let otlkMagChange = stock.otlkMag * av;\n if (stock.otlkMag < 5) {\n if (stock.otlkMag <= 1) {\n otlkMagChange = 1;\n } else {\n otlkMagChange *= 10;\n }\n }\n stock.cycleForecast(otlkMagChange);\n stock.cycleForecastForecast(otlkMagChange / 2);\n\n // Shares required for price movement gradually approaches max over time\n stock.shareTxUntilMovement = Math.min(stock.shareTxUntilMovement + 10, stock.shareTxForMovement);\n }\n}\n\nexport function initStockMarketFn(): void {\n initStockMarket();\n initSymbolToStockMap();\n}\n\nexport const eventEmitterForUiReset = new EventEmitter<[]>();\n","import { StaticAugmentations } from \"../Augmentation/StaticAugmentations\";\nimport { Augmentation } from \"../Augmentation/Augmentation\";\nimport { PlayerOwnedAugmentation } from \"../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\nimport { Faction } from \"./Faction\";\nimport { Factions } from \"./Factions\";\nimport { Player } from \"../Player\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Settings } from \"../Settings/Settings\";\nimport {\n getHackingWorkRepGain,\n getFactionSecurityWorkRepGain,\n getFactionFieldWorkRepGain,\n} from \"../PersonObjects/formulas/reputation\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { InvitationEvent } from \"./ui/InvitationModal\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { SFC32RNG } from \"../Casino/RNG\";\nimport { isFactionWork } from \"../Work/FactionWork\";\n\nexport function inviteToFaction(faction: Faction): void {\n Player.receiveInvite(faction.name);\n faction.alreadyInvited = true;\n if (!Settings.SuppressFactionInvites) {\n InvitationEvent.emit(faction);\n }\n}\n\nexport function joinFaction(faction: Faction): void {\n if (faction.isMember) return;\n faction.isMember = true;\n Player.factions.push(faction.name);\n const allFactions = Object.values(FactionNames).map((faction) => faction as string);\n Player.factions.sort((a, b) => allFactions.indexOf(a) - allFactions.indexOf(b));\n const factionInfo = faction.getInfo();\n\n //Determine what factions you are banned from now that you have joined this faction\n for (const enemy of factionInfo.enemies) {\n if (Factions[enemy] instanceof Faction) {\n Factions[enemy].isBanned = true;\n }\n }\n for (let i = 0; i < Player.factionInvitations.length; ++i) {\n if (Player.factionInvitations[i] == faction.name || Factions[Player.factionInvitations[i]].isBanned) {\n Player.factionInvitations.splice(i, 1);\n i--;\n }\n }\n}\n\n//Returns a boolean indicating whether the player has the prerequisites for the\n//specified Augmentation\nexport function hasAugmentationPrereqs(aug: Augmentation): boolean {\n return aug.prereqs.every((aug) => Player.hasAugmentation(aug));\n}\n\nexport function purchaseAugmentation(aug: Augmentation, fac: Faction, sing = false): string {\n const hasPrereqs = hasAugmentationPrereqs(aug);\n const augCosts = aug.getCost(Player);\n if (!hasPrereqs) {\n const txt = `You must first purchase or install ${aug.prereqs\n .filter((req) => !Player.hasAugmentation(req))\n .join(\",\")} before you can purchase this one.`;\n if (sing) {\n return txt;\n } else {\n dialogBoxCreate(txt);\n }\n } else if (augCosts.moneyCost !== 0 && Player.money < augCosts.moneyCost) {\n const txt = \"You don't have enough money to purchase \" + aug.name;\n if (sing) {\n return txt;\n }\n dialogBoxCreate(txt);\n } else if (fac.playerReputation < augCosts.repCost) {\n const txt = \"You don't have enough faction reputation to purchase \" + aug.name;\n if (sing) {\n return txt;\n }\n dialogBoxCreate(txt);\n } else if (augCosts.moneyCost === 0 || Player.money >= augCosts.moneyCost) {\n const queuedAugmentation = new PlayerOwnedAugmentation(aug.name);\n if (aug.name == AugmentationNames.NeuroFluxGovernor) {\n queuedAugmentation.level = aug.getLevel(Player);\n }\n Player.queuedAugmentations.push(queuedAugmentation);\n\n Player.loseMoney(augCosts.moneyCost, \"augmentations\");\n\n if (sing) {\n return \"You purchased \" + aug.name;\n } else if (!Settings.SuppressBuyAugmentationConfirmation) {\n dialogBoxCreate(\n \"You purchased \" +\n aug.name +\n \". Its enhancements will not take \" +\n \"effect until they are installed. To install your augmentations, go to the \" +\n \"'Augmentations' tab on the left-hand navigation menu. Purchasing additional \" +\n \"augmentations will now be more expensive.\",\n );\n }\n } else {\n dialogBoxCreate(\n \"Hmm, something went wrong when trying to purchase an Augmentation. \" +\n \"Please report this to the game developer with an explanation of how to \" +\n \"reproduce this.\",\n );\n }\n return \"\";\n}\n\nexport function processPassiveFactionRepGain(numCycles: number): void {\n for (const name of Object.keys(Factions)) {\n if (isFactionWork(Player.currentWork) && name === Player.currentWork.factionName) continue;\n if (!Factions.hasOwnProperty(name)) continue;\n const faction = Factions[name];\n if (!faction.isMember) continue;\n // No passive rep for special factions\n const info = faction.getInfo();\n if (!info.offersWork()) continue;\n // No passive rep for gangs.\n if (Player.getGangName() === name) continue;\n // 0 favor = 1%/s\n // 50 favor = 6%/s\n // 100 favor = 11%/s\n const favorMult = Math.min(0.1, faction.favor / 1000 + 0.01);\n // Find the best of all possible favor gain, minimum 1 rep / 2 minute.\n const hRep = getHackingWorkRepGain(Player, faction.favor);\n const sRep = getFactionSecurityWorkRepGain(Player, faction.favor);\n const fRep = getFactionFieldWorkRepGain(Player, faction.favor);\n const rate = Math.max(hRep * favorMult, sRep * favorMult, fRep * favorMult, 1 / 120);\n\n faction.playerReputation += rate * numCycles * Player.mults.faction_rep * BitNodeMultipliers.FactionPassiveRepGain;\n }\n}\n\nexport const getFactionAugmentationsFiltered = (player: IPlayer, faction: Faction): string[] => {\n // If player has a gang with this faction, return (almost) all augmentations\n if (player.hasGangWith(faction.name)) {\n let augs = Object.values(StaticAugmentations);\n\n // Remove special augs\n augs = augs.filter((a) => !a.isSpecial && a.name !== AugmentationNames.CongruityImplant);\n\n if (player.bitNodeN === 2) {\n // TRP is not available outside of BN2 for Gangs\n augs.push(StaticAugmentations[AugmentationNames.TheRedPill]);\n }\n\n const rng = SFC32RNG(`BN${player.bitNodeN}.${player.sourceFileLvl(player.bitNodeN)}`);\n // Remove faction-unique augs that don't belong to this faction\n const uniqueFilter = (a: Augmentation): boolean => {\n // Keep all the non-unique one\n if (a.factions.length > 1) {\n return true;\n }\n // Keep all the ones that this faction has anyway.\n if (faction.augmentations.includes(a.name)) {\n return true;\n }\n\n return rng() >= 1 - BitNodeMultipliers.GangUniqueAugs;\n };\n augs = augs.filter(uniqueFilter);\n\n return augs.map((a) => a.name);\n }\n\n return faction.augmentations.slice();\n};\n","import { loadAliases, loadGlobalAliases, Aliases, GlobalAliases } from \"./Alias\";\nimport { Companies, loadCompanies } from \"./Company/Companies\";\nimport { CONSTANTS } from \"./Constants\";\nimport { Factions, loadFactions } from \"./Faction/Factions\";\nimport { loadAllGangs, AllGangs } from \"./Gang/AllGangs\";\nimport { Player, loadPlayer } from \"./Player\";\nimport {\n saveAllServers,\n loadAllServers,\n GetAllServers,\n createUniqueRandomIp,\n AddToAllServers,\n GetServer,\n} from \"./Server/AllServers\";\nimport { Settings } from \"./Settings/Settings\";\nimport { loadStockMarket, StockMarket } from \"./StockMarket/StockMarket\";\nimport { staneksGift, loadStaneksGift } from \"./CotMG/Helper\";\n\nimport { SnackbarEvents, ToastVariant } from \"./ui/React/Snackbar\";\n\nimport * as ExportBonus from \"./ExportBonus\";\n\nimport { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"./utils/JSONReviver\";\nimport { save } from \"./db\";\nimport { AwardNFG, v1APIBreak } from \"./utils/v1APIBreak\";\nimport { AugmentationNames } from \"./Augmentation/data/AugmentationNames\";\nimport { PlayerOwnedAugmentation } from \"./Augmentation/PlayerOwnedAugmentation\";\nimport { LocationName } from \"./Locations/data/LocationNames\";\nimport { SxProps } from \"@mui/system\";\nimport { PlayerObject } from \"./PersonObjects/Player/PlayerObject\";\nimport { pushGameSaved } from \"./Electron\";\nimport { defaultMonacoTheme } from \"./ScriptEditor/ui/themes\";\nimport { FactionNames } from \"./Faction/data/FactionNames\";\nimport { Faction } from \"./Faction/Faction\";\nimport { safetlyCreateUniqueServer } from \"./Server/ServerHelpers\";\nimport { SpecialServers } from \"./Server/data/SpecialServers\";\nimport { v2APIBreak } from \"./utils/v2APIBreak\";\nimport { Script } from \"./Script/Script\";\n\n/* SaveObject.js\n * Defines the object used to save/load games\n */\n\nexport interface SaveData {\n playerIdentifier: string;\n fileName: string;\n save: string;\n savedOn: number;\n}\n\nexport interface ImportData {\n base64: string;\n playerData?: ImportPlayerData;\n}\n\nexport interface ImportPlayerData {\n identifier: string;\n lastSave: number;\n totalPlaytime: number;\n\n money: number;\n hacking: number;\n\n augmentations: number;\n factions: number;\n achievements: number;\n\n bitNode: number;\n bitNodeLevel: number;\n sourceFiles: number;\n}\n\nclass BitburnerSaveObject {\n PlayerSave = \"\";\n AllServersSave = \"\";\n CompaniesSave = \"\";\n FactionsSave = \"\";\n AliasesSave = \"\";\n GlobalAliasesSave = \"\";\n StockMarketSave = \"\";\n SettingsSave = \"\";\n VersionSave = \"\";\n AllGangsSave = \"\";\n LastExportBonus = \"\";\n StaneksGiftSave = \"\";\n\n getSaveString(excludeRunningScripts = false): string {\n this.PlayerSave = JSON.stringify(Player);\n\n this.AllServersSave = saveAllServers(excludeRunningScripts);\n this.CompaniesSave = JSON.stringify(Companies);\n this.FactionsSave = JSON.stringify(Factions);\n this.AliasesSave = JSON.stringify(Aliases);\n this.GlobalAliasesSave = JSON.stringify(GlobalAliases);\n this.StockMarketSave = JSON.stringify(StockMarket);\n this.SettingsSave = JSON.stringify(Settings);\n this.VersionSave = JSON.stringify(CONSTANTS.VersionNumber);\n this.LastExportBonus = JSON.stringify(ExportBonus.LastExportBonus);\n this.StaneksGiftSave = JSON.stringify(staneksGift);\n\n if (Player.inGang()) {\n this.AllGangsSave = JSON.stringify(AllGangs);\n }\n const saveString = btoa(unescape(encodeURIComponent(JSON.stringify(this))));\n\n return saveString;\n }\n\n saveGame(emitToastEvent = true): Promise {\n const savedOn = new Date().getTime();\n Player.lastSave = savedOn;\n const saveString = this.getSaveString(Settings.ExcludeRunningScriptsFromSave);\n return new Promise((resolve, reject) => {\n save(saveString)\n .then(() => {\n const saveData: SaveData = {\n playerIdentifier: Player.identifier,\n fileName: this.getSaveFileName(),\n save: saveString,\n savedOn,\n };\n pushGameSaved(saveData);\n\n if (emitToastEvent) {\n SnackbarEvents.emit(\"Game Saved!\", ToastVariant.INFO, 2000);\n }\n return resolve();\n })\n .catch((err) => {\n console.error(err);\n return reject();\n });\n });\n }\n\n getSaveFileName(isRecovery = false): string {\n // Save file name is based on current timestamp and BitNode\n const epochTime = Math.round(Date.now() / 1000);\n const bn = Player.bitNodeN;\n let filename = `bitburnerSave_${epochTime}_BN${bn}x${Player.sourceFileLvl(bn) + 1}.json`;\n if (isRecovery) filename = \"RECOVERY\" + filename;\n return filename;\n }\n\n exportGame(): void {\n const saveString = this.getSaveString(Settings.ExcludeRunningScriptsFromSave);\n const filename = this.getSaveFileName();\n download(filename, saveString);\n }\n\n importGame(base64Save: string, reload = true): Promise {\n if (!base64Save || base64Save === \"\") throw new Error(\"Invalid import string\");\n return save(base64Save).then(() => {\n if (reload) setTimeout(() => location.reload(), 1000);\n return Promise.resolve();\n });\n }\n\n getImportStringFromFile(files: FileList | null): Promise {\n if (files === null) return Promise.reject(new Error(\"No file selected\"));\n const file = files[0];\n if (!file) return Promise.reject(new Error(\"Invalid file selected\"));\n\n const reader = new FileReader();\n const promise: Promise = new Promise((resolve, reject) => {\n reader.onload = function (this: FileReader, e: ProgressEvent) {\n const target = e.target;\n if (target === null) {\n return reject(new Error(\"Error importing file\"));\n }\n const result = target.result;\n if (typeof result !== \"string\") {\n return reject(new Error(\"FileReader event was not type string\"));\n }\n const contents = result;\n resolve(contents);\n };\n });\n reader.readAsText(file);\n return promise;\n }\n\n async getImportDataFromString(base64Save: string): Promise {\n if (!base64Save || base64Save === \"\") throw new Error(\"Invalid import string\");\n\n let newSave;\n try {\n newSave = window.atob(base64Save);\n newSave = newSave.trim();\n } catch (error) {\n console.error(error); // We'll handle below\n }\n\n if (!newSave || newSave === \"\") {\n return Promise.reject(new Error(\"Save game had not content or was not base64 encoded\"));\n }\n\n let parsedSave;\n try {\n parsedSave = JSON.parse(newSave);\n } catch (error) {\n console.error(error); // We'll handle below\n }\n\n if (!parsedSave || parsedSave.ctor !== \"BitburnerSaveObject\" || !parsedSave.data) {\n return Promise.reject(new Error(\"Save game did not seem valid\"));\n }\n\n const data: ImportData = {\n base64: base64Save,\n };\n\n const importedPlayer = PlayerObject.fromJSON(JSON.parse(parsedSave.data.PlayerSave));\n\n const playerData: ImportPlayerData = {\n identifier: importedPlayer.identifier,\n lastSave: importedPlayer.lastSave,\n totalPlaytime: importedPlayer.totalPlaytime,\n\n money: importedPlayer.money,\n hacking: importedPlayer.skills.hacking,\n\n augmentations: importedPlayer.augmentations?.reduce((total, current) => (total += current.level), 0) ?? 0,\n factions: importedPlayer.factions?.length ?? 0,\n achievements: importedPlayer.achievements?.length ?? 0,\n\n bitNode: importedPlayer.bitNodeN,\n bitNodeLevel: importedPlayer.sourceFileLvl(Player.bitNodeN) + 1,\n sourceFiles: importedPlayer.sourceFiles?.reduce((total, current) => (total += current.lvl), 0) ?? 0,\n };\n\n data.playerData = playerData;\n return Promise.resolve(data);\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"BitburnerSaveObject\", this);\n }\n\n static fromJSON(value: IReviverValue): BitburnerSaveObject {\n return Generic_fromJSON(BitburnerSaveObject, value.data);\n }\n}\n\n// Makes necessary changes to the loaded/imported data to ensure\n// the game stills works with new versions\nfunction evaluateVersionCompatibility(ver: string | number): void {\n // We have to do this because ts won't let us otherwise\n const anyPlayer = Player as any;\n if (typeof ver === \"string\") {\n // This version refactored the Company/job-related code\n if (ver <= \"0.41.2\") {\n // Player's company position is now a string\n if (anyPlayer.companyPosition != null && typeof anyPlayer.companyPosition !== \"string\") {\n anyPlayer.companyPosition = anyPlayer.companyPosition.data.positionName;\n if (anyPlayer.companyPosition == null) {\n anyPlayer.companyPosition = \"\";\n }\n }\n\n // The \"companyName\" property of all Companies is renamed to \"name\"\n interface Company0_41_2 {\n name: string | number;\n companyName: string;\n companyPositions: Record;\n }\n for (const companyName of Object.keys(Companies)) {\n const company = Companies[companyName] as unknown as Company0_41_2;\n if (company.name == 0 && company.companyName != null) {\n company.name = company.companyName;\n }\n\n if (company.companyPositions instanceof Array) {\n const pos: Record = {};\n\n for (let i = 0; i < company.companyPositions.length; ++i) {\n pos[company.companyPositions[i]] = true;\n }\n company.companyPositions = pos;\n }\n }\n }\n\n // This version allowed players to hold multiple jobs\n if (ver < \"0.43.0\") {\n if (anyPlayer.companyName !== \"\" && anyPlayer.companyPosition != null && anyPlayer.companyPosition !== \"\") {\n anyPlayer.jobs[anyPlayer.companyName] = anyPlayer.companyPosition;\n }\n\n delete anyPlayer.companyPosition;\n }\n if (ver < \"0.56.0\") {\n for (const q of anyPlayer.queuedAugmentations) {\n if (q.name === \"Graphene BranchiBlades Upgrade\") {\n q.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n for (const q of anyPlayer.augmentations) {\n if (q.name === \"Graphene BranchiBlades Upgrade\") {\n q.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n }\n if (ver < \"0.56.1\") {\n if (anyPlayer.bladeburner === 0) {\n anyPlayer.bladeburner = null;\n }\n if (anyPlayer.gang === 0) {\n anyPlayer.gang = null;\n }\n if (anyPlayer.corporation === 0) {\n anyPlayer.corporation = null;\n }\n // convert all Messages to just filename to save space.\n const home = anyPlayer.getHomeComputer();\n for (let i = 0; i < home.messages.length; i++) {\n if (home.messages[i].filename) {\n home.messages[i] = home.messages[i].filename;\n }\n }\n }\n if (ver < \"0.58.0\") {\n const changes: [RegExp, string][] = [\n [/getStockSymbols/g, \"stock.getSymbols\"],\n [/getStockPrice/g, \"stock.getPrice\"],\n [/getStockAskPrice/g, \"stock.getAskPrice\"],\n [/getStockBidPrice/g, \"stock.getBidPrice\"],\n [/getStockPosition/g, \"stock.getPosition\"],\n [/getStockMaxShares/g, \"stock.getMaxShares\"],\n [/getStockPurchaseCost/g, \"stock.getPurchaseCost\"],\n [/getStockSaleGain/g, \"stock.getSaleGain\"],\n [/buyStock/g, \"stock.buy\"],\n [/sellStock/g, \"stock.sell\"],\n [/shortStock/g, \"stock.short\"],\n [/sellShort/g, \"stock.sellShort\"],\n [/placeOrder/g, \"stock.placeOrder\"],\n [/cancelOrder/g, \"stock.cancelOrder\"],\n [/getOrders/g, \"stock.getOrders\"],\n [/getStockVolatility/g, \"stock.getVolatility\"],\n [/getStockForecast/g, \"stock.getForecast\"],\n [/purchase4SMarketData/g, \"stock.purchase4SMarketData\"],\n [/purchase4SMarketDataTixApi/g, \"stock.purchase4SMarketDataTixApi\"],\n ];\n function convert(code: string): string {\n for (const change of changes) {\n code = code.replace(change[0], change[1]);\n }\n return code;\n }\n for (const server of GetAllServers()) {\n for (const script of server.scripts) {\n script.code = convert(script.code);\n }\n }\n }\n v1APIBreak();\n ver = 1;\n }\n if (typeof ver === \"number\") {\n if (ver < 2) {\n AwardNFG(10);\n Player.reapplyAllAugmentations(true);\n Player.reapplyAllSourceFiles();\n }\n if (ver < 3) {\n anyPlayer.money = parseFloat(anyPlayer.money);\n if (anyPlayer.corporation) {\n anyPlayer.corporation.funds = parseFloat(anyPlayer.corporation.funds);\n anyPlayer.corporation.revenue = parseFloat(anyPlayer.corporation.revenue);\n anyPlayer.corporation.expenses = parseFloat(anyPlayer.corporation.expenses);\n\n for (let i = 0; i < anyPlayer.corporation.divisions.length; ++i) {\n const ind = anyPlayer.corporation.divisions[i];\n ind.lastCycleRevenue = parseFloat(ind.lastCycleRevenue);\n ind.lastCycleExpenses = parseFloat(ind.lastCycleExpenses);\n ind.thisCycleRevenue = parseFloat(ind.thisCycleRevenue);\n ind.thisCycleExpenses = parseFloat(ind.thisCycleExpenses);\n }\n }\n }\n if (ver < 9) {\n if (StockMarket.hasOwnProperty(\"Joes Guns\")) {\n const s = StockMarket[\"Joes Guns\"];\n delete StockMarket[\"Joes Guns\"];\n StockMarket[LocationName.Sector12JoesGuns] = s;\n }\n }\n if (ver < 10) {\n // Augmentation name was changed in 0.56.0 but sleeves aug list was missed.\n if (anyPlayer.sleeves && anyPlayer.sleeves.length > 0) {\n for (const sleeve of anyPlayer.sleeves) {\n if (!sleeve.augmentations || sleeve.augmentations.length === 0) continue;\n for (const augmentation of sleeve.augmentations) {\n if (augmentation.name !== \"Graphene BranchiBlades Upgrade\") continue;\n augmentation.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n }\n }\n if (ver < 12) {\n if (anyPlayer.resleeves !== undefined) {\n delete anyPlayer.resleeves;\n }\n }\n\n if (ver < 15) {\n Settings.EditorTheme = { ...defaultMonacoTheme };\n }\n //Fix contract names\n if (ver < 16) {\n Factions[FactionNames.ShadowsOfAnarchy] = new Faction(FactionNames.ShadowsOfAnarchy);\n //Iterate over all contracts on all servers\n for (const server of GetAllServers()) {\n for (const contract of server.contracts) {\n //Rename old \"HammingCodes: Integer to encoded Binary\" contracts\n //to \"HammingCodes: Integer to Encoded Binary\"\n if (contract.type == \"HammingCodes: Integer to encoded Binary\") {\n contract.type = \"HammingCodes: Integer to Encoded Binary\";\n }\n }\n }\n }\n\n const v22PlayerBreak = () => {\n // reset HP correctly to avoid crash\n anyPlayer.hp = { current: 1, max: 1 };\n for (const sleeve of anyPlayer.sleeves) {\n sleeve.hp = { current: 1, max: 1 };\n }\n\n // transfer over old exp to new struct\n anyPlayer.exp.hacking = anyPlayer.hacking_exp;\n anyPlayer.exp.strength = anyPlayer.strength_exp;\n anyPlayer.exp.defense = anyPlayer.defense_exp;\n anyPlayer.exp.dexterity = anyPlayer.dexterity_exp;\n anyPlayer.exp.agility = anyPlayer.agility_exp;\n anyPlayer.exp.charisma = anyPlayer.charisma_exp;\n anyPlayer.exp.intelligence = anyPlayer.intelligence_exp;\n };\n\n // Fix bugged NFG accumulation in owned augmentations\n if (ver < 17) {\n let ownedNFGs = [...Player.augmentations];\n ownedNFGs = ownedNFGs.filter((aug) => aug.name === AugmentationNames.NeuroFluxGovernor);\n const newNFG = new PlayerOwnedAugmentation(AugmentationNames.NeuroFluxGovernor);\n newNFG.level = 0;\n\n for (const nfg of ownedNFGs) {\n newNFG.level += nfg.level;\n }\n\n Player.augmentations = [\n ...Player.augmentations.filter((aug) => aug.name !== AugmentationNames.NeuroFluxGovernor),\n newNFG,\n ];\n\n v22PlayerBreak();\n Player.reapplyAllAugmentations(true);\n Player.reapplyAllSourceFiles();\n }\n\n if (ver < 20) {\n // Create the darkweb for everyone but it won't be linked\n const dw = GetServer(SpecialServers.DarkWeb);\n if (!dw) {\n const darkweb = safetlyCreateUniqueServer({\n ip: createUniqueRandomIp(),\n hostname: SpecialServers.DarkWeb,\n organizationName: \"\",\n isConnectedTo: false,\n adminRights: false,\n purchasedByPlayer: false,\n maxRam: 1,\n });\n AddToAllServers(darkweb);\n }\n }\n if (ver < 21) {\n // 2.0.0 work rework\n AwardNFG(10);\n const create = anyPlayer[\"createProgramName\"];\n if (create) Player.getHomeComputer().pushProgram(create);\n const graft = anyPlayer[\"graftAugmentationName\"];\n if (graft) Player.augmentations.push({ name: graft, level: 1 });\n }\n if (ver < 22) {\n v22PlayerBreak();\n v2APIBreak();\n }\n if (ver < 23) {\n anyPlayer.currentWork = null;\n }\n if (ver < 24) {\n Player.getHomeComputer().scripts.forEach((s) => s.filename.endsWith(\".ns\") && (s.filename += \".js\"));\n }\n if (ver < 25) {\n const removePlayerFields = [\n \"hacking_chance_mult\",\n \"hacking_speed_mult\",\n \"hacking_money_mult\",\n \"hacking_grow_mult\",\n \"hacking_mult\",\n \"strength_mult\",\n \"defense_mult\",\n \"dexterity_mult\",\n \"agility_mult\",\n \"charisma_mult\",\n \"hacking_exp_mult\",\n \"strength_exp_mult\",\n \"defense_exp_mult\",\n \"dexterity_exp_mult\",\n \"agility_exp_mult\",\n \"charisma_exp_mult\",\n \"company_rep_mult\",\n \"faction_rep_mult\",\n \"crime_money_mult\",\n \"crime_success_mult\",\n \"work_money_mult\",\n \"hacknet_node_money_mult\",\n \"hacknet_node_purchase_cost_mult\",\n \"hacknet_node_ram_cost_mult\",\n \"hacknet_node_core_cost_mult\",\n \"hacknet_node_level_cost_mult\",\n \"bladeburner_max_stamina_mult\",\n \"bladeburner_stamina_gain_mult\",\n \"bladeburner_analysis_mult\",\n \"bladeburner_success_chance_mult\",\n \"hacking_exp\",\n \"strength_exp\",\n \"defense_exp\",\n \"dexterity_exp\",\n \"agility_exp\",\n \"charisma_exp\",\n \"intelligence_exp\",\n \"companyName\",\n \"isWorking\",\n \"workType\",\n \"workCostMult\",\n \"workExpMult\",\n \"currentWorkFactionName\",\n \"currentWorkFactionDescription\",\n \"workHackExpGainRate\",\n \"workStrExpGainRate\",\n \"workDefExpGainRate\",\n \"workDexExpGainRate\",\n \"workAgiExpGainRate\",\n \"workChaExpGainRate\",\n \"workRepGainRate\",\n \"workMoneyGainRate\",\n \"workMoneyLossRate\",\n \"workHackExpGained\",\n \"workStrExpGained\",\n \"workDefExpGained\",\n \"workDexExpGained\",\n \"workAgiExpGained\",\n \"workChaExpGained\",\n \"workRepGained\",\n \"workMoneyGained\",\n \"createProgramName\",\n \"createProgramReqLvl\",\n \"graftAugmentationName\",\n \"timeWorkedGraftAugmentation\",\n \"className\",\n \"crimeType\",\n \"timeWorked\",\n \"timeWorkedCreateProgram\",\n \"timeNeededToCompleteWork\",\n \"factionWorkType\",\n \"committingCrimeThruSingFn\",\n \"singFnCrimeWorkerScript\",\n \"hacking\",\n \"max_hp\",\n \"strength\",\n \"defense\",\n \"dexterity\",\n \"agility\",\n \"charisma\",\n \"intelligence\",\n ];\n const removeSleeveFields = [\n \"gymStatType\",\n \"bbAction\",\n \"bbContract\",\n \"hacking\",\n \"strength\",\n \"defense\",\n \"dexterity\",\n \"agility\",\n \"charisma\",\n \"intelligence\",\n \"max_hp\",\n \"hacking_exp\",\n \"strength_exp\",\n \"defense_exp\",\n \"dexterity_exp\",\n \"agility_exp\",\n \"charisma_exp\",\n \"intelligence_exp\",\n \"hacking_mult\",\n \"strength_mult\",\n \"defense_mult\",\n \"dexterity_mult\",\n \"agility_mult\",\n \"charisma_mult\",\n \"hacking_exp_mult\",\n \"strength_exp_mult\",\n \"defense_exp_mult\",\n \"dexterity_exp_mult\",\n \"agility_exp_mult\",\n \"charisma_exp_mult\",\n \"hacking_chance_mult\",\n \"hacking_speed_mult\",\n \"hacking_money_mult\",\n \"hacking_grow_mult\",\n \"company_rep_mult\",\n \"faction_rep_mult\",\n \"crime_money_mult\",\n \"crime_success_mult\",\n \"work_money_mult\",\n \"hacknet_node_money_mult\",\n \"hacknet_node_purchase_cost_mult\",\n \"hacknet_node_ram_cost_mult\",\n \"hacknet_node_core_cost_mult\",\n \"hacknet_node_level_cost_mult\",\n \"bladeburner_max_stamina_mult\",\n \"bladeburner_stamina_gain_mult\",\n \"bladeburner_analysis_mult\",\n \"bladeburner_success_chance_mult\",\n \"className\",\n \"crimeType\",\n \"currentTask\",\n \"currentTaskLocation\",\n \"currentTaskMaxTime\",\n \"currentTaskTime\",\n \"earningsForSleeves\",\n \"earningsForPlayer\",\n \"earningsForTask\",\n \"factionWorkType\",\n \"gainRatesForTask\",\n \"logs\",\n ];\n let intExp = Number(anyPlayer.intelligence_exp);\n if (isNaN(intExp)) intExp = 0;\n anyPlayer.exp.intelligence += intExp;\n for (const field of removePlayerFields) {\n delete anyPlayer[field];\n }\n for (const sleeve of anyPlayer.sleeves) {\n const anySleeve = sleeve as any;\n let intExp = Number(anySleeve.intelligence_exp);\n if (isNaN(intExp)) intExp = 0;\n anySleeve.exp.intelligence += intExp;\n for (const field of removeSleeveFields) {\n delete sleeve[field];\n }\n }\n }\n }\n}\n\nfunction loadGame(saveString: string): boolean {\n createScamUpdateText();\n if (!saveString) return false;\n saveString = decodeURIComponent(escape(atob(saveString)));\n\n const saveObj = JSON.parse(saveString, Reviver);\n\n loadPlayer(saveObj.PlayerSave);\n loadAllServers(saveObj.AllServersSave);\n loadCompanies(saveObj.CompaniesSave);\n loadFactions(saveObj.FactionsSave);\n\n if (saveObj.hasOwnProperty(\"StaneksGiftSave\")) {\n loadStaneksGift(saveObj.StaneksGiftSave);\n } else {\n console.warn(`Could not load Staneks Gift from save`);\n loadStaneksGift(\"\");\n }\n if (saveObj.hasOwnProperty(\"AliasesSave\")) {\n try {\n loadAliases(saveObj.AliasesSave);\n } catch (e) {\n console.warn(`Could not load Aliases from save`);\n loadAliases(\"\");\n }\n } else {\n console.warn(`Save file did not contain an Aliases property`);\n loadAliases(\"\");\n }\n if (saveObj.hasOwnProperty(\"GlobalAliasesSave\")) {\n try {\n loadGlobalAliases(saveObj.GlobalAliasesSave);\n } catch (e) {\n console.warn(`Could not load GlobalAliases from save`);\n loadGlobalAliases(\"\");\n }\n } else {\n console.warn(`Save file did not contain a GlobalAliases property`);\n loadGlobalAliases(\"\");\n }\n if (saveObj.hasOwnProperty(\"StockMarketSave\")) {\n try {\n loadStockMarket(saveObj.StockMarketSave);\n } catch (e) {\n loadStockMarket(\"\");\n }\n } else {\n loadStockMarket(\"\");\n }\n if (saveObj.hasOwnProperty(\"SettingsSave\")) {\n try {\n Settings.load(saveObj.SettingsSave);\n } catch (e) {\n console.error(\"ERROR: Failed to parse Settings. Re-initing default values\");\n Settings.init();\n }\n } else {\n Settings.init();\n }\n if (saveObj.hasOwnProperty(\"LastExportBonus\")) {\n try {\n ExportBonus.setLastExportBonus(JSON.parse(saveObj.LastExportBonus));\n } catch (err) {\n ExportBonus.setLastExportBonus(new Date().getTime());\n console.error(\"ERROR: Failed to parse last export bonus Settings \" + err);\n }\n }\n if (Player.inGang() && saveObj.hasOwnProperty(\"AllGangsSave\")) {\n try {\n loadAllGangs(saveObj.AllGangsSave);\n } catch (e) {\n console.error(\"ERROR: Failed to parse AllGangsSave: \" + e);\n }\n }\n if (saveObj.hasOwnProperty(\"VersionSave\")) {\n try {\n const ver = JSON.parse(saveObj.VersionSave, Reviver);\n evaluateVersionCompatibility(ver);\n if (window.location.href.toLowerCase().includes(\"bitburner-beta\")) {\n // Beta branch, always show changes\n createBetaUpdateText();\n } else if (ver !== CONSTANTS.VersionNumber) {\n createNewUpdateText();\n }\n } catch (e) {\n createNewUpdateText();\n }\n } else {\n createNewUpdateText();\n }\n return true;\n}\n\nfunction createScamUpdateText(): void {\n if (navigator.userAgent.indexOf(\"wv\") !== -1 && navigator.userAgent.indexOf(\"Chrome/\") !== -1) {\n setInterval(() => {\n dialogBoxCreate(\"SCAM ALERT. This app is not official and you should uninstall it.\");\n }, 1000);\n }\n}\n\nconst resets: SxProps = {\n \"& h1, & h2, & h3, & h4, & p, & a, & ul\": {\n margin: 0,\n color: Settings.theme.primary,\n whiteSpace: \"initial\",\n },\n \"& ul\": {\n paddingLeft: \"1.5em\",\n lineHeight: 1.5,\n },\n};\n\nfunction createNewUpdateText(): void {\n setTimeout(\n () =>\n dialogBoxCreate(\n \"New update! \" +\n \"Please report any bugs/issues through the GitHub repository \" +\n \"or the Bitburner subreddit (reddit.com/r/bitburner).
\" +\n CONSTANTS.LatestUpdate,\n resets,\n ),\n 1000,\n );\n}\n\nfunction createBetaUpdateText(): void {\n dialogBoxCreate(\n \"You are playing on the beta environment! This branch of the game \" +\n \"features the latest developments in the game. This version may be unstable. \" +\n \"Please report any bugs/issues through the github repository (https://github.com/danielyxie/bitburner/issues) \" +\n \"or the Bitburner subreddit (reddit.com/r/bitburner).
\" +\n CONSTANTS.LatestUpdate,\n resets,\n );\n}\n\nfunction download(filename: string, content: string): void {\n const file = new Blob([content], { type: \"text/plain\" });\n\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(function () {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n}\n\nReviver.constructors.BitburnerSaveObject = BitburnerSaveObject;\n\nexport { saveObject, loadGame, download };\n\nconst saveObject = new BitburnerSaveObject();\n","// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts\nimport { companyPositionMetadata } from \"./data/CompanyPositionsMetadata\";\nimport { CompanyPosition, IConstructorParams } from \"./CompanyPosition\";\nimport { IMap } from \"../types\";\n\nexport const CompanyPositions: IMap = {};\n\nfunction addCompanyPosition(params: IConstructorParams): void {\n if (CompanyPositions[params.name] != null) {\n console.warn(`Duplicate Company Position being defined: ${params.name}`);\n }\n CompanyPositions[params.name] = new CompanyPosition(params);\n}\n\ncompanyPositionMetadata.forEach((e) => {\n addCompanyPosition(e);\n});\n","export enum FactionWorkType {\n HACKING = \"HACKING\",\n FIELD = \"FIELD\",\n SECURITY = \"SECURITY\",\n}\n","/*\nThe game cannot block every possible exploits. Specially since one of them is\nthat you can just edit your save file and that's impragmatic to prevent.\n\nSo instead we have source file minus 1. It is not obtained by destroying a\nBitNode but instead it is awarded when the player finds innovative ways to break\nthe game, this serves 2 purpose, [one] the developpers don't have to spend time\ntrying to implement anti-cheat measures and [two] finding ways to break a\nhacking game is very much in the spirit of the game.\nSource-File minus 1 is extremely weak because it can be fully level up quickly.\n*/\n\nexport enum Exploit {\n Bypass = \"Bypass\",\n PrototypeTampering = \"PrototypeTampering\",\n Unclickable = \"Unclickable\",\n UndocumentedFunctionCall = \"UndocumentedFunctionCall\",\n TimeCompression = \"TimeCompression\",\n RealityAlteration = \"RealityAlteration\",\n N00dles = \"N00dles\",\n YoureNotMeantToAccessThis = \"YoureNotMeantToAccessThis\",\n TrueRecursion = \"TrueRecursion\",\n INeedARainbow = \"INeedARainbow\",\n // To the players reading this. Yes you're supposed to add EditSaveFile by\n // editing your save file, yes you could add them all, no we don't care\n // that's not the point.\n EditSaveFile = \"EditSaveFile\",\n}\n\nconst names: {\n [key: string]: string;\n} = {\n Bypass: \"by circumventing the ram cost of document.\",\n EditSaveFile: \"by editing your save file.\",\n PrototypeTampering: \"by tampering with Numbers prototype.\",\n TimeCompression: \"by compressing time.\",\n Unclickable: \"by clicking the unclickable.\",\n UndocumentedFunctionCall: \"by looking beyond the documentation.\",\n RealityAlteration: \"by altering reality to suit your whims.\",\n N00dles: \"by harnessing the power of the n00dles.\",\n YoureNotMeantToAccessThis: \"by accessing the dev menu.\",\n TrueRecursion: \"by truly recursing.\",\n INeedARainbow: \"by using the power of the rainbow.\",\n};\n\nexport function ExploitName(exploit: string): string {\n return names[exploit];\n}\n\nexport function sanitizeExploits(exploits: Exploit[]): Exploit[] {\n exploits = exploits.filter((e: Exploit) => Object.keys(Exploit).includes(e));\n return [...new Set(exploits)];\n}\n","import { Augmentation } from \"./Augmentation\";\nimport { StaticAugmentations } from \"./StaticAugmentations\";\nimport { PlayerOwnedAugmentation, IPlayerOwnedAugmentation } from \"./PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"./data/AugmentationNames\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { Factions, factionExists } from \"../Faction/Factions\";\nimport { Player } from \"../Player\";\nimport { prestigeAugmentation } from \"../Prestige\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { clearObject } from \"../utils/helpers/clearObject\";\n\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport {\n initBladeburnerAugmentations,\n initChurchOfTheMachineGodAugmentations,\n initGeneralAugmentations,\n initSoAAugmentations,\n initNeuroFluxGovernor,\n initUnstableCircadianModulator,\n} from \"./data/AugmentationCreator\";\nimport { Router } from \"../ui/GameRoot\";\nimport { mergeMultipliers } from \"../PersonObjects/Multipliers\";\n\nexport function AddToStaticAugmentations(aug: Augmentation): void {\n const name = aug.name;\n StaticAugmentations[name] = aug;\n}\n\nfunction createAugmentations(): void {\n [\n initNeuroFluxGovernor(),\n initUnstableCircadianModulator(),\n ...initGeneralAugmentations(),\n ...initSoAAugmentations(),\n ...(factionExists(FactionNames.Bladeburners) ? initBladeburnerAugmentations() : []),\n ...(factionExists(FactionNames.ChurchOfTheMachineGod) ? initChurchOfTheMachineGodAugmentations() : []),\n ].map(resetAugmentation);\n}\n\nfunction resetFactionAugmentations(): void {\n for (const name of Object.keys(Factions)) {\n if (Factions.hasOwnProperty(name)) {\n Factions[name].augmentations = [];\n }\n }\n}\n\nfunction initAugmentations(): void {\n resetFactionAugmentations();\n clearObject(StaticAugmentations);\n createAugmentations();\n Player.reapplyAllAugmentations();\n}\n\nexport function getBaseAugmentationPriceMultiplier(): number {\n return CONSTANTS.MultipleAugMultiplier * [1, 0.96, 0.94, 0.93][Player.sourceFileLvl(11)];\n}\nexport function getGenericAugmentationPriceMultiplier(): number {\n return Math.pow(getBaseAugmentationPriceMultiplier(), Player.queuedAugmentations.length);\n}\n\n//Resets an Augmentation during (re-initizliation)\nfunction resetAugmentation(aug: Augmentation): void {\n aug.addToFactions(aug.factions);\n const name = aug.name;\n if (augmentationExists(name)) {\n delete StaticAugmentations[name];\n }\n AddToStaticAugmentations(aug);\n}\n\nfunction applyAugmentation(aug: IPlayerOwnedAugmentation, reapply = false): void {\n const staticAugmentation = StaticAugmentations[aug.name];\n\n // Apply multipliers\n Player.mults = mergeMultipliers(Player.mults, staticAugmentation.mults);\n\n // Special logic for Congruity Implant\n if (aug.name === AugmentationNames.CongruityImplant && !reapply) {\n Player.entropy = 0;\n Player.applyEntropy(Player.entropy);\n }\n\n // Special logic for NeuroFlux Governor\n const ownedNfg = Player.augmentations.find((pAug) => pAug.name === AugmentationNames.NeuroFluxGovernor);\n if (aug.name === AugmentationNames.NeuroFluxGovernor && !reapply && ownedNfg) {\n ownedNfg.level = aug.level;\n return;\n }\n\n // Push onto Player's Augmentation list\n if (!reapply) {\n const ownedAug = new PlayerOwnedAugmentation(aug.name);\n\n Player.augmentations.push(ownedAug);\n }\n}\n\nfunction installAugmentations(force?: boolean): boolean {\n if (Player.queuedAugmentations.length == 0 && !force) {\n dialogBoxCreate(\"You have not purchased any Augmentations to install!\");\n return false;\n }\n let augmentationList = \"\";\n let nfgIndex = -1;\n for (let i = Player.queuedAugmentations.length - 1; i >= 0; i--) {\n if (Player.queuedAugmentations[i].name === AugmentationNames.NeuroFluxGovernor) {\n nfgIndex = i;\n break;\n }\n }\n for (let i = 0; i < Player.queuedAugmentations.length; ++i) {\n const ownedAug = Player.queuedAugmentations[i];\n const aug = StaticAugmentations[ownedAug.name];\n if (aug == null) {\n console.error(`Invalid augmentation: ${ownedAug.name}`);\n continue;\n }\n\n applyAugmentation(Player.queuedAugmentations[i]);\n if (ownedAug.name === AugmentationNames.NeuroFluxGovernor && i !== nfgIndex) continue;\n\n let level = \"\";\n if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {\n level = ` - ${ownedAug.level}`;\n }\n augmentationList += aug.name + level + \" \";\n }\n Player.queuedAugmentations = [];\n if (!force) {\n dialogBoxCreate(\n \"You slowly drift to sleep as scientists put you under in order \" +\n \"to install the following Augmentations: \" +\n augmentationList +\n \" You wake up in your home...you feel different...\",\n );\n }\n prestigeAugmentation();\n Router.toTerminal();\n return true;\n}\n\nfunction augmentationExists(name: string): boolean {\n return StaticAugmentations.hasOwnProperty(name);\n}\n\nexport function isRepeatableAug(aug: Augmentation): boolean {\n const augName = aug instanceof Augmentation ? aug.name : aug;\n return augName === AugmentationNames.NeuroFluxGovernor;\n}\n\nexport { installAugmentations, initAugmentations, applyAugmentation, augmentationExists };\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Money } from \"./Money\";\n\nexport function MoneyRate({ money }: { money: number }): JSX.Element {\n return ;\n}\n","import { codingContractTypesMetadata, DescriptionFunc, GeneratorFunc, SolverFunc } from \"./data/codingcontracttypes\";\n\nimport { IMap } from \"./types\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"./utils/JSONReviver\";\nimport { CodingContractEvent } from \"./ui/React/CodingContractModal\";\n\n/* tslint:disable:no-magic-numbers completed-docs max-classes-per-file no-console */\n\n/* Represents different types of problems that a Coding Contract can have */\nclass CodingContractType {\n /**\n * Function that generates a description of the problem\n */\n desc: DescriptionFunc;\n\n /**\n * Number that generally represents the problem's difficulty. Bigger numbers = harder\n */\n difficulty: number;\n\n /**\n * A function that randomly generates a valid 'data' for the problem\n */\n generate: GeneratorFunc;\n\n /**\n * Name of the type of problem\n */\n name: string;\n\n /**\n * The maximum number of tries the player gets on this kind of problem before it self-destructs\n */\n numTries: number;\n\n /**\n * Stores a function that checks if the provided answer is correct\n */\n solver: SolverFunc;\n\n constructor(\n name: string,\n desc: DescriptionFunc,\n gen: GeneratorFunc,\n solver: SolverFunc,\n diff: number,\n numTries: number,\n ) {\n this.name = name;\n this.desc = desc;\n this.generate = gen;\n this.solver = solver;\n this.difficulty = diff;\n this.numTries = numTries;\n }\n}\n\n/* Contract Types */\n// tslint:disable-next-line\nexport const CodingContractTypes: IMap = {};\n\nfor (const md of codingContractTypesMetadata) {\n // tslint:disable-next-line\n CodingContractTypes[md.name] = new CodingContractType(\n md.name,\n md.desc,\n md.gen,\n md.solver,\n md.difficulty,\n md.numTries,\n );\n}\n\n/**\n * Enum representing the different types of rewards a Coding Contract can give\n */\nexport enum CodingContractRewardType {\n FactionReputation,\n FactionReputationAll,\n CompanyReputation,\n Money, // This must always be the last reward type\n}\n\n/**\n * Enum representing the result when trying to solve the Contract\n */\nexport enum CodingContractResult {\n Success,\n Failure,\n Cancelled,\n}\n\n/**\n * A class that represents the type of reward a contract gives\n */\nexport interface ICodingContractReward {\n /* Name of Company/Faction name for reward, if applicable */\n name?: string;\n type: CodingContractRewardType;\n}\n\n/**\n * A Coding Contract is a file that poses a programming-related problem to the Player.\n * The player receives a reward if the problem is solved correctly\n */\nexport class CodingContract {\n /* Relevant data for the contract's problem */\n data: unknown;\n\n /* Contract's filename */\n fn: string;\n\n /* Describes the reward given if this Contract is solved. The reward is actually\n processed outside of this file */\n reward: ICodingContractReward | null;\n\n /* Number of times the Contract has been attempted */\n tries = 0;\n\n /* String representing the contract's type. Must match type in ContractTypes */\n type: string;\n\n constructor(fn = \"\", type = \"Find Largest Prime Factor\", reward: ICodingContractReward | null = null) {\n this.fn = fn;\n if (!this.fn.endsWith(\".cct\")) {\n this.fn += \".cct\";\n }\n\n // tslint:disable-next-line\n if (CodingContractTypes[type] == null) {\n throw new Error(`Error: invalid contract type: ${type} please contact developer`);\n }\n\n this.type = type;\n this.data = CodingContractTypes[type].generate();\n this.reward = reward;\n }\n\n getData(): unknown {\n return this.data;\n }\n\n getDescription(): string {\n return CodingContractTypes[this.type].desc(this.data);\n }\n\n getDifficulty(): number {\n return CodingContractTypes[this.type].difficulty;\n }\n\n getMaxNumTries(): number {\n return CodingContractTypes[this.type].numTries;\n }\n\n getType(): string {\n return CodingContractTypes[this.type].name;\n }\n\n isSolution(solution: string): boolean {\n return CodingContractTypes[this.type].solver(this.data, solution);\n }\n\n /**\n * Creates a popup to prompt the player to solve the problem\n */\n async prompt(): Promise {\n return new Promise((resolve) => {\n const props = {\n c: this,\n onClose: () => {\n resolve(CodingContractResult.Cancelled);\n },\n onAttempt: (val: string) => {\n if (this.isSolution(val)) {\n resolve(CodingContractResult.Success);\n } else {\n resolve(CodingContractResult.Failure);\n }\n },\n };\n CodingContractEvent.emit(props);\n });\n }\n\n /**\n * Serialize the current file to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CodingContract\", this);\n }\n\n /**\n * Initiatizes a CodingContract from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CodingContract {\n return Generic_fromJSON(CodingContract, value.data);\n }\n}\n\nReviver.constructors.CodingContract = CodingContract;\n","export enum OrderTypes {\n LimitBuy = \"Limit Buy Order\",\n LimitSell = \"Limit Sell Order\",\n StopBuy = \"Stop Buy Order\",\n StopSell = \"Stop Sell Order\",\n}\n","import { FragmentType } from \"./FragmentType\";\nimport { Shapes } from \"./data/Shapes\";\n\nexport const Fragments: Fragment[] = [];\n\nexport class Fragment {\n id: number;\n shape: boolean[][];\n type: FragmentType;\n power: number;\n limit: number;\n\n constructor(id: number, shape: boolean[][], type: FragmentType, power: number, limit: number) {\n this.id = id;\n this.shape = shape;\n this.type = type;\n this.power = power;\n this.limit = limit;\n }\n\n fullAt(x: number, y: number, rotation: number): boolean {\n if (y < 0) return false;\n if (y >= this.height(rotation)) return false;\n if (x < 0) return false;\n if (x >= this.width(rotation)) return false;\n // start xy, modifier xy\n let [sx, sy, mx, my] = [0, 0, 1, 1];\n if (rotation === 1) {\n [sx, sy, mx, my] = [this.width(rotation) - 1, 0, -1, 1];\n } else if (rotation === 2) {\n [sx, sy, mx, my] = [this.width(rotation) - 1, this.height(rotation) - 1, -1, -1];\n } else if (rotation === 3) {\n [sx, sy, mx, my] = [0, this.height(rotation) - 1, 1, -1];\n }\n let [qx, qy] = [sx + mx * x, sy + my * y];\n if (rotation % 2 === 1) [qx, qy] = [qy, qx];\n return this.shape[qy][qx];\n }\n\n width(rotation: number): number {\n if (rotation % 2 === 0) return this.shape[0].length;\n return this.shape.length;\n }\n\n height(rotation: number): number {\n if (rotation % 2 === 0) return this.shape.length;\n return this.shape[0].length;\n }\n\n // List of direct neighboors of this fragment.\n neighboors(rotation: number): number[][] {\n const candidates: number[][] = [];\n\n const add = (x: number, y: number): void => {\n if (this.fullAt(x, y, rotation)) return;\n if (candidates.some((coord) => coord[0] === x && coord[1] === y)) return;\n candidates.push([x, y]);\n };\n for (let y = 0; y < this.height(rotation); y++) {\n for (let x = 0; x < this.width(rotation); x++) {\n // This cell is full, add all it's neighboors.\n if (!this.fullAt(x, y, rotation)) continue;\n add(x - 1, y);\n add(x + 1, y);\n add(x, y - 1);\n add(x, y + 1);\n }\n }\n const cells: number[][] = [];\n for (const candidate of candidates) {\n if (cells.some((cell) => cell[0] === candidate[0] && cell[1] === candidate[1])) continue;\n cells.push(candidate);\n }\n\n return cells;\n }\n\n copy(): Fragment {\n return Object.assign({}, this);\n }\n}\n\nexport function FragmentById(id: number): Fragment | null {\n for (const fragment of Fragments) {\n if (fragment.id === id) return fragment;\n }\n return null;\n}\n\n(function () {\n const _ = false;\n const X = true;\n Fragments.push(\n new Fragment(\n 0, // id\n Shapes.S,\n FragmentType.Hacking, // type\n 1,\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 1, // id\n Shapes.Z,\n FragmentType.Hacking, // type\n 1,\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 5, // id\n Shapes.T,\n FragmentType.HackingSpeed, // type\n 1.3,\n 1, // limit\n ),\n );\n\n Fragments.push(\n new Fragment(\n 6, // id\n Shapes.I,\n FragmentType.HackingMoney, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 7, // id\n Shapes.J,\n FragmentType.HackingGrow, // type\n 0.5, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 10, // id\n Shapes.T,\n FragmentType.Strength, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 12, // id\n Shapes.L,\n FragmentType.Defense, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 14, // id\n Shapes.L,\n FragmentType.Dexterity, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 16, // id\n Shapes.S,\n FragmentType.Agility, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 18, // id\n Shapes.S,\n FragmentType.Charisma, // type\n 3, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 20, // id\n Shapes.I,\n FragmentType.HacknetMoney, // type\n 1, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 21, // id\n Shapes.O,\n FragmentType.HacknetCost, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 25, // id\n Shapes.J,\n FragmentType.Rep, // type\n 0.5, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 27, // id\n Shapes.J,\n FragmentType.WorkMoney, // type\n 10, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 28, // id\n Shapes.L,\n FragmentType.Crime, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 30, // id\n Shapes.S,\n FragmentType.Bladeburner, // type\n 0.4, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 100, // id\n [\n // shape\n [_, X, X],\n [X, X, _],\n [_, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 101, // id\n [\n // shape\n [X, X, X, X],\n [X, _, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 102, // id\n [\n // shape\n [_, X, X, X],\n [X, X, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 103, // id\n [\n // shape\n [X, X, X, _],\n [_, _, X, X],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 104, // id\n [\n // shape\n [_, X, X],\n [_, X, _],\n [X, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 105, // id\n [\n // shape\n [_, _, X],\n [_, X, X],\n [X, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 106, // id\n [\n // shape\n [X, _, _],\n [X, X, X],\n [X, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 107, // id\n [\n // shape\n [_, X, _],\n [X, X, X],\n [_, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n})();\n\nexport const NoneFragment = new Fragment(-2, [], FragmentType.None, 0, Infinity);\nexport const DeleteFragment = new Fragment(-2, [], FragmentType.Delete, 0, Infinity);\n","import * as monaco from \"monaco-editor\";\nimport type { Monaco } from \"@monaco-editor/react\";\n\nexport interface IScriptEditorTheme {\n base: \"vs\" | \"vs-dark\" | \"hc-black\";\n inherit: boolean;\n common: {\n accent: string;\n bg: string;\n fg: string;\n };\n syntax: {\n tag: string;\n entity: string;\n string: string;\n regexp: string;\n markup: string;\n keyword: string;\n comment: string;\n constant: string;\n error: string;\n };\n ui: {\n line: string;\n panel: {\n bg: string;\n selected: string;\n border: string;\n };\n selection: {\n bg: string;\n };\n };\n}\n\nexport const defaultMonacoTheme: IScriptEditorTheme = {\n base: \"vs-dark\",\n inherit: true,\n common: {\n accent: \"B5CEA8\",\n bg: \"1E1E1E\",\n fg: \"D4D4D4\",\n },\n syntax: {\n tag: \"569CD6\",\n entity: \"569CD6\",\n string: \"CE9178\",\n regexp: \"646695\",\n markup: \"569CD6\",\n keyword: \"569CD6\",\n comment: \"6A9955\",\n constant: \"569CD6\",\n error: \"F44747\",\n },\n ui: {\n line: \"1E1E1E\",\n panel: {\n bg: \"252526\",\n selected: \"252526\",\n border: \"1E1E1E\",\n },\n selection: {\n bg: \"ADD6FF26\",\n },\n },\n};\n\n// Regex used for token color validation\n// https://github.com/microsoft/vscode/blob/973684056e67153952f495fce93bf50d0ec0b892/src/vs/editor/common/languages/supports/tokenization.ts#L153\nconst colorRegExp = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\n\n// Recursively sanitize the theme data to prevent errors\n// Invalid data will be replaced with FF0000 (bright red)\nexport const sanitizeTheme = (theme: IScriptEditorTheme): void => {\n for (const [k, v] of Object.entries(theme)) {\n switch (k) {\n case \"base\":\n if (![\"vs-dark\", \"vs\"].includes(theme.base)) theme.base = \"vs-dark\";\n continue;\n case \"inherit\":\n if (typeof theme.inherit !== \"boolean\") theme.inherit = true;\n continue;\n }\n\n const repairBlock = (block: { [key: string]: object | string }): void => {\n for (const [k, v] of Object.entries(block)) {\n if (typeof v === \"object\") {\n repairBlock(v as { [key: string]: string });\n } else if (!v.match(colorRegExp)) block[k] = \"FF0000\";\n }\n };\n repairBlock(v);\n }\n};\n\nexport function makeTheme(theme: IScriptEditorTheme): monaco.editor.IStandaloneThemeData {\n const themeRules = [\n {\n token: \"\",\n background: theme.ui.line,\n foreground: theme.common.fg,\n },\n {\n token: \"identifier\",\n foreground: theme.common.accent,\n },\n {\n token: \"keyword\",\n foreground: theme.syntax.keyword,\n },\n {\n token: \"string\",\n foreground: theme.syntax.string,\n },\n {\n token: \"string.escape\",\n foreground: theme.syntax.regexp,\n },\n {\n token: \"comment\",\n foreground: theme.syntax.comment,\n },\n {\n token: \"constant\",\n foreground: theme.syntax.constant,\n },\n {\n token: \"entity\",\n foreground: theme.syntax.entity,\n },\n {\n token: \"type\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"tag\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"regexp\",\n foreground: theme.syntax.regexp,\n },\n {\n token: \"attribute\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"constructor\",\n foreground: theme.syntax.markup,\n },\n {\n token: \"invalid\",\n foreground: theme.syntax.error,\n },\n {\n token: \"number\",\n foreground: theme.common.accent,\n },\n {\n token: \"delimiter\",\n foreground: theme.common.fg,\n },\n // Custom tokens\n {\n token: \"ns\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"netscriptfunction\",\n foreground: theme.syntax.markup,\n },\n {\n token: \"otherkeywords\",\n foreground: theme.syntax.keyword,\n },\n {\n token: \"otherkeyvars\",\n foreground: theme.common.accent,\n },\n {\n token: \"this\",\n foreground: theme.syntax.tag,\n },\n ];\n\n const themeColors = Object.fromEntries(\n [\n [\"editor.background\", theme.common.bg],\n [\"editor.foreground\", theme.common.fg],\n [\"editor.lineHighlightBackground\", theme.ui.line],\n [\"editor.selectionBackground\", theme.ui.selection.bg],\n\n [\"editorSuggestWidget.background\", theme.ui.panel.bg],\n [\"editorSuggestWidget.border\", theme.ui.panel.border],\n [\"editorSuggestWidget.selectedBackground\", theme.ui.panel.selected],\n\n [\"editorHoverWidget.background\", theme.ui.panel.bg],\n [\"editorHoverWidget.border\", theme.ui.panel.border],\n\n [\"editorWidget.background\", theme.ui.panel.bg],\n [\"editorWidget.border\", theme.ui.panel.border],\n\n [\"input.background\", theme.ui.panel.bg],\n [\"input.border\", theme.ui.panel.border],\n ].map(([k, v]) => [k, \"#\" + v]),\n );\n\n return { base: theme.base, inherit: theme.inherit, rules: themeRules, colors: themeColors };\n}\n\nexport async function loadThemes(monaco: Monaco): Promise {\n monaco.editor.defineTheme(\"monokai\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"272822\",\n token: \"\",\n },\n {\n foreground: \"75715e\",\n token: \"comment\",\n },\n {\n foreground: \"e6db74\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"ae81ff\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"ae81ff\",\n },\n {\n foreground: \"ae81ff\",\n token: \"function\",\n },\n {\n foreground: \"f92672\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"ae81ff\",\n },\n {\n token: \"ns\",\n foreground: \"97d92b\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"53d3e4\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"53d3e4\",\n },\n {\n token: \"this\",\n foreground: \"fd971f\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#F8F8F2\",\n \"editor.background\": \"#272822\",\n \"editor.selectionBackground\": \"#49483E\",\n \"editor.lineHighlightBackground\": \"#3E3D32\",\n \"editorCursor.foreground\": \"#F8F8F0\",\n \"editorWhitespace.foreground\": \"#3B3A32\",\n \"editorIndentGuide.activeBackground\": \"#9D550FB0\",\n \"editor.selectionHighlightBorder\": \"#222218\",\n },\n });\n\n monaco.editor.defineTheme(\"solarized-dark\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"002b36\",\n token: \"\",\n },\n {\n foreground: \"586e75\",\n token: \"comment\",\n },\n {\n foreground: \"00afaf\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"00afaf\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"268bd2\",\n },\n {\n foreground: \"268bd2\",\n token: \"function\",\n },\n {\n foreground: \"859900\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"cb4b16\",\n },\n {\n token: \"ns\",\n foreground: \"cb4b16\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"268bd2\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"268bd2\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"b58900\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"this\",\n foreground: \"cb4b16\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#839496\",\n \"editor.background\": \"#002b36\",\n \"editor.selectionBackground\": \"#073642\",\n \"editor.lineHighlightBackground\": \"#073642\",\n \"editorCursor.foreground\": \"#819090\",\n \"editorWhitespace.foreground\": \"#073642\",\n \"editorIndentGuide.activeBackground\": \"#9D550FB0\",\n \"editor.selectionHighlightBorder\": \"#222218\",\n },\n });\n\n monaco.editor.defineTheme(\"solarized-light\", {\n base: \"vs\",\n inherit: true,\n rules: [\n {\n foreground: \"657b83\",\n background: \"fdf6e3\",\n token: \"\",\n },\n {\n foreground: \"586e75\",\n token: \"comment\",\n },\n {\n foreground: \"2aa198\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"2aa198\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"268bd2\",\n },\n {\n foreground: \"268bd2\",\n token: \"function\",\n },\n {\n foreground: \"859900\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"bc4b16\",\n },\n {\n token: \"ns\",\n foreground: \"cb4b16\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"268bd2\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"268bd2\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"b58900\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"this\",\n foreground: \"cb4b16\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#657b83\",\n \"editor.background\": \"#fdf6e3\",\n \"editor.selectionBackground\": \"#eee8d5\",\n \"editor.lineHighlightBackground\": \"#eee8d5\",\n \"editorCursor.foreground\": \"#657b83\",\n \"editorWhitespace.foreground\": \"#eee8d5\",\n \"editorIndentGuide.activeBackground\": \"#eee8d5\",\n \"editor.selectionHighlightBorder\": \"#073642\",\n },\n });\n\n monaco.editor.defineTheme(\"dracula\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"282A36\",\n foreground: \"F8F8F2\",\n token: \"\",\n },\n {\n foreground: \"6272A4\",\n token: \"comment\",\n },\n {\n foreground: \"F1FA8C\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"BD93F9\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"BD93F9\",\n },\n {\n foreground: \"FF79C6\",\n token: \"function\",\n },\n {\n foreground: \"FF79C6\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"FF79C6\",\n },\n {\n token: \"ns\",\n foreground: \"FFB86C\",\n fontStyle: \"italic\",\n },\n\n {\n token: \"netscriptfunction\",\n foreground: \"FF79C6\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"FF68A7\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"7EE9FD\",\n fontStyle: \"italic\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"delimiter.parenthesis.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"this\",\n foreground: \"BD93F9\",\n fontStyle: \"italic\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#F8F8F2\",\n \"editor.background\": \"#282A36\",\n \"editorLineNumber.foreground\": \"#6272A4\",\n \"editor.selectionBackground\": \"#44475A\",\n \"editor.selectionHighlightBackground\": \"#424450\",\n \"editor.foldBackground\": \"#21222C\",\n \"editor.wordHighlightBackground\": \"#8BE9FD50\",\n \"editor.wordHighlightStrongBackground\": \"#50FA7B50\",\n \"editor.findMatchBackground\": \"#FFB86C80\",\n \"editor.findMatchHighlightBackground\": \"#FFFFFF40\",\n \"editor.findRangeHighlightBackground\": \"#44475A75\",\n \"editor.hoverHighlightBackground\": \"#8BE9FD50\",\n \"editor.lineHighlightBorder\": \"#44475A\",\n \"editor.rangeHighlightBackground\": \"#BD93F915\",\n \"editor.snippetTabstopHighlightBackground\": \"#282A36\",\n \"editor.snippetTabstopHighlightBorder\": \"#6272A4\",\n \"editor.snippetFinalTabstopHighlightBackground\": \"#282A36\",\n \"editor.snippetFinalTabstopHighlightBorder\": \"#50FA7B\",\n },\n });\n\n monaco.editor.defineTheme(\"one-dark\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n token: \"\",\n background: \"333842\",\n foreground: \"ABB2BF\",\n },\n {\n token: \"comment\",\n foreground: \"5C6370\",\n },\n {\n token: \"string\",\n foreground: \"98C379\",\n },\n {\n token: \"number\",\n foreground: \"D19A66\",\n },\n {\n token: \"function\",\n foreground: \"C678DD\",\n },\n {\n token: \"keyword\",\n foreground: \"C678DD\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"D19A66\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"C678DD\",\n },\n {\n token: \"ns\",\n foreground: \"E06C75\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"61AFEF\",\n },\n {\n token: \"type.identifier\",\n foreground: \"E5C07B\",\n },\n {\n token: \"delimiter\",\n foreground: \"ABB2BF\",\n },\n {\n token: \"this\",\n foreground: \"E06C75\",\n },\n ],\n colors: {\n \"editor.background\": \"#282C34\",\n \"editor.foreground\": \"#ABB2BF\",\n \"editor.lineHighlightBackground\": \"#99BBFF0A\",\n \"editor.selectionBackground\": \"#3E4451\",\n \"editor.findMatchHighlightBackground\": \"#528BFF3D\",\n \"editorCursor.foreground\": \"#528BFF\",\n \"editorHoverWidget.background\": \"#21252B\",\n \"editorHoverWidget.border\": \"#181A1F\",\n \"editorIndentGuide.background\": \"#ABB2BF26\",\n \"editorIndentGuide.activeBackground\": \"#626772\",\n \"editorLineNumber.foreground\": \"#636D83\",\n \"editorLineNumber.activeForeground\": \"#ABB2BF\",\n \"editorSuggestWidget.background\": \"#21252B\",\n \"editorSuggestWidget.border\": \"#181A1F\",\n \"editorSuggestWidget.selectedBackground\": \"#2C313A\",\n \"editorWhitespace.foreground\": \"#ABB2BF26\",\n \"editorWidget.background\": \"#21252B\",\n \"editorWidget.border\": \"#3A3F4B\",\n \"input.background\": \"#1B1D23\",\n \"input.border\": \"#181A1F\",\n \"peekView.border\": \"#528BFF\",\n \"peekViewResult.background\": \"#21252B\",\n \"peekViewResult.selectionBackground\": \"#2C313A\",\n \"peekViewTitle.background\": \"#1B1D23\",\n \"peekViewEditor.background\": \"#1B1D23\",\n \"scrollbarSlider.background\": \"#4E566680\",\n \"scrollbarSlider.activeBackground\": \"#747D9180\",\n \"scrollbarSlider.hoverBackground\": \"#5A637580\",\n },\n });\n}\n","/**\n * Generic Event Emitter class following a subscribe/publish paradigm.\n */\nfunction uuidv4(): string {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport class EventEmitter {\n subscribers: { [key: string]: (...args: [...T]) => void | undefined } = {};\n\n subscribe(s: (...args: [...T]) => void): () => void {\n let uuid = uuidv4();\n while (this.subscribers[uuid] !== undefined) uuid = uuidv4();\n this.subscribers[uuid] = s;\n\n return () => {\n delete this.subscribers[uuid];\n };\n }\n\n emit(...args: [...T]): void {\n for (const s in this.subscribers) {\n const sub = this.subscribers[s];\n if (sub === undefined) continue;\n\n sub(...args);\n }\n }\n}\n","import React, { useState } from \"react\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"@mui/icons-material/Remove\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport DoubleArrowIcon from \"@mui/icons-material/DoubleArrow\";\nimport TextField from \"@mui/material/TextField\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ninterface IProps {\n label: string;\n placeholder: string;\n add: (x: number) => void;\n subtract: (x: number) => void;\n tons: () => void;\n reset: () => void;\n}\n\nexport function Adjuster(props: IProps): React.ReactElement {\n const [value, setValue] = useState(\"\");\n\n function onChange(event: React.ChangeEvent): void {\n if (event.target.value === \"\") setValue(\"\");\n else setValue(parseFloat(event.target.value));\n }\n\n const { label, placeholder, add, subtract, reset, tons } = props;\n return (\n <>\n \n \n \n \n \n \n \n add(typeof value !== \"string\" ? value : 0)} size=\"large\">\n \n \n \n >\n ),\n endAdornment: (\n <>\n \n subtract(typeof value !== \"string\" ? value : 0)} size=\"large\">\n \n \n \n \n \n \n \n \n >\n ),\n }}\n />\n >\n );\n}\n","import { KEY } from \"../utils/helpers/keyCodes\";\n\nexport function random(min: number, max: number): number {\n return Math.random() * (max - min) + min;\n}\n\nexport const upArrowSymbol = \"↑\";\nexport const downArrowSymbol = \"↓\";\nexport const leftArrowSymbol = \"←\";\nexport const rightArrowSymbol = \"→\";\n\nexport function getArrow(event: KeyboardEvent): string {\n switch (event.key) {\n case KEY.UP_ARROW:\n case KEY.W:\n return upArrowSymbol;\n case KEY.LEFT_ARROW:\n case KEY.A:\n return leftArrowSymbol;\n case KEY.DOWN_ARROW:\n case KEY.S:\n return downArrowSymbol;\n case KEY.RIGHT_ARROW:\n case KEY.D:\n return rightArrowSymbol;\n }\n return \"\";\n}\n\nexport function getInverseArrow(event: KeyboardEvent): string {\n switch (event.key) {\n case KEY.DOWN_ARROW:\n case KEY.S:\n return upArrowSymbol;\n case KEY.RIGHT_ARROW:\n case KEY.D:\n return leftArrowSymbol;\n case KEY.UP_ARROW:\n case KEY.W:\n return downArrowSymbol;\n case KEY.LEFT_ARROW:\n case KEY.A:\n return rightArrowSymbol;\n }\n return \"\";\n}\n","import { Operation, IOperationParams } from \"./Operation\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport class BlackOperation extends Operation {\n constructor(params: IOperationParams | null = null) {\n super(params);\n this.count = 1;\n }\n\n // To be implemented by subtypes\n getActionTimePenalty(): number {\n return 1.5;\n }\n\n getChaosCompetencePenalty(/*inst: IBladeburner, params: ISuccessChanceParams*/): number {\n return 1;\n }\n\n getChaosDifficultyBonus(/*inst: IBladeburner, params: ISuccessChanceParams*/): number {\n return 1;\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"BlackOperation\", this);\n }\n\n static fromJSON(value: IReviverValue): Operation {\n return Generic_fromJSON(BlackOperation, value.data);\n }\n}\n\nReviver.constructors.BlackOperation = BlackOperation;\n","export enum CrimeType {\n None = \"\",\n SHOPLIFT = \"SHOPLIFT\", //\"shoplift\",\n ROB_STORE = \"ROBSTORE\", //\"rob a store\",\n MUG = \"MUG\", //\"mug someone\",\n LARCENY = \"LARCENY\", //\"commit larceny\",\n DRUGS = \"DRUGS\", //\"deal drugs\",\n BOND_FORGERY = \"BONDFORGERY\", //\"forge corporate bonds\",\n TRAFFIC_ARMS = \"TRAFFICKARMS\", //\"traffick illegal arms\",\n HOMICIDE = \"HOMICIDE\", //\"commit homicide\",\n GRAND_THEFT_AUTO = \"GRANDTHEFTAUTO\", //\"commit grand theft auto\",\n KIDNAP = \"KIDNAP\", //\"kidnap someone for ransom\",\n ASSASSINATION = \"ASSASSINATION\", //\"assassinate a high-profile target\",\n HEIST = \"HEIST\", //\"pull off the ultimate heist\",\n}\n","// Defines the ResearchTree that is common to all Corporation Industries\n// i.e. all Industries have these types of Research available to unlock\nimport { Research } from \"../Research\";\nimport { ResearchMap } from \"../ResearchMap\";\nimport { ResearchTree, Node } from \"../ResearchTree\";\n\nfunction makeNode(name: string): Node {\n const research: Research | null = ResearchMap[name];\n if (research == null) {\n throw new Error(`Invalid research name: ${name}`);\n }\n\n return new Node({ text: research.name, cost: research.cost });\n}\n\n// Creates the Nodes for the BaseResearchTree.\n// Return the Root Node\nfunction createBaseResearchTreeNodes(): Node {\n const rootNode: Node = makeNode(\"Hi-Tech R&D Laboratory\");\n const autoBrew: Node = makeNode(\"AutoBrew\");\n const autoParty: Node = makeNode(\"AutoPartyManager\");\n const autoDrugs: Node = makeNode(\"Automatic Drug Administration\");\n const bulkPurchasing: Node = makeNode(\"Bulk Purchasing\");\n const cph4: Node = makeNode(\"CPH4 Injections\");\n const drones: Node = makeNode(\"Drones\");\n const dronesAssembly: Node = makeNode(\"Drones - Assembly\");\n const dronesTransport: Node = makeNode(\"Drones - Transport\");\n const goJuice: Node = makeNode(\"Go-Juice\");\n const hrRecruitment: Node = makeNode(\"HRBuddy-Recruitment\");\n const hrTraining: Node = makeNode(\"HRBuddy-Training\");\n const joywire: Node = makeNode(\"JoyWire\");\n const marketta1: Node = makeNode(\"Market-TA.I\");\n const marketta2: Node = makeNode(\"Market-TA.II\");\n const overclock: Node = makeNode(\"Overclock\");\n const scAssemblers: Node = makeNode(\"Self-Correcting Assemblers\");\n const stimu: Node = makeNode(\"Sti.mu\");\n\n autoDrugs.addChild(goJuice);\n autoDrugs.addChild(cph4);\n\n drones.addChild(dronesAssembly);\n drones.addChild(dronesTransport);\n\n hrRecruitment.addChild(hrTraining);\n\n marketta1.addChild(marketta2);\n\n overclock.addChild(stimu);\n\n rootNode.addChild(autoBrew);\n rootNode.addChild(autoParty);\n rootNode.addChild(autoDrugs);\n rootNode.addChild(bulkPurchasing);\n rootNode.addChild(drones);\n rootNode.addChild(hrRecruitment);\n rootNode.addChild(joywire);\n rootNode.addChild(marketta1);\n rootNode.addChild(overclock);\n rootNode.addChild(scAssemblers);\n\n return rootNode;\n}\n\nexport function getBaseResearchTreeCopy(): ResearchTree {\n const baseResearchTree: ResearchTree = new ResearchTree();\n baseResearchTree.setRoot(createBaseResearchTreeNodes());\n\n return baseResearchTree;\n}\n\n// Base Research Tree for Industry's that make products\nexport function getProductIndustryResearchTreeCopy(): ResearchTree {\n const researchTree: ResearchTree = new ResearchTree();\n const root = createBaseResearchTreeNodes();\n\n const upgradeFulcrum = makeNode(\"uPgrade: Fulcrum\");\n const upgradeCapacity1 = makeNode(\"uPgrade: Capacity.I\");\n const upgradeCapacity2 = makeNode(\"uPgrade: Capacity.II\");\n const upgradeDashboard = makeNode(\"uPgrade: Dashboard\");\n\n upgradeCapacity1.addChild(upgradeCapacity2);\n upgradeFulcrum.addChild(upgradeCapacity1);\n upgradeFulcrum.addChild(upgradeDashboard);\n root.addChild(upgradeFulcrum);\n\n researchTree.setRoot(root);\n\n return researchTree;\n}\n","import { GetServer, createUniqueRandomIp, ipExists } from \"./AllServers\";\nimport { Server, IConstructorParams } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { calculateServerGrowth } from \"./formulas/grow\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { LiteratureNames } from \"../Literature/data/LiteratureNames\";\n\nimport { isValidNumber } from \"../utils/helpers/isValidNumber\";\n\n/**\n * Constructs a new server, while also ensuring that the new server\n * does not have a duplicate hostname/ip.\n */\nexport function safetlyCreateUniqueServer(params: IConstructorParams): Server {\n let hostname: string = params.hostname.replace(/ /g, `-`);\n\n if (params.ip != null && ipExists(params.ip)) {\n params.ip = createUniqueRandomIp();\n }\n\n if (GetServer(hostname) != null) {\n hostname = `${hostname}-0`;\n\n // Use a for loop to ensure that we don't get suck in an infinite loop somehow\n for (let i = 0; i < 200; ++i) {\n hostname = hostname.replace(/-[0-9]+$/, `-${i}`);\n if (GetServer(hostname) == null) {\n break;\n }\n }\n }\n\n params.hostname = hostname;\n return new Server(params);\n}\n\n/**\n * Returns the number of \"growth cycles\" needed to grow the specified server by the\n * specified amount.\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, in DECIMAL form (e.g. 1.5 rather than 50)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowth(server: Server, growth: number, p: IPlayer, cores = 1): number {\n let ajdGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n if (ajdGrowthRate > CONSTANTS.ServerMaxGrowthRate) {\n ajdGrowthRate = CONSTANTS.ServerMaxGrowthRate;\n }\n\n const serverGrowthPercentage = server.serverGrowth / 100;\n\n const coreBonus = 1 + (cores - 1) / 16;\n const cycles =\n Math.log(growth) /\n (Math.log(ajdGrowthRate) *\n p.mults.hacking_grow *\n serverGrowthPercentage *\n BitNodeMultipliers.ServerGrowthRate *\n coreBonus);\n\n return cycles;\n}\n\n/**\n * Replacement function for the above function that accounts for the +$1/thread functionality of grow\n * with parameters that are the same (for compatibility), but functionality is slightly different.\n * This function can ONLY be used to calculate the threads needed for a given server in its current state,\n * and so wouldn't be appropriate to use for formulas.exe or ns.growthAnalyze (as those are meant to\n * provide theoretical scenarios, or inverse hack respectively). Players COULD use this function with a\n * custom server object with the correct moneyAvailable and moneyMax amounts, combined with a multiplier\n * correctly calculated to bring the server to a new moneyAvailable (ie, passing in moneyAvailable 300 and x2\n * when you want the number of threads required to grow that particular server from 300 to 600), and this\n * function would pass back the correct number of threads. But the key thing is that it doesn't just\n * inverse/undo a hack (since the amount hacked from/to matters, not just the multiplier).\n * The above is also a rather unnecessarily obtuse way of thinking about it for a formulas.exe type of\n * application, so another function with different parameters is provided for that case below this one.\n * Instead this function is meant to hand-off from the old numCycleForGrowth function to the new one\n * where used internally for pro-rating or the like. Where you have applied a grow and want to determine\n * how many threads were needed for THAT SPECIFIC grow case using a multiplier.\n * Ideally, this function, and the original function above will be depreciated to use the methodology\n * and inputs of the new function below this one. Even for internal cases (it's actually easier to do so).\n * @param server - Server being grown\n * @param growth - How much the server money is expected to be multiplied by (e.g. 1.5 for *1.5 / +50%)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthTransition(server: Server, growth: number, p: IPlayer, cores = 1): number {\n return numCycleForGrowthCorrected(server, server.moneyAvailable * growth, server.moneyAvailable, p, cores);\n}\n\n/**\n * This function calculates the number of threads needed to grow a server from one $amount to a higher $amount\n * (ie, how many threads to grow this server from $200 to $600 for example). Used primarily for a formulas (or possibly growthAnalyze)\n * type of application. It lets you \"theorycraft\" and easily ask what-if type questions. It's also the one that implements the\n * main thread calculation algorithm, and so is the function all helper functions should call.\n * It protects the inputs (so putting in INFINITY for targetMoney will use moneyMax, putting in a negative for start will use 0, etc.)\n * @param server - Server being grown\n * @param targetMoney - How much you want the server grown TO (not by), for instance, to grow from 200 to 600, input 600\n * @param startMoney - How much you are growing the server from, for instance, to grow from 200 to 600, input 200\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthCorrected(\n server: Server,\n targetMoney: number,\n startMoney: number,\n p: IPlayer,\n cores = 1,\n): number {\n if (startMoney < 0) {\n startMoney = 0;\n } // servers \"can't\" have less than 0 dollars on them\n if (targetMoney > server.moneyMax) {\n targetMoney = server.moneyMax;\n } // can't grow a server to more than its moneyMax\n if (targetMoney <= startMoney) {\n return 0;\n } // no growth --> no threads\n\n // exponential base adjusted by security\n const adjGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n const exponentialBase = Math.min(adjGrowthRate, CONSTANTS.ServerMaxGrowthRate); // cap growth rate\n\n // total of all grow thread multipliers\n const serverGrowthPercentage = server.serverGrowth / 100.0;\n const coreMultiplier = 1 + (cores - 1) / 16;\n const threadMultiplier =\n serverGrowthPercentage * p.mults.hacking_grow * coreMultiplier * BitNodeMultipliers.ServerGrowthRate;\n\n /* To understand what is done below we need to do some math. I hope the explanation is clear enough.\n * First of, the names will be shortened for ease of manipulation:\n * n:= targetMoney (n for new), o:= startMoney (o for old), b:= exponentialBase, t:= threadMultiplier, c:= cycles/threads\n * c is what we are trying to compute.\n *\n * After growing, the money on a server is n = (o + c) * b^(c*t)\n * c appears in an exponent and outside it, this is usually solved using the productLog/lambert's W special function\n * this function will be noted W in the following\n * The idea behind lambert's W function is W(x)*exp(W(x)) = x, or in other words, solving for y, y*exp(y) = x, as a function of x\n * This function is provided in some advanced math library but we will compute it ourself here.\n *\n * Let's get back to solving the equation. It cannot be rewrote using W immediately because the base of the exponentiation is b\n * b^(c*t) = exp(ln(b)*c*t) (this is how a^b is defined on reals, it matches the definition on integers)\n * so n = (o + c) * exp(ln(b)*c*t) , W still cannot be used directly. We want to eliminate the other terms in 'o + c' and 'ln(b)*c*t'.\n *\n * A change of variable will do. The idea is to add an equation introducing a new variable (w here) in the form c = f(w) (for some f)\n * With this equation we will eliminate all references to c, then solve for w and plug the result in the new equation to get c.\n * The change of variable performed here should get rid of the unwanted terms mentionned above, c = w/(ln(b)*t) - o should help.\n * This change of variable is allowed because whatever the value of c is, there is a value of w such that this equation holds:\n * w = (c + o)*ln(b)*t (see how we used the terms we wanted to eliminate in order to build this variable change)\n *\n * We get n = (o + w/(ln(b)*t) - o) * exp(ln(b)*(w/(ln(b)*t) - o)*t) [ = w/(ln(b)*t) * exp(w - ln(b)*o*t) ]\n * The change of variable exposed exp(w - o*ln(b)*t), we can rewrite that with exp(a - b) = exp(a)/exp(b) to isolate 'w*exp(w)'\n * n = w/(ln(b)*t) * exp(w)/exp(ln(b)*o*t) [ = w*exp(w) / (ln(b) * t * b^(o*t)) ]\n * Almost there, we just need to cancel the denominator on the right side of the equation:\n * n * ln(b) * t * b^(o*t) = w*exp(w), Thus w = W(n * ln(b) * t * b^(o*t))\n * Finally we invert the variable change: c = W(n * ln(b) * t * b^(o*t))/(ln(b)*t) - o\n *\n * There is still an issue left: b^(o*t) doesn't fit inside a double precision float\n * because the typical amount of money on servers is arround 10^6~10^9\n * We need to get an approximation of W without computing the power when o is huge\n * Thankfully an approximation giving ~30% error uses log immediately so we will use\n * W(n * ln(b) * t * b^(o*t)) ~= log(n * ln(b) * t * b^(o*t)) = log(n * ln(b) * t) + log(exp(ln(b) * o * t))\n * = log(n * ln(b) * t) + ln(b) * o * t\n * (thanks to Drak for the grow formula, f4113nb34st and Wolfram Alpha for the rewrite, dwRchyngqxs for the explanation)\n */\n const x = threadMultiplier * Math.log(exponentialBase);\n const y = startMoney * x + Math.log(targetMoney * x);\n /* Code for the approximation of lambert's W function is adapted from\n * https://git.savannah.gnu.org/cgit/gsl.git/tree/specfunc/lambert.c\n * using the articles [1] https://doi.org/10.1007/BF02124750 (algorithm above)\n * and [2] https://doi.org/10.1145/361952.361970 (initial approximation when x < 2.5)\n */\n let w;\n if (y < Math.log(2.5)) {\n /* exp(y) can be safely computed without overflow.\n * The relative error on the result is better when exp(y) < 2.5\n * using Padé rational fraction approximation [2](5)\n */\n const ey = Math.exp(y);\n w = (ey + (4 / 3) * ey * ey) / (1 + (7 / 3) * ey + (5 / 6) * ey * ey);\n } else {\n /* obtain initial approximation from rough asymptotic [1](4.18)\n * w = y [- log y when 0 <= y]\n */\n w = y;\n if (y > 0) w -= Math.log(y);\n }\n let cycles = w / x - startMoney;\n\n /* Iterative refinement, the goal is to correct c until |(o + c) * b^(c*t) - n| < 1\n * or the correction on the approximation is less than 1\n * The Newton-Raphson method will be used, this method is a classic to find roots of functions\n * (given f, find c such that f(c) = 0).\n *\n * The idea of this method is to take the horizontal position at which the horizontal axis\n * intersects with of the tangent of the function's curve as the next approximation.\n * It is equivalent to treating the curve as a line (it is called a first order approximation)\n * If the current approximation is c then the new approximated value is c - f(c)/f'(c)\n * (where f' is the derivative of f).\n *\n * In our case f(c) = (o + c) * b^(c*t) - n, f'(c) = d((o + c) * b^(c*t) - n)/dc\n * = (ln(b)*t * (c + o) + 1) * b^(c*t)\n * And the update step is c[new] = c[old] - ((o + c) * b^(c*t) - n)/((ln(b)*t * (o + c) + 1) * b^(c*t))\n *\n * The main question to ask when using this method is \"does it converges?\"\n * (are the approximations getting better?), if it does then it does quickly.\n * DOES IT CONVERGES? In the present case it does. The reason why doesn't help explaining the algorithm.\n * If you are intrested then check out the wikipedia page.\n */\n const bt = exponentialBase ** threadMultiplier;\n let corr = Infinity;\n // Two sided error because we do not want to get stuck if the error stays on the wrong side\n do {\n // c should be above 0 so Halley's method can't be used, we have to stick to Newton-Raphson\n const bct = bt ** cycles;\n const opc = startMoney + cycles;\n const diff = opc * bct - targetMoney;\n corr = diff / (opc * x + 1.0) / bct;\n cycles -= corr;\n } while (Math.abs(corr) >= 1);\n /* c is now within +/- 1 of the exact result.\n * We want the ceiling of the exact result, so the floor if the approximation is above,\n * the ceiling if the approximation is in the same unit as the exact result,\n * and the ceiling + 1 if the approximation is below.\n */\n const fca = Math.floor(cycles);\n if (targetMoney <= (startMoney + fca) * Math.pow(exponentialBase, fca * threadMultiplier)) {\n return fca;\n }\n const cca = Math.ceil(cycles);\n if (targetMoney <= (startMoney + cca) * Math.pow(exponentialBase, cca * threadMultiplier)) {\n return cca;\n }\n return cca + 1;\n}\n\n/**\n * This function calculates the number of threads needed to grow a server based on a pre-hack money and hackAmt\n * (ie, if you're hacking a server with $1e6 moneyAvail for 60%, this function will tell you how many threads to regrow it\n * A good replacement for the current ns.growthAnalyze if you want players to have more control/responsibility\n * @param server - Server being grown\n * @param hackProp - the proportion of money hacked (total, not per thread, like 0.60 for hacking 60% of available money)\n * @param prehackMoney - how much money the server had before being hacked (like 200000 for hacking a server that had $200000 on it at time of hacking)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed to reverse the described hack\n */\nexport function numCycleForGrowthByHackAmt(\n server: Server,\n hackProp: number,\n prehackMoney: number,\n p: IPlayer,\n cores = 1,\n): number {\n if (prehackMoney > server.moneyMax) prehackMoney = server.moneyMax;\n const posthackMoney = Math.floor(prehackMoney * Math.min(1, Math.max(0, 1 - hackProp)));\n return numCycleForGrowthCorrected(server, prehackMoney, posthackMoney, p, cores);\n}\n\n/**\n * This function calculates the number of threads needed to grow a server based on an expected growth multiplier assuming it will max out\n * (ie, if you expect to grow a server by 60% to reach maxMoney, this function will tell you how many threads to grow it)\n * PROBABLY the best replacement for the current ns.growthAnalyze to maintain existing scripts\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, as a multiple in DECIMAL form (e.g. 1.5 rather than 50). Infinity is acceptable.\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthByMultiplier(server: Server, growth: number, p: IPlayer, cores = 1): number {\n if (growth < 1.0) growth = 1.0;\n const targetMoney = server.moneyMax;\n const startingMoney = server.moneyMax / growth;\n return numCycleForGrowthCorrected(server, targetMoney, startingMoney, p, cores);\n}\n\n//Applied server growth for a single server. Returns the percentage growth\nexport function processSingleServerGrowth(server: Server, threads: number, p: IPlayer, cores = 1): number {\n let serverGrowth = calculateServerGrowth(server, threads, p, cores);\n if (serverGrowth < 1) {\n console.warn(\"serverGrowth calculated to be less than 1\");\n serverGrowth = 1;\n }\n\n const oldMoneyAvailable = server.moneyAvailable;\n server.moneyAvailable += 1 * threads; // It can be grown even if it has no money\n server.moneyAvailable *= serverGrowth;\n\n // in case of data corruption\n if (isValidNumber(server.moneyMax) && isNaN(server.moneyAvailable)) {\n server.moneyAvailable = server.moneyMax;\n }\n\n // cap at max\n if (isValidNumber(server.moneyMax) && server.moneyAvailable > server.moneyMax) {\n server.moneyAvailable = server.moneyMax;\n }\n\n // if there was any growth at all, increase security\n if (oldMoneyAvailable !== server.moneyAvailable) {\n let usedCycles = numCycleForGrowthCorrected(server, server.moneyAvailable, oldMoneyAvailable, p, cores);\n // Growing increases server security twice as much as hacking\n usedCycles = Math.min(Math.max(0, Math.ceil(usedCycles)), threads);\n server.fortify(2 * CONSTANTS.ServerFortifyAmount * usedCycles);\n }\n return server.moneyAvailable / oldMoneyAvailable;\n}\n\nexport function prestigeHomeComputer(player: IPlayer, homeComp: Server): void {\n const hasBitflume = homeComp.programs.includes(Programs.BitFlume.name);\n\n homeComp.programs.length = 0; //Remove programs\n homeComp.runningScripts = [];\n homeComp.serversOnNetwork = [];\n homeComp.isConnectedTo = true;\n homeComp.ramUsed = 0;\n homeComp.programs.push(Programs.NukeProgram.name);\n if (hasBitflume) {\n homeComp.programs.push(Programs.BitFlume.name);\n }\n\n //Update RAM usage on all scripts\n homeComp.scripts.forEach(function (script) {\n script.updateRamUsage(player, homeComp.scripts);\n });\n\n homeComp.messages.length = 0; //Remove .lit and .msg files\n homeComp.messages.push(LiteratureNames.HackersStartingHandbook);\n}\n\n// Returns the i-th server on the specified server's network\n// A Server's serverOnNetwork property holds only the IPs. This function returns\n// the actual Server object\nexport function getServerOnNetwork(server: BaseServer, i: number): BaseServer | null {\n if (i > server.serversOnNetwork.length) {\n console.error(\"Tried to get server on network that was out of range\");\n return null;\n }\n\n return GetServer(server.serversOnNetwork[i]);\n}\n\nexport function isBackdoorInstalled(server: BaseServer): boolean {\n if (server instanceof Server) {\n return server.backdoorInstalled;\n }\n return false;\n}\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { ICorporation } from \"../ICorporation\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number;\n corp: ICorporation;\n}\n\nexport function MoneyCost(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (!(props.corp.funds > props.money))\n return {numeralWrapper.formatMoney(props.money)};\n\n return {numeralWrapper.formatMoney(props.money)};\n}\n","export const SkillNames: {\n BladesIntuition: string;\n Cloak: string;\n Marksman: string;\n WeaponProficiency: string;\n ShortCircuit: string;\n DigitalObserver: string;\n Tracer: string;\n Overclock: string;\n Reaper: string;\n EvasiveSystem: string;\n Datamancer: string;\n CybersEdge: string;\n HandsOfMidas: string;\n Hyperdrive: string;\n} = {\n BladesIntuition: \"Blade's Intuition\",\n Cloak: \"Cloak\",\n Marksman: \"Marksman\",\n WeaponProficiency: \"Weapon Proficiency\",\n ShortCircuit: \"Short-Circuit\",\n DigitalObserver: \"Digital Observer\",\n Tracer: \"Tracer\",\n Overclock: \"Overclock\",\n Reaper: \"Reaper\",\n EvasiveSystem: \"Evasive System\",\n Datamancer: \"Datamancer\",\n CybersEdge: \"Cyber's Edge\",\n HandsOfMidas: \"Hands of Midas\",\n Hyperdrive: \"Hyperdrive\",\n};\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n reputation: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Reputation({ reputation }: { reputation: number | string }): React.ReactElement {\n const classes = useStyles();\n return (\n \n {typeof reputation === \"number\" ? numeralWrapper.formatReputation(reputation) : reputation}\n \n );\n}\n","import React, { useContext } from \"react\";\nimport { IGang } from \"../IGang\";\n\nexport const Context: {\n Gang: React.Context;\n} = {\n Gang: React.createContext({} as IGang),\n};\n\nexport const useGang = (): IGang => useContext(Context.Gang);\n","/**\n * Stops an actively-running script (represented by a WorkerScript object)\n * and removes it from the global pool of active scripts.\n */\nimport { ScriptDeath } from \"./ScriptDeath\";\nimport { WorkerScript } from \"./WorkerScript\";\nimport { workerScripts } from \"./WorkerScripts\";\nimport { WorkerScriptStartStopEventEmitter } from \"./WorkerScriptStartStopEventEmitter\";\n\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { GetServer } from \"../Server/AllServers\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { AddRecentScript } from \"./RecentScripts\";\nimport { Player } from \"../Player\";\n\nexport type killScriptParams = WorkerScript | number | { runningScript: RunningScript; hostname: string };\n\nexport function killWorkerScript(params: killScriptParams): boolean {\n if (params instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(params);\n\n return true;\n } else if (typeof params === \"number\") {\n return killWorkerScriptByPid(params);\n } else {\n // Try to kill by PID\n const res = killWorkerScriptByPid(params.runningScript.pid);\n if (res) {\n return res;\n }\n\n // If for some reason that doesn't work, we'll try the old way\n for (const ws of workerScripts.values()) {\n if (ws.scriptRef === params.runningScript) {\n stopAndCleanUpWorkerScript(ws);\n return true;\n }\n }\n\n return false;\n }\n}\n\nfunction killWorkerScriptByPid(pid: number): boolean {\n const ws = workerScripts.get(pid);\n if (ws instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(ws);\n return true;\n }\n\n return false;\n}\n\nfunction stopAndCleanUpWorkerScript(workerScript: WorkerScript): void {\n if (typeof workerScript.atExit === \"function\") {\n try {\n workerScript.atExit();\n } catch (e: unknown) {\n dialogBoxCreate(\n `Error trying to call atExit for script ${workerScript.name} on ${workerScript.hostname} ${\n workerScript.scriptRef.args\n } ${String(e)}`,\n );\n }\n workerScript.atExit = undefined;\n }\n workerScript.env.stopFlag = true;\n killNetscriptDelay(workerScript);\n removeWorkerScript(workerScript);\n}\n\n/**\n * Helper function that removes the script being killed from the global pool.\n * Also handles other cleanup-time operations\n *\n * @param {WorkerScript} - Identifier for WorkerScript. Either the object itself, or\n * its index in the global workerScripts array\n */\nfunction removeWorkerScript(workerScript: WorkerScript): void {\n const ip = workerScript.hostname;\n\n // Get the server on which the script runs\n const server = GetServer(ip);\n if (server == null) {\n console.error(`Could not find server on which this script is running: ${ip}`);\n return;\n }\n\n // Delete the RunningScript object from that server\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScript = server.runningScripts[i];\n if (runningScript === workerScript.scriptRef) {\n server.runningScripts.splice(i, 1);\n break;\n }\n }\n\n // Recalculate ram used on that server\n\n server.updateRamUsed(0, Player);\n for (const rs of server.runningScripts) server.updateRamUsed(server.ramUsed + rs.ramUsage * rs.threads, Player);\n\n // Delete script from global pool (workerScripts)\n workerScripts.delete(workerScript.pid);\n // const res = workerScripts.delete(workerScript.pid);\n // if (!res) {\n // console.warn(`removeWorkerScript() called with WorkerScript that wasn't in the global map:`);\n // console.warn(workerScript);\n // }\n AddRecentScript(workerScript);\n\n WorkerScriptStartStopEventEmitter.emit();\n}\n\n/**\n * Helper function that interrupts a script's delay if it is in the middle of a\n * timed, blocked operation (like hack(), sleep(), etc.). This allows scripts to\n * be killed immediately even if they're in the middle of one of those long operations\n */\nfunction killNetscriptDelay(workerScript: WorkerScript): void {\n if (workerScript instanceof WorkerScript) {\n if (workerScript.delay) {\n clearTimeout(workerScript.delay);\n if (workerScript.delayReject) {\n workerScript.delayReject(new ScriptDeath(workerScript));\n }\n }\n }\n}\n","/**\n * Checks whether the value passed in can be considered a string.\n * @param value The value to check if it is a string.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === \"string\" || value instanceof String;\n}\n","import { FormControlLabel, Switch, Tooltip, Typography } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\n\ninterface IProps {\n checked: boolean;\n onChange: (newValue: boolean, error?: string) => void;\n text: React.ReactNode;\n tooltip: React.ReactNode;\n}\n\nexport function OptionSwitch({ checked, onChange, text, tooltip }: IProps): React.ReactElement {\n const [value, setValue] = useState(checked);\n\n function handleSwitchChange(event: React.ChangeEvent): void {\n setValue(event.target.checked);\n }\n\n useEffect(() => onChange(value), [value]);\n\n return (\n }\n label={\n {tooltip}}>\n {text}\n \n }\n />\n );\n}\n","import React from \"react\";\nimport { BitNodeMultipliers, IBitNodeMultipliers } from \"./BitNodeMultipliers\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { CityName } from \"../Locations/data/CityNames\";\n\nclass BitNode {\n // A short description, or tagline, about the BitNode\n desc: string;\n\n // A long, detailed overview of the BitNode\n info: JSX.Element;\n\n // Name of BitNode\n name: string;\n\n // BitNode number\n number: number;\n\n difficulty: 0 | 1 | 2;\n\n constructor(n: number, difficulty: 0 | 1 | 2, name: string, desc = \"\", info: JSX.Element = <>>) {\n this.number = n;\n this.difficulty = difficulty;\n this.name = name;\n this.desc = desc;\n this.info = info;\n }\n}\n\nexport const BitNodes: IMap = {};\n\nBitNodes[\"BitNode1\"] = new BitNode(\n 1,\n 0,\n \"Source Genesis\",\n \"The original BitNode\",\n (\n <>\n The first BitNode created by the Enders to imprison the minds of humans. It became the prototype and\n testing-grounds for all of the BitNodes that followed.\n \n \n This is the first BitNode that you play through. It has no special modifications or mechanics.\n \n \n Destroying this BitNode will give you Source-File 1, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the player start with 32GB of RAM on his/her home computer when\n entering a new BitNode, and also increases all of the player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nBitNodes[\"BitNode2\"] = new BitNode(\n 2,\n 0,\n \"Rise of the Underworld\",\n \"From the shadows, they rose\", //Gangs\n (\n <>\n From the shadows, they rose.\n \n \n Organized crime groups quickly filled the void of power left behind from the collapse of Western government in the\n 2050s. As society and civilization broke down, people quickly succumbed to the innate human impulse of evil and\n savagery. The organized crime factions quickly rose to the top of the modern world.\n \n \n Certain Factions ({FactionNames.SlumSnakes}, {FactionNames.Tetrads}, {FactionNames.TheSyndicate},{\" \"}\n {FactionNames.TheDarkArmy}, {FactionNames.SpeakersForTheDead}, {FactionNames.NiteSec}, {FactionNames.TheBlackHand}\n ) give the player the ability to form and manage their own gangs. These gangs will earn the player money and\n reputation with the corresponding Faction\n \n Every Augmentation in the game will be available through the Factions listed above\n \n \n Destroying this BitNode will give you Source-File 2, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to form gangs in other BitNodes once your karma decreases\n to a certain value. It also increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nBitNodes[\"BitNode3\"] = new BitNode(\n 3,\n 0,\n \"Corporatocracy\",\n \"The Price of Civilization\",\n (\n <>\n Our greatest illusion is that a healthy society can revolve around a single-minded pursuit of wealth.\n \n \n Sometime in the early 21st century economic and political globalization turned the world into a corporatocracy,\n and it never looked back. Now, the privileged elite will happily bankrupt their own countrymen, decimate their own\n community, and evict their neighbors from houses in their desperate bid to increase their wealth.\n \n \n In this BitNode you can create and manage your own corporation. Running a successful corporation has the potential\n of generating massive profits.\n \n \n Destroying this BitNode will give you Source-File 3, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you create corporations on other BitNodes (although some\n BitNodes will disable this mechanic). This Source-File also increases your charisma and company salary multipliers\n by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode4\"] = new BitNode(\n 4,\n 1,\n \"The Singularity\",\n \"The Man and the Machine\",\n (\n <>\n The Singularity has arrived. The human race is gone, replaced by artificially superintelligent beings that are\n more machine than man. \n \n \n In this BitNode you will gain access to a new set of Netscript Functions known as Singularity Functions. These\n functions allow you to control most aspects of the game through scripts, including working for factions/companies,\n purchasing/installing Augmentations, and creating programs.\n \n \n Destroying this BitNode will give you Source-File 4, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you access and use the Singularity Functions in other BitNodes.\n Each level of this Source-File reduces the RAM cost of singularity functions.\n >\n ),\n);\nBitNodes[\"BitNode5\"] = new BitNode(\n 5,\n 1,\n \"Artificial Intelligence\",\n \"Posthuman\",\n (\n <>\n They said it couldn't be done. They said the human brain, along with its consciousness and intelligence, couldn't\n be replicated. They said the complexity of the brain results from unpredictable, nonlinear interactions that\n couldn't be modeled by 1's and 0's. They were wrong.\n \n \n Destroying this BitNode will give you Source-File 5, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants you a special new stat called Intelligence. Intelligence is\n unique because it is permanent and persistent (it never gets reset back to 1). However gaining Intelligence\n experience is much slower than other stats. Higher Intelligence levels will boost your production for many actions\n in the game. \n \n In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with\n Formulas.exe, and will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode6\"] = new BitNode(\n 6,\n 1,\n FactionNames.Bladeburners,\n \"Like Tears in Rain\",\n (\n <>\n In the middle of the 21st century, {FactionNames.OmniTekIncorporated} began designing and manufacturing advanced\n synthetic androids, or Synthoids for short. They achieved a major technological breakthrough in the sixth\n generation of their Synthoid design, called MK-VI, by developing a hyperintelligent AI. Many argue that this was\n the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, and more\n intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} Division at the NSA, which provides a\n new mechanic for progression.\n \n \n Destroying this BitNode will give you Source-File 6, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the NSA's {FactionNames.Bladeburners} Division\n in other BitNodes. In addition, this Source-File will raise both the level and experience gain rate of all your\n combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode7\"] = new BitNode(\n 7,\n 2,\n `${FactionNames.Bladeburners} 2079`,\n \"More human than humans\",\n (\n <>\n In the middle of the 21st century, you were doing cutting-edge work at {FactionNames.OmniTekIncorporated} as part\n of the AI design team for advanced synthetic androids, or Synthoids for short. You helped achieve a major\n technological breakthrough in the sixth generation of the company's Synthoid design, called MK-VI, by developing a\n hyperintelligent AI. Many argue that this was the first sentient AI ever created. This resulted in Synthoid models\n that were stronger, faster, and more intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} API, which allows you to access{\" \"}\n {FactionNames.Bladeburners}\n functionality through Netscript.\n \n \n Destroying this BitNode will give you Source-File 7, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the {FactionNames.Bladeburners} Netscript API in\n other BitNodes. In addition, this Source-File will increase all of your {FactionNames.Bladeburners} multipliers\n by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode8\"] = new BitNode(\n 8,\n 2,\n \"Ghost of Wall Street\",\n \"Money never sleeps\",\n (\n <>\n You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.\n \n \n In this BitNode:\n \n \n You start with $250 million\n \n You start with a WSE membership and access to the TIX API\n \n You are able to short stocks and place different types of orders (limit/stop)\n \n \n Destroying this BitNode will give you Source-File 8, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nBitNodes[\"BitNode9\"] = new BitNode(\n 9,\n 2,\n \"Hacktocracy\",\n \"Hacknet Unleashed\",\n (\n <>\n When {FactionNames.FulcrumSecretTechnologies} released their open-source Linux distro Chapeau, it quickly became\n the OS of choice for the underground hacking community. Chapeau became especially notorious for powering the\n Hacknet, a global, decentralized network used for nefarious purposes. {FactionNames.FulcrumSecretTechnologies}{\" \"}\n quickly abandoned the project and dissociated themselves from it.\n \n \n This BitNode unlocks the Hacknet Server, an upgraded version of the Hacknet Node. Hacknet Servers generate hashes,\n which can be spent on a variety of different upgrades.\n \n \n Destroying this BitNode will give you Source-File 9, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode10\"] = new BitNode(\n 10,\n 2,\n \"Digital Carbon\",\n \"Your body is not who you are\",\n (\n <>\n In 2084, VitaLife unveiled to the world the Persona Core, a technology that allowed people to digitize their\n consciousness. Their consciousness could then be transferred into Synthoids or other bodies by trasmitting the\n digitized data. Human bodies became nothing more than 'sleeves' for the human consciousness. Mankind had finally\n achieved immortality - at least for those that could afford it.\n \n \n This BitNode unlocks Sleeve technology. Sleeve technology allows you to:\n \n \n 1. Grafting: Visit VitaLife in New Tokyo to be able to obtain Augmentations without needing to install\n \n 2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks\n synchronously.\n \n \n Destroying this BitNode will give you Source-File 10, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File unlocks Sleeve technology in other BitNodes. Each level of this\n Source-File also grants you a Duplicate Sleeve\n >\n ),\n);\nBitNodes[\"BitNode11\"] = new BitNode(\n 11,\n 1,\n \"The Big Crash\",\n \"Okay. Sell it all.\",\n (\n <>\n The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around\n the world. It was this period of disorder that eventually lead to the governmental reformation of many global\n superpowers, most notably the USA and China. But just as the world was slowly beginning to recover from these dark\n times, financial catastrophe hit.\n \n \n In many countries, the high cost of trying to deal with the civil disorder bankrupted the governments. In all of\n this chaos and confusion, hackers were able to steal billions of dollars from the world's largest electronic\n banks, prompting an international banking crisis as governments were unable to bail out insolvent banks. Now, the\n world is slowly crumbling in the middle of the biggest economic crisis of all time.\n \n \n Destroying this BitNode will give you Source-File 11, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File makes it so that company favor increases BOTH the player's salary and\n reputation gain rate at that company by 1% per favor (rather than just the reputation gain). This Source-File also\n increases the player's company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nBitNodes[\"BitNode12\"] = new BitNode(\n 12,\n 0,\n \"The Recursion\",\n \"Repeat.\",\n (\n <>\n To iterate is human, to recurse divine.\n \n \n Every time this BitNode is destroyed, it becomes slightly harder. Destroying this BitNode will give you\n Source-File 12, or if you already have this Source-File it will upgrade its level. There is no maximum level for\n Source-File 12. Each level of Source-File 12 lets you start any BitNodes with NeuroFlux Governor equal to the\n level of this source file.\n >\n ),\n);\nBitNodes[\"BitNode13\"] = new BitNode(\n 13,\n 2,\n \"They're lunatics\",\n \"1 step back, 2 steps forward\",\n (\n <>\n With the invention of Augmentations in the 2040s a religious group known as the{\" \"}\n {FactionNames.ChurchOfTheMachineGod} has rallied far more support than anyone would have hoped.\n \n \n Their leader, Allison \"Mother\" Stanek is said to have created her own Augmentation whose power goes beyond any\n other. Find her in {CityName.Chongqing} and gain her trust.\n \n \n Destroying this BitNode will give you Source-File 13, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the {FactionNames.ChurchOfTheMachineGod} appear in other\n BitNodes.\n \n \n Each level of this Source-File increases the size of Stanek's Gift.\n >\n ),\n);\n\nexport const defaultMultipliers: IBitNodeMultipliers = {\n HackingLevelMultiplier: 1,\n StrengthLevelMultiplier: 1,\n DefenseLevelMultiplier: 1,\n DexterityLevelMultiplier: 1,\n AgilityLevelMultiplier: 1,\n CharismaLevelMultiplier: 1,\n\n ServerGrowthRate: 1,\n ServerMaxMoney: 1,\n ServerStartingMoney: 1,\n ServerStartingSecurity: 1,\n ServerWeakenRate: 1,\n\n HomeComputerRamCost: 1,\n\n PurchasedServerCost: 1,\n PurchasedServerSoftcap: 1,\n PurchasedServerLimit: 1,\n PurchasedServerMaxRam: 1,\n\n CompanyWorkMoney: 1,\n CrimeMoney: 1,\n HacknetNodeMoney: 1,\n ManualHackMoney: 1,\n ScriptHackMoney: 1,\n ScriptHackMoneyGain: 1,\n CodingContractMoney: 1,\n\n ClassGymExpGain: 1,\n CompanyWorkExpGain: 1,\n CrimeExpGain: 1,\n FactionWorkExpGain: 1,\n HackExpGain: 1,\n\n FactionPassiveRepGain: 1,\n FactionWorkRepGain: 1,\n RepToDonateToFaction: 1,\n\n AugmentationMoneyCost: 1,\n AugmentationRepCost: 1,\n\n InfiltrationMoney: 1,\n InfiltrationRep: 1,\n\n FourSigmaMarketDataCost: 1,\n FourSigmaMarketDataApiCost: 1,\n\n CorporationValuation: 1,\n CorporationSoftcap: 1,\n\n BladeburnerRank: 1,\n BladeburnerSkillCost: 1,\n\n GangSoftcap: 1,\n GangUniqueAugs: 1,\n\n DaedalusAugsRequirement: 30,\n\n StaneksGiftPowerMultiplier: 1,\n StaneksGiftExtraSize: 0,\n\n WorldDaemonDifficulty: 1,\n};\n\nObject.freeze(defaultMultipliers);\n\nexport function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultipliers {\n const mults = Object.assign({}, defaultMultipliers);\n switch (n) {\n case 1: {\n return mults;\n }\n case 2: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n ServerGrowthRate: 0.8,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.4,\n CrimeMoney: 3,\n InfiltrationMoney: 3,\n FactionWorkRepGain: 0.5,\n FactionPassiveRepGain: 0,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: -6,\n PurchasedServerSoftcap: 1.3,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 5,\n });\n }\n case 3: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n RepToDonateToFaction: 0.5,\n AugmentationRepCost: 3,\n AugmentationMoneyCost: 3,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.2,\n ServerGrowthRate: 0.2,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.25,\n CrimeMoney: 0.25,\n HacknetNodeMoney: 0.25,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 2,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -2,\n PurchasedServerSoftcap: 1.3,\n GangSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.5,\n });\n }\n case 4: {\n return Object.assign(mults, {\n ServerMaxMoney: 0.15,\n ServerStartingMoney: 0.75,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.1,\n CrimeMoney: 0.2,\n HacknetNodeMoney: 0.05,\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.4,\n CrimeExpGain: 0.5,\n FactionWorkRepGain: 0.75,\n StaneksGiftPowerMultiplier: 1.5,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.5,\n });\n }\n case 5: {\n return Object.assign(mults, {\n ServerMaxMoney: 2,\n ServerStartingSecurity: 2,\n ServerStartingMoney: 0.5,\n ScriptHackMoney: 0.15,\n HacknetNodeMoney: 0.2,\n CrimeMoney: 0.5,\n InfiltrationRep: 1.5,\n InfiltrationMoney: 1.5,\n AugmentationMoneyCost: 2,\n HackExpGain: 0.5,\n CorporationValuation: 0.5,\n StaneksGiftPowerMultiplier: 1.3,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.5,\n });\n }\n case 6: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.75,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.7,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 7: {\n return Object.assign(mults, {\n BladeburnerRank: 0.6,\n BladeburnerSkillCost: 2,\n AugmentationMoneyCost: 3,\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.5,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n FourSigmaMarketDataCost: 2,\n FourSigmaMarketDataApiCost: 2,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.9,\n StaneksGiftExtraSize: -1,\n GangSoftcap: 0.7,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 8: {\n return Object.assign(mults, {\n ScriptHackMoney: 0.3,\n ScriptHackMoneyGain: 0,\n ManualHackMoney: 0,\n CompanyWorkMoney: 0,\n CrimeMoney: 0,\n HacknetNodeMoney: 0,\n InfiltrationMoney: 0,\n RepToDonateToFaction: 0,\n CorporationValuation: 0,\n CodingContractMoney: 0,\n StaneksGiftExtraSize: -99,\n PurchasedServerSoftcap: 4,\n GangSoftcap: 0,\n CorporationSoftcap: 0,\n GangUniqueAugs: 0,\n });\n }\n case 9: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.5,\n StrengthLevelMultiplier: 0.45,\n DefenseLevelMultiplier: 0.45,\n DexterityLevelMultiplier: 0.45,\n AgilityLevelMultiplier: 0.45,\n CharismaLevelMultiplier: 0.45,\n PurchasedServerLimit: 0,\n HomeComputerRamCost: 5,\n CrimeMoney: 0.5,\n ScriptHackMoney: 0.1,\n HackExpGain: 0.05,\n ServerStartingMoney: 0.1,\n ServerMaxMoney: 0.1,\n ServerStartingSecurity: 2.5,\n CorporationValuation: 0.5,\n FourSigmaMarketDataCost: 5,\n FourSigmaMarketDataApiCost: 4,\n BladeburnerRank: 0.9,\n BladeburnerSkillCost: 1.2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.8,\n CorporationSoftcap: 0.7,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.25,\n });\n }\n case 10: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n StrengthLevelMultiplier: 0.4,\n DefenseLevelMultiplier: 0.4,\n DexterityLevelMultiplier: 0.4,\n AgilityLevelMultiplier: 0.4,\n CharismaLevelMultiplier: 0.4,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.5,\n HacknetNodeMoney: 0.5,\n ManualHackMoney: 0.5,\n ScriptHackMoney: 0.5,\n CodingContractMoney: 0.5,\n InfiltrationMoney: 0.5,\n CorporationValuation: 0.5,\n AugmentationMoneyCost: 5,\n AugmentationRepCost: 2,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 5,\n PurchasedServerLimit: 0.6,\n PurchasedServerMaxRam: 0.5,\n BladeburnerRank: 0.8,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -3,\n PurchasedServerSoftcap: 1.1,\n GangSoftcap: 0.9,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.25,\n });\n }\n case 11: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.6,\n HackExpGain: 0.5,\n ServerMaxMoney: 0.1,\n ServerStartingMoney: 0.1,\n ServerGrowthRate: 0.2,\n ServerWeakenRate: 2,\n CrimeMoney: 3,\n CompanyWorkMoney: 0.5,\n HacknetNodeMoney: 0.1,\n AugmentationMoneyCost: 2,\n InfiltrationMoney: 2.5,\n InfiltrationRep: 2.5,\n CorporationValuation: 0.1,\n CodingContractMoney: 0.25,\n FourSigmaMarketDataCost: 4,\n FourSigmaMarketDataApiCost: 4,\n PurchasedServerSoftcap: 2,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.75,\n });\n }\n case 12: {\n const inc = Math.pow(1.02, lvl);\n const dec = 1 / inc;\n\n return Object.assign(mults, {\n DaedalusAugsRequirement: Math.floor(Math.min(mults.DaedalusAugsRequirement + inc, 40)),\n\n HackingLevelMultiplier: dec,\n StrengthLevelMultiplier: dec,\n DefenseLevelMultiplier: dec,\n DexterityLevelMultiplier: dec,\n AgilityLevelMultiplier: dec,\n CharismaLevelMultiplier: dec,\n\n ServerMaxMoney: dec,\n ServerStartingMoney: dec,\n ServerGrowthRate: dec,\n ServerWeakenRate: dec,\n\n //Does not scale, otherwise security might start at 300+\n ServerStartingSecurity: 1.5,\n\n HomeComputerRamCost: inc,\n\n PurchasedServerCost: inc,\n PurchasedServerLimit: dec,\n PurchasedServerMaxRam: dec,\n PurchasedServerSoftcap: inc,\n\n ManualHackMoney: dec,\n ScriptHackMoney: dec,\n CompanyWorkMoney: dec,\n CrimeMoney: dec,\n HacknetNodeMoney: dec,\n CodingContractMoney: dec,\n\n CompanyWorkExpGain: dec,\n ClassGymExpGain: dec,\n FactionWorkExpGain: dec,\n HackExpGain: dec,\n CrimeExpGain: dec,\n\n FactionWorkRepGain: dec,\n FactionPassiveRepGain: dec,\n RepToDonateToFaction: inc,\n\n AugmentationRepCost: inc,\n AugmentationMoneyCost: inc,\n\n InfiltrationMoney: dec,\n InfiltrationRep: dec,\n\n FourSigmaMarketDataCost: inc,\n FourSigmaMarketDataApiCost: inc,\n\n CorporationValuation: dec,\n\n BladeburnerRank: dec,\n BladeburnerSkillCost: inc,\n\n StaneksGiftPowerMultiplier: inc,\n StaneksGiftExtraSize: inc,\n GangSoftcap: 0.8,\n CorporationSoftcap: 0.8,\n WorldDaemonDifficulty: inc,\n\n GangUniqueAugs: dec,\n });\n }\n case 13: {\n return Object.assign(mults, {\n PurchasedServerSoftcap: 1.6,\n\n HackingLevelMultiplier: 0.25,\n StrengthLevelMultiplier: 0.7,\n DefenseLevelMultiplier: 0.7,\n DexterityLevelMultiplier: 0.7,\n AgilityLevelMultiplier: 0.7,\n\n ServerMaxMoney: 0.45,\n ServerStartingMoney: 0.75,\n\n ServerStartingSecurity: 3,\n\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.4,\n CrimeMoney: 0.4,\n HacknetNodeMoney: 0.4,\n CodingContractMoney: 0.4,\n\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.1,\n CrimeExpGain: 0.5,\n\n FactionWorkRepGain: 0.6,\n\n FourSigmaMarketDataCost: 10,\n FourSigmaMarketDataApiCost: 10,\n\n CorporationValuation: 0.001,\n\n BladeburnerRank: 0.45,\n BladeburnerSkillCost: 2,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: 1,\n GangSoftcap: 0.3,\n CorporationSoftcap: 0.3,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.1,\n });\n }\n default: {\n throw new Error(\"Invalid BitNodeN\");\n }\n }\n}\n\nexport function initBitNodeMultipliers(p: IPlayer): void {\n Object.assign(BitNodeMultipliers, getBitNodeMultipliers(p.bitNodeN, p.sourceFileLvl(p.bitNodeN)));\n}\n","import { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IReviverValue } from \"../utils/JSONReviver\";\n\nexport abstract class Work {\n type: WorkType;\n singularity: boolean;\n cyclesWorked: number;\n\n constructor(type: WorkType, singularity: boolean) {\n this.type = type;\n this.singularity = singularity;\n this.cyclesWorked = 0;\n }\n\n abstract process(player: IPlayer, cycles: number): boolean;\n abstract finish(player: IPlayer, cancelled: boolean): void;\n abstract APICopy(): Record;\n abstract toJSON(): IReviverValue;\n}\n\nexport enum WorkType {\n CRIME = \"CRIME\",\n CLASS = \"CLASS\",\n CREATE_PROGRAM = \"CREATE_PROGRAM\",\n GRAFTING = \"GRAFTING\",\n FACTION = \"FACTION\",\n COMPANY = \"COMPANY\",\n}\n","import { IMinMaxRange } from \"../types\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\n\nexport const StockForecastInfluenceLimit = 5;\n\nexport interface IConstructorParams {\n b: boolean;\n initPrice: number | IMinMaxRange;\n marketCap: number;\n mv: number | IMinMaxRange;\n name: string;\n otlkMag: number;\n spreadPerc: number | IMinMaxRange;\n shareTxForMovement: number | IMinMaxRange;\n symbol: string;\n}\n\nconst defaultConstructorParams: IConstructorParams = {\n b: true,\n initPrice: 10e3,\n marketCap: 1e12,\n mv: 1,\n name: \"\",\n otlkMag: 0,\n spreadPerc: 0,\n shareTxForMovement: 1e6,\n symbol: \"\",\n};\n\n// Helper function that convert a IMinMaxRange to a number\nfunction toNumber(n: number | IMinMaxRange): number {\n let value: number;\n switch (typeof n) {\n case \"number\": {\n return n;\n }\n case \"object\": {\n const range = n;\n value = getRandomInt(range.min, range.max);\n break;\n }\n default:\n throw Error(`Do not know how to convert the type '${typeof n}' to a number`);\n }\n\n if (typeof n === \"object\" && typeof n.divisor === \"number\") {\n return value / n.divisor;\n }\n\n return value;\n}\n\n/**\n * Represents the valuation of a company in the World Stock Exchange.\n */\nexport class Stock {\n /**\n * Bear or bull (more likely to go up or down, based on otlkMag)\n */\n b: boolean;\n\n /**\n * Maximum price of a stock (per share)\n */\n readonly cap: number;\n\n /**\n * Stocks previous share price\n */\n lastPrice: number;\n\n /**\n * Maximum number of shares that player can own (both long and short combined)\n */\n readonly maxShares: number;\n\n /**\n * Maximum volatility\n */\n readonly mv: number;\n\n /**\n * Name of the company that the stock is for\n */\n readonly name: string;\n\n /**\n * Outlook magnitude. Represents the stock's forecast and likelihood\n * of increasing/decreasing (based on whether its in bear or bull mode)\n */\n otlkMag: number;\n\n /**\n * Forecast of outlook magnitude. Essentially a second-order forecast.\n * Unlike 'otlkMag', this number is on an absolute scale from 0-100 (rather than 0-50)\n */\n otlkMagForecast: number;\n\n /**\n * Average price of stocks that the player owns in the LONG position\n */\n playerAvgPx: number;\n\n /**\n * Average price of stocks that the player owns in the SHORT position\n */\n playerAvgShortPx: number;\n\n /**\n * Number of shares the player owns in the LONG position\n */\n playerShares: number;\n\n /**\n * Number of shares the player owns in the SHORT position\n */\n playerShortShares: number;\n\n /**\n * Stock's share price\n */\n price: number;\n\n /**\n * How many shares need to be transacted in order to trigger a price movement\n */\n readonly shareTxForMovement: number;\n\n /**\n * How many share transactions remaining until a price movement occurs\n * (separately tracked for upward and downward movements)\n */\n shareTxUntilMovement: number;\n\n /**\n * Spread percentage. The bid/ask prices for this stock are N% above or below\n * the \"real price\" to emulate spread.\n */\n readonly spreadPerc: number;\n\n /**\n * The stock's ticker symbol\n */\n readonly symbol: string;\n\n /**\n * Total number of shares of this stock\n * This is different than maxShares, as this is like authorized stock while\n * maxShares is outstanding stock.\n */\n readonly totalShares: number;\n\n constructor(p: IConstructorParams = defaultConstructorParams) {\n this.name = p.name;\n this.symbol = p.symbol;\n this.price = toNumber(p.initPrice);\n this.lastPrice = this.price;\n this.playerShares = 0;\n this.playerAvgPx = 0;\n this.playerShortShares = 0;\n this.playerAvgShortPx = 0;\n this.mv = toNumber(p.mv);\n this.b = p.b;\n this.otlkMag = p.otlkMag;\n this.otlkMagForecast = this.getAbsoluteForecast();\n this.cap = getRandomInt(this.price * 1e3, this.price * 25e3);\n this.spreadPerc = toNumber(p.spreadPerc);\n this.shareTxForMovement = toNumber(p.shareTxForMovement);\n this.shareTxUntilMovement = this.shareTxForMovement;\n\n // Total shares is determined by market cap, and is rounded to nearest 100k\n const totalSharesUnrounded: number = p.marketCap / this.price;\n this.totalShares = Math.round(totalSharesUnrounded / 1e5) * 1e5;\n\n // Max Shares (Outstanding shares) is a percentage of total shares\n const outstandingSharePercentage = 0.2;\n this.maxShares = Math.round((this.totalShares * outstandingSharePercentage) / 1e5) * 1e5;\n }\n\n /**\n * Safely set the stock's second-order forecast to a new value\n */\n changeForecastForecast(newff: number): void {\n this.otlkMagForecast = newff;\n if (this.otlkMagForecast > 100) {\n this.otlkMagForecast = 100;\n } else if (this.otlkMagForecast < 0) {\n this.otlkMagForecast = 0;\n }\n }\n\n /**\n * Set the stock to a new price. Also updates the stock's previous price tracker\n */\n changePrice(newPrice: number): void {\n this.lastPrice = this.price;\n this.price = newPrice;\n }\n\n /**\n * Change the stock's forecast during a stock market 'tick'.\n * The way a stock's forecast changes depends on various internal properties,\n * but is ultimately determined by RNG\n */\n cycleForecast(changeAmt = 0.1): void {\n const increaseChance = this.getForecastIncreaseChance();\n\n if (Math.random() < increaseChance) {\n // Forecast increases\n if (this.b) {\n this.otlkMag += changeAmt;\n } else {\n this.otlkMag -= changeAmt;\n }\n } else if (this.b) {\n // Forecast decreases\n this.otlkMag -= changeAmt;\n } else {\n this.otlkMag += changeAmt;\n }\n\n this.otlkMag = Math.min(this.otlkMag, 50);\n if (this.otlkMag < 0) {\n this.otlkMag *= -1;\n this.b = !this.b;\n }\n }\n\n /**\n * Change's the stock's second-order forecast during a stock market 'tick'.\n * The change for the second-order forecast to increase is 50/50\n */\n cycleForecastForecast(changeAmt = 0.1): void {\n if (Math.random() < 0.5) {\n this.changeForecastForecast(this.otlkMagForecast + changeAmt);\n } else {\n this.changeForecastForecast(this.otlkMagForecast - changeAmt);\n }\n }\n\n /**\n * \"Flip\" the stock's second-order forecast. This can occur during a\n * stock market \"cycle\" (determined by RNG). It is used to simulate\n * RL stock market cycles and introduce volatility\n */\n flipForecastForecast(): void {\n const diff = this.otlkMagForecast - 50;\n this.otlkMagForecast = 50 + -1 * diff;\n }\n\n /**\n * Returns the stock's absolute forecast, which is a number between 0-100\n */\n getAbsoluteForecast(): number {\n return this.b ? 50 + this.otlkMag : 50 - this.otlkMag;\n }\n\n /**\n * Return the price at which YOUR stock is bought (market ask price). Accounts for spread\n */\n getAskPrice(): number {\n return this.price * (1 + this.spreadPerc / 100);\n }\n\n /**\n * Return the price at which YOUR stock is sold (market bid price). Accounts for spread\n */\n getBidPrice(): number {\n return this.price * (1 - this.spreadPerc / 100);\n }\n\n /**\n * Returns the chance (0-1 decimal) that a stock has of having its forecast increase\n */\n getForecastIncreaseChance(): number {\n const diff = this.otlkMagForecast - this.getAbsoluteForecast();\n\n return (50 + Math.min(Math.max(diff, -45), 45)) / 100;\n }\n\n /**\n * Changes a stock's forecast. This is used when the stock is influenced\n * by a transaction. The stock's forecast always goes towards 50, but the\n * movement is capped by a certain threshold/limit\n */\n influenceForecast(change: number): void {\n if (this.otlkMag > StockForecastInfluenceLimit) {\n this.otlkMag = Math.max(StockForecastInfluenceLimit, this.otlkMag - change);\n }\n }\n\n /**\n * Changes a stock's second-order forecast. This is used when the stock is\n * influenced by a transaction. The stock's second-order forecast always\n * goes towards 50.\n */\n influenceForecastForecast(change: number): void {\n if (this.otlkMagForecast > 50) {\n this.otlkMagForecast -= change;\n this.otlkMagForecast = Math.max(50, this.otlkMagForecast);\n } else if (this.otlkMagForecast < 50) {\n this.otlkMagForecast += change;\n this.otlkMagForecast = Math.min(50, this.otlkMagForecast);\n }\n }\n\n /**\n * Serialize the Stock to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Stock\", this);\n }\n\n /**\n * Initializes a Stock from a JSON save state\n */\n static fromJSON(value: IReviverValue): Stock {\n return Generic_fromJSON(Stock, value.data);\n }\n}\n\nReviver.constructors.Stock = Stock;\n","/**\n * Map of all Cities in the game\n * Key = City Name, Value = City object\n */\nimport { City } from \"./City\";\nimport { IMap } from \"../types\";\n\nexport const Cities: IMap = {};\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { HacknetServerConstants } from \"../data/Constants\";\n\nexport function calculateHashGainRate(\n level: number,\n ramUsed: number,\n maxRam: number,\n cores: number,\n mult: number,\n): number {\n const baseGain = HacknetServerConstants.HashesPerLevel * level;\n const ramMultiplier = Math.pow(1.07, Math.log2(maxRam));\n const coreMultiplier = 1 + (cores - 1) / 5;\n const ramRatio = 1 - ramUsed / maxRam;\n\n return baseGain * ramMultiplier * coreMultiplier * ramRatio * mult * BitNodeMultipliers.HacknetNodeMoney;\n}\n\nexport function calculateLevelUpgradeCost(startingLevel: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingLevel >= HacknetServerConstants.MaxLevel) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeLevelMult;\n let totalMultiplier = 0;\n let currLevel = startingLevel;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalMultiplier += Math.pow(mult, currLevel);\n ++currLevel;\n }\n\n return 10 * HacknetServerConstants.BaseCost * totalMultiplier * costMult;\n}\n\nexport function calculateRamUpgradeCost(startingRam: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingRam >= HacknetServerConstants.MaxRam) {\n return Infinity;\n }\n\n let totalCost = 0;\n let numUpgrades = Math.round(Math.log2(startingRam));\n let currentRam = startingRam;\n for (let i = 0; i < sanitizedLevels; ++i) {\n const baseCost = currentRam * HacknetServerConstants.RamBaseCost;\n const mult = Math.pow(HacknetServerConstants.UpgradeRamMult, numUpgrades);\n\n totalCost += baseCost * mult;\n\n currentRam *= 2;\n ++numUpgrades;\n }\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCoreUpgradeCost(startingCores: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingCores >= HacknetServerConstants.MaxCores) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeCoreMult;\n let totalCost = 0;\n let currentCores = startingCores;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalCost += Math.pow(mult, currentCores - 1);\n ++currentCores;\n }\n totalCost *= HacknetServerConstants.CoreBaseCost;\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCacheUpgradeCost(startingCache: number, extraLevels = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingCache >= HacknetServerConstants.MaxCache) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeCacheMult;\n let totalCost = 0;\n let currentCache = startingCache;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalCost += Math.pow(mult, currentCache - 1);\n ++currentCache;\n }\n totalCost *= HacknetServerConstants.CacheBaseCost;\n\n return totalCost;\n}\n\nexport function calculateServerCost(n: number, mult = 1): number {\n if (n - 1 >= HacknetServerConstants.MaxServers) {\n return Infinity;\n }\n\n return HacknetServerConstants.BaseCost * Math.pow(HacknetServerConstants.PurchaseMult, n - 1) * mult;\n}\n","import { IMap } from \"./types\";\nimport { Terminal } from \"./Terminal\";\n\nexport let Aliases: IMap = {};\nexport let GlobalAliases: IMap = {};\n\nexport function loadAliases(saveString: string): void {\n if (saveString === \"\") {\n Aliases = {};\n } else {\n Aliases = JSON.parse(saveString);\n }\n}\n\nexport function loadGlobalAliases(saveString: string): void {\n if (saveString === \"\") {\n GlobalAliases = {};\n } else {\n GlobalAliases = JSON.parse(saveString);\n }\n}\n\n// Prints all aliases to terminal\nexport function printAliases(): void {\n for (const name of Object.keys(Aliases)) {\n if (Aliases.hasOwnProperty(name)) {\n Terminal.print(\"alias \" + name + \"=\" + Aliases[name]);\n }\n }\n for (const name of Object.keys(GlobalAliases)) {\n if (GlobalAliases.hasOwnProperty(name)) {\n Terminal.print(\"global alias \" + name + \"=\" + GlobalAliases[name]);\n }\n }\n}\n\n// Returns true if successful, false otherwise\nexport function parseAliasDeclaration(dec: string, global = false): boolean {\n console.log(dec);\n const re = /^([\\w|!%,@-]+)=(.+)$/;\n const matches = dec.match(re);\n console.log(matches);\n if (matches == null || matches.length != 3) {\n return false;\n }\n\n if (global) {\n addGlobalAlias(matches[1], matches[2]);\n } else {\n addAlias(matches[1], matches[2]);\n }\n return true;\n}\n\nfunction addAlias(name: string, value: string): void {\n if (name in GlobalAliases) {\n delete GlobalAliases[name];\n }\n Aliases[name] = value.trim();\n}\n\nfunction addGlobalAlias(name: string, value: string): void {\n if (name in Aliases) {\n delete Aliases[name];\n }\n GlobalAliases[name] = value.trim();\n}\n\nfunction getAlias(name: string): string | null {\n if (Aliases.hasOwnProperty(name)) {\n return Aliases[name];\n }\n\n return null;\n}\n\nfunction getGlobalAlias(name: string): string | null {\n if (GlobalAliases.hasOwnProperty(name)) {\n return GlobalAliases[name];\n }\n return null;\n}\n\nexport function removeAlias(name: string): boolean {\n if (Aliases.hasOwnProperty(name)) {\n delete Aliases[name];\n return true;\n }\n\n if (GlobalAliases.hasOwnProperty(name)) {\n delete GlobalAliases[name];\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns the original string with any aliases substituted in.\n * Aliases are only applied to \"whole words\", one level deep\n */\nexport function substituteAliases(origCommand: string): string {\n const commandArray = origCommand.split(\" \");\n if (commandArray.length > 0) {\n // For the alias and unalias commands, dont substite\n if (commandArray[0] === \"unalias\" || commandArray[0] === \"alias\") {\n return commandArray.join(\" \");\n }\n\n let somethingSubstituted = true;\n let depth = 0;\n\n while (somethingSubstituted && depth < 10) {\n depth++;\n somethingSubstituted = false;\n const alias = getAlias(commandArray[0])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(0, 1, ...alias);\n //commandArray[0] = alias;\n }\n for (let i = 0; i < commandArray.length; ++i) {\n const alias = getGlobalAlias(commandArray[i])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(i, 1, ...alias);\n i += alias.length - 1;\n //commandArray[i] = alias;\n }\n }\n }\n }\n return commandArray.join(\" \");\n}\n","/**\n * Map of all Locations in the game\n * Key = Location name, value = Location object\n */\nimport { City } from \"./City\";\nimport { Cities } from \"./Cities\";\nimport { Location, IConstructorParams } from \"./Location\";\nimport { CityName } from \"./data/CityNames\";\nimport { LocationsMetadata } from \"./data/LocationsMetadata\";\n\nimport { IMap } from \"../types\";\n\nexport const Locations: IMap = {};\n\n/**\n * Here, we'll initialize both Locations and Cities data. These can both\n * be initialized from the `LocationsMetadata`\n */\nfunction constructLocation(p: IConstructorParams): Location {\n if (!p.name) {\n throw new Error(`Invalid constructor parameters for Location. No 'name' property`);\n }\n\n if (Locations[p.name] instanceof Location) {\n console.warn(`Property with name ${p.name} already exists and is being overwritten`);\n }\n\n Locations[p.name] = new Location(p);\n\n return Locations[p.name];\n}\n\n// First construct all cities\nCities[CityName.Aevum] = new City(CityName.Aevum);\nCities[CityName.Chongqing] = new City(CityName.Chongqing);\nCities[CityName.Ishima] = new City(CityName.Ishima);\nCities[CityName.NewTokyo] = new City(CityName.NewTokyo);\nCities[CityName.Sector12] = new City(CityName.Sector12);\nCities[CityName.Volhaven] = new City(CityName.Volhaven);\n\nCities[CityName.Aevum].asciiArt = `\n [aevum police headquarters] 26 \n o \n I \\\\ [bachman & associates] \n \\\\ 56 B \n x \\\\ [summit university] \n \\\\ \\\\ 28 \n \\\\ [snap fitness gym] x o--L-----------N \n K \\\\ / \n \\\\ \\\\ Q [casino] \n x 58 \\\\ / [travel agency] \n \\\\ 94 95 o \n 90 x 59 o------o | \n \\\\ / \\\\ | 98 102 103 \n o--------O------x----o 93 96 o-----+------------o o----o \n \\\\ | \\\\ / \n [hospital] \\\\ 61 [ecorp] x 31 99 o-F-o 101 \n o | \n | o---E-- | [fulcrum tech.] \n x 62 / A [aerocorp] \n [crush fitness gym] | / | \n | / | \n o--------D------+--o o \n | |\\\\ [rho construction] \n H [netlink tech.] | J \n | | \\\\ \n | 34 x \\\\ \n [clarke inc.] C | \\\\ [world stock exchange] \n | | \\\\ \n | | o-M-------R--------o \n[galactic cybersystems] G 35 x \n | [watchdog security] \n | \n 67 o \n \n [the slums] P `;\nCities[CityName.Chongqing].asciiArt = `\n | \n 75 o \n \\\\ \n o 76 \n 7 | | \n | + 77 \n [world stock exchange] F | \n \\\\ o 78 [kuaigong international] \n \\\\ / \n 38 o----x--x------x------A------G-- \n / 39 | 41 [church] \n 37 o + 79 o--x--x-C-0 \n / | / \n / x-----+-----x-----0 [hospital] \n[solaris space system] B | \n | + 80 \n | | \n 34 o E [travel agency] \n | \n | \n x 82 \n [the slums] D `;\nCities[CityName.Ishima].asciiArt = `\n o 59 \n o o | \n [storm tech.] | | G [world stock exchange] \n | | 28 | \n 23 o--C------o--------+----x----o | \n / / 25 | 27 \\\\ x 57 \n / / | \\\\ | \n / / | \\\\ | \n o 22 o | \\\\| 29/56 \n | | o \n | [hospital] D / \\\\ 3 2 1 \n o | / \\\\ o-------x------o \n / o / \\\\ / \n 48 o / 55 x \\\\ / \n \\\\ / / x [glitch] \n \\\\ / [nova medical] / 4/30 \\\\ \n 49 x A \\\\ H \n / \\\\ / \\\\ \n / \\\\ [travel agency] F o 31 \n / \\\\ 51 / \n / o----B------x-----o \n o 50 52 \n [omega soft.] \n [the slums] E `;\nCities[CityName.NewTokyo].asciiArt = `\n \n \n o \n \\\\ \n [arcade] E [defcomm] \n \\\\ \n o--x---A--x--o [travel agency] \n 7 8 10 H \n [vitalife] o 12 [global pharmaceuticals] \n | \n o--D-x----x-------x-C-+--------x--x-B-x---x-o \n 21 22 23 \\\\ 24 25 26 27 \n \\\\ \n [noodle bar] x 14 \n \\\\ \n \\\\ \n [hospital] o 15 [world stock exchange] \n | \n o--x--F--x-----x-----x---+---x----x--I--x-o \n | \n | \n o 17 \n \n \n \n G [the slums] \n `;\nCities[CityName.Sector12].asciiArt = `\n 78 o 97 \n o [icarus microsystems] / \n N [powerhouse gym] o I \n 1 | | / \n o-----+---x----o 4 A [alpha ent.] o-------o / \n | 3 \\\\ | \\\\ / \n | \\\\ | [iron gym] x 95 \n (79) x \\\\ | / \\\\ \n | o-E----+----x----J--o 10 / o----T--o \n | | 8 \\\\ 94 x \n 80 x [city hall] | x 11 / [world stock exchange]\n | | \\\\ / \n | C [cia] \\\\ / \n Q [hospital] | F P [universal energy] \n | o [deltaone] \\\\ / \n | 35 o---------x 13/92/36 \n L [megacorp] 33 / / \\\\ \n | o------------o 34 / \\\\ \n (29) | / [carmichael sec.] D \\\\ \n o-----+-----x------o / O [rothman university] \n | 31 32 [nsa] M \n | / \n B [blade industries] H \n | / [four sigma] \n | [joe's guns] / \n | / \n 85 o--G--------K--------S-------o 88 [the slums] R \n \n [foodnstuff] [travel agency] `;\nCities[CityName.Volhaven].asciiArt = `\n [omnia cybersystems] \n 17 66 68 \n o o------G-------o \n \\\\ / \\\\ \n \\\\ o 65 o 69 \n [syscore sec.] H | | \n \\\\ | | [millenium fitness gym] \n \\\\ | 21 22 23 24 | 26 \n o----+--x--x----x---x---+-----x-------D-----o \n 19 | | 28 \n | F [omnitek inc.] \n [hospital] J 63 o \n | / 72 \n 3 | 5 6 / 9 \n o--------+----x-----x----+----------M-------o \n / | | \n / 61 x [helios labs] B [world stock exchange] \n [travel agency] L | | \n / | o \n / E [nwo] / 75 \n / [computek] | / \n / A-------o------I-----o \n 1 o | | \n | [zb] o 77 \n [lexocorp] C \n | \n o \n 57 \n \n \n [the slums] K `;\n\n// Then construct all locations, and add them to the cities as we go.\nfor (const metadata of LocationsMetadata) {\n const loc = constructLocation(metadata);\n\n const cityName = loc.city;\n if (cityName === null) {\n // Generic location, add to all cities\n for (const city of Object.keys(Cities)) {\n Cities[city].addLocation(loc.name);\n }\n } else {\n Cities[cityName].addLocation(loc.name);\n }\n}\n","/**\n * Lore / world building literature files that can be found on servers.\n * These files can be read by the player\n */\nexport class Literature {\n title: string;\n fn: string;\n txt: string;\n\n constructor(title: string, filename: string, txt: string) {\n this.title = title;\n this.fn = filename;\n this.txt = txt;\n }\n}\n","import React, { useState } from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ntype IProps = {\n value: string;\n color?: string;\n variant?:\n | \"button\"\n | \"caption\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"subtitle1\"\n | \"subtitle2\"\n | \"body1\"\n | \"body2\"\n | \"overline\"\n | \"inherit\"\n | undefined;\n};\n\nexport function CopyableText(props: IProps): React.ReactElement {\n const [open, setOpen] = useState(false);\n\n function copy(): void {\n const copyText = document.createElement(\"textarea\");\n copyText.value = props.value;\n document.body.appendChild(copyText);\n copyText.select();\n copyText.setSelectionRange(0, 1e10);\n document.execCommand(\"copy\");\n document.body.removeChild(copyText);\n setOpen(true);\n setTimeout(() => setOpen(false), 1000);\n }\n\n return (\n Copied!}>\n \n {props.value}\n \n \n );\n}\n","import React from \"react\";\nimport { createTheme, ThemeProvider, Theme, StyledEngineProvider } from \"@mui/material/styles\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { Settings } from \"../../Settings/Settings\";\n\nexport const ThemeEvents = new EventEmitter<[]>();\n\ndeclare module \"@mui/material/styles\" {\n interface Theme {\n colors: {\n hp: React.CSSProperties[\"color\"];\n money: React.CSSProperties[\"color\"];\n hack: React.CSSProperties[\"color\"];\n combat: React.CSSProperties[\"color\"];\n cha: React.CSSProperties[\"color\"];\n int: React.CSSProperties[\"color\"];\n rep: React.CSSProperties[\"color\"];\n backgroundprimary: React.CSSProperties[\"color\"];\n backgroundsecondary: React.CSSProperties[\"color\"];\n button: React.CSSProperties[\"color\"];\n successlight: React.CSSProperties[\"color\"];\n success: React.CSSProperties[\"color\"];\n successdark: React.CSSProperties[\"color\"];\n white: React.CSSProperties[\"color\"];\n black: React.CSSProperties[\"color\"];\n };\n }\n interface ThemeOptions {\n colors: {\n hp: React.CSSProperties[\"color\"];\n money: React.CSSProperties[\"color\"];\n hack: React.CSSProperties[\"color\"];\n combat: React.CSSProperties[\"color\"];\n cha: React.CSSProperties[\"color\"];\n int: React.CSSProperties[\"color\"];\n rep: React.CSSProperties[\"color\"];\n backgroundprimary: React.CSSProperties[\"color\"];\n backgroundsecondary: React.CSSProperties[\"color\"];\n button: React.CSSProperties[\"color\"];\n successlight: React.CSSProperties[\"color\"];\n success: React.CSSProperties[\"color\"];\n successdark: React.CSSProperties[\"color\"];\n white: React.CSSProperties[\"color\"];\n black: React.CSSProperties[\"color\"];\n };\n }\n}\n\nlet theme: Theme;\n\nexport function refreshTheme(): void {\n theme = createTheme({\n colors: {\n hp: Settings.theme.hp,\n money: Settings.theme.money,\n hack: Settings.theme.hack,\n combat: Settings.theme.combat,\n cha: Settings.theme.cha,\n int: Settings.theme.int,\n rep: Settings.theme.rep,\n backgroundprimary: Settings.theme.backgroundprimary,\n backgroundsecondary: Settings.theme.backgroundsecondary,\n button: Settings.theme.button,\n successlight: Settings.theme.successlight,\n success: Settings.theme.success,\n successdark: Settings.theme.successdark,\n white: Settings.theme.white,\n black: Settings.theme.black,\n },\n palette: {\n primary: {\n light: Settings.theme.primarylight,\n main: Settings.theme.primary,\n dark: Settings.theme.primarydark,\n },\n secondary: {\n light: Settings.theme.secondarylight,\n main: Settings.theme.secondary,\n dark: Settings.theme.secondarydark,\n },\n error: {\n light: Settings.theme.errorlight,\n main: Settings.theme.error,\n dark: Settings.theme.errordark,\n },\n info: {\n light: Settings.theme.infolight,\n main: Settings.theme.info,\n dark: Settings.theme.infodark,\n },\n warning: {\n light: Settings.theme.warninglight,\n main: Settings.theme.warning,\n dark: Settings.theme.warningdark,\n },\n success: {\n light: Settings.theme.successlight,\n main: Settings.theme.success,\n dark: Settings.theme.successdark,\n },\n background: {\n default: Settings.theme.backgroundprimary,\n paper: Settings.theme.well,\n },\n action: {\n disabled: Settings.theme.disabled,\n },\n },\n typography: {\n fontFamily: Settings.styles.fontFamily,\n button: {\n textTransform: \"none\",\n },\n },\n components: {\n MuiInputBase: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.well,\n color: Settings.theme.primary,\n },\n input: {\n \"&::placeholder\": {\n userSelect: \"none\",\n color: Settings.theme.primarydark,\n },\n },\n },\n },\n\n MuiInput: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.well,\n borderBottomColor: \"#fff\",\n },\n underline: {\n \"&:hover\": {\n borderBottomColor: Settings.theme.primarydark,\n },\n \"&:before\": {\n borderBottomColor: Settings.theme.primary,\n },\n \"&:after\": {\n borderBottomColor: Settings.theme.primarylight,\n },\n },\n },\n },\n\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: Settings.theme.primarydark, // why is this switched?\n userSelect: \"none\",\n \"&:before\": {\n color: Settings.theme.primarylight,\n },\n },\n },\n },\n\n MuiButtonGroup: {\n styleOverrides: {\n root: {\n \"& .MuiButton-root:not(:last-of-type)\": {\n marginRight: \"1px\",\n },\n },\n },\n },\n\n MuiButton: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.button,\n border: \"1px solid \" + Settings.theme.well,\n // color: Settings.theme.primary,\n \"&:hover\": {\n backgroundColor: Settings.theme.backgroundsecondary,\n },\n\n borderRadius: 0,\n },\n },\n },\n MuiSelect: {\n styleOverrides: {\n icon: {\n color: Settings.theme.primary,\n },\n },\n defaultProps: {\n variant: \"standard\",\n },\n },\n MuiTextField: {\n defaultProps: {\n variant: \"standard\",\n },\n },\n MuiTypography: {\n defaultProps: {\n color: \"primary\",\n },\n styleOverrides: {\n root: {\n lineHeight: Settings.styles.lineHeight,\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n list: {\n backgroundColor: Settings.theme.well,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n backgroundColor: \"#111\",\n },\n },\n },\n MuiAccordionDetails: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.backgroundsecondary,\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontSize: \"1em\",\n color: Settings.theme.primary,\n backgroundColor: Settings.theme.well,\n borderRadius: 0,\n border: \"2px solid white\",\n maxWidth: \"100vh\",\n },\n },\n defaultProps: {\n disableInteractive: true,\n },\n },\n MuiSlider: {\n styleOverrides: {\n valueLabel: {\n color: Settings.theme.primary,\n backgroundColor: Settings.theme.well,\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n \"&::-webkit-scrollbar\": {\n // webkit\n display: \"none\",\n },\n scrollbarWidth: \"none\", // firefox\n backgroundColor: Settings.theme.backgroundsecondary,\n },\n paperAnchorDockedLeft: {\n borderRight: \"1px solid \" + Settings.theme.welllight,\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.welllight,\n },\n },\n },\n MuiFormControlLabel: {\n styleOverrides: {\n root: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiSwitch: {\n styleOverrides: {\n switchBase: {\n color: Settings.theme.primarydark,\n },\n track: {\n backgroundColor: Settings.theme.welllight,\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n borderRadius: 0,\n backgroundColor: Settings.theme.backgroundsecondary,\n border: \"1px solid \" + Settings.theme.welllight,\n },\n },\n },\n MuiTablePagination: {\n styleOverrides: {\n select: {\n color: Settings.theme.primary,\n },\n selectLabel: {\n color: Settings.theme.primary,\n },\n displayedRows: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n textColorPrimary: {\n color: Settings.theme.secondary,\n \"&.Mui-selected\": {\n color: Settings.theme.primary,\n },\n },\n root: {\n backgroundColor: Settings.theme.backgroundsecondary,\n border: \"1px solid \" + Settings.theme.well,\n margin: \"3px\",\n\n \"&.Mui-selected\": {\n backgroundColor: Settings.theme.button,\n },\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n scrollButtons: {\n backgroundColor: Settings.theme.backgroundsecondary,\n color: Settings.theme.secondary,\n margin: \"3px\",\n opacity: 1,\n width: \"fit-content\",\n\n \"&.Mui-disabled\": {\n opacity: 0.5,\n },\n },\n },\n defaultProps: {\n TabIndicatorProps: {\n style: {\n display: \"none\",\n },\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.black,\n borderRadius: 0,\n border: \"1px solid \" + Settings.theme.well,\n },\n standardSuccess: {\n color: Settings.theme.successlight,\n },\n standardError: {\n color: Settings.theme.errorlight,\n },\n standardWarning: {\n color: Settings.theme.warninglight,\n },\n standardInfo: {\n color: Settings.theme.infolight,\n },\n },\n },\n },\n });\n\n document.body.style.backgroundColor = theme.colors.backgroundprimary?.toString() ?? \"black\";\n}\nrefreshTheme();\n\ninterface IProps {\n children: JSX.Element[] | JSX.Element;\n}\n\nexport const TTheme = ({ children }: IProps): React.ReactElement => (\n \n {children}\n \n);\n","// Enums that defined allowed values for setting configuration\n\n/**\n * Allowed values for the 'OwnedAugmentationsOrder' setting\n */\nexport enum PurchaseAugmentationsOrderSetting {\n Cost,\n Default,\n Reputation,\n Purchasable,\n}\n\n/**\n * Allowed values for the 'OwnedAugmentationsOrder' setting\n */\nexport enum OwnedAugmentationsOrderSetting {\n Alphabetically,\n AcquirementTime,\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { RunningScript } from \"../../Script/RunningScript\";\nimport { killWorkerScript } from \"../../Netscript/killWorkerScript\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport Paper from \"@mui/material/Paper\";\nimport Draggable, { DraggableEvent } from \"react-draggable\";\nimport { ResizableBox } from \"react-resizable\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { workerScripts } from \"../../Netscript/WorkerScripts\";\nimport { startWorkerScript } from \"../../NetscriptWorker\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { findRunningScript } from \"../../Script/ScriptHelpers\";\nimport { Player } from \"../../Player\";\nimport { debounce } from \"lodash\";\nimport { Settings } from \"../../Settings/Settings\";\nimport { ANSIITypography } from \"./ANSIITypography\";\nimport { ScriptArg } from \"../../Netscript/ScriptArg\";\n\nlet layerCounter = 0;\n\nexport const LogBoxEvents = new EventEmitter<[RunningScript]>();\nexport const LogBoxCloserEvents = new EventEmitter<[number]>();\nexport const LogBoxClearEvents = new EventEmitter<[]>();\n\ninterface Log {\n id: string;\n script: RunningScript;\n}\n\nlet logs: Log[] = [];\n\nexport function LogBoxManager(): React.ReactElement {\n const setRerender = useState(true)[1];\n function rerender(): void {\n setRerender((o) => !o);\n }\n useEffect(\n () =>\n LogBoxEvents.subscribe((script: RunningScript) => {\n const id = script.server + \"-\" + script.filename + script.args.map((x: ScriptArg): string => `${x}`).join(\"-\");\n if (logs.find((l) => l.id === id)) return;\n logs.push({\n id: id,\n script: script,\n });\n rerender();\n }),\n [],\n );\n\n //Event used by ns.closeTail to close tail windows\n useEffect(\n () =>\n LogBoxCloserEvents.subscribe((pid: number) => {\n closePid(pid);\n }),\n [],\n );\n\n useEffect(() =>\n LogBoxClearEvents.subscribe(() => {\n logs = [];\n rerender();\n }),\n );\n\n //Close tail windows by their id\n function close(id: string): void {\n logs = logs.filter((l) => l.id !== id);\n rerender();\n }\n\n //Close tail windows by their pid\n function closePid(pid: number): void {\n logs = logs.filter((log) => log.script.pid != pid);\n rerender();\n }\n\n return (\n <>\n {logs.map((log) => (\n close(log.id)} />\n ))}\n >\n );\n}\n\ninterface IProps {\n script: RunningScript;\n id: string;\n onClose: () => void;\n}\n\nconst useStyles = makeStyles(() =>\n createStyles({\n logs: {\n overflowY: \"scroll\",\n overflowX: \"hidden\",\n scrollbarWidth: \"auto\",\n flexDirection: \"column-reverse\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n },\n titleButton: {\n padding: \"1px 0\",\n height: \"100%\",\n },\n }),\n);\n\nexport const logBoxBaseZIndex = 1500;\n\nfunction LogWindow(props: IProps): React.ReactElement {\n const draggableRef = useRef(null);\n const rootRef = useRef(null);\n const [script, setScript] = useState(props.script);\n const classes = useStyles();\n const container = useRef(null);\n const setRerender = useState(false)[1];\n const [minimized, setMinimized] = useState(false);\n function rerender(): void {\n setRerender((old) => !old);\n }\n\n // useEffect(\n // () =>\n // WorkerScriptStartStopEventEmitter.subscribe(() => {\n // setTimeout(() => {\n // const server = GetServer(script.server);\n // if (server === null) return;\n // const exisitingScript = findRunningScript(script.filename, script.args, server);\n // if (exisitingScript) {\n // exisitingScript.logs = script.logs.concat(exisitingScript.logs)\n // setScript(exisitingScript)\n // }\n // rerender();\n // }, 100)\n // }),\n // [],\n // );\n\n useEffect(() => {\n updateLayer();\n const id = setInterval(rerender, 1000);\n return () => clearInterval(id);\n }, []);\n\n function kill(): void {\n killWorkerScript({ runningScript: script, hostname: script.server });\n }\n\n function run(): void {\n const server = GetServer(script.server);\n if (server === null) return;\n const s = findRunningScript(script.filename, script.args, server);\n if (s === null) {\n startWorkerScript(Player, script, server);\n } else {\n setScript(s);\n }\n }\n\n function updateLayer(): void {\n const c = container.current;\n if (c === null) return;\n c.style.zIndex = logBoxBaseZIndex + layerCounter + \"\";\n layerCounter++;\n rerender();\n }\n\n function title(full = false): string {\n const maxLength = 30;\n const t = `${script.filename} ${script.args.map((x: ScriptArg): string => `${x}`).join(\" \")}`;\n if (full || t.length <= maxLength) {\n return t;\n }\n return t.slice(0, maxLength - 3) + \"...\";\n }\n\n function minimize(): void {\n setMinimized(!minimized);\n }\n\n function lineColor(s: string): \"error\" | \"success\" | \"warn\" | \"info\" | \"primary\" {\n if (s.match(/(^\\[[^\\]]+\\] )?ERROR/) || s.match(/(^\\[[^\\]]+\\] )?FAIL/)) {\n return \"error\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?SUCCESS/)) {\n return \"success\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?WARN/)) {\n return \"warn\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?INFO/)) {\n return \"info\";\n }\n return \"primary\";\n }\n\n // And trigger fakeDrag when the window is resized\n useEffect(() => {\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, []);\n\n const onResize = debounce((): void => {\n const node = draggableRef?.current;\n if (!node) return;\n\n if (!isOnScreen(node)) {\n resetPosition();\n }\n }, 100);\n\n const isOnScreen = (node: HTMLDivElement): boolean => {\n const bounds = node.getBoundingClientRect();\n\n return !(bounds.right < 0 || bounds.bottom < 0 || bounds.left > innerWidth || bounds.top > outerWidth);\n };\n\n const resetPosition = (): void => {\n const node = rootRef?.current;\n if (!node) return;\n const state = node.state as { x: number; y: number };\n state.x = 0;\n state.y = 0;\n node.setState(state);\n };\n\n const boundToBody = (e: DraggableEvent): void | false => {\n if (\n e instanceof MouseEvent &&\n (e.clientX < 0 || e.clientY < 0 || e.clientX > innerWidth || e.clientY > innerHeight)\n )\n return false;\n };\n\n // Max [width, height]\n const minConstraints: [number, number] = [250, 33];\n\n return (\n \n \n \n \n \n }\n >\n <>\n \n \n {title(true)}\n \n\n \n {!workerScripts.has(script.pid) ? (\n \n ) : (\n \n )}\n \n \n \n \n\n \n \n {script.logs.map(\n (line: string, i: number): JSX.Element => (\n \n \n \n ),\n )}\n \n \n >\n \n \n \n );\n}\n","import { IMap } from \"../types\";\n\n// Map of material (by name) to their sizes (how much space it takes in warehouse)\nexport const MaterialSizes: IMap = {\n Water: 0.05,\n Energy: 0.01,\n Food: 0.03,\n Plants: 0.05,\n Metal: 0.1,\n Hardware: 0.06,\n Chemicals: 0.05,\n Drugs: 0.02,\n Robots: 0.5,\n AICores: 0.1,\n RealEstate: 0.005,\n \"Real Estate\": 0.005,\n \"AI Cores\": 0.1,\n};\n","import { WorkerScript } from \"./WorkerScript\";\n\n/**\n * Script death marker.\n *\n * IMPORTANT: the game engine should not base any of it's decisions on the data\n * carried in a ScriptDeath instance.\n *\n * This is because ScriptDeath instances are thrown through player code when a\n * script is killed. Which grants the player access to the class and the ability\n * to construct new instances with arbitrary data.\n */\nexport class ScriptDeath {\n /** Process ID number. */\n pid: number;\n\n /** Filename of the script. */\n name: string;\n\n /** IP Address on which the script was running */\n hostname: string;\n\n /** Status message in case of script error. */\n errorMessage = \"\";\n\n constructor(ws: WorkerScript) {\n this.pid = ws.pid;\n this.name = ws.name;\n this.hostname = ws.hostname;\n this.errorMessage = ws.errorMessage;\n\n Object.freeze(this);\n }\n}\n\nObject.freeze(ScriptDeath);\nObject.freeze(ScriptDeath.prototype);\n","export function calculateSkill(exp: number, mult = 1): number {\n return Math.max(Math.floor(mult * (32 * Math.log(exp + 534.5) - 200)), 1);\n}\n\nexport function calculateExp(skill: number, mult = 1): number {\n return Math.exp((skill / mult + 200) / 32) - 534.6;\n}\n\nexport function calculateSkillProgress(exp: number, mult = 1): ISkillProgress {\n const currentSkill = calculateSkill(exp, mult);\n const nextSkill = currentSkill + 1;\n\n let baseExperience = calculateExp(currentSkill, mult);\n if (baseExperience < 0) baseExperience = 0;\n\n let nextExperience = calculateExp(nextSkill, mult);\n if (nextExperience < 0) nextExperience = 0;\n\n const normalize = (value: number): number => ((value - baseExperience) * 100) / (nextExperience - baseExperience);\n let progress = nextExperience - baseExperience !== 0 ? normalize(exp) : 99.99;\n\n // Clamp progress: When sleeves are working out, the player gets way too much progress\n if (progress < 0) progress = 0;\n if (progress > 100) progress = 100;\n\n // Clamp floating point imprecisions\n let currentExperience = exp - baseExperience;\n let remainingExperience = nextExperience - exp;\n if (currentExperience < 0) currentExperience = 0;\n if (remainingExperience < 0) remainingExperience = 0;\n\n return {\n currentSkill,\n nextSkill,\n baseExperience,\n experience: exp,\n nextExperience,\n currentExperience,\n remainingExperience,\n progress,\n };\n}\n\nexport interface ISkillProgress {\n currentSkill: number;\n nextSkill: number;\n baseExperience: number;\n experience: number;\n nextExperience: number;\n currentExperience: number;\n remainingExperience: number;\n progress: number;\n}\n\nexport function getEmptySkillProgress(): ISkillProgress {\n return {\n currentSkill: 0,\n nextSkill: 0,\n baseExperience: 0,\n experience: 0,\n nextExperience: 0,\n currentExperience: 0,\n remainingExperience: 0,\n progress: 0,\n };\n}\n","export interface IMults {\n hack?: number;\n str?: number;\n def?: number;\n dex?: number;\n agi?: number;\n cha?: number;\n}\n\nexport enum UpgradeType {\n Weapon = \"w\",\n Armor = \"a\",\n Vehicle = \"v\",\n Rootkit = \"r\",\n Augmentation = \"g\",\n}\n\n/**\n * Defines the parameters that can be used to initialize and describe a GangMemberUpgrade\n * (defined in Gang.js)\n */\ninterface IGangMemberUpgradeMetadata {\n cost: number;\n mults: IMults;\n name: string;\n upgType: UpgradeType;\n}\n\n/**\n * Array of metadata for all Gang Member upgrades. Used to construct the global GangMemberUpgrade\n * objects in Gang.js\n */\nexport const gangMemberUpgradesMetadata: IGangMemberUpgradeMetadata[] = [\n {\n cost: 1e6,\n mults: { str: 1.04, def: 1.04 },\n name: \"Baseball Bat\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 12e6,\n mults: { str: 1.08, def: 1.08, dex: 1.08 },\n name: \"Katana\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 25e6,\n mults: { str: 1.1, def: 1.1, dex: 1.1, agi: 1.1 },\n name: \"Glock 18C\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 50e6,\n mults: { str: 1.12, def: 1.1, agi: 1.1 },\n name: \"P90C\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 60e6,\n mults: { str: 1.2, def: 1.15 },\n name: \"Steyr AUG\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 100e6,\n mults: { str: 1.25, def: 1.2 },\n name: \"AK-47\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 150e6,\n mults: { str: 1.3, def: 1.25 },\n name: \"M15A10 Assault Rifle\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 225e6,\n mults: { str: 1.3, dex: 1.25, agi: 1.3 },\n name: \"AWM Sniper Rifle\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 2e6,\n mults: { def: 1.04 },\n name: \"Bulletproof Vest\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 5e6,\n mults: { def: 1.08 },\n name: \"Full Body Armor\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 25e6,\n mults: { def: 1.15, agi: 1.15 },\n name: \"Liquid Body Armor\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 40e6,\n mults: { def: 1.2 },\n name: \"Graphene Plating Armor\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 3e6,\n mults: { agi: 1.04, cha: 1.04 },\n name: \"Ford Flex V20\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 9e6,\n mults: { agi: 1.08, cha: 1.08 },\n name: \"ATX1070 Superbike\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 18e6,\n mults: { agi: 1.12, cha: 1.12 },\n name: \"Mercedes-Benz S9001\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 30e6,\n mults: { agi: 1.16, cha: 1.16 },\n name: \"White Ferrari\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 5e6,\n mults: { hack: 1.05 },\n name: \"NUKE Rootkit\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 25e6,\n mults: { hack: 1.1 },\n name: \"Soulstealer Rootkit\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 75e6,\n mults: { hack: 1.15 },\n name: \"Demon Rootkit\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 40e6,\n mults: { hack: 1.12 },\n name: \"Hmap Node\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 75e6,\n mults: { hack: 1.15 },\n name: \"Jack the Ripper\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 10e9,\n mults: { str: 1.3, dex: 1.3 },\n name: \"Bionic Arms\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 10e9,\n mults: { agi: 1.6 },\n name: \"Bionic Legs\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 15e9,\n mults: { str: 1.15, def: 1.15, dex: 1.15, agi: 1.15 },\n name: \"Bionic Spine\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 20e9,\n mults: { str: 1.4, def: 1.4 },\n name: \"BrachiBlades\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 12e9,\n mults: { str: 1.2, def: 1.2 },\n name: \"Nanofiber Weave\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 25e9,\n mults: { str: 1.5, agi: 1.5 },\n name: \"Synthetic Heart\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 15e9,\n mults: { str: 1.3, def: 1.3 },\n name: \"Synfibril Muscle\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 5e9,\n mults: { hack: 1.05 },\n name: \"BitWire\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 10e9,\n mults: { hack: 1.15 },\n name: \"Neuralstimulator\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 7.5e9,\n mults: { hack: 1.1 },\n name: \"DataJack\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 50e9,\n mults: { str: 1.7, def: 1.7 },\n name: \"Graphene Bone Lacings\",\n upgType: UpgradeType.Augmentation,\n },\n];\n","/**\n * Functions for handling WorkerScripts, which are the underlying mechanism\n * that allows for scripts to run\n */\nimport { killWorkerScript } from \"./Netscript/killWorkerScript\";\nimport { ScriptDeath } from \"./Netscript/ScriptDeath\";\nimport { WorkerScript } from \"./Netscript/WorkerScript\";\nimport { workerScripts } from \"./Netscript/WorkerScripts\";\nimport { WorkerScriptStartStopEventEmitter } from \"./Netscript/WorkerScriptStartStopEventEmitter\";\nimport { generateNextPid } from \"./Netscript/Pid\";\n\nimport { CONSTANTS } from \"./Constants\";\nimport { Interpreter } from \"./ThirdParty/JSInterpreter\";\nimport { NetscriptFunctions } from \"./NetscriptFunctions\";\nimport { executeJSScript, Node } from \"./NetscriptJSEvaluator\";\nimport { NetscriptPort, IPort } from \"./NetscriptPort\";\nimport { RunningScript } from \"./Script/RunningScript\";\nimport { getRamUsageFromRunningScript } from \"./Script/RunningScriptHelpers\";\nimport { scriptCalculateOfflineProduction } from \"./Script/ScriptHelpers\";\nimport { Script } from \"./Script/Script\";\nimport { GetAllServers } from \"./Server/AllServers\";\nimport { BaseServer } from \"./Server/BaseServer\";\nimport { Settings } from \"./Settings/Settings\";\n\nimport { generate } from \"escodegen\";\n\nimport { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { arrayToString } from \"./utils/helpers/arrayToString\";\nimport { roundToTwo } from \"./utils/helpers/roundToTwo\";\nimport { isString } from \"./utils/helpers/isString\";\n\nimport { parse } from \"acorn\";\nimport { simple as walksimple } from \"acorn-walk\";\nimport { areFilesEqual } from \"./Terminal/DirectoryHelpers\";\nimport { Player } from \"./Player\";\nimport { Terminal } from \"./Terminal\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { ScriptArg } from \"./Netscript/ScriptArg\";\nimport { helpers } from \"./Netscript/NetscriptHelpers\";\nimport { NS } from \"./ScriptEditor/NetscriptDefinitions\";\n\n// Netscript Ports are instantiated here\nexport const NetscriptPorts: IPort[] = [];\nfor (let i = 0; i < CONSTANTS.NumNetscriptPorts; ++i) {\n NetscriptPorts.push(NetscriptPort());\n}\n\nexport function prestigeWorkerScripts(): void {\n for (const ws of workerScripts.values()) {\n ws.env.stopFlag = true;\n killWorkerScript(ws);\n }\n for (const port of NetscriptPorts) {\n port.clear();\n }\n\n WorkerScriptStartStopEventEmitter.emit();\n workerScripts.clear();\n}\n\n// JS script promises need a little massaging to have the same guarantees as netscript\n// promises. This does said massaging and kicks the script off. It returns a promise\n// that resolves or rejects when the corresponding worker script is done.\nfunction startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Promise {\n workerScript.running = true;\n return new Promise((resolve, reject) => {\n executeJSScript(player, workerScript.getServer().scripts, workerScript)\n .then(() => {\n resolve();\n })\n .catch((e) => reject(e));\n }).catch((e) => {\n if (e instanceof Error) {\n if (e instanceof SyntaxError) {\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(\n workerScript,\n e.message + \" (sorry we can't be more helpful)\",\n );\n } else {\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(\n workerScript,\n e.message + ((e.stack && \"\\nstack:\\n\" + e.stack.toString()) || \"\"),\n );\n }\n throw new ScriptDeath(workerScript);\n } else if (helpers.isScriptErrorMessage(e)) {\n workerScript.errorMessage = e;\n throw new ScriptDeath(workerScript);\n } else if (e instanceof ScriptDeath) {\n throw e;\n }\n\n // Don't know what to do with it, let's try making an error message out of it\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(workerScript, \"\" + e);\n throw new ScriptDeath(workerScript);\n });\n}\n\nfunction startNetscript1Script(workerScript: WorkerScript): Promise {\n const code = workerScript.code;\n workerScript.running = true;\n\n //Process imports\n let codeWithImports, codeLineOffset;\n try {\n const importProcessingRes = processNetscript1Imports(code, workerScript);\n codeWithImports = importProcessingRes.code;\n codeLineOffset = importProcessingRes.lineOffset;\n } catch (e: unknown) {\n dialogBoxCreate(\"Error processing Imports in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n const interpreterInitialization = function (int: Interpreter, scope: unknown): void {\n interface NS1 extends NS {\n [key: string]: any;\n }\n //Add the Netscript environment\n const ns = NetscriptFunctions(workerScript) as NS1;\n for (const name of Object.keys(ns)) {\n const entry = ns[name];\n if (typeof entry === \"function\") {\n //Async functions need to be wrapped. See JS-Interpreter documentation\n const asyncFuncs = [\"hack\", \"grow\", \"weaken\", \"sleep\", \"prompt\", \"manualHack\", \"scp\", \"write\", \"share\", \"wget\"];\n\n if (asyncFuncs.includes(name)) {\n const tempWrapper = function (...args: unknown[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length - 1; ++i) {\n if (typeof args[i] === \"object\" || Array.isArray(args[i])) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n const callb = args[args.length - 1];\n const fnPromise = entry(...fnArgs);\n fnPromise\n .then(function (res: unknown) {\n if (typeof callb === \"function\") {\n callb(res);\n }\n })\n .catch(function (err: unknown) {\n if (typeof err === \"string\") {\n console.error(err);\n const errorTextArray = err.split(\"|DELIMITER|\");\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n let msg = `${scriptName}@${hostname} `;\n msg += \" \";\n msg += errorMsg;\n dialogBoxCreate(msg);\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n });\n };\n int.setProperty(scope, name, int.createAsyncFunction(tempWrapper));\n } else if (\n name === \"sprintf\" ||\n name === \"vsprintf\" ||\n name === \"scp\" ||\n name == \"write\" ||\n name === \"tryWritePort\" ||\n name === \"run\" ||\n name === \"exec\"\n ) {\n const tempWrapper = function (...args: unknown[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length; ++i) {\n if (typeof args[i] === \"object\" || Array.isArray(args[i])) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n\n return entry(...fnArgs);\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n } else {\n const tempWrapper = function (...args: unknown[]): unknown {\n const res = entry(...args);\n\n if (res == null) {\n return res;\n } else if (res.constructor === Array || res === Object(res)) {\n //Objects and Arrays must be converted to the interpreter's format\n return int.nativeToPseudo(res);\n } else {\n return res;\n }\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n }\n } else {\n //bladeburner, or anything else\n int.setProperty(scope, name, int.nativeToPseudo(entry));\n }\n }\n\n //Add the arguments\n int.setProperty(scope, \"args\", int.nativeToPseudo(workerScript.args));\n };\n\n let interpreter: Interpreter;\n try {\n interpreter = new Interpreter(codeWithImports, interpreterInitialization, codeLineOffset);\n } catch (e: unknown) {\n dialogBoxCreate(\"Syntax ERROR in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n function runInterpreter(): void {\n try {\n if (workerScript.env.stopFlag) {\n return reject(new ScriptDeath(workerScript));\n }\n\n let more = true;\n let i = 0;\n while (i < 3 && more) {\n more = more && interpreter.step();\n i++;\n }\n\n if (more) {\n setTimeout(runInterpreter, Settings.CodeInstructionRunTime);\n } else {\n resolve();\n }\n } catch (_e: unknown) {\n let e = String(_e);\n if (!helpers.isScriptErrorMessage(e)) {\n e = helpers.makeRuntimeRejectMsg(workerScript, e);\n }\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n }\n }\n\n try {\n runInterpreter();\n } catch (e: unknown) {\n if (isString(e)) {\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n } else if (e instanceof ScriptDeath) {\n return reject(e);\n } else {\n console.error(e);\n return reject(new ScriptDeath(workerScript));\n }\n }\n });\n}\n\n/* Since the JS Interpreter used for Netscript 1.0 only supports ES5, the keyword\n 'import' throws an error. However, since we want to support import funtionality\n we'll implement it ourselves by parsing the Nodes in the AST out.\n\n @param code - The script's code\n @returns {Object} {\n code: Newly-generated code with imported functions\n lineOffset: Net number of lines of code added/removed due to imported functions\n Should typically be positive\n }\n*/\nfunction processNetscript1Imports(code: string, workerScript: WorkerScript): { code: string; lineOffset: number } {\n //allowReserved prevents 'import' from throwing error in ES5\n const ast: Node = parse(code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n const server = workerScript.getServer();\n if (server == null) {\n throw new Error(\"Failed to find underlying Server object for script\");\n }\n\n function getScript(scriptName: string): Script | null {\n for (let i = 0; i < server.scripts.length; ++i) {\n if (server.scripts[i].filename === scriptName) {\n return server.scripts[i];\n }\n }\n return null;\n }\n\n let generatedCode = \"\"; // Generated Javascript Code\n let hasImports = false;\n\n // Walk over the tree and process ImportDeclaration nodes\n walksimple(ast, {\n ImportDeclaration: (node: Node) => {\n hasImports = true;\n let scriptName = node.source.value;\n if (scriptName.startsWith(\"./\")) {\n scriptName = scriptName.slice(2);\n }\n const script = getScript(scriptName);\n if (script == null) {\n throw new Error(\"'Import' failed due to invalid script: \" + scriptName);\n }\n const scriptAst = parse(script.code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n if (node.specifiers.length === 1 && node.specifiers[0].type === \"ImportNamespaceSpecifier\") {\n // import * as namespace from script\n const namespace = node.specifiers[0].local.name;\n const fnNames: string[] = []; //Names only\n const fnDeclarations: Node[] = []; //FunctionDeclaration Node objects\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n fnNames.push(node.id.name);\n fnDeclarations.push(node);\n },\n });\n\n //Now we have to generate the code that would create the namespace\n generatedCode += `var ${namespace};\\n(function (namespace) {\\n`;\n\n //Add the function declarations\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n\n //Add functions to namespace\n fnNames.forEach((fnName) => {\n generatedCode += \"namespace.\" + fnName + \" = \" + fnName;\n generatedCode += \"\\n\";\n });\n\n //Finish\n generatedCode += `})(${namespace} || (\" + namespace + \" = {}));\\n`;\n } else {\n //import {...} from script\n\n //Get array of all fns to import\n const fnsToImport: string[] = [];\n node.specifiers.forEach((e: Node) => {\n fnsToImport.push(e.local.name);\n });\n\n //Walk through script and get FunctionDeclaration code for all specified fns\n const fnDeclarations: Node[] = [];\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n if (fnsToImport.includes(node.id.name)) {\n fnDeclarations.push(node);\n }\n },\n });\n\n //Convert FunctionDeclarations into code\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n }\n },\n });\n\n //If there are no imports, just return the original code\n if (!hasImports) {\n return { code: code, lineOffset: 0 };\n }\n\n //Remove ImportDeclarations from AST. These ImportDeclarations must be in top-level\n let linesRemoved = 0;\n if (ast.type !== \"Program\" || ast.body == null) {\n throw new Error(\"Code could not be properly parsed\");\n }\n for (let i = ast.body.length - 1; i >= 0; --i) {\n if (ast.body[i].type === \"ImportDeclaration\") {\n ast.body.splice(i, 1);\n ++linesRemoved;\n }\n }\n\n //Calculated line offset\n const lineOffset = (generatedCode.match(/\\n/g) || []).length - linesRemoved;\n\n //Convert the AST back into code\n code = generate(ast);\n\n //Add the imported code and re-generate in ES5 (JS Interpreter for NS1 only supports ES5);\n code = generatedCode + code;\n\n const res = {\n code: code,\n lineOffset: lineOffset,\n };\n return res;\n}\n\n/**\n * Used to start a RunningScript (by creating and starting its\n * corresponding WorkerScript), and add the RunningScript to the server on which\n * it is active\n */\nexport function startWorkerScript(\n player: IPlayer,\n runningScript: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): number {\n if (createAndAddWorkerScript(player, runningScript, server, parent)) {\n // Push onto runningScripts.\n // This has to come after createAndAddWorkerScript() because that fn updates RAM usage\n server.runScript(runningScript);\n\n // Once the WorkerScript is constructed in createAndAddWorkerScript(), the RunningScript\n // object should have a PID assigned to it, so we return that\n return runningScript.pid;\n }\n\n return 0;\n}\n\n/**\n * Given a RunningScript object, constructs its corresponding WorkerScript,\n * adds it to the global 'workerScripts' pool, and begins executing it.\n * @param {RunningScript} runningScriptObj - Script that's being run\n * @param {Server} server - Server on which the script is to be run\n * returns {boolean} indicating whether or not the workerScript was successfully added\n */\nfunction createAndAddWorkerScript(\n player: IPlayer,\n runningScriptObj: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): boolean {\n // Update server's ram usage\n let threads = 1;\n if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) {\n threads = runningScriptObj.threads;\n } else {\n runningScriptObj.threads = 1;\n }\n const oneRamUsage = getRamUsageFromRunningScript(runningScriptObj);\n const ramUsage = roundToTwo(oneRamUsage * threads);\n const ramAvailable = server.maxRam - server.ramUsed;\n if (ramUsage > ramAvailable + 0.001) {\n dialogBoxCreate(\n `Not enough RAM to run script ${runningScriptObj.filename} with args ` +\n `${arrayToString(runningScriptObj.args)}. This likely occurred because you re-loaded ` +\n `the game and the script's RAM usage increased (either because of an update to the game or ` +\n `your changes to the script.)`,\n );\n return false;\n }\n\n server.updateRamUsed(roundToTwo(server.ramUsed + ramUsage), Player);\n\n // Get the pid\n const pid = generateNextPid();\n if (pid === -1) {\n throw new Error(\n `Failed to start script because could not find available PID. This is most ` +\n `because you have too many scripts running.`,\n );\n }\n\n // Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying\n // RunningScript's PID as well\n const workerScript = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);\n workerScript.ramUsage = oneRamUsage;\n\n // Add the WorkerScript to the global pool\n workerScripts.set(pid, workerScript);\n WorkerScriptStartStopEventEmitter.emit();\n\n // Start the script's execution\n let scriptExecution: Promise | null = null; // Script's resulting promise\n if (workerScript.name.endsWith(\".js\")) {\n scriptExecution = startNetscript2Script(player, workerScript);\n } else {\n scriptExecution = startNetscript1Script(workerScript);\n if (!(scriptExecution instanceof Promise)) {\n return false;\n }\n }\n\n // Once the code finishes (either resolved or rejected, doesnt matter), set its\n // running status to false\n scriptExecution\n .then(function () {\n workerScript.running = false;\n workerScript.env.stopFlag = true;\n // On natural death, the earnings are transfered to the parent if it still exists.\n if (parent !== undefined) {\n if (parent.running) {\n parent.scriptRef.onlineExpGained += runningScriptObj.onlineExpGained;\n parent.scriptRef.onlineMoneyMade += runningScriptObj.onlineMoneyMade;\n }\n }\n\n killWorkerScript(workerScript);\n workerScript.log(\"\", () => \"Script finished running\");\n })\n .catch(function (e) {\n if (e instanceof Error) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\"Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: \" + e.toString());\n return;\n } else if (e instanceof ScriptDeath) {\n if (helpers.isScriptErrorMessage(workerScript.errorMessage)) {\n const errorTextArray = workerScript.errorMessage.split(\"|DELIMITER|\");\n if (errorTextArray.length != 4) {\n console.error(\"ERROR: Something wrong with Error text in evaluator...\");\n console.error(\"Error text: \" + workerScript.errorMessage);\n return;\n }\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n\n let msg = `RUNTIME ERROR ${scriptName}@${hostname} (PID - ${workerScript.pid}) `;\n if (workerScript.args.length > 0) {\n msg += `Args: ${arrayToString(workerScript.args)} `;\n }\n msg += \" \";\n msg += errorMsg;\n\n dialogBoxCreate(msg);\n workerScript.log(\"\", () => \"Script crashed with runtime error\");\n } else {\n workerScript.log(\"\", () => \"Script killed\");\n return; // Already killed, so stop here\n }\n } else if (helpers.isScriptErrorMessage(e)) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\n \"ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: \" +\n e.toString(),\n );\n return;\n } else {\n dialogBoxCreate(\"An unknown script died for an unknown reason. This is a bug please contact game dev\");\n console.error(e);\n }\n\n killWorkerScript(workerScript);\n });\n\n return true;\n}\n\n/**\n * Updates the online running time stat of all running scripts\n */\nexport function updateOnlineScriptTimes(numCycles = 1): void {\n const time = (numCycles * CONSTANTS._idleSpeed) / 1000; //seconds\n for (const ws of workerScripts.values()) {\n ws.scriptRef.onlineRunningTime += time;\n }\n}\n\n/**\n * Called when the game is loaded. Loads all running scripts (from all servers)\n * into worker scripts so that they will start running\n */\nexport function loadAllRunningScripts(player: IPlayer): void {\n const skipScriptLoad = window.location.href.toLowerCase().indexOf(\"?noscripts\") !== -1;\n if (skipScriptLoad) {\n Terminal.warn(\"Skipped loading player scripts during startup\");\n console.info(\"Skipping the load of any scripts during startup\");\n }\n for (const server of GetAllServers()) {\n // Reset each server's RAM usage to 0\n server.ramUsed = 0;\n\n // Reset modules on all scripts\n for (let i = 0; i < server.scripts.length; ++i) {\n server.scripts[i].markUpdated();\n }\n\n if (skipScriptLoad) {\n // Start game with no scripts\n server.runningScripts.length = 0;\n } else {\n for (let j = 0; j < server.runningScripts.length; ++j) {\n const fileName = server.runningScripts[j].filename;\n createAndAddWorkerScript(player, server.runningScripts[j], server);\n\n if (!server.runningScripts[j]) {\n // createAndAddWorkerScript can modify the server.runningScripts array if a script is invalid\n console.error(`createAndAddWorkerScript removed ${fileName} from ${server}`);\n continue;\n }\n\n // Offline production\n scriptCalculateOfflineProduction(server.runningScripts[j]);\n }\n }\n }\n}\n\n/**\n * Run a script from inside another script (run(), exec(), spawn(), etc.)\n */\nexport function runScriptFromScript(\n player: IPlayer,\n caller: string,\n server: BaseServer,\n scriptname: string,\n args: ScriptArg[],\n workerScript: WorkerScript,\n threads = 1,\n): number {\n // Sanitize arguments\n if (!(workerScript instanceof WorkerScript)) {\n return 0;\n }\n\n if (typeof scriptname !== \"string\" || !Array.isArray(args)) {\n workerScript.log(caller, () => `Invalid arguments: scriptname='${scriptname} args='${args}'`);\n console.error(`runScriptFromScript() failed due to invalid arguments`);\n return 0;\n }\n\n args.forEach((arg, i) => {\n if (typeof arg !== \"string\" && typeof arg !== \"number\" && typeof arg !== \"boolean\")\n throw new Error(\n \"Only strings, numbers, and booleans can be passed as arguments to other scripts.\\n\" +\n `${scriptname} argument index ${i} is of type ${typeof arg} and value ${JSON.stringify(arg)}`,\n );\n });\n\n // Check if the script is already running\n const runningScriptObj = server.getRunningScript(scriptname, args);\n if (runningScriptObj != null) {\n workerScript.log(caller, () => `'${scriptname}' is already running on '${server.hostname}'`);\n return 0;\n }\n\n // 'null/undefined' arguments are not allowed\n for (let i = 0; i < args.length; ++i) {\n if (args[i] == null) {\n workerScript.log(caller, () => \"Cannot execute a script with null/undefined as an argument\");\n return 0;\n }\n }\n\n // Check if the script exists and if it does run it\n for (let i = 0; i < server.scripts.length; ++i) {\n if (!areFilesEqual(server.scripts[i].filename, scriptname)) continue;\n // Check for admin rights and that there is enough RAM availble to run\n const script = server.scripts[i];\n let ramUsage = script.ramUsage;\n threads = Math.floor(Number(threads));\n if (threads === 0) {\n return 0;\n }\n ramUsage = ramUsage * threads;\n const ramAvailable = server.maxRam - server.ramUsed;\n\n if (server.hasAdminRights == false) {\n workerScript.log(caller, () => `You do not have root access on '${server.hostname}'`);\n return 0;\n } else if (ramUsage > ramAvailable + 0.001) {\n workerScript.log(\n caller,\n () =>\n `Cannot run script '${scriptname}' (t=${threads}) on '${server.hostname}' because there is not enough available RAM!`,\n );\n return 0;\n }\n // Able to run script\n workerScript.log(\n caller,\n () => `'${scriptname}' on '${server.hostname}' with ${threads} threads and args: ${arrayToString(args)}.`,\n );\n const runningScriptObj = new RunningScript(script, args);\n runningScriptObj.threads = threads;\n runningScriptObj.server = server.hostname;\n\n return startWorkerScript(player, runningScriptObj, server, workerScript);\n }\n\n workerScript.log(caller, () => `Could not find script '${scriptname}' on '${server.hostname}'`);\n return 0;\n}\n","import { FactionNames } from \"../../Faction/data/FactionNames\";\n\nexport const GangConstants: {\n GangRespectToReputationRatio: number;\n MaximumGangMembers: number;\n CyclesPerTerritoryAndPowerUpdate: number;\n AscensionMultiplierRatio: number;\n Names: string[];\n GangKarmaRequirement: number;\n} = {\n // Respect is divided by this to get rep gain\n GangRespectToReputationRatio: 75,\n MaximumGangMembers: 12,\n CyclesPerTerritoryAndPowerUpdate: 100,\n // Portion of upgrade multiplier that is kept after ascending\n AscensionMultiplierRatio: 0.15,\n // Names of possible Gangs\n Names: [\n FactionNames.SlumSnakes,\n FactionNames.Tetrads,\n FactionNames.TheSyndicate,\n FactionNames.TheDarkArmy,\n FactionNames.SpeakersForTheDead,\n FactionNames.NiteSec,\n FactionNames.TheBlackHand,\n ],\n GangKarmaRequirement: -54000,\n};\n","import { FactionInfo, FactionInfos } from \"./FactionInfo\";\nimport { favorToRep, repToFavor } from \"./formulas/favor\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport class Faction {\n /**\n * Flag signalling whether the player has already received an invitation\n * to this faction\n */\n alreadyInvited = false;\n\n /**\n * Holds names of all augmentations that this Faction offers\n */\n augmentations: string[] = [];\n\n /**\n * Amount of favor the player has with this faction.\n */\n favor = 0;\n\n /**\n * Flag signalling whether player has been banned from this faction\n */\n isBanned = false;\n\n /**\n * Flag signalling whether player is a member of this faction\n */\n isMember = false;\n\n /**\n * Name of faction\n */\n name = \"\";\n\n /**\n * Amount of reputation player has with this faction\n */\n playerReputation = 0;\n\n constructor(name = \"\") {\n this.name = name;\n }\n\n getInfo(): FactionInfo {\n const info = FactionInfos[this.name];\n if (info == null) {\n throw new Error(\n `Missing faction from FactionInfos: ${this.name} this probably means the faction got corrupted somehow`,\n );\n }\n\n return info;\n }\n\n gainFavor(): void {\n if (this.favor == null) {\n this.favor = 0;\n }\n this.favor += this.getFavorGain();\n }\n\n //Returns an array with [How much favor would be gained, how much rep would be left over]\n getFavorGain(): number {\n if (this.favor == null) {\n this.favor = 0;\n }\n const storedRep = Math.max(0, favorToRep(this.favor));\n const totalRep = storedRep + this.playerReputation;\n const newFavor = repToFavor(totalRep);\n return newFavor - this.favor;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Faction\", this);\n }\n\n /**\n * Initiatizes a Faction object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Faction {\n return Generic_fromJSON(Faction, value.data);\n }\n}\n\nReviver.constructors.Faction = Faction;\n","/**\n * Global pool of all active scripts (scripts that are currently running)\n */\nimport { WorkerScript } from \"./WorkerScript\";\n\nexport const workerScripts: Map = new Map();\n","import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { Export } from \"./Export\";\n\ninterface IConstructorParams {\n name?: string;\n}\n\nexport class Material {\n // Name of material\n name = \"InitName\";\n\n // Amount of material owned\n qty = 0;\n\n // Material's \"quality\". Unbounded\n qlt = 0;\n\n // How much demand the Material has in the market, and the range of possible\n // values for this \"demand\"\n dmd = 0;\n dmdR: number[] = [0, 0];\n\n // How much competition there is for this Material in the market, and the range\n // of possible values for this \"competition\"\n cmp = 0;\n cmpR: number[] = [0, 0];\n\n // Maximum volatility of this Materials stats\n mv = 0;\n\n // Markup. Determines how high of a price you can charge on the material\n // compared to the market price without suffering loss in # of sales\n // Quality is divided by this to determine markup limits\n // e,g, If mku is 10 and quality is 100 then you can markup prices by 100/10 = 10\n mku = 0;\n\n // How much of this material is being bought, sold, imported and produced every second\n buy = 0;\n sll = 0;\n prd = 0;\n imp = 0;\n\n // Exports of this material to another warehouse/industry\n exp: Export[] = [];\n\n // Total amount of this material exported in the last cycle\n totalExp = 0;\n\n // Cost / sec to buy this material. AKA Market Price\n bCost = 0;\n\n // Cost / sec to sell this material\n sCost: string | number = 0;\n\n // Flags to keep track of whether production and/or sale of this material is limited\n // [Whether production/sale is limited, limit amount]\n prdman: [boolean, number] = [false, 0]; // Production\n sllman: [boolean, string | number] = [false, 0]; // Sale\n\n // Flags that signal whether automatic sale pricing through Market TA is enabled\n marketTa1 = false;\n marketTa2 = false;\n marketTa2Price = 0;\n\n // Determines the maximum amount of this material that can be sold in one market cycle\n maxsll = 0;\n\n constructor(params: IConstructorParams = {}) {\n if (params.name) {\n this.name = params.name;\n }\n this.init();\n }\n\n getMarkupLimit(): number {\n return this.qlt / this.mku;\n }\n\n init(): void {\n switch (this.name) {\n case \"Water\":\n this.dmd = 75;\n this.dmdR = [65, 85];\n this.cmp = 50;\n this.cmpR = [40, 60];\n this.bCost = 1500;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Energy\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 2000;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Food\":\n this.dmd = 80;\n this.dmdR = [70, 90];\n this.cmp = 60;\n this.cmpR = [35, 85];\n this.bCost = 5000;\n this.mv = 1;\n this.mku = 3;\n break;\n case \"Plants\":\n this.dmd = 70;\n this.dmdR = [20, 90];\n this.cmp = 50;\n this.cmpR = [30, 70];\n this.bCost = 3000;\n this.mv = 0.6;\n this.mku = 3.75;\n break;\n case \"Metal\":\n this.dmd = 80;\n this.dmdR = [75, 85];\n this.cmp = 70;\n this.cmpR = [60, 80];\n this.bCost = 2650;\n this.mv = 1;\n this.mku = 6;\n break;\n case \"Hardware\":\n this.dmd = 85;\n this.dmdR = [80, 90];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 8e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"Chemicals\":\n this.dmd = 55;\n this.dmdR = [40, 70];\n this.cmp = 60;\n this.cmpR = [40, 80];\n this.bCost = 9e3;\n this.mv = 1.2;\n this.mku = 2;\n break;\n case \"Real Estate\":\n this.dmd = 50;\n this.dmdR = [5, 99];\n this.cmp = 50;\n this.cmpR = [25, 75];\n this.bCost = 80e3;\n this.mv = 1.5; //Less mv bc its processed twice\n this.mku = 1.5;\n break;\n case \"Drugs\":\n this.dmd = 60;\n this.dmdR = [45, 75];\n this.cmp = 70;\n this.cmpR = [40, 99];\n this.bCost = 40e3;\n this.mv = 1.6;\n this.mku = 1;\n break;\n case \"Robots\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 75e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"AI Cores\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 15e3;\n this.mv = 0.8; //Less mv bc its processed twice\n this.mku = 0.5;\n break;\n case \"Scientific Research\":\n case \"InitName\":\n break;\n default:\n console.error(`Invalid material type in init(): ${this.name}`);\n break;\n }\n }\n\n // Process change in demand, competition, and buy cost of this material\n processMarket(): void {\n // The price will change in accordance with demand and competition.\n // e.g. If demand goes up, then so does price. If competition goes up, price goes down\n const priceVolatility: number = (Math.random() * this.mv) / 300;\n const priceChange: number = 1 + priceVolatility;\n\n //This 1st random check determines whether competition increases or decreases\n const compVolatility: number = (Math.random() * this.mv) / 100;\n const compChange: number = 1 + compVolatility;\n if (Math.random() < 0.5) {\n this.cmp *= compChange;\n if (this.cmp > this.cmpR[1]) {\n this.cmp = this.cmpR[1];\n }\n this.bCost *= 1 / priceChange; // Competition increases, so price goes down\n } else {\n this.cmp *= 1 / compChange;\n if (this.cmp < this.cmpR[0]) {\n this.cmp = this.cmpR[0];\n }\n this.bCost *= priceChange; // Competition decreases, so price goes up\n }\n\n // This 2nd random check determines whether demand increases or decreases\n const dmdVolatility: number = (Math.random() * this.mv) / 100;\n const dmdChange: number = 1 + dmdVolatility;\n if (Math.random() < 0.5) {\n this.dmd *= dmdChange;\n if (this.dmd > this.dmdR[1]) {\n this.dmd = this.dmdR[1];\n }\n this.bCost *= priceChange; // Demand increases, so price goes up\n } else {\n this.dmd *= 1 / dmdChange;\n if (this.dmd < this.dmdR[0]) {\n this.dmd = this.dmdR[0];\n }\n this.bCost *= 1 / priceChange;\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Material\", this);\n }\n\n // Initiatizes a Material object from a JSON save state.\n static fromJSON(value: IReviverValue): Material {\n return Generic_fromJSON(Material, value.data);\n }\n}\n\nReviver.constructors.Material = Material;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { GangMember } from \"../GangMember\";\nimport { GangMemberTask } from \"../GangMemberTask\";\n\nexport interface FormulaGang {\n respect: number;\n territory: number;\n wantedLevel: number;\n}\n\nexport function calculateWantedPenalty(gang: FormulaGang): number {\n return gang.respect / (gang.respect + gang.wantedLevel);\n}\n\nexport function calculateRespectGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseRespect === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 4 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.respect) / 100);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n return Math.pow(11 * task.baseRespect * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateWantedLevelGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseWanted === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 3.5 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.wanted) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n if (task.baseWanted < 0) {\n return 0.4 * task.baseWanted * statWeight * territoryMult;\n }\n const calc = (7 * task.baseWanted) / Math.pow(3 * statWeight * territoryMult, 0.8);\n\n // Put an arbitrary cap on this to prevent wanted level from rising too fast if the\n // denominator is very small. Might want to rethink formula later\n return Math.min(100, calc);\n}\n\nexport function calculateMoneyGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseMoney === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n\n statWeight -= 3.2 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.money) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n return Math.pow(5 * task.baseMoney * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateAscensionPointsGain(exp: number): number {\n return Math.max(exp - 1000, 0);\n}\n\nexport function calculateAscensionMult(points: number): number {\n return Math.max(Math.pow(points / 2000, 0.5), 1);\n}\n","import { Paper } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { use } from \"../../ui/Context\";\nimport { ProgressBar } from \"../../ui/React/Progress\";\n\ninterface IProps {\n millis: number;\n onExpire: () => void;\n noPaper?: boolean;\n}\n\nexport function GameTimer(props: IProps): React.ReactElement {\n const player = use.Player();\n const [v, setV] = useState(100);\n const totalMillis = (player.hasAugmentation(AugmentationNames.WKSharmonizer, true) ? 1.3 : 1) * props.millis;\n\n const tick = 200;\n useEffect(() => {\n const intervalId = setInterval(() => {\n setV((old) => {\n if (old <= 0) props.onExpire();\n return old - (tick / totalMillis) * 100;\n });\n }, tick);\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n\n // https://stackoverflow.com/questions/55593367/disable-material-uis-linearprogress-animation\n // TODO(hydroflame): there's like a bug where it triggers the end before the\n // bar physically reaches the end\n return props.noPaper ? (\n \n ) : (\n \n \n \n );\n}\n","import { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IBladeburner } from \"./IBladeburner\";\nimport { IActionIdentifier } from \"./IActionIdentifier\";\nimport { ActionIdentifier } from \"./ActionIdentifier\";\nimport { ActionTypes } from \"./data/ActionTypes\";\nimport { Growths } from \"./data/Growths\";\nimport { BlackOperations } from \"./BlackOperations\";\nimport { BlackOperation } from \"./BlackOperation\";\nimport { Operation } from \"./Operation\";\nimport { Contract } from \"./Contract\";\nimport { GeneralActions } from \"./GeneralActions\";\nimport { formatNumber } from \"../utils/StringHelperFunctions\";\nimport { Skills } from \"./Skills\";\nimport { Skill } from \"./Skill\";\nimport { City } from \"./City\";\nimport { IAction } from \"./IAction\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { createTaskTracker, ITaskTracker } from \"../PersonObjects/ITaskTracker\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { IRouter } from \"../ui/Router\";\nimport { ConsoleHelpText } from \"./data/Help\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { addOffset } from \"../utils/helpers/addOffset\";\nimport { Faction } from \"../Faction/Faction\";\nimport { Factions, factionExists } from \"../Faction/Factions\";\nimport { calculateHospitalizationCost } from \"../Hospital/Hospital\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { getTimestamp } from \"../utils/helpers/getTimestamp\";\nimport { joinFaction } from \"../Faction/FactionHelpers\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { KEY } from \"../utils/helpers/keyCodes\";\nimport { isSleeveInfiltrateWork } from \"../PersonObjects/Sleeve/Work/SleeveInfiltrateWork\";\nimport { isSleeveSupportWork } from \"../PersonObjects/Sleeve/Work/SleeveSupportWork\";\n\ninterface BlackOpsAttempt {\n error?: string;\n isAvailable?: boolean;\n action?: BlackOperation;\n}\n\nexport class Bladeburner implements IBladeburner {\n numHosp = 0;\n moneyLost = 0;\n rank = 0;\n maxRank = 0;\n\n skillPoints = 0;\n totalSkillPoints = 0;\n\n teamSize = 0;\n sleeveSize = 0;\n teamLost = 0;\n hpLost = 0;\n\n storedCycles = 0;\n\n randomEventCounter: number = getRandomInt(240, 600);\n\n actionTimeToComplete = 0;\n actionTimeCurrent = 0;\n actionTimeOverflow = 0;\n\n action: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n\n cities: Record = {};\n city: string = BladeburnerConstants.CityNames[2];\n skills: Record = {};\n skillMultipliers: Record = {};\n staminaBonus = 0;\n maxStamina = 0;\n stamina = 0;\n contracts: Record = {};\n operations: Record = {};\n blackops: Record = {};\n logging = {\n general: true,\n contracts: true,\n ops: true,\n blackops: true,\n events: true,\n };\n automateEnabled = false;\n automateActionHigh: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshHigh = 0;\n automateActionLow: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshLow = 0;\n consoleHistory: string[] = [];\n consoleLogs: string[] = [\"Bladeburner Console\", \"Type 'help' to see console commands\"];\n\n constructor(player?: IPlayer) {\n for (let i = 0; i < BladeburnerConstants.CityNames.length; ++i) {\n this.cities[BladeburnerConstants.CityNames[i]] = new City(BladeburnerConstants.CityNames[i]);\n }\n\n this.updateSkillMultipliers(); // Calls resetSkillMultipliers()\n\n // Max Stamina is based on stats and Bladeburner-specific bonuses\n if (player) this.calculateMaxStamina(player);\n this.stamina = this.maxStamina;\n this.create();\n }\n\n getCurrentCity(): City {\n const city = this.cities[this.city];\n if (!(city instanceof City)) {\n throw new Error(\"Bladeburner.getCurrentCity() did not properly return a City object\");\n }\n return city;\n }\n\n calculateStaminaPenalty(): number {\n return Math.min(1, this.stamina / (0.5 * this.maxStamina));\n }\n\n canAttemptBlackOp(actionId: IActionIdentifier): BlackOpsAttempt {\n // Safety measure - don't repeat BlackOps that are already done\n if (this.blackops[actionId.name] != null) {\n return { error: \"Tried to start a Black Operation that had already been completed\" };\n }\n\n const action = this.getActionObject(actionId);\n if (!(action instanceof BlackOperation)) throw new Error(`Action should be BlackOperation but isn't`);\n if (action == null) throw new Error(\"Failed to get BlackOperation object for: \" + actionId.name);\n\n if (action.reqdRank > this.rank) {\n return { error: \"Tried to start a Black Operation without the rank requirement\" };\n }\n\n // Can't start a BlackOp if you haven't done the one before it\n const blackops = [];\n for (const nm of Object.keys(BlackOperations)) {\n if (BlackOperations.hasOwnProperty(nm)) {\n blackops.push(nm);\n }\n }\n blackops.sort(function (a, b) {\n return BlackOperations[a].reqdRank - BlackOperations[b].reqdRank; // Sort black ops in intended order\n });\n\n const i = blackops.indexOf(actionId.name);\n if (i === -1) {\n return { error: `Invalid Black Op: '${name}'` };\n }\n\n if (i > 0 && this.blackops[blackops[i - 1]] == null) {\n return { error: `Preceding Black Op must be completed before starting '${actionId.name}'.` };\n }\n\n return { isAvailable: true, action };\n }\n\n startAction(person: IPerson, actionId: IActionIdentifier): void {\n if (actionId == null) return;\n this.action = actionId;\n this.actionTimeCurrent = 0;\n switch (actionId.type) {\n case ActionTypes[\"Idle\"]:\n this.actionTimeToComplete = 0;\n break;\n case ActionTypes[\"Contract\"]:\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Contract Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n case ActionTypes[\"Operation\"]: {\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n if (actionId.name === \"Raid\" && this.getCurrentCity().comms === 0) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const testBlackOp = this.canAttemptBlackOp(actionId);\n if (!testBlackOp.isAvailable) {\n this.resetAction();\n this.log(`Error: ${testBlackOp.error}`);\n break;\n }\n if (testBlackOp.action === undefined) {\n throw new Error(\"action should not be null\");\n }\n this.actionTimeToComplete = testBlackOp.action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]:\n this.actionTimeToComplete = this.getRecruitmentTime(person);\n break;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]:\n this.actionTimeToComplete = 30;\n break;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n this.actionTimeToComplete = 60;\n break;\n default:\n throw new Error(\"Invalid Action Type in startAction(Bladeburner,player, ): \" + actionId.type);\n }\n }\n\n upgradeSkill(skill: Skill, count = 1): void {\n // This does NOT handle deduction of skill points\n const skillName = skill.name;\n if (this.skills[skillName]) {\n this.skills[skillName] += count;\n } else {\n this.skills[skillName] = count;\n }\n if (isNaN(this.skills[skillName]) || this.skills[skillName] < 0) {\n throw new Error(\"Level of Skill \" + skillName + \" is invalid: \" + this.skills[skillName]);\n }\n this.updateSkillMultipliers();\n }\n\n executeConsoleCommands(player: IPlayer, commands: string): void {\n try {\n // Console History\n if (this.consoleHistory[this.consoleHistory.length - 1] != commands) {\n this.consoleHistory.push(commands);\n if (this.consoleHistory.length > 50) {\n this.consoleHistory.splice(0, 1);\n }\n }\n\n const arrayOfCommands = commands.split(\";\");\n for (let i = 0; i < arrayOfCommands.length; ++i) {\n this.executeConsoleCommand(player, arrayOfCommands[i]);\n }\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n postToConsole(input: string, saveToLogs = true): void {\n const MaxConsoleEntries = 100;\n if (saveToLogs) {\n this.consoleLogs.push(input);\n if (this.consoleLogs.length > MaxConsoleEntries) {\n this.consoleLogs.shift();\n }\n }\n }\n\n log(input: string): void {\n // Adds a timestamp and then just calls postToConsole\n this.postToConsole(`[${getTimestamp()}] ${input}`);\n }\n\n resetAction(): void {\n this.action = new ActionIdentifier({ type: ActionTypes.Idle });\n this.actionTimeCurrent = 0;\n this.actionTimeToComplete = 0;\n }\n\n clearConsole(): void {\n this.consoleLogs.length = 0;\n }\n\n prestige(): void {\n this.resetAction();\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n }\n }\n\n storeCycles(numCycles = 0): void {\n this.storedCycles += numCycles;\n }\n\n // working on\n getActionIdFromTypeAndName(type = \"\", name = \"\"): IActionIdentifier | null {\n if (type === \"\" || name === \"\") {\n return null;\n }\n const action = new ActionIdentifier();\n const convertedType = type.toLowerCase().trim();\n const convertedName = name.toLowerCase().trim();\n switch (convertedType) {\n case \"contract\":\n case \"contracts\":\n case \"contr\":\n action.type = ActionTypes[\"Contract\"];\n if (this.contracts.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"operation\":\n case \"operations\":\n case \"op\":\n case \"ops\":\n action.type = ActionTypes[\"Operation\"];\n if (this.operations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"blackoperation\":\n case \"black operation\":\n case \"black operations\":\n case \"black op\":\n case \"black ops\":\n case \"blackop\":\n case \"blackops\":\n action.type = ActionTypes[\"BlackOp\"];\n if (BlackOperations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"general\":\n case \"general action\":\n case \"gen\":\n break;\n default:\n return null;\n }\n\n if (convertedType.startsWith(\"gen\")) {\n switch (convertedName) {\n case \"training\":\n action.type = ActionTypes[\"Training\"];\n action.name = \"Training\";\n break;\n case \"recruitment\":\n case \"recruit\":\n action.type = ActionTypes[\"Recruitment\"];\n action.name = \"Recruitment\";\n break;\n case \"field analysis\":\n case \"fieldanalysis\":\n action.type = ActionTypes[\"Field Analysis\"];\n action.name = \"Field Analysis\";\n break;\n case \"diplomacy\":\n action.type = ActionTypes[\"Diplomacy\"];\n action.name = \"Diplomacy\";\n break;\n case \"hyperbolic regeneration chamber\":\n action.type = ActionTypes[\"Hyperbolic Regeneration Chamber\"];\n action.name = \"Hyperbolic Regeneration Chamber\";\n break;\n case \"incite violence\":\n action.type = ActionTypes[\"Incite Violence\"];\n action.name = \"Incite Violence\";\n break;\n default:\n return null;\n }\n return action;\n }\n\n return null;\n }\n\n executeStartConsoleCommand(player: IPlayer, args: string[]): void {\n if (args.length !== 3) {\n this.postToConsole(\"Invalid usage of 'start' console command: start [type] [name]\");\n this.postToConsole(\"Use 'help start' for more info\");\n return;\n }\n const name = args[2];\n switch (args[1].toLowerCase()) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[name] != null) {\n this.action.type = ActionTypes[name];\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + args[2]);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[name] != null) {\n this.action.type = ActionTypes.Contract;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + args[2]);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[name] != null) {\n this.action.type = ActionTypes.Operation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + args[2]);\n }\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n if (BlackOperations[name] != null) {\n this.action.type = ActionTypes.BlackOperation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid BlackOp name specified: \" + args[2]);\n }\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[1]);\n this.postToConsole(\"Examples of valid action/event identifiers are: [general, contract, op, blackop]\");\n break;\n }\n }\n\n executeSkillConsoleCommand(args: string[]): void {\n switch (args.length) {\n case 1: {\n // Display Skill Help Command\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n case 2: {\n if (args[1].toLowerCase() === \"list\") {\n // List all skills and their level\n this.postToConsole(\"Skills: \");\n const skillNames = Object.keys(Skills);\n for (let i = 0; i < skillNames.length; ++i) {\n const skill = Skills[skillNames[i]];\n let level = 0;\n if (this.skills[skill.name] != null) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level, 0));\n }\n this.postToConsole(\" \");\n this.postToConsole(\"Effects: \");\n const multKeys = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multKeys.length; ++i) {\n const mult = this.skillMultipliers[multKeys[i]];\n if (mult && mult !== 1) {\n const mults = formatNumber(mult, 3);\n switch (multKeys[i]) {\n case \"successChanceAll\":\n this.postToConsole(\"Total Success Chance: x\" + mults);\n break;\n case \"successChanceStealth\":\n this.postToConsole(\"Stealth Success Chance: x\" + mults);\n break;\n case \"successChanceKill\":\n this.postToConsole(\"Retirement Success Chance: x\" + mults);\n break;\n case \"successChanceContract\":\n this.postToConsole(\"Contract Success Chance: x\" + mults);\n break;\n case \"successChanceOperation\":\n this.postToConsole(\"Operation Success Chance: x\" + mults);\n break;\n case \"successChanceEstimate\":\n this.postToConsole(\"Synthoid Data Estimate: x\" + mults);\n break;\n case \"actionTime\":\n this.postToConsole(\"Action Time: x\" + mults);\n break;\n case \"effHack\":\n this.postToConsole(\"Hacking Skill: x\" + mults);\n break;\n case \"effStr\":\n this.postToConsole(\"Strength: x\" + mults);\n break;\n case \"effDef\":\n this.postToConsole(\"Defense: x\" + mults);\n break;\n case \"effDex\":\n this.postToConsole(\"Dexterity: x\" + mults);\n break;\n case \"effAgi\":\n this.postToConsole(\"Agility: x\" + mults);\n break;\n case \"effCha\":\n this.postToConsole(\"Charisma: x\" + mults);\n break;\n case \"effInt\":\n this.postToConsole(\"Intelligence: x\" + mults);\n break;\n case \"stamina\":\n this.postToConsole(\"Stamina: x\" + mults);\n break;\n default:\n console.warn(`Unrecognized SkillMult Key: ${multKeys[i]}`);\n break;\n }\n }\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n case 3: {\n const skillName = args[2];\n const skill = Skills[skillName];\n if (skill == null || !(skill instanceof Skill)) {\n this.postToConsole(\"Invalid skill name (Note that it is case-sensitive): \" + skillName);\n break;\n }\n if (args[1].toLowerCase() === \"list\") {\n let level = 0;\n if (this.skills[skill.name] !== undefined) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level));\n } else if (args[1].toLowerCase() === \"level\") {\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const pointCost = skill.calculateCost(currentLevel);\n if (skill.maxLvl !== 0 && currentLevel >= skill.maxLvl) {\n this.postToConsole(`This skill ${skill.name} is already at max level (${currentLevel}/${skill.maxLvl}).`);\n } else if (this.skillPoints >= pointCost) {\n this.skillPoints -= pointCost;\n this.upgradeSkill(skill);\n this.log(skill.name + \" upgraded to Level \" + this.skills[skillName]);\n } else {\n this.postToConsole(\n \"You do not have enough Skill Points to upgrade this. You need \" + formatNumber(pointCost, 0),\n );\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n default: {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n }\n }\n\n executeLogConsoleCommand(args: string[]): void {\n if (args.length < 3) {\n this.postToConsole(\"Invalid usage of log command: log [enable/disable] [action/event]\");\n this.postToConsole(\"Use 'help log' for more details and examples\");\n return;\n }\n\n let flag = true;\n if (args[1].toLowerCase().includes(\"d\")) {\n flag = false;\n } // d for disable\n\n switch (args[2].toLowerCase()) {\n case \"general\":\n case \"gen\":\n this.logging.general = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for general actions\");\n break;\n case \"contract\":\n case \"contracts\":\n this.logging.contracts = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Contracts\");\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n this.logging.ops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Operations\");\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n this.logging.blackops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for BlackOps\");\n break;\n case \"event\":\n case \"events\":\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for events\");\n break;\n case \"all\":\n this.logging.general = flag;\n this.logging.contracts = flag;\n this.logging.ops = flag;\n this.logging.blackops = flag;\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for everything\");\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[2]);\n this.postToConsole(\n \"Examples of valid action/event identifiers are: [general, contracts, ops, blackops, events]\",\n );\n break;\n }\n }\n\n executeHelpConsoleCommand(args: string[]): void {\n if (args.length === 1) {\n for (const line of ConsoleHelpText.helpList) {\n this.postToConsole(line);\n }\n } else {\n for (let i = 1; i < args.length; ++i) {\n if (!(args[i] in ConsoleHelpText)) continue;\n const helpText = ConsoleHelpText[args[i]];\n for (const line of helpText) {\n this.postToConsole(line);\n }\n }\n }\n }\n\n executeAutomateConsoleCommand(args: string[]): void {\n if (args.length !== 2 && args.length !== 4) {\n this.postToConsole(\n \"Invalid use of 'automate' command: automate [var] [val] [hi/low]. Use 'help automate' for more info\",\n );\n return;\n }\n\n // Enable/Disable\n if (args.length === 2) {\n const flag = args[1];\n if (flag.toLowerCase() === \"status\") {\n this.postToConsole(\"Automation: \" + (this.automateEnabled ? \"enabled\" : \"disabled\"));\n this.postToConsole(\n \"When your stamina drops to \" +\n formatNumber(this.automateThreshLow, 0) +\n \", you will automatically switch to \" +\n this.automateActionLow.name +\n \". When your stamina recovers to \" +\n formatNumber(this.automateThreshHigh, 0) +\n \", you will automatically \" +\n \"switch to \" +\n this.automateActionHigh.name +\n \".\",\n );\n } else if (flag.toLowerCase().includes(\"en\")) {\n if (\n !(this.automateActionLow instanceof ActionIdentifier) ||\n !(this.automateActionHigh instanceof ActionIdentifier)\n ) {\n return this.log(\"Failed to enable automation. Actions were not set\");\n }\n this.automateEnabled = true;\n this.log(\"Bladeburner automation enabled\");\n } else if (flag.toLowerCase().includes(\"d\")) {\n this.automateEnabled = false;\n this.log(\"Bladeburner automation disabled\");\n } else {\n this.log(\"Invalid argument for 'automate' console command: \" + args[1]);\n }\n return;\n }\n\n // Set variables\n if (args.length === 4) {\n const variable = args[1].toLowerCase(); // allows Action Type to be with or without capitalisation.\n const val = args[2];\n\n let highLow = false; // True for high, false for low\n if (args[3].toLowerCase().includes(\"hi\")) {\n highLow = true;\n }\n\n switch (variable) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes[val],\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + val);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Contract,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + val);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Operation,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + val);\n }\n break;\n case \"stamina\":\n if (isNaN(parseFloat(val))) {\n this.postToConsole(\"Invalid value specified for stamina threshold (must be numeric): \" + val);\n } else {\n if (highLow) {\n this.automateThreshHigh = Number(val);\n } else {\n this.automateThreshLow = Number(val);\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") stamina threshold set to \" + val);\n }\n break;\n default:\n break;\n }\n\n return;\n }\n }\n\n parseCommandArguments(command: string): string[] {\n /**\n * Returns an array with command and its arguments in each index.\n * e.g. skill \"blade's intuition\" foo returns [skill, blade's intuition, foo]\n * The input to the fn will be trimmed and will have all whitespace replaced w/ a single space\n */\n const args = [];\n let start = 0;\n let i = 0;\n while (i < command.length) {\n const c = command.charAt(i);\n if (c === '\"' || c === \"'\") {\n // Double quotes or Single quotes\n const endQuote = command.indexOf(c, i + 1);\n if (endQuote !== -1 && (endQuote === command.length - 1 || command.charAt(endQuote + 1) === KEY.SPACE)) {\n args.push(command.substr(i + 1, endQuote - i - 1));\n if (endQuote === command.length - 1) {\n start = i = endQuote + 1;\n } else {\n start = i = endQuote + 2; // Skip the space\n }\n continue;\n }\n } else if (c === KEY.SPACE) {\n args.push(command.substr(start, i - start));\n start = i + 1;\n }\n ++i;\n }\n if (start !== i) {\n args.push(command.substr(start, i - start));\n }\n return args;\n }\n\n executeConsoleCommand(player: IPlayer, command: string): void {\n command = command.trim();\n command = command.replace(/\\s\\s+/g, \" \"); // Replace all whitespace w/ a single space\n\n const args = this.parseCommandArguments(command);\n if (args.length <= 0) return; // Log an error?\n\n switch (args[0].toLowerCase()) {\n case \"automate\":\n this.executeAutomateConsoleCommand(args);\n break;\n case \"clear\":\n case \"cls\":\n this.clearConsole();\n break;\n case \"help\":\n this.executeHelpConsoleCommand(args);\n break;\n case \"log\":\n this.executeLogConsoleCommand(args);\n break;\n case \"skill\":\n this.executeSkillConsoleCommand(args);\n break;\n case \"start\":\n this.executeStartConsoleCommand(player, args);\n break;\n case \"stop\":\n this.resetAction();\n break;\n default:\n this.postToConsole(\"Invalid console command\");\n break;\n }\n }\n\n triggerMigration(sourceCityName: string): void {\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n const sourceCity = this.cities[sourceCityName];\n if (destCity == null || sourceCity == null) {\n throw new Error(\"Failed to find City with name: \" + destCityName);\n }\n const rand = Math.random();\n let percentage = getRandomInt(3, 15) / 100;\n\n if (rand < 0.05 && sourceCity.comms > 0) {\n // 5% chance for community migration\n percentage *= getRandomInt(2, 4); // Migration increases population change\n --sourceCity.comms;\n ++destCity.comms;\n }\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n }\n\n triggerPotentialMigration(sourceCityName: string, chance: number): void {\n if (chance == null || isNaN(chance)) {\n console.error(\"Invalid 'chance' parameter passed into Bladeburner.triggerPotentialMigration()\");\n }\n if (chance > 1) {\n chance /= 100;\n }\n if (Math.random() < chance) {\n this.triggerMigration(sourceCityName);\n }\n }\n\n randomEvent(): void {\n const chance = Math.random();\n\n // Choose random source/destination city for events\n const sourceCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n const sourceCity = this.cities[sourceCityName];\n if (!(sourceCity instanceof City)) {\n throw new Error(\"sourceCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n\n if (!(sourceCity instanceof City) || !(destCity instanceof City)) {\n throw new Error(\"sourceCity/destCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n if (chance <= 0.05) {\n // New Synthoid Community, 5%\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else if (chance <= 0.1) {\n // Synthoid Community Migration, 5%\n if (sourceCity.comms <= 0) {\n // If no comms in source city, then instead trigger a new Synthoid community event\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else {\n --sourceCity.comms;\n ++destCity.comms;\n\n // Change pop\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a Synthoid community migrated from \" + sourceCityName + \" to some other city\",\n );\n }\n }\n } else if (chance <= 0.3) {\n // New Synthoids (non community), 20%\n const percentage = getRandomInt(8, 24) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n } else if (chance <= 0.5) {\n // Synthoid migration (non community) 20%\n this.triggerMigration(sourceCityName);\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a large number of Synthoids migrated from \" +\n sourceCityName +\n \" to some other city\",\n );\n }\n } else if (chance <= 0.7) {\n // Synthoid Riots (+chaos), 20%\n sourceCity.chaos += 1;\n sourceCity.chaos *= 1 + getRandomInt(5, 20) / 100;\n if (this.logging.events) {\n this.log(\"Tensions between Synthoids and humans lead to riots in \" + sourceCityName + \"! Chaos increased\");\n }\n } else if (chance <= 0.9) {\n // Less Synthoids, 20%\n const percentage = getRandomInt(8, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n }\n // 10% chance of nothing happening\n }\n\n /**\n * Return stat to be gained from Contracts, Operations, and Black Operations\n * @param action(Action obj) - Derived action class\n * @param success(bool) - Whether action was successful\n */\n getActionStats(action: IAction, success: boolean): ITaskTracker {\n const difficulty = action.getDifficulty();\n\n /**\n * Gain multiplier based on difficulty. If it changes then the\n * same variable calculated in completeAction() needs to change too\n */\n const difficultyMult =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n const time = this.actionTimeToComplete;\n const successMult = success ? 1 : 0.5;\n\n const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult;\n const unweightedIntGain = time * BladeburnerConstants.BaseIntGain * successMult * difficultyMult;\n const skillMult = this.skillMultipliers.expGain;\n\n return {\n hack: unweightedGain * action.weights.hack * skillMult,\n str: unweightedGain * action.weights.str * skillMult,\n def: unweightedGain * action.weights.def * skillMult,\n dex: unweightedGain * action.weights.dex * skillMult,\n agi: unweightedGain * action.weights.agi * skillMult,\n cha: unweightedGain * action.weights.cha * skillMult,\n int: unweightedIntGain * action.weights.int * skillMult,\n money: 0,\n };\n }\n\n getDiplomacyEffectiveness(person: IPerson): number {\n // Returns a decimal by which the city's chaos level should be multiplied (e.g. 0.98)\n const CharismaLinearFactor = 1e3;\n const CharismaExponentialFactor = 0.045;\n\n const charismaEff =\n Math.pow(person.skills.charisma, CharismaExponentialFactor) + person.skills.charisma / CharismaLinearFactor;\n return (100 - charismaEff) / 100;\n }\n\n getRecruitmentSuccessChance(person: IPerson): number {\n return Math.pow(person.skills.charisma, 0.45) / (this.teamSize - this.sleeveSize + 1);\n }\n\n getRecruitmentTime(person: IPerson): number {\n const effCharisma = person.skills.charisma * this.skillMultipliers.effCha;\n const charismaFactor = Math.pow(effCharisma, 0.81) + effCharisma / 90;\n return Math.max(10, Math.round(BladeburnerConstants.BaseRecruitmentTimeNeeded - charismaFactor));\n }\n\n sleeveSupport(joining: boolean): void {\n if (joining) {\n this.sleeveSize += 1;\n this.teamSize += 1;\n } else {\n this.sleeveSize -= 1;\n this.teamSize -= 1;\n }\n }\n\n resetSkillMultipliers(): void {\n this.skillMultipliers = {\n successChanceAll: 1,\n successChanceStealth: 1,\n successChanceKill: 1,\n successChanceContract: 1,\n successChanceOperation: 1,\n successChanceEstimate: 1,\n actionTime: 1,\n effHack: 1,\n effStr: 1,\n effDef: 1,\n effDex: 1,\n effAgi: 1,\n effCha: 1,\n effInt: 1,\n stamina: 1,\n money: 1,\n expGain: 1,\n };\n }\n\n updateSkillMultipliers(): void {\n this.resetSkillMultipliers();\n for (const skillName of Object.keys(this.skills)) {\n if (this.skills.hasOwnProperty(skillName)) {\n const skill = Skills[skillName];\n if (skill == null) {\n throw new Error(\"Could not find Skill Object for: \" + skillName);\n }\n const level = this.skills[skillName];\n if (level == null || level <= 0) {\n continue;\n } //Not upgraded\n\n const multiplierNames = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multiplierNames.length; ++i) {\n const multiplierName = multiplierNames[i];\n if (skill.getMultiplier(multiplierName) != null && !isNaN(skill.getMultiplier(multiplierName))) {\n const value = skill.getMultiplier(multiplierName) * level;\n let multiplierValue = 1 + value / 100;\n if (multiplierName === \"actionTime\") {\n multiplierValue = 1 - value / 100;\n }\n this.skillMultipliers[multiplierName] *= multiplierValue;\n }\n }\n }\n }\n }\n\n completeOperation(success: boolean, player: IPlayer): void {\n if (this.action.type !== ActionTypes.Operation) {\n throw new Error(\"completeOperation() called even though current action is not an Operation\");\n }\n const action = this.getActionObject(this.action);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + this.action.name);\n }\n\n // Calculate team losses\n const teamCount = action.teamCount;\n if (teamCount >= 1) {\n let max;\n if (success) {\n max = Math.ceil(teamCount / 2);\n } else {\n max = Math.floor(teamCount);\n }\n const losses = getRandomInt(0, max);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => isSleeveSupportWork(x.currentWork));\n for (let i = 0; i > this.teamSize - this.sleeveSize; i--) {\n const r = Math.floor(Math.random() * sup.length);\n sup[r].takeDamage(sup[r].hp.max);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.ops && losses > 0) {\n this.log(\"Lost \" + formatNumber(losses, 0) + \" team members during this \" + action.name);\n }\n }\n\n const city = this.getCurrentCity();\n switch (action.name) {\n case \"Investigation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.4 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.1);\n }\n break;\n case \"Undercover Operation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.8 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.15);\n }\n break;\n case \"Sting Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.1, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByCount(0.1);\n break;\n case \"Raid\":\n if (success) {\n city.changePopulationByPercentage(-1, {\n changeEstEqually: true,\n nonZero: true,\n });\n --city.comms;\n } else {\n const change = getRandomInt(-10, -5) / 10;\n city.changePopulationByPercentage(change, {\n nonZero: true,\n changeEstEqually: false,\n });\n }\n city.changeChaosByPercentage(getRandomInt(1, 5));\n break;\n case \"Stealth Retirement Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.5, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByPercentage(getRandomInt(-3, -1));\n break;\n case \"Assassination\":\n if (success) {\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n }\n city.changeChaosByPercentage(getRandomInt(-5, 5));\n break;\n default:\n throw new Error(\"Invalid Action name in completeOperation: \" + this.action.name);\n }\n }\n\n getActionObject(actionId: IActionIdentifier): IAction | null {\n /**\n * Given an ActionIdentifier object, returns the corresponding\n * GeneralAction, Contract, Operation, or BlackOperation object\n */\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n return this.contracts[actionId.name];\n case ActionTypes[\"Operation\"]:\n return this.operations[actionId.name];\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return BlackOperations[actionId.name];\n case ActionTypes[\"Training\"]:\n return GeneralActions[\"Training\"];\n case ActionTypes[\"Field Analysis\"]:\n return GeneralActions[\"Field Analysis\"];\n case ActionTypes[\"Recruitment\"]:\n return GeneralActions[\"Recruitment\"];\n case ActionTypes[\"Diplomacy\"]:\n return GeneralActions[\"Diplomacy\"];\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n return GeneralActions[\"Hyperbolic Regeneration Chamber\"];\n case ActionTypes[\"Incite Violence\"]:\n return GeneralActions[\"Incite Violence\"];\n default:\n return null;\n }\n }\n\n completeContract(success: boolean, actionIdent: IActionIdentifier): void {\n if (actionIdent.type !== ActionTypes.Contract) {\n throw new Error(\"completeContract() called even though current action is not a Contract\");\n }\n const city = this.getCurrentCity();\n if (success) {\n switch (actionIdent.name) {\n case \"Tracking\":\n // Increase estimate accuracy by a relatively small amount\n city.improvePopulationEstimateByCount(getRandomInt(100, 1e3));\n break;\n case \"Bounty Hunter\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.02);\n break;\n case \"Retirement\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.04);\n break;\n default:\n throw new Error(\"Invalid Action name in completeContract: \" + actionIdent.name);\n }\n }\n }\n\n completeAction(player: IPlayer, person: IPerson, actionIdent: IActionIdentifier, isPlayer = true): ITaskTracker {\n let retValue = createTaskTracker();\n switch (actionIdent.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]: {\n try {\n const isOperation = actionIdent.type === ActionTypes[\"Operation\"];\n const action = this.getActionObject(actionIdent);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n const rewardMultiplier = Math.pow(action.rewardFac, action.level - 1);\n\n if (isPlayer) {\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n }\n\n // Process Contract/Operation success/failure\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, true);\n ++action.successes;\n --action.count;\n\n // Earn money for contracts\n let moneyGain = 0;\n if (!isOperation) {\n moneyGain = BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * this.skillMultipliers.money;\n retValue.money = moneyGain;\n }\n\n if (isOperation) {\n action.setMaxLevel(BladeburnerConstants.OperationSuccessesPerLevel);\n } else {\n action.setMaxLevel(BladeburnerConstants.ContractSuccessesPerLevel);\n }\n if (action.rankGain) {\n const gain = addOffset(action.rankGain * rewardMultiplier * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, gain);\n if (isOperation && this.logging.ops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank\",\n );\n } else if (!isOperation && this.logging.contracts) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" contract successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank and \" +\n numeralWrapper.formatMoney(moneyGain),\n );\n }\n }\n isOperation ? this.completeOperation(true, player) : this.completeContract(true, actionIdent);\n } else {\n retValue = this.getActionStats(action, false);\n ++action.failures;\n let loss = 0,\n damage = 0;\n if (action.rankLoss) {\n loss = addOffset(action.rankLoss * rewardMultiplier, 10);\n this.changeRank(person, -1 * loss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n this.hpLost += damage;\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n let logLossText = \"\";\n if (loss > 0) {\n logLossText += \"Lost \" + formatNumber(loss, 3) + \" rank. \";\n }\n if (damage > 0) {\n logLossText += \"Took \" + formatNumber(damage, 0) + \" damage.\";\n }\n if (isOperation && this.logging.ops) {\n this.log(`${person.whoAmI()}: ` + action.name + \" failed! \" + logLossText);\n } else if (!isOperation && this.logging.contracts) {\n this.log(`${person.whoAmI()}: ` + action.name + \" contract failed! \" + logLossText);\n }\n isOperation ? this.completeOperation(false, player) : this.completeContract(false, actionIdent);\n }\n if (action.autoLevel) {\n action.level = action.maxLevel;\n } // Autolevel\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const action = this.getActionObject(actionIdent);\n if (action == null || !(action instanceof BlackOperation)) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n\n // Team loss variables\n const teamCount = action.teamCount;\n let teamLossMax;\n\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, true);\n action.count = 0;\n this.blackops[action.name] = true;\n let rankGain = 0;\n if (action.rankGain) {\n rankGain = addOffset(action.rankGain * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, rankGain);\n }\n teamLossMax = Math.ceil(teamCount / 2);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` + action.name + \" successful! Gained \" + formatNumber(rankGain, 1) + \" rank\",\n );\n }\n } else {\n retValue = this.getActionStats(action, false);\n let rankLoss = 0;\n let damage = 0;\n if (action.rankLoss) {\n rankLoss = addOffset(action.rankLoss, 10);\n this.changeRank(person, -1 * rankLoss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n teamLossMax = Math.floor(teamCount);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" failed! Lost \" +\n formatNumber(rankLoss, 1) +\n \" rank and took \" +\n formatNumber(damage, 0) +\n \" damage\",\n );\n }\n }\n\n this.resetAction(); // Stop regardless of success or fail\n\n // Calculate team lossses\n if (teamCount >= 1) {\n const losses = getRandomInt(1, teamLossMax);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => isSleeveSupportWork(x.currentWork));\n for (let i = 0; i > this.teamSize - this.sleeveSize; i--) {\n const r = Math.floor(Math.random() * sup.length);\n sup[r].takeDamage(sup[r].hp.max);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.blackops) {\n this.log(`${person.whoAmI()}: You lost ${formatNumber(losses, 0)} team members during ${action.name}`);\n }\n }\n } catch (e: unknown) {\n exceptionAlert(String(e));\n }\n break;\n }\n case ActionTypes[\"Training\"]: {\n this.stamina -= 0.5 * BladeburnerConstants.BaseStaminaLoss;\n const strExpGain = 30 * person.mults.strength_exp,\n defExpGain = 30 * person.mults.defense_exp,\n dexExpGain = 30 * person.mults.dexterity_exp,\n agiExpGain = 30 * person.mults.agility_exp,\n staminaGain = 0.04 * this.skillMultipliers.stamina;\n retValue.str = strExpGain;\n retValue.def = defExpGain;\n retValue.dex = dexExpGain;\n retValue.agi = agiExpGain;\n this.staminaBonus += staminaGain;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Training completed. Gained: \" +\n formatNumber(strExpGain, 1) +\n \" str exp, \" +\n formatNumber(defExpGain, 1) +\n \" def exp, \" +\n formatNumber(dexExpGain, 1) +\n \" dex exp, \" +\n formatNumber(agiExpGain, 1) +\n \" agi exp, \" +\n formatNumber(staminaGain, 3) +\n \" max stamina\",\n );\n }\n break;\n }\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]: {\n // Does not use stamina. Effectiveness depends on hacking, int, and cha\n let eff =\n 0.04 * Math.pow(person.skills.hacking, 0.3) +\n 0.04 * Math.pow(person.skills.intelligence, 0.9) +\n 0.02 * Math.pow(person.skills.charisma, 0.3);\n eff *= person.mults.bladeburner_analysis;\n if (isNaN(eff) || eff < 0) {\n throw new Error(\"Field Analysis Effectiveness calculated to be NaN or negative\");\n }\n const hackingExpGain = 20 * person.mults.hacking_exp;\n const charismaExpGain = 20 * person.mults.charisma_exp;\n const rankGain = 0.1 * BitNodeMultipliers.BladeburnerRank;\n retValue.hack = hackingExpGain;\n retValue.cha = charismaExpGain;\n retValue.int = BladeburnerConstants.BaseIntGain;\n this.changeRank(person, rankGain);\n this.getCurrentCity().improvePopulationEstimateByPercentage(eff * this.skillMultipliers.successChanceEstimate);\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n `Field analysis completed. Gained ${formatNumber(rankGain, 2)} rank, ` +\n `${formatNumber(hackingExpGain, 1)} hacking exp, and ` +\n `${formatNumber(charismaExpGain, 1)} charisma exp`,\n );\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]: {\n const successChance = this.getRecruitmentSuccessChance(person);\n const recruitTime = this.getRecruitmentTime(person) * 1000;\n if (Math.random() < successChance) {\n const expGain = 2 * BladeburnerConstants.BaseStatGain * recruitTime;\n retValue.cha = expGain;\n ++this.teamSize;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Successfully recruited a team member! Gained \" +\n formatNumber(expGain, 1) +\n \" charisma exp\",\n );\n }\n } else {\n const expGain = BladeburnerConstants.BaseStatGain * recruitTime;\n retValue.cha = expGain;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Failed to recruit a team member. Gained \" +\n formatNumber(expGain, 1) +\n \" charisma exp\",\n );\n }\n }\n break;\n }\n case ActionTypes[\"Diplomacy\"]: {\n const eff = this.getDiplomacyEffectiveness(person);\n this.getCurrentCity().chaos *= eff;\n if (this.getCurrentCity().chaos < 0) {\n this.getCurrentCity().chaos = 0;\n }\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: Diplomacy completed. Chaos levels in the current city fell by ${numeralWrapper.formatPercentage(\n 1 - eff,\n )}`,\n );\n }\n break;\n }\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]: {\n person.regenerateHp(BladeburnerConstants.HrcHpGain);\n\n const staminaGain = this.maxStamina * (BladeburnerConstants.HrcStaminaGain / 100);\n this.stamina = Math.min(this.maxStamina, this.stamina + staminaGain);\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: Rested in Hyperbolic Regeneration Chamber. Restored ${\n BladeburnerConstants.HrcHpGain\n } HP and gained ${numeralWrapper.formatStamina(staminaGain)} stamina`,\n );\n }\n break;\n }\n case ActionTypes[\"Incite Violence\"]: {\n for (const contract of Object.keys(this.contracts)) {\n const growthF = Growths[contract];\n if (!growthF) throw new Error(\"trying to generate count for action that doesn't exist? \" + contract);\n this.contracts[contract].count += (60 * 3 * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n for (const operation of Object.keys(this.operations)) {\n const growthF = Growths[operation];\n if (!growthF) throw new Error(\"trying to generate count for action that doesn't exist? \" + operation);\n this.operations[operation].count += (60 * 3 * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n if (this.logging.general) {\n this.log(`${person.whoAmI()}: Incited violence in the synthoid communities.`);\n }\n for (const cityName of Object.keys(this.cities)) {\n const city = this.cities[cityName];\n city.chaos += 10;\n city.chaos += city.chaos / (Math.log(city.chaos) / Math.log(10));\n }\n break;\n }\n default:\n console.error(`Bladeburner.completeAction() called for invalid action: ${actionIdent.type}`);\n break;\n }\n return retValue;\n }\n\n infiltrateSynthoidCommunities(p: IPlayer): void {\n const infilSleeves = p.sleeves.filter((s) => isSleeveInfiltrateWork(s.currentWork)).length;\n const amt = Math.pow(infilSleeves, -0.5) / 2;\n for (const contract of Object.keys(this.contracts)) {\n this.contracts[contract].count += amt;\n }\n for (const operation of Object.keys(this.operations)) {\n this.operations[operation].count += amt;\n }\n if (this.logging.general) {\n this.log(`Sleeve: Infiltrate the synthoid communities.`);\n }\n }\n\n changeRank(person: IPerson, change: number): void {\n if (isNaN(change)) {\n throw new Error(\"NaN passed into Bladeburner.changeRank()\");\n }\n this.rank += change;\n if (this.rank < 0) {\n this.rank = 0;\n }\n this.maxRank = Math.max(this.rank, this.maxRank);\n\n const bladeburnersFactionName = FactionNames.Bladeburners;\n if (factionExists(bladeburnersFactionName)) {\n const bladeburnerFac = Factions[bladeburnersFactionName];\n if (!(bladeburnerFac instanceof Faction)) {\n throw new Error(\n `Could not properly get ${FactionNames.Bladeburners} Faction object in ${FactionNames.Bladeburners} UI Overview Faction button`,\n );\n }\n if (bladeburnerFac.isMember) {\n const favorBonus = 1 + bladeburnerFac.favor / 100;\n bladeburnerFac.playerReputation +=\n BladeburnerConstants.RankToFactionRepFactor * change * person.mults.faction_rep * favorBonus;\n }\n }\n\n // Gain skill points\n const rankNeededForSp = (this.totalSkillPoints + 1) * BladeburnerConstants.RanksPerSkillPoint;\n if (this.maxRank >= rankNeededForSp) {\n // Calculate how many skill points to gain\n const gainedSkillPoints = Math.floor(\n (this.maxRank - rankNeededForSp) / BladeburnerConstants.RanksPerSkillPoint + 1,\n );\n this.skillPoints += gainedSkillPoints;\n this.totalSkillPoints += gainedSkillPoints;\n }\n }\n\n processAction(router: IRouter, player: IPlayer, seconds: number): void {\n if (this.action.type === ActionTypes[\"Idle\"]) return;\n if (this.actionTimeToComplete <= 0) {\n throw new Error(`Invalid actionTimeToComplete value: ${this.actionTimeToComplete}, type; ${this.action.type}`);\n }\n if (!(this.action instanceof ActionIdentifier)) {\n throw new Error(\"Bladeburner.action is not an ActionIdentifier Object\");\n }\n\n // If the previous action went past its completion time, add to the next action\n // This is not added inmediatly in case the automation changes the action\n this.actionTimeCurrent += seconds + this.actionTimeOverflow;\n this.actionTimeOverflow = 0;\n if (this.actionTimeCurrent >= this.actionTimeToComplete) {\n this.actionTimeOverflow = this.actionTimeCurrent - this.actionTimeToComplete;\n const action = this.getActionObject(this.action);\n const retValue = this.completeAction(player, player, this.action);\n player.gainMoney(retValue.money, \"bladeburner\");\n player.gainStats(retValue);\n // Operation Daedalus\n if (action == null) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + this.action.name);\n } else if (this.action.type != ActionTypes[\"BlackOperation\"] && this.action.type != ActionTypes[\"BlackOp\"]) {\n this.startAction(player, this.action); // Repeat action\n }\n }\n }\n\n calculateStaminaGainPerSecond(player: IPlayer): number {\n const effAgility = player.skills.agility * this.skillMultipliers.effAgi;\n const maxStaminaBonus = this.maxStamina / BladeburnerConstants.MaxStaminaToGainFactor;\n const gain = (BladeburnerConstants.StaminaGainPerSecond + maxStaminaBonus) * Math.pow(effAgility, 0.17);\n return gain * (this.skillMultipliers.stamina * player.mults.bladeburner_stamina_gain);\n }\n\n calculateMaxStamina(player: IPlayer): void {\n const effAgility = player.skills.agility * this.skillMultipliers.effAgi;\n const maxStamina =\n (Math.pow(effAgility, 0.8) + this.staminaBonus) *\n this.skillMultipliers.stamina *\n player.mults.bladeburner_max_stamina;\n if (this.maxStamina !== maxStamina) {\n const oldMax = this.maxStamina;\n this.maxStamina = maxStamina;\n this.stamina = (this.maxStamina * this.stamina) / oldMax;\n }\n if (isNaN(maxStamina)) {\n throw new Error(\"Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()\");\n }\n }\n\n create(): void {\n this.contracts[\"Tracking\"] = new Contract({\n name: \"Tracking\",\n baseDifficulty: 125,\n difficultyFac: 1.02,\n rewardFac: 1.041,\n rankGain: 0.3,\n hpLoss: 0.5,\n count: getRandomInt(25, 150),\n weights: {\n hack: 0,\n str: 0.05,\n def: 0.05,\n dex: 0.35,\n agi: 0.35,\n cha: 0.1,\n int: 0.05,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.9,\n int: 1,\n },\n isStealth: true,\n });\n this.contracts[\"Bounty Hunter\"] = new Contract({\n name: \"Bounty Hunter\",\n baseDifficulty: 250,\n difficultyFac: 1.04,\n rewardFac: 1.085,\n rankGain: 0.9,\n hpLoss: 1,\n count: getRandomInt(5, 150),\n weights: {\n hack: 0,\n str: 0.15,\n def: 0.15,\n dex: 0.25,\n agi: 0.25,\n cha: 0.1,\n int: 0.1,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.8,\n int: 0.9,\n },\n isKill: true,\n });\n this.contracts[\"Retirement\"] = new Contract({\n name: \"Retirement\",\n baseDifficulty: 200,\n difficultyFac: 1.03,\n rewardFac: 1.065,\n rankGain: 0.6,\n hpLoss: 1,\n count: getRandomInt(5, 150),\n weights: {\n hack: 0,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0.1,\n int: 0.1,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.8,\n int: 0.9,\n },\n isKill: true,\n });\n\n this.operations[\"Investigation\"] = new Operation({\n name: \"Investigation\",\n baseDifficulty: 400,\n difficultyFac: 1.03,\n rewardFac: 1.07,\n reqdRank: 25,\n rankGain: 2.2,\n rankLoss: 0.2,\n count: getRandomInt(1, 100),\n weights: {\n hack: 0.25,\n str: 0.05,\n def: 0.05,\n dex: 0.2,\n agi: 0.1,\n cha: 0.25,\n int: 0.1,\n },\n decays: {\n hack: 0.85,\n str: 0.9,\n def: 0.9,\n dex: 0.9,\n agi: 0.9,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Undercover Operation\"] = new Operation({\n name: \"Undercover Operation\",\n baseDifficulty: 500,\n difficultyFac: 1.04,\n rewardFac: 1.09,\n reqdRank: 100,\n rankGain: 4.4,\n rankLoss: 0.4,\n hpLoss: 2,\n count: getRandomInt(1, 100),\n weights: {\n hack: 0.2,\n str: 0.05,\n def: 0.05,\n dex: 0.2,\n agi: 0.2,\n cha: 0.2,\n int: 0.1,\n },\n decays: {\n hack: 0.8,\n str: 0.9,\n def: 0.9,\n dex: 0.9,\n agi: 0.9,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Sting Operation\"] = new Operation({\n name: \"Sting Operation\",\n baseDifficulty: 650,\n difficultyFac: 1.04,\n rewardFac: 1.095,\n reqdRank: 500,\n rankGain: 5.5,\n rankLoss: 0.5,\n hpLoss: 2.5,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.25,\n str: 0.05,\n def: 0.05,\n dex: 0.25,\n agi: 0.1,\n cha: 0.2,\n int: 0.1,\n },\n decays: {\n hack: 0.8,\n str: 0.85,\n def: 0.85,\n dex: 0.85,\n agi: 0.85,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Raid\"] = new Operation({\n name: \"Raid\",\n baseDifficulty: 800,\n difficultyFac: 1.045,\n rewardFac: 1.1,\n reqdRank: 3000,\n rankGain: 55,\n rankLoss: 2.5,\n hpLoss: 50,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.7,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.9,\n },\n isKill: true,\n });\n this.operations[\"Stealth Retirement Operation\"] = new Operation({\n name: \"Stealth Retirement Operation\",\n baseDifficulty: 1000,\n difficultyFac: 1.05,\n rewardFac: 1.11,\n reqdRank: 20e3,\n rankGain: 22,\n rankLoss: 2,\n hpLoss: 10,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.1,\n def: 0.1,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.7,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.9,\n },\n isStealth: true,\n isKill: true,\n });\n this.operations[\"Assassination\"] = new Operation({\n name: \"Assassination\",\n baseDifficulty: 1500,\n difficultyFac: 1.06,\n rewardFac: 1.14,\n reqdRank: 50e3,\n rankGain: 44,\n rankLoss: 4,\n hpLoss: 5,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.1,\n def: 0.1,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.8,\n },\n isStealth: true,\n isKill: true,\n });\n }\n\n process(router: IRouter, player: IPlayer): void {\n // Edge race condition when the engine checks the processing counters and attempts to route before the router is initialized.\n if (!router.isInitialized) return;\n\n // If the Player starts doing some other actions, set action to idle and alert\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true) && player.currentWork) {\n if (this.action.type !== ActionTypes[\"Idle\"]) {\n let msg = \"Your Bladeburner action was cancelled because you started doing something else.\";\n if (this.automateEnabled) {\n msg += `
Your automation was disabled as well. You will have to re-enable it through the Bladeburner console`;\n this.automateEnabled = false;\n }\n if (!Settings.SuppressBladeburnerPopup) {\n dialogBoxCreate(msg);\n }\n }\n this.resetAction();\n }\n\n // If the Player has no Stamina, set action to idle\n if (this.stamina <= 0) {\n this.log(\"Your Bladeburner action was cancelled because your stamina hit 0\");\n this.resetAction();\n }\n\n // A 'tick' for this mechanic is one second (= 5 game cycles)\n if (this.storedCycles >= BladeburnerConstants.CyclesPerSecond) {\n let seconds = Math.floor(this.storedCycles / BladeburnerConstants.CyclesPerSecond);\n seconds = Math.min(seconds, 5); // Max of 5 'ticks'\n this.storedCycles -= seconds * BladeburnerConstants.CyclesPerSecond;\n\n // Stamina\n this.calculateMaxStamina(player);\n this.stamina += this.calculateStaminaGainPerSecond(player) * seconds;\n this.stamina = Math.min(this.maxStamina, this.stamina);\n\n // Count increase for contracts/operations\n for (const contract of Object.values(this.contracts)) {\n const growthF = Growths[contract.name];\n if (growthF === undefined) throw new Error(`growth formula for action '${contract.name}' is undefined`);\n contract.count += (seconds * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n for (const op of Object.values(this.operations)) {\n const growthF = Growths[op.name];\n if (growthF === undefined) throw new Error(`growth formula for action '${op.name}' is undefined`);\n if (growthF !== undefined) {\n op.count += (seconds * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n }\n\n // Chaos goes down very slowly\n for (const cityName of BladeburnerConstants.CityNames) {\n const city = this.cities[cityName];\n if (!(city instanceof City)) {\n throw new Error(\"Invalid City object when processing passive chaos reduction in Bladeburner.process\");\n }\n city.chaos -= 0.0001 * seconds;\n city.chaos = Math.max(0, city.chaos);\n }\n\n // Random Events\n this.randomEventCounter -= seconds;\n if (this.randomEventCounter <= 0) {\n this.randomEvent();\n // Add instead of setting because we might have gone over the required time for the event\n this.randomEventCounter += getRandomInt(240, 600);\n }\n\n this.processAction(router, player, seconds);\n\n // Automation\n if (this.automateEnabled) {\n // Note: Do NOT set this.action = this.automateActionHigh/Low since it creates a reference\n if (this.stamina <= this.automateThreshLow) {\n if (this.action.name !== this.automateActionLow.name || this.action.type !== this.automateActionLow.type) {\n this.action = new ActionIdentifier({\n type: this.automateActionLow.type,\n name: this.automateActionLow.name,\n });\n this.startAction(player, this.action);\n }\n } else if (this.stamina >= this.automateThreshHigh) {\n if (this.action.name !== this.automateActionHigh.name || this.action.type !== this.automateActionHigh.type) {\n this.action = new ActionIdentifier({\n type: this.automateActionHigh.type,\n name: this.automateActionHigh.name,\n });\n this.startAction(player, this.action);\n }\n }\n }\n }\n }\n\n getTypeAndNameFromActionId(actionId: IActionIdentifier): {\n type: string;\n name: string;\n } {\n const res = { type: \"\", name: \"\" };\n const types = Object.keys(ActionTypes);\n for (let i = 0; i < types.length; ++i) {\n if (actionId.type === ActionTypes[types[i]]) {\n res.type = types[i];\n break;\n }\n }\n const gen = [\n \"Training\",\n \"Recruitment\",\n \"FieldAnalysis\",\n \"Field Analysis\",\n \"Diplomacy\",\n \"Hyperbolic Regeneration Chamber\",\n \"Incite Violence\",\n ];\n if (gen.includes(res.type)) {\n res.type = \"General\";\n }\n\n if (res.type == null) {\n res.type = \"Idle\";\n }\n\n res.name = actionId.name != null ? actionId.name : \"Idle\";\n return res;\n }\n\n getContractNamesNetscriptFn(): string[] {\n return Object.keys(this.contracts);\n }\n\n getOperationNamesNetscriptFn(): string[] {\n return Object.keys(this.operations);\n }\n\n getBlackOpNamesNetscriptFn(): string[] {\n return Object.keys(BlackOperations);\n }\n\n getGeneralActionNamesNetscriptFn(): string[] {\n return Object.keys(GeneralActions);\n }\n\n getSkillNamesNetscriptFn(): string[] {\n return Object.keys(Skills);\n }\n\n startActionNetscriptFn(player: IPlayer, type: string, name: string, workerScript: WorkerScript): boolean {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n\n // Special logic for Black Ops\n if (actionId.type === ActionTypes[\"BlackOp\"]) {\n const canRunOp = this.canAttemptBlackOp(actionId);\n if (!canRunOp.isAvailable) {\n workerScript.log(\"bladeburner.startAction\", () => canRunOp.error + \"\");\n return false;\n }\n }\n\n try {\n this.startAction(player, actionId);\n workerScript.log(\n \"bladeburner.startAction\",\n () => `Starting bladeburner action with type '${type}' and name '${name}'`,\n );\n return true;\n } catch (e: unknown) {\n console.error(e);\n this.resetAction();\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n }\n\n getActionTimeNetscriptFn(person: IPerson, type: string, name: string): number | string {\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n return \"bladeburner.getActionTime\";\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n return \"bladeburner.getActionTime\";\n }\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return actionObj.getActionTime(this, person) * 1000;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n return 30000;\n case ActionTypes[\"Recruitment\"]:\n return this.getRecruitmentTime(person) * 1000;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return 60000;\n default:\n return \"bladeburner.getActionTime\";\n }\n }\n\n getActionEstimatedSuccessChanceNetscriptFn(person: IPerson, type: string, name: string): [number, number] | string {\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return actionObj.getEstSuccessChance(this, person);\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return [1, 1];\n case ActionTypes[\"Recruitment\"]: {\n const recChance = this.getRecruitmentSuccessChance(person);\n return [recChance, recChance];\n }\n default:\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n }\n\n getActionCountRemainingNetscriptFn(type: string, name: string, workerScript: WorkerScript): number {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n return Math.floor(actionObj.count);\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n if (this.blackops[name] != null) {\n return 0;\n } else {\n return 1;\n }\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Recruitment\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return Infinity;\n default:\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n }\n\n getSkillLevelNetscriptFn(skillName: string, workerScript: WorkerScript): number {\n if (skillName === \"\" || !Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.getSkillLevel\", () => `Invalid skill: '${skillName}'`);\n return -1;\n }\n\n if (this.skills[skillName] == null) {\n return 0;\n } else {\n return this.skills[skillName];\n }\n }\n\n getSkillUpgradeCostNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): number {\n if (skillName === \"\" || !Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.getSkillUpgradeCost\", () => `Invalid skill: '${skillName}'`);\n return -1;\n }\n\n const skill = Skills[skillName];\n if (this.skills[skillName] == null) {\n return skill.calculateCost(0, count);\n } else {\n return skill.calculateCost(this.skills[skillName], count);\n }\n }\n\n upgradeSkillNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): boolean {\n const errorLogText = `Invalid skill: '${skillName}'`;\n if (!Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => errorLogText);\n return false;\n }\n\n const skill = Skills[skillName];\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const cost = skill.calculateCost(currentLevel, count);\n\n if (skill.maxLvl && currentLevel + count > skill.maxLvl) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => `Skill '${skillName}' cannot be upgraded ${count} time(s).`);\n return false;\n }\n\n if (this.skillPoints < cost) {\n workerScript.log(\n \"bladeburner.upgradeSkill\",\n () =>\n `You do not have enough skill points to upgrade ${skillName} ${count} time(s). (You have ${this.skillPoints}, you need ${cost})`,\n );\n return false;\n }\n\n this.skillPoints -= cost;\n this.upgradeSkill(skill, count);\n workerScript.log(\"bladeburner.upgradeSkill\", () => `'${skillName}' upgraded to level ${this.skills[skillName]}`);\n return true;\n }\n\n getTeamSizeNetscriptFn(type: string, name: string, workerScript: WorkerScript): number {\n if (type === \"\" && name === \"\") {\n return this.teamSize;\n }\n\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.getTeamSize\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getTeamSize\", () => errorLogText);\n return -1;\n }\n\n if (\n actionId.type === ActionTypes[\"Operation\"] ||\n actionId.type === ActionTypes[\"BlackOp\"] ||\n actionId.type === ActionTypes[\"BlackOperation\"]\n ) {\n return actionObj.teamCount;\n } else {\n return 0;\n }\n }\n\n setTeamSizeNetscriptFn(type: string, name: string, size: number, workerScript: WorkerScript): number {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.setTeamSize\", () => errorLogText);\n return -1;\n }\n\n if (\n actionId.type !== ActionTypes[\"Operation\"] &&\n actionId.type !== ActionTypes[\"BlackOp\"] &&\n actionId.type !== ActionTypes[\"BlackOperation\"]\n ) {\n workerScript.log(\"bladeburner.setTeamSize\", () => \"Only valid for 'Operations' and 'BlackOps'\");\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.setTeamSize\", () => errorLogText);\n return -1;\n }\n\n let sanitizedSize = Math.round(size);\n if (isNaN(sanitizedSize) || sanitizedSize < 0) {\n workerScript.log(\"bladeburner.setTeamSize\", () => `Invalid size: ${size}`);\n return -1;\n }\n if (this.teamSize < sanitizedSize) {\n sanitizedSize = this.teamSize;\n }\n actionObj.teamCount = sanitizedSize;\n workerScript.log(\"bladeburner.setTeamSize\", () => `Team size for '${name}' set to ${sanitizedSize}.`);\n return sanitizedSize;\n }\n\n joinBladeburnerFactionNetscriptFn(workerScript: WorkerScript): boolean {\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (bladeburnerFac.isMember) {\n return true;\n } else if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n workerScript.log(\"bladeburner.joinBladeburnerFaction\", () => `Joined ${FactionNames.Bladeburners} faction.`);\n return true;\n } else {\n workerScript.log(\n \"bladeburner.joinBladeburnerFaction\",\n () => `You do not have the required rank (${this.rank}/${BladeburnerConstants.RankNeededForFaction}).`,\n );\n return false;\n }\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Bladeburner\", this);\n }\n\n /**\n * Initiatizes a Bladeburner object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Bladeburner {\n return Generic_fromJSON(Bladeburner, value.data);\n }\n}\n\nReviver.constructors.Bladeburner = Bladeburner;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { HacknetNodeConstants } from \"../data/Constants\";\n\nexport function calculateMoneyGainRate(level: number, ram: number, cores: number, mult: number): number {\n const gainPerLevel = HacknetNodeConstants.MoneyGainPerLevel;\n\n const levelMult = level * gainPerLevel;\n const ramMult = Math.pow(1.035, ram - 1);\n const coresMult = (cores + 5) / 6;\n return levelMult * ramMult * coresMult * mult * BitNodeMultipliers.HacknetNodeMoney;\n}\n\nexport function calculateLevelUpgradeCost(startingLevel: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingLevel >= HacknetNodeConstants.MaxLevel) {\n return Infinity;\n }\n\n const mult = HacknetNodeConstants.UpgradeLevelMult;\n let totalMultiplier = 0;\n let currLevel = startingLevel;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalMultiplier += HacknetNodeConstants.LevelBaseCost * Math.pow(mult, currLevel);\n ++currLevel;\n }\n\n return (HacknetNodeConstants.BaseCost / 2) * totalMultiplier * costMult;\n}\n\nexport function calculateRamUpgradeCost(startingRam: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingRam >= HacknetNodeConstants.MaxRam) {\n return Infinity;\n }\n\n let totalCost = 0;\n let numUpgrades = Math.round(Math.log2(startingRam));\n let currentRam = startingRam;\n\n for (let i = 0; i < sanitizedLevels; ++i) {\n const baseCost = currentRam * HacknetNodeConstants.RamBaseCost;\n const mult = Math.pow(HacknetNodeConstants.UpgradeRamMult, numUpgrades);\n\n totalCost += baseCost * mult;\n\n currentRam *= 2;\n ++numUpgrades;\n }\n\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCoreUpgradeCost(startingCore: number, extraLevels = 1, costMult = 1): number {\n const sanitizedCores = Math.round(extraLevels);\n if (isNaN(sanitizedCores) || sanitizedCores < 1) {\n return 0;\n }\n\n if (startingCore >= HacknetNodeConstants.MaxCores) {\n return Infinity;\n }\n\n const coreBaseCost = HacknetNodeConstants.CoreBaseCost;\n const mult = HacknetNodeConstants.UpgradeCoreMult;\n let totalCost = 0;\n let currentCores = startingCore;\n for (let i = 0; i < sanitizedCores; ++i) {\n totalCost += coreBaseCost * Math.pow(mult, currentCores - 1);\n ++currentCores;\n }\n\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateNodeCost(n: number, mult = 1): number {\n if (n <= 0) {\n return 0;\n }\n return HacknetNodeConstants.BaseCost * Math.pow(HacknetNodeConstants.PurchaseNextMult, n - 1) * mult;\n}\n","import * as React from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nconst gainLimit = 10e9;\n\nexport function win(p: IPlayer, n: number): void {\n p.gainMoney(n, \"casino\");\n}\n\nexport function reachedLimit(p: IPlayer): boolean {\n const reached = p.getCasinoWinnings() > gainLimit;\n if (reached) {\n dialogBoxCreate(<>Alright cheater get out of here. You're not allowed here anymore.>);\n }\n return reached;\n}\n\nexport class Game extends React.Component {\n win(p: IPlayer, n: number): void {\n p.gainMoney(n, \"casino\");\n }\n\n reachedLimit(p: IPlayer): boolean {\n const reached = p.getCasinoWinnings() > gainLimit;\n if (reached) {\n dialogBoxCreate(<>Alright cheater get out of here. You're not allowed here anymore.>);\n }\n return reached;\n }\n}\n","const _ = false;\nconst X = true;\nexport const Shapes: {\n O: boolean[][];\n I: boolean[][];\n L: boolean[][];\n J: boolean[][];\n S: boolean[][];\n Z: boolean[][];\n T: boolean[][];\n} = {\n O: [\n [X, X],\n [X, X],\n ],\n I: [[X, X, X, X]],\n L: [\n [_, _, X],\n [X, X, X],\n ],\n J: [\n [X, _, _],\n [X, X, X],\n ],\n S: [\n [_, X, X],\n [X, X, _],\n ],\n Z: [\n [X, X, _],\n [_, X, X],\n ],\n T: [\n [X, X, X],\n [_, X, _],\n ],\n};\n","interface DifficultySetting {\n [key: string]: number;\n}\n\ninterface DifficultySettings {\n Trivial: DifficultySetting;\n Normal: DifficultySetting;\n Hard: DifficultySetting;\n Impossible: DifficultySetting;\n}\n\n// I could use `any` to simply some of this but I also want to take advantage\n// of the type safety that typescript provides. I'm just not sure how in this\n// case.\nexport function interpolate(settings: DifficultySettings, n: number, out: DifficultySetting): DifficultySetting {\n // interpolates between 2 difficulties.\n function lerpD(a: DifficultySetting, b: DifficultySetting, t: number): DifficultySetting {\n // interpolates between 2 numbers.\n function lerp(x: number, y: number, t: number): number {\n return (1 - t) * x + t * y;\n }\n for (const key of Object.keys(a)) {\n out[key] = lerp(a[key], b[key], t);\n }\n return a;\n }\n if (n < 0) return lerpD(settings.Trivial, settings.Trivial, 0);\n if (n >= 0 && n < 1) return lerpD(settings.Trivial, settings.Normal, n);\n if (n >= 1 && n < 2) return lerpD(settings.Normal, settings.Hard, n - 1);\n if (n >= 2 && n < 3) return lerpD(settings.Hard, settings.Impossible, n - 2);\n return lerpD(settings.Impossible, settings.Impossible, 0);\n}\n","import React, { useEffect } from \"react\";\n\ninterface IProps {\n onKeyDown: (this: Document, event: KeyboardEvent) => void;\n onFailure: (options?: { automated: boolean }) => void;\n}\n\nexport function KeyHandler(props: IProps): React.ReactElement {\n useEffect(() => {\n function press(this: Document, event: KeyboardEvent): void {\n if (!event.isTrusted) return;\n const f = props.onKeyDown.bind(this);\n f(event);\n }\n document.addEventListener(\"keydown\", press);\n return () => document.removeEventListener(\"keydown\", press);\n });\n\n // invisible autofocused element that eats all the keypress for the minigames.\n return <>>;\n}\n","import React from \"react\";\nimport { Work, WorkType } from \"./Work\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Factions } from \"../Faction/Factions\";\nimport { Faction } from \"../Faction/Faction\";\nimport { applyWorkStats, scaleWorkStats, WorkStats } from \"./WorkStats\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { calculateFactionExp, calculateFactionRep } from \"./formulas/Faction\";\nimport { FactionWorkType } from \"./data/FactionWorkType\";\n\ninterface FactionWorkParams {\n singularity: boolean;\n factionWorkType: FactionWorkType;\n faction: string;\n}\n\nexport const isFactionWork = (w: Work | null): w is FactionWork => w !== null && w.type === WorkType.FACTION;\n\nexport class FactionWork extends Work {\n factionWorkType: FactionWorkType;\n factionName: string;\n\n constructor(params?: FactionWorkParams) {\n super(WorkType.FACTION, params?.singularity ?? true);\n this.factionWorkType = params?.factionWorkType ?? FactionWorkType.HACKING;\n this.factionName = params?.faction ?? FactionNames.Sector12;\n }\n\n getFaction(): Faction {\n const f = Factions[this.factionName];\n if (!f) throw new Error(`Faction work started with invalid / unknown faction: '${this.factionName}'`);\n return f;\n }\n\n getReputationRate(player: IPlayer): number {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return calculateFactionRep(player, this.factionWorkType, this.getFaction().favor) * focusBonus;\n }\n\n getExpRates(player: IPlayer): WorkStats {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n const rate = calculateFactionExp(player, this.factionWorkType);\n return scaleWorkStats(rate, focusBonus, false);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n this.getFaction().playerReputation += this.getReputationRate(player) * cycles;\n\n const rate = this.getExpRates(player);\n applyWorkStats(player, player, rate, cycles, \"class\");\n\n return false;\n }\n\n finish(): void {\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You worked for {this.getFaction().name}.\n \n They now have a total of reputation.\n >,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n factionWorkType: this.factionWorkType,\n factionName: this.factionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"FactionWork\", this);\n }\n\n /**\n * Initiatizes a FactionWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): FactionWork {\n return Generic_fromJSON(FactionWork, value.data);\n }\n}\n\nReviver.constructors.FactionWork = FactionWork;\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\nexport function Hashes({ hashes }: { hashes: number | string }): React.ReactElement {\n const classes = useStyles();\n return (\n {typeof hashes === \"number\" ? numeralWrapper.formatHashes(hashes) : hashes}\n );\n}\n","/**\n * Hacknet Node Class\n *\n * Hacknet Nodes are specialized machines that passively earn the player money over time.\n * They can be upgraded to increase their production\n */\nimport { IHacknetNode } from \"./IHacknetNode\";\n\nimport { CONSTANTS } from \"../Constants\";\n\nimport {\n calculateMoneyGainRate,\n calculateLevelUpgradeCost,\n calculateCoreUpgradeCost,\n calculateRamUpgradeCost,\n} from \"./formulas/HacknetNodes\";\nimport { HacknetNodeConstants } from \"./data/Constants\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { ObjectValidator, minMax } from \"../utils/Validator\";\n\nexport class HacknetNode implements IHacknetNode {\n static validationData: ObjectValidator = {\n cores: minMax(1, 1, HacknetNodeConstants.MaxCores),\n level: minMax(1, 1, HacknetNodeConstants.MaxLevel),\n ram: minMax(1, 1, HacknetNodeConstants.MaxRam),\n onlineTimeSeconds: minMax(0, 0, Infinity),\n totalMoneyGenerated: minMax(0, 0, Infinity),\n };\n\n // Node's number of cores\n cores = 1;\n\n // Node's Level\n level = 1;\n\n // Node's production per second\n moneyGainRatePerSecond = 0;\n\n // Identifier for Node. Includes the full \"name\" (hacknet-node-N)\n name: string;\n\n // How long this Node has existed, in seconds\n onlineTimeSeconds = 0;\n\n // Node's RAM (GB)\n ram = 1;\n\n // Total money earned by this Node\n totalMoneyGenerated = 0;\n\n constructor(name = \"\", prodMult = 1) {\n this.name = name;\n\n this.updateMoneyGainRate(prodMult);\n }\n\n // Get the cost to upgrade this Node's number of cores\n calculateCoreUpgradeCost(levels = 1, costMult: number): number {\n return calculateCoreUpgradeCost(this.cores, levels, costMult);\n }\n\n // Get the cost to upgrade this Node's level\n calculateLevelUpgradeCost(levels = 1, costMult: number): number {\n return calculateLevelUpgradeCost(this.level, levels, costMult);\n }\n\n // Get the cost to upgrade this Node's RAM\n calculateRamUpgradeCost(levels = 1, costMult: number): number {\n return calculateRamUpgradeCost(this.ram, levels, costMult);\n }\n\n // Process this Hacknet Node in the game loop.\n // Returns the amount of money generated\n process(numCycles = 1): number {\n const seconds = (numCycles * CONSTANTS.MilliPerCycle) / 1000;\n let gain = this.moneyGainRatePerSecond * seconds;\n if (isNaN(gain)) {\n console.error(`Hacknet Node ${this.name} calculated earnings of NaN`);\n gain = 0;\n }\n\n this.totalMoneyGenerated += gain;\n this.onlineTimeSeconds += seconds;\n\n return gain;\n }\n\n // Upgrade this Node's number of cores, if possible\n // Returns a boolean indicating whether new cores were successfully bought\n upgradeCore(levels = 1, prodMult: number): void {\n this.cores = Math.min(HacknetNodeConstants.MaxCores, Math.round(this.cores + levels));\n this.updateMoneyGainRate(prodMult);\n }\n\n // Upgrade this Node's level, if possible\n // Returns a boolean indicating whether the level was successfully updated\n upgradeLevel(levels = 1, prodMult: number): void {\n this.level = Math.min(HacknetNodeConstants.MaxLevel, Math.round(this.level + levels));\n this.updateMoneyGainRate(prodMult);\n }\n\n // Upgrade this Node's RAM, if possible\n // Returns a boolean indicating whether the RAM was successfully upgraded\n upgradeRam(levels = 1, prodMult: number): void {\n for (let i = 0; i < levels; ++i) {\n this.ram *= 2; // Ram is always doubled\n }\n this.ram = Math.round(this.ram); // Handle any floating point precision issues\n this.updateMoneyGainRate(prodMult);\n }\n\n // Re-calculate this Node's production and update the moneyGainRatePerSecond prop\n updateMoneyGainRate(prodMult: number): void {\n this.moneyGainRatePerSecond = calculateMoneyGainRate(this.level, this.ram, this.cores, prodMult);\n if (isNaN(this.moneyGainRatePerSecond)) {\n this.moneyGainRatePerSecond = 0;\n dialogBoxCreate(\"Error in calculating Hacknet Node production. Please report to game developer\");\n }\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"HacknetNode\", this);\n }\n\n /**\n * Initiatizes a HacknetNode object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): HacknetNode {\n return Generic_fromJSON(HacknetNode, value.data);\n }\n}\n\nReviver.constructors.HacknetNode = HacknetNode;\n","/**\n * Implements functions for purchasing servers or purchasing more RAM for\n * the home computer\n */\nimport { AddToAllServers, createUniqueRandomIp } from \"./AllServers\";\nimport { safetlyCreateUniqueServer } from \"./ServerHelpers\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { isPowerOfTwo } from \"../utils/helpers/isPowerOfTwo\";\n\n// Returns the cost of purchasing a server with the given RAM\n// Returns Infinity for invalid 'ram' arguments\n/**\n * @param ram Amount of RAM on purchased server (GB)\n * @returns Cost of purchasing the given server. Returns infinity for invalid arguments\n */\nexport function getPurchaseServerCost(ram: number): number {\n const sanitizedRam = Math.round(ram);\n if (isNaN(sanitizedRam) || !isPowerOfTwo(sanitizedRam) || !(Math.sign(sanitizedRam) === 1)) {\n return Infinity;\n }\n\n if (sanitizedRam > getPurchaseServerMaxRam()) {\n return Infinity;\n }\n\n const upg = Math.max(0, Math.log(sanitizedRam) / Math.log(2) - 6);\n\n return (\n sanitizedRam *\n CONSTANTS.BaseCostFor1GBOfRamServer *\n BitNodeMultipliers.PurchasedServerCost *\n Math.pow(BitNodeMultipliers.PurchasedServerSoftcap, upg)\n );\n}\n\nexport function getPurchaseServerLimit(): number {\n return Math.round(CONSTANTS.PurchasedServerLimit * BitNodeMultipliers.PurchasedServerLimit);\n}\n\nexport function getPurchaseServerMaxRam(): number {\n const ram = Math.round(CONSTANTS.PurchasedServerMaxRam * BitNodeMultipliers.PurchasedServerMaxRam);\n\n // Round this to the nearest power of 2\n return 1 << (31 - Math.clz32(ram));\n}\n\n// Manually purchase a server (NOT through Netscript)\nexport function purchaseServer(hostname: string, ram: number, cost: number, p: IPlayer): void {\n //Check if player has enough money\n if (!p.canAfford(cost)) {\n dialogBoxCreate(\"You don't have enough money to purchase this server!\");\n return;\n }\n\n //Maximum server limit\n if (p.purchasedServers.length >= getPurchaseServerLimit()) {\n dialogBoxCreate(\n \"You have reached the maximum limit of \" +\n getPurchaseServerLimit() +\n \" servers. \" +\n \"You cannot purchase any more. You can \" +\n \"delete some of your purchased servers using the deleteServer() Netscript function in a script\",\n );\n return;\n }\n\n if (hostname == \"\") {\n dialogBoxCreate(\"You must enter a hostname for your new server!\");\n return;\n }\n\n // Create server\n const newServ = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: hostname,\n ip: createUniqueRandomIp(),\n isConnectedTo: false,\n maxRam: ram,\n organizationName: \"\",\n purchasedByPlayer: true,\n });\n AddToAllServers(newServ);\n\n // Add to Player's purchasedServers array\n p.purchasedServers.push(newServ.hostname);\n\n // Connect new server to home computer\n const homeComputer = p.getHomeComputer();\n homeComputer.serversOnNetwork.push(newServ.hostname);\n newServ.serversOnNetwork.push(homeComputer.hostname);\n\n p.loseMoney(cost, \"servers\");\n\n dialogBoxCreate(\"Server successfully purchased with hostname \" + newServ.hostname);\n}\n\n// Manually upgrade RAM on home computer (NOT through Netscript)\nexport function purchaseRamForHomeComputer(p: IPlayer): void {\n const cost = p.getUpgradeHomeRamCost();\n if (!p.canAfford(cost)) {\n dialogBoxCreate(\"You do not have enough money to purchase additional RAM for your home computer\");\n return;\n }\n\n const homeComputer = p.getHomeComputer();\n if (homeComputer.maxRam >= CONSTANTS.HomeComputerMaxRam) {\n dialogBoxCreate(`You cannot upgrade your home computer RAM because it is at its maximum possible value`);\n return;\n }\n\n homeComputer.maxRam *= 2;\n p.loseMoney(cost, \"servers\");\n}\n","import { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { BaseServer } from \"./Server/BaseServer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"./utils/JSONReviver\";\nimport { removeLeadingSlash, isInRootDirectory } from \"./Terminal/DirectoryHelpers\";\n\n/**\n * Represents a plain text file that is typically stored on a server.\n */\nexport class TextFile {\n /**\n * The full file name.\n */\n fn: string;\n\n /**\n * The content of the file.\n */\n text: string;\n\n /**\n * The full file name.\n */\n get filename(): string {\n return this.fn;\n }\n\n /**\n * The full file name.\n */\n set filename(value: string) {\n this.fn = value;\n }\n\n constructor(fn = \"\", txt = \"\") {\n this.fn = (fn.endsWith(\".txt\") ? fn : `${fn}.txt`).replace(/\\s+/g, \"\");\n this.text = txt;\n }\n\n /**\n * Concatenates the raw values to the end of current content.\n */\n append(txt: string): void {\n this.text += txt;\n }\n\n /**\n * Serves the file to the user as a downloadable resource through the browser.\n */\n download(): void {\n const file: Blob = new Blob([this.text], { type: \"text/plain\" });\n const a: HTMLAnchorElement = document.createElement(\"a\");\n const url: string = URL.createObjectURL(file);\n a.href = url;\n a.download = this.fn;\n document.body.appendChild(a);\n a.click();\n setTimeout(() => {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n\n /**\n * Retrieve the content of the file.\n */\n read(): string {\n return this.text;\n }\n\n /**\n * Shows the content to the user via the game's dialog box.\n */\n show(): void {\n dialogBoxCreate(`${this.fn}
${this.text}`);\n }\n\n /**\n * Serialize the current file to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"TextFile\", this);\n }\n\n /**\n * Replaces the current content with the text provided.\n */\n write(txt: string): void {\n this.text = txt;\n }\n\n /**\n * Initiatizes a TextFile from a JSON save state.\n */\n static fromJSON(value: IReviverValue): TextFile {\n return Generic_fromJSON(TextFile, value.data);\n }\n}\n\nReviver.constructors.TextFile = TextFile;\n\n/**\n * Retrieve the file object for the filename on the specified server.\n * @param fn The file name to look for\n * @param server The server object to look in\n * @returns The file object, or null if it couldn't find it.\n */\nexport function getTextFile(fn: string, server: BaseServer): TextFile | null {\n let filename: string = !fn.endsWith(\".txt\") ? `${fn}.txt` : fn;\n\n if (isInRootDirectory(filename)) {\n filename = removeLeadingSlash(filename);\n }\n\n for (const file of server.textFiles) {\n if (file.fn === filename) {\n return file;\n }\n }\n\n return null;\n}\n\n/**\n * Creates a TextFile on the target server.\n * @param fn The file name to create.\n * @param txt The contents of the file.\n * @param server The server that the file should be created on.\n * @returns The instance of the file.\n */\nexport function createTextFile(fn: string, txt: string, server: BaseServer): TextFile | undefined {\n if (getTextFile(fn, server) !== null) {\n // This should probably be a `throw`...\n /* tslint:disable-next-line:no-console */\n console.error(`A file named \"${fn}\" already exists on server ${server.hostname}.`);\n\n return undefined;\n }\n const file: TextFile = new TextFile(fn, txt);\n server.textFiles.push(file);\n\n return file;\n}\n","import { CONSTANTS } from \"../../Constants\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CalculateShareMult } from \"../../NetworkShare/Share\";\nimport { IPerson } from \"../IPerson\";\nimport { calculateIntelligenceBonus } from \"./intelligence\";\n\nfunction mult(favor: number): number {\n let favorMult = 1 + favor / 100;\n if (isNaN(favorMult)) {\n favorMult = 1;\n }\n return favorMult * BitNodeMultipliers.FactionWorkRepGain;\n}\n\nexport function getHackingWorkRepGain(p: IPerson, favor: number): number {\n return (\n ((p.skills.hacking + p.skills.intelligence / 3) / CONSTANTS.MaxSkillLevel) *\n p.mults.faction_rep *\n calculateIntelligenceBonus(p.skills.intelligence, 1) *\n mult(favor) *\n CalculateShareMult()\n );\n}\n\nexport function getFactionSecurityWorkRepGain(p: IPerson, favor: number): number {\n const t =\n (0.9 *\n (p.skills.strength +\n p.skills.defense +\n p.skills.dexterity +\n p.skills.agility +\n (p.skills.hacking + p.skills.intelligence) * CalculateShareMult())) /\n CONSTANTS.MaxSkillLevel /\n 4.5;\n return t * p.mults.faction_rep * mult(favor) * calculateIntelligenceBonus(p.skills.intelligence, 1);\n}\n\nexport function getFactionFieldWorkRepGain(p: IPerson, favor: number): number {\n const t =\n (0.9 *\n (p.skills.strength +\n p.skills.defense +\n p.skills.dexterity +\n p.skills.agility +\n p.skills.charisma +\n (p.skills.hacking + p.skills.intelligence) * CalculateShareMult())) /\n CONSTANTS.MaxSkillLevel /\n 5.5;\n return t * p.mults.faction_rep * mult(favor) * calculateIntelligenceBonus(p.skills.intelligence, 1);\n}\n","import { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\n\nimport { NS as INS } from \"../ScriptEditor/NetscriptDefinitions\";\n\nimport { INetscriptExtra } from \"../NetscriptFunctions/Extra\";\n\ntype RamCostTree = {\n [Property in keyof API]: API[Property] extends () => void\n ? number | ((p: IPlayer) => void)\n : API[Property] extends object\n ? RamCostTree\n : never;\n};\n\n// TODO remember to update RamCalculations.js and WorkerScript.js\n\n// RAM costs for Netscript functions\nexport const RamCostConstants: IMap = {\n ScriptBaseRamCost: 1.6,\n ScriptDomRamCost: 25,\n ScriptCorporationRamCost: 1024 - 1.6,\n ScriptHackRamCost: 0.1,\n ScriptHackAnalyzeRamCost: 1,\n ScriptGrowRamCost: 0.15,\n ScriptGrowthAnalyzeRamCost: 1,\n ScriptWeakenRamCost: 0.15,\n ScriptWeakenAnalyzeRamCost: 1,\n ScriptScanRamCost: 0.2,\n ScriptRecentScriptsRamCost: 0.2,\n ScriptPortProgramRamCost: 0.05,\n ScriptRunRamCost: 1.0,\n ScriptExecRamCost: 1.3,\n ScriptSpawnRamCost: 2.0,\n ScriptScpRamCost: 0.6,\n ScriptKillRamCost: 0.5,\n ScriptHasRootAccessRamCost: 0.05,\n ScriptGetHostnameRamCost: 0.05,\n ScriptGetHackingLevelRamCost: 0.05,\n ScriptGetMultipliersRamCost: 4.0,\n ScriptGetServerRamCost: 0.1,\n ScriptGetServerMaxRam: 0.05,\n ScriptGetServerUsedRam: 0.05,\n ScriptFileExistsRamCost: 0.1,\n ScriptIsRunningRamCost: 0.1,\n ScriptHacknetNodesRamCost: 4.0,\n ScriptHNUpgLevelRamCost: 0.4,\n ScriptHNUpgRamRamCost: 0.6,\n ScriptHNUpgCoreRamCost: 0.8,\n ScriptGetStockRamCost: 2.0,\n ScriptBuySellStockRamCost: 2.5,\n ScriptGetPurchaseServerRamCost: 0.25,\n ScriptPurchaseServerRamCost: 2.25,\n ScriptGetPurchasedServerLimit: 0.05,\n ScriptGetPurchasedServerMaxRam: 0.05,\n ScriptRoundRamCost: 0.05,\n ScriptReadWriteRamCost: 1.0,\n ScriptArbScriptRamCost: 1.0,\n ScriptGetScriptRamCost: 0.1,\n ScriptGetRunningScriptRamCost: 0.3,\n ScriptGetHackTimeRamCost: 0.05,\n ScriptGetFavorToDonate: 0.1,\n ScriptCodingContractBaseRamCost: 10,\n ScriptSleeveBaseRamCost: 4,\n ScriptClearTerminalCost: 0.2,\n\n ScriptSingularityFn1RamCost: 2,\n ScriptSingularityFn2RamCost: 3,\n ScriptSingularityFn3RamCost: 5,\n\n ScriptGangApiBaseRamCost: 4,\n\n ScriptBladeburnerApiBaseRamCost: 4,\n\n ScriptStanekWidth: 0.4,\n ScriptStanekHeight: 0.4,\n ScriptStanekCharge: 0.4,\n ScriptStanekFragmentDefinitions: 0,\n ScriptStanekPlacedFragments: 5,\n ScriptStanekClear: 0,\n ScriptStanekCanPlace: 0.5,\n ScriptStanekPlace: 5,\n ScriptStanekFragmentAt: 2,\n ScriptStanekDeleteAt: 0.15,\n ScriptInfiltrationCalculateDifficulty: 2.5,\n ScriptInfiltrationCalculateRewards: 2.5,\n ScriptInfiltrationGetLocations: 5,\n ScriptInfiltrationGetInfiltrations: 15,\n ScriptStanekAcceptGift: 2,\n};\n\nfunction SF4Cost(cost: number): (player: IPlayer) => number {\n return (player: IPlayer): number => {\n if (player.bitNodeN === 4) return cost;\n const sf4 = player.sourceFileLvl(4);\n if (sf4 <= 1) return cost * 16;\n if (sf4 === 2) return cost * 4;\n return cost;\n };\n}\n\n// Hacknet API\nconst hacknet = {\n numNodes: 0,\n purchaseNode: 0,\n getPurchaseNodeCost: 0,\n getNodeStats: 0,\n upgradeLevel: 0,\n upgradeRam: 0,\n upgradeCore: 0,\n upgradeCache: 0,\n getLevelUpgradeCost: 0,\n getRamUpgradeCost: 0,\n getCoreUpgradeCost: 0,\n getCacheUpgradeCost: 0,\n numHashes: 0,\n hashCost: 0,\n spendHashes: 0,\n maxNumNodes: 0,\n hashCapacity: 0,\n getHashUpgrades: 0,\n getHashUpgradeLevel: 0,\n getStudyMult: 0,\n getTrainingMult: 0,\n};\n\n// Stock API\nconst stock = {\n hasWSEAccount: 0.05,\n hasTIXAPIAccess: 0.05,\n has4SData: 0.05,\n has4SDataTIXAPI: 0.05,\n getSymbols: RamCostConstants.ScriptGetStockRamCost,\n getPrice: RamCostConstants.ScriptGetStockRamCost,\n getAskPrice: RamCostConstants.ScriptGetStockRamCost,\n getBidPrice: RamCostConstants.ScriptGetStockRamCost,\n getPosition: RamCostConstants.ScriptGetStockRamCost,\n getMaxShares: RamCostConstants.ScriptGetStockRamCost,\n getPurchaseCost: RamCostConstants.ScriptGetStockRamCost,\n getSaleGain: RamCostConstants.ScriptGetStockRamCost,\n buyStock: RamCostConstants.ScriptBuySellStockRamCost,\n sellStock: RamCostConstants.ScriptBuySellStockRamCost,\n buyShort: RamCostConstants.ScriptBuySellStockRamCost,\n sellShort: RamCostConstants.ScriptBuySellStockRamCost,\n placeOrder: RamCostConstants.ScriptBuySellStockRamCost,\n cancelOrder: RamCostConstants.ScriptBuySellStockRamCost,\n getOrders: RamCostConstants.ScriptBuySellStockRamCost,\n getVolatility: RamCostConstants.ScriptBuySellStockRamCost,\n getForecast: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketData: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketDataTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseWseAccount: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n};\n\n// Singularity API\nconst singularity = {\n universityCourse: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n gymWorkout: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n travelToCity: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n goToLocation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseTor: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n purchaseProgram: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n getCurrentServer: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n connect: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n manualHack: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n installBackdoor: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n getDarkwebProgramCost: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n getDarkwebPrograms: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n hospitalize: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n isBusy: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n stopAction: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 2),\n upgradeHomeRam: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n upgradeHomeCores: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getUpgradeHomeRamCost: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 2),\n getUpgradeHomeCoresCost: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 2),\n workForCompany: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n applyToCompany: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n quitJob: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getCompanyRep: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getCompanyFavor: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getCompanyFavorGain: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 4),\n checkFactionInvitations: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n joinFaction: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n workForFaction: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getFactionRep: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getFactionFavor: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getFactionFavorGain: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 4),\n donateToFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n createProgram: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n commitCrime: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getCrimeChance: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getCrimeStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getOwnedAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getOwnedSourceFiles: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationsFromFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationCost: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrereq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationBasePrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationRepReq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseAugmentation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n softReset: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n installAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n isFocused: SF4Cost(0.1),\n setFocus: SF4Cost(0.1),\n b1tflum3: SF4Cost(16),\n destroyW0r1dD43m0n: SF4Cost(32),\n getCurrentWork: SF4Cost(0.5),\n};\n\n// Gang API\nconst gang = {\n createGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n inGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getMemberNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getOtherGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getMemberInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n canRecruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n recruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getTaskNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getTaskStats: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n setMemberTask: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getEquipmentCost: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentType: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentStats: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n purchaseEquipment: RamCostConstants.ScriptGangApiBaseRamCost,\n ascendMember: RamCostConstants.ScriptGangApiBaseRamCost,\n getAscensionResult: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n setTerritoryWarfare: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getChanceToWinClash: RamCostConstants.ScriptGangApiBaseRamCost,\n getBonusTime: 0,\n};\n\n// Bladeburner API\nconst bladeburner = {\n getContractNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getOperationNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getGeneralActionNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getSkillNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n startAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n stopBladeburnerAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getCurrentAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 4,\n getActionTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionEstimatedSuccessChance: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionRepGain: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCountRemaining: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionMaxLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillPoints: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillUpgradeCost: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n upgradeSkill: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityEstimatedPopulation: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityCommunities: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityChaos: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n switchCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getStamina: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerFaction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerDivision: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getBonusTime: 0,\n};\n\nconst infiltration = {\n getPossibleLocations: RamCostConstants.ScriptInfiltrationGetLocations,\n getInfiltration: RamCostConstants.ScriptInfiltrationGetInfiltrations,\n};\n\n// Coding Contract API\nconst codingcontract = {\n attempt: RamCostConstants.ScriptCodingContractBaseRamCost,\n getContractType: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getData: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getDescription: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getNumTriesRemaining: RamCostConstants.ScriptCodingContractBaseRamCost / 5,\n};\n\n// Duplicate Sleeve API\nconst sleeve = {\n getNumSleeves: RamCostConstants.ScriptSleeveBaseRamCost,\n setToShockRecovery: RamCostConstants.ScriptSleeveBaseRamCost,\n setToSynchronize: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCommitCrime: RamCostConstants.ScriptSleeveBaseRamCost,\n setToUniversityCourse: RamCostConstants.ScriptSleeveBaseRamCost,\n travel: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCompanyWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToFactionWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToGymWorkout: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveStats: RamCostConstants.ScriptSleeveBaseRamCost,\n getTask: RamCostConstants.ScriptSleeveBaseRamCost,\n getInformation: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentations: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleevePurchasableAugs: RamCostConstants.ScriptSleeveBaseRamCost,\n purchaseSleeveAug: RamCostConstants.ScriptSleeveBaseRamCost,\n setToBladeburnerAction: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationPrice: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationRepReq: RamCostConstants.ScriptSleeveBaseRamCost,\n};\n\n// Stanek API\nconst stanek = {\n giftWidth: RamCostConstants.ScriptStanekWidth,\n giftHeight: RamCostConstants.ScriptStanekHeight,\n chargeFragment: RamCostConstants.ScriptStanekCharge,\n fragmentDefinitions: RamCostConstants.ScriptStanekFragmentDefinitions,\n activeFragments: RamCostConstants.ScriptStanekPlacedFragments,\n clearGift: RamCostConstants.ScriptStanekClear,\n canPlaceFragment: RamCostConstants.ScriptStanekCanPlace,\n placeFragment: RamCostConstants.ScriptStanekPlace,\n getFragment: RamCostConstants.ScriptStanekFragmentAt,\n removeFragment: RamCostConstants.ScriptStanekDeleteAt,\n acceptGift: RamCostConstants.ScriptStanekAcceptGift,\n};\n\n// UI API\nconst ui = {\n getTheme: 0,\n setTheme: 0,\n resetTheme: 0,\n getStyles: 0,\n setStyles: 0,\n resetStyles: 0,\n getGameInfo: 0,\n clearTerminal: 0,\n};\n\n// Grafting API\nconst grafting = {\n getAugmentationGraftPrice: 3.75,\n getAugmentationGraftTime: 3.75,\n getGraftableAugmentations: 5,\n graftAugmentation: 7.5,\n};\n\nconst corporation = {\n getMaterialNames: 0,\n getIndustryTypes: 0,\n getUnlockables: 0,\n getUpgradeNames: 0,\n getResearchNames: 0,\n createCorporation: 0,\n hasUnlockUpgrade: 0,\n getUnlockUpgradeCost: 0,\n getUpgradeLevel: 0,\n getUpgradeLevelCost: 0,\n getExpandIndustryCost: 0,\n getExpandCityCost: 0,\n getInvestmentOffer: 0,\n acceptInvestmentOffer: 0,\n goPublic: 0,\n bribe: 0,\n getCorporation: 0,\n getDivision: 0,\n expandIndustry: 0,\n expandCity: 0,\n unlockUpgrade: 0,\n levelUpgrade: 0,\n issueDividends: 0,\n buyBackShares: 0,\n sellShares: 0,\n getBonusTime: 0,\n sellMaterial: 0,\n sellProduct: 0,\n discontinueProduct: 0,\n setSmartSupply: 0,\n setSmartSupplyUseLeftovers: 0,\n buyMaterial: 0,\n bulkPurchase: 0,\n getWarehouse: 0,\n getProduct: 0,\n getMaterial: 0,\n setMaterialMarketTA1: 0,\n setMaterialMarketTA2: 0,\n setProductMarketTA1: 0,\n setProductMarketTA2: 0,\n exportMaterial: 0,\n cancelExportMaterial: 0,\n purchaseWarehouse: 0,\n upgradeWarehouse: 0,\n makeProduct: 0,\n limitMaterialProduction: 0,\n limitProductProduction: 0,\n getPurchaseWarehouseCost: 0,\n getUpgradeWarehouseCost: 0,\n hasWarehouse: 0,\n assignJob: 0,\n hireEmployee: 0,\n upgradeOfficeSize: 0,\n throwParty: 0,\n buyCoffee: 0,\n hireAdVert: 0,\n research: 0,\n getOffice: 0,\n getEmployee: 0,\n getHireAdVertCost: 0,\n getHireAdVertCount: 0,\n getResearchCost: 0,\n hasResearched: 0,\n setAutoJobAssignment: 0,\n getOfficeSizeUpgradeCost: 0,\n};\n\nconst SourceRamCosts = {\n args: undefined as unknown as never[], // special use case\n enums: undefined as unknown as never,\n corporation,\n hacknet,\n stock,\n singularity,\n ...singularity, // singularity is in namespace & toplevel\n gang,\n bladeburner,\n infiltration,\n codingcontract,\n sleeve,\n stanek,\n ui,\n grafting,\n\n sprintf: 0,\n vsprintf: 0,\n scan: RamCostConstants.ScriptScanRamCost,\n hack: RamCostConstants.ScriptHackRamCost,\n hackAnalyzeThreads: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyze: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeSecurity: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeChance: RamCostConstants.ScriptHackAnalyzeRamCost,\n sleep: 0,\n asleep: 0,\n share: 2.4,\n getSharePower: 0.2,\n grow: RamCostConstants.ScriptGrowRamCost,\n growthAnalyze: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n growthAnalyzeSecurity: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n weaken: RamCostConstants.ScriptWeakenRamCost,\n weakenAnalyze: RamCostConstants.ScriptWeakenAnalyzeRamCost,\n print: 0,\n printf: 0,\n tprint: 0,\n tprintf: 0,\n clearLog: 0,\n disableLog: 0,\n enableLog: 0,\n isLogEnabled: 0,\n getScriptLogs: 0,\n nuke: RamCostConstants.ScriptPortProgramRamCost,\n brutessh: RamCostConstants.ScriptPortProgramRamCost,\n ftpcrack: RamCostConstants.ScriptPortProgramRamCost,\n relaysmtp: RamCostConstants.ScriptPortProgramRamCost,\n httpworm: RamCostConstants.ScriptPortProgramRamCost,\n sqlinject: RamCostConstants.ScriptPortProgramRamCost,\n run: RamCostConstants.ScriptRunRamCost,\n exec: RamCostConstants.ScriptExecRamCost,\n spawn: RamCostConstants.ScriptSpawnRamCost,\n kill: RamCostConstants.ScriptKillRamCost,\n killall: RamCostConstants.ScriptKillRamCost,\n exit: 0,\n atExit: 0,\n scp: RamCostConstants.ScriptScpRamCost,\n ls: RamCostConstants.ScriptScanRamCost,\n ps: RamCostConstants.ScriptScanRamCost,\n getRecentScripts: RamCostConstants.ScriptRecentScriptsRamCost,\n hasRootAccess: RamCostConstants.ScriptHasRootAccessRamCost,\n getHostname: RamCostConstants.ScriptGetHostnameRamCost,\n getHackingLevel: RamCostConstants.ScriptGetHackingLevelRamCost,\n getHackingMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getHacknetMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getBitNodeMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getServer: RamCostConstants.ScriptGetMultipliersRamCost / 2,\n getServerMoneyAvailable: RamCostConstants.ScriptGetServerRamCost,\n getServerSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerBaseSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMinSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerRequiredHackingLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxMoney: RamCostConstants.ScriptGetServerRamCost,\n getServerGrowth: RamCostConstants.ScriptGetServerRamCost,\n getServerNumPortsRequired: RamCostConstants.ScriptGetServerRamCost,\n getServerRam: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxRam: RamCostConstants.ScriptGetServerMaxRam,\n getServerUsedRam: RamCostConstants.ScriptGetServerUsedRam,\n serverExists: RamCostConstants.ScriptGetServerRamCost,\n fileExists: RamCostConstants.ScriptFileExistsRamCost,\n isRunning: RamCostConstants.ScriptIsRunningRamCost,\n getPurchasedServerLimit: RamCostConstants.ScriptGetPurchasedServerLimit,\n getPurchasedServerMaxRam: RamCostConstants.ScriptGetPurchasedServerMaxRam,\n getPurchasedServerCost: RamCostConstants.ScriptGetPurchaseServerRamCost,\n purchaseServer: RamCostConstants.ScriptPurchaseServerRamCost,\n deleteServer: RamCostConstants.ScriptPurchaseServerRamCost,\n getPurchasedServers: RamCostConstants.ScriptPurchaseServerRamCost,\n write: 0,\n tryWritePort: 0,\n read: 0,\n peek: 0,\n clear: 0,\n writePort: 0,\n readPort: 0,\n getPortHandle: 0,\n rm: RamCostConstants.ScriptReadWriteRamCost,\n scriptRunning: RamCostConstants.ScriptArbScriptRamCost,\n scriptKill: RamCostConstants.ScriptArbScriptRamCost,\n getScriptName: 0,\n getScriptRam: RamCostConstants.ScriptGetScriptRamCost,\n getHackTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getGrowTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getWeakenTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getTotalScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getTotalScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getRunningScript: RamCostConstants.ScriptGetRunningScriptRamCost,\n nFormat: 0,\n tFormat: 0,\n getTimeSinceLastAug: RamCostConstants.ScriptGetHackTimeRamCost,\n prompt: 0,\n wget: 0,\n getFavorToDonate: RamCostConstants.ScriptGetFavorToDonate,\n getPlayer: RamCostConstants.ScriptSingularityFn1RamCost / 4,\n mv: 0,\n tail: 0,\n toast: 0,\n closeTail: 0,\n clearPort: 0,\n openDevMenu: 0,\n alert: 0,\n flags: 0,\n exploit: 0,\n bypass: 0,\n alterReality: 0,\n rainbow: 0,\n heart: {\n // Easter egg function\n break: 0,\n },\n\n formulas: {\n reputation: {\n calculateFavorToRep: 0,\n calculateRepToFavor: 0,\n repFromDonation: 0,\n },\n skills: {\n calculateSkill: 0,\n calculateExp: 0,\n },\n hacking: {\n hackChance: 0,\n hackExp: 0,\n hackPercent: 0,\n growPercent: 0,\n hackTime: 0,\n growTime: 0,\n weakenTime: 0,\n },\n hacknetNodes: {\n moneyGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n hacknetNodeCost: 0,\n constants: 0,\n },\n hacknetServers: {\n hashGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n cacheUpgradeCost: 0,\n hashUpgradeCost: 0,\n hacknetServerCost: 0,\n constants: 0,\n },\n gang: {\n wantedPenalty: 0,\n respectGain: 0,\n wantedLevelGain: 0,\n moneyGain: 0,\n ascensionPointsGain: 0,\n ascensionMultiplier: 0,\n },\n work: {\n crimeGains: 0,\n classGains: 0,\n factionGains: 0,\n },\n },\n};\n\nexport const RamCosts: IMap = SourceRamCosts;\n\n// This line in particular is there so typescript typechecks that we are not missing any static ram cost.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _typecheck: RamCostTree = SourceRamCosts;\n\nexport function getRamCost(player: IPlayer, ...args: string[]): number {\n if (args.length === 0) {\n console.warn(`No arguments passed to getRamCost()`);\n return 0;\n }\n\n let curr = RamCosts[args[0]];\n for (let i = 1; i < args.length; ++i) {\n if (curr == null) {\n console.warn(`Invalid function passed to getRamCost: ${args}`);\n return 0;\n }\n\n const currType = typeof curr;\n if (currType === \"function\" || currType === \"number\") {\n break;\n }\n\n curr = curr[args[i]];\n }\n\n if (typeof curr === \"number\") {\n return curr;\n }\n\n if (typeof curr === \"function\") {\n return curr(player);\n }\n\n console.warn(`Unexpected type (${curr}) for value [${args}]`);\n return 0;\n}\n","import { Skill } from \"./Skill\";\nimport { SkillNames } from \"./data/SkillNames\";\nimport { IMap } from \"../types\";\n\nexport const Skills: IMap = {};\n\n(function () {\n Skills[SkillNames.BladesIntuition] = new Skill({\n name: SkillNames.BladesIntuition,\n desc: \"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%\",\n baseCost: 3,\n costInc: 2.1,\n successChanceAll: 3,\n });\n Skills[SkillNames.Cloak] = new Skill({\n name: SkillNames.Cloak,\n desc:\n \"Each level of this skill increases your \" +\n \"success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%\",\n baseCost: 2,\n costInc: 1.1,\n successChanceStealth: 5.5,\n });\n Skills[SkillNames.ShortCircuit] = new Skill({\n name: SkillNames.ShortCircuit,\n desc:\n \"Each level of this skill increases your success chance \" +\n \"in Contracts, Operations, and BlackOps that involve retirement by 5.5%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceKill: 5.5,\n });\n Skills[SkillNames.DigitalObserver] = new Skill({\n name: SkillNames.DigitalObserver,\n desc: \"Each level of this skill increases your success chance in all Operations and BlackOps by 4%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceOperation: 4,\n });\n Skills[SkillNames.Tracer] = new Skill({\n name: SkillNames.Tracer,\n desc: \"Each level of this skill increases your success chance in all Contracts by 4%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceContract: 4,\n });\n Skills[SkillNames.Overclock] = new Skill({\n name: SkillNames.Overclock,\n desc:\n \"Each level of this skill decreases the time it takes \" +\n \"to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)\",\n baseCost: 3,\n costInc: 1.4,\n maxLvl: 90,\n actionTime: 1,\n });\n Skills[SkillNames.Reaper] = new Skill({\n name: SkillNames.Reaper,\n desc: \"Each level of this skill increases your effective combat stats for Bladeburner actions by 2%\",\n baseCost: 2,\n costInc: 2.1,\n effStr: 2,\n effDef: 2,\n effDex: 2,\n effAgi: 2,\n });\n Skills[SkillNames.EvasiveSystem] = new Skill({\n name: SkillNames.EvasiveSystem,\n desc: \"Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%\",\n baseCost: 2,\n costInc: 2.1,\n effDex: 4,\n effAgi: 4,\n });\n Skills[SkillNames.Datamancer] = new Skill({\n name: SkillNames.Datamancer,\n desc:\n \"Each level of this skill increases your effectiveness in \" +\n \"synthoid population analysis and investigation by 5%. \" +\n \"This affects all actions that can potentially increase \" +\n \"the accuracy of your synthoid population/community estimates.\",\n baseCost: 3,\n costInc: 1,\n successChanceEstimate: 5,\n });\n Skills[SkillNames.CybersEdge] = new Skill({\n name: SkillNames.CybersEdge,\n desc: \"Each level of this skill increases your max stamina by 2%\",\n baseCost: 1,\n costInc: 3,\n stamina: 2,\n });\n Skills[SkillNames.HandsOfMidas] = new Skill({\n name: SkillNames.HandsOfMidas,\n desc: \"Each level of this skill increases the amount of money you receive from Contracts by 10%\",\n baseCost: 2,\n costInc: 2.5,\n money: 10,\n });\n Skills[SkillNames.Hyperdrive] = new Skill({\n name: SkillNames.Hyperdrive,\n desc: \"Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%\",\n baseCost: 1,\n costInc: 2.5,\n expGain: 10,\n });\n})();\n","/**\n * Stock Market Helper Functions\n */\nimport { Stock } from \"./Stock\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { CONSTANTS } from \"../Constants\";\n\n// Amount by which a stock's forecast changes during each price movement\nexport const forecastChangePerPriceMovement = 0.006;\n\n/**\n * Calculate the total cost of a \"buy\" transaction. This accounts for spread and commission.\n * @param {Stock} stock - Stock being purchased\n * @param {number} shares - Number of shares being transacted\n * @param {PositionTypes} posType - Long or short position\n * @returns {number | null} Total transaction cost. Returns null for an invalid transaction\n */\nexport function getBuyTransactionCost(stock: Stock, shares: number, posType: PositionTypes): number | null {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return null;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n const isLong = posType === PositionTypes.Long;\n\n // If the number of shares doesn't trigger a price movement, its a simple calculation\n if (isLong) {\n return shares * stock.getAskPrice() + CONSTANTS.StockMarketCommission;\n } else {\n return shares * stock.getBidPrice() + CONSTANTS.StockMarketCommission;\n }\n}\n\n/**\n * Calculate the TOTAL amount of money gained from a sale (NOT net profit). This accounts\n * for spread and commission.\n * @param {Stock} stock - Stock being sold\n * @param {number} shares - Number of sharse being transacted\n * @param {PositionTypes} posType - Long or short position\n * @returns {number | null} Amount of money gained from transaction. Returns null for an invalid transaction\n */\nexport function getSellTransactionGain(stock: Stock, shares: number, posType: PositionTypes): number | null {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return null;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n const isLong = posType === PositionTypes.Long;\n if (isLong) {\n return shares * stock.getBidPrice() - CONSTANTS.StockMarketCommission;\n } else {\n // Calculating gains for a short position requires calculating the profit made\n const origCost = shares * stock.playerAvgShortPx;\n const profit = (stock.playerAvgShortPx - stock.getAskPrice()) * shares - CONSTANTS.StockMarketCommission;\n\n return origCost + profit;\n }\n}\n\n/**\n * Processes a stock's change in forecast & second-order forecast\n * whenever it is transacted\n * @param {Stock} stock - Stock being sold\n * @param {number} shares - Number of sharse being transacted\n * @param {PositionTypes} posType - Long or short position\n */\nexport function processTransactionForecastMovement(stock: Stock, shares: number): void {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n // If there's only going to be one iteration at most\n const firstShares = stock.shareTxUntilMovement;\n if (shares <= firstShares) {\n stock.shareTxUntilMovement -= shares;\n if (stock.shareTxUntilMovement <= 0) {\n stock.shareTxUntilMovement = stock.shareTxForMovement;\n stock.influenceForecast(forecastChangePerPriceMovement);\n stock.influenceForecastForecast(forecastChangePerPriceMovement * (stock.mv / 100));\n }\n\n return;\n }\n\n // Calculate how many iterations of price changes we need to account for\n const remainingShares = shares - firstShares;\n let numIterations = 1 + Math.ceil(remainingShares / stock.shareTxForMovement);\n\n // If on the offchance we end up perfectly at the next price movement\n stock.shareTxUntilMovement =\n stock.shareTxForMovement - ((shares - stock.shareTxUntilMovement) % stock.shareTxForMovement);\n if (stock.shareTxUntilMovement === stock.shareTxForMovement || stock.shareTxUntilMovement <= 0) {\n ++numIterations;\n stock.shareTxUntilMovement = stock.shareTxForMovement;\n }\n\n // Forecast always decreases in magnitude\n const forecastChange = forecastChangePerPriceMovement * (numIterations - 1);\n const forecastForecastChange = forecastChange * (stock.mv / 100);\n stock.influenceForecast(forecastChange);\n stock.influenceForecastForecast(forecastForecastChange);\n}\n\n/**\n * Calculate the maximum number of shares of a stock that can be purchased.\n * Handles mid-transaction price movements, both L and S positions, etc.\n * Used for the \"Buy Max\" button in the UI\n * @param {Stock} stock - Stock being purchased\n * @param {PositionTypes} posType - Long or short position\n * @param {number} money - Amount of money player has\n * @returns maximum number of shares that the player can purchase\n */\nexport function calculateBuyMaxAmount(stock: Stock, posType: PositionTypes, money: number): number {\n if (!(stock instanceof Stock)) {\n return 0;\n }\n\n const isLong = posType === PositionTypes.Long;\n\n const remainingMoney = money - CONSTANTS.StockMarketCommission;\n const currPrice = isLong ? stock.getAskPrice() : stock.getBidPrice();\n\n return Math.floor(remainingMoney / currPrice);\n}\n","import { gangMemberUpgradesMetadata } from \"./data/upgrades\";\nimport { GangMemberUpgrade } from \"./GangMemberUpgrade\";\n\nexport const GangMemberUpgrades: {\n [key: string]: GangMemberUpgrade;\n} = {};\n\n(function () {\n gangMemberUpgradesMetadata.forEach((e) => {\n GangMemberUpgrades[e.name] = new GangMemberUpgrade(e.name, e.cost, e.upgType, e.mults);\n });\n})();\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\n\nexport function getStockMarket4SDataCost(): number {\n return CONSTANTS.MarketData4SCost * BitNodeMultipliers.FourSigmaMarketDataCost;\n}\n\nexport function getStockMarket4STixApiCost(): number {\n return CONSTANTS.MarketDataTixApi4SCost * BitNodeMultipliers.FourSigmaMarketDataApiCost;\n}\n\nexport function getStockMarketWseCost(): number {\n return CONSTANTS.WSEAccountCost;\n}\n\nexport function getStockMarketTixApiCost(): number {\n return CONSTANTS.TIXAPICost;\n}\n","import { TextField, StandardTextFieldProps } from \"@mui/material\";\nimport React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\n\ninterface IProps extends Omit {\n onChange: (v: number) => void;\n}\n\nexport function NumberInput(props: IProps): React.ReactElement {\n const textProps = {\n ...props,\n onChange: (event: React.ChangeEvent) => {\n const amt = numeralWrapper.parseMoney(event.target.value);\n if (event.target.value === \"\" || isNaN(amt)) props.onChange(NaN);\n else props.onChange(amt);\n },\n };\n return ;\n}\n","import { AugmentationStats } from \"../ScriptEditor/NetscriptDefinitions\";\n\nexport interface Multipliers {\n hacking_chance: number;\n hacking_speed: number;\n hacking_money: number;\n hacking_grow: number;\n hacking: number;\n hacking_exp: number;\n strength: number;\n strength_exp: number;\n defense: number;\n defense_exp: number;\n dexterity: number;\n dexterity_exp: number;\n agility: number;\n agility_exp: number;\n charisma: number;\n charisma_exp: number;\n hacknet_node_money: number;\n hacknet_node_purchase_cost: number;\n hacknet_node_ram_cost: number;\n hacknet_node_core_cost: number;\n hacknet_node_level_cost: number;\n company_rep: number;\n faction_rep: number;\n work_money: number;\n crime_success: number;\n crime_money: number;\n bladeburner_max_stamina: number;\n bladeburner_stamina_gain: number;\n bladeburner_analysis: number;\n bladeburner_success_chance: number;\n}\n\nexport const defaultMultipliers = (): Multipliers => {\n return {\n hacking_chance: 1,\n hacking_speed: 1,\n hacking_money: 1,\n hacking_grow: 1,\n hacking: 1,\n hacking_exp: 1,\n strength: 1,\n strength_exp: 1,\n defense: 1,\n defense_exp: 1,\n dexterity: 1,\n dexterity_exp: 1,\n agility: 1,\n agility_exp: 1,\n charisma: 1,\n charisma_exp: 1,\n hacknet_node_money: 1,\n hacknet_node_purchase_cost: 1,\n hacknet_node_ram_cost: 1,\n hacknet_node_core_cost: 1,\n hacknet_node_level_cost: 1,\n company_rep: 1,\n faction_rep: 1,\n work_money: 1,\n crime_success: 1,\n crime_money: 1,\n bladeburner_max_stamina: 1,\n bladeburner_stamina_gain: 1,\n bladeburner_analysis: 1,\n bladeburner_success_chance: 1,\n };\n};\n\nexport const mergeMultipliers = (m0: Multipliers, m1: AugmentationStats): Multipliers => {\n return {\n hacking_chance: m0.hacking_chance * (m1.hacking_chance ?? 1),\n hacking_speed: m0.hacking_speed * (m1.hacking_speed ?? 1),\n hacking_money: m0.hacking_money * (m1.hacking_money ?? 1),\n hacking_grow: m0.hacking_grow * (m1.hacking_grow ?? 1),\n hacking: m0.hacking * (m1.hacking ?? 1),\n hacking_exp: m0.hacking_exp * (m1.hacking_exp ?? 1),\n strength: m0.strength * (m1.strength ?? 1),\n strength_exp: m0.strength_exp * (m1.strength_exp ?? 1),\n defense: m0.defense * (m1.defense ?? 1),\n defense_exp: m0.defense_exp * (m1.defense_exp ?? 1),\n dexterity: m0.dexterity * (m1.dexterity ?? 1),\n dexterity_exp: m0.dexterity_exp * (m1.dexterity_exp ?? 1),\n agility: m0.agility * (m1.agility ?? 1),\n agility_exp: m0.agility_exp * (m1.agility_exp ?? 1),\n charisma: m0.charisma * (m1.charisma ?? 1),\n charisma_exp: m0.charisma_exp * (m1.charisma_exp ?? 1),\n hacknet_node_money: m0.hacknet_node_money * (m1.hacknet_node_money ?? 1),\n hacknet_node_purchase_cost: m0.hacknet_node_purchase_cost * (m1.hacknet_node_purchase_cost ?? 1),\n hacknet_node_ram_cost: m0.hacknet_node_ram_cost * (m1.hacknet_node_ram_cost ?? 1),\n hacknet_node_core_cost: m0.hacknet_node_core_cost * (m1.hacknet_node_core_cost ?? 1),\n hacknet_node_level_cost: m0.hacknet_node_level_cost * (m1.hacknet_node_level_cost ?? 1),\n company_rep: m0.company_rep * (m1.company_rep ?? 1),\n faction_rep: m0.faction_rep * (m1.faction_rep ?? 1),\n work_money: m0.work_money * (m1.work_money ?? 1),\n crime_success: m0.crime_success * (m1.crime_success ?? 1),\n crime_money: m0.crime_money * (m1.crime_money ?? 1),\n bladeburner_max_stamina: m0.bladeburner_max_stamina * (m1.bladeburner_max_stamina ?? 1),\n bladeburner_stamina_gain: m0.bladeburner_stamina_gain * (m1.bladeburner_stamina_gain ?? 1),\n bladeburner_analysis: m0.bladeburner_analysis * (m1.bladeburner_analysis ?? 1),\n bladeburner_success_chance: m0.bladeburner_success_chance * (m1.bladeburner_success_chance ?? 1),\n };\n};\n","/**\n * Map of all Hash Upgrades\n * Key = Hash name, Value = HashUpgrade object\n */\nimport { HashUpgrade, IConstructorParams } from \"./HashUpgrade\";\nimport { HashUpgradesMetadata } from \"./data/HashUpgradesMetadata\";\nimport { IMap } from \"../types\";\n\nexport const HashUpgrades: IMap = {};\n\nfunction createHashUpgrade(p: IConstructorParams): void {\n HashUpgrades[p.name] = new HashUpgrade(p);\n}\n\nfor (const metadata of HashUpgradesMetadata) {\n createHashUpgrade(metadata);\n}\n","import { gangMemberTasksMetadata } from \"./data/tasks\";\nimport { GangMemberTask } from \"./GangMemberTask\";\n\nexport const GangMemberTasks: {\n [key: string]: GangMemberTask;\n} = {};\n\n(function () {\n gangMemberTasksMetadata.forEach((e) => {\n GangMemberTasks[e.name] = new GangMemberTask(e.name, e.desc, e.isHacking, e.isCombat, e.params);\n });\n})();\n","import { Material } from \"./Material\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { IMap } from \"../types\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\n\ninterface IConstructorParams {\n corp?: ICorporation;\n industry?: IIndustry;\n loc?: string;\n size?: number;\n}\n\nexport class Warehouse {\n // Warehouse's level, which affects its maximum size\n level = 1;\n\n // City that this Warehouse is in\n loc: string;\n\n // Map of Materials held by this Warehouse\n materials: IMap;\n\n // Maximum amount warehouse can hold\n size: number;\n\n // Amount of space currently used by warehouse\n sizeUsed = 0;\n\n // Whether Smart Supply is enabled for this Industry (the Industry that this Warehouse is for)\n smartSupplyEnabled = false;\n\n // Decide if smart supply should use the materials already in the warehouse when deciding on the amount to buy.\n smartSupplyUseLeftovers: { [key: string]: boolean | undefined } = {};\n\n // Stores the amount of product to be produced. Used for Smart Supply unlock.\n // The production tracked by smart supply is always based on the previous cycle,\n // so it will always trail the \"true\" production by 1 cycle\n smartSupplyStore = 0;\n\n constructor(params: IConstructorParams = {}) {\n this.loc = params.loc ? params.loc : \"\";\n this.size = params.size ? params.size : 0;\n\n this.materials = {\n Water: new Material({ name: \"Water\" }),\n Energy: new Material({ name: \"Energy\" }),\n Food: new Material({ name: \"Food\" }),\n Plants: new Material({ name: \"Plants\" }),\n Metal: new Material({ name: \"Metal\" }),\n Hardware: new Material({ name: \"Hardware\" }),\n Chemicals: new Material({ name: \"Chemicals\" }),\n Drugs: new Material({ name: \"Drugs\" }),\n Robots: new Material({ name: \"Robots\" }),\n AICores: new Material({ name: \"AI Cores\" }),\n RealEstate: new Material({ name: \"Real Estate\" }),\n };\n\n this.smartSupplyUseLeftovers = {\n Water: true,\n Energy: true,\n Food: true,\n Plants: true,\n Metal: true,\n Hardware: true,\n Chemicals: true,\n Drugs: true,\n Robots: true,\n AICores: true,\n RealEstate: true,\n };\n\n if (params.corp && params.industry) {\n this.updateSize(params.corp, params.industry);\n }\n\n // Default smart supply to being enabled if the upgrade is unlocked\n if (params.corp?.unlockUpgrades[1]) {\n this.smartSupplyEnabled = true;\n }\n }\n\n // Re-calculate how much space is being used by this Warehouse\n updateMaterialSizeUsed(): void {\n this.sizeUsed = 0;\n for (const matName of Object.keys(this.materials)) {\n const mat = this.materials[matName];\n if (MaterialSizes.hasOwnProperty(matName)) {\n this.sizeUsed += mat.qty * MaterialSizes[matName];\n }\n }\n if (this.sizeUsed > this.size) {\n console.warn(\"Warehouse size used greater than capacity, something went wrong\");\n }\n }\n\n updateSize(corporation: ICorporation, industry: IIndustry): void {\n try {\n this.size = this.level * 100 * corporation.getStorageMultiplier() * industry.getStorageMultiplier();\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Warehouse\", this);\n }\n\n // Initiatizes a Warehouse object from a JSON save state.\n static fromJSON(value: IReviverValue): Warehouse {\n return Generic_fromJSON(Warehouse, value.data);\n }\n}\n\nReviver.constructors.Warehouse = Warehouse;\n","/**\n * Functions for buying/selling stocks. There are four functions total, two for\n * long positions and two for short positions.\n */\nimport { Stock } from \"./Stock\";\nimport {\n getBuyTransactionCost,\n getSellTransactionGain,\n processTransactionForecastMovement,\n} from \"./StockMarketHelpers\";\n\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { Player } from \"../Player\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nimport * as React from \"react\";\n\n/**\n * Each function takes an optional config object as its last argument\n */\ninterface IOptions {\n rerenderFn?: () => void;\n suppressDialog?: boolean;\n}\n\n/**\n * Attempt to buy a stock in the long position\n * @param {Stock} stock - Stock to buy\n * @param {number} shares - Number of shares to buy\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function buyStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.buyStock\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\"Failed to buy stock. This may be a bug, contact developer\");\n }\n\n return false;\n }\n\n // Does player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Long);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (workerScript) {\n workerScript.log(\n \"stock.buyStock\",\n () =>\n `You do not have enough money to purchase this position. You need ${numeralWrapper.formatMoney(totalPrice)}.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (workerScript) {\n workerScript.log(\n \"stock.buyStock\",\n () =>\n `Purchasing '${shares + stock.playerShares + stock.playerShortShares}' shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${numeralWrapper.formatShares(\n stock.maxShares,\n )} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShares * stock.playerAvgPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShares = Math.round(stock.playerShares + shares);\n stock.playerAvgPx = newTotal / stock.playerShares;\n processTransactionForecastMovement(stock, shares);\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt = `Bought ${numeralWrapper.formatShares(shares)} shares of ${\n stock.symbol\n } for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} in commission fees.`;\n workerScript.log(\"stock.buyStock\", () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Bought {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for . Paid{\" \"}\n in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the long position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * returns {boolean} - true if successfully sells given number of shares OR MAX owned, false otherwise\n */\nexport function sellStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Sanitize/Validate arguments\n if (stock == null || shares < 0 || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.sellStock\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShares) {\n shares = stock.playerShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const gains = getSellTransactionGain(stock, shares, PositionTypes.Long);\n if (gains == null) {\n return false;\n }\n let netProfit = gains - stock.playerAvgPx * shares;\n if (isNaN(netProfit)) {\n netProfit = 0;\n }\n Player.gainMoney(gains, \"stock\");\n if (workerScript) {\n workerScript.scriptRef.onlineMoneyMade += netProfit;\n Player.scriptProdSinceLastAug += netProfit;\n }\n\n stock.playerShares = Math.round(stock.playerShares - shares);\n if (stock.playerShares === 0) {\n stock.playerAvgPx = 0;\n }\n\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`;\n workerScript.log(\"stock.sellStock\", () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Sold {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{\" \"}\n .\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to buy a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to short\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function shortStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.short\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to initiate a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n return false;\n }\n\n // Does the player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Short);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (workerScript) {\n workerScript.log(\n \"stock.short\",\n () =>\n \"You do not have enough \" +\n \"money to purchase this short position. You need \" +\n numeralWrapper.formatMoney(totalPrice),\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this short position. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (workerScript) {\n workerScript.log(\n \"stock.short\",\n () =>\n `This '${shares + stock.playerShares + stock.playerShortShares}' short shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${stock.maxShares} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShortShares * stock.playerAvgShortPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShortShares = Math.round(stock.playerShortShares + shares);\n stock.playerAvgShortPx = newTotal / stock.playerShortShares;\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Bought a short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} ` +\n `for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} ` +\n `in commission fees.`;\n workerScript.log(\"stock.short\", () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Bought a short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for{\" \"}\n . Paid in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} true if successfully sells given amount OR max owned, false otherwise\n */\nexport function sellShort(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n if (stock == null || isNaN(shares) || shares < 0) {\n if (workerScript) {\n workerScript.log(\"stock.sellShort\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n \"Failed to sell a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShortShares) {\n shares = stock.playerShortShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const origCost = shares * stock.playerAvgShortPx;\n const totalGain = getSellTransactionGain(stock, shares, PositionTypes.Short);\n if (totalGain == null || isNaN(totalGain) || origCost == null) {\n if (workerScript) {\n workerScript.log(\n \"stock.sellShort\",\n () => `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n }\n\n return false;\n }\n let profit = totalGain - origCost;\n if (isNaN(profit)) {\n profit = 0;\n }\n Player.gainMoney(totalGain, \"stock\");\n if (workerScript) {\n workerScript.scriptRef.onlineMoneyMade += profit;\n Player.scriptProdSinceLastAug += profit;\n }\n\n stock.playerShortShares = Math.round(stock.playerShortShares - shares);\n if (stock.playerShortShares === 0) {\n stock.playerAvgShortPx = 0;\n }\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Sold your short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(totalGain)}`;\n workerScript.log(\"stock.sellShort\", () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Sold your short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions,\n you gained a total of \n >,\n );\n }\n\n return true;\n}\n","import React from \"react\";\nimport { TextFile } from \"../TextFile\";\nimport { Script } from \"../Script/Script\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"../ui/Router\";\nimport { Settings } from \"../Settings/Settings\";\nimport { formatTime } from \"../utils/helpers/formatTime\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport class Output {\n text: string;\n color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\";\n constructor(text: string, color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\") {\n if (Settings.TimestampsFormat) text = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + text;\n this.text = text;\n this.color = color;\n }\n}\n\nexport class RawOutput {\n raw: React.ReactNode;\n constructor(node: React.ReactNode) {\n if (Settings.TimestampsFormat)\n node = (\n <>\n [{formatTime(Settings.TimestampsFormat)}] {node}\n >\n );\n this.raw = node;\n }\n}\n\nexport class Link {\n hostname: string;\n dashes: string;\n constructor(dashes: string, hostname: string) {\n if (Settings.TimestampsFormat) dashes = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + dashes;\n this.hostname = hostname;\n this.dashes = dashes;\n }\n}\n\nexport class TTimer {\n time: number;\n timeLeft: number;\n action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\";\n server?: BaseServer;\n\n constructor(time: number, action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\", server?: BaseServer) {\n this.time = time;\n this.timeLeft = time;\n this.action = action;\n this.server = server;\n }\n}\n\nexport interface ITerminal {\n action: TTimer | null;\n\n commandHistory: string[];\n commandHistoryIndex: number;\n\n outputHistory: (Output | Link | RawOutput)[];\n\n // True if a Coding Contract prompt is opened\n contractOpen: boolean;\n\n // Full Path of current directory\n // Excludes the trailing forward slash\n currDir: string;\n\n print(s: string): void;\n printRaw(node: React.ReactNode): void;\n error(s: string): void;\n success(s: string): void;\n info(s: string): void;\n warn(s: string): void;\n\n clear(): void;\n startAnalyze(player: IPlayer): void;\n startBackdoor(player: IPlayer): void;\n startHack(player: IPlayer): void;\n startGrow(player: IPlayer): void;\n startWeaken(player: IPlayer): void;\n finishHack(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishGrow(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishWeaken(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishBackdoor(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAnalyze(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAction(router: IRouter, player: IPlayer, cancelled?: boolean): void;\n getFilepath(filename: string): string;\n getFile(player: IPlayer, filename: string): Script | TextFile | string | null;\n getScript(player: IPlayer, filename: string): Script | null;\n getTextFile(player: IPlayer, filename: string): TextFile | null;\n getLitFile(player: IPlayer, filename: string): string | null;\n cwd(): string;\n setcwd(dir: string): void;\n runContract(player: IPlayer, name: string): void;\n executeScanAnalyzeCommand(player: IPlayer, depth?: number, all?: boolean): void;\n connectToServer(player: IPlayer, server: string): void;\n executeCommand(router: IRouter, player: IPlayer, command: string): void;\n executeCommands(router: IRouter, player: IPlayer, commands: string): void;\n // If there was any changes, will return true, once.\n process(router: IRouter, player: IPlayer, cycles: number): void;\n prestige(): void;\n getProgressText(): string;\n}\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\ninterface ISkillParams {\n name: string;\n desc: string;\n\n baseCost?: number;\n costInc?: number;\n maxLvl?: number;\n\n successChanceAll?: number;\n successChanceStealth?: number;\n successChanceKill?: number;\n successChanceContract?: number;\n successChanceOperation?: number;\n successChanceEstimate?: number;\n\n actionTime?: number;\n\n effHack?: number;\n effStr?: number;\n effDef?: number;\n effDex?: number;\n effAgi?: number;\n effCha?: number;\n\n stamina?: number;\n money?: number;\n expGain?: number;\n}\n\nexport class Skill {\n name: string;\n desc: string;\n // Cost is in Skill Points\n baseCost = 1;\n // Additive cost increase per level\n costInc = 1;\n maxLvl = 0;\n\n /**\n * These benefits are additive. So total multiplier will be level (handled externally) times the\n * effects below\n */\n successChanceAll = 0;\n successChanceStealth = 0;\n successChanceKill = 0;\n successChanceContract = 0;\n successChanceOperation = 0;\n\n /**\n * This multiplier affects everything that increases synthoid population/community estimate\n * e.g. Field analysis, Investigation Op, Undercover Op\n */\n successChanceEstimate = 0;\n actionTime = 0;\n effHack = 0;\n effStr = 0;\n effDef = 0;\n effDex = 0;\n effAgi = 0;\n effCha = 0;\n stamina = 0;\n money = 0;\n expGain = 0;\n\n constructor(params: ISkillParams = { name: \"foo\", desc: \"foo\" }) {\n if (!params.name) {\n throw new Error(\"Failed to initialize Bladeburner Skill. No name was specified in ctor\");\n }\n if (!params.desc) {\n throw new Error(\"Failed to initialize Bladeburner Skills. No desc was specified in ctor\");\n }\n this.name = params.name;\n this.desc = params.desc;\n this.baseCost = params.baseCost ? params.baseCost : 1;\n this.costInc = params.costInc ? params.costInc : 1;\n\n if (params.maxLvl) {\n this.maxLvl = params.maxLvl;\n }\n\n if (params.successChanceAll) {\n this.successChanceAll = params.successChanceAll;\n }\n if (params.successChanceStealth) {\n this.successChanceStealth = params.successChanceStealth;\n }\n if (params.successChanceKill) {\n this.successChanceKill = params.successChanceKill;\n }\n if (params.successChanceContract) {\n this.successChanceContract = params.successChanceContract;\n }\n if (params.successChanceOperation) {\n this.successChanceOperation = params.successChanceOperation;\n }\n\n if (params.successChanceEstimate) {\n this.successChanceEstimate = params.successChanceEstimate;\n }\n\n if (params.actionTime) {\n this.actionTime = params.actionTime;\n }\n if (params.effHack) {\n this.effHack = params.effHack;\n }\n if (params.effStr) {\n this.effStr = params.effStr;\n }\n if (params.effDef) {\n this.effDef = params.effDef;\n }\n if (params.effDex) {\n this.effDex = params.effDex;\n }\n if (params.effAgi) {\n this.effAgi = params.effAgi;\n }\n if (params.effCha) {\n this.effCha = params.effCha;\n }\n\n if (params.stamina) {\n this.stamina = params.stamina;\n }\n if (params.money) {\n this.money = params.money;\n }\n if (params.expGain) {\n this.expGain = params.expGain;\n }\n }\n\n calculateCost(currentLevel: number, count = 1): number {\n //Recursive mode does not handle invalid inputs properly, but it should never\n //be possible for it to run with them. For the sake of not crashing the game,\n const recursiveMode = (currentLevel: number, count: number): number => {\n if (count <= 1) {\n return Math.floor((this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost);\n } else {\n const thisUpgrade = Math.floor(\n (this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost,\n );\n return this.calculateCost(currentLevel + 1, count - 1) + thisUpgrade;\n }\n };\n\n //Count must be a positive integer.\n if (count < 0 || count % 1 != 0) {\n throw new Error(`${count} is an invalid number of upgrades`);\n }\n //Use recursive mode if count is small\n if (count <= 100) {\n return recursiveMode(currentLevel, count);\n }\n //Use optimized mode if count is large\n else {\n //unFloored is roughly equivalent to\n //(this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost\n //being repeated for increasing currentLevel\n const preMult = (count * (2 * this.baseCost + this.costInc * (2 * currentLevel + count + 1))) / 2;\n const unFloored = preMult * BitNodeMultipliers.BladeburnerSkillCost - count / 2;\n return Math.floor(unFloored);\n }\n }\n\n getMultiplier(name: string): number {\n if (name === \"successChanceAll\") return this.successChanceAll;\n if (name === \"successChanceStealth\") return this.successChanceStealth;\n if (name === \"successChanceKill\") return this.successChanceKill;\n if (name === \"successChanceContract\") return this.successChanceContract;\n if (name === \"successChanceOperation\") return this.successChanceOperation;\n if (name === \"successChanceEstimate\") return this.successChanceEstimate;\n\n if (name === \"actionTime\") return this.actionTime;\n\n if (name === \"effHack\") return this.effHack;\n if (name === \"effStr\") return this.effStr;\n if (name === \"effDef\") return this.effDef;\n if (name === \"effDex\") return this.effDex;\n if (name === \"effAgi\") return this.effAgi;\n if (name === \"effCha\") return this.effCha;\n\n if (name === \"stamina\") return this.stamina;\n if (name === \"money\") return this.money;\n if (name === \"expGain\") return this.expGain;\n return 0;\n }\n}\n","import React from \"react\";\nimport { Modal } from \"./Modal\";\n\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface IProps {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n confirmationText: string | React.ReactNode;\n additionalButton?: React.ReactNode;\n}\n\nexport function ConfirmationModal(props: IProps): React.ReactElement {\n return (\n \n <>\n {props.confirmationText}\n \n {props.additionalButton && <>{props.additionalButton}>}\n >\n \n );\n}\n","/**\n * Represents the possible configuration values that can be provided when creating the progress bar text.\n */\ninterface IProgressBarConfiguration {\n /**\n * Current progress, taken as a decimal (i.e. '0.6' to represent '60%')\n */\n progress?: number;\n\n /**\n * Total number of ticks in progress bar. Preferably a factor of 100.\n */\n totalTicks?: number;\n}\n\n/**\n * Represents concrete configuration values when creating the progress bar text.\n */\ninterface IProgressBarConfigurationMaterialized extends IProgressBarConfiguration {\n progress: number;\n totalTicks: number;\n}\n\n/**\n * Creates a graphical \"progress bar\"\n * e.g.: [||||---------------]\n * @param params The configuration parameters for the progress bar\n */\nexport function createProgressBarText(params: IProgressBarConfiguration): string {\n // Default values\n const defaultParams: IProgressBarConfigurationMaterialized = {\n progress: 0,\n totalTicks: 20,\n };\n\n // tslint:disable-next-line:prefer-object-spread\n const derived: IProgressBarConfigurationMaterialized = Object.assign({}, defaultParams, params);\n // Ensure it is 0..1\n derived.progress = Math.max(Math.min(derived.progress, 1), 0);\n\n // This way there is always at least one bar filled in...\n const bars: number = Math.max(Math.floor(derived.progress / (1 / derived.totalTicks)), 1);\n const dashes: number = Math.max(derived.totalTicks - bars, 0);\n\n // String.prototype.repeat isn't completley supported, but good enough for our purposes\n return `[${\"|\".repeat(bars)}${\"-\".repeat(dashes)}]`;\n}\n","export function hash(): string {\n try {\n if (__COMMIT_HASH__) {\n return __COMMIT_HASH__;\n }\n } catch (err) {}\n return \"DEV\";\n}\n","import { Locations } from \"../../Locations/Locations\";\nimport { Location } from \"../../Locations/Location\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { IPlayer } from \"../../PersonObjects/IPlayer\";\nimport { Class, Classes, ClassType } from \"../ClassWork\";\nimport { WorkStats } from \"../WorkStats\";\nimport { Server } from \"../../Server/Server\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\nimport { IPerson } from \"../../PersonObjects/IPerson\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nconst gameCPS = 1000 / CONSTANTS._idleSpeed; // 5 cycles per second\n\nexport function calculateCost(classs: Class, location: Location): number {\n const serverMeta = serverMetadata.find((s) => s.specialName === location.name);\n const server = GetServer(serverMeta ? serverMeta.hostname : \"\");\n const discount = (server as Server).backdoorInstalled ? 0.9 : 1;\n return classs.earnings.money * location.costMult * discount;\n}\n\nexport function calculateClassEarnings(\n player: IPlayer,\n target: IPerson,\n type: ClassType,\n locationName: LocationName,\n): WorkStats {\n //Find cost and exp gain per game cycle\n const hashManager = player.hashManager;\n const classs = Classes[type];\n const location = Locations[locationName];\n\n const hashMult = [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymStrength, ClassType.GymDexterity].includes(\n type,\n )\n ? hashManager.getTrainingMult()\n : hashManager.getStudyMult();\n\n const cost = calculateCost(classs, location) / gameCPS;\n const hackExp = ((classs.earnings.hackExp * location.expMult) / gameCPS) * hashMult;\n const strExp = ((classs.earnings.strExp * location.expMult) / gameCPS) * hashMult;\n const defExp = ((classs.earnings.defExp * location.expMult) / gameCPS) * hashMult;\n const dexExp = ((classs.earnings.dexExp * location.expMult) / gameCPS) * hashMult;\n const agiExp = ((classs.earnings.agiExp * location.expMult) / gameCPS) * hashMult;\n const chaExp = ((classs.earnings.chaExp * location.expMult) / gameCPS) * hashMult;\n return {\n money: cost,\n reputation: 0,\n hackExp: hackExp * target.mults.hacking_exp * BitNodeMultipliers.ClassGymExpGain,\n strExp: strExp * target.mults.strength_exp * BitNodeMultipliers.ClassGymExpGain,\n defExp: defExp * target.mults.defense_exp * BitNodeMultipliers.ClassGymExpGain,\n dexExp: dexExp * target.mults.dexterity_exp * BitNodeMultipliers.ClassGymExpGain,\n agiExp: agiExp * target.mults.agility_exp * BitNodeMultipliers.ClassGymExpGain,\n chaExp: chaExp * target.mults.charisma_exp * BitNodeMultipliers.ClassGymExpGain,\n intExp: 0,\n };\n}\n","/**\n * Class representing a script file.\n *\n * This does NOT represent a script that is actively running and\n * being evaluated. See RunningScript for that\n */\nimport { calculateRamUsage, RamUsageEntry } from \"./RamCalculations\";\nimport { ScriptUrl } from \"./ScriptUrl\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { roundToTwo } from \"../utils/helpers/roundToTwo\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { ScriptModule } from \"./ScriptModule\";\n\nlet globalModuleSequenceNumber = 0;\n\ninterface ScriptReference {\n filename: string;\n server: string;\n}\n\nexport class Script {\n // Code for this script\n code = \"\";\n\n // Filename for the script file\n filename = \"\";\n\n // url of the script if any, only for NS2.\n url = \"\";\n\n // The dynamic module generated for this script when it is run.\n // This is only applicable for NetscriptJS\n module: Promise | null = null;\n\n // The timestamp when when the script was last updated.\n moduleSequenceNumber: number;\n\n // Only used with NS2 scripts; the list of dependency script filenames. This is constructed\n // whenever the script is first evaluated, and therefore may be out of date if the script\n // has been updated since it was last run.\n dependencies: ScriptUrl[] = [];\n dependents: ScriptReference[] = [];\n\n // Amount of RAM this Script requres to run\n ramUsage = 0;\n ramUsageEntries?: RamUsageEntry[];\n\n // hostname of server that this script is on.\n server = \"\";\n\n constructor(player: IPlayer | null = null, fn = \"\", code = \"\", server = \"\", otherScripts: Script[] = []) {\n this.filename = fn;\n this.code = code;\n this.ramUsage = 0;\n this.server = server; // hostname of server this script is on\n this.module = null;\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n if (this.code !== \"\" && player !== null) {\n this.updateRamUsage(player, otherScripts);\n }\n }\n\n /**\n * Download the script as a file\n */\n download(): void {\n const filename = this.filename;\n const file = new Blob([this.code], { type: \"text/plain\" });\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(function () {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n\n /**\n * Marks this script as having been updated. It will be recompiled next time something tries\n * to exec it.\n */\n markUpdated(): void {\n this.module = null;\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n }\n\n /**\n * Save a script from the script editor\n * @param {string} code - The new contents of the script\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n saveScript(player: IPlayer, filename: string, code: string, hostname: string, otherScripts: Script[]): void {\n // Update code and filename\n this.code = Script.formatCode(code);\n\n this.filename = filename;\n this.server = hostname;\n this.updateRamUsage(player, otherScripts);\n this.markUpdated();\n for (const dependent of this.dependents) {\n const [dependentScript] = otherScripts.filter(\n (s) => s.filename === dependent.filename && s.server == dependent.server,\n );\n if (dependentScript !== null) dependentScript.markUpdated();\n }\n }\n\n /**\n * Calculates and updates the script's RAM usage based on its code\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n async updateRamUsage(player: IPlayer, otherScripts: Script[]): Promise {\n const res = await calculateRamUsage(player, this.code, otherScripts);\n if (res.cost > 0) {\n this.ramUsage = roundToTwo(res.cost);\n this.ramUsageEntries = res.entries;\n }\n this.markUpdated();\n }\n\n imports(): string[] {\n return [];\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Script\", this);\n }\n\n // Initializes a Script Object from a JSON save state\n static fromJSON(value: IReviverValue): Script {\n const s = Generic_fromJSON(Script, value.data);\n // Force the url to blank from the save data. Urls are not valid outside the current browser page load.\n s.url = \"\";\n s.dependents = [];\n return s;\n }\n\n /**\n * Formats code: Removes the starting & trailing whitespace\n * @param {string} code - The code to format\n * @returns The formatted code\n */\n static formatCode(code: string): string {\n return code.replace(/^\\s+|\\s+$/g, \"\");\n }\n}\n\nReviver.constructors.Script = Script;\n","import React from \"react\";\n\nimport { Table, TableCell } from \"./Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport { Table as MuiTable } from \"@mui/material\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface IProps {\n rows: React.ReactNode[][];\n title?: string;\n wide?: boolean;\n}\n\nexport function StatsTable({ rows, title, wide }: IProps): React.ReactElement {\n const T = wide ? MuiTable : Table;\n return (\n <>\n {title && {title}}\n \n \n {rows.map((row: React.ReactNode[], i: number) => (\n \n {row.map((elem: React.ReactNode, i: number) => (\n \n {elem}\n \n ))}\n \n ))}\n \n \n >\n );\n}\n","import { DarkWebItem } from \"./DarkWebItem\";\nimport { IMap } from \"../types\";\nimport { Programs } from \"../Programs/Programs\";\n\nexport const DarkWebItems: IMap = {\n BruteSSHProgram: new DarkWebItem(Programs.BruteSSHProgram.name, 500e3, \"Opens up SSH Ports.\"),\n FTPCrackProgram: new DarkWebItem(Programs.FTPCrackProgram.name, 1500e3, \"Opens up FTP Ports.\"),\n RelaySMTPProgram: new DarkWebItem(Programs.RelaySMTPProgram.name, 5e6, \"Opens up SMTP Ports.\"),\n HTTPWormProgram: new DarkWebItem(Programs.HTTPWormProgram.name, 30e6, \"Opens up HTTP Ports.\"),\n SQLInjectProgram: new DarkWebItem(Programs.SQLInjectProgram.name, 250e6, \"Opens up SQL Ports.\"),\n ServerProfiler: new DarkWebItem(\n Programs.ServerProfiler.name,\n 500000,\n \"Displays detailed information about a server.\",\n ),\n DeepscanV1: new DarkWebItem(Programs.DeepscanV1.name, 500000, \"Enables 'scan-analyze' with a depth up to 5.\"),\n DeepscanV2: new DarkWebItem(Programs.DeepscanV2.name, 25e6, \"Enables 'scan-analyze' with a depth up to 10.\"),\n AutolinkProgram: new DarkWebItem(Programs.AutoLink.name, 1e6, \"Enables direct connect via 'scan-analyze'.\"),\n FormulasProgram: new DarkWebItem(Programs.Formulas.name, 5e9, \"Unlock access to the formulas API.\"),\n};\n","import { Action } from \"./Action\";\nimport { IMap } from \"../types\";\n\nexport const GeneralActions: IMap = {};\n\nconst actionNames: Array = [\n \"Training\",\n \"Field Analysis\",\n \"Recruitment\",\n \"Diplomacy\",\n \"Hyperbolic Regeneration Chamber\",\n \"Incite Violence\",\n];\n\nfor (const actionName of actionNames) {\n GeneralActions[actionName] = new Action({\n name: actionName,\n });\n}\n","// Enum values are lowercased to match css classes\nexport enum Suit {\n Clubs = \"clubs\",\n Diamonds = \"diamonds\",\n Hearts = \"hearts\",\n Spades = \"spades\",\n}\n\nexport class Card {\n constructor(readonly value: number, readonly suit: Suit) {\n if (value < 1 || value > 13) {\n throw new Error(`Card instantiated with improper value: ${value}`);\n }\n }\n\n formatValue(): string {\n switch (this.value) {\n case 1:\n return \"A\";\n case 11:\n return \"J\";\n case 12:\n return \"Q\";\n case 13:\n return \"K\";\n default:\n return `${this.value}`;\n }\n }\n\n isRedSuit(): boolean {\n return this.suit === Suit.Hearts || this.suit === Suit.Diamonds;\n }\n\n getStringRepresentation(): string {\n const value = this.formatValue();\n\n return `${value} of ${this.suit}`;\n }\n}\n","import { IActionIdentifier } from \"./IActionIdentifier\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\ninterface IParams {\n name?: string;\n type?: number;\n}\n\nexport class ActionIdentifier implements IActionIdentifier {\n name = \"\";\n type = -1;\n\n constructor(params: IParams = {}) {\n if (params.name) this.name = params.name;\n if (params.type) this.type = params.type;\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ActionIdentifier\", this);\n }\n\n static fromJSON(value: IReviverValue): ActionIdentifier {\n return Generic_fromJSON(ActionIdentifier, value.data);\n }\n}\n\nReviver.constructors.ActionIdentifier = ActionIdentifier;\n","import { BitNodes } from \"../BitNode/BitNode\";\n\nexport class SourceFile {\n info: JSX.Element;\n lvl = 1;\n n: number;\n name: string;\n owned = false;\n\n constructor(number: number, info: JSX.Element) {\n const bitnodeKey = \"BitNode\" + number;\n const bitnode = BitNodes[bitnodeKey];\n if (bitnode == null) {\n throw new Error(\"Invalid Bit Node for this Source File\");\n }\n\n this.n = number;\n this.name = `Source-File ${number}: ${bitnode.name}`;\n this.info = info;\n }\n}\n","import { CONSTANTS } from \"../Constants\";\nimport { Player } from \"../Player\";\nimport { BaseServer } from \"../Server/BaseServer\";\nimport { Server } from \"../Server/Server\";\nimport { RunningScript } from \"./RunningScript\";\nimport { processSingleServerGrowth } from \"../Server/ServerHelpers\";\nimport { GetServer } from \"../Server/AllServers\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { compareArrays } from \"../utils/helpers/compareArrays\";\n\nexport function scriptCalculateOfflineProduction(runningScript: RunningScript): void {\n //The Player object stores the last update time from when we were online\n const thisUpdate = new Date().getTime();\n const lastUpdate = Player.lastUpdate;\n const timePassed = (thisUpdate - lastUpdate) / 1000; //Seconds\n\n //Calculate the \"confidence\" rating of the script's true production. This is based\n //entirely off of time. We will arbitrarily say that if a script has been running for\n //4 hours (14400 sec) then we are completely confident in its ability\n let confidence = runningScript.onlineRunningTime / 14400;\n if (confidence >= 1) {\n confidence = 1;\n }\n\n //Data map: [MoneyStolen, NumTimesHacked, NumTimesGrown, NumTimesWeaken]\n\n // Grow\n for (const hostname of Object.keys(runningScript.dataMap)) {\n if (runningScript.dataMap.hasOwnProperty(hostname)) {\n if (runningScript.dataMap[hostname][2] == 0 || runningScript.dataMap[hostname][2] == null) {\n continue;\n }\n const serv = GetServer(hostname);\n if (serv == null) {\n continue;\n }\n const timesGrown = Math.round(\n ((0.5 * runningScript.dataMap[hostname][2]) / runningScript.onlineRunningTime) * timePassed,\n );\n runningScript.log(`Called on ${serv.hostname} ${timesGrown} times while offline`);\n const host = GetServer(runningScript.server);\n if (host === null) throw new Error(\"getServer of null key?\");\n if (!(serv instanceof Server)) throw new Error(\"trying to grow a non-normal server\");\n const growth = processSingleServerGrowth(serv, timesGrown, Player, host.cpuCores);\n runningScript.log(\n `'${serv.hostname}' grown by ${numeralWrapper.format(growth * 100 - 100, \"0.000000%\")} while offline`,\n );\n }\n }\n\n // Offline EXP gain\n // A script's offline production will always be at most half of its online production.\n const expGain = confidence * (runningScript.onlineExpGained / runningScript.onlineRunningTime) * timePassed;\n Player.gainHackingExp(expGain);\n\n // Update script stats\n runningScript.offlineRunningTime += timePassed;\n runningScript.offlineExpGained += expGain;\n\n // Weaken\n for (const hostname of Object.keys(runningScript.dataMap)) {\n if (runningScript.dataMap.hasOwnProperty(hostname)) {\n if (runningScript.dataMap[hostname][3] == 0 || runningScript.dataMap[hostname][3] == null) {\n continue;\n }\n const serv = GetServer(hostname);\n if (serv == null) {\n continue;\n }\n\n if (!(serv instanceof Server)) throw new Error(\"trying to weaken a non-normal server\");\n const host = GetServer(runningScript.server);\n if (host === null) throw new Error(\"getServer of null key?\");\n const timesWeakened = Math.round(\n ((0.5 * runningScript.dataMap[hostname][3]) / runningScript.onlineRunningTime) * timePassed,\n );\n runningScript.log(`Called weaken() on ${serv.hostname} ${timesWeakened} times while offline`);\n const coreBonus = 1 + (host.cpuCores - 1) / 16;\n serv.weaken(CONSTANTS.ServerWeakenAmount * timesWeakened * coreBonus);\n }\n }\n}\n\n//Returns a RunningScript object matching the filename and arguments on the\n//designated server, and false otherwise\nexport function findRunningScript(\n filename: string,\n args: (string | number | boolean)[],\n server: BaseServer,\n): RunningScript | null {\n for (let i = 0; i < server.runningScripts.length; ++i) {\n if (server.runningScripts[i].filename === filename && compareArrays(server.runningScripts[i].args, args)) {\n return server.runningScripts[i];\n }\n }\n return null;\n}\n\n//Returns a RunningScript object matching the pid on the\n//designated server, and false otherwise\nexport function findRunningScriptByPid(pid: number, server: BaseServer): RunningScript | null {\n for (let i = 0; i < server.runningScripts.length; ++i) {\n if (server.runningScripts[i].pid === pid) {\n return server.runningScripts[i];\n }\n }\n return null;\n}\n","export function calculateIntelligenceBonus(intelligence: number, weight = 1): number {\n return 1 + (weight * Math.pow(intelligence, 0.8)) / 600;\n}\n","import { CompanyPosition } from \"./CompanyPosition\";\nimport * as posNames from \"./data/companypositionnames\";\nimport { favorToRep, repToFavor } from \"../Faction/formulas/favor\";\n\nimport { IMap } from \"../types\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IConstructorParams {\n name: string;\n info: string;\n companyPositions: IMap;\n expMultiplier: number;\n salaryMultiplier: number;\n jobStatReqOffset: number;\n isMegacorp?: boolean;\n}\n\nconst DefaultConstructorParams: IConstructorParams = {\n name: \"\",\n info: \"\",\n companyPositions: {},\n expMultiplier: 1,\n salaryMultiplier: 1,\n jobStatReqOffset: 0,\n};\n\nexport class Company {\n /**\n * Company name\n */\n name: string;\n\n /**\n * Description and general information about company\n */\n info: string;\n\n /**\n * Has faction associated.\n */\n isMegacorp: boolean;\n\n /**\n * Object that holds all available positions in this Company.\n * Position names are held in keys.\n * The values for the keys don't matter, but we'll make them booleans\n *\n * Must match names of Company Positions, defined in data/companypositionnames.ts\n */\n companyPositions: IMap;\n\n /**\n * Company-specific multiplier for earnings\n */\n expMultiplier: number;\n salaryMultiplier: number;\n\n /**\n * The additional levels of stats you need to quality for a job\n * in this company.\n *\n * For example, the base stat requirement for an intern position is 1.\n * But if a company has a offset of 200, then you would need stat(s) of 201\n */\n jobStatReqOffset: number;\n\n /**\n * Properties to track the player's progress in this company\n */\n isPlayerEmployed: boolean;\n playerReputation: number;\n favor: number;\n\n constructor(p: IConstructorParams = DefaultConstructorParams) {\n this.name = p.name;\n this.info = p.info;\n this.companyPositions = p.companyPositions;\n this.expMultiplier = p.expMultiplier;\n this.salaryMultiplier = p.salaryMultiplier;\n this.jobStatReqOffset = p.jobStatReqOffset;\n\n this.isPlayerEmployed = false;\n this.playerReputation = 1;\n this.favor = 0;\n this.isMegacorp = false;\n if (p.isMegacorp) this.isMegacorp = true;\n }\n\n hasPosition(pos: CompanyPosition | string): boolean {\n if (pos instanceof CompanyPosition) {\n return this.companyPositions[pos.name] != null;\n } else {\n return this.companyPositions[pos] != null;\n }\n }\n\n hasAgentPositions(): boolean {\n return this.companyPositions[posNames.AgentCompanyPositions[0]] != null;\n }\n\n hasBusinessConsultantPositions(): boolean {\n return this.companyPositions[posNames.BusinessConsultantCompanyPositions[0]] != null;\n }\n\n hasBusinessPositions(): boolean {\n return this.companyPositions[posNames.BusinessCompanyPositions[0]] != null;\n }\n\n hasEmployeePositions(): boolean {\n return this.companyPositions[posNames.MiscCompanyPositions[1]] != null;\n }\n\n hasITPositions(): boolean {\n return this.companyPositions[posNames.ITCompanyPositions[0]] != null;\n }\n\n hasSecurityPositions(): boolean {\n return this.companyPositions[posNames.SecurityCompanyPositions[2]] != null;\n }\n\n hasSoftwareConsultantPositions(): boolean {\n return this.companyPositions[posNames.SoftwareConsultantCompanyPositions[0]] != null;\n }\n\n hasSoftwarePositions(): boolean {\n return this.companyPositions[posNames.SoftwareCompanyPositions[0]] != null;\n }\n\n hasWaiterPositions(): boolean {\n return this.companyPositions[posNames.MiscCompanyPositions[0]] != null;\n }\n\n gainFavor(): void {\n if (this.favor == null) {\n this.favor = 0;\n }\n this.favor += this.getFavorGain();\n }\n\n getFavorGain(): number {\n if (this.favor == null) {\n this.favor = 0;\n }\n const storedRep = Math.max(0, favorToRep(this.favor));\n const totalRep = storedRep + this.playerReputation;\n const newFavor = repToFavor(totalRep);\n return newFavor - this.favor;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Company\", this);\n }\n\n /**\n * Initiatizes a Company from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Company {\n return Generic_fromJSON(Company, value.data);\n }\n}\n\nReviver.constructors.Company = Company;\n","/**\n * Returns the input array as a comma separated string.\n *\n * Does several things that Array.toString() doesn't do\n * - Adds brackets around the array\n * - Adds quotation marks around strings\n */\nexport function arrayToString(a: unknown[]): string {\n const vals: unknown[] = [];\n for (let i = 0; i < a.length; ++i) {\n let elem: unknown = a[i];\n if (Array.isArray(elem)) {\n elem = arrayToString(elem);\n } else if (typeof elem === \"string\") {\n elem = `\"${elem}\"`;\n }\n vals.push(elem);\n }\n\n return `[${vals.join(\", \")}]`;\n}\n","import React from \"react\";\nimport { MathJax, MathJaxContext } from \"better-react-mathjax\";\n\ninterface IProps {\n children: React.ReactNode;\n}\n\nexport function MathJaxWrapper({ children }: IProps): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n","import { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\ninterface IError {\n fileName?: string;\n lineNumber?: number;\n}\n\nexport const isIError = (v: unknown): v is IError => {\n if (typeof v !== \"object\" || v == null) return false;\n return v.hasOwnProperty(\"fileName\") && v.hasOwnProperty(\"lineNumber\");\n};\n\nexport function exceptionAlert(e: unknown): void {\n console.error(e);\n let msg = \"\";\n let file = \"UNKNOWN FILE NAME\";\n let line = \"UNKNOWN LINE NUMBER\";\n if (isIError(e)) {\n file = e.fileName ?? file;\n line = e.lineNumber?.toString() ?? line;\n } else {\n msg = String(e);\n }\n dialogBoxCreate(\n \"Caught an exception: \" +\n msg +\n \"
\" +\n \"Filename: \" +\n file +\n \"
\" +\n \"Line Number: \" +\n line +\n \"
\" +\n \"This is a bug, please report to game developer with this \" +\n \"message as well as details about how to reproduce the bug.
\" +\n \"If you want to be safe, I suggest refreshing the game WITHOUT saving so that your \" +\n \"save doesn't get corrupted\",\n );\n}\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { CONSTANTS } from \"../../../Constants\";\nimport { GeneralActions } from \"../../../Bladeburner/data/GeneralActions\";\nimport { WorkStats } from \"../../../Work/WorkStats\";\n\ninterface SleeveBladeburnerWorkParams {\n type: string;\n name: string;\n}\n\nexport const isSleeveBladeburnerWork = (w: Work | null): w is SleeveBladeburnerWork =>\n w !== null && w.type === WorkType.BLADEBURNER;\n\nexport class SleeveBladeburnerWork extends Work {\n cyclesWorked = 0;\n actionType: string;\n actionName: string;\n\n constructor(params?: SleeveBladeburnerWorkParams) {\n super(WorkType.BLADEBURNER);\n this.actionType = params?.type ?? \"General\";\n this.actionName = params?.name ?? \"Field analysis\";\n }\n\n cyclesNeeded(player: IPlayer, sleeve: Sleeve): number {\n const ret = player.bladeburner?.getActionTimeNetscriptFn(sleeve, this.actionType, this.actionName);\n if (!ret || typeof ret === \"string\") throw new Error(`Error querying ${this.actionName} time`);\n return ret / CONSTANTS._idleSpeed;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (!player.bladeburner) throw new Error(\"sleeve doing blade work without being a member\");\n this.cyclesWorked += cycles;\n while (this.cyclesWorked > this.cyclesNeeded(player, sleeve)) {\n const actionIdent = player.bladeburner.getActionIdFromTypeAndName(this.actionType, this.actionName);\n if (!actionIdent) throw new Error(`Error getting ${this.actionName} action`);\n player.bladeburner.completeAction(player, sleeve, actionIdent, false);\n let exp: WorkStats | undefined;\n if (this.actionType === \"General\") {\n exp = GeneralActions[this.actionName]?.exp;\n if (!exp) throw new Error(`Somehow there was no exp for action ${this.actionType} ${this.actionName}`);\n applySleeveGains(player, sleeve, exp, 1);\n }\n this.cyclesWorked -= this.cyclesNeeded(player, sleeve);\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n actionType: this.actionType,\n actionName: this.actionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveBladeburnerWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveBladeburnerWork {\n return Generic_fromJSON(SleeveBladeburnerWork, value.data);\n }\n}\n\nReviver.constructors.SleeveBladeburnerWork = SleeveBladeburnerWork;\n","export interface CorporationUnlockUpgrade {\n index: number;\n price: number;\n name: string;\n desc: string;\n}\n\nexport enum CorporationUnlockUpgradeIndex {\n Export = 0,\n SmartSupply = 1,\n MarketResearchDemand = 2,\n MarketDataCompetition = 3,\n VeChain = 4,\n ShadyAccounting = 5,\n GovernmentPartnership = 6,\n WarehouseAPI = 7,\n OfficeAPI = 8,\n}\n\n// Corporation Unlock Upgrades\n// Upgrades for entire corporation, unlocks features, either you have it or you dont\nexport const CorporationUnlockUpgrades: Record = {\n //Lets you export goods\n [CorporationUnlockUpgradeIndex.Export]: {\n index: 0,\n price: 20e9,\n name: \"Export\",\n desc:\n \"Develop infrastructure to export your materials to your other facilities. \" +\n \"This allows you to move materials around between different divisions and cities.\",\n },\n\n //Lets you buy exactly however many required materials you need for production\n [CorporationUnlockUpgradeIndex.SmartSupply]: {\n index: 1,\n price: 25e9,\n name: \"Smart Supply\",\n desc:\n \"Use advanced AI to anticipate your supply needs. \" +\n \"This allows you to purchase exactly however many materials you need for production.\",\n },\n\n //Displays each material/product's demand\n [CorporationUnlockUpgradeIndex.MarketResearchDemand]: {\n index: 2,\n price: 5e9,\n name: \"Market Research - Demand\",\n desc:\n \"Mine and analyze market data to determine the demand of all resources. \" +\n \"The demand attribute, which affects sales, will be displayed for every material and product.\",\n },\n\n //Display's each material/product's competition\n [CorporationUnlockUpgradeIndex.MarketDataCompetition]: {\n index: 3,\n price: 5e9,\n name: \"Market Data - Competition\",\n desc:\n \"Mine and analyze market data to determine how much competition there is on the market \" +\n \"for all resources. The competition attribute, which affects sales, will be displayed for \" +\n \"every material and product.\",\n },\n [CorporationUnlockUpgradeIndex.VeChain]: {\n index: 4,\n price: 10e9,\n name: \"VeChain\",\n desc:\n \"Use AI and blockchain technology to identify where you can improve your supply chain systems. \" +\n \"This upgrade will allow you to view a wide array of useful statistics about your \" +\n \"Corporation.\",\n },\n [CorporationUnlockUpgradeIndex.ShadyAccounting]: {\n index: 5,\n price: 500e12,\n name: \"Shady Accounting\",\n desc:\n \"Utilize unscrupulous accounting practices and pay off government officials to save money \" +\n \"on taxes. This reduces the dividend tax rate by 5%.\",\n },\n [CorporationUnlockUpgradeIndex.GovernmentPartnership]: {\n index: 6,\n price: 2e15,\n name: \"Government Partnership\",\n desc:\n \"Help national governments further their agendas in exchange for lowered taxes. \" +\n \"This reduces the dividend tax rate by 10%\",\n },\n [CorporationUnlockUpgradeIndex.WarehouseAPI]: {\n index: 7,\n price: 50e9,\n name: \"Warehouse API\",\n desc: \"Enables the warehouse API.\",\n },\n [CorporationUnlockUpgradeIndex.OfficeAPI]: {\n index: 8,\n price: 50e9,\n name: \"Office API\",\n desc: \"Enables the office API.\",\n },\n};\n","import { StaticAugmentations } from \"../../Augmentation/StaticAugmentations\";\nimport { GraftableAugmentation } from \"./GraftableAugmentation\";\nimport { IPlayer } from \"../IPlayer\";\n\nexport const getGraftingAvailableAugs = (player: IPlayer): string[] => {\n const augs: string[] = [];\n\n for (const [augName, aug] of Object.entries(StaticAugmentations)) {\n if (aug.isSpecial) continue;\n augs.push(augName);\n }\n\n return augs.filter((augmentation: string) => !player.hasAugmentation(augmentation));\n};\n\nexport const graftingIntBonus = (player: IPlayer): number => {\n return 1 + (player.getIntelligenceBonus(3) - 1) / 3;\n};\n\nexport const calculateGraftingTimeWithBonus = (player: IPlayer, aug: GraftableAugmentation): number => {\n const baseTime = aug.time;\n return baseTime / graftingIntBonus(player);\n};\n","import { BlackOperation } from \"./BlackOperation\";\nimport { IMap } from \"../types\";\nimport { BlackOperationNames } from \"./data/BlackOperationNames\";\n\nexport const BlackOperations: IMap = {};\n\n(function () {\n BlackOperations[BlackOperationNames.OperationTyphoon] = new BlackOperation({\n name: BlackOperationNames.OperationTyphoon,\n baseDifficulty: 2000,\n reqdRank: 2.5e3,\n rankGain: 50,\n rankLoss: 10,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationZero] = new BlackOperation({\n name: BlackOperationNames.OperationZero,\n baseDifficulty: 2500,\n reqdRank: 5e3,\n rankGain: 60,\n rankLoss: 15,\n hpLoss: 50,\n weights: {\n hack: 0.2,\n str: 0.15,\n def: 0.15,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationX] = new BlackOperation({\n name: BlackOperationNames.OperationX,\n baseDifficulty: 3000,\n reqdRank: 7.5e3,\n rankGain: 75,\n rankLoss: 15,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationTitan] = new BlackOperation({\n name: BlackOperationNames.OperationTitan,\n baseDifficulty: 4000,\n reqdRank: 10e3,\n rankGain: 100,\n rankLoss: 20,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationAres] = new BlackOperation({\n name: BlackOperationNames.OperationAres,\n baseDifficulty: 5000,\n reqdRank: 12.5e3,\n rankGain: 125,\n rankLoss: 20,\n hpLoss: 200,\n weights: {\n hack: 0,\n str: 0.25,\n def: 0.25,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationArchangel] = new BlackOperation({\n name: BlackOperationNames.OperationArchangel,\n baseDifficulty: 7500,\n reqdRank: 15e3,\n rankGain: 200,\n rankLoss: 20,\n hpLoss: 25,\n weights: {\n hack: 0,\n str: 0.2,\n def: 0.2,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationJuggernaut] = new BlackOperation({\n name: BlackOperationNames.OperationJuggernaut,\n baseDifficulty: 10e3,\n reqdRank: 20e3,\n rankGain: 300,\n rankLoss: 40,\n hpLoss: 300,\n weights: {\n hack: 0,\n str: 0.25,\n def: 0.25,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationRedDragon] = new BlackOperation({\n name: BlackOperationNames.OperationRedDragon,\n baseDifficulty: 12.5e3,\n reqdRank: 25e3,\n rankGain: 500,\n rankLoss: 50,\n hpLoss: 500,\n weights: {\n hack: 0.05,\n str: 0.2,\n def: 0.2,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationK] = new BlackOperation({\n name: BlackOperationNames.OperationK,\n baseDifficulty: 15e3,\n reqdRank: 30e3,\n rankGain: 750,\n rankLoss: 60,\n hpLoss: 1000,\n weights: {\n hack: 0.05,\n str: 0.2,\n def: 0.2,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationDeckard] = new BlackOperation({\n name: BlackOperationNames.OperationDeckard,\n baseDifficulty: 20e3,\n reqdRank: 40e3,\n rankGain: 1e3,\n rankLoss: 75,\n hpLoss: 200,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationTyrell] = new BlackOperation({\n name: BlackOperationNames.OperationTyrell,\n baseDifficulty: 25e3,\n reqdRank: 50e3,\n rankGain: 1.5e3,\n rankLoss: 100,\n hpLoss: 500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationWallace] = new BlackOperation({\n name: BlackOperationNames.OperationWallace,\n baseDifficulty: 30e3,\n reqdRank: 75e3,\n rankGain: 2e3,\n rankLoss: 150,\n hpLoss: 1500,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationShoulderOfOrion] = new BlackOperation({\n name: BlackOperationNames.OperationShoulderOfOrion,\n baseDifficulty: 35e3,\n reqdRank: 100e3,\n rankGain: 2.5e3,\n rankLoss: 500,\n hpLoss: 1500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationHyron] = new BlackOperation({\n name: BlackOperationNames.OperationHyron,\n baseDifficulty: 40e3,\n reqdRank: 125e3,\n rankGain: 3e3,\n rankLoss: 1e3,\n hpLoss: 500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationMorpheus] = new BlackOperation({\n name: BlackOperationNames.OperationMorpheus,\n baseDifficulty: 45e3,\n reqdRank: 150e3,\n rankGain: 4e3,\n rankLoss: 1e3,\n hpLoss: 100,\n weights: {\n hack: 0.05,\n str: 0.15,\n def: 0.15,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationIonStorm] = new BlackOperation({\n name: BlackOperationNames.OperationIonStorm,\n baseDifficulty: 50e3,\n reqdRank: 175e3,\n rankGain: 5e3,\n rankLoss: 1e3,\n hpLoss: 5000,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationAnnihilus] = new BlackOperation({\n name: BlackOperationNames.OperationAnnihilus,\n baseDifficulty: 55e3,\n reqdRank: 200e3,\n rankGain: 7.5e3,\n rankLoss: 1e3,\n hpLoss: 10e3,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationUltron] = new BlackOperation({\n name: BlackOperationNames.OperationUltron,\n baseDifficulty: 60e3,\n reqdRank: 250e3,\n rankGain: 10e3,\n rankLoss: 2e3,\n hpLoss: 10e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationCenturion] = new BlackOperation({\n name: BlackOperationNames.OperationCenturion,\n baseDifficulty: 70e3,\n reqdRank: 300e3,\n rankGain: 15e3,\n rankLoss: 5e3,\n hpLoss: 10e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n BlackOperations[BlackOperationNames.OperationVindictus] = new BlackOperation({\n name: BlackOperationNames.OperationVindictus,\n baseDifficulty: 75e3,\n reqdRank: 350e3,\n rankGain: 20e3,\n rankLoss: 20e3,\n hpLoss: 20e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n BlackOperations[BlackOperationNames.OperationDaedalus] = new BlackOperation({\n name: BlackOperationNames.OperationDaedalus,\n baseDifficulty: 80e3,\n reqdRank: 400e3,\n rankGain: 40e3,\n rankLoss: 10e3,\n hpLoss: 100e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n})();\n","import { Fragment, FragmentById } from \"./Fragment\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IActiveFragmentParams {\n x: number;\n y: number;\n rotation: number;\n fragment: Fragment;\n}\n\nexport class ActiveFragment {\n id: number;\n highestCharge: number;\n numCharge: number;\n rotation: number;\n x: number;\n y: number;\n\n constructor(params?: IActiveFragmentParams) {\n if (params) {\n this.id = params.fragment.id;\n this.x = params.x;\n this.y = params.y;\n this.highestCharge = 0;\n this.numCharge = 0;\n this.rotation = params.rotation;\n } else {\n this.id = -1;\n this.x = -1;\n this.y = -1;\n this.highestCharge = 0;\n this.numCharge = 0;\n this.rotation = 0;\n }\n }\n\n collide(other: ActiveFragment): boolean {\n const thisFragment = this.fragment();\n const otherFragment = other.fragment();\n // These 2 variables converts 'this' local coordinates to world to other local.\n const dx: number = other.x - this.x;\n const dy: number = other.y - this.y;\n const fragSize = Math.max(thisFragment.shape.length, thisFragment.shape[0].length);\n for (let j = 0; j < fragSize; j++) {\n for (let i = 0; i < fragSize; i++) {\n if (thisFragment.fullAt(i, j, this.rotation) && otherFragment.fullAt(i - dx, j - dy, other.rotation))\n return true;\n }\n }\n\n return false;\n }\n\n fragment(): Fragment {\n const fragment = FragmentById(this.id);\n if (fragment === null) throw new Error(\"ActiveFragment id refers to unknown Fragment.\");\n return fragment;\n }\n\n fullAt(worldX: number, worldY: number): boolean {\n return this.fragment().fullAt(worldX - this.x, worldY - this.y, this.rotation);\n }\n\n neighboors(): number[][] {\n return this.fragment()\n .neighboors(this.rotation)\n .map((cell) => [this.x + cell[0], this.y + cell[1]]);\n }\n\n copy(): ActiveFragment {\n return Object.assign({}, this);\n }\n\n /**\n * Serialize an active fragment to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ActiveFragment\", this);\n }\n\n /**\n * Initializes an acive fragment from a JSON save state\n */\n static fromJSON(value: IReviverValue): ActiveFragment {\n return Generic_fromJSON(ActiveFragment, value.data);\n }\n}\n\nReviver.constructors.ActiveFragment = ActiveFragment;\n","import { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { CrimeType } from \"../utils/WorkType\";\nimport { CrimeWork } from \"../Work/CrimeWork\";\n\ninterface IConstructorParams {\n hacking_success_weight?: number;\n strength_success_weight?: number;\n defense_success_weight?: number;\n dexterity_success_weight?: number;\n agility_success_weight?: number;\n charisma_success_weight?: number;\n hacking_exp?: number;\n strength_exp?: number;\n defense_exp?: number;\n dexterity_exp?: number;\n agility_exp?: number;\n charisma_exp?: number;\n intelligence_exp?: number;\n\n kills?: number;\n}\n\nexport class Crime {\n // Number representing the difficulty of the crime. Used for success chance calculations\n difficulty = 0;\n\n // Amount of karma lost for SUCCESSFULLY committing this crime\n karma = 0;\n\n // How many people die as a result of this crime\n kills = 0;\n\n // How much money is given by the\n money = 0;\n\n // Name of crime\n name = \"\";\n\n // Milliseconds it takes to attempt the crime\n time = 0;\n\n // Corresponding type in CONSTANTS. Contains a description for the crime activity\n type: CrimeType;\n\n // Weighting factors that determine how stats affect the success rate of this crime\n hacking_success_weight = 0;\n strength_success_weight = 0;\n defense_success_weight = 0;\n dexterity_success_weight = 0;\n agility_success_weight = 0;\n charisma_success_weight = 0;\n\n // How much stat experience is granted by this crime\n hacking_exp = 0;\n strength_exp = 0;\n defense_exp = 0;\n dexterity_exp = 0;\n agility_exp = 0;\n charisma_exp = 0;\n intelligence_exp = 0;\n\n constructor(\n name = \"\",\n type: CrimeType,\n time = 0,\n money = 0,\n difficulty = 0,\n karma = 0,\n params: IConstructorParams = {},\n ) {\n this.name = name;\n this.type = type;\n this.time = time;\n this.money = money;\n this.difficulty = difficulty;\n this.karma = karma;\n\n this.hacking_success_weight = params.hacking_success_weight ? params.hacking_success_weight : 0;\n this.strength_success_weight = params.strength_success_weight ? params.strength_success_weight : 0;\n this.defense_success_weight = params.defense_success_weight ? params.defense_success_weight : 0;\n this.dexterity_success_weight = params.dexterity_success_weight ? params.dexterity_success_weight : 0;\n this.agility_success_weight = params.agility_success_weight ? params.agility_success_weight : 0;\n this.charisma_success_weight = params.charisma_success_weight ? params.charisma_success_weight : 0;\n\n this.hacking_exp = params.hacking_exp ? params.hacking_exp : 0;\n this.strength_exp = params.strength_exp ? params.strength_exp : 0;\n this.defense_exp = params.defense_exp ? params.defense_exp : 0;\n this.dexterity_exp = params.dexterity_exp ? params.dexterity_exp : 0;\n this.agility_exp = params.agility_exp ? params.agility_exp : 0;\n this.charisma_exp = params.charisma_exp ? params.charisma_exp : 0;\n this.intelligence_exp = params.intelligence_exp ? params.intelligence_exp : 0;\n\n this.kills = params.kills ? params.kills : 0;\n }\n\n commit(p: IPlayer, div = 1, workerScript: WorkerScript | null = null): number {\n if (div <= 0) {\n div = 1;\n }\n p.startWork(\n new CrimeWork({\n crimeType: this.type,\n singularity: workerScript !== null,\n }),\n );\n\n return this.time;\n }\n\n successRate(p: IPerson): number {\n let chance: number =\n this.hacking_success_weight * p.skills.hacking +\n this.strength_success_weight * p.skills.strength +\n this.defense_success_weight * p.skills.defense +\n this.dexterity_success_weight * p.skills.dexterity +\n this.agility_success_weight * p.skills.agility +\n this.charisma_success_weight * p.skills.charisma +\n CONSTANTS.IntelligenceCrimeWeight * p.skills.intelligence;\n chance /= CONSTANTS.MaxSkillLevel;\n chance /= this.difficulty;\n chance *= p.mults.crime_success;\n chance *= p.getIntelligenceBonus(1);\n\n return Math.min(chance, 1);\n }\n}\n","export enum GameOptionsTab {\n SYSTEM,\n INTERFACE,\n GAMEPLAY,\n MISC,\n}\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Hashes } from \"./Hashes\";\n\nexport function HashRate({ hashes }: { hashes: number }): React.ReactElement {\n return ;\n}\n","import { MessageFilenames } from \"./MessageHelpers\";\n\nexport class Message {\n // Name of Message file\n filename: MessageFilenames;\n\n // The text contains in the Message\n msg: string;\n\n constructor(filename: MessageFilenames, msg: string) {\n this.filename = filename;\n this.msg = msg;\n }\n}\n","/**\n * React Component for a button that's used to apply for a job\n */\nimport * as React from \"react\";\n\nimport { Company } from \"../../Company/Company\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\n\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ntype IProps = {\n company: Company;\n entryPosType: CompanyPosition;\n onClick: (e: React.MouseEvent) => void;\n text: string;\n};\n\nexport function ApplyToJobButton(props: IProps): React.ReactElement {\n const player = use.Player();\n\n function getJobRequirementTooltip(): string {\n const pos = player.getNextCompanyPosition(props.company, props.entryPosType);\n if (pos == null) {\n return \"\";\n }\n\n if (!props.company.hasPosition(pos)) {\n return \"\";\n }\n\n return getJobRequirementText(props.company, pos, true);\n }\n\n return (\n <>\n }>\n \n \n >\n );\n}\n","// The Research Map is an object that holds all Corporation Research objects\n// as values. They are identified by their names\nimport { Research, IConstructorParams } from \"./Research\";\nimport { researchMetadata } from \"./data/ResearchMetadata\";\nimport { IMap } from \"../types\";\n\nexport const ResearchMap: IMap = {};\n\nfunction addResearch(p: IConstructorParams): void {\n if (ResearchMap[p.name] != null) {\n console.warn(`Duplicate Research being defined: ${p.name}`);\n }\n ResearchMap[p.name] = new Research(p);\n}\n\nfor (const metadata of researchMetadata) {\n addResearch(metadata);\n}\n","/**\n * Event emitter that triggers when scripts are started/stopped\n */\nimport { EventEmitter } from \"../utils/EventEmitter\";\n\nexport const WorkerScriptStartStopEventEmitter = new EventEmitter<[]>();\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { FactionWorkType } from \"../../../Work/data/FactionWorkType\";\nimport { FactionNames } from \"../../../Faction/data/FactionNames\";\nimport { Factions } from \"../../../Faction/Factions\";\nimport { calculateFactionExp } from \"../../../Work/formulas/Faction\";\nimport { Faction } from \"../../../Faction/Faction\";\nimport {\n getFactionFieldWorkRepGain,\n getFactionSecurityWorkRepGain,\n getHackingWorkRepGain,\n} from \"../../../PersonObjects/formulas/reputation\";\nimport { scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\ninterface SleeveFactionWorkParams {\n factionWorkType: FactionWorkType;\n factionName: string;\n}\n\nexport const isSleeveFactionWork = (w: Work | null): w is SleeveFactionWork =>\n w !== null && w.type === WorkType.FACTION;\n\nexport class SleeveFactionWork extends Work {\n factionWorkType: FactionWorkType;\n factionName: string;\n\n constructor(params?: SleeveFactionWorkParams) {\n super(WorkType.FACTION);\n this.factionWorkType = params?.factionWorkType ?? FactionWorkType.HACKING;\n this.factionName = params?.factionName ?? FactionNames.Sector12;\n }\n\n getExpRates(sleeve: Sleeve): WorkStats {\n return scaleWorkStats(calculateFactionExp(sleeve, this.factionWorkType), sleeve.shockBonus());\n }\n\n getReputationRate(sleeve: Sleeve): number {\n const faction = this.getFaction();\n const repFormulas = {\n [FactionWorkType.HACKING]: getHackingWorkRepGain,\n [FactionWorkType.FIELD]: getFactionFieldWorkRepGain,\n [FactionWorkType.SECURITY]: getFactionSecurityWorkRepGain,\n };\n return repFormulas[this.factionWorkType](sleeve, faction.favor) * sleeve.shockBonus();\n }\n\n getFaction(): Faction {\n const f = Factions[this.factionName];\n if (!f) throw new Error(`Faction work started with invalid / unknown faction: '${this.factionName}'`);\n return f;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (player.gang) {\n if (this.factionName === player.gang.facName) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n\n const exp = this.getExpRates(sleeve);\n applySleeveGains(player, sleeve, exp, cycles);\n const rep = this.getReputationRate(sleeve);\n this.getFaction().playerReputation += rep;\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n factionWorkType: this.factionWorkType,\n factionName: this.factionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveFactionWork\", this);\n }\n\n /**\n * Initiatizes a FactionWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveFactionWork {\n return Generic_fromJSON(SleeveFactionWork, value.data);\n }\n}\n\nReviver.constructors.SleeveFactionWork = SleeveFactionWork;\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { LocationName } from \"../../../Locations/data/LocationNames\";\nimport { Companies } from \"../../../Company/Companies\";\nimport { Company } from \"../../../Company/Company\";\nimport { calculateCompanyWorkStats } from \"../../../Work/formulas/Company\";\nimport { WorkStats } from \"../../../Work/WorkStats\";\nimport { influenceStockThroughCompanyWork } from \"../../../StockMarket/PlayerInfluencing\";\n\ninterface SleeveCompanyWorkParams {\n companyName: string;\n}\n\nexport const isSleeveCompanyWork = (w: Work | null): w is SleeveCompanyWork =>\n w !== null && w.type === WorkType.COMPANY;\n\nexport class SleeveCompanyWork extends Work {\n companyName: string;\n\n constructor(params?: SleeveCompanyWorkParams) {\n super(WorkType.COMPANY);\n this.companyName = params?.companyName ?? LocationName.NewTokyoNoodleBar;\n }\n\n getCompany(): Company {\n const c = Companies[this.companyName];\n if (!c) throw new Error(`Company not found: '${this.companyName}'`);\n return c;\n }\n\n getGainRates(player: IPlayer, sleeve: Sleeve): WorkStats {\n return calculateCompanyWorkStats(player, sleeve, this.getCompany());\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n const company = this.getCompany();\n const gains = this.getGainRates(player, sleeve);\n applySleeveGains(player, sleeve, gains, cycles);\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveCompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveCompanyWork {\n return Generic_fromJSON(SleeveCompanyWork, value.data);\n }\n}\n\nReviver.constructors.SleeveCompanyWork = SleeveCompanyWork;\n","import { Player } from \"./Player\";\nimport { Router } from \"./ui/GameRoot\";\nimport { removeLeadingSlash } from \"./Terminal/DirectoryHelpers\";\nimport { Terminal } from \"./Terminal\";\nimport { SnackbarEvents, ToastVariant } from \"./ui/React/Snackbar\";\nimport { IMap, IReturnStatus } from \"./types\";\nimport { GetServer } from \"./Server/AllServers\";\nimport { ImportPlayerData, SaveData, saveObject } from \"./SaveObject\";\nimport { Settings } from \"./Settings/Settings\";\nimport { exportScripts } from \"./Terminal/commands/download\";\nimport { CONSTANTS } from \"./Constants\";\nimport { hash } from \"./hash/hash\";\n\ninterface IReturnWebStatus extends IReturnStatus {\n data?: Record;\n}\n\ndeclare global {\n interface Window {\n appNotifier: {\n terminal: (message: string, type?: string) => void;\n toast: (message: string, type: ToastVariant, duration?: number) => void;\n };\n appSaveFns: {\n triggerSave: () => Promise;\n triggerGameExport: () => void;\n triggerScriptsExport: () => void;\n getSaveData: () => { save: string; fileName: string };\n getSaveInfo: (base64save: string) => Promise;\n pushSaveData: (base64save: string, automatic?: boolean) => void;\n };\n electronBridge: {\n send: (channel: string, data?: unknown) => void;\n receive: (channel: string, func: (...args: unknown[]) => void) => void;\n };\n }\n interface Document {\n getFiles: () => IReturnWebStatus;\n deleteFile: (filename: string) => IReturnWebStatus;\n saveFile: (filename: string, code: string) => IReturnWebStatus;\n }\n}\n\nexport function initElectron(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(\" electron/\") > -1) {\n // Electron-specific code\n document.achievements = [];\n initWebserver();\n initAppNotifier();\n initSaveFunctions();\n initElectronBridge();\n }\n}\n\nfunction initWebserver(): void {\n function normalizeFileName(filename: string): string {\n filename = filename.replace(/\\/\\/+/g, \"/\");\n filename = removeLeadingSlash(filename);\n if (filename.includes(\"/\")) {\n filename = \"/\" + removeLeadingSlash(filename);\n }\n return filename;\n }\n\n document.getFiles = function (): IReturnWebStatus {\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n return {\n res: true,\n data: {\n files: home.scripts.map((script) => ({\n filename: script.filename,\n code: script.code,\n ramUsage: script.ramUsage,\n })),\n },\n };\n };\n\n document.deleteFile = function (filename: string): IReturnWebStatus {\n filename = normalizeFileName(filename);\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n return home.removeFile(filename);\n };\n\n document.saveFile = function (filename: string, code: string): IReturnWebStatus {\n filename = normalizeFileName(filename);\n\n code = Buffer.from(code, \"base64\").toString();\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n const { success, overwritten } = home.writeToScriptFile(Player, filename, code);\n let script;\n if (success) {\n script = home.getScript(filename);\n }\n return {\n res: success,\n data: {\n overwritten,\n ramUsage: script?.ramUsage,\n },\n };\n };\n}\n\n// Expose certain alert functions to allow the wrapper to sends message to the game\nfunction initAppNotifier(): void {\n const funcs = {\n terminal: (message: string, type?: string) => {\n const typesFn: IMap<(s: string) => void> = {\n info: Terminal.info,\n warn: Terminal.warn,\n error: Terminal.error,\n success: Terminal.success,\n };\n let fn;\n if (type) fn = typesFn[type];\n if (!fn) fn = Terminal.print;\n fn.bind(Terminal)(message);\n },\n toast: (message: string, type: ToastVariant, duration = 2000) => SnackbarEvents.emit(message, type, duration),\n };\n\n // Will be consumud by the electron wrapper.\n window.appNotifier = funcs;\n}\n\nfunction initSaveFunctions(): void {\n const funcs = {\n triggerSave: (): Promise => saveObject.saveGame(true),\n triggerGameExport: (): void => {\n try {\n saveObject.exportGame();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export game.\", ToastVariant.ERROR, 2000);\n }\n },\n triggerScriptsExport: (): void => exportScripts(\"*\", Player.getHomeComputer()),\n getSaveData: (): { save: string; fileName: string } => {\n return {\n save: saveObject.getSaveString(Settings.ExcludeRunningScriptsFromSave),\n fileName: saveObject.getSaveFileName(),\n };\n },\n getSaveInfo: async (base64save: string): Promise => {\n try {\n const data = await saveObject.getImportDataFromString(base64save);\n return data.playerData;\n } catch (error) {\n console.error(error);\n return;\n }\n },\n pushSaveData: (base64save: string, automatic = false): void => Router.toImportSave(base64save, automatic),\n };\n\n // Will be consumud by the electron wrapper.\n window.appSaveFns = funcs;\n}\n\nfunction initElectronBridge(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.receive(\"get-save-data-request\", () => {\n const data = window.appSaveFns.getSaveData();\n bridge.send(\"get-save-data-response\", data);\n });\n bridge.receive(\"get-save-info-request\", async (save: unknown) => {\n if (typeof save !== \"string\") throw new Error(\"Error while trying to get save info\");\n const data = await window.appSaveFns.getSaveInfo(save);\n bridge.send(\"get-save-info-response\", data);\n });\n bridge.receive(\"push-save-request\", (params: unknown) => {\n if (typeof params !== \"object\") throw new Error(\"Error trying to push save request\");\n const { save, automatic = false } = params as { save: string; automatic: boolean };\n window.appSaveFns.pushSaveData(save, automatic);\n });\n bridge.receive(\"trigger-save\", () => {\n return window.appSaveFns\n .triggerSave()\n .then(() => {\n bridge.send(\"save-completed\");\n })\n .catch((error: unknown) => {\n console.error(error);\n SnackbarEvents.emit(\"Could not save game.\", ToastVariant.ERROR, 2000);\n });\n });\n bridge.receive(\"trigger-game-export\", () => {\n try {\n window.appSaveFns.triggerGameExport();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export game.\", ToastVariant.ERROR, 2000);\n }\n });\n bridge.receive(\"trigger-scripts-export\", () => {\n try {\n window.appSaveFns.triggerScriptsExport();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export scripts.\", ToastVariant.ERROR, 2000);\n }\n });\n}\n\nexport function pushGameSaved(data: SaveData): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-game-saved\", data);\n}\n\nexport function pushGameReady(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n // Send basic information to the electron wrapper\n bridge.send(\"push-game-ready\", {\n player: {\n identifier: Player.identifier,\n playtime: Player.totalPlaytime,\n lastSave: Player.lastSave,\n },\n game: {\n version: CONSTANTS.VersionString,\n hash: hash(),\n },\n });\n}\n\nexport function pushImportResult(wasImported: boolean): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-import-result\", { wasImported });\n pushDisableRestore();\n}\n\nexport function pushDisableRestore(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-disable-restore\", { duration: 1000 * 60 });\n}\n","import { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { Work, WorkType } from \"./Work\";\nimport { Program } from \"../Programs/Program\";\n\nexport const isCreateProgramWork = (w: Work | null): w is CreateProgramWork =>\n w !== null && w.type === WorkType.CREATE_PROGRAM;\n\ninterface CreateProgramWorkParams {\n programName: string;\n singularity: boolean;\n player: IPlayer;\n}\n\nexport class CreateProgramWork extends Work {\n programName: string;\n // amount of effective work completed on the program (time boosted by skills).\n unitCompleted: number;\n\n constructor(params?: CreateProgramWorkParams) {\n super(WorkType.CREATE_PROGRAM, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.programName = params?.programName ?? \"\";\n\n if (params?.player) {\n const player = params.player;\n for (let i = 0; i < player.getHomeComputer().programs.length; ++i) {\n const programFile = player.getHomeComputer().programs[i];\n if (programFile.startsWith(this.programName) && programFile.endsWith(\"%-INC\")) {\n const res = programFile.split(\"-\");\n if (res.length != 3) {\n break;\n }\n const percComplete = Number(res[1].slice(0, -1));\n if (isNaN(percComplete) || percComplete < 0 || percComplete >= 100) {\n break;\n }\n this.unitCompleted = (percComplete / 100) * this.unitNeeded();\n player.getHomeComputer().programs.splice(i, 1);\n }\n }\n }\n }\n\n unitNeeded(): number {\n return this.getProgram().create?.time ?? 0;\n }\n\n getProgram(): Program {\n const p = Object.values(Programs).find((p) => p.name.toLowerCase() === this.programName.toLowerCase());\n if (!p) throw new Error(\"Create program work started with invalid program \" + this.programName);\n return p;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames[\"NeuroreceptorManager\"])) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n //Higher hacking skill will allow you to create programs faster\n const reqLvl = this.getProgram().create?.level ?? 0;\n let skillMult = (player.skills.hacking / reqLvl) * player.getIntelligenceBonus(3); //This should always be greater than 1;\n skillMult = 1 + (skillMult - 1) / 5; //The divider constant can be adjusted as necessary\n skillMult *= focusBonus;\n //Skill multiplier directly applied to \"time worked\"\n this.cyclesWorked += cycles;\n this.unitCompleted += CONSTANTS._idleSpeed * cycles * skillMult;\n\n if (this.unitCompleted >= this.unitNeeded()) {\n return true;\n }\n return false;\n }\n finish(player: IPlayer, cancelled: boolean): void {\n const programName = this.programName;\n if (!cancelled) {\n //Complete case\n player.gainIntelligenceExp(\n (CONSTANTS.IntelligenceProgramBaseExpGain * this.cyclesWorked * CONSTANTS._idleSpeed) / 1000,\n );\n if (!this.singularity) {\n const lines = [\n `You've finished creating ${programName}!`,\n \"The new program can be found on your home computer.\",\n ];\n dialogBoxCreate(lines.join(\" \"));\n }\n\n if (!player.getHomeComputer().programs.includes(programName)) {\n player.getHomeComputer().programs.push(programName);\n }\n } else if (!player.getHomeComputer().programs.includes(programName)) {\n //Incomplete case\n const perc = ((100 * this.unitCompleted) / this.unitNeeded()).toFixed(2);\n const incompleteName = programName + \"-\" + perc + \"%-INC\";\n player.getHomeComputer().programs.push(incompleteName);\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n programName: this.programName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CreateProgramWork\", this);\n }\n\n /**\n * Initiatizes a CreateProgramWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CreateProgramWork {\n return Generic_fromJSON(CreateProgramWork, value.data);\n }\n}\n\nReviver.constructors.CreateProgramWork = CreateProgramWork;\n","import { PlayerObject } from \"src/PersonObjects/Player/PlayerObject\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { SkillNames } from \"../Bladeburner/data/SkillNames\";\nimport { Skills } from \"../Bladeburner/Skills\";\nimport { CONSTANTS } from \"../Constants\";\nimport { Industries } from \"../Corporation/IndustryData\";\nimport { Exploit } from \"../Exploits/Exploit\";\nimport { Factions } from \"../Faction/Factions\";\nimport { AllGangs } from \"../Gang/AllGangs\";\nimport { GangConstants } from \"../Gang/data/Constants\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"../Hacknet/data/Constants\";\nimport { hasHacknetServers } from \"../Hacknet/HacknetHelpers\";\nimport { HacknetNode } from \"../Hacknet/HacknetNode\";\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { Player } from \"../Player\";\nimport { Programs } from \"../Programs/Programs\";\nimport { GetAllServers, GetServer } from \"../Server/AllServers\";\nimport { SpecialServers } from \"../Server/data/SpecialServers\";\nimport { Server } from \"../Server/Server\";\nimport { Router } from \"../ui/GameRoot\";\nimport { Page } from \"../ui/Router\";\nimport { IMap } from \"../types\";\nimport * as data from \"./AchievementData.json\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { BlackOperationNames } from \"../Bladeburner/data/BlackOperationNames\";\nimport { isClassWork } from \"../Work/ClassWork\";\n\n// Unable to correctly cast the JSON data into AchievementDataJson type otherwise...\nconst achievementData = ((data)).achievements;\n\nexport interface Achievement {\n ID: string;\n Icon?: string;\n Name?: string;\n Description?: string;\n Secret?: boolean;\n Condition: () => boolean;\n Visible?: () => boolean;\n AdditionalUnlock?: string[]; // IDs of achievements that should be awarded when awarding this one\n}\n\nexport interface PlayerAchievement {\n ID: string;\n unlockedOn?: number;\n}\n\nexport interface AchievementDataJson {\n achievements: IMap;\n}\n\nexport interface AchievementData {\n ID: string;\n Name: string;\n Description: string;\n}\n\nfunction bitNodeFinishedState(): boolean {\n const wd = GetServer(SpecialServers.WorldDaemon);\n if (!(wd instanceof Server)) return false;\n if (wd.backdoorInstalled) return true;\n return (\n Player.bladeburner !== null && Player.bladeburner.blackops.hasOwnProperty(BlackOperationNames.OperationDaedalus)\n );\n}\n\nfunction hasAccessToSF(player: PlayerObject, bn: number): boolean {\n return player.bitNodeN === bn || player.sourceFiles.some((a) => a.n === bn);\n}\n\nfunction knowsAboutBitverse(player: PlayerObject): boolean {\n return player.sourceFiles.some((a) => a.n === 1);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction sfAchievement(): Achievement[] {\n const achs: Achievement[] = [];\n for (let i = 0; i <= 11; i++) {\n for (let j = 1; j <= 3; j++) {\n achs.push({\n ID: `SF${i}.${j}`,\n Condition: () => Player.sourceFileLvl(i) >= j,\n });\n }\n }\n return achs;\n}\n\nexport const achievements: IMap = {\n [FactionNames.CyberSec.toUpperCase()]: {\n ...achievementData[FactionNames.CyberSec.toUpperCase()],\n Icon: \"CSEC\",\n Condition: () => Player.factions.includes(FactionNames.CyberSec),\n },\n [FactionNames.NiteSec.toUpperCase()]: {\n ...achievementData[FactionNames.NiteSec.toUpperCase()],\n Icon: FactionNames.NiteSec,\n Condition: () => Player.factions.includes(FactionNames.NiteSec),\n },\n THE_BLACK_HAND: {\n ...achievementData[\"THE_BLACK_HAND\"],\n Icon: \"TBH\",\n Condition: () => Player.factions.includes(FactionNames.TheBlackHand),\n },\n [FactionNames.BitRunners.toUpperCase()]: {\n ...achievementData[FactionNames.BitRunners.toUpperCase()],\n Icon: FactionNames.BitRunners.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.BitRunners),\n },\n [FactionNames.Daedalus.toUpperCase()]: {\n ...achievementData[FactionNames.Daedalus.toUpperCase()],\n Icon: FactionNames.Daedalus.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.Daedalus),\n },\n THE_COVENANT: {\n ...achievementData[\"THE_COVENANT\"],\n Icon: FactionNames.TheCovenant.toLowerCase().replace(/ /g, \"\"),\n Condition: () => Player.factions.includes(FactionNames.TheCovenant),\n },\n [FactionNames.Illuminati.toUpperCase()]: {\n ...achievementData[FactionNames.Illuminati.toUpperCase()],\n Icon: FactionNames.Illuminati.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.Illuminati),\n },\n \"BRUTESSH.EXE\": {\n ...achievementData[\"BRUTESSH.EXE\"],\n Icon: \"p0\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.BruteSSHProgram.name),\n },\n \"FTPCRACK.EXE\": {\n ...achievementData[\"FTPCRACK.EXE\"],\n Icon: \"p1\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.FTPCrackProgram.name),\n },\n //-----------------------------------------------------\n \"RELAYSMTP.EXE\": {\n ...achievementData[\"RELAYSMTP.EXE\"],\n Icon: \"p2\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.RelaySMTPProgram.name),\n },\n \"HTTPWORM.EXE\": {\n ...achievementData[\"HTTPWORM.EXE\"],\n Icon: \"p3\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.HTTPWormProgram.name),\n },\n \"SQLINJECT.EXE\": {\n ...achievementData[\"SQLINJECT.EXE\"],\n Icon: \"p4\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.SQLInjectProgram.name),\n },\n \"FORMULAS.EXE\": {\n ...achievementData[\"FORMULAS.EXE\"],\n Icon: \"formulas\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.Formulas.name),\n },\n \"SF1.1\": {\n ...achievementData[\"SF1.1\"],\n Icon: \"SF1.1\",\n Visible: () => hasAccessToSF(Player, 1),\n Condition: () => Player.sourceFileLvl(1) >= 1,\n },\n \"SF2.1\": {\n ...achievementData[\"SF2.1\"],\n Icon: \"SF2.1\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.sourceFileLvl(2) >= 1,\n },\n \"SF3.1\": {\n ...achievementData[\"SF3.1\"],\n Icon: \"SF3.1\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.sourceFileLvl(3) >= 1,\n },\n \"SF4.1\": {\n ...achievementData[\"SF4.1\"],\n Icon: \"SF4.1\",\n Visible: () => hasAccessToSF(Player, 4),\n Condition: () => Player.sourceFileLvl(4) >= 1,\n },\n \"SF5.1\": {\n ...achievementData[\"SF5.1\"],\n Icon: \"SF5.1\",\n Visible: () => hasAccessToSF(Player, 5),\n Condition: () => Player.sourceFileLvl(5) >= 1,\n },\n \"SF6.1\": {\n ...achievementData[\"SF6.1\"],\n Icon: \"SF6.1\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.sourceFileLvl(6) >= 1,\n },\n \"SF7.1\": {\n ...achievementData[\"SF7.1\"],\n Icon: \"SF7.1\",\n Visible: () => hasAccessToSF(Player, 7),\n Condition: () => Player.sourceFileLvl(7) >= 1,\n },\n \"SF8.1\": {\n ...achievementData[\"SF8.1\"],\n Icon: \"SF8.1\",\n Visible: () => hasAccessToSF(Player, 8),\n Condition: () => Player.sourceFileLvl(8) >= 1,\n },\n \"SF9.1\": {\n ...achievementData[\"SF9.1\"],\n Icon: \"SF9.1\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => Player.sourceFileLvl(9) >= 1,\n },\n \"SF10.1\": {\n ...achievementData[\"SF10.1\"],\n Icon: \"SF10.1\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () => Player.sourceFileLvl(10) >= 1,\n },\n \"SF11.1\": {\n ...achievementData[\"SF11.1\"],\n Icon: \"SF11.1\",\n Visible: () => hasAccessToSF(Player, 11),\n Condition: () => Player.sourceFileLvl(11) >= 1,\n },\n \"SF12.1\": {\n ...achievementData[\"SF12.1\"],\n Icon: \"SF12.1\",\n Visible: () => hasAccessToSF(Player, 12),\n Condition: () => Player.sourceFileLvl(12) >= 1,\n },\n MONEY_1Q: {\n ...achievementData[\"MONEY_1Q\"],\n Icon: \"$1Q\",\n Condition: () => Player.money >= 1e18,\n },\n MONEY_M1B: {\n ...achievementData[\"MONEY_M1B\"],\n Icon: \"-1b\",\n Secret: true,\n Condition: () => Player.money <= -1e9,\n },\n INSTALL_1: {\n ...achievementData[\"INSTALL_1\"],\n Icon: \"install\",\n Condition: () => Player.augmentations.length >= 1,\n },\n INSTALL_100: {\n ...achievementData[\"INSTALL_100\"],\n Icon: \"install_100\",\n Condition: () => Player.augmentations.length >= 100,\n },\n QUEUE_40: {\n ...achievementData[\"QUEUE_40\"],\n Icon: \"queue40\",\n Condition: () => Player.queuedAugmentations.length >= 40,\n },\n HACKING_100000: {\n ...achievementData[\"HACKING_100000\"],\n Icon: \"hack100000\",\n Condition: () => Player.skills.hacking >= 100000,\n },\n COMBAT_3000: {\n ...achievementData[\"COMBAT_3000\"],\n Icon: \"combat3000\",\n Condition: () =>\n Player.skills.strength >= 3000 &&\n Player.skills.defense >= 3000 &&\n Player.skills.dexterity >= 3000 &&\n Player.skills.agility >= 3000,\n },\n NEUROFLUX_255: {\n ...achievementData[\"NEUROFLUX_255\"],\n Icon: \"nf255\",\n Condition: () => Player.augmentations.some((a) => a.name === AugmentationNames.NeuroFluxGovernor && a.level >= 255),\n },\n NS2: {\n ...achievementData[\"NS2\"],\n Icon: \"ns2\",\n Condition: () => Player.getHomeComputer().scripts.some((s) => s.filename.endsWith(\".js\")),\n },\n FROZE: {\n ...achievementData[\"FROZE\"],\n Icon: \"forze\",\n Condition: () => location.href.includes(\"noScripts\"),\n },\n RUNNING_SCRIPTS_1000: {\n ...achievementData[\"RUNNING_SCRIPTS_1000\"],\n Icon: \"run1000\",\n Condition: (): boolean => {\n let running = 0;\n for (const s of GetAllServers()) {\n running += s.runningScripts.length;\n }\n return running >= 1000;\n },\n },\n DRAIN_SERVER: {\n ...achievementData[\"DRAIN_SERVER\"],\n Icon: \"drain\",\n Condition: (): boolean => {\n for (const s of GetAllServers()) {\n if (s instanceof Server) {\n if (s.moneyMax > 0 && s.moneyAvailable === 0) return true;\n }\n }\n return false;\n },\n },\n MAX_RAM: {\n ...achievementData[\"MAX_RAM\"],\n Icon: \"maxram\",\n Condition: () => Player.getHomeComputer().maxRam === CONSTANTS.HomeComputerMaxRam,\n },\n MAX_CORES: {\n ...achievementData[\"MAX_CORES\"],\n Icon: \"maxcores\",\n Condition: () => Player.getHomeComputer().cpuCores === 8,\n },\n SCRIPTS_30: {\n ...achievementData[\"SCRIPTS_30\"],\n Icon: \"folders\",\n Condition: () => Player.getHomeComputer().scripts.length >= 30,\n },\n KARMA_1000000: {\n ...achievementData[\"KARMA_1000000\"],\n Icon: \"karma\",\n Secret: true,\n Condition: () => Player.karma <= -1e6,\n },\n STOCK_1q: {\n ...achievementData[\"STOCK_1q\"],\n Icon: \"$1Q\",\n Condition: () => Player.moneySourceB.stock >= 1e15,\n },\n DISCOUNT: {\n ...achievementData[\"DISCOUNT\"],\n Icon: \"discount\",\n Condition: (): boolean => {\n const p = GetServer(\"powerhouse-fitness\");\n if (!(p instanceof Server)) return false;\n return p.backdoorInstalled;\n },\n },\n SCRIPT_32GB: {\n ...achievementData[\"SCRIPT_32GB\"],\n Icon: \"bigcost\",\n Condition: () => Player.getHomeComputer().scripts.some((s) => s.ramUsage >= 32),\n },\n FIRST_HACKNET_NODE: {\n ...achievementData[\"FIRST_HACKNET_NODE\"],\n Icon: \"node\",\n Condition: () => !hasHacknetServers(Player) && Player.hacknetNodes.length > 0,\n },\n \"30_HACKNET_NODE\": {\n ...achievementData[\"30_HACKNET_NODE\"],\n Icon: \"hacknet-all\",\n Condition: () => !hasHacknetServers(Player) && Player.hacknetNodes.length >= 30,\n },\n MAX_HACKNET_NODE: {\n ...achievementData[\"MAX_HACKNET_NODE\"],\n Icon: \"hacknet-max\",\n Condition: (): boolean => {\n if (hasHacknetServers(Player)) return false;\n for (const h of Player.hacknetNodes) {\n if (!(h instanceof HacknetNode)) return false;\n if (\n h.ram === HacknetNodeConstants.MaxRam &&\n h.cores === HacknetNodeConstants.MaxCores &&\n h.level === HacknetNodeConstants.MaxLevel\n )\n return true;\n }\n return false;\n },\n },\n HACKNET_NODE_10M: {\n ...achievementData[\"HACKNET_NODE_10M\"],\n Icon: \"hacknet-10m\",\n Condition: () => !hasHacknetServers(Player) && Player.moneySourceB.hacknet >= 10e6,\n },\n REPUTATION_10M: {\n ...achievementData[\"REPUTATION_10M\"],\n Icon: \"reputation\",\n Condition: () => Object.values(Factions).some((f) => f.playerReputation >= 10e6),\n },\n DONATION: {\n ...achievementData[\"DONATION\"],\n Icon: \"donation\",\n Condition: () => Object.values(Factions).some((f) => f.favor >= 150),\n },\n TRAVEL: {\n ...achievementData[\"TRAVEL\"],\n Icon: \"TRAVEL\",\n Condition: () => Player.city !== CityName.Sector12,\n },\n WORKOUT: {\n ...achievementData[\"WORKOUT\"],\n Icon: \"WORKOUT\",\n Condition: () => isClassWork(Player.currentWork),\n },\n TOR: {\n ...achievementData[\"TOR\"],\n Icon: \"TOR\",\n Condition: () => Player.hasTorRouter(),\n },\n HOSPITALIZED: {\n ...achievementData[\"HOSPITALIZED\"],\n Icon: \"OUCH\",\n Condition: () => Player.moneySourceB.hospitalization !== 0,\n },\n GANG: {\n ...achievementData[\"GANG\"],\n Icon: \"GANG\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null,\n },\n FULL_GANG: {\n ...achievementData[\"FULL_GANG\"],\n Icon: \"GANGMAX\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null && Player.gang.members.length === GangConstants.MaximumGangMembers,\n },\n GANG_TERRITORY: {\n ...achievementData[\"GANG_TERRITORY\"],\n Icon: \"GANG100%\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null && AllGangs[Player.gang.facName].territory >= 0.999,\n },\n GANG_MEMBER_POWER: {\n ...achievementData[\"GANG_MEMBER_POWER\"],\n Icon: \"GANG10000\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () =>\n Player.gang !== null &&\n Player.gang.members.some(\n (m) =>\n m.hack >= 10000 || m.str >= 10000 || m.def >= 10000 || m.dex >= 10000 || m.agi >= 10000 || m.cha >= 10000,\n ),\n },\n CORPORATION: {\n ...achievementData[\"CORPORATION\"],\n Icon: \"CORP\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null,\n },\n CORPORATION_BRIBE: {\n ...achievementData[\"CORPORATION_BRIBE\"],\n Icon: \"CORPLOBBY\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null && Player.corporation.unlockUpgrades[6] === 1,\n },\n CORPORATION_PROD_1000: {\n ...achievementData[\"CORPORATION_PROD_1000\"],\n Icon: \"CORP1000\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null && Player.corporation.divisions.some((d) => d.prodMult >= 1000),\n },\n CORPORATION_EMPLOYEE_3000: {\n ...achievementData[\"CORPORATION_EMPLOYEE_3000\"],\n Icon: \"CORPCITY\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: (): boolean => {\n if (Player.corporation === null) return false;\n for (const d of Player.corporation.divisions) {\n for (const o of Object.values(d.offices)) {\n if (o === 0) continue;\n if (o.employees.length >= 3000) return true;\n }\n }\n return false;\n },\n },\n CORPORATION_REAL_ESTATE: {\n ...achievementData[\"CORPORATION_REAL_ESTATE\"],\n Icon: \"CORPRE\",\n Name: \"Own the land\",\n Description: \"Expand to the Real Estate division.\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () =>\n Player.corporation !== null && Player.corporation.divisions.some((d) => d.type === Industries.RealEstate),\n },\n INTELLIGENCE_255: {\n ...achievementData[\"INTELLIGENCE_255\"],\n Icon: \"INT255\",\n Visible: () => hasAccessToSF(Player, 5),\n Condition: () => Player.skills.intelligence >= 255,\n },\n BLADEBURNER_DIVISION: {\n ...achievementData[\"BLADEBURNER_DIVISION\"],\n Icon: \"BLADE\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bladeburner !== null,\n },\n BLADEBURNER_OVERCLOCK: {\n ...achievementData[\"BLADEBURNER_OVERCLOCK\"],\n Icon: \"BLADEOVERCLOCK\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () =>\n Player.bladeburner !== null &&\n Player.bladeburner.skills[SkillNames.Overclock] === Skills[SkillNames.Overclock].maxLvl,\n },\n BLADEBURNER_UNSPENT_100000: {\n ...achievementData[\"BLADEBURNER_UNSPENT_100000\"],\n Icon: \"BLADE100K\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bladeburner !== null && Player.bladeburner.skillPoints >= 100000,\n },\n \"4S\": {\n ...achievementData[\"4S\"],\n Icon: \"4S\",\n Condition: () => Player.has4SData,\n },\n FIRST_HACKNET_SERVER: {\n ...achievementData[\"FIRST_HACKNET_SERVER\"],\n Icon: \"HASHNET\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.hacknetNodes.length > 0,\n AdditionalUnlock: [achievementData.FIRST_HACKNET_NODE.ID],\n },\n ALL_HACKNET_SERVER: {\n ...achievementData[\"ALL_HACKNET_SERVER\"],\n Icon: \"HASHNETALL\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.hacknetNodes.length === HacknetServerConstants.MaxServers,\n AdditionalUnlock: [achievementData[\"30_HACKNET_NODE\"].ID],\n },\n MAX_HACKNET_SERVER: {\n ...achievementData[\"MAX_HACKNET_SERVER\"],\n Icon: \"HASHNETALL\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: (): boolean => {\n if (!hasHacknetServers(Player)) return false;\n for (const h of Player.hacknetNodes) {\n if (typeof h !== \"string\") return false;\n const hs = GetServer(h);\n if (!(hs instanceof HacknetServer)) return false;\n if (\n hs.maxRam === HacknetServerConstants.MaxRam &&\n hs.cores === HacknetServerConstants.MaxCores &&\n hs.level === HacknetServerConstants.MaxLevel &&\n hs.cache === HacknetServerConstants.MaxCache\n )\n return true;\n }\n return false;\n },\n AdditionalUnlock: [achievementData.MAX_HACKNET_NODE.ID],\n },\n HACKNET_SERVER_1B: {\n ...achievementData[\"HACKNET_SERVER_1B\"],\n Icon: \"HASHNETMONEY\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.moneySourceB.hacknet >= 1e9,\n AdditionalUnlock: [achievementData.HACKNET_NODE_10M.ID],\n },\n MAX_CACHE: {\n ...achievementData[\"MAX_CACHE\"],\n Icon: \"HASHNETCAP\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () =>\n hasHacknetServers(Player) &&\n Player.hashManager.hashes === Player.hashManager.capacity &&\n Player.hashManager.capacity > 0,\n },\n SLEEVE_8: {\n ...achievementData[\"SLEEVE_8\"],\n Icon: \"SLEEVE8\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () => Player.sleeves.length === 8 && Player.sourceFileLvl(10) === 3,\n },\n INDECISIVE: {\n ...achievementData[\"INDECISIVE\"],\n Icon: \"1H\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: (function () {\n let c = 0;\n setInterval(() => {\n if (Router.page() === Page.BitVerse) {\n c++;\n } else {\n c = 0;\n }\n }, 60 * 1000);\n return () => c > 60;\n })(),\n },\n FAST_BN: {\n ...achievementData[\"FAST_BN\"],\n Icon: \"2DAYS\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: () => bitNodeFinishedState() && Player.playtimeSinceLastBitnode < 1000 * 60 * 60 * 24 * 2,\n },\n CHALLENGE_BN1: {\n ...achievementData[\"CHALLENGE_BN1\"],\n Icon: \"BN1+\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: () =>\n Player.bitNodeN === 1 &&\n bitNodeFinishedState() &&\n Player.getHomeComputer().maxRam <= 128 &&\n Player.getHomeComputer().cpuCores === 1,\n },\n CHALLENGE_BN2: {\n ...achievementData[\"CHALLENGE_BN2\"],\n Icon: \"BN2+\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.bitNodeN === 2 && bitNodeFinishedState() && Player.gang === null,\n },\n CHALLENGE_BN3: {\n ...achievementData[\"CHALLENGE_BN3\"],\n Icon: \"BN3+\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.bitNodeN === 3 && bitNodeFinishedState() && Player.corporation === null,\n },\n CHALLENGE_BN6: {\n ...achievementData[\"CHALLENGE_BN6\"],\n Icon: \"BN6+\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bitNodeN === 6 && bitNodeFinishedState() && Player.bladeburner === null,\n },\n CHALLENGE_BN7: {\n ...achievementData[\"CHALLENGE_BN7\"],\n Icon: \"BN7+\",\n Visible: () => hasAccessToSF(Player, 7),\n Condition: () => Player.bitNodeN === 7 && bitNodeFinishedState() && Player.bladeburner === null,\n },\n CHALLENGE_BN8: {\n ...achievementData[\"CHALLENGE_BN8\"],\n Icon: \"BN8+\",\n Visible: () => hasAccessToSF(Player, 8),\n Condition: () => Player.bitNodeN === 8 && bitNodeFinishedState() && !Player.has4SData && !Player.has4SDataTixApi,\n },\n CHALLENGE_BN9: {\n ...achievementData[\"CHALLENGE_BN9\"],\n Icon: \"BN9+\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () =>\n Player.bitNodeN === 9 &&\n bitNodeFinishedState() &&\n Player.moneySourceB.hacknet === 0 &&\n Player.moneySourceB.hacknet_expenses === 0,\n },\n CHALLENGE_BN10: {\n ...achievementData[\"CHALLENGE_BN10\"],\n Icon: \"BN10+\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () =>\n Player.bitNodeN === 10 &&\n bitNodeFinishedState() &&\n !Player.sleeves.some(\n (s) =>\n s.augmentations.length > 0 ||\n s.exp.hacking > 0 ||\n s.exp.strength > 0 ||\n s.exp.defense > 0 ||\n s.exp.agility > 0 ||\n s.exp.dexterity > 0 ||\n s.exp.charisma > 0,\n ),\n },\n CHALLENGE_BN12: {\n ...achievementData[\"CHALLENGE_BN12\"],\n Icon: \"BN12+\",\n Visible: () => hasAccessToSF(Player, 12),\n Condition: () => Player.sourceFileLvl(12) >= 50,\n },\n BYPASS: {\n ...achievementData[\"BYPASS\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.Bypass),\n },\n PROTOTYPETAMPERING: {\n ...achievementData[\"PROTOTYPETAMPERING\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.PrototypeTampering),\n },\n UNCLICKABLE: {\n ...achievementData[\"UNCLICKABLE\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.Unclickable),\n },\n UNDOCUMENTEDFUNCTIONCALL: {\n ...achievementData[\"UNDOCUMENTEDFUNCTIONCALL\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.UndocumentedFunctionCall),\n },\n TIMECOMPRESSION: {\n ...achievementData[\"TIMECOMPRESSION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.TimeCompression),\n },\n REALITYALTERATION: {\n ...achievementData[\"REALITYALTERATION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.RealityAlteration),\n },\n N00DLES: {\n ...achievementData[\"N00DLES\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.N00dles),\n },\n EDITSAVEFILE: {\n ...achievementData[\"EDITSAVEFILE\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.EditSaveFile),\n },\n UNACHIEVABLE: {\n ...achievementData[\"UNACHIEVABLE\"],\n Icon: \"SF-1\",\n Secret: true,\n // Hey Players! Yes, you're supposed to modify this to get the achievement!\n Condition: () => false,\n },\n CHALLENGE_BN13: {\n ...achievementData[\"CHALLENGE_BN13\"],\n Icon: \"BN13+\",\n Visible: () => hasAccessToSF(Player, 13),\n Condition: () =>\n Player.bitNodeN === 13 &&\n bitNodeFinishedState() &&\n !Player.augmentations.some((a) => a.name === AugmentationNames.StaneksGift1),\n },\n DEVMENU: {\n ...achievementData[\"DEVMENU\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.YoureNotMeantToAccessThis),\n },\n RAINBOW: {\n ...achievementData[\"RAINBOW\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.INeedARainbow),\n },\n TRUE_RECURSION: {\n ...achievementData[\"TRUE_RECURSION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.TrueRecursion),\n },\n};\n\n// Steam has a limit of 100 achievement. So these were planned but commented for now.\n// { ID: FactionNames.ECorp.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.ECorp) },\n// { ID: FactionNames.MegaCorp.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.MegaCorp) },\n// { ID: \"BACHMAN_&_ASSOCIATES\", Condition: () => Player.factions.includes(FactionNames.BachmanAssociates) },\n// { ID: \"BLADE_INDUSTRIES\", Condition: () => Player.factions.includes(FactionNames.BladeIndustries) },\n// { ID: FactionNames.NWO.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.NWO) },\n// { ID: \"CLARKE_INCORPORATED\", Condition: () => Player.factions.includes(FactionNames.ClarkeIncorporated) },\n// { ID: \"OMNITEK_INCORPORATED\", Condition: () => Player.factions.includes(FactionNames.OmniTekIncorporated) },\n// { ID: \"FOUR_SIGMA\", Condition: () => Player.factions.includes(FactionNames.FourSigma) },\n// { ID: \"KUAIGONG_INTERNATIONAL\", Condition: () => Player.factions.includes(FactionNames.KuaiGongInternational) },\n// { ID: \"FULCRUM_SECRET_TECHNOLOGIES\", Condition: () => Player.factions.includes(FactionNames.FulcrumSecretTechnologies) },\n// { ID: FactionNames.Aevum.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Aevum) },\n// { ID: FactionNames.Chongqing.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Chongqing) },\n// { ID: FactionNames.Ishima.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Ishima) },\n// { ID: \"NEW_TOKYO\", Condition: () => Player.factions.includes(FactionNames.NewTokyo) },\n// { ID: \"SECTOR-12\", Condition: () => Player.factions.includes(FactionNames.Sector12) },\n// { ID: FactionNames.Volhaven.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Volhaven) },\n// { ID: \"SPEAKERS_FOR_THE_DEAD\", Condition: () => Player.factions.includes(FactionNames.SpeakersForTheDead) },\n// { ID: \"THE_DARK_ARMY\", Condition: () => Player.factions.includes(FactionNames.TheDarkArmy) },\n// { ID: \"THE_SYNDICATE\", Condition: () => Player.factions.includes(FactionNames.TheSyndicate) },\n// { ID: FactionNames.Silhouette.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Silhouette) },\n// { ID: FactionNames.Tetrads.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Tetrads) },\n// { ID: \"SLUM_SNAKES\", Condition: () => Player.factions.includes(FactionNames.SlumSnakes) },\n// { ID: FactionNames.Netburners.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Netburners) },\n// { ID: \"TIAN_DI_HUI\", Condition: () => Player.factions.includes(FactionNames.TianDiHui) },\n// { ID: FactionNames.Bladeburners.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Bladeburners) },\n// { ID: \"DEEPSCANV1.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.DeepscanV1.name) },\n// { ID: \"DEEPSCANV2.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.DeepscanV2.name) },\n// { ID: \"INFILTRATORS\", Condition: () => Player.factions.includes(FactionNames.Infiltrators) },\n// {\n// ID: \"SERVERPROFILER.EXE\",\n// Condition: () => Player.getHomeComputer().programs.includes(Programs.ServerProfiler.name),\n// },\n// { ID: \"AUTOLINK.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.AutoLink.name) },\n// { ID: \"FLIGHT.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.Flight.name) },\n\nexport function calculateAchievements(): void {\n const playerAchievements = Player.achievements.map((a) => a.ID);\n\n const missingAchievements = Object.values(achievements)\n .filter((a) => !playerAchievements.includes(a.ID) && a.Condition())\n // callback returns array of achievement id and id of any in the additional list, flatmap means we have only a 1D array\n .flatMap((a) => [a.ID, ...(a.AdditionalUnlock || [])]);\n\n for (const id of missingAchievements) {\n Player.giveAchievement(id);\n }\n\n // Write all player's achievements to document for Steam/Electron\n // This could be replaced by \"availableAchievements\"\n // if we don't want to grant the save game achievements to steam but only currently available\n document.achievements = [...Player.achievements.map((a) => a.ID)];\n}\n","// Root React Component for the Corporation UI\nimport React, { useState, useEffect } from \"react\";\n\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Reputation } from \"./Reputation\";\nimport { KillScriptsModal } from \"./KillScriptsModal\";\nimport { convertTimeMsToTimeElapsedString } from \"../../utils/StringHelperFunctions\";\n\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"@mui/material/IconButton\";\nimport SaveIcon from \"@mui/icons-material/Save\";\nimport ClearAllIcon from \"@mui/icons-material/ClearAll\";\n\nimport { Settings } from \"../../Settings/Settings\";\nimport { use } from \"../Context\";\nimport { StatsProgressOverviewCell } from \"./StatsProgressBar\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\n\nimport { Box, Tooltip } from \"@mui/material\";\n\nimport { isClassWork } from \"../../Work/ClassWork\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { isCreateProgramWork } from \"../../Work/CreateProgramWork\";\nimport { isGraftingWork } from \"../../Work/GraftingWork\";\nimport { isFactionWork } from \"../../Work/FactionWork\";\nimport { ReputationRate } from \"./ReputationRate\";\nimport { isCompanyWork } from \"../../Work/CompanyWork\";\nimport { isCrimeWork } from \"../../Work/CrimeWork\";\n\ninterface IProps {\n save: () => void;\n killScripts: () => void;\n}\n\nfunction Intelligence(): React.ReactElement {\n const theme = useTheme();\n const player = use.Player();\n const classes = useStyles();\n if (player.skills.intelligence === 0) return <>>;\n const progress = player.calculateSkillProgress(player.exp.intelligence);\n\n return (\n <>\n \n \n Int \n \n \n \n {numeralWrapper.formatSkill(player.skills.intelligence)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n >\n );\n}\n\nfunction Bladeburner(): React.ReactElement {\n const player = use.Player();\n const classes = useStyles();\n const bladeburner = player.bladeburner;\n if (bladeburner === null) return <>>;\n const action = bladeburner.getTypeAndNameFromActionId(bladeburner.action);\n if (action.type === \"Idle\") return <>>;\n return (\n <>\n \n \n Bladeburner:\n \n \n \n \n \n {action.type}: {action.name}\n \n \n \n >\n );\n}\n\ninterface WorkInProgressOverviewProps {\n tooltip: React.ReactNode;\n header: React.ReactNode;\n children: React.ReactNode;\n onClickFocus: () => void;\n}\n\nfunction WorkInProgressOverview({\n tooltip,\n children,\n onClickFocus,\n header,\n}: WorkInProgressOverviewProps): React.ReactElement {\n const classes = useStyles();\n return (\n <>\n \n \n {tooltip}>}>\n \n {header}\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n >\n );\n}\n\nfunction Work(): React.ReactElement {\n const player = use.Player();\n const router = use.Router();\n const onClickFocus = (): void => {\n player.startFocusing();\n router.toWork();\n };\n if (player.currentWork === null || player.focus) return <>>;\n\n let details = <>>;\n let header = <>>;\n let innerText = <>>;\n if (isCrimeWork(player.currentWork)) {\n const crime = player.currentWork.getCrime();\n const perc = (player.currentWork.unitCompleted / crime.time) * 100;\n\n details = <>{player.currentWork.crimeType}>;\n header = <>You are attempting to {player.currentWork.crimeType}>;\n innerText = <>{perc.toFixed(2)}%>;\n }\n if (isClassWork(player.currentWork)) {\n details = <>{player.currentWork.getClass().youAreCurrently}>;\n header = <>You are {player.currentWork.getClass().youAreCurrently}>;\n innerText = <>{convertTimeMsToTimeElapsedString(player.currentWork.cyclesWorked * CONSTANTS._idleSpeed)}>;\n }\n if (isCreateProgramWork(player.currentWork)) {\n const create = player.currentWork;\n details = <>Coding {create.programName}>;\n header = <>Creating a program>;\n innerText = (\n <>\n {create.programName} {((create.unitCompleted / create.unitNeeded()) * 100).toFixed(2)}%\n >\n );\n }\n if (isGraftingWork(player.currentWork)) {\n const graft = player.currentWork;\n details = <>Grafting {graft.augmentation}>;\n header = <>Grafting an Augmentation>;\n innerText = (\n <>\n {((graft.unitCompleted / graft.unitNeeded()) * 100).toFixed(2)}% done\n >\n );\n }\n\n if (isFactionWork(player.currentWork)) {\n const factionWork = player.currentWork;\n header = (\n <>\n Working for {factionWork.factionName}\n >\n );\n innerText = (\n <>\n rep\n (\n )\n >\n );\n }\n if (isCompanyWork(player.currentWork)) {\n const companyWork = player.currentWork;\n details = (\n <>\n {player.jobs[companyWork.companyName]} at {companyWork.companyName}\n >\n );\n header = (\n <>\n Working at {companyWork.companyName}\n >\n );\n innerText = (\n <>\n rep\n (\n )\n >\n );\n }\n\n return (\n \n {innerText}\n \n );\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n workCell: {\n textAlign: \"center\",\n maxWidth: \"200px\",\n borderBottom: \"none\",\n padding: 0,\n margin: 0,\n },\n\n workHeader: {\n fontSize: \"0.9rem\",\n },\n\n workSubtitles: {\n fontSize: \"0.8rem\",\n },\n\n cellNone: {\n borderBottom: \"none\",\n padding: 0,\n margin: 0,\n },\n cell: {\n padding: 0,\n margin: 0,\n },\n hp: {\n color: theme.colors.hp,\n },\n money: {\n color: theme.colors.money,\n },\n hack: {\n color: theme.colors.hack,\n },\n combat: {\n color: theme.colors.combat,\n },\n cha: {\n color: theme.colors.cha,\n },\n int: {\n color: theme.colors.int,\n },\n }),\n);\n\nexport { useStyles as characterOverviewStyles };\n\nexport function CharacterOverview({ save, killScripts }: IProps): React.ReactElement {\n const [killOpen, setKillOpen] = useState(false);\n const player = use.Player();\n\n const setRerender = useState(false)[1];\n\n useEffect(() => {\n const id = setInterval(() => setRerender((old) => !old), 600);\n return () => clearInterval(id);\n }, []);\n\n const classes = useStyles();\n const theme = useTheme();\n\n const hackingProgress = player.calculateSkillProgress(\n player.exp.hacking,\n player.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,\n );\n const strengthProgress = player.calculateSkillProgress(\n player.exp.strength,\n player.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,\n );\n const defenseProgress = player.calculateSkillProgress(\n player.exp.defense,\n player.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,\n );\n const dexterityProgress = player.calculateSkillProgress(\n player.exp.dexterity,\n player.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,\n );\n const agilityProgress = player.calculateSkillProgress(\n player.exp.agility,\n player.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,\n );\n const charismaProgress = player.calculateSkillProgress(\n player.exp.charisma,\n player.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,\n );\n\n return (\n <>\n
\n \n \n \n HP \n \n \n \n {numeralWrapper.formatHp(player.hp.current)} / {numeralWrapper.formatHp(player.hp.max)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Money \n \n \n {numeralWrapper.formatMoney(player.money)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Hack \n \n \n \n {numeralWrapper.formatSkill(player.skills.hacking)}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n \n \n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Str \n \n \n \n {numeralWrapper.formatSkill(player.skills.strength)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Def \n \n \n \n {numeralWrapper.formatSkill(player.skills.defense)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Dex \n \n \n \n {numeralWrapper.formatSkill(player.skills.dexterity)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Agi \n \n \n \n {numeralWrapper.formatSkill(player.skills.agility)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Cha \n \n \n \n {numeralWrapper.formatSkill(player.skills.charisma)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n setKillOpen(true)}>\n \n \n \n \n \n \n setKillOpen(false)} killScripts={killScripts} />\n >\n );\n}\n","/**\n * Adds a random offset to a number within a certain percentage\n * @example\n * // Returns between 95-105\n * addOffset(100, 5);\n * @example\n * // Returns between 63-77\n * addOffSet(70, 10);\n * @param midpoint The number to be the midpoint of the offset range\n * @param percentage The percentage (in a range of 0-100) to offset\n */\nexport function addOffset(midpoint: number, percentage: number): number {\n const maxPercent = 100;\n if (percentage < 0 || percentage > maxPercent) {\n return midpoint;\n }\n\n const offset: number = midpoint * (percentage / maxPercent);\n\n // Double the range to account for both sides of the midpoint.\n // tslint:disable-next-line:no-magic-numbers\n return midpoint + (Math.random() * (offset * 2) - offset);\n}\n","export class DarkWebItem {\n program: string;\n price: number;\n description: string;\n\n constructor(program: string, price: number, description: string) {\n this.program = program;\n this.price = price;\n this.description = description;\n }\n}\n","export class PlayerOwnedAugmentation {\n level = 1;\n name = \"\";\n\n constructor(name = \"\") {\n this.name = name;\n }\n}\n\nexport interface IPlayerOwnedAugmentation {\n level: number;\n name: string;\n}\n","interface RNG {\n random(): number;\n}\n\n/*\n * very bad RNG, meant to be used as introduction to RNG manipulation. It has a\n * period of 1024.\n */\nclass RNG0 implements RNG {\n x: number;\n m = 1024;\n a = 341;\n c = 1;\n\n constructor() {\n this.x = 0;\n this.reset();\n }\n\n step(): void {\n this.x = (this.a * this.x + this.c) % this.m;\n }\n\n random(): number {\n this.step();\n return this.x / this.m;\n }\n\n reset(): void {\n this.x = new Date().getTime() % this.m;\n }\n}\n\nexport const BadRNG: RNG0 = new RNG0();\n\n/*\n * Wichmann–Hill PRNG\n * The period is 6e12.\n */\nexport class WHRNG implements RNG {\n s1 = 0;\n s2 = 0;\n s3 = 0;\n\n constructor(totalPlaytime: number) {\n // This one is seeded by the players total play time.\n const v: number = (totalPlaytime / 1000) % 30000;\n this.s1 = v;\n this.s2 = v;\n this.s3 = v;\n }\n\n step(): void {\n this.s1 = (171 * this.s1) % 30269;\n this.s2 = (172 * this.s2) % 30307;\n this.s3 = (170 * this.s3) % 30323;\n }\n\n random(): number {\n this.step();\n return (this.s1 / 30269.0 + this.s2 / 30307.0 + this.s3 / 30323.0) % 1.0;\n }\n}\n\nexport function SFC32RNG(seed: string): () => number {\n let h = 1779033703 ^ seed.length;\n for (let i = 0; i < seed.length; i++) {\n h = Math.imul(h ^ seed.charCodeAt(i), 3432918353);\n h = (h << 13) | (h >>> 19);\n }\n const genSeed = (): number => {\n h = Math.imul(h ^ (h >>> 16), 2246822507);\n h = Math.imul(h ^ (h >>> 13), 3266489909);\n return (h ^= h >>> 16) >>> 0;\n };\n\n let a = genSeed();\n let b = genSeed();\n let c = genSeed();\n let d = genSeed();\n return (): number => {\n a >>>= 0;\n b >>>= 0;\n c >>>= 0;\n d >>>= 0;\n let t = (a + b) | 0;\n a = b ^ (b >>> 9);\n b = (c + (c << 3)) | 0;\n c = (c << 21) | (c >>> 11);\n d = (d + 1) | 0;\n t = (t + d) | 0;\n c = (c + t) | 0;\n return (t >>> 0) / 4294967296;\n };\n}\n","import React from \"react\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { Work, WorkType } from \"./Work\";\nimport { influenceStockThroughCompanyWork } from \"../StockMarket/PlayerInfluencing\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { calculateCompanyWorkStats } from \"./formulas/Company\";\nimport { Companies } from \"../Company/Companies\";\nimport { applyWorkStats, scaleWorkStats, WorkStats } from \"./WorkStats\";\nimport { Company } from \"../Company/Company\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\n\ninterface CompanyWorkParams {\n companyName: string;\n singularity: boolean;\n}\n\nexport const isCompanyWork = (w: Work | null): w is CompanyWork => w !== null && w.type === WorkType.COMPANY;\n\nexport class CompanyWork extends Work {\n companyName: string;\n constructor(params?: CompanyWorkParams) {\n super(WorkType.COMPANY, params?.singularity ?? false);\n this.companyName = params?.companyName ?? LocationName.NewTokyoNoodleBar;\n }\n\n getCompany(): Company {\n const c = Companies[this.companyName];\n if (!c) throw new Error(`Company not found: '${this.companyName}'`);\n return c;\n }\n\n getGainRates(player: IPlayer): WorkStats {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return scaleWorkStats(calculateCompanyWorkStats(player, player, this.getCompany()), focusBonus);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n const company = this.getCompany();\n const gains = this.getGainRates(player);\n applyWorkStats(player, player, gains, cycles, \"work\");\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return false;\n }\n finish(): void {\n dialogBoxCreate(\n <>\n You finished working for {this.companyName}\n \n You have reputation with them.\n >,\n );\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CompanyWork {\n return Generic_fromJSON(CompanyWork, value.data);\n }\n}\n\nReviver.constructors.CompanyWork = CompanyWork;\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n favor: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Favor({ favor }: { favor: number | string }): React.ReactElement {\n const classes = useStyles();\n return {typeof favor === \"number\" ? numeralWrapper.formatFavor(favor) : favor};\n}\n","export enum RamCalculationErrorCode {\n SyntaxError = -1,\n ImportError = -2,\n URLImportError = -3,\n}\n","import { EventEmitter } from \"../utils/EventEmitter\";\nexport const TerminalEvents = new EventEmitter<[]>();\nexport const TerminalClearEvents = new EventEmitter<[]>();\n","/**\n * Helper functions for determine whether Limit and Stop orders should\n * be executed (and executing them)\n */\nimport { buyStock, sellStock, shortStock, sellShort } from \"./BuyingAndSelling\";\nimport { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { Stock } from \"./Stock\";\n\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\n\nimport * as React from \"react\";\n\nexport interface IProcessOrderRefs {\n stockMarket: IStockMarket;\n symbolToStockMap: IMap;\n}\n\n/**\n * Search for all orders of a specific type and execute them if appropriate\n * @param {Stock} stock - Stock for which orders should be processed\n * @param {OrderTypes} orderType - Type of order to check (Limit/Stop buy/sell)\n * @param {PositionTypes} posType - Long or short\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nexport function processOrders(\n stock: Stock,\n orderType: OrderTypes,\n posType: PositionTypes,\n refs: IProcessOrderRefs,\n): void {\n const orderBook = refs.stockMarket[\"Orders\"];\n if (orderBook == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(refs.stockMarket)) {\n const stock = refs.stockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n refs.stockMarket[\"Orders\"] = orders;\n return; // Newly created, so no orders to process\n }\n let stockOrders = orderBook[stock.symbol];\n if (stockOrders == null || !(stockOrders.constructor === Array)) {\n console.error(`Invalid Order book for ${stock.symbol} in processOrders(): ${stockOrders}`);\n stockOrders = [];\n return;\n }\n\n for (const order of stockOrders) {\n if (order.type === orderType && order.pos === posType) {\n switch (order.type) {\n case OrderTypes.LimitBuy:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.LimitSell:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopBuy:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n }\n }\n}\n\n/**\n * Execute a Stop or Limit Order.\n * @param {Order} order - Order being executed\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nfunction executeOrder(order: Order, refs: IProcessOrderRefs): void {\n const stock = refs.symbolToStockMap[order.stockSymbol];\n if (!(stock instanceof Stock)) {\n console.error(`Could not find stock for this order: ${order.stockSymbol}`);\n return;\n }\n const stockMarket = refs.stockMarket;\n const orderBook = stockMarket[\"Orders\"];\n const stockOrders = orderBook[stock.symbol];\n\n // When orders are executed, the buying and selling functions shouldn't\n // emit popup dialog boxes. This options object configures the functions for that\n const opts = {\n suppressDialog: true,\n };\n\n let res = true;\n let isBuy = false;\n switch (order.type) {\n case OrderTypes.LimitBuy:\n case OrderTypes.StopBuy:\n isBuy = true;\n if (order.pos === PositionTypes.Long) {\n res = buyStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = shortStock(stock, order.shares, null, opts) && res;\n }\n break;\n case OrderTypes.LimitSell:\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long) {\n res = sellStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = sellShort(stock, order.shares, null, opts) && res;\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n\n // Position type, for logging/message purposes\n const pos = order.pos === PositionTypes.Long ? \"Long\" : \"Short\";\n\n if (res) {\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n if (!Settings.SuppressTIXPopup) {\n dialogBoxCreate(\n <>\n {order.type} for {stock.symbol} @ ({pos}) was filled (\n {numeralWrapper.formatShares(Math.round(order.shares))} shares)\n >,\n );\n }\n return;\n }\n }\n\n console.error(\"Could not find the following Order in Order Book: \");\n console.error(order);\n } else if (isBuy) {\n dialogBoxCreate(\n <>\n Failed to execute {order.type} for {stock.symbol} @ ({pos}). This is most likely\n because you do not have enough money or the order would exceed the stock's maximum number of shares\n >,\n );\n }\n}\n","import { IMap } from \"../types\";\nimport * as predefined from \"./data\";\n\nexport interface ITheme {\n [key: string]: string | undefined;\n primarylight: string;\n primary: string;\n primarydark: string;\n successlight: string;\n success: string;\n successdark: string;\n errorlight: string;\n error: string;\n errordark: string;\n secondarylight: string;\n secondary: string;\n secondarydark: string;\n warninglight: string;\n warning: string;\n warningdark: string;\n infolight: string;\n info: string;\n infodark: string;\n welllight: string;\n well: string;\n white: string;\n black: string;\n hp: string;\n money: string;\n hack: string;\n combat: string;\n cha: string;\n int: string;\n rep: string;\n disabled: string;\n backgroundprimary: string;\n backgroundsecondary: string;\n button: string;\n}\n\nexport interface IPredefinedTheme {\n colors: ITheme;\n name: string;\n credit: string;\n screenshot: string;\n description: string;\n reference?: string;\n}\n\nexport const defaultTheme: ITheme = {\n ...predefined.Default.colors,\n};\n\nexport const getPredefinedThemes = (): IMap => ({\n ...predefined,\n});\n","import React, { useState, useEffect } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { Modal } from \"./Modal\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport { sha256 } from \"js-sha256\";\n\nexport const AlertEvents = new EventEmitter<[string | JSX.Element]>();\n\ninterface Alert {\n id: string;\n text: string | JSX.Element;\n hash: string;\n}\n\nlet i = 0;\nexport function AlertManager(): React.ReactElement {\n const [alerts, setAlerts] = useState([]);\n useEffect(\n () =>\n AlertEvents.subscribe((text: string | JSX.Element) => {\n const id = i + \"\";\n i++;\n setAlerts((old) => {\n const hash = getMessageHash(text);\n if (old.some((a) => a.hash === hash)) {\n return old;\n }\n return [\n ...old,\n {\n id: id,\n text: text,\n hash: hash,\n },\n ];\n });\n }),\n [],\n );\n\n useEffect(() => {\n function handle(this: Document, event: KeyboardEvent): void {\n if (event.code === \"Escape\") {\n setAlerts([]);\n }\n }\n document.addEventListener(\"keydown\", handle);\n return () => document.removeEventListener(\"keydown\", handle);\n }, []);\n\n function getMessageHash(text: string | JSX.Element): string {\n if (typeof text === \"string\") return sha256(text);\n return sha256(JSON.stringify(text.props));\n }\n\n function close(): void {\n setAlerts((old) => {\n return old.slice(1, 1e99);\n });\n }\n\n return (\n <>\n {alerts.length > 0 && (\n \n \n {alerts[0].text}\n \n \n )}\n >\n );\n}\n","import { getRandomByte } from \"./helpers/getRandomByte\";\n\n/**\n * Generate a random IP address\n * Does not check to see if the IP already exists in the game\n */\nexport const createRandomIp = (): string =>\n `${getRandomByte(99)}.${getRandomByte(9)}.${getRandomByte(9)}.${getRandomByte(9)}`;\n","import { IPlayer } from \"../../../PersonObjects/IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Work, WorkType } from \"./Work\";\n\nexport const isSleeveSupportWork = (w: Work | null): w is SleeveSupportWork =>\n w !== null && w.type === WorkType.SUPPORT;\n\nexport class SleeveSupportWork extends Work {\n constructor(player?: IPlayer) {\n super(WorkType.SUPPORT);\n if (player) player.bladeburner?.sleeveSupport(true);\n }\n\n process(): number {\n return 0;\n }\n\n finish(player: IPlayer): void {\n player.bladeburner?.sleeveSupport(false);\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveSupportWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveSupportWork {\n return Generic_fromJSON(SleeveSupportWork, value.data);\n }\n}\n\nReviver.constructors.SleeveSupportWork = SleeveSupportWork;\n","import { RunningScript } from \"src/Script/RunningScript\";\nimport { Settings } from \"../Settings/Settings\";\nimport { WorkerScript } from \"./WorkerScript\";\n\nexport const recentScripts: RecentScript[] = [];\n\nexport function AddRecentScript(workerScript: WorkerScript): void {\n if (recentScripts.find((r) => r.runningScript.pid === workerScript.pid)) return;\n\n const killedTime = new Date();\n recentScripts.unshift({\n timeOfDeath: killedTime,\n runningScript: workerScript.scriptRef,\n });\n\n while (recentScripts.length > Settings.MaxRecentScriptsCapacity) {\n recentScripts.pop();\n }\n}\n\nexport interface RecentScript {\n timeOfDeath: Date;\n runningScript: RunningScript;\n}\n","function getDB(): Promise {\n return new Promise((resolve, reject) => {\n if (!window.indexedDB) {\n reject(\"Indexed DB does not exists\");\n }\n /**\n * DB is called bitburnerSave\n * Object store is called savestring\n * key for the Object store is called save\n * Version `1` is important\n */\n const indexedDbRequest: IDBOpenDBRequest = window.indexedDB.open(\"bitburnerSave\", 1);\n\n // This is called when there's no db to begin with. It's important, don't remove it.\n indexedDbRequest.onupgradeneeded = function (this: IDBRequest) {\n const db = this.result;\n db.createObjectStore(\"savestring\");\n };\n\n indexedDbRequest.onerror = function (this: IDBRequest, ev: Event) {\n reject(`Failed to get IDB ${ev}`);\n };\n\n indexedDbRequest.onsuccess = function (this: IDBRequest) {\n const db = this.result;\n if (!db) {\n reject(\"database loading result was undefined\");\n return;\n }\n resolve(db.transaction([\"savestring\"], \"readwrite\").objectStore(\"savestring\"));\n };\n });\n}\n\nexport function load(): Promise {\n return new Promise((resolve, reject) => {\n getDB()\n .then((db) => {\n return new Promise((resolve, reject) => {\n const request: IDBRequest = db.get(\"save\");\n request.onerror = function (this: IDBRequest, ev: Event) {\n reject(\"Error in Database request to get savestring: \" + ev);\n };\n\n request.onsuccess = function (this: IDBRequest) {\n resolve(this.result);\n };\n }).then((saveString) => resolve(saveString));\n })\n .catch((r) => reject(r));\n });\n}\n\nexport function save(saveString: string): Promise {\n return getDB().then((db) => {\n return new Promise((resolve, reject) => {\n // We'll save to both localstorage and indexedDb\n const request = db.put(saveString, \"save\");\n\n request.onerror = function (e) {\n reject(\"Error saving game to IndexedDB: \" + e);\n };\n\n request.onsuccess = () => resolve();\n });\n });\n}\n\nexport function deleteGame(): Promise {\n return getDB().then((db) => {\n db.delete(\"save\");\n });\n}\n","import { Message } from \"./Message\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { Router } from \"../ui/GameRoot\";\nimport { Programs } from \"../Programs/Programs\";\nimport { Player } from \"../Player\";\nimport { Page } from \"../ui/Router\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { SpecialServers } from \"../Server/data/SpecialServers\";\nimport { Settings } from \"../Settings/Settings\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Server } from \"../Server/Server\";\n\n//Sends message to player, including a pop up\nfunction sendMessage(msg: Message, forced = false): void {\n if (forced || !Settings.SuppressMessages) {\n showMessage(msg.filename);\n }\n addMessageToServer(msg);\n}\n\nfunction showMessage(name: MessageFilenames): void {\n const msg = Messages[name];\n if (!(msg instanceof Message)) throw new Error(\"trying to display unexistent message\");\n const txt =\n \"Message received from unknown sender:
\" +\n \"\" +\n msg.msg +\n \"
\" +\n \"This message was saved as \" +\n msg.filename +\n \" onto your home computer.\";\n dialogBoxCreate(txt);\n}\n\n//Adds a message to a server\nfunction addMessageToServer(msg: Message): void {\n //Short-circuit if the message has already been saved\n if (recvd(msg)) {\n return;\n }\n const server = GetServer(\"home\");\n if (server == null) {\n throw new Error(\"The home server doesn't exist. You done goofed.\");\n }\n server.messages.push(msg.filename);\n}\n\n//Returns whether the given message has already been received\nfunction recvd(msg: Message): boolean {\n const server = GetServer(\"home\");\n if (server == null) {\n throw new Error(\"The home server doesn't exist. You done goofed.\");\n }\n return server.messages.includes(msg.filename);\n}\n\n//Checks if any of the 'timed' messages should be sent\nfunction checkForMessagesToSend(): void {\n if (Router.page() === Page.BitVerse) return;\n const jumper0 = Messages[MessageFilenames.Jumper0];\n const jumper1 = Messages[MessageFilenames.Jumper1];\n const jumper2 = Messages[MessageFilenames.Jumper2];\n const jumper3 = Messages[MessageFilenames.Jumper3];\n const jumper4 = Messages[MessageFilenames.Jumper4];\n const cybersecTest = Messages[MessageFilenames.CyberSecTest];\n const nitesecTest = Messages[MessageFilenames.NiteSecTest];\n const bitrunnersTest = Messages[MessageFilenames.BitRunnersTest];\n const truthGazer = Messages[MessageFilenames.TruthGazer];\n const redpill = Messages[MessageFilenames.RedPill];\n\n if (Player.hasAugmentation(AugmentationNames.TheRedPill)) {\n //Get the world daemon required hacking level\n const worldDaemon = GetServer(SpecialServers.WorldDaemon);\n if (!(worldDaemon instanceof Server)) {\n throw new Error(\"The world daemon is not a server???? Please un-break reality\");\n }\n //If the daemon can be hacked, send the player icarus.msg\n if (Player.skills.hacking >= worldDaemon.requiredHackingSkill) {\n sendMessage(redpill, Player.sourceFiles.length === 0);\n }\n //If the daemon cannot be hacked, send the player truthgazer.msg a single time.\n else if (!recvd(truthGazer)) {\n sendMessage(truthGazer);\n }\n } else if (!recvd(jumper0) && Player.skills.hacking >= 25) {\n sendMessage(jumper0);\n const flightName = Programs.Flight.name;\n const homeComp = Player.getHomeComputer();\n if (!homeComp.programs.includes(flightName)) {\n homeComp.programs.push(flightName);\n }\n } else if (!recvd(jumper1) && Player.skills.hacking >= 40) {\n sendMessage(jumper1);\n } else if (!recvd(cybersecTest) && Player.skills.hacking >= 50) {\n sendMessage(cybersecTest);\n } else if (!recvd(jumper2) && Player.skills.hacking >= 175) {\n sendMessage(jumper2);\n } else if (!recvd(nitesecTest) && Player.skills.hacking >= 200) {\n sendMessage(nitesecTest);\n } else if (!recvd(jumper3) && Player.skills.hacking >= 350) {\n sendMessage(jumper3);\n } else if (!recvd(jumper4) && Player.skills.hacking >= 490) {\n sendMessage(jumper4);\n } else if (!recvd(bitrunnersTest) && Player.skills.hacking >= 500) {\n sendMessage(bitrunnersTest);\n }\n}\n\nexport enum MessageFilenames {\n Jumper0 = \"j0.msg\",\n Jumper1 = \"j1.msg\",\n Jumper2 = \"j2.msg\",\n Jumper3 = \"j3.msg\",\n Jumper4 = \"j4.msg\",\n CyberSecTest = \"csec-test.msg\",\n NiteSecTest = \"nitesec-test.msg\",\n BitRunnersTest = \"19dfj3l1nd.msg\",\n TruthGazer = \"truthgazer.msg\",\n RedPill = \"icarus.msg\",\n}\n\n//Reset\nconst Messages: Record = {\n //jump3R Messages\n [MessageFilenames.Jumper0]: new Message(\n MessageFilenames.Jumper0,\n \"I know you can sense it. I know you're searching for it. \" +\n \"It's why you spend night after \" +\n \"night at your computer.
It's real, I've seen it. And I can \" +\n \"help you find it. But not right now. You're not ready yet.
\" +\n \"Use this program to track your progress
\" +\n \"The fl1ght.exe program was added to your home computer
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper1]: new Message(\n MessageFilenames.Jumper1,\n `Soon you will be contacted by a hacking group known as ${FactionNames.NiteSec}. ` +\n \"They can help you with your search.
\" +\n \"You should join them, garner their favor, and \" +\n \"exploit them for their Augmentations. But do not trust them. \" +\n \"They are not what they seem. No one is.
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper2]: new Message(\n MessageFilenames.Jumper2,\n \"Do not try to save the world. There is no world to save. If \" +\n \"you want to find the truth, worry only about yourself. Ethics and \" +\n `morals will get you killed.
Watch out for a hacking group known as ${FactionNames.NiteSec}.` +\n \"
-jump3R\",\n ),\n\n [MessageFilenames.Jumper3]: new Message(\n MessageFilenames.Jumper3,\n \"You must learn to walk before you can run. And you must \" +\n `run before you can fly. Look for ${FactionNames.TheBlackHand}.
` +\n \"I.I.I.I
-jump3R\",\n ),\n\n [MessageFilenames.Jumper4]: new Message(\n MessageFilenames.Jumper4,\n \"To find what you are searching for, you must understand the bits. \" +\n \"The bits are all around us. The runners will help you.
\" +\n \"-jump3R\",\n ),\n\n //Messages from hacking factions\n [MessageFilenames.CyberSecTest]: new Message(\n MessageFilenames.CyberSecTest,\n \"We've been watching you. Your skills are very impressive. But you're wasting \" +\n \"your talents. If you join us, you can put your skills to good use and change \" +\n \"the world for the better. If you join us, we can unlock your full potential.
\" +\n \"But first, you must pass our test. Find and install the backdoor on our server.
\" +\n `-${FactionNames.CyberSec}`,\n ),\n\n [MessageFilenames.NiteSecTest]: new Message(\n MessageFilenames.NiteSecTest,\n \"People say that the corrupted governments and corporations rule the world. \" +\n \"Yes, maybe they do. But do you know who everyone really fears? People \" +\n \"like us. Because they can't hide from us. Because they can't fight shadows \" +\n \"and ideas with bullets.
\" +\n \"Join us, and people will fear you, too.
\" +\n \"Find and install the backdoor on our server, avmnite-02h. Then, we will contact you again.\" +\n `
-${FactionNames.NiteSec}`,\n ),\n\n [MessageFilenames.BitRunnersTest]: new Message(\n MessageFilenames.BitRunnersTest,\n \"We know what you are doing. We know what drives you. We know \" +\n \"what you are looking for.
\" +\n \"We can help you find the answers.
\" +\n \"run4theh111z\",\n ),\n\n //Messages to guide players to the daemon\n [MessageFilenames.TruthGazer]: new Message(\n MessageFilenames.TruthGazer,\n //\"THE TRUTH CAN NO LONGER ESCAPE YOUR GAZE\"\n \"@&*($#@&__TH3__#@A@*)__TRU1H__(*)&*)($#@&()E&R)W& \" +\n \"%@*$^$()@&$)$*@__CAN__()(@^#)@&@)#__N0__(#@)@&@&( \" +\n \"*(__LON6ER__^#)@)(()*#@)@__ESCAP3__)#(@(#@*@()@(#*$ \" +\n \"()@)#$*%)$#()$#__Y0UR__(*)$#()%(&(%)*!)($__GAZ3__#(\",\n ),\n\n [MessageFilenames.RedPill]: new Message(\n MessageFilenames.RedPill,\n //\"FIND THE-CAVE\"\n \"@)(#V%*N)@(#*)*C)@#%*)*V)@#(*%V@)(#VN%*)@#(*% \" +\n \")@B(*#%)@)M#B*%V)____FIND___#$@)#%(B*)@#(*%B) \" +\n \"@_#(%_@#M(BDSPOMB__THE-CAVE_#)$(*@#$)@#BNBEGB \" +\n \"DFLSMFVMV)#@($*)@#*$MV)@#(*$V)M#(*$)M@(#*VM$)\",\n ),\n};\n\nexport { Messages, checkForMessagesToSend, showMessage };\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { ClassType } from \"../../../Work/ClassWork\";\nimport { LocationName } from \"../../../Locations/data/LocationNames\";\nimport { calculateClassEarnings } from \"../../../Work/formulas/Class\";\nimport { Sleeve } from \"../Sleeve\";\nimport { scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\nexport const isSleeveClassWork = (w: Work | null): w is SleeveClassWork => w !== null && w.type === WorkType.CLASS;\n\ninterface ClassWorkParams {\n classType: ClassType;\n location: LocationName;\n}\n\nexport class SleeveClassWork extends Work {\n classType: ClassType;\n location: LocationName;\n\n constructor(params?: ClassWorkParams) {\n super(WorkType.CLASS);\n this.classType = params?.classType ?? ClassType.StudyComputerScience;\n this.location = params?.location ?? LocationName.Sector12RothmanUniversity;\n }\n\n calculateRates(player: IPlayer, sleeve: Sleeve): WorkStats {\n return scaleWorkStats(\n calculateClassEarnings(player, sleeve, this.classType, this.location),\n sleeve.shockBonus(),\n false,\n );\n }\n\n isGym(): boolean {\n return [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymDexterity, ClassType.GymStrength].includes(\n this.classType,\n );\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n const rate = this.calculateRates(player, sleeve);\n applySleeveGains(player, sleeve, rate, cycles);\n return 0;\n }\n APICopy(): Record {\n return {\n type: this.type,\n classType: this.classType,\n location: this.location,\n };\n }\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveClassWork\", this);\n }\n\n /**\n * Initiatizes a ClassWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveClassWork {\n return Generic_fromJSON(SleeveClassWork, value.data);\n }\n}\n\nReviver.constructors.SleeveClassWork = SleeveClassWork;\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { CrimeType } from \"../../../utils/WorkType\";\nimport { Crimes } from \"../../../Crime/Crimes\";\nimport { Crime } from \"../../../Crime/Crime\";\nimport { newWorkStats, scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\nimport { CONSTANTS } from \"../../../Constants\";\n\nexport const isSleeveCrimeWork = (w: Work | null): w is SleeveCrimeWork => w !== null && w.type === WorkType.CRIME;\n\nexport class SleeveCrimeWork extends Work {\n crimeType: CrimeType;\n cyclesWorked = 0;\n constructor(crimeType?: CrimeType) {\n super(WorkType.CRIME);\n this.crimeType = crimeType ?? CrimeType.SHOPLIFT;\n }\n\n getCrime(): Crime {\n const crime = Object.values(Crimes).find((crime) => crime.type === this.crimeType);\n if (!crime) throw new Error(\"crime should not be undefined\");\n return crime;\n }\n\n getExp(): WorkStats {\n const crime = this.getCrime();\n return newWorkStats({\n money: crime.money,\n hackExp: crime.hacking_exp,\n strExp: crime.strength_exp,\n defExp: crime.defense_exp,\n dexExp: crime.dexterity_exp,\n agiExp: crime.agility_exp,\n chaExp: crime.charisma_exp,\n intExp: crime.intelligence_exp,\n });\n }\n\n cyclesNeeded(): number {\n return this.getCrime().time / CONSTANTS._idleSpeed;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n this.cyclesWorked += cycles;\n\n const crime = this.getCrime();\n let gains = this.getExp();\n if (this.cyclesWorked >= this.cyclesNeeded()) {\n if (Math.random() < crime.successRate(sleeve)) {\n player.karma -= crime.karma * sleeve.syncBonus();\n } else {\n gains.money = 0;\n gains = scaleWorkStats(gains, 0.25);\n }\n applySleeveGains(player, sleeve, gains, cycles);\n this.cyclesWorked -= this.cyclesNeeded();\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveCrimeWork\", this);\n }\n\n /**\n * Initiatizes a RecoveryWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveCrimeWork {\n return Generic_fromJSON(SleeveCrimeWork, value.data);\n }\n}\n\nReviver.constructors.SleeveCrimeWork = SleeveCrimeWork;\n","// The initial formulas was sum 0 to f of 500*1.02^f.\n// see https://en.wikipedia.org/wiki/Geometric_series#Closed-form_formula\n// for information on how to calculate this\n\nexport function favorToRep(f: number): number {\n const raw = 25000 * (Math.pow(1.02, f) - 1);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n\nexport function repToFavor(r: number): number {\n const raw = Math.log(r / 25000 + 1) / Math.log(1.02);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n","import {\n CodingContract,\n CodingContractRewardType,\n CodingContractTypes,\n ICodingContractReward,\n} from \"./CodingContracts\";\nimport { Factions } from \"./Faction/Factions\";\nimport { Player } from \"./Player\";\nimport { GetServer, GetAllServers } from \"./Server/AllServers\";\nimport { SpecialServers } from \"./Server/data/SpecialServers\";\nimport { Server } from \"./Server/Server\";\nimport { BaseServer } from \"./Server/BaseServer\";\n\nimport { getRandomInt } from \"./utils/helpers/getRandomInt\";\n\nexport function generateRandomContract(): void {\n // First select a random problem type\n const problemType = getRandomProblemType();\n\n // Then select a random reward type. 'Money' will always be the last reward type\n const reward = getRandomReward();\n\n // Choose random server\n const randServer = getRandomServer();\n\n const contractFn = getRandomFilename(randServer, reward);\n const contract = new CodingContract(contractFn, problemType, reward);\n\n randServer.addContract(contract);\n}\n\nexport function generateRandomContractOnHome(): void {\n // First select a random problem type\n const problemType = getRandomProblemType();\n\n // Then select a random reward type. 'Money' will always be the last reward type\n const reward = getRandomReward();\n\n // Choose random server\n const serv = Player.getHomeComputer();\n\n const contractFn = getRandomFilename(serv, reward);\n const contract = new CodingContract(contractFn, problemType, reward);\n\n serv.addContract(contract);\n}\n\ninterface IGenerateContractParams {\n problemType?: string;\n server?: string;\n fn?: string;\n}\n\nexport function generateContract(params: IGenerateContractParams): void {\n // Problem Type\n let problemType;\n const problemTypes = Object.keys(CodingContractTypes);\n if (params.problemType != null && problemTypes.includes(params.problemType)) {\n problemType = params.problemType;\n } else {\n problemType = getRandomProblemType();\n }\n\n // Reward Type - This is always random for now\n const reward = getRandomReward();\n\n // Server\n let server;\n if (params.server != null) {\n server = GetServer(params.server);\n if (server == null) {\n server = getRandomServer();\n }\n } else {\n server = getRandomServer();\n }\n\n // Filename\n let fn;\n if (params.fn != null) {\n fn = params.fn;\n } else {\n fn = getRandomFilename(server, reward);\n }\n\n const contract = new CodingContract(fn, problemType, reward);\n server.addContract(contract);\n}\n\n// Ensures that a contract's reward type is valid\nfunction sanitizeRewardType(rewardType: CodingContractRewardType): CodingContractRewardType {\n let type = rewardType; // Create copy\n\n const factionsThatAllowHacking = Player.factions.filter((fac) => {\n try {\n return Factions[fac].getInfo().offerHackingWork;\n } catch (e) {\n console.error(`Error when trying to filter Hacking Factions for Coding Contract Generation: ${e}`);\n return false;\n }\n });\n if (type === CodingContractRewardType.FactionReputation && factionsThatAllowHacking.length === 0) {\n type = CodingContractRewardType.CompanyReputation;\n }\n if (type === CodingContractRewardType.FactionReputationAll && factionsThatAllowHacking.length === 0) {\n type = CodingContractRewardType.CompanyReputation;\n }\n if (type === CodingContractRewardType.CompanyReputation && Object.keys(Player.jobs).length === 0) {\n type = CodingContractRewardType.Money;\n }\n\n return type;\n}\n\nfunction getRandomProblemType(): string {\n const problemTypes = Object.keys(CodingContractTypes);\n const randIndex = getRandomInt(0, problemTypes.length - 1);\n\n return problemTypes[randIndex];\n}\n\nfunction getRandomReward(): ICodingContractReward {\n const reward: ICodingContractReward = {\n name: \"\",\n type: getRandomInt(0, CodingContractRewardType.Money),\n };\n reward.type = sanitizeRewardType(reward.type);\n\n // Add additional information based on the reward type\n const factionsThatAllowHacking = Player.factions.filter((fac) => Factions[fac].getInfo().offerHackingWork);\n\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation: {\n // Get a random faction that player is a part of. That\n // faction must allow hacking contracts\n const numFactions = factionsThatAllowHacking.length;\n const randFaction = factionsThatAllowHacking[getRandomInt(0, numFactions - 1)];\n reward.name = randFaction;\n break;\n }\n case CodingContractRewardType.CompanyReputation: {\n const allJobs = Object.keys(Player.jobs);\n if (allJobs.length > 0) {\n reward.name = allJobs[getRandomInt(0, allJobs.length - 1)];\n } else {\n reward.type = CodingContractRewardType.Money;\n }\n break;\n }\n default:\n break;\n }\n\n return reward;\n}\n\nfunction getRandomServer(): BaseServer {\n const servers = GetAllServers().filter((server: BaseServer) => server.serversOnNetwork.length !== 0);\n let randIndex = getRandomInt(0, servers.length - 1);\n let randServer = servers[randIndex];\n\n // An infinite loop shouldn't ever happen, but to be safe we'll use\n // a for loop with a limited number of tries\n for (let i = 0; i < 200; ++i) {\n if (\n randServer instanceof Server &&\n !randServer.purchasedByPlayer &&\n randServer.hostname !== SpecialServers.WorldDaemon\n ) {\n break;\n }\n randIndex = getRandomInt(0, servers.length - 1);\n randServer = servers[randIndex];\n }\n\n return randServer;\n}\n\nfunction getRandomFilename(server: BaseServer, reward: ICodingContractReward): string {\n let contractFn = `contract-${getRandomInt(0, 1e6)}`;\n\n for (let i = 0; i < 1000; ++i) {\n if (\n server.contracts.filter((c: CodingContract) => {\n return c.fn === contractFn;\n }).length <= 0\n ) {\n break;\n }\n contractFn = `contract-${getRandomInt(0, 1e6)}`;\n }\n\n if (reward.name) {\n contractFn += `-${reward.name.replace(/\\s/g, \"\")}`;\n }\n\n return contractFn;\n}\n","import { Factions } from \"./Faction/Factions\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\n\nexport let LastExportBonus = 0;\n\nconst bonusTimer = 24 * 60 * 60 * 1000; // 24h\nexport function canGetBonus(): boolean {\n const now = new Date().getTime();\n return now - LastExportBonus > bonusTimer;\n}\n\nexport function onExport(p: IPlayer): void {\n if (!canGetBonus()) return;\n for (const facName of p.factions) {\n Factions[facName].favor++;\n }\n LastExportBonus = new Date().getTime();\n}\n\nexport function setLastExportBonus(unixTime: number): void {\n LastExportBonus = unixTime;\n}\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Reputation } from \"./Reputation\";\n\nexport function ReputationRate({ reputation }: { reputation: number }): React.ReactElement {\n return ;\n}\n","/**\n * React component for a selectable option on the Faction UI. These\n * options including working for the faction, hacking missions, purchasing\n * augmentations, etc.\n */\nimport * as React from \"react\";\n\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\n\ntype IProps = {\n buttonText: string;\n infoText: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nexport function Option(props: IProps): React.ReactElement {\n return (\n \n \n \n {props.infoText}\n \n \n );\n}\n","import { IBladeburner } from \"./IBladeburner\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { Action, IActionParams } from \"./Action\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IOperationParams extends IActionParams {\n reqdRank?: number;\n teamCount?: number;\n}\n\nexport class Operation extends Action {\n reqdRank = 100;\n teamCount = 0;\n\n constructor(params: IOperationParams | null = null) {\n super(params);\n if (params && params.reqdRank) this.reqdRank = params.reqdRank;\n if (params && params.teamCount) this.teamCount = params.teamCount;\n }\n\n // For actions that have teams. To be implemented by subtypes.\n getTeamSuccessBonus(inst: IBladeburner): number {\n if (this.teamCount && this.teamCount > 0) {\n this.teamCount = Math.min(this.teamCount, inst.teamSize);\n const teamMultiplier = Math.pow(this.teamCount, 0.05);\n return teamMultiplier;\n }\n\n return 1;\n }\n\n getActionTypeSkillSuccessBonus(inst: IBladeburner): number {\n return inst.skillMultipliers.successChanceOperation;\n }\n\n getChaosDifficultyBonus(inst: IBladeburner /*, params: ISuccessChanceParams*/): number {\n const city = inst.getCurrentCity();\n if (city.chaos > BladeburnerConstants.ChaosThreshold) {\n const diff = 1 + (city.chaos - BladeburnerConstants.ChaosThreshold);\n const mult = Math.pow(diff, 0.5);\n return mult;\n }\n\n return 1;\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Operation\", this);\n }\n\n static fromJSON(value: IReviverValue): Operation {\n return Generic_fromJSON(Operation, value.data);\n }\n}\n\nReviver.constructors.Operation = Operation;\n","import { Augmentation, IConstructorParams } from \"../Augmentation\";\nimport { AugmentationNames } from \"./AugmentationNames\";\nimport { Player } from \"../../Player\";\nimport { Programs } from \"../../Programs/Programs\";\nimport { WHRNG } from \"../../Casino/RNG\";\nimport React from \"react\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\nimport { CONSTANTS } from \"../../Constants\";\n\ninterface CircadianBonus {\n bonuses: {\n [key: string]: number | undefined;\n agility?: number;\n agility_exp?: number;\n charisma?: number;\n charisma_exp?: number;\n company_rep?: number;\n crime_money?: number;\n crime_success?: number;\n defense?: number;\n defense_exp?: number;\n dexterity?: number;\n dexterity_exp?: number;\n faction_rep?: number;\n hacking?: number;\n hacking_chance?: number;\n hacking_exp?: number;\n hacking_grow?: number;\n hacking_money?: number;\n hacking_speed?: number;\n hacknet_node_core_cost?: number;\n hacknet_node_level_cost?: number;\n hacknet_node_money?: number;\n hacknet_node_purchase_cost?: number;\n hacknet_node_ram_cost?: number;\n strength?: number;\n strength_exp?: number;\n work_money?: number;\n };\n description: string;\n}\n\nfunction getRandomBonus(): CircadianBonus {\n const bonuses = [\n {\n bonuses: {\n hacking_chance: 1.25,\n hacking_speed: 1.1,\n hacking_money: 1.25,\n hacking_grow: 1.1,\n },\n description:\n \"Increases the player's hacking chance by 25%. \" +\n \"Increases the player's hacking speed by 10%. \" +\n \"Increases the amount of money the player's gains from hacking by 25%. \" +\n \"Improves grow() by 10%.\",\n },\n {\n bonuses: {\n hacking: 1.15,\n hacking_exp: 2,\n },\n description:\n \"Increases the player's hacking skill by 15%. \" +\n \"Increases the player's hacking experience gain rate by 100%.\",\n },\n {\n bonuses: {\n strength: 1.25,\n strength_exp: 2,\n defense: 1.25,\n defense_exp: 2,\n dexterity: 1.25,\n dexterity_exp: 2,\n agility: 1.25,\n agility_exp: 2,\n },\n description:\n \"Increases all of the player's combat stats by 25%. \" +\n \"Increases all of the player's combat stat experience gain rate by 100%.\",\n },\n {\n bonuses: {\n charisma: 1.5,\n charisma_exp: 2,\n },\n description:\n \"This augmentation increases the player's charisma by 50%. \" +\n \"Increases the player's charisma experience gain rate by 100%.\",\n },\n {\n bonuses: {\n hacknet_node_money: 1.2,\n hacknet_node_purchase_cost: 0.85,\n hacknet_node_ram_cost: 0.85,\n hacknet_node_core_cost: 0.85,\n hacknet_node_level_cost: 0.85,\n },\n description:\n \"Increases the amount of money produced by Hacknet Nodes by 20%. \" +\n \"Decreases all costs related to Hacknet Node by 15%.\",\n },\n {\n bonuses: {\n company_rep: 1.25,\n faction_rep: 1.15,\n work_money: 1.7,\n },\n description:\n \"Increases the amount of money the player gains from working by 70%. \" +\n \"Increases the amount of reputation the player gains when working for a company by 25%. \" +\n \"Increases the amount of reputation the player gains for a faction by 15%.\",\n },\n {\n bonuses: {\n crime_success: 2,\n crime_money: 2,\n },\n description:\n \"Increases the player's crime success rate by 100%. \" +\n \"Increases the amount of money the player gains from crimes by 100%.\",\n },\n ];\n\n const randomNumber = new WHRNG(Math.floor(Player.lastUpdate / 3600000));\n for (let i = 0; i < 5; i++) randomNumber.step();\n\n return bonuses[Math.floor(bonuses.length * randomNumber.random())];\n}\n\nexport const initSoAAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.WKSharmonizer,\n repCost: 1e4,\n moneyCost: 1e6,\n info:\n `A copy of the WKS harmonizer from the MIA leader of the ${FactionNames.ShadowsOfAnarchy} ` +\n \"injects *Γ-based cells that provides general enhancement to the body.\",\n stats: (\n <>\n This augmentation makes many aspects of infiltration easier and more productive. Such as increased timer,\n rewards, reduced damage taken, etc.\n >\n ),\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.MightOfAres,\n repCost: 1e4,\n moneyCost: 1e6,\n info:\n \"Extra-occular neurons taken from old martial art master. Injecting them gives the user the ability to \" +\n \"predict the enemy's attack before they even know it themself.\",\n stats: (\n <>This augmentation makes the Slash minigame easier by showing you via an indicator when the slash in coming.>\n ),\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.WisdomOfAthena,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"A connective brain implant to SASHA that focuses on pattern recognition and predictive templating.\",\n stats: <>This augmentation makes the Bracket minigame easier by removing all '[' ']'.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.ChaosOfDionysus,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Opto-occipito implant to process visual signals before brain interpretation.\",\n stats: <>This augmentation makes the Backwards minigame easier by flipping the words.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.BeautyOfAphrodite,\n repCost: 1e4,\n moneyCost: 1e6,\n info:\n \"Pheromone extruder injected in the thoracodorsal nerve. Emits pleasing scent guaranteed to \" +\n \"make conversational partners more agreeable.\",\n stats: <>This augmentation makes the Bribe minigame easier by indicating the incorrect paths.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.TrickeryOfHermes,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Penta-dynamo-neurovascular-valve inserted in the carpal ligament, enhances dexterity.\",\n stats: <>This augmentation makes the Cheat Code minigame easier by allowing the opposite character.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.FloodOfPoseidon,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Transtinatium VVD reticulator used in optico-sterbing recognition.\",\n stats: <>This augmentation makes the Symbol matching minigame easier by indicating the correct choice.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.HuntOfArtemis,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"magneto-turboencabulator based on technology by Micha Eike Siemon, increases the user's electro-magnetic sensitivity.\",\n stats: (\n <>\n This augmentation makes the Minesweeper minigame easier by showing the location of all mines and keeping their\n position.\n >\n ),\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.KnowledgeOfApollo,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Neodynic retention fjengeln spoofer using -φ karmions, net positive effect on implantee's delta wave.\",\n stats: <>This augmentation makes the Wire Cutting minigame easier by indicating the incorrect wires.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n];\n\nexport const initGeneralAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.HemoRecirculator,\n moneyCost: 4.5e7,\n repCost: 1e4,\n info: \"A heart implant that greatly increases the body's ability to effectively use and pump blood.\",\n strength: 1.08,\n defense: 1.08,\n agility: 1.08,\n dexterity: 1.08,\n factions: [FactionNames.Tetrads, FactionNames.TheDarkArmy, FactionNames.TheSyndicate],\n }),\n new Augmentation({\n name: AugmentationNames.Targeting1,\n moneyCost: 1.5e7,\n repCost: 5e3,\n info:\n \"A cranial implant that is embedded within the inner ear structures and optic nerves. It regulates \" +\n \"and enhances balance and hand-eye coordination.\",\n dexterity: 1.1,\n factions: [\n FactionNames.SlumSnakes,\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Sector12,\n FactionNames.Ishima,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.Targeting2,\n moneyCost: 4.25e7,\n repCost: 8.75e3,\n info:\n \"This upgraded version of the 'Augmented Targeting' implant is capable of augmenting \" +\n \"reality by digitally displaying weaknesses and vital signs of threats.\",\n prereqs: [AugmentationNames.Targeting1],\n dexterity: 1.2,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Sector12,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.Targeting3,\n moneyCost: 1.15e8,\n repCost: 2.75e4,\n info: \"The latest version of the 'Augmented Targeting' implant adds the ability to lock-on and track threats.\",\n prereqs: [AugmentationNames.Targeting2, AugmentationNames.Targeting1],\n dexterity: 1.3,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n FactionNames.TheCovenant,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SyntheticHeart,\n moneyCost: 2.875e9,\n repCost: 7.5e5,\n info:\n \"This advanced artificial heart, created from plasteel and graphene, is capable of pumping blood \" +\n \"more efficiently than an organic heart.\",\n agility: 1.5,\n strength: 1.5,\n factions: [\n FactionNames.KuaiGongInternational,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.SpeakersForTheDead,\n FactionNames.NWO,\n FactionNames.TheCovenant,\n FactionNames.Daedalus,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SynfibrilMuscle,\n repCost: 4.375e5,\n moneyCost: 1.125e9,\n info:\n \"The myofibrils in human muscles are injected with special chemicals that react with the proteins inside \" +\n \"the myofibrils, altering their underlying structure. The end result is muscles that are stronger and more elastic. \" +\n \"Scientists have named these artificially enhanced units 'synfibrils'.\",\n strength: 1.3,\n defense: 1.3,\n factions: [\n FactionNames.KuaiGongInternational,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.SpeakersForTheDead,\n FactionNames.NWO,\n FactionNames.TheCovenant,\n FactionNames.Daedalus,\n FactionNames.Illuminati,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.CombatRib1,\n repCost: 7.5e3,\n moneyCost: 2.375e7,\n info:\n \"The rib cage is augmented to continuously release boosters into the bloodstream \" +\n \"which increase the oxygen-carrying capacity of blood.\",\n strength: 1.1,\n defense: 1.1,\n factions: [\n FactionNames.SlumSnakes,\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Volhaven,\n FactionNames.Ishima,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.CombatRib2,\n repCost: 1.875e4,\n moneyCost: 6.5e7,\n info:\n \"An upgraded version of the 'Combat Rib' augmentation that adds potent stimulants which \" +\n \"improve focus and endurance while decreasing reaction time and fatigue.\",\n prereqs: [AugmentationNames.CombatRib1],\n strength: 1.14,\n defense: 1.14,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Volhaven,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.CombatRib3,\n repCost: 3.5e4,\n moneyCost: 1.2e8,\n info:\n \"The latest version of the 'Combat Rib' augmentation releases advanced anabolic steroids that \" +\n \"improve muscle mass and physical performance while being safe and free of side effects.\",\n prereqs: [AugmentationNames.CombatRib2, AugmentationNames.CombatRib1],\n strength: 1.18,\n defense: 1.18,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n FactionNames.TheCovenant,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.NanofiberWeave,\n repCost: 3.75e4,\n moneyCost: 1.25e8,\n info:\n \"Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning, \" +\n \"which improves its regenerative and extracellular homeostasis abilities.\",\n strength: 1.2,\n defense: 1.2,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.OmniTekIncorporated,\n FactionNames.BladeIndustries,\n FactionNames.TianDiHui,\n FactionNames.SpeakersForTheDead,\n FactionNames.FulcrumSecretTechnologies,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SubdermalArmor,\n repCost: 8.75e5,\n moneyCost: 3.25e9,\n info:\n \"The NEMEAN Subdermal Weave is a thin, light-weight, graphene plating that houses a dilatant fluid. \" +\n \"The material is implanted underneath the skin, and is the most advanced form of defensive enhancement \" +\n \"that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective \" +\n \"at stopping piercing blows and reducing blunt trauma. The properties of graphene allow the plating to \" +\n \"mitigate damage from any fire or electrical traumas.\",\n defense: 2.2,\n factions: [\n FactionNames.TheSyndicate,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.Illuminati,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.WiredReflexes,\n repCost: 1.25e3,\n moneyCost: 2.5e6,\n info:\n \"Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, \" +\n \"supercharging the spread of neural signals and increasing reflex speed.\",\n agility: 1.05,\n dexterity: 1.05,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.SlumSnakes,\n FactionNames.Sector12,\n FactionNames.Volhaven,\n FactionNames.Aevum,\n FactionNames.Ishima,\n FactionNames.TheSyndicate,\n FactionNames.TheDarkArmy,\n FactionNames.SpeakersForTheDead,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBoneLacings,\n repCost: 1.125e6,\n moneyCost: 4.25e9,\n info: \"Graphene is grafted and fused into the skeletal structure, enhancing bone density and tensile strength.\",\n strength: 1.7,\n defense: 1.7,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.TheCovenant],\n }),\n new Augmentation({\n name: AugmentationNames.BionicSpine,\n repCost: 4.5e4,\n moneyCost: 1.25e8,\n info:\n \"The spine is reconstructed using plasteel and carbon fibers. \" +\n \"It is now capable of stimulating and regulating neural signals \" +\n \"passing through the spinal cord, improving senses and reaction speed. \" +\n \"The 'Bionic Spine' also interfaces with all other 'Bionic' implants.\",\n strength: 1.15,\n defense: 1.15,\n agility: 1.15,\n dexterity: 1.15,\n factions: [\n FactionNames.SpeakersForTheDead,\n FactionNames.TheSyndicate,\n FactionNames.KuaiGongInternational,\n FactionNames.OmniTekIncorporated,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBionicSpine,\n repCost: 1.625e6,\n moneyCost: 6e9,\n info:\n \"An upgrade to the 'Bionic Spine' augmentation. The spine is fused with graphene \" +\n \"which enhances durability and supercharges all body functions.\",\n prereqs: [AugmentationNames.BionicSpine],\n strength: 1.6,\n defense: 1.6,\n agility: 1.6,\n dexterity: 1.6,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.ECorp],\n }),\n new Augmentation({\n name: AugmentationNames.BionicLegs,\n repCost: 1.5e5,\n moneyCost: 3.75e8,\n info: \"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.\",\n agility: 1.6,\n factions: [\n FactionNames.SpeakersForTheDead,\n FactionNames.TheSyndicate,\n FactionNames.KuaiGongInternational,\n FactionNames.OmniTekIncorporated,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBionicLegs,\n repCost: 7.5e5,\n moneyCost: 4.5e9,\n info:\n \"An upgrade to the 'Bionic Legs' augmentation. The legs are fused \" +\n \"with graphene, greatly enhancing jumping ability.\",\n prereqs: [AugmentationNames.BionicLegs],\n agility: 2.5,\n factions: [FactionNames.MegaCorp, FactionNames.ECorp, FactionNames.FulcrumSecretTechnologies],\n }),\n new Augmentation({\n name: AugmentationNames.SpeechProcessor,\n repCost: 7.5e3,\n moneyCost: 5e7,\n info:\n \"A cochlear implant with an embedded computer that analyzes incoming speech. \" +\n \"The embedded computer processes characteristics of incoming speech, such as tone \" +\n \"and inflection, to pick up on subtle cues and aid in social interactions.\",\n charisma: 1.2,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n FactionNames.Volhaven,\n FactionNames.Silhouette,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.TITN41Injection,\n repCost: 2.5e4,\n moneyCost: 1.9e8,\n info:\n \"TITN is a series of viruses that targets and alters the sequences of human DNA in genes that \" +\n \"control personality. The TITN-41 strain alters these genes so that the subject becomes more \" +\n \"outgoing and sociable.\",\n charisma: 1.15,\n charisma_exp: 1.15,\n factions: [FactionNames.Silhouette],\n }),\n new Augmentation({\n name: AugmentationNames.EnhancedSocialInteractionImplant,\n repCost: 3.75e5,\n moneyCost: 1.375e9,\n info:\n \"A cranial implant that greatly assists in the user's ability to analyze social situations \" +\n \"and interactions. The system uses a wide variety of factors such as facial expression, body \" +\n \"language, voice tone, and inflection to determine the best course of action during social \" +\n \"situations. The implant also uses deep learning software to continuously learn new behavior \" +\n \"patterns and how to best respond.\",\n charisma: 1.6,\n charisma_exp: 1.6,\n factions: [\n FactionNames.BachmanAssociates,\n FactionNames.NWO,\n FactionNames.ClarkeIncorporated,\n FactionNames.OmniTekIncorporated,\n FactionNames.FourSigma,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.BitWire,\n repCost: 3.75e3,\n moneyCost: 1e7,\n info:\n \"A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing \" +\n \"capabilities.\",\n hacking: 1.05,\n factions: [FactionNames.CyberSec, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.ArtificialBioNeuralNetwork,\n repCost: 2.75e5,\n moneyCost: 3e9,\n info:\n \"A network consisting of millions of nanoprocessors is embedded into the brain. \" +\n \"The network is meant to mimic the way a biological brain solves a problem, with each \" +\n \"nanoprocessor acting similar to the way a neuron would in a neural network. However, these \" +\n \"nanoprocessors are programmed to perform computations much faster than organic neurons, \" +\n \"allowing the user to solve much more complex problems at a much faster rate.\",\n hacking_speed: 1.03,\n hacking_money: 1.15,\n hacking: 1.12,\n factions: [FactionNames.BitRunners, FactionNames.FulcrumSecretTechnologies],\n }),\n new Augmentation({\n name: AugmentationNames.ArtificialSynapticPotentiation,\n repCost: 6.25e3,\n moneyCost: 8e7,\n info:\n \"The body is injected with a chemical that artificially induces synaptic potentiation, \" +\n \"otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.\",\n hacking_speed: 1.02,\n hacking_chance: 1.05,\n hacking_exp: 1.05,\n factions: [FactionNames.TheBlackHand, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.EnhancedMyelinSheathing,\n repCost: 1e5,\n moneyCost: 1.375e9,\n info:\n \"Electrical signals are used to induce a new, artificial form of myelinogenesis in the human body. \" +\n \"This process results in the proliferation of new, synthetic myelin sheaths in the nervous \" +\n \"system. These myelin sheaths can propogate neuro-signals much faster than their organic \" +\n \"counterparts, leading to greater processing speeds and better brain function.\",\n hacking_speed: 1.03,\n hacking_exp: 1.1,\n hacking: 1.08,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.BitRunners, FactionNames.TheBlackHand],\n }),\n new Augmentation({\n name: AugmentationNames.SynapticEnhancement,\n repCost: 2e3,\n moneyCost: 7.5e6,\n info:\n \"A small cranial implant that continuously uses weak electrical signals to stimulate the brain and \" +\n \"induce stronger synaptic activity. This improves the user's cognitive abilities.\",\n hacking_speed: 1.03,\n factions: [FactionNames.CyberSec, FactionNames.Aevum],\n }),\n new Augmentation({\n name: AugmentationNames.NeuralRetentionEnhancement,\n repCost: 2e4,\n moneyCost: 2.5e8,\n info:\n \"Chemical injections are used to permanently alter and strengthen the brain's neuronal \" +\n \"circuits, strengthening the ability to retain information.\",\n hacking_exp: 1.25,\n factions: [FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.DataJack,\n repCost: 1.125e5,\n moneyCost: 4.5e8,\n info:\n \"A brain implant that provides an interface for direct, wireless communication between a computer's main \" +\n \"memory and the mind. This implant allows the user to not only access a computer's memory, but also alter \" +\n \"and delete it.\",\n hacking_money: 1.25,\n factions: [\n FactionNames.BitRunners,\n FactionNames.TheBlackHand,\n FactionNames.NiteSec,\n FactionNames.Chongqing,\n FactionNames.NewTokyo,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENM,\n repCost: 1.5e4,\n moneyCost: 2.5e8,\n info:\n \"A thin device embedded inside the arm containing a wireless module capable of connecting \" +\n \"to nearby networks. Once connected, the Netburner Module is capable of capturing and \" +\n \"processing all of the traffic on that network. By itself, the Embedded Netburner Module does \" +\n \"not do much, but a variety of very powerful upgrades can be installed that allow you to fully \" +\n \"control the traffic on a network.\",\n hacking: 1.08,\n factions: [\n FactionNames.BitRunners,\n FactionNames.TheBlackHand,\n FactionNames.NiteSec,\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMCore,\n repCost: 175e3,\n moneyCost: 2.5e9,\n info:\n \"The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. \" +\n \"This upgrade allows the Embedded Netburner Module to generate its own data on a network.\",\n prereqs: [AugmentationNames.ENM],\n hacking_speed: 1.03,\n hacking_money: 1.1,\n hacking_chance: 1.03,\n hacking_exp: 1.07,\n hacking: 1.07,\n factions: [\n FactionNames.BitRunners,\n FactionNames.TheBlackHand,\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMCoreV2,\n repCost: 1e6,\n moneyCost: 4.5e9,\n info:\n \"The Core V2 library is an implant that upgrades the firmware of the Embedded Netburner Module. \" +\n \"This upgraded firmware allows the Embedded Netburner Module to control information on \" +\n \"a network by re-routing traffic, spoofing IP addresses, and altering the data inside network \" +\n \"packets.\",\n prereqs: [AugmentationNames.ENMCore, AugmentationNames.ENM],\n hacking_speed: 1.05,\n hacking_money: 1.3,\n hacking_chance: 1.05,\n hacking_exp: 1.15,\n hacking: 1.08,\n factions: [\n FactionNames.BitRunners,\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.BladeIndustries,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMCoreV3,\n repCost: 1.75e6,\n moneyCost: 7.5e9,\n info:\n \"The Core V3 library is an implant that upgrades the firmware of the Embedded Netburner Module. \" +\n \"This upgraded firmware allows the Embedded Netburner Module to seamlessly inject code into \" +\n \"any device on a network.\",\n prereqs: [AugmentationNames.ENMCoreV2, AugmentationNames.ENMCore, AugmentationNames.ENM],\n hacking_speed: 1.05,\n hacking_money: 1.4,\n hacking_chance: 1.1,\n hacking_exp: 1.25,\n hacking: 1.1,\n factions: [\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMAnalyzeEngine,\n repCost: 6.25e5,\n moneyCost: 6e9,\n info:\n \"Installs the Analyze Engine for the Embedded Netburner Module, which is a CPU cluster \" +\n \"that vastly outperforms the Netburner Module's native single-core processor.\",\n prereqs: [AugmentationNames.ENM],\n hacking_speed: 1.1,\n factions: [\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMDMA,\n repCost: 1e6,\n moneyCost: 7e9,\n info:\n \"This implant installs a Direct Memory Access (DMA) controller into the \" +\n \"Embedded Netburner Module. This allows the Module to send and receive data \" +\n \"directly to and from the main memory of devices on a network.\",\n prereqs: [AugmentationNames.ENM],\n hacking_money: 1.4,\n hacking_chance: 1.2,\n factions: [\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.Neuralstimulator,\n repCost: 5e4,\n moneyCost: 3e9,\n info:\n \"A cranial implant that intelligently stimulates certain areas of the brain \" +\n \"in order to improve cognitive functions.\",\n hacking_speed: 1.02,\n hacking_chance: 1.1,\n hacking_exp: 1.12,\n factions: [\n FactionNames.TheBlackHand,\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n FactionNames.Volhaven,\n FactionNames.BachmanAssociates,\n FactionNames.ClarkeIncorporated,\n FactionNames.FourSigma,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.NeuralAccelerator,\n repCost: 2e5,\n moneyCost: 1.75e9,\n info:\n \"A microprocessor that accelerates the processing \" +\n \"speed of biological neural networks. This is a cranial implant that is embedded inside the brain.\",\n hacking: 1.1,\n hacking_exp: 1.15,\n hacking_money: 1.2,\n factions: [FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG1,\n repCost: 1e4,\n moneyCost: 7e7,\n info:\n \"The first generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n hacking_speed: 1.01,\n hacking: 1.05,\n factions: [FactionNames.CyberSec, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG2,\n repCost: 1.875e4,\n moneyCost: 1.25e8,\n info:\n \"The second generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [AugmentationNames.CranialSignalProcessorsG1],\n hacking_speed: 1.02,\n hacking_chance: 1.05,\n hacking: 1.07,\n factions: [FactionNames.CyberSec, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG3,\n repCost: 5e4,\n moneyCost: 5.5e8,\n info:\n \"The third generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [AugmentationNames.CranialSignalProcessorsG2, AugmentationNames.CranialSignalProcessorsG1],\n hacking_speed: 1.02,\n hacking_money: 1.15,\n hacking: 1.09,\n factions: [FactionNames.NiteSec, FactionNames.TheBlackHand, FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG4,\n repCost: 1.25e5,\n moneyCost: 1.1e9,\n info:\n \"The fourth generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [\n AugmentationNames.CranialSignalProcessorsG3,\n AugmentationNames.CranialSignalProcessorsG2,\n AugmentationNames.CranialSignalProcessorsG1,\n ],\n hacking_speed: 1.02,\n hacking_money: 1.2,\n hacking_grow: 1.25,\n factions: [FactionNames.TheBlackHand, FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG5,\n repCost: 2.5e5,\n moneyCost: 2.25e9,\n info:\n \"The fifth generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [\n AugmentationNames.CranialSignalProcessorsG4,\n AugmentationNames.CranialSignalProcessorsG3,\n AugmentationNames.CranialSignalProcessorsG2,\n AugmentationNames.CranialSignalProcessorsG1,\n ],\n hacking: 1.3,\n hacking_money: 1.25,\n hacking_grow: 1.75,\n factions: [FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.NeuronalDensification,\n repCost: 1.875e5,\n moneyCost: 1.375e9,\n info:\n \"The brain is surgically re-engineered to have increased neuronal density \" +\n \"by decreasing the neuron gap junction. Then, the body is genetically modified \" +\n \"to enhance the production and capabilities of its neural stem cells.\",\n hacking: 1.15,\n hacking_exp: 1.1,\n hacking_speed: 1.03,\n factions: [FactionNames.ClarkeIncorporated],\n }),\n new Augmentation({\n name: AugmentationNames.NuoptimalInjectorImplant,\n repCost: 5e3,\n moneyCost: 2e7,\n info:\n \"This torso implant automatically injects nootropic supplements into \" +\n \"the bloodstream to improve memory, increase focus, and provide other \" +\n \"cognitive enhancements.\",\n company_rep: 1.2,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.Volhaven,\n FactionNames.NewTokyo,\n FactionNames.Chongqing,\n FactionNames.ClarkeIncorporated,\n FactionNames.FourSigma,\n FactionNames.BachmanAssociates,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SpeechEnhancement,\n repCost: 2.5e3,\n moneyCost: 1.25e7,\n info:\n \"An advanced neural implant that improves your speaking abilities, making \" +\n \"you more convincing and likable in conversations and overall improving your \" +\n \"social interactions.\",\n company_rep: 1.1,\n charisma: 1.1,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.SpeakersForTheDead,\n FactionNames.FourSigma,\n FactionNames.KuaiGongInternational,\n FactionNames.ClarkeIncorporated,\n FactionNames.BachmanAssociates,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.FocusWire,\n repCost: 7.5e4,\n moneyCost: 9e8,\n info: \"A cranial implant that stops procrastination by blocking specific neural pathways in the brain.\",\n hacking_exp: 1.05,\n strength_exp: 1.05,\n defense_exp: 1.05,\n dexterity_exp: 1.05,\n agility_exp: 1.05,\n charisma_exp: 1.05,\n company_rep: 1.1,\n work_money: 1.2,\n factions: [\n FactionNames.BachmanAssociates,\n FactionNames.ClarkeIncorporated,\n FactionNames.FourSigma,\n FactionNames.KuaiGongInternational,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.PCDNI,\n repCost: 3.75e5,\n moneyCost: 3.75e9,\n info:\n \"Installs a Direct-Neural Interface jack into your arm that is compatible with most \" +\n \"computers. Connecting to a computer through this jack allows you to interface with \" +\n \"it using the brain's electrochemical signals.\",\n company_rep: 1.3,\n hacking: 1.08,\n factions: [\n FactionNames.FourSigma,\n FactionNames.OmniTekIncorporated,\n FactionNames.ECorp,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.PCDNIOptimizer,\n repCost: 5e5,\n moneyCost: 4.5e9,\n info:\n \"This is a submodule upgrade to the PC Direct-Neural Interface augmentation. It \" +\n \"improves the performance of the interface and gives the user more control options \" +\n \"to a connected computer.\",\n prereqs: [AugmentationNames.PCDNI],\n company_rep: 1.75,\n hacking: 1.1,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.ECorp, FactionNames.BladeIndustries],\n }),\n new Augmentation({\n name: AugmentationNames.PCDNINeuralNetwork,\n repCost: 1.5e6,\n moneyCost: 7.5e9,\n info:\n \"This is an additional installation that upgrades the functionality of the \" +\n \"PC Direct-Neural Interface augmentation. When connected to a computer, \" +\n \"the Neural Network upgrade allows the user to use their own brain's \" +\n \"processing power to aid the computer in computational tasks.\",\n prereqs: [AugmentationNames.PCDNI],\n company_rep: 2,\n hacking: 1.1,\n hacking_speed: 1.05,\n factions: [FactionNames.FulcrumSecretTechnologies],\n }),\n new Augmentation({\n name: AugmentationNames.ADRPheromone1,\n repCost: 3.75e3,\n moneyCost: 1.75e7,\n info:\n \"The body is genetically re-engineered so that it produces the ADR-V1 pheromone, \" +\n \"an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, \" +\n \"triggers feelings of admiration and approval in other people.\",\n company_rep: 1.1,\n faction_rep: 1.1,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.TheSyndicate,\n FactionNames.NWO,\n FactionNames.MegaCorp,\n FactionNames.FourSigma,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ADRPheromone2,\n repCost: 6.25e4,\n moneyCost: 5.5e8,\n info:\n \"The body is genetically re-engineered so that it produces the ADR-V2 pheromone, \" +\n \"which is similar to but more potent than ADR-V1. This pheromone, when excreted, \" +\n \"triggers feelings of admiration, approval, and respect in others.\",\n company_rep: 1.2,\n faction_rep: 1.2,\n factions: [\n FactionNames.Silhouette,\n FactionNames.FourSigma,\n FactionNames.BachmanAssociates,\n FactionNames.ClarkeIncorporated,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ShadowsSimulacrum,\n repCost: 3.75e4,\n moneyCost: 4e8,\n info:\n \"A crude but functional matter phase-shifter module that is embedded \" +\n \"in the brainstem and cerebellum. This augmentation was developed by \" +\n \"criminal organizations and allows the user to project and control holographic \" +\n \"simulacrums within a large radius. These simulacrums are commonly used for \" +\n \"espionage and surveillance work.\",\n company_rep: 1.15,\n faction_rep: 1.15,\n factions: [FactionNames.TheSyndicate, FactionNames.TheDarkArmy, FactionNames.SpeakersForTheDead],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeCPUUpload,\n repCost: 3.75e3,\n moneyCost: 1.1e7,\n info:\n \"Uploads the architecture and design details of a Hacknet Node's CPU into \" +\n \"the brain. This allows the user to engineer custom hardware and software \" +\n \"for the Hacknet Node that provides better performance.\",\n hacknet_node_money: 1.15,\n hacknet_node_purchase_cost: 0.85,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeCacheUpload,\n repCost: 2.5e3,\n moneyCost: 5.5e6,\n info:\n \"Uploads the architecture and design details of a Hacknet Node's main-memory cache \" +\n \"into the brain. This allows the user to engineer custom cache hardware for the \" +\n \"Hacknet Node that offers better performance.\",\n hacknet_node_money: 1.1,\n hacknet_node_level_cost: 0.85,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeNICUpload,\n repCost: 1.875e3,\n moneyCost: 4.5e6,\n info:\n \"Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) \" +\n \"into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that \" +\n \"offers better performance.\",\n hacknet_node_money: 1.1,\n hacknet_node_purchase_cost: 0.9,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeKernelDNI,\n repCost: 7.5e3,\n moneyCost: 4e7,\n info:\n \"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a \" +\n \"Hacknet Node. This lets the user access and manipulate the Node's kernel using \" +\n \"electrochemical signals.\",\n hacknet_node_money: 1.25,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeCoreDNI,\n repCost: 1.25e4,\n moneyCost: 6e7,\n info:\n \"Installs a Direct-Neural Interface jack into the arm that is capable of connecting \" +\n \"to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using \" +\n \"electrochemical signals.\",\n hacknet_node_money: 1.45,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.Neurotrainer1,\n repCost: 1e3,\n moneyCost: 4e6,\n info:\n \"A decentralized cranial implant that improves the brain's ability to learn. It is \" +\n \"installed by releasing millions of nanobots into the human brain, each of which \" +\n \"attaches to a different neural pathway to enhance the brain's ability to retain \" +\n \"and retrieve information.\",\n hacking_exp: 1.1,\n strength_exp: 1.1,\n defense_exp: 1.1,\n dexterity_exp: 1.1,\n agility_exp: 1.1,\n charisma_exp: 1.1,\n factions: [FactionNames.CyberSec, FactionNames.Aevum],\n }),\n new Augmentation({\n name: AugmentationNames.Neurotrainer2,\n repCost: 1e4,\n moneyCost: 4.5e7,\n info:\n \"A decentralized cranial implant that improves the brain's ability to learn. This \" +\n \"is a more powerful version of the Neurotrainer I augmentation, but it does not \" +\n \"require Neurotrainer I to be installed as a prerequisite.\",\n hacking_exp: 1.15,\n strength_exp: 1.15,\n defense_exp: 1.15,\n dexterity_exp: 1.15,\n agility_exp: 1.15,\n charisma_exp: 1.15,\n factions: [FactionNames.BitRunners, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.Neurotrainer3,\n repCost: 2.5e4,\n moneyCost: 1.3e8,\n info:\n \"A decentralized cranial implant that improves the brain's ability to learn. This \" +\n \"is a more powerful version of the Neurotrainer I and Neurotrainer II augmentation, \" +\n \"but it does not require either of them to be installed as a prerequisite.\",\n hacking_exp: 1.2,\n strength_exp: 1.2,\n defense_exp: 1.2,\n dexterity_exp: 1.2,\n agility_exp: 1.2,\n charisma_exp: 1.2,\n factions: [FactionNames.NWO, FactionNames.FourSigma],\n }),\n new Augmentation({\n name: AugmentationNames.Hypersight,\n repCost: 1.5e5,\n moneyCost: 2.75e9,\n info:\n \"A bionic eye implant that grants sight capabilities far beyond those of a natural human. \" +\n \"Embedded circuitry within the implant provides the ability to detect heat and movement \" +\n \"through solid objects such as walls, thus providing 'x-ray vision'-like capabilities.\",\n dexterity: 1.4,\n hacking_speed: 1.03,\n hacking_money: 1.1,\n factions: [FactionNames.BladeIndustries, FactionNames.KuaiGongInternational],\n }),\n new Augmentation({\n name: AugmentationNames.LuminCloaking1,\n repCost: 1.5e3,\n moneyCost: 5e6,\n info:\n \"A skin implant that reinforces the skin with highly-advanced synthetic cells. These \" +\n \"cells, when powered, have a negative refractive index. As a result, they bend light \" +\n \"around the skin, making the user much harder to see with the naked eye.\",\n agility: 1.05,\n crime_money: 1.1,\n factions: [FactionNames.SlumSnakes, FactionNames.Tetrads],\n }),\n new Augmentation({\n name: AugmentationNames.LuminCloaking2,\n repCost: 5e3,\n moneyCost: 3e7,\n info:\n \"This is a more advanced version of the LuminCloaking-V1 augmentation. This skin implant \" +\n \"reinforces the skin with highly-advanced synthetic cells. These \" +\n \"cells, when powered, are capable of not only bending light but also of bending heat, \" +\n \"making the user more resilient as well as stealthy.\",\n prereqs: [AugmentationNames.LuminCloaking1],\n agility: 1.1,\n defense: 1.1,\n crime_money: 1.25,\n factions: [FactionNames.SlumSnakes, FactionNames.Tetrads],\n }),\n new Augmentation({\n name: AugmentationNames.SmartSonar,\n repCost: 2.25e4,\n moneyCost: 7.5e7,\n info: \"A cochlear implant that helps the player detect and locate enemies using sound propagation.\",\n dexterity: 1.1,\n dexterity_exp: 1.15,\n crime_money: 1.25,\n factions: [FactionNames.SlumSnakes],\n }),\n new Augmentation({\n name: AugmentationNames.PowerRecirculator,\n repCost: 2.5e4,\n moneyCost: 1.8e8,\n info:\n \"The body's nerves are attached with polypyrrole nanocircuits that \" +\n \"are capable of capturing wasted energy, in the form of heat, \" +\n \"and converting it back into usable power.\",\n hacking: 1.05,\n strength: 1.05,\n defense: 1.05,\n dexterity: 1.05,\n agility: 1.05,\n charisma: 1.05,\n hacking_exp: 1.1,\n strength_exp: 1.1,\n defense_exp: 1.1,\n dexterity_exp: 1.1,\n agility_exp: 1.1,\n charisma_exp: 1.1,\n factions: [FactionNames.Tetrads, FactionNames.TheDarkArmy, FactionNames.TheSyndicate, FactionNames.NWO],\n }),\n new Augmentation({\n name: AugmentationNames.QLink,\n repCost: 1.875e6,\n moneyCost: 2.5e13,\n info:\n `A brain implant that wirelessly connects you to the ${FactionNames.Illuminati}'s ` +\n \"quantum supercomputer, allowing you to access and use its incredible \" +\n \"computing power.\",\n hacking: 1.75,\n hacking_speed: 2,\n hacking_chance: 2.5,\n hacking_money: 4,\n factions: [FactionNames.Illuminati],\n }),\n new Augmentation({\n name: AugmentationNames.SPTN97,\n repCost: 1.25e6,\n moneyCost: 4.875e9,\n info:\n \"The SPTN-97 gene is injected into the genome. The SPTN-97 gene is an \" +\n \"artificially-synthesized gene that was developed by DARPA to create \" +\n \"super-soldiers through genetic modification. The gene was outlawed in \" +\n \"2056.\",\n strength: 1.75,\n defense: 1.75,\n dexterity: 1.75,\n agility: 1.75,\n hacking: 1.15,\n factions: [FactionNames.TheCovenant],\n }),\n new Augmentation({\n name: AugmentationNames.HiveMind,\n repCost: 1.5e6,\n moneyCost: 5.5e9,\n info:\n `A brain implant developed by ${FactionNames.ECorp}. They do not reveal what ` +\n \"exactly the implant does, but they promise that it will greatly \" +\n \"enhance your abilities.\",\n hacking_grow: 3,\n stats: null,\n factions: [FactionNames.ECorp],\n }),\n new Augmentation({\n name: AugmentationNames.TheRedPill,\n repCost: 2.5e6,\n moneyCost: 0,\n info: \"It's time to leave the cave.\",\n stats: null,\n isSpecial: true,\n factions: [FactionNames.Daedalus],\n }),\n new Augmentation({\n name: AugmentationNames.CordiARCReactor,\n repCost: 1.125e6,\n moneyCost: 5e9,\n info:\n \"The thoracic cavity is equipped with a small chamber designed \" +\n \"to hold and sustain hydrogen plasma. The plasma is used to generate \" +\n \"fusion power through nuclear fusion, providing limitless amounts of clean \" +\n \"energy for the body.\",\n strength: 1.35,\n defense: 1.35,\n dexterity: 1.35,\n agility: 1.35,\n strength_exp: 1.35,\n defense_exp: 1.35,\n dexterity_exp: 1.35,\n agility_exp: 1.35,\n factions: [FactionNames.MegaCorp],\n }),\n new Augmentation({\n name: AugmentationNames.SmartJaw,\n repCost: 3.75e5,\n moneyCost: 2.75e9,\n info:\n \"A bionic jaw that contains advanced hardware and software \" +\n \"capable of psychoanalyzing and profiling the personality of \" +\n \"others using optical imaging software.\",\n charisma: 1.5,\n charisma_exp: 1.5,\n company_rep: 1.25,\n faction_rep: 1.25,\n factions: [FactionNames.BachmanAssociates],\n }),\n new Augmentation({\n name: AugmentationNames.Neotra,\n repCost: 5.625e5,\n moneyCost: 2.875e9,\n info:\n \"A highly-advanced techno-organic drug that is injected into the skeletal \" +\n \"and integumentary system. The drug permanently modifies the DNA of the \" +\n \"body's skin and bone cells, granting them the ability to repair \" +\n \"and restructure themselves.\",\n strength: 1.55,\n defense: 1.55,\n factions: [FactionNames.BladeIndustries],\n }),\n new Augmentation({\n name: AugmentationNames.Xanipher,\n repCost: 8.75e5,\n moneyCost: 4.25e9,\n info:\n \"A concoction of advanced nanobots that is orally ingested into the \" +\n \"body. These nanobots induce physiological changes and significantly \" +\n \"improve the body's functioning in all aspects.\",\n hacking: 1.2,\n strength: 1.2,\n defense: 1.2,\n dexterity: 1.2,\n agility: 1.2,\n charisma: 1.2,\n hacking_exp: 1.15,\n strength_exp: 1.15,\n defense_exp: 1.15,\n dexterity_exp: 1.15,\n agility_exp: 1.15,\n charisma_exp: 1.15,\n factions: [FactionNames.NWO],\n }),\n new Augmentation({\n name: AugmentationNames.HydroflameLeftArm,\n repCost: 1.25e6,\n moneyCost: 2.5e12,\n info:\n \"The left arm of a legendary BitRunner who ascended beyond this world. \" +\n \"It projects a light blue energy shield that protects the exposed inner parts. \" +\n \"Even though it contains no weapons, the advanced tungsten titanium \" +\n \"alloy increases the user's strength to unbelievable levels. The augmentation \" +\n \"gets more powerful over time for seemingly no reason.\",\n strength: 2.7,\n factions: [FactionNames.NWO],\n }),\n new Augmentation({\n name: AugmentationNames.nextSENS,\n repCost: 4.375e5,\n moneyCost: 1.925e9,\n info:\n \"The body is genetically re-engineered to maintain a state \" +\n \"of negligible senescence, preventing the body from \" +\n \"deteriorating with age.\",\n hacking: 1.2,\n strength: 1.2,\n defense: 1.2,\n dexterity: 1.2,\n agility: 1.2,\n charisma: 1.2,\n factions: [FactionNames.ClarkeIncorporated],\n }),\n new Augmentation({\n name: AugmentationNames.OmniTekInfoLoad,\n repCost: 6.25e5,\n moneyCost: 2.875e9,\n info:\n \"OmniTek's data and information repository is uploaded \" +\n \"into your brain, enhancing your programming and \" +\n \"hacking abilities.\",\n hacking: 1.2,\n hacking_exp: 1.25,\n factions: [FactionNames.OmniTekIncorporated],\n }),\n new Augmentation({\n name: AugmentationNames.PhotosyntheticCells,\n repCost: 5.625e5,\n moneyCost: 2.75e9,\n info:\n \"Chloroplasts are added to epidermal stem cells and are applied \" +\n \"to the body using a skin graft. The result is photosynthetic \" +\n \"skin cells, allowing users to generate their own energy \" +\n \"and nutrition using solar power.\",\n strength: 1.4,\n defense: 1.4,\n agility: 1.4,\n factions: [FactionNames.KuaiGongInternational],\n }),\n new Augmentation({\n name: AugmentationNames.Neurolink,\n repCost: 8.75e5,\n moneyCost: 4.375e9,\n info:\n \"A brain implant that provides a high-bandwidth, direct neural link between your \" +\n `mind and the ${FactionNames.BitRunners}' data servers, which reportedly contain ` +\n \"the largest database of hacking tools and information in the world.\",\n hacking: 1.15,\n hacking_exp: 1.2,\n hacking_chance: 1.1,\n hacking_speed: 1.05,\n programs: [Programs.FTPCrackProgram.name, Programs.RelaySMTPProgram.name],\n factions: [FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.TheBlackHand,\n repCost: 1e5,\n moneyCost: 5.5e8,\n info:\n \"A highly advanced bionic hand. This prosthetic not only \" +\n \"enhances strength and dexterity but it is also embedded \" +\n \"with hardware and firmware that lets the user connect to, access, and hack \" +\n \"devices and machines by just touching them.\",\n strength: 1.15,\n dexterity: 1.15,\n hacking: 1.1,\n hacking_speed: 1.02,\n hacking_money: 1.1,\n factions: [FactionNames.TheBlackHand],\n }),\n new Augmentation({\n name: AugmentationNames.CRTX42AA,\n repCost: 4.5e4,\n moneyCost: 2.25e8,\n info:\n \"The CRTX42-AA gene is injected into the genome. \" +\n \"The CRTX42-AA is an artificially-synthesized gene that targets the visual and prefrontal \" +\n \"cortex and improves cognitive abilities.\",\n hacking: 1.08,\n hacking_exp: 1.15,\n factions: [FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.Neuregen,\n repCost: 3.75e4,\n moneyCost: 3.75e8,\n info:\n \"A drug that genetically modifies the neurons in the brain \" +\n \"resulting in neurons that never die, continuously \" +\n \"regenerate, and strengthen themselves.\",\n hacking_exp: 1.4,\n factions: [FactionNames.Chongqing],\n }),\n new Augmentation({\n name: AugmentationNames.CashRoot,\n repCost: 1.25e4,\n moneyCost: 1.25e8,\n info: (\n <>\n A collection of digital assets saved on a small chip. The chip is implanted into your wrist. A small jack in the\n chip allows you to connect it to a computer and upload the assets.\n >\n ),\n startingMoney: 1e6,\n programs: [Programs.BruteSSHProgram.name],\n factions: [FactionNames.Sector12],\n }),\n new Augmentation({\n name: AugmentationNames.NutriGen,\n repCost: 6.25e3,\n moneyCost: 2.5e6,\n info:\n \"A thermo-powered artificial nutrition generator. Endogenously \" +\n \"synthesizes glucose, amino acids, and vitamins and redistributes them \" +\n \"across the body. The device is powered by the body's naturally wasted \" +\n \"energy in the form of heat.\",\n strength_exp: 1.2,\n defense_exp: 1.2,\n dexterity_exp: 1.2,\n agility_exp: 1.2,\n factions: [FactionNames.NewTokyo],\n }),\n new Augmentation({\n name: AugmentationNames.PCMatrix,\n repCost: 100e3,\n moneyCost: 2e9,\n info:\n \"A 'Probability Computation Matrix' is installed in the frontal cortex. This implant \" +\n \"uses advanced mathematical algorithims to rapidly identify and compute statistical \" +\n \"outcomes of nearly every situation.\",\n charisma: 1.0777,\n charisma_exp: 1.0777,\n work_money: 1.777,\n faction_rep: 1.0777,\n company_rep: 1.0777,\n crime_success: 1.0777,\n crime_money: 1.0777,\n programs: [Programs.DeepscanV1.name, Programs.AutoLink.name],\n factions: [FactionNames.Aevum],\n }),\n new Augmentation({\n name: AugmentationNames.INFRARet,\n repCost: 7.5e3,\n moneyCost: 3e7,\n info: \"A tiny chip that sits behind the retinae. This implant lets the user visually detect infrared radiation.\",\n crime_success: 1.25,\n crime_money: 1.1,\n dexterity: 1.1,\n factions: [FactionNames.Ishima],\n }),\n new Augmentation({\n name: AugmentationNames.DermaForce,\n repCost: 1.5e4,\n moneyCost: 5e7,\n info:\n \"Synthetic skin that is grafted onto the body. This skin consists of \" +\n \"millions of nanobots capable of projecting high-density muon beams, \" +\n \"creating an energy barrier around the user.\",\n defense: 1.4,\n factions: [FactionNames.Volhaven],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBrachiBlades,\n repCost: 2.25e5,\n moneyCost: 2.5e9,\n info:\n \"An upgrade to the BrachiBlades augmentation. It infuses \" +\n \"the retractable blades with an advanced graphene material \" +\n \"making them stronger and lighter.\",\n prereqs: [AugmentationNames.BrachiBlades],\n strength: 1.4,\n defense: 1.4,\n crime_success: 1.1,\n crime_money: 1.3,\n factions: [FactionNames.SpeakersForTheDead],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBionicArms,\n repCost: 5e5,\n moneyCost: 3.75e9,\n info:\n \"An upgrade to the Bionic Arms augmentation. It infuses the \" +\n \"prosthetic arms with an advanced graphene material \" +\n \"to make them stronger and lighter.\",\n prereqs: [AugmentationNames.BionicArms],\n strength: 1.85,\n dexterity: 1.85,\n factions: [FactionNames.TheDarkArmy],\n }),\n new Augmentation({\n name: AugmentationNames.BrachiBlades,\n repCost: 1.25e4,\n moneyCost: 9e7,\n info: \"A set of retractable plasteel blades that are implanted in the arm, underneath the skin.\",\n strength: 1.15,\n defense: 1.15,\n crime_success: 1.1,\n crime_money: 1.15,\n factions: [FactionNames.TheSyndicate],\n }),\n new Augmentation({\n name: AugmentationNames.BionicArms,\n repCost: 6.25e4,\n moneyCost: 2.75e8,\n info: \"Cybernetic arms created from plasteel and carbon fibers that completely replace the user's organic arms.\",\n strength: 1.3,\n dexterity: 1.3,\n factions: [FactionNames.Tetrads],\n }),\n new Augmentation({\n name: AugmentationNames.SNA,\n repCost: 6.25e3,\n moneyCost: 3e7,\n info:\n \"A cranial implant that affects the user's personality, making them better \" +\n \"at negotiation in social situations.\",\n work_money: 1.1,\n company_rep: 1.15,\n faction_rep: 1.15,\n factions: [FactionNames.TianDiHui],\n }),\n new Augmentation({\n name: AugmentationNames.NeuroreceptorManager,\n repCost: 0.75e5,\n moneyCost: 5.5e8,\n info:\n \"A brain implant carefully assembled around the synapses, which \" +\n \"micromanages the activity and levels of various neuroreceptor \" +\n \"chemicals and modulates electrical activity to optimize concentration, \" +\n \"allowing the user to multitask much more effectively.\",\n stats: (\n <>\n This augmentation removes the penalty for not focusing on actions such as working in a job or working for a\n faction.\n >\n ),\n factions: [FactionNames.TianDiHui],\n }),\n\n // Grafting-exclusive Augmentation\n new Augmentation({\n name: AugmentationNames.CongruityImplant,\n repCost: Infinity,\n moneyCost: 50e12,\n info: (\n <>\n Developed by a pioneer in Grafting research, this implant generates pulses of stability which seem to have a\n nullifying effect versus the Entropy virus.\n \n \n Note: For unknown reasons, the lowercase n appears to be an integral component to its\n functionality.\n >\n ),\n stats: <>This Augmentation removes the Entropy virus, and prevents it from affecting you again.>,\n factions: [],\n }),\n];\n\nexport const initBladeburnerAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.EsperEyewear,\n repCost: 1.25e3,\n moneyCost: 1.65e8,\n info:\n \"Ballistic-grade protective and retractable eyewear that was designed specifically \" +\n \"for Bladeburner units. This \" +\n \"is implanted by installing a mechanical frame in the skull's orbit. \" +\n \"This frame interfaces with the brain and allows the user to \" +\n \"automatically extrude and extract the eyewear. The eyewear protects \" +\n \"against debris, shrapnel, lasers, blinding flashes, and gas. It is also \" +\n \"embedded with a data processing chip that can be programmed to display an \" +\n \"AR HUD to assist the user in field missions.\",\n bladeburner_success_chance: 1.03,\n dexterity: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.EMS4Recombination,\n repCost: 2.5e3,\n moneyCost: 2.75e8,\n info:\n \"A DNA recombination of the EMS-4 Gene. This genetic engineering \" +\n \"technique was originally used on Bladeburners during the Synthoid uprising \" +\n \"to induce wakefulness and concentration, suppress fear, reduce empathy, \" +\n \"improve reflexes, and improve memory among other things.\",\n bladeburner_success_chance: 1.03,\n bladeburner_analysis: 1.05,\n bladeburner_stamina_gain: 1.02,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.OrionShoulder,\n repCost: 6.25e3,\n moneyCost: 5.5e8,\n info:\n \"A bionic shoulder augmentation for the right shoulder. Using cybernetics, \" +\n \"the ORION-MKIV shoulder enhances the strength and dexterity \" +\n \"of the user's right arm. It also provides protection due to its \" +\n \"crystallized graphene plating.\",\n defense: 1.05,\n strength: 1.05,\n dexterity: 1.05,\n bladeburner_success_chance: 1.04,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.HyperionV1,\n repCost: 1.25e4,\n moneyCost: 2.75e9,\n info:\n \"A pair of mini plasma cannons embedded into the hands. The Hyperion is capable \" +\n \"of rapidly firing bolts of high-density plasma. The weapon is meant to \" +\n \"be used against augmented enemies as the ionized \" +\n \"nature of the plasma disrupts the electrical systems of Augmentations. However, \" +\n \"it can also be effective against non-augmented enemies due to its high temperature \" +\n \"and concussive force.\",\n bladeburner_success_chance: 1.06,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.HyperionV2,\n repCost: 2.5e4,\n moneyCost: 5.5e9,\n info:\n \"A pair of mini plasma cannons embedded into the hands. This augmentation \" +\n \"is more advanced and powerful than the original V1 model. This V2 model is \" +\n \"more power-efficient, more accurate, and can fire plasma bolts at a much \" +\n \"higher velocity than the V1 model.\",\n prereqs: [AugmentationNames.HyperionV1],\n bladeburner_success_chance: 1.08,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.GolemSerum,\n repCost: 3.125e4,\n moneyCost: 1.1e10,\n info:\n \"A serum that permanently enhances many aspects of human capabilities, \" +\n \"including strength, speed, immune system enhancements, and mitochondrial efficiency. The \" +\n \"serum was originally developed by the Chinese military in an attempt to \" +\n \"create super soldiers.\",\n strength: 1.07,\n defense: 1.07,\n dexterity: 1.07,\n agility: 1.07,\n bladeburner_stamina_gain: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.VangelisVirus,\n repCost: 1.875e4,\n moneyCost: 2.75e9,\n info:\n \"A synthetic symbiotic virus that is injected into human brain tissue. The Vangelis virus \" +\n \"heightens the senses and focus of its host, and also enhances its intuition.\",\n dexterity_exp: 1.1,\n bladeburner_analysis: 1.1,\n bladeburner_success_chance: 1.04,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.VangelisVirus3,\n repCost: 3.75e4,\n moneyCost: 1.1e10,\n info:\n \"An improved version of Vangelis, a synthetic symbiotic virus that is \" +\n \"injected into human brain tissue. On top of the benefits of the original \" +\n \"virus, this also grants accelerated healing and enhanced \" +\n \"reflexes.\",\n prereqs: [AugmentationNames.VangelisVirus],\n defense_exp: 1.1,\n dexterity_exp: 1.1,\n bladeburner_analysis: 1.15,\n bladeburner_success_chance: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.INTERLINKED,\n repCost: 2.5e4,\n moneyCost: 5.5e9,\n info:\n \"The DNA is genetically modified to enhance the human's body \" +\n \"extracellular matrix (ECM). This improves the ECM's ability to \" +\n \"structurally support the body and grants heightened strength and \" +\n \"durability.\",\n strength_exp: 1.05,\n defense_exp: 1.05,\n dexterity_exp: 1.05,\n agility_exp: 1.05,\n bladeburner_max_stamina: 1.1,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeRunner,\n repCost: 2e4,\n moneyCost: 8.25e9,\n info:\n `A cybernetic foot augmentation that was specifically created for ${FactionNames.Bladeburners} ` +\n \"during the Synthoid Uprising. The organic musculature of the human foot \" +\n \"is enhanced with flexible carbon nanotube matrices that are controlled by \" +\n \"intelligent servo-motors.\",\n agility: 1.05,\n bladeburner_max_stamina: 1.05,\n bladeburner_stamina_gain: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmor,\n repCost: 1.25e4,\n moneyCost: 1.375e9,\n info:\n `A powered exoskeleton suit designed as armor for ${FactionNames.Bladeburners} units. This ` +\n \"exoskeleton is incredibly adaptable and can protect the wearer from blunt, piercing, \" +\n \"concussive, thermal, chemical, and electric trauma. It also enhances the user's \" +\n \"physical abilities.\",\n strength: 1.04,\n defense: 1.04,\n dexterity: 1.04,\n agility: 1.04,\n bladeburner_stamina_gain: 1.02,\n bladeburner_success_chance: 1.03,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorPowerCells,\n repCost: 1.875e4,\n moneyCost: 2.75e9,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with Ion Power Cells, which are capable of \" +\n \"more efficiently storing and using power.\",\n prereqs: [AugmentationNames.BladeArmor],\n bladeburner_success_chance: 1.05,\n bladeburner_stamina_gain: 1.02,\n bladeburner_max_stamina: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorEnergyShielding,\n repCost: 2.125e4,\n moneyCost: 5.5e9,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with a plasma energy propulsion system \" +\n \"that is capable of projecting an energy shielding force field.\",\n prereqs: [AugmentationNames.BladeArmor],\n defense: 1.05,\n bladeburner_success_chance: 1.06,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorUnibeam,\n repCost: 3.125e4,\n moneyCost: 1.65e10,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with a concentrated deuterium-fluoride laser \" +\n \"weapon. It's precision and accuracy makes it useful for quickly neutralizing \" +\n \"threats while keeping casualties to a minimum.\",\n prereqs: [AugmentationNames.BladeArmor],\n bladeburner_success_chance: 1.08,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorOmnibeam,\n repCost: 6.25e4,\n moneyCost: 2.75e10,\n info:\n \"Upgrades the BLADE-51b Tesla Armor Unibeam augmentation to use a \" +\n \"multiple-fiber system. This upgraded weapon uses multiple fiber laser \" +\n \"modules that combine together to form a single, more powerful beam of up to \" +\n \"2000MW.\",\n prereqs: [AugmentationNames.BladeArmorUnibeam],\n bladeburner_success_chance: 1.1,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorIPU,\n repCost: 1.5e4,\n moneyCost: 1.1e9,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with an AI Information Processing \" +\n \"Unit that was specially designed to analyze Synthoid related data and \" +\n \"information.\",\n prereqs: [AugmentationNames.BladeArmor],\n bladeburner_analysis: 1.15,\n bladeburner_success_chance: 1.02,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladesSimulacrum,\n repCost: 1.25e3,\n moneyCost: 1.5e11,\n info:\n \"A highly-advanced matter phase-shifter module that is embedded \" +\n \"in the brainstem and cerebellum. This augmentation allows \" +\n \"the user to project and control a holographic simulacrum within an \" +\n \"extremely large radius. These specially-modified holograms were specifically \" +\n \"weaponized by Bladeburner units to be used against Synthoids.\",\n stats: (\n <>\n This augmentation allows you to perform Bladeburner actions and other actions (such as working, commiting\n crimes, etc.) at the same time.\n >\n ),\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n];\n\nexport const initChurchOfTheMachineGodAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.StaneksGift1,\n repCost: 0,\n moneyCost: 0,\n info:\n 'Allison \"Mother\" Stanek imparts you with her gift. An ' +\n \"experimental Augmentation implanted at the base of the neck. \" +\n \"It allows you to overclock your entire system by carefully \" +\n \"changing the configuration.\",\n isSpecial: true,\n hacking_chance: 0.9,\n hacking_speed: 0.9,\n hacking_money: 0.9,\n hacking_grow: 0.9,\n hacking: 0.9,\n strength: 0.9,\n defense: 0.9,\n dexterity: 0.9,\n agility: 0.9,\n charisma: 0.9,\n hacking_exp: 0.9,\n strength_exp: 0.9,\n defense_exp: 0.9,\n dexterity_exp: 0.9,\n agility_exp: 0.9,\n charisma_exp: 0.9,\n company_rep: 0.9,\n faction_rep: 0.9,\n crime_money: 0.9,\n crime_success: 0.9,\n hacknet_node_money: 0.9,\n hacknet_node_purchase_cost: 1.1,\n hacknet_node_ram_cost: 1.1,\n hacknet_node_core_cost: 1.1,\n hacknet_node_level_cost: 1.1,\n work_money: 0.9,\n stats: <>Its unstable nature decreases all your stats by 10%>,\n factions: [FactionNames.ChurchOfTheMachineGod],\n }),\n new Augmentation({\n name: AugmentationNames.StaneksGift2,\n repCost: 1e6,\n moneyCost: 0,\n info:\n \"The next evolution is near, a coming together of man and machine. A synthesis greater than the birth of the human \" +\n \"organism. Time spent with the gift has allowed for acclimatization of the invasive augment and the toll it takes upon \" +\n \"your frame granting a 5% reduced penalty to all stats.\",\n prereqs: [AugmentationNames.StaneksGift1],\n isSpecial: true,\n hacking_chance: 0.95 / 0.9,\n hacking_speed: 0.95 / 0.9,\n hacking_money: 0.95 / 0.9,\n hacking_grow: 0.95 / 0.9,\n hacking: 0.95 / 0.9,\n strength: 0.95 / 0.9,\n defense: 0.95 / 0.9,\n dexterity: 0.95 / 0.9,\n agility: 0.95 / 0.9,\n charisma: 0.95 / 0.9,\n hacking_exp: 0.95 / 0.9,\n strength_exp: 0.95 / 0.9,\n defense_exp: 0.95 / 0.9,\n dexterity_exp: 0.95 / 0.9,\n agility_exp: 0.95 / 0.9,\n charisma_exp: 0.95 / 0.9,\n company_rep: 0.95 / 0.9,\n faction_rep: 0.95 / 0.9,\n crime_money: 0.95 / 0.9,\n crime_success: 0.95 / 0.9,\n hacknet_node_money: 0.95 / 0.9,\n hacknet_node_purchase_cost: 1.05 / 1.1,\n hacknet_node_ram_cost: 1.05 / 1.1,\n hacknet_node_core_cost: 1.05 / 1.1,\n hacknet_node_level_cost: 1.05 / 1.1,\n work_money: 0.95 / 0.9,\n stats: <>The penalty for the gift is reduced to 5%>,\n factions: [FactionNames.ChurchOfTheMachineGod],\n }),\n new Augmentation({\n name: AugmentationNames.StaneksGift3,\n repCost: 1e8,\n moneyCost: 0,\n info:\n \"The synthesis of human and machine is nothing to fear. It is our destiny. \" +\n \"You will become greater than the sum of our parts. As One. Embrace your gift \" +\n \"fully and wholly free of it's accursed toll. Serenity brings tranquility in the form \" +\n \"of no longer suffering a stat penalty. \",\n prereqs: [AugmentationNames.StaneksGift2, AugmentationNames.StaneksGift1],\n isSpecial: true,\n hacking_chance: 1 / 0.95,\n hacking_speed: 1 / 0.95,\n hacking_money: 1 / 0.95,\n hacking_grow: 1 / 0.95,\n hacking: 1 / 0.95,\n strength: 1 / 0.95,\n defense: 1 / 0.95,\n dexterity: 1 / 0.95,\n agility: 1 / 0.95,\n charisma: 1 / 0.95,\n hacking_exp: 1 / 0.95,\n strength_exp: 1 / 0.95,\n defense_exp: 1 / 0.95,\n dexterity_exp: 1 / 0.95,\n agility_exp: 1 / 0.95,\n charisma_exp: 1 / 0.95,\n company_rep: 1 / 0.95,\n faction_rep: 1 / 0.95,\n crime_money: 1 / 0.95,\n crime_success: 1 / 0.95,\n hacknet_node_money: 1 / 0.95,\n hacknet_node_purchase_cost: 1 / 1.05,\n hacknet_node_ram_cost: 1 / 1.05,\n hacknet_node_core_cost: 1 / 1.05,\n hacknet_node_level_cost: 1 / 1.05,\n work_money: 1 / 0.95,\n stats: <>Stanek's Gift has no penalty.>,\n factions: [FactionNames.ChurchOfTheMachineGod],\n }),\n];\n\nexport function initNeuroFluxGovernor(): Augmentation {\n const donationBonus = CONSTANTS.Donations / 1e6 / 100; // 1 millionth of a percent per donation\n return new Augmentation({\n name: AugmentationNames.NeuroFluxGovernor,\n repCost: 500,\n moneyCost: 750e3,\n info:\n \"A device that is embedded in the back of the neck. The NeuroFlux Governor \" +\n \"monitors and regulates nervous impulses coming to and from the spinal column, \" +\n \"essentially 'governing' the body. By doing so, it improves the functionality of the \" +\n \"body's nervous system.\",\n stats: (\n <>\n This special augmentation can be leveled up infinitely. Each level of this augmentation increases MOST\n multipliers by 1% (+{(donationBonus * 100).toFixed(6)}% boosted by real life blood donations), stacking\n multiplicatively.\n >\n ),\n isSpecial: true,\n hacking_chance: 1.01 + donationBonus,\n hacking_speed: 1.01 + donationBonus,\n hacking_money: 1.01 + donationBonus,\n hacking_grow: 1.01 + donationBonus,\n hacking: 1.01 + donationBonus,\n strength: 1.01 + donationBonus,\n defense: 1.01 + donationBonus,\n dexterity: 1.01 + donationBonus,\n agility: 1.01 + donationBonus,\n charisma: 1.01 + donationBonus,\n hacking_exp: 1.01 + donationBonus,\n strength_exp: 1.01 + donationBonus,\n defense_exp: 1.01 + donationBonus,\n dexterity_exp: 1.01 + donationBonus,\n agility_exp: 1.01 + donationBonus,\n charisma_exp: 1.01 + donationBonus,\n company_rep: 1.01 + donationBonus,\n faction_rep: 1.01 + donationBonus,\n crime_money: 1.01 + donationBonus,\n crime_success: 1.01 + donationBonus,\n hacknet_node_money: 1.01 + donationBonus,\n hacknet_node_purchase_cost: 1 / (1.01 + donationBonus),\n hacknet_node_ram_cost: 1 / (1.01 + donationBonus),\n hacknet_node_core_cost: 1 / (1.01 + donationBonus),\n hacknet_node_level_cost: 1 / (1.01 + donationBonus),\n work_money: 1.01 + donationBonus,\n factions: Object.values(FactionNames).filter(\n (factionName) =>\n ![FactionNames.ShadowsOfAnarchy, FactionNames.Bladeburners, FactionNames.ChurchOfTheMachineGod].includes(\n factionName,\n ),\n ),\n });\n}\n\nexport function initUnstableCircadianModulator(): Augmentation {\n //Time-Based Augment Test\n const randomBonuses = getRandomBonus();\n\n const UnstableCircadianModulatorParams: IConstructorParams = {\n name: AugmentationNames.UnstableCircadianModulator,\n moneyCost: 5e9,\n repCost: 3.625e5,\n info:\n \"An experimental nanobot injection. Its unstable nature leads to \" +\n \"unpredictable results based on your circadian rhythm.\",\n factions: [FactionNames.SpeakersForTheDead],\n };\n Object.keys(randomBonuses.bonuses).forEach(\n (key) => ((UnstableCircadianModulatorParams as any)[key] = randomBonuses.bonuses[key]),\n );\n\n return new Augmentation(UnstableCircadianModulatorParams);\n}\n","import { FactionNames } from \"../../Faction/data/FactionNames\";\n// tslint:disable:max-file-line-count\n\n// This could actually be a JSON file as it should be constant metadata to be imported...\nimport { IMinMaxRange } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { LiteratureNames } from \"../../Literature/data/LiteratureNames\";\nimport { SpecialServers } from \"./SpecialServers\";\n\n/**\n * The metadata describing the base state of servers on the network.\n * These values will be adjusted based on Bitnode multipliers when the Server objects are built out.\n */\ninterface IServerMetadata {\n /**\n * When populated, the base security level of the server.\n */\n hackDifficulty?: number | IMinMaxRange;\n\n /**\n * The DNS name of the server.\n */\n hostname: string;\n\n /**\n * When populated, the files will be added to the server when created.\n */\n literature?: string[];\n\n /**\n * When populated, the exponent of 2^x amount of RAM the server has.\n * This should be in the range of 1-20, to match the Player's max RAM.\n */\n maxRamExponent?: number | IMinMaxRange;\n\n /**\n * How much money the server starts out with.\n */\n moneyAvailable: number | IMinMaxRange;\n\n /**\n * The number of network layers away from the `home` server.\n * This value is between 1 and 15.\n * If this is not populated, @specialName should be.\n */\n networkLayer?: number | IMinMaxRange;\n\n /**\n * The number of ports that must be opened before the player can execute NUKE.\n */\n numOpenPortsRequired: number;\n\n /**\n * The organization that the server belongs to.\n */\n organizationName: string;\n\n /**\n * The minimum hacking level before the player can run NUKE.\n */\n requiredHackingSkill: number | IMinMaxRange;\n\n /**\n * The growth factor for the server.\n */\n serverGrowth?: number | IMinMaxRange;\n\n /**\n * A \"unique\" server that has special implications when the player manually hacks it.\n */\n specialName?: string;\n}\n\n/**\n * The metadata for building up the servers on the network.\n */\nexport const serverMetadata: IServerMetadata[] = [\n {\n hackDifficulty: 99,\n hostname: LocationName.AevumECorp.toLowerCase(),\n moneyAvailable: {\n max: 70e9,\n min: 30e9,\n },\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumECorp,\n requiredHackingSkill: {\n max: 1400,\n min: 1050,\n },\n serverGrowth: 99,\n specialName: LocationName.AevumECorp,\n },\n {\n hackDifficulty: 99,\n hostname: LocationName.Sector12MegaCorp.toLowerCase(),\n moneyAvailable: {\n max: 60e9,\n min: 40e9,\n },\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12MegaCorp,\n requiredHackingSkill: {\n max: 1350,\n min: 1100,\n },\n serverGrowth: 99,\n specialName: LocationName.Sector12MegaCorp,\n },\n {\n hackDifficulty: {\n max: 88,\n min: 72,\n },\n hostname: \"b-and-a\",\n moneyAvailable: {\n max: 30e9,\n min: 15e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumBachmanAndAssociates,\n requiredHackingSkill: {\n max: 1150,\n min: 900,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n specialName: LocationName.AevumBachmanAndAssociates,\n },\n {\n hackDifficulty: {\n max: 97,\n min: 88,\n },\n hostname: \"blade\",\n literature: [LiteratureNames.BeyondMan],\n maxRamExponent: {\n max: 9,\n min: 5,\n },\n moneyAvailable: {\n max: 40e9,\n min: 10e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12BladeIndustries,\n requiredHackingSkill: {\n max: 1200,\n min: 900,\n },\n serverGrowth: {\n max: 85,\n min: 55,\n },\n specialName: LocationName.Sector12BladeIndustries,\n },\n {\n hackDifficulty: 99,\n hostname: LocationName.VolhavenNWO.toLowerCase(),\n literature: [LiteratureNames.TheHiddenWorld],\n moneyAvailable: {\n max: 40e9,\n min: 20e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenNWO,\n requiredHackingSkill: {\n max: 1300,\n min: 950,\n },\n serverGrowth: {\n max: 95,\n min: 65,\n },\n specialName: LocationName.VolhavenNWO,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 45,\n },\n hostname: \"clarkinc\",\n literature: [LiteratureNames.BeyondMan, LiteratureNames.CostOfImmortality],\n moneyAvailable: {\n max: 25e9,\n min: 15e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumClarkeIncorporated,\n requiredHackingSkill: {\n max: 1250,\n min: 950,\n },\n serverGrowth: {\n max: 75,\n min: 45,\n },\n specialName: LocationName.AevumClarkeIncorporated,\n },\n {\n hackDifficulty: {\n max: 99,\n min: 90,\n },\n hostname: \"omnitek\",\n literature: [LiteratureNames.CodedIntelligence, LiteratureNames.HistoryOfSynthoids],\n maxRamExponent: {\n max: 9,\n min: 7,\n },\n moneyAvailable: {\n max: 22e9,\n min: 13e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenOmniTekIncorporated,\n requiredHackingSkill: {\n max: 1100,\n min: 900,\n },\n serverGrowth: {\n max: 99,\n min: 95,\n },\n specialName: LocationName.VolhavenOmniTekIncorporated,\n },\n {\n hackDifficulty: {\n max: 75,\n min: 55,\n },\n hostname: \"4sigma\",\n moneyAvailable: {\n max: 25e9,\n min: 15e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12FourSigma,\n requiredHackingSkill: {\n max: 1250,\n min: 900,\n },\n serverGrowth: {\n max: 99,\n min: 75,\n },\n specialName: LocationName.Sector12FourSigma,\n },\n {\n hackDifficulty: {\n max: 99,\n min: 95,\n },\n hostname: \"kuai-gong\",\n moneyAvailable: {\n max: 30e9,\n min: 20e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.ChongqingKuaiGongInternational,\n requiredHackingSkill: {\n max: 1300,\n min: 950,\n },\n serverGrowth: {\n max: 99,\n min: 90,\n },\n specialName: LocationName.ChongqingKuaiGongInternational,\n },\n {\n hackDifficulty: {\n max: 97,\n min: 83,\n },\n hostname: \"fulcrumtech\",\n literature: [LiteratureNames.SimulatedReality],\n maxRamExponent: {\n max: 11,\n min: 7,\n },\n moneyAvailable: {\n max: 1800e6,\n min: 1400e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumFulcrumTechnologies,\n requiredHackingSkill: {\n max: 1250,\n min: 950,\n },\n serverGrowth: {\n max: 99,\n min: 80,\n },\n specialName: LocationName.AevumFulcrumTechnologies,\n },\n {\n hackDifficulty: 99,\n hostname: \"fulcrumassets\",\n moneyAvailable: 1e6,\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumFulcrumTechnologies,\n requiredHackingSkill: {\n max: 1600,\n min: 1100,\n },\n serverGrowth: 1,\n specialName: SpecialServers.FulcrumSecretTechnologies,\n },\n {\n hackDifficulty: {\n max: 92,\n min: 78,\n },\n hostname: \"stormtech\",\n moneyAvailable: {\n max: 1200e6,\n min: 1000e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.IshimaStormTechnologies,\n requiredHackingSkill: {\n max: 1075,\n min: 875,\n },\n serverGrowth: {\n max: 92,\n min: 68,\n },\n specialName: LocationName.IshimaStormTechnologies,\n },\n {\n hackDifficulty: {\n max: 96,\n min: 84,\n },\n hostname: \"defcomm\",\n moneyAvailable: {\n max: 950e6,\n min: 800e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.NewTokyoDefComm,\n requiredHackingSkill: {\n max: 1050,\n min: 850,\n },\n serverGrowth: {\n max: 73,\n min: 47,\n },\n specialName: LocationName.NewTokyoDefComm,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 70,\n },\n hostname: \"infocomm\",\n moneyAvailable: {\n max: 900e6,\n min: 600e6,\n },\n networkLayer: 10,\n numOpenPortsRequired: 5,\n organizationName: \"InfoComm\",\n requiredHackingSkill: {\n max: 950,\n min: 875,\n },\n serverGrowth: {\n max: 75,\n min: 35,\n },\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"helios\",\n literature: [LiteratureNames.BeyondMan],\n maxRamExponent: {\n max: 8,\n min: 5,\n },\n moneyAvailable: {\n max: 750e6,\n min: 550e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenHeliosLabs,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n specialName: LocationName.VolhavenHeliosLabs,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: LocationName.NewTokyoVitaLife.toLowerCase(),\n literature: [LiteratureNames.AGreenTomorrow],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 800e6,\n min: 700e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.NewTokyoVitaLife,\n requiredHackingSkill: {\n max: 900,\n min: 775,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n specialName: LocationName.NewTokyoVitaLife,\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"icarus\",\n moneyAvailable: {\n max: 1000e6,\n min: 900e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12IcarusMicrosystems,\n requiredHackingSkill: {\n max: 925,\n min: 850,\n },\n serverGrowth: {\n max: 95,\n min: 85,\n },\n specialName: LocationName.Sector12IcarusMicrosystems,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: \"univ-energy\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 1200e6,\n min: 1100e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 4,\n organizationName: LocationName.Sector12UniversalEnergy,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 90,\n min: 80,\n },\n specialName: LocationName.Sector12UniversalEnergy,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"titan-labs\",\n literature: [LiteratureNames.CodedIntelligence],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 900000000,\n min: 750000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 5,\n organizationName: \"Titan Laboratories\",\n requiredHackingSkill: {\n max: 875,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n },\n {\n hackDifficulty: {\n max: 75,\n min: 65,\n },\n hostname: \"microdyne\",\n literature: [LiteratureNames.SyntheticMuscles],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 700000000,\n min: 500000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 5,\n organizationName: \"Microdyne Technologies\",\n requiredHackingSkill: {\n max: 875,\n min: 800,\n },\n serverGrowth: {\n max: 90,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"taiyang-digital\",\n literature: [LiteratureNames.AGreenTomorrow, LiteratureNames.BrighterThanTheSun],\n moneyAvailable: {\n max: 900000000,\n min: 800000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 5,\n organizationName: \"Taiyang Digital\",\n requiredHackingSkill: {\n max: 950,\n min: 850,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"galactic-cyber\",\n moneyAvailable: {\n max: 850000000,\n min: 750000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumGalacticCybersystems,\n requiredHackingSkill: {\n max: 875,\n min: 825,\n },\n serverGrowth: {\n max: 90,\n min: 70,\n },\n specialName: LocationName.AevumGalacticCybersystems,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: LocationName.AevumAeroCorp.toLowerCase(),\n literature: [LiteratureNames.ManAndMachine],\n moneyAvailable: {\n max: 1200000000,\n min: 1000000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumAeroCorp,\n requiredHackingSkill: {\n max: 925,\n min: 850,\n },\n serverGrowth: {\n max: 65,\n min: 55,\n },\n specialName: LocationName.AevumAeroCorp,\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"omnia\",\n literature: [LiteratureNames.HistoryOfSynthoids],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 1000000000,\n min: 900000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenOmniaCybersystems,\n requiredHackingSkill: {\n max: 950,\n min: 850,\n },\n serverGrowth: {\n max: 70,\n min: 60,\n },\n specialName: LocationName.VolhavenOmniaCybersystems,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"zb-def\",\n literature: [LiteratureNames.SyntheticMuscles],\n moneyAvailable: {\n max: 1100000000,\n min: 900000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 4,\n organizationName: \"ZB Defense Industries\",\n requiredHackingSkill: {\n max: 825,\n min: 775,\n },\n serverGrowth: {\n max: 75,\n min: 65,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"applied-energetics\",\n moneyAvailable: {\n max: 1000000000,\n min: 700000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 4,\n organizationName: \"Applied Energetics\",\n requiredHackingSkill: {\n max: 850,\n min: 775,\n },\n serverGrowth: {\n max: 75,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"solaris\",\n literature: [LiteratureNames.AGreenTomorrow, LiteratureNames.TheFailedFrontier],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 900000000,\n min: 700000000,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.ChongqingSolarisSpaceSystems,\n requiredHackingSkill: {\n max: 850,\n min: 750,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n specialName: LocationName.ChongqingSolarisSpaceSystems,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 75,\n },\n hostname: LocationName.Sector12DeltaOne.toLowerCase(),\n moneyAvailable: {\n max: 1700000000,\n min: 1300000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12DeltaOne,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 70,\n min: 50,\n },\n specialName: LocationName.Sector12DeltaOne,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 75,\n },\n hostname: \"global-pharm\",\n literature: [LiteratureNames.AGreenTomorrow],\n maxRamExponent: {\n max: 6,\n min: 3,\n },\n moneyAvailable: {\n max: 1750000000,\n min: 1500000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 4,\n organizationName: LocationName.NewTokyoGlobalPharmaceuticals,\n requiredHackingSkill: {\n max: 850,\n min: 750,\n },\n serverGrowth: {\n max: 90,\n min: 80,\n },\n specialName: LocationName.NewTokyoGlobalPharmaceuticals,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"nova-med\",\n moneyAvailable: {\n max: 1250000000,\n min: 1100000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 4,\n organizationName: LocationName.IshimaNovaMedical,\n requiredHackingSkill: {\n max: 850,\n min: 775,\n },\n serverGrowth: {\n max: 85,\n min: 65,\n },\n specialName: LocationName.IshimaNovaMedical,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 70,\n },\n hostname: \"zeus-med\",\n moneyAvailable: {\n max: 1500000000,\n min: 1300000000,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: \"Zeus Medical\",\n requiredHackingSkill: {\n max: 850,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"unitalife\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 1100000000,\n min: 1000000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 4,\n organizationName: \"UnitaLife Group\",\n requiredHackingSkill: {\n max: 825,\n min: 775,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"lexo-corp\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 800000000,\n min: 700000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.VolhavenLexoCorp,\n requiredHackingSkill: {\n max: 750,\n min: 650,\n },\n serverGrowth: {\n max: 65,\n min: 55,\n },\n specialName: LocationName.VolhavenLexoCorp,\n },\n {\n hackDifficulty: {\n max: 60,\n min: 40,\n },\n hostname: \"rho-construction\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 700000000,\n min: 500000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumRhoConstruction,\n requiredHackingSkill: {\n max: 525,\n min: 475,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumRhoConstruction,\n },\n {\n hackDifficulty: {\n max: 70,\n min: 50,\n },\n hostname: \"alpha-ent\",\n literature: [LiteratureNames.Sector12Crime],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 750000000,\n min: 600000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.Sector12AlphaEnterprises,\n requiredHackingSkill: {\n max: 600,\n min: 500,\n },\n serverGrowth: {\n max: 60,\n min: 50,\n },\n specialName: LocationName.Sector12AlphaEnterprises,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"aevum-police\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 400000000,\n min: 200000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.AevumPolice,\n requiredHackingSkill: {\n max: 450,\n min: 400,\n },\n serverGrowth: {\n max: 50,\n min: 30,\n },\n specialName: LocationName.AevumPolice,\n },\n {\n hackDifficulty: {\n max: 55,\n min: 45,\n },\n hostname: \"rothman-uni\",\n literature: [\n LiteratureNames.SecretSocieties,\n LiteratureNames.TheFailedFrontier,\n LiteratureNames.TensionsInTechRace,\n ],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 250000000,\n min: 175000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: LocationName.Sector12RothmanUniversity,\n requiredHackingSkill: {\n max: 430,\n min: 370,\n },\n serverGrowth: {\n max: 45,\n min: 35,\n },\n specialName: LocationName.Sector12RothmanUniversity,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 65,\n },\n hostname: \"zb-institute\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 1100000000,\n min: 800000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenZBInstituteOfTechnology,\n requiredHackingSkill: {\n max: 775,\n min: 725,\n },\n serverGrowth: {\n max: 85,\n min: 75,\n },\n specialName: LocationName.VolhavenZBInstituteOfTechnology,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 45,\n },\n hostname: \"summit-uni\",\n literature: [LiteratureNames.SecretSocieties, LiteratureNames.TheFailedFrontier, LiteratureNames.SyntheticMuscles],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 350000000,\n min: 200000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumSummitUniversity,\n requiredHackingSkill: {\n max: 475,\n min: 425,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumSummitUniversity,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"syscore\",\n moneyAvailable: {\n max: 600000000,\n min: 400000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 4,\n organizationName: LocationName.VolhavenSysCoreSecurities,\n requiredHackingSkill: {\n max: 650,\n min: 550,\n },\n serverGrowth: {\n max: 70,\n min: 60,\n },\n specialName: LocationName.VolhavenSysCoreSecurities,\n },\n {\n hackDifficulty: {\n max: 70,\n min: 60,\n },\n hostname: \"catalyst\",\n literature: [LiteratureNames.TensionsInTechRace],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 550000000,\n min: 300000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: \"Catalyst Ventures\",\n requiredHackingSkill: {\n max: 450,\n min: 400,\n },\n serverGrowth: {\n max: 55,\n min: 25,\n },\n },\n {\n hackDifficulty: {\n max: 45,\n min: 35,\n },\n hostname: \"the-hub\",\n maxRamExponent: {\n max: 6,\n min: 3,\n },\n moneyAvailable: {\n max: 200000000,\n min: 150000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"The Hub\",\n requiredHackingSkill: {\n max: 325,\n min: 275,\n },\n serverGrowth: {\n max: 55,\n min: 45,\n },\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: LocationName.VolhavenCompuTek.toLowerCase(),\n literature: [LiteratureNames.ManAndMachine],\n moneyAvailable: {\n max: 250000000,\n min: 220000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 3,\n organizationName: LocationName.VolhavenCompuTek,\n requiredHackingSkill: {\n max: 400,\n min: 300,\n },\n serverGrowth: {\n max: 65,\n min: 45,\n },\n specialName: LocationName.VolhavenCompuTek,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"netlink\",\n literature: [LiteratureNames.SimulatedReality],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: 275000000,\n networkLayer: 4,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumNetLinkTechnologies,\n requiredHackingSkill: {\n max: 425,\n min: 375,\n },\n serverGrowth: {\n max: 75,\n min: 45,\n },\n specialName: LocationName.AevumNetLinkTechnologies,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 35,\n },\n hostname: \"johnson-ortho\",\n moneyAvailable: {\n max: 85000000,\n min: 70000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"Johnson Orthopedics\",\n requiredHackingSkill: {\n max: 300,\n min: 250,\n },\n serverGrowth: {\n max: 65,\n min: 35,\n },\n },\n {\n hackDifficulty: 1,\n hostname: \"n00dles\",\n literature: [],\n maxRamExponent: 2,\n moneyAvailable: 70000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.NewTokyoNoodleBar,\n requiredHackingSkill: 1,\n serverGrowth: 3000,\n specialName: LocationName.NewTokyoNoodleBar,\n },\n {\n hackDifficulty: 10,\n hostname: LocationName.Sector12FoodNStuff.toLowerCase(),\n literature: [LiteratureNames.Sector12Crime],\n maxRamExponent: 4,\n moneyAvailable: 2000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.Sector12FoodNStuff,\n requiredHackingSkill: 1,\n serverGrowth: 5,\n specialName: LocationName.Sector12FoodNStuff,\n },\n {\n hackDifficulty: 10,\n hostname: \"sigma-cosmetics\",\n maxRamExponent: 4,\n moneyAvailable: 2300000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"Sigma Cosmetics\",\n requiredHackingSkill: 5,\n serverGrowth: 10,\n },\n {\n hackDifficulty: 15,\n hostname: \"joesguns\",\n maxRamExponent: 4,\n moneyAvailable: 2500000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.Sector12JoesGuns,\n requiredHackingSkill: 10,\n serverGrowth: 20,\n specialName: LocationName.Sector12JoesGuns,\n },\n {\n hackDifficulty: 25,\n hostname: \"zer0\",\n maxRamExponent: 5,\n moneyAvailable: 7500000,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: \"ZER0 Nightclub\",\n requiredHackingSkill: 75,\n serverGrowth: 40,\n },\n {\n hackDifficulty: 20,\n hostname: \"nectar-net\",\n maxRamExponent: 4,\n moneyAvailable: 2750000,\n networkLayer: 2,\n numOpenPortsRequired: 0,\n organizationName: \"Nectar Nightclub Network\",\n requiredHackingSkill: 20,\n serverGrowth: 25,\n },\n {\n hackDifficulty: 25,\n hostname: \"neo-net\",\n literature: [LiteratureNames.TheHiddenWorld],\n maxRamExponent: 5,\n moneyAvailable: 5000000,\n networkLayer: 3,\n numOpenPortsRequired: 1,\n organizationName: \"Neo Nightclub Network\",\n requiredHackingSkill: 50,\n serverGrowth: 25,\n },\n {\n hackDifficulty: 30,\n hostname: \"silver-helix\",\n literature: [LiteratureNames.NewTriads],\n maxRamExponent: 6,\n moneyAvailable: 45000000,\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: \"Silver Helix\",\n requiredHackingSkill: 150,\n serverGrowth: 30,\n },\n {\n hackDifficulty: 15,\n hostname: \"hong-fang-tea\",\n literature: [LiteratureNames.BrighterThanTheSun],\n maxRamExponent: 4,\n moneyAvailable: 3000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"HongFang Teahouse\",\n requiredHackingSkill: 30,\n serverGrowth: 20,\n },\n {\n hackDifficulty: 15,\n hostname: \"harakiri-sushi\",\n maxRamExponent: 4,\n moneyAvailable: 4000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"HaraKiri Sushi Bar Network\",\n requiredHackingSkill: 40,\n serverGrowth: 40,\n },\n {\n hackDifficulty: 20,\n hostname: \"phantasy\",\n maxRamExponent: 5,\n moneyAvailable: 24000000,\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: \"Phantasy Club\",\n requiredHackingSkill: 100,\n serverGrowth: 35,\n },\n {\n hackDifficulty: 15,\n hostname: \"max-hardware\",\n maxRamExponent: 5,\n moneyAvailable: 10000000,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: \"Max Hardware Store\",\n requiredHackingSkill: 80,\n serverGrowth: 30,\n },\n {\n hackDifficulty: {\n max: 35,\n min: 25,\n },\n hostname: \"omega-net\",\n literature: [LiteratureNames.TheNewGod],\n maxRamExponent: 5,\n moneyAvailable: {\n max: 70000000,\n min: 60000000,\n },\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: LocationName.IshimaOmegaSoftware,\n requiredHackingSkill: {\n max: 220,\n min: 180,\n },\n serverGrowth: {\n max: 40,\n min: 30,\n },\n specialName: LocationName.IshimaOmegaSoftware,\n },\n {\n hackDifficulty: {\n max: 45,\n min: 35,\n },\n hostname: \"crush-fitness\",\n moneyAvailable: {\n max: 60000000,\n min: 40000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"Crush Fitness\",\n requiredHackingSkill: {\n max: 275,\n min: 225,\n },\n serverGrowth: {\n max: 33,\n min: 27,\n },\n specialName: LocationName.AevumCrushFitnessGym,\n },\n {\n hackDifficulty: 30,\n hostname: \"iron-gym\",\n maxRamExponent: 5,\n moneyAvailable: 20000000,\n networkLayer: 1,\n numOpenPortsRequired: 1,\n organizationName: `${LocationName.Sector12IronGym} Network`,\n requiredHackingSkill: 100,\n serverGrowth: 20,\n specialName: LocationName.Sector12IronGym,\n },\n {\n hackDifficulty: {\n max: 55,\n min: 45,\n },\n hostname: \"millenium-fitness\",\n maxRamExponent: {\n max: 8,\n min: 4,\n },\n moneyAvailable: 250000000,\n networkLayer: 6,\n numOpenPortsRequired: 3,\n organizationName: \"Millenium Fitness Network\",\n requiredHackingSkill: {\n max: 525,\n min: 475,\n },\n serverGrowth: {\n max: 45,\n min: 25,\n },\n specialName: LocationName.VolhavenMilleniumFitnessGym,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"powerhouse-fitness\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: 900000000,\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: \"Powerhouse Fitness\",\n requiredHackingSkill: {\n max: 1100,\n min: 950,\n },\n serverGrowth: {\n max: 60,\n min: 50,\n },\n specialName: LocationName.Sector12PowerhouseGym,\n },\n {\n hackDifficulty: {\n max: 60,\n min: 40,\n },\n hostname: \"snap-fitness\",\n moneyAvailable: 450000000,\n networkLayer: 7,\n numOpenPortsRequired: 4,\n organizationName: \"Snap Fitness\",\n requiredHackingSkill: {\n max: 800,\n min: 675,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumSnapFitnessGym,\n },\n {\n hackDifficulty: 0,\n hostname: \"run4theh111z\",\n literature: [LiteratureNames.SimulatedReality, LiteratureNames.TheNewGod],\n maxRamExponent: {\n max: 9,\n min: 5,\n },\n moneyAvailable: 0,\n networkLayer: 11,\n numOpenPortsRequired: 4,\n organizationName: \"The Runners\",\n requiredHackingSkill: {\n max: 550,\n min: 505,\n },\n serverGrowth: 0,\n specialName: SpecialServers.BitRunnersServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"I.I.I.I\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: {\n max: 8,\n min: 4,\n },\n moneyAvailable: 0,\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: \"I.I.I.I\",\n requiredHackingSkill: {\n max: 365,\n min: 340,\n },\n serverGrowth: 0,\n specialName: SpecialServers.TheBlackHandServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"avmnite-02h\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: 0,\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: FactionNames.NiteSec,\n requiredHackingSkill: {\n max: 220,\n min: 202,\n },\n serverGrowth: 0,\n specialName: SpecialServers.NiteSecServer,\n },\n {\n hackDifficulty: 0,\n hostname: \".\",\n maxRamExponent: 4,\n moneyAvailable: 0,\n networkLayer: 13,\n numOpenPortsRequired: 4,\n organizationName: \".\",\n requiredHackingSkill: {\n max: 550,\n min: 505,\n },\n serverGrowth: 0,\n specialName: SpecialServers.TheDarkArmyServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"CSEC\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: 3,\n moneyAvailable: 0,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: FactionNames.CyberSec,\n requiredHackingSkill: {\n max: 60,\n min: 51,\n },\n serverGrowth: 0,\n specialName: SpecialServers.CyberSecServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"The-Cave\",\n literature: [LiteratureNames.AlphaOmega],\n moneyAvailable: 0,\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: \"Helios\",\n requiredHackingSkill: 925,\n serverGrowth: 0,\n specialName: SpecialServers.DaedalusServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"w0r1d_d43m0n\",\n moneyAvailable: 0,\n numOpenPortsRequired: 5,\n organizationName: \"w0r1d_d43m0n\",\n requiredHackingSkill: 3000,\n serverGrowth: 0,\n specialName: SpecialServers.WorldDaemon,\n },\n {\n hostname: SpecialServers.DarkWeb,\n moneyAvailable: 0,\n numOpenPortsRequired: 5,\n organizationName: SpecialServers.DarkWeb,\n requiredHackingSkill: 1,\n specialName: SpecialServers.DarkWeb,\n },\n];\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { Work, WorkType } from \"./Work\";\nimport { CONSTANTS } from \"../../../Constants\";\n\nconst infiltrateCycles = 60000 / CONSTANTS._idleSpeed;\n\nexport const isSleeveInfiltrateWork = (w: Work | null): w is SleeveInfiltrateWork =>\n w !== null && w.type === WorkType.INFILTRATE;\n\nexport class SleeveInfiltrateWork extends Work {\n cyclesWorked = 0;\n\n constructor() {\n super(WorkType.INFILTRATE);\n }\n\n cyclesNeeded(): number {\n return infiltrateCycles;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (!player.bladeburner) throw new Error(\"sleeve doing blade work without being a member\");\n this.cyclesWorked += cycles;\n if (this.cyclesWorked > this.cyclesNeeded()) {\n this.cyclesWorked -= this.cyclesNeeded();\n player.bladeburner.infiltrateSynthoidCommunities(player);\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveInfiltrateWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveInfiltrateWork {\n return Generic_fromJSON(SleeveInfiltrateWork, value.data);\n }\n}\n\nReviver.constructors.SleeveInfiltrateWork = SleeveInfiltrateWork;\n","import { CONSTANTS } from \"../Constants\";\nimport * as names from \"./data/companypositionnames\";\n\n/* tslint:disable:completed-docs */\n\nexport interface IConstructorParams {\n name: string;\n nextPosition: string | null;\n baseSalary: number;\n repMultiplier: number;\n\n reqdHacking?: number;\n reqdStrength?: number;\n reqdDefense?: number;\n reqdDexterity?: number;\n reqdAgility?: number;\n reqdCharisma?: number;\n reqdReputation?: number;\n\n hackingEffectiveness?: number;\n strengthEffectiveness?: number;\n defenseEffectiveness?: number;\n dexterityEffectiveness?: number;\n agilityEffectiveness?: number;\n charismaEffectiveness?: number;\n\n hackingExpGain?: number;\n strengthExpGain?: number;\n defenseExpGain?: number;\n dexterityExpGain?: number;\n agilityExpGain?: number;\n charismaExpGain?: number;\n}\n\nexport class CompanyPosition {\n /**\n * Position title\n */\n name: string;\n\n /**\n * Title of next position to be promoted to\n */\n nextPosition: string | null;\n\n /**\n * Base salary for this position ($ per 200ms game cycle)\n * Will be multiplier by a company-specific multiplier for final salary\n */\n baseSalary: number;\n\n /**\n * Reputation multiplier\n */\n repMultiplier: number;\n\n /**\n * Required stats to earn this position\n */\n requiredAgility: number;\n requiredCharisma: number;\n requiredDefense: number;\n requiredDexterity: number;\n requiredHacking: number;\n requiredStrength: number;\n\n /**\n * Required company reputation to earn this position\n */\n requiredReputation: number;\n\n /**\n * Effectiveness of each stat time for job performance\n */\n hackingEffectiveness: number;\n strengthEffectiveness: number;\n defenseEffectiveness: number;\n dexterityEffectiveness: number;\n agilityEffectiveness: number;\n charismaEffectiveness: number;\n\n /**\n * Experience gain for performing job (per 200ms game cycle)\n */\n hackingExpGain: number;\n strengthExpGain: number;\n defenseExpGain: number;\n dexterityExpGain: number;\n agilityExpGain: number;\n charismaExpGain: number;\n\n constructor(p: IConstructorParams) {\n this.name = p.name;\n this.nextPosition = p.nextPosition;\n this.baseSalary = p.baseSalary;\n this.repMultiplier = p.repMultiplier;\n\n this.requiredHacking = p.reqdHacking != null ? p.reqdHacking : 0;\n this.requiredStrength = p.reqdStrength != null ? p.reqdStrength : 0;\n this.requiredDefense = p.reqdDefense != null ? p.reqdDefense : 0;\n this.requiredDexterity = p.reqdDexterity != null ? p.reqdDexterity : 0;\n this.requiredAgility = p.reqdAgility != null ? p.reqdAgility : 0;\n this.requiredCharisma = p.reqdCharisma != null ? p.reqdCharisma : 0;\n this.requiredReputation = p.reqdReputation != null ? p.reqdReputation : 0;\n\n this.hackingEffectiveness = p.hackingEffectiveness != null ? p.hackingEffectiveness : 0;\n this.strengthEffectiveness = p.strengthEffectiveness != null ? p.strengthEffectiveness : 0;\n this.defenseEffectiveness = p.defenseEffectiveness != null ? p.defenseEffectiveness : 0;\n this.dexterityEffectiveness = p.dexterityEffectiveness != null ? p.dexterityEffectiveness : 0;\n this.agilityEffectiveness = p.agilityEffectiveness != null ? p.agilityEffectiveness : 0;\n this.charismaEffectiveness = p.charismaEffectiveness != null ? p.charismaEffectiveness : 0;\n\n if (\n Math.round(\n this.hackingEffectiveness +\n this.strengthEffectiveness +\n this.defenseEffectiveness +\n this.dexterityEffectiveness +\n this.agilityEffectiveness +\n this.charismaEffectiveness,\n ) !== 100\n ) {\n console.error(`CompanyPosition ${this.name} parameters do not sum to 100`);\n }\n\n this.hackingExpGain = p.hackingExpGain != null ? p.hackingExpGain : 0;\n this.strengthExpGain = p.strengthExpGain != null ? p.strengthExpGain : 0;\n this.defenseExpGain = p.defenseExpGain != null ? p.defenseExpGain : 0;\n this.dexterityExpGain = p.dexterityExpGain != null ? p.dexterityExpGain : 0;\n this.agilityExpGain = p.agilityExpGain != null ? p.agilityExpGain : 0;\n this.charismaExpGain = p.charismaExpGain != null ? p.charismaExpGain : 0;\n }\n\n calculateJobPerformance(hack: number, str: number, def: number, dex: number, agi: number, cha: number): number {\n const hackRatio: number = (this.hackingEffectiveness * hack) / CONSTANTS.MaxSkillLevel;\n const strRatio: number = (this.strengthEffectiveness * str) / CONSTANTS.MaxSkillLevel;\n const defRatio: number = (this.defenseEffectiveness * def) / CONSTANTS.MaxSkillLevel;\n const dexRatio: number = (this.dexterityEffectiveness * dex) / CONSTANTS.MaxSkillLevel;\n const agiRatio: number = (this.agilityEffectiveness * agi) / CONSTANTS.MaxSkillLevel;\n const chaRatio: number = (this.charismaEffectiveness * cha) / CONSTANTS.MaxSkillLevel;\n\n let reputationGain: number =\n (this.repMultiplier * (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio)) / 100;\n if (isNaN(reputationGain)) {\n console.error(\"Company reputation gain calculated to be NaN\");\n reputationGain = 0;\n }\n\n return reputationGain;\n }\n\n isSoftwareJob(): boolean {\n return names.SoftwareCompanyPositions.includes(this.name);\n }\n\n isITJob(): boolean {\n return names.ITCompanyPositions.includes(this.name);\n }\n\n isSecurityEngineerJob(): boolean {\n return names.SecurityEngineerCompanyPositions.includes(this.name);\n }\n\n isNetworkEngineerJob(): boolean {\n return names.NetworkEngineerCompanyPositions.includes(this.name);\n }\n\n isBusinessJob(): boolean {\n return names.BusinessCompanyPositions.includes(this.name);\n }\n\n isSecurityJob(): boolean {\n return names.SecurityCompanyPositions.includes(this.name);\n }\n\n isAgentJob(): boolean {\n return names.AgentCompanyPositions.includes(this.name);\n }\n\n isSoftwareConsultantJob(): boolean {\n return names.SoftwareConsultantCompanyPositions.includes(this.name);\n }\n\n isBusinessConsultantJob(): boolean {\n return names.BusinessConsultantCompanyPositions.includes(this.name);\n }\n\n isPartTimeJob(): boolean {\n return names.PartTimeCompanyPositions.includes(this.name);\n }\n}\n","/**\n * Implementation of the mechanisms that allow the player to affect the\n * Stock Market\n */\nimport { Stock } from \"./Stock\";\nimport { StockMarket } from \"./StockMarket\";\n\nimport { Company } from \"../Company/Company\";\nimport { Server } from \"../Server/Server\";\n\n// Change in second-order forecast due to hacks/grows\nexport const forecastForecastChangeFromHack = 0.1;\n\n// Change in second-order forecast due to company work\nexport const forecastForecastChangeFromCompanyWork = 0.001;\n\n/**\n * Potentially decreases a stock's second-order forecast when its corresponding\n * server is hacked. The chance of the hack decreasing the stock's second-order\n * forecast is dependent on what percentage of the server's money is hacked\n * @param {Server} server - Server being hack()ed\n * @param {number} moneyHacked - Amount of money stolen from the server\n */\nexport function influenceStockThroughServerHack(server: Server, moneyHacked: number): void {\n const orgName = server.organizationName;\n let stock: Stock | null = null;\n if (typeof orgName === \"string\" && orgName !== \"\") {\n stock = StockMarket[orgName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n const percTotalMoneyHacked = moneyHacked / server.moneyMax;\n if (Math.random() < percTotalMoneyHacked) {\n stock.changeForecastForecast(stock.otlkMagForecast - forecastForecastChangeFromHack);\n }\n}\n\n/**\n * Potentially increases a stock's second-order forecast when its corresponding\n * server is grown (grow()). The chance of the grow() to increase the stock's\n * second-order forecast is dependent on how much money is added to the server\n * @param {Server} server - Server being grow()n\n * @param {number} moneyHacked - Amount of money added to the server\n */\nexport function influenceStockThroughServerGrow(server: Server, moneyGrown: number): void {\n const orgName = server.organizationName;\n let stock: Stock | null = null;\n if (typeof orgName === \"string\" && orgName !== \"\") {\n stock = StockMarket[orgName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n const percTotalMoneyGrown = moneyGrown / server.moneyMax;\n if (Math.random() < percTotalMoneyGrown) {\n stock.changeForecastForecast(stock.otlkMagForecast + forecastForecastChangeFromHack);\n }\n}\n\n/**\n * Potentially increases a stock's second-order forecast when the player works for\n * its corresponding company.\n * @param {Company} company - Company being worked for\n * @param {number} performanceMult - Effectiveness of player's work. Affects influence\n * @param {number} cyclesOfWork - # game cycles of work being processed\n */\nexport function influenceStockThroughCompanyWork(\n company: Company,\n performanceMult: number,\n cyclesOfWork: number,\n): void {\n const compName = company.name;\n let stock: Stock | null = null;\n if (typeof compName === \"string\" && compName !== \"\") {\n stock = StockMarket[compName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n if (Math.random() < 0.002 * cyclesOfWork) {\n const change = forecastForecastChangeFromCompanyWork * performanceMult;\n stock.changeForecastForecast(stock.otlkMagForecast + change);\n }\n}\n","export function checkEnum(\n enumVariable: { [key in T]: TEnumValue },\n value: string,\n): value is TEnumValue {\n return Object.values(enumVariable).includes(value);\n}\n","import React from \"react\";\nimport { SourceFile } from \"./SourceFile\";\nimport { IMap } from \"../types\";\n\nexport const SourceFiles: IMap = {};\n\nSourceFiles[\"SourceFile1\"] = new SourceFile(\n 1,\n (\n <>\n This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the\n player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nSourceFiles[\"SourceFile2\"] = new SourceFile(\n 2,\n (\n <>\n This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also\n increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nSourceFiles[\"SourceFile3\"] = new SourceFile(\n 3,\n (\n <>\n This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this\n mechanic). This Source-File also increases your charisma and company salary multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile4\"] = new SourceFile(\n 4,\n (\n <>\n This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this\n Source-File reduces the RAM cost of Singularity functions.\n >\n ),\n);\nSourceFiles[\"SourceFile5\"] = new SourceFile(\n 5,\n (\n <>\n This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent and\n persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other\n stats. Higher Intelligence levels will boost your production for many actions in the game. In addition, this\n Source-File will unlock:\n \n
\n
\n The getBitNodeMultipliers() Netscript function\n
\n
Permanent access to Formulas.exe
\n
\n Access to BitNode multiplier information on the Stats page\n
\n
\n It will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile6\"] = new SourceFile(\n 6,\n (\n <>\n This Source-File allows you to access the NSA's Bladeburner Division in other BitNodes. In addition, this\n Source-File will raise both the level and experience gain rate of all your combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile7\"] = new SourceFile(\n 7,\n (\n <>\n This Source-File allows you to access the Bladeburner Netscript API in other BitNodes. In addition, this\n Source-File will increase all of your Bladeburner multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile8\"] = new SourceFile(\n 8,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nSourceFiles[\"SourceFile9\"] = new SourceFile(\n 9,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile10\"] = new SourceFile(\n 10,\n (\n <>\n This Source-File unlocks Sleeve technology, and the Grafting API in other BitNodes. Each level of this Source-File\n also grants you a Duplicate Sleeve\n >\n ),\n);\nSourceFiles[\"SourceFile11\"] = new SourceFile(\n 11,\n (\n <>\n This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at\n that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the player's\n company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nSourceFiles[\"SourceFile12\"] = new SourceFile(\n 12,\n <>This Source-File lets the player start with Neuroflux Governor equal to the level of this Source-File.>,\n);\nSourceFiles[\"SourceFile13\"] = new SourceFile(\n 13,\n <>Each level of this Source-File increases the size of Stanek's Gift.>,\n);\n","import React from \"react\";\n\nimport { IBladeburner } from \"../IBladeburner\";\nimport { BlackOperation } from \"../BlackOperation\";\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\n\ninterface IProps {\n bladeburner: IBladeburner;\n type: number;\n name: string;\n rerender: () => void;\n}\nexport function StartButton(props: IProps): React.ReactElement {\n const player = use.Player();\n const action = props.bladeburner.getActionObject({ name: props.name, type: props.type });\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + props.name);\n }\n let disabled = false;\n if (action.count < 1) {\n disabled = true;\n }\n if (props.name === \"Raid\" && props.bladeburner.getCurrentCity().comms === 0) {\n disabled = true;\n }\n\n if (action instanceof BlackOperation && props.bladeburner.rank < action.reqdRank) {\n disabled = true;\n }\n function onStart(): void {\n if (disabled) return;\n props.bladeburner.action.type = props.type;\n props.bladeburner.action.name = props.name;\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true)) player.finishWork(true);\n props.bladeburner.startAction(player, props.bladeburner.action);\n props.rerender();\n }\n\n return (\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\n\nfunction replace(str: string, i: number, char: string): string {\n return str.substring(0, i) + char + str.substring(i + 1);\n}\n\ninterface IProps {\n content: string;\n}\n\nfunction randomize(char: string): string {\n const randFrom = (str: string): string => str[Math.floor(Math.random() * str.length)];\n const classes = [\"abcdefghijklmnopqrstuvwxyz\", \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", \"1234567890\", \" _\", \"()[]{}<>\"];\n const other = `!@#$%^&*()_+|\\\\';\"/.,?\\`~`;\n\n for (const c of classes) {\n if (c.includes(char)) return randFrom(c);\n }\n\n return randFrom(other);\n}\n\nexport function CorruptableText(props: IProps): JSX.Element {\n const [content, setContent] = useState(props.content);\n\n useEffect(() => {\n let counter = 5;\n const timers: number[] = [];\n const intervalId = setInterval(() => {\n counter--;\n if (counter > 0) return;\n counter = Math.random() * 5;\n const index = Math.random() * content.length;\n const letter = content.charAt(index);\n setContent((content) => replace(content, index, randomize(letter)));\n timers.push(\n window.setTimeout(() => {\n setContent((content) => replace(content, index, letter));\n }, 500),\n );\n }, 20);\n\n return () => {\n clearInterval(intervalId);\n timers.forEach((timerId) => clearTimeout(timerId));\n };\n }, []);\n\n return {content};\n}\n","import React from \"react\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { GraftableAugmentations } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Work, WorkType } from \"./Work\";\nimport { graftingIntBonus } from \"../PersonObjects/Grafting/GraftingHelpers\";\nimport { applyAugmentation } from \"../Augmentation/AugmentationHelpers\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { GraftableAugmentation } from \"../PersonObjects/Grafting/GraftableAugmentation\";\nimport { StaticAugmentations } from \"../Augmentation/StaticAugmentations\";\n\nexport const isGraftingWork = (w: Work | null): w is GraftingWork => w !== null && w.type === WorkType.GRAFTING;\n\ninterface GraftingWorkParams {\n augmentation: string;\n player: IPlayer;\n singularity: boolean;\n}\n\nexport class GraftingWork extends Work {\n augmentation: string;\n unitCompleted: number;\n\n constructor(params?: GraftingWorkParams) {\n super(WorkType.GRAFTING, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.augmentation = params?.augmentation ?? AugmentationNames.Targeting1;\n const gAugs = GraftableAugmentations();\n if (params?.player) params.player.loseMoney(gAugs[this.augmentation].cost, \"augmentations\");\n }\n\n unitNeeded(): number {\n return new GraftableAugmentation(StaticAugmentations[this.augmentation]).time;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n\n this.cyclesWorked += cycles;\n this.unitCompleted += CONSTANTS._idleSpeed * cycles * graftingIntBonus(player) * focusBonus;\n\n return this.unitCompleted >= this.unitNeeded();\n }\n\n finish(player: IPlayer, cancelled: boolean): void {\n const augName = this.augmentation;\n if (!cancelled) {\n applyAugmentation({ name: augName, level: 1 });\n\n if (!player.hasAugmentation(AugmentationNames.CongruityImplant)) {\n player.entropy += 1;\n player.applyEntropy(player.entropy);\n }\n\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You've finished grafting {augName}. \n The augmentation has been applied to your body{\" \"}\n {player.hasAugmentation(AugmentationNames.CongruityImplant) ? \".\" : \", but you feel a bit off.\"}\n >,\n );\n }\n } else if (cancelled && !this.singularity) {\n dialogBoxCreate(\n <>\n You cancelled the grafting of {augName}.\n \n Your money was not returned to you.\n >,\n );\n }\n\n // Intelligence gain\n if (!cancelled) {\n player.gainIntelligenceExp(\n (CONSTANTS.IntelligenceGraftBaseExpGain * this.cyclesWorked * CONSTANTS._idleSpeed) / 10000,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n augmentation: this.augmentation,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"GraftingWork\", this);\n }\n\n /**\n * Initiatizes a GraftingWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): GraftingWork {\n return Generic_fromJSON(GraftingWork, value.data);\n }\n}\n\nReviver.constructors.GraftingWork = GraftingWork;\n","import { format } from \"date-fns\";\n\nexport function formatTime(fmt: string): string {\n try {\n return format(new Date(), fmt);\n } catch (e: unknown) {\n return \"format error\";\n }\n}\n","import React from \"react\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { use } from \"../ui/Context\";\nimport { Option } from \"./ui/Option\";\nimport { Typography } from \"@mui/material\";\n\ninterface FactionInfoParams {\n infoText?: JSX.Element;\n enemies?: string[];\n offerHackingWork?: boolean;\n offerFieldWork?: boolean;\n offerSecurityWork?: boolean;\n special?: boolean;\n keepOnInstall?: boolean;\n assignment?: () => React.ReactElement;\n}\n\n/**\n * Contains the \"information\" property for all the Factions, which is just a description of each faction\n */\nexport class FactionInfo {\n /**\n * The names of all other factions considered to be enemies to this faction.\n */\n enemies: string[];\n\n /**\n * The descriptive text to show on the faction's page.\n */\n infoText: JSX.Element;\n\n /**\n * A flag indicating if the faction supports field work to earn reputation.\n */\n offerFieldWork: boolean;\n\n /**\n * A flag indicating if the faction supports hacking work to earn reputation.\n */\n offerHackingWork: boolean;\n\n /**\n * A flag indicating if the faction supports security work to earn reputation.\n */\n offerSecurityWork: boolean;\n\n /**\n * Keep faction on install.\n */\n keep: boolean;\n\n /**\n * Special faction\n */\n special: boolean;\n\n /**\n * The data to display on the faction screen.\n */\n assignment?: () => React.ReactElement;\n\n constructor(params: FactionInfoParams) {\n this.infoText = params.infoText ?? <>>;\n this.enemies = params.enemies ?? [];\n this.offerHackingWork = params.offerHackingWork ?? false;\n this.offerFieldWork = params.offerFieldWork ?? false;\n this.offerSecurityWork = params.offerSecurityWork ?? false;\n\n this.keep = params.keepOnInstall ?? false;\n this.special = params.special ?? false;\n this.assignment = params.assignment;\n }\n\n offersWork(): boolean {\n return this.offerFieldWork || this.offerHackingWork || this.offerSecurityWork;\n }\n}\n\n/**\n * A map of all factions and associated info to them.\n */\n// tslint:disable-next-line:variable-name\nexport const FactionInfos: IMap = {\n // Endgame\n [FactionNames.Illuminati]: new FactionInfo({\n infoText: (\n <>\n Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. And\n from this chaos, we are the invisible hand that guides them to order.{\" \"}\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Daedalus]: new FactionInfo({\n infoText: <>Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheCovenant]: new FactionInfo({\n infoText: (\n <>\n Surrender yourself. Give up your empty individuality to become part of something great, something eternal.\n Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.\n \n \n Only then can you discover immortality.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // Megacorporations, each forms its own faction\n [FactionNames.ECorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.ECorp}'s mission is simple: to connect the world of today with the technology of tomorrow. With\n our wide range of Internet-related software and commercial hardware, {FactionNames.ECorp} makes the world's\n information universally accessible.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.MegaCorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.MegaCorp} does what no other dares to do. We imagine. We create. We invent. We create what others\n have never even dreamed of. Our work fills the world's needs for food, water, power, and transportation on an\n unprecedented scale, in ways that no other company can.\n \n \n In our labs and factories and on the ground with customers, {FactionNames.MegaCorp} is ushering in a new era for\n the world.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BachmanAssociates]: new FactionInfo({\n infoText: (\n <>\n Where Law and Business meet - that's where we are.\n \n \n Legal Insight - Business Instinct - Innovative Experience.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BladeIndustries]: new FactionInfo({\n infoText: <>Augmentation is Salvation.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.NWO]: new FactionInfo({\n infoText: (\n <>\n Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given\n purpose and direction in life. That is why they created God. And that is why they created civilization - not\n because of willingness, but because of a need to be incorporated into higher orders of structure and meaning.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.ClarkeIncorporated]: new FactionInfo({\n infoText: <>The Power of the Genome - Unlocked.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.OmniTekIncorporated]: new FactionInfo({\n infoText: <>Simply put, our mission is to design and build robots that make a difference.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.FourSigma]: new FactionInfo({\n infoText: (\n <>\n The scientific method is the best way to approach investing. Big strategies backed up with big data. Driven by\n deep learning and innovative ideas. And improved by iteration. That's {FactionNames.FourSigma}.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.KuaiGongInternational]: new FactionInfo({\n infoText: <>Dream big. Work hard. Make history.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Other Corporations\n [FactionNames.FulcrumSecretTechnologies]: new FactionInfo({\n infoText: (\n <>\n The human organism has an innate desire to worship. That is why they created gods. If there were no gods, it\n would be necessary to create them. And now we can.\n >\n ),\n offerHackingWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Hacker groups\n [FactionNames.BitRunners]: new FactionInfo({\n infoText: (\n <>\n Our entire lives are controlled by bits. All of our actions, our thoughts, our personal information. It's all\n transformed into bits, stored in bits, communicated through bits. It’s impossible for any person to move, to\n live, to operate at any level without the use of bits. And when a person moves, lives, and operates, they leave\n behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be\n reconstructed. Transformed. Used.\n \n \n Those who run the bits, run the world.\n >\n ),\n offerHackingWork: true,\n }),\n\n [FactionNames.TheBlackHand]: new FactionInfo({\n infoText: (\n <>\n The world, so afraid of strong government, now has no government. Only power - Digital power. Financial power.\n Technological power. And those at the top rule with an invisible hand. They built a society where the rich get\n richer, and everyone else suffers.\n \n \n So much pain. So many lives. Their darkness must end.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // prettier-ignore\n [FactionNames.NiteSec]: new FactionInfo({\n infoText:(<>\n {\" __..__ \"} \n {\" _.nITESECNIt. \"} \n {\" .-'NITESECNITESEc. \"} \n {\" .' NITESECNITESECn \"} \n {\" / NITESECNITESEC; \"} \n {\" : :NITESECNITESEC; \"} \n {\" ; $ NITESECNITESECN \"} \n {\" : _, ,N'ITESECNITESEC \"} \n {\" : .+^^`, : `NITESECNIT \"} \n {\" ) /), `-,-=,NITESECNI \"} \n {\" / ^ ,-;|NITESECN; \"} \n {\" / _.' '-';NITESECN \"} \n {\" ( , ,-''`^NITE' \"} \n {\" )` :`. .' \"} \n {\" )-- ; `- / \"} \n {\" ' _.-' : \"} \n {\" ( _.-' . \"} \n {\" ------. \"} \n {\" . \"} \n {\" _.nIt \"} \n {\" _.nITESECNi \"} \n {\" nITESECNIT^' \"} \n {\" NITE^' ___ \"} \n {\" / .gP''''Tp. \"} \n {\" : d' . `b \"} \n {\" ; d' o `b ; \"} \n {\" / d; `b| \"} \n {\" /, $; @ `: \"} \n {\" /' $/ ; \"} \n {\" .' $/b o | \"} \n {\" .' d$/$; : \"} \n {\" / .d/$/$; , ; \"} \n {\" d .dNITESEC $ | \"} \n {\" :bp.__.gNITESEC/$ :$ ; \"} \n {\" NITESECNITESECNIT /$b : \"} >),\n offerHackingWork: true,\n offerFieldWork: false,\n offerSecurityWork: false,\n special: false,\n keepOnInstall: false,\n }),\n\n // City factions, essentially governments\n [FactionNames.Aevum]: new FactionInfo({\n infoText: <>The Silicon City.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Chongqing]: new FactionInfo({\n infoText: <>Serve the People.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Ishima]: new FactionInfo({\n infoText: <>The East Asian Order of the Future.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.NewTokyo]: new FactionInfo({\n infoText: <>Asia's World City.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Sector12]: new FactionInfo({\n infoText: <>The City of the Future.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Volhaven]: new FactionInfo({\n infoText: <>Benefit, Honor, and Glory.>,\n enemies: [\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n ],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Criminal Organizations/Gangs\n [FactionNames.SpeakersForTheDead]: new FactionInfo({\n infoText: <>It is better to reign in Hell than to serve in Heaven.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.TheDarkArmy]: new FactionInfo({\n infoText: <>The World doesn't care about right or wrong. It only cares about power.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheSyndicate]: new FactionInfo({\n infoText: <>Honor holds you back.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.Silhouette]: new FactionInfo({\n infoText: (\n <>\n Corporations have filled the void of power left behind by the collapse of Western government. The issue is\n they've become so big that you don't know who they're working for. And if you're employed at one of these\n corporations, you don't even know who you're working for.\n \n \n That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Tetrads]: new FactionInfo({\n infoText: <>Following the mandate of Heaven and carrying out the way.>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.SlumSnakes]: new FactionInfo({\n infoText: <>{FactionNames.SlumSnakes} rule!>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Earlygame factions - factions the player will prestige with early on that don't belong in other categories.\n [FactionNames.Netburners]: new FactionInfo({\n infoText: <>{\"~~//*>H4CK||3T 8URN3R5**>?>\\\\~~\"}>,\n offerHackingWork: true,\n }),\n\n [FactionNames.TianDiHui]: new FactionInfo({\n infoText: <>Obey Heaven and work righteously.>,\n offerHackingWork: true,\n\n offerSecurityWork: true,\n }),\n\n [FactionNames.CyberSec]: new FactionInfo({\n infoText: (\n <>\n The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy\n that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of\n total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse.\n >\n ),\n offerHackingWork: true,\n }),\n\n // Special Factions\n [FactionNames.Bladeburners]: new FactionInfo({\n infoText: (\n <>\n It's too bad they won't live. But then again, who does?\n \n \n Note that for this faction, reputation can only be gained through {FactionNames.Bladeburners} actions.{\" \"}\n Completing {FactionNames.Bladeburners} contracts/operations will increase your reputation.\n >\n ),\n\n special: true,\n assignment: (): React.ReactElement => {\n const router = use.Router();\n return (\n