{"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/BitNode/BitNodeMultipliers.ts","webpack:///./src/ui/React/Money.tsx","webpack:///./src/Server/AllServers.ts","webpack:///./src/ui/Context.ts","webpack:///./src/ui/Router.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/Terminal/DirectoryHelpers.ts","webpack:///./src/Company/Companies.ts","webpack:///./src/Gang/AllGangs.ts","webpack:///./src/Terminal.ts","webpack:///./src/ui/React/Snackbar.tsx","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/Script/isScriptFilename.ts","webpack:///./src/StockMarket/StockMarket.tsx","webpack:///./src/StockMarket/data/StockSymbols.ts","webpack:///./src/Hacking.ts","webpack:///./src/PersonObjects/Sleeve/Work/Work.ts","webpack:///./src/CotMG/Helper.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/ui/React/OptionSwitch.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/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/utils/helpers/isString.ts","webpack:///./src/Alias.ts","webpack:///./src/Locations/Locations.ts","webpack:///./src/ui/React/LogBoxManager.tsx","webpack:///./src/Netscript/ScriptDeath.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/Corporation/MaterialSizes.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/StockMarket/BuyingAndSelling.tsx","webpack:///./src/Faction/Faction.ts","webpack:///./src/Netscript/WorkerScripts.ts","webpack:///./src/Corporation/Material.ts","webpack:///./src/Gang/formulas/formulas.ts","webpack:///./src/RemoteFileAPI/MessageDefinitions.ts","webpack:///./src/Infiltration/ui/GameTimer.tsx","webpack:///./src/PersonObjects/Multipliers.ts","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/Hacknet/HashUpgrades.ts","webpack:///./src/Gang/GangMemberTasks.ts","webpack:///./src/Corporation/Warehouse.ts","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/Sleeve/Work/SleeveCompanyWork.ts","webpack:///./src/Achievements/Achievements.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/GameOptions/GameOptionsTab.ts","webpack:///./src/Crime/Crime.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/Electron.tsx","webpack:///./src/Work/CreateProgramWork.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/GameOptions/ui/GameOptionsPage.tsx","webpack:///./src/ui/React/Favor.tsx","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/utils/helpers/formatTime.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/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/Script/RamCalculationErrorCodes.ts","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/Gang/Gang.ts","webpack:///./src/Faction/formulas/donation.ts","webpack:///./src/RemoteFileAPI/RemoteFileAPI.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/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/NetscriptFunctions.ts","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/ScriptEditor/NetscriptDefinitions.d.ts","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/RemoteFileAPI/MessageHandlers.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/Gang/data/tasks.ts","webpack:///./src/Gang/GangMemberUpgrade.ts","webpack:///./src/StockMarket/data/InitStockMetadata.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/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/GameOptionsSidebar.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/GameOptions/ui/GameplayPage.tsx","webpack:///./src/GameOptions/ui/InterfacePage.tsx","webpack:///./src/GameOptions/ui/MiscPage.tsx","webpack:///./src/GameOptions/ui/RemoteAPIPage.tsx","webpack:///./src/GameOptions/ui/ConnectionBauble.tsx","webpack:///./src/RemoteFileAPI/Remote.ts","webpack:///./src/GameOptions/ui/SystemPage.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/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","debugType","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","cpuCores","ftpPortOpen","hasAdminRights","httpPortOpen","ip","isConnectedTo","maxRam","organizationName","ramUsed","smtpPortOpen","sqlPortOpen","sshPortOpen","purchasedByPlayer","baseDifficulty","hackDifficulty","minDifficulty","moneyMax","numOpenPortsRequired","openPortCount","requiredHackingSkill","serverGrowth","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","clip","String","json","userFriendlyString","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","RemoteFileApiPort","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","defaultMultipliers","useStyles","makeStyles","createStyles","unbuyable","color","palette","action","disabled","colors","Money","props","classes","canAfford","className","AllServers","isValidIPAddress","GetServerByHostname","ipserver","GetServerByIP","servers","DeleteServer","serverkey","ipExists","hostName","createUniqueRandomIp","createRandomIp","AddToAllServers","initForeignServers","homeComputer","networkLayers","toNumber","getRandomInt","metadata","serverMetadata","serverParams","maxRamExponent","pow","literature","messages","SpecialServers","WorldDaemon","WorldDaemonDifficulty","networkLayer","linkNetworkLayers","network1","selectServer","server1","server2","serversOnNetwork","getRandomArrayItem","arr","prestigeAllServers","member","loadAllServers","saveAllServers","excludeRunningScripts","TempAllServers","runningScripts","runningScriptObj","Context","React","createContext","Router","use","useContext","Page","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","ServerStartingMoney","ServerMaxMoney","ServerStartingSecurity","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","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","sleeve","isSleeveCompanyWork","stopWork","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","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","initCompanies","oldCompanies","companiesMetadata","forEach","loadCompanies","AllGangs","power","loadAllGangs","Terminal","TTerminal","snackbar","zIndex","logBoxBaseZIndex","alignSelf","SnackbarProvider","dense","maxSnack","anchorOrigin","horizontal","vertical","autoHideDuration","containerRoot","EventEmitter","Snackbar","enqueueSnackbar","closeSnackbar","useSnackbar","useEffect","subscribe","variant","duration","id","severity","k","onClick","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","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","stockMarket","export","onExport","exportGame","forceKill","exportGameFn","installAugmentationsFn","Provider","killScripts","flexDirection","onToggled","isOpened","updateHashCapacity","costMult","seconds","onlineTimeSeconds","hashRate","totalHashesGenerated","prodMult","runScript","updateRamUsed","calculateHashGainRate","validScriptExtensions","isScriptFilename","some","ext","Orders","storedCycles","ticksUntilCycle","SymbolToStockMap","placeOrder","shares","Stock","order","Order","symbol","orders","stk","processOrderRefs","symbolToStockMap","processOrders","cancelOrder","stockOrders","stockSymbol","orderTxt","loadStockMarket","deleteStockMarket","initStockMarket","InitStockMetadata","TicksPerCycle","initSymbolToStockMap","StockSymbols","cyclesPerStockUpdate","processStockPrices","timeNow","flipForecastForecast","stockMarketCycle","av","mv","chc","otlkMag","cap","changePrice","OrderTypes","LimitBuy","Short","LimitSell","Long","StopBuy","StopSell","otlkMagChange","cycleForecast","cycleForecastForecast","shareTxUntilMovement","shareTxForMovement","initStockMarketFn","IshimaStormTechnologies","NewTokyoDefComm","VolhavenHeliosLabs","NewTokyoVitaLife","Sector12IcarusMicrosystems","Sector12UniversalEnergy","AevumAeroCorp","VolhavenOmniaCybersystems","ChongqingSolarisSpaceSystems","NewTokyoGlobalPharmaceuticals","IshimaNovaMedical","AevumWatchdogSecurity","VolhavenLexoCorp","AevumRhoConstruction","Sector12AlphaEnterprises","VolhavenSysCoreSecurities","VolhavenCompuTek","AevumNetLinkTechnologies","IshimaOmegaSoftware","Sector12FoodNStuff","Sector12JoesGuns","difficultyMult","skillMult","chance","expGain","HackExpGain","percentMoneyHacked","ScriptHackMoney","skillFactor","calculateGrowTime","calculateWeakenTime","applySleeveGains","rawStats","shockedStats","shockBonus","syncStats","syncBonus","__player","loadStaneksGift","zeros","height","array","fill","calculateGrid","gift","newgrid","fragmentAt","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","OptionSwitch","checked","tooltip","control","SkillNames","BladesIntuition","Cloak","Marksman","WeaponProficiency","ShortCircuit","DigitalObserver","Tracer","Overclock","Reaper","EvasiveSystem","Datamancer","CybersEdge","HandsOfMidas","Hyperdrive","rep","Reputation","useGang","killWorkerScript","WorkerScript","stopAndCleanUpWorkerScript","killWorkerScriptByPid","clearTimeout","atExit","rs","delete","AddRecentScript","WorkerScriptStartStopEventEmitter","removeWorkerScript","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","layerCounter","LogBoxEvents","LogBoxCloserEvents","LogBoxClearEvents","LogBoxPositionEvents","LogBoxSizeEvents","LogBoxManager","closePid","LogWindow","close","overflowY","overflowX","wordWrap","titleButton","draggableRef","useRef","rootRef","setScript","container","setSize","minimized","setMinimized","setPosition","state","kill","startWorkerScript","updateLayer","full","maxLength","minimize","innerWidth","innerHeight","clearInterval","addEventListener","onWindowResize","removeEventListener","debounce","isOnScreen","bounds","getBoundingClientRect","right","bottom","left","top","outerWidth","minConstraints","handle","onDrag","MouseEvent","clientX","clientY","ref","onMouseDown","flexFlow","minWidth","welllight","onResize","cursor","fontSize","marginRight","textOverflow","has","onTouchEnd","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","MuiButton","borderRadius","MuiSelect","icon","defaultProps","MuiTextField","MuiTypography","MuiMenu","list","MuiMenuItem","MuiAccordionSummary","MuiAccordionDetails","MuiIconButton","MuiTooltip","disableInteractive","MuiSlider","valueLabel","MuiDrawer","paperAnchorDockedLeft","borderRight","MuiDivider","MuiFormControlLabel","MuiSwitch","switchBase","track","MuiPaper","MuiTablePagination","selectLabel","displayedRows","MuiTab","textColorPrimary","MuiTabs","scrollButtons","opacity","TabIndicatorProps","MuiAlert","standardSuccess","standardError","standardWarning","standardInfo","TTheme","injectFirst","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","interpreter","importProcessingRes","ast","ecmaVersion","allowReserved","sourceType","generatedCode","hasImports","walksimple","ImportDeclaration","scriptName","getScript","scriptAst","specifiers","namespace","local","fnNames","fnDeclarations","FunctionDeclaration","fnsToImport","lineOffset","linesRemoved","processNetscript1Imports","Interpreter","wrapNS1Layer","intLayer","nsLayer","prev","newPath","vars","entry","wrapper","callback","pseudoToNative","nativeToPseudo","errorTextArray","errorMsg","setProperty","createAsyncFunction","properties","runInterpreter","more","step","_e","parent","createAndAddWorkerScript","oneRamUsage","getRamUsageFromRunningScript","roundToTwo","generateNextPid","NetscriptFunctions","set","scriptExecution","executeJSScript","SyntaxError","startNetscript2Script","updateOnlineScriptTimes","loadAllRunningScripts","skipScriptLoad","markUpdated","scriptCalculateOfflineProduction","runScriptFromScript","ramAvailable","RunningScript","GangConstants","GangRespectToReputationRatio","MaximumGangMembers","CyclesPerTerritoryAndPowerUpdate","AscensionMultiplierRatio","Names","GangKarmaRequirement","buyStock","opts","suppressDialog","totalPrice","getBuyTransactionCost","origTotal","newTotal","processTransactionForecastMovement","rerenderFn","resultTxt","sellStock","getSellTransactionGain","netProfit","shortStock","sellShort","origCost","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","RFAMessage","method","isFileData","pf","isFileLocation","isFileServer","GameTimer","setV","totalMillis","WKSharmonizer","millis","intervalId","onExpire","noPaper","mb","m0","m1","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","windowSize","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","moveTail","resizeTail","closeTail","clearPort","openDevMenu","alert","flags","bypass","alterReality","rainbow","heart","break","formulas","mockServer","mockPlayer","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","posType","firstShares","remainingShares","numIterations","forecastChange","forecastForecastChange","calculateBuyMaxAmount","isLong","remainingMoney","currPrice","GangMemberUpgrades","GangMemberUpgrade","getStockMarket4SDataCost","getStockMarket4STixApiCost","getStockMarketWseCost","getStockMarketTixApiCost","NumberInput","textProps","HashUpgradesMetadata","HashUpgrade","GangMemberTasks","gangMemberTasksMetadata","isHacking","isCombat","materials","updateMaterialSizeUsed","matName","getStorageMultiplier","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","COMPANY","SleeveCompanyWork","NewTokyoNoodleBar","getCompany","getGainRates","calculateCompanyWorkStats","influenceStockThroughCompanyWork","achievementData","bitNodeFinishedState","wd","OperationDaedalus","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","running","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","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","ActiveFragment","highestCharge","numCharge","collide","other","thisFragment","otherFragment","dx","dy","fragSize","worldX","worldY","GameOptionsTab","workName","commit","div","startWork","CrimeWork","crimeType","successRate","HashRate","Message","ApplyToJobButton","getJobRequirementTooltip","researchMetadata","isSleeveFactionWork","SleeveFactionWork","FIELD","SECURITY","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","Intelligence","useTheme","scope","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","GameOptionsPage","Favor","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","fmt","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","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","RamCalculationErrorCode","sharePower","StartSharing","CSM","nsFuncsGenerator","sanitizedPid","Environment","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","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","parseOnlyRamCalculate","dependencyMap","completedParses","parseQueue","parseCode","moduleName","currentModule","globalKey","internalToExternal","additionalModules","addRef","external","objectPrototypeProperties","getOwnPropertyNames","commonVisitors","Identifier","st","WhileStatement","walkDeeper","test","DoWhileStatement","ForStatement","update","IfStatement","consequent","alternate","MemberExpression","walk","importModuleName","spec","imported","parseOnlyCalculateDeps","initialModule","nextModule","ImportError","detailedCosts","unresolvedRefs","resolvedRefs","loadedFns","dep","findFunc","refDetail","fnRam","checkInfiniteLoop","missingAwaitLine","nodeHasTrueTest","hasAwait","AwaitExpression","codeCopy","decimal","pidCounter","tempCounter","MAX_SAFE_INTEGER","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","newRemoteFileApiConnection","stopConnection","Remote","startConnection","isRemoteFileApiConnectionLive","connection","readyState","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","Hand","cards","addCards","removeByIndex","StockTickerTxButton","DummyGrid","DummyGift","fragments","ghostGrid","getContract","contractName","removeContract","existingPartialExeIndex","findIndex","newScript","writeToTextFile","newFile","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","createNativeFunction","EvalError","parseInt","strFunctions","decodeURI","encodeURI","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","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","end","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_","wrapAPI","NetscriptSingularity","NetscriptGang","NetscriptBladeburner","NetscriptCodingContract","NetscriptSleeve","NetscriptCorporation","NetscriptStanek","NetscriptInfiltration","NetscriptUserInterface","NetscriptFormulas","NetscriptStockMarket","NetscriptGrafting","NetscriptHacknet","_hackAmount","hackAmount","_threads","_time","moneyBefore","moneyAfter","logGrowPercent","_growth","_cores","maxThreadsNeeded","finally","_format","_fn","possibleLogs","_x","_y","_pid","_w","_h","_scriptname","scriptServer","spawnDelay","killByPid","_safetyguard","safetyguard","scriptsKilled","_files","_destination","_source","destServer","sourceServ","noFailures","sourceTextFile","textFile","destTextFile","sourceScript","destScript","_grep","grep","allFiles","processes","speed","production","purchaseCost","coreCost","levelCost","_filename","_ram","_name","hostnameStr","_port","_data","_mode","txtFile","tryWrite","_file","status","suc","_n","_milliseconds","_milliPrecision","milliseconds","milliPrecision","_message","_variant","_duration","_txt","_url","_target","$","fail","_host","source_is_txt","dest_is_txt","source_file","dest_file","Flags","NetscriptExtra","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","ansiCodeStyle","COLOR_MAP_BRIGHT","1","2","3","4","5","6","7","COLOR_MAP_DARK","8","9","10","11","12","13","14","15","codeParts","nextStyleKey","codePart","ir","ig","ib","grey","ansi2rgb","fontWeight","textDecoration","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","isTxt","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","regenerateModel","createModel","updateRAM","keydown","ctrlKey","metaKey","require","initVimMode","VimMode","Vim","defineEx","saveNQuit","defineAction","_cm","nTabs","currIndex","currentTabIndex","onTabClick","nextIndex","mapCommand","context","dispose","debouncedUpdateRAM","newCode","entriesDisp","RAM","scriptToSave","cleanCode","ns1","ns2","curIndex","isDisposed","setModel","revealLineInCenter","onTabClose","closingScript","savedScriptCode","wasCurrentScript","dirty","indexOffset","openScript","serverData","getServerCode","handleFilterChange","handleExpandSearch","filteredOpenScripts","tabMaxWidth","tabTextWidth","tabIconWidth","onDragEnd","endIndex","removed","reorder","droppableId","direction","provided","snapshot","innerRef","droppableProps","isDraggingOver","spellCheck","externalScript","colorProps","borderColor","iconButtonStyle","scriptTabText","draggableId","disableInteractiveElementBlocking","draggableProps","dragHandleProps","flexShrink","serverScriptCode","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","awaitWarning","newDecorations","deltaDecorations","startLineNumber","startColumn","endLineNumber","endColumn","isWholeLine","glyphMarginClassName","glyphMarginHoverMessage","infLoop","glyphMargin","getAction","getSubdirectories","t_dir","processFile","subdir","containsFiles","dirWithTrailingSlash","makeScriptBlob","compile","shouldCompile","queueCompile","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","uniqueId","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","isEmpty","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","RFARequestHandler","pushFile","fileData","at","getFile","scriptContent","getFileNames","fileNameList","scr","getAllFiles","fileList","calculateRam","getDefinitionFile","StatsElement","EarningsElement","rates","ServerType","All","Foreign","Owned","Purchased","ServerDropdown","isValidServer","purchased","serverType","purchase","DECK_COUNT","Result","Blackjack","bet","canStartGame","playerHand","deck","safeDrawCard","dealerHand","setState","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","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","currServ","isHacknet","org","canRunScripts","hackingSkill","security","hackingChance","numPort","getProgressText","getLitFile","lit","currDir","setcwd","contractOpen","executeScanAnalyzeCommand","visited","depthQueue","newS","titleDashes","connectToServer","executeCommands","commandHistory","commandHistoryIndex","executeCommand","n00dlesServ","commandName","scananalyze","apr1","removeBracketsFromArrayString","strCpy","removeQuotesFromString","convert2DArrayToString","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","sanitizedPlayerAns","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","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","disablePadding","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","privateOwnedRatio","maxPrivateShares","privateShares","dialogContents","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","INTERFACE","GAMEPLAY","MISC","REMOTE_API","SideBarTab","sideBarProps","tabName","GameOptionsSidebar","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","confirmedImportGame","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","GameplayPage","InterfacePage","timestampFormat","setTimestampFormat","setLocale","MiscPage","RemoteAPIPage","remoteFileApiPort","setRemoteFileApiPort","isConnected","ConnectionBauble","setConnection","ipaddr","address","protocol","WebSocket","handleMessageEvent","response","SystemPage","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","_event","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","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","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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BACA,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,IAAI3lC,EAAS4lC,OAAO7B,EAAUhY,kBAC1B9hD,MAAM+1B,KAASA,EAAS,GAC5B+jC,EAAUn1B,IAAI8D,cAAgB1S,EAC9B,IAAK,MAAM6lC,KAASH,SACX3B,EAAU8B,GAEnB,IAAK,MAAM/uB,KAAUitB,EAAUxzB,QAAS,CACtC,MAAMu1B,EAAYhvB,EAClB,IAAI9W,EAAS4lC,OAAOE,EAAU/Z,kBAC1B9hD,MAAM+1B,KAASA,EAAS,GAC5B8lC,EAAUl3B,IAAI8D,cAAgB1S,EAC9B,IAAK,MAAM6lC,KAASF,SACX7uB,EAAO+uB,MAoFlBE,CAA6BjC,GACzBl7D,OAAOiJ,SAASm0D,KAAKhzB,cAAcxlC,SAAS,kBAkDpD6X,YACE,4TAIExU,IAAU8T,aACZshD,GArDanC,IAAQjzD,IAAU+O,eAC3BsmD,IAEF,MAAOx/B,GACPw/B,SAGFA,IAEF,OAAO,EAWT,MAAMD,EAAkB,CACtB,yCAA0C,CACxCzX,OAAQ,EACRtoC,MAAOlL,IAAST,MAAM8b,QACtB8vC,WAAY,WAEd,OAAQ,CACNC,YAAa,QACbC,WAAY,MAIhB,SAASH,IACPz5D,WACE,IACE4Y,YACE,0IAGExU,IAAU8T,aACZshD,GAEJ,KAeJ,SAAS9D,EAAS/sD,EAAkBqxC,GAClC,MAAM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AA6B,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,EACWx0D,GACN,CACJ,UAASA,wBACT,IACA,4GACA,4FACA,IACA,4CAA2CA,kDAC3C,kBAAiBA,yEACjB,IACA,YACA,IACA,OAAMA,YACN,OAAMA,qBACN,IACA,OAAMA,WACN,OAAMA,iBACN,KAKMy0D,EAA4B,CACvChuE,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,KAEFiuE,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEF3gH,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEF4gH,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEFnP,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEFoP,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEF7iE,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEF8iE,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEFtiD,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEFuiD,GAAI,CAAC,wBAAyB,IAAK,wEAAyE,KAC5G1oF,SAAU,CACR,qCACA,IACA,mFACA,IACA,4GACA,IACA,kDACA,IACA,0CACA,IACA,0CACA,KAEF2oF,KAAM,CACJ,wCACA,IACA,oFACA,IACA,oBACA,IACA,WACA,IACA,wBACA,IACA,qFACA,KAEFC,KAAM,CACJ,cACA,IACA,gIACA,gCACA,KAEFl0C,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEF5oG,KAAM,CACJ,cACA,IACA,uHACA,KAEF+8I,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEFl4G,KAAM,CACJ,cACA,IACA,sGACA,KAEF/lC,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChFoxE,KAAM,CACJ,mDACA,IACA,4EACA,IACA,6EACA,4EACA,iFACA,4DACA,IACA,uCACA,IACA,qEACA,IACA,wCACA,IACA,qFACA,KAEF65B,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,KAEF8yC,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEFrxF,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEFsxF,KAAMd,EAAgC,QACtCjyC,GAAI,CAAC,YAAa,IAAK,4DAA6D,KACpF8B,GAAI,CACF,mBACA,IACA,6GACA,IACA,kDACA,KAEFn2D,IAAK,CACH,sDACA,IACA,gDACA,IACA,sHACA,2GACA,gEACA,2DACA,2FACA,IACA,kHACA,iFACA,KAEFoyD,KAAM,CACJ,cACA,IACA,6HACA,2CACA,KAEF,eAAgB,CACd,mCACA,IACA,kGACA,wGA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BAAoB7wE,IAE7C7nE,KAAKu4I,2BAA2Bv4I,KAAK22I,MAAO,SAAU9oE,GAEtDA,EAAU,SAAUqsE,EAAeC,GACjC,OAAOtgJ,MAAMtQ,UAAUoZ,QAAQ3Y,MAAMgW,KAAKquE,WAAYipE,YAExDt3I,KAAKu4I,2BAA2Bv4I,KAAK22I,MAAO,UAAW9oE,GAEvDA,EAAU,SAAUqsE,EAAeC,GACjC,OAAOtgJ,MAAMtQ,UAAUgS,YAAYvR,MAAMgW,KAAKquE,WAAYipE,YAE5Dt3I,KAAKu4I,2BAA2Bv4I,KAAK22I,MAAO,cAAe9oE,GAE3DA,EAAU,WAER,OADAh0E,MAAMtQ,UAAUqlB,KAAKnlB,KAAKuW,KAAKquE,YACxBruE,MAETA,KAAKu4I,2BAA2Bv4I,KAAK22I,MAAO,OAAQ9oE,GAEpD7tE,KAAKwzI,WAAW7pJ,KAGd,kDACA,8CACA,kCACA,oEACA,YACA,wBACA,4BACA,yCACA,SACA,oBACA,+DACA,OACA,IACA,eACA,IACA,MAIA,mDACA,8CACA,+BACA,wFACA,wBACA,4BACA,gBACA,+DACA,kCACA,gBACA,kBACA,mDACA,IACA,IACA,cACA,IACA,MAKA,+BACA,mDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,iBACA,IACA,OACA,IACA,oBACA,KACA,sBACA,iBACA,MACA,IAKA,oCACA,wDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,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,KAQJ0jF,EAAY9jF,UAAUisJ,WAAa,SAAUp9B,GAC3C,IACIvqC,EADAmoE,EAAkBh2I,KAGtB6tE,EAAU,SAAUliF,GAElB,OADAA,EAAQ+N,OAAO/N,GACXqqJ,EAAgBmB,iBAElBn3I,KAAKnX,KAAO8C,EACLqU,MAGArU,GAGXqU,KAAKo6I,OAASp6I,KAAKi2I,qBAAqBpoE,GAAS,GACjD7tE,KAAKmuE,YAAYiqC,EAAO,SAAUp4G,KAAKo6I,QAGvCp6I,KAAKmuE,YACHnuE,KAAKo6I,OACL,eACAp6I,KAAKi2I,qBAAqBv8I,OAAO2gJ,cAAc,GAC/ChtE,EAAYgnE,0BAoBd,IAfA,IAAIiG,EAAY,CACd,SACA,aACA,SACA,UACA,cACA,QACA,SACA,YACA,oBACA,oBACA,cACA,cACA,QAEOnxJ,EAAI,EAAGA,EAAImxJ,EAAUjxJ,OAAQF,IACpC6W,KAAKu4I,2BAA2Bv4I,KAAKo6I,OAAQE,EAAUnxJ,GAAIuQ,OAAOnQ,UAAU+wJ,EAAUnx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AAM,kCAC3C,MAAM/I,EAAO0+J,EAMb,MAHe,IAAI1+J,EAAK,IACrB4vB,IAAKzJ,GAAa,MAANA,EAAYA,EAAItV,OAAO2gJ,cAAerrI,EAAEkB,WAAW,GAAK,GAAKrnB,EAAK,GAAK,IAAM,GAAM,KAC/F6S,KAAK,MACUmnK,IAGtB,CACEvrJ,KAAOiwI,IACL,IAAK1tJ,MAAMC,QAAQytJ,GAAQ,MAAM,IAAI31J,MAAM,kCAC3C,MAAM/I,EAAO0+J,EACb,MAAO,CACL,qEACA,2EACA,kCACA,+GACA,+FACA,sFACA,sFACA,qFACA,qFACA,qFACA,wGACA,qFACA,uFACA,8GACA,8EACA,sCACA,qDACA,6GACA,iHACA,8CACC,iBAAgB1+J,EAAK,SAASA,EAAK,SACpC,6EACA,8CACA6S,KAAK,MAET+nC,WAAY,EACZ8pB,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,SA4FG3+C,KAAK,IAAM7b,KAAKC,SAAW,IAC3BtG,MAAM,EAAG,GACTgP,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,aAOKkT,KAAK,IAAM7b,KAAKC,SAAW,IAAK,IAGzC9H,KAAM,iCACNwiE,SAAU,GACVF,OAAQ,CAAC+5F,EAAgBsb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J,IAAU+2J,EAEhB,GADAD,EAAuBthM,GACnB2H,IAAOnE,OAASE,IAAS6hB,SAC3B,MAAM1lB,IAAQQ,oBAAoBL,EAAK,+DAEzC,IAAKokH,YAAyBz8G,KAAQhE,SAAS0gH,KAAaj6F,IAAoBruB,eAAesoH,GAE7F,OADAxkH,IAAQkF,IAAI/E,EAAK,IAAO,gBAAeqkH,IAChC,EAGT,MAAMm9E,EAAc75L,IAAO6iC,MAErBi3J,EAAe,IAAIhiE,IAAsBr1G,IAAoBi6F,IACnE,OAAI18G,IAAOlI,MAAQgiM,EAAa/oK,MAC9B74B,IAAQkF,IAAI/E,EAAK,IAAO,wCAAuCqkH,IACxD,GAGJ5vD,YAAuBgtI,EAAax2K,eAKzCtjB,IAAOi/G,UACL,IAAI0Y,IAAa,CACf/nG,aAAa,EACbtM,aAAco5F,EACd18G,OAAQA,OAIR6iC,GACF7iC,IAAO4iC,gBACPxqB,IAAO6mC,UACE46I,IACT75L,IAAO8iC,eACP1qB,IAAO0mC,cAGT5mD,IAAQkF,IAAI/E,EAAK,IAAO,+BAA8BqkH,OAC/C,IArBLxkH,IAAQkF,IAAI/E,EAAK,IAAO,yCAAwCqkH,IACzD,O,qCC7EjB,gEAMA,MAAM9sF,EAAc,CAClB,iBACA,WACA,0BACA,cACA,UACA,gBACA,qBACA,kBACA,2BACA,sBACA,wBACA,uBACA,wBACA,8BACA,uBACA,kBACA,sBACA,gBACA,iBACA,gBACA,mBACA,wBACA,qBACA,kBACA,sBACA,gBACA,wBACA,sBACA,0BACA,wBACA,eACA,aACA,cACA,uBACA,kBACA,SACA,YACA,cACA,aACA,uBACA,kBACA,cACA,UACA,WACA,YACA,aACA,eACA,mBACA,mBACA,iBACA,iBACA,kBAGImqK,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,cAC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sB,gBAAgBxV,IAAkBm+G,iBAAiB,GAe7E,OACE,oCACE,kBAAC,IAAD,CAAWjtC,OAAQ6/H,EAAO3/H,SAAUtqE,EAAM6pM,YAC1C,kBAAC,IAAD,CAAO3qM,GAAI,CAAEmQ,QAAS,OAAQ8/G,aAAc,SAAU3gB,GAAI,IACxD,kBAAC,IAAD,CAAYhqE,QAAQ,MAApB,UAAkC6lK,EAA2B,GAAd,aAC/C,kBAAC,IAAD,CAAYxwH,UAdlB,SAA+B5yC,GAE7B,GADAA,EAAM0jF,iBALR,SAAgC1jF,GAC9B,OAAOA,EAAMplD,MAAQmlB,IAAIsjM,WAAcrjK,EAAMsjK,UAA0B,UAAdtjK,EAAMplD,KAAoBolD,EAAMukH,SAAWvkH,EAAMwkJ,OAKtG+e,CAAuBvjK,GAAQ,OACnC,MAAMwjK,EAAYl0B,EAAQtvI,EAAMplD,IAAIkjB,cAC/B5O,EAAOqgB,WAAWi0L,GACdt0M,IAAWs0M,EAAWzqM,EAAM2pM,YAChCS,EAASK,GAFqBzqM,EAAM6pM,aAUPA,UAAW7pM,EAAM6pM,YAC/C,kBAAC,IAAD,CAAYzpK,MAAO,CAAEypB,UAAWwgJ,EAAa,OAAS,eAAiBl0M,GACvE,kBAAC,IAAD,KACGogL,EACD,kBAAC,IAAD,SAkBV,MAAM2zB,EAAQ,CACZ,YACA,SACA,MACA,cACA,QACA,SACA,YACA,SACA,MACA,OACA,SACA,OACA,UACA,WACA,OACA,YACA,UACA,SACA,MACA,MACA,OACA,QACA,YACA,UACA,KACA,SACA,SACA,YACA,QACA,YACA,UACA,UACA,WACA,WACA,YACA,SACA,OACA,MACA,aACA,aACA,YACA,OACA,SACA,WACA,QACA,aACA,SACA,UACA,cACA,UACA,OACA,MACA,WACA,SACA,cACA,MACA,aACA,WACA,OACA,MACA,UACA,QACA,WACA,UACA,aACA,QACA,UACA,MACA,OACA,SACA,WACA,WACA,UACA,QACA,cACA,cACA,YACA,SACA,OACA,SACA,QACA,WACA,WACA,WACA,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,CACFzwH,QAAS,CAAE0wH,MAAO,IAAM1/M,IAAK,EAAGqO,IAAK,GACrC4gF,OAAQ,CAAEywH,MAAO,IAAM1/M,IAAK,EAAGqO,IAAK,GACpC6gF,KAAM,CAAEwwH,MAAO,IAAM1/M,IAAK,EAAGqO,IAAK,GAClC8gF,WAAY,CAAEuwH,MAAO,KAAM1/M,IAAK,EAAGqO,IAAK,IAkCnC,SAASuvM,EAAYnoM,GAC1B,MAAMq5B,EAAyB,CAAE4wK,MAAO,EAAG1/M,IAAK,EAAGqO,IAAK,GACxDugF,YAAY6wH,EAAchqM,EAAMq5B,WAAYA,GAC5C,MAAM4wK,EAAQ5wK,EAAW4wK,OAClBrxI,EAAO8xI,GAAY5/J,mBAAS,KAC5BguB,GAAQhuB,mBApCjB,SAA0BzR,GACxB,IAAI3iC,EAAM,GACV,MAAMq3C,EAAU,CAAC/mC,IAAI2jM,aAAc3jM,IAAI4jM,UAAW5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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([1573,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\nconst userFriendlyString = (v: unknown): string => {\n const clip = (s: string): string => {\n if (s.length > 15) return s.slice(0, 12) + \"...\";\n return s;\n };\n if (typeof v === \"number\") return String(v);\n if (typeof v === \"string\") {\n if (v === \"\") return \"empty string\";\n return `'${clip(v)}'`;\n }\n const json = JSON.stringify(v);\n if (!json) return \"???\";\n return `'${clip(json)}'`;\n};\n\nconst debugType = (v: unknown): string => {\n if (v === null) return `Is null.`;\n if (v === undefined) return \"Is undefined.\";\n if (typeof v === \"function\") return \"Is a function.\";\n return `Is of type '${typeof v}', value: ${userFriendlyString(v)}`;\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. ${debugType(v)}`);\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. ${debugType(v)}`);\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.filename && stackline.includes(script.filename)) {\n filename = script.filename;\n }\n for (const dependency of script.dependencies) {\n if (stackline.includes(dependency.filename)) {\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 throw new ScriptDeath(ws);\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 const fakeServer = {\n cpuCores: undefined,\n ftpPortOpen: undefined,\n hasAdminRights: undefined,\n hostname: undefined,\n httpPortOpen: undefined,\n ip: undefined,\n isConnectedTo: undefined,\n maxRam: undefined,\n organizationName: undefined,\n ramUsed: undefined,\n smtpPortOpen: undefined,\n sqlPortOpen: undefined,\n sshPortOpen: undefined,\n purchasedByPlayer: undefined,\n backdoorInstalled: undefined,\n baseDifficulty: undefined,\n hackDifficulty: undefined,\n minDifficulty: undefined,\n moneyAvailable: undefined,\n moneyMax: undefined,\n numOpenPortsRequired: undefined,\n openPortCount: undefined,\n requiredHackingSkill: undefined,\n serverGrowth: undefined,\n };\n if (!roughlyIs(fakeServer, 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\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 * Port the Remote File API client will try to connect to.\n */\n RemoteFileApiPort: 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 RemoteFileApiPort: 0,\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 RemoteFileApiPort: defaultSettings.RemoteFileApiPort,\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.1.0\",\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: 25,\n\n LatestUpdate: `\nv2.1.0 - 2022-08-23\n-------------------\n\n * pending\n * nerf noodle bar\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 { 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 * 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 { 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 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 { 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 { 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.researched[researchName]) return;\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 { isSleeveCompanyWork } from \"../Sleeve/Work/SleeveCompanyWork\";\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 for (const sleeve of this.sleeves) {\n if (isSleeveCompanyWork(sleeve.currentWork) && sleeve.currentWork.companyName === company) {\n sleeve.stopWork(this);\n dialogBoxCreate(`You quit ${company} while one of your sleeves was working there. The sleeve is now idle.`);\n }\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","/**\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","// 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","import { Terminal as TTerminal } from \"./Terminal/Terminal\";\n\nexport const Terminal = new TTerminal();\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 | null]>();\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 { 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\", \"to 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\", \"to rob a 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\", \"to 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\", \"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\", \"to 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\", \"to forge bonds\", 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\", \"to traffic 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\", \"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\", \"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\", \"to 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\", \"to assassinate\", 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\", \"a 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 { StockMarket } 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 padding: \"8px\",\n minHeight: \"100vh\",\n boxSizing: \"border-box\",\n width: \"1px\",\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 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","export const validScriptExtensions: Array = [`.js`, `.script`];\n\nexport function isScriptFilename(f: string): boolean {\n return validScriptExtensions.some((ext) => f.endsWith(ext));\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 { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver } from \"../utils/JSONReviver\";\nimport { NetscriptContext } from \"../Netscript/APIWrapper\";\nimport { helpers } from \"../Netscript/NetscriptHelpers\";\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 ctx?: NetscriptContext,\n): boolean {\n if (!(stock instanceof Stock)) {\n if (ctx) {\n helpers.log(ctx, () => `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 (ctx) {\n helpers.log(ctx, () => `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, ctx?: NetscriptContext): boolean {\n if (StockMarket[\"Orders\"] == null) return false;\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 (ctx) helpers.log(ctx, () => \"Successfully cancelled order: \" + orderTxt);\n return true;\n }\n }\n if (ctx) helpers.log(ctx, () => \"Failed to cancel order: \" + orderTxt);\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 StockMarket = JSON.parse(saveString, Reviver);\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)) delete StockMarket[stk];\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)) continue;\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)) continue;\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) return;\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) stockMarketCycle();\n\n const v = Math.random();\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) continue;\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","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","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 { 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\";\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","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 }\n label={\n {tooltip}}>\n {text}\n \n }\n />\n \n >\n );\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(ws: WorkerScript): void {\n killNetscriptDelay(ws);\n if (typeof ws.atExit === \"function\") {\n try {\n ws.env.stopFlag = false;\n ws.atExit();\n } catch (e: unknown) {\n let message = e instanceof ScriptDeath ? e.errorMessage : String(e);\n message = message.replace(/.*\\|DELIMITER\\|/, \"\");\n dialogBoxCreate(\n `Error trying to call atExit for script ${[ws.name, ...ws.args].join(\" \")} on ${ws.hostname}\\n ${message}`,\n );\n console.error(e);\n }\n ws.atExit = undefined;\n }\n ws.env.stopFlag = true;\n removeWorkerScript(ws);\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","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) and level 3 permanently unlocks the full API. This Source-File also increases\n 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);\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 Level 1: 16x\n \n Level 2: 4x\n \n Level 3: 1x\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 and grafting technologies. 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 Grafting technology allows you to graft Augmentations, which is an alternative way of installing Augmentations.\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, and the Grafting API in other BitNodes.\n Each level of this 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","/**\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 { 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","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, ResizeCallbackData } 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 { 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 LogBoxUIEvent {\n pid: number;\n data: T;\n}\n\ninterface LogBoxPositionData {\n x: number;\n y: number;\n}\n\nexport const LogBoxPositionEvents = new EventEmitter<[LogBoxUIEvent]>();\n\ninterface LogBoxResizeData {\n w: number;\n h: number;\n}\n\nexport const LogBoxSizeEvents = new EventEmitter<[LogBoxUIEvent]>();\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 [size, setSize] = useState<[number, number]>([500, 500]);\n const [minimized, setMinimized] = useState(false);\n function rerender(): void {\n setRerender((old) => !old);\n }\n\n const onResize = (e: React.SyntheticEvent, { size }: ResizeCallbackData) => {\n setSize([size.width, size.height]);\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 const setPosition = ({ x, y }: LogBoxPositionData) => {\n const node = rootRef?.current;\n if (!node) return;\n const state = node.state as { x: number; y: number };\n state.x = x;\n state.y = y;\n };\n\n // Listen to Logbox positioning events.\n useEffect(\n () =>\n LogBoxPositionEvents.subscribe((e) => {\n if (e.pid !== props.script.pid) return;\n setPosition(e.data);\n }),\n [],\n );\n\n // Listen to Logbox resizing events.\n useEffect(\n () =>\n LogBoxSizeEvents.subscribe((e) => {\n if (e.pid !== props.script.pid) return;\n setSize([e.data.w, e.data.h]);\n }),\n [],\n );\n\n // initial position if 40%/30%\n useEffect(() => setPosition({ x: window.innerWidth * 0.4, y: window.innerHeight * 0.3 }), []);\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(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\", onWindowResize);\n return () => {\n window.removeEventListener(\"resize\", onWindowResize);\n };\n }, []);\n\n const onWindowResize = debounce((): void => {\n const node = draggableRef?.current;\n if (!node) return;\n\n if (!isOnScreen(node)) {\n setPosition({ x: 0, y: 0 });\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 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","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","/**\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 { 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","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 { ScriptArg } from \"./Netscript/ScriptArg\";\nimport { helpers } from \"./Netscript/NetscriptHelpers\";\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(workerScript: WorkerScript): Promise {\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\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 killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n function wrapNS1Layer(int: Interpreter, intLayer: unknown, path: string[] = []) {\n //TODO: Better typing layers of interpreter scope and ns\n interface BasicObject {\n [key: string]: any;\n }\n const nsLayer = path.reduce((prev, newPath) => prev[newPath], workerScript.env.vars as BasicObject);\n for (const [name, entry] of Object.entries(nsLayer)) {\n if (typeof entry === \"function\") {\n // Async functions need to be wrapped. See JS-Interpreter documentation\n const wrapper = async (...args: unknown[]) => {\n // This async wrapper is sent a resolver function as an extra arg.\n // See JSInterpreter.js:3209\n try {\n const callback = args.pop() as (value: unknown) => void;\n const result = await entry(...args.map(int.pseudoToNative));\n return callback(int.nativeToPseudo(result));\n } catch (e: unknown) {\n // TODO: Unify error handling, this was stolen from previous async handler\n if (typeof e === \"string\") {\n console.error(e);\n const errorTextArray = e.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 killWorkerScript(workerScript);\n return;\n }\n }\n };\n int.setProperty(intLayer, name, int.createAsyncFunction(wrapper));\n } else if (Array.isArray(entry) || typeof entry !== \"object\") {\n // args, strings on enums, etc\n int.setProperty(intLayer, name, int.nativeToPseudo(entry));\n } else {\n // new object layer, e.g. bladeburner\n int.setProperty(intLayer, name, int.nativeToPseudo({}));\n wrapNS1Layer(int, (intLayer as BasicObject).properties[name], [...path, name]);\n }\n }\n }\n\n let interpreter: Interpreter;\n try {\n interpreter = new Interpreter(codeWithImports, wrapNS1Layer, codeLineOffset);\n } catch (e: unknown) {\n dialogBoxCreate(\"Syntax ERROR in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\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(runningScript: RunningScript, server: BaseServer, parent?: WorkerScript): number {\n if (createAndAddWorkerScript(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(runningScriptObj: RunningScript, server: BaseServer, parent?: WorkerScript): 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(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.env.stopFlag = true;\n // On natural death, the earnings are transfered to the parent if it still exists.\n if (parent !== undefined && !parent.env.stopFlag) {\n parent.scriptRef.onlineExpGained += runningScriptObj.onlineExpGained;\n parent.scriptRef.onlineMoneyMade += runningScriptObj.onlineMoneyMade;\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(): 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(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 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(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","/**\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 { 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\";\nimport { NetscriptContext } from \"../Netscript/APIWrapper\";\nimport { helpers } from \"../Netscript/NetscriptHelpers\";\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 {NetscriptContext} ctx - 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 ctx: NetscriptContext | 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 (ctx) {\n helpers.log(ctx, () => `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 (ctx) {\n helpers.log(\n ctx,\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 (ctx) {\n helpers.log(\n ctx,\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 (ctx) {\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 helpers.log(ctx, () => 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 {NetscriptContext} ctx - 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 ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Sanitize/Validate arguments\n if (stock == null || shares < 0 || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `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 (ctx) {\n ctx.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 (ctx) {\n const resultTxt =\n `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`;\n helpers.log(ctx, () => 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 {NetscriptContext} ctx - 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 ctx: NetscriptContext | 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 (ctx) {\n helpers.log(ctx, () => `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 (ctx) {\n helpers.log(\n ctx,\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 (ctx) {\n helpers.log(\n ctx,\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 (ctx) {\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 helpers.log(ctx, () => 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 {NetscriptContext} ctx - 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 ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n if (stock == null || isNaN(shares) || shares < 0) {\n if (ctx) {\n helpers.log(ctx, () => `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 (ctx) {\n helpers.log(\n ctx,\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 (ctx) {\n ctx.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 (ctx) {\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 helpers.log(ctx, () => 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 { 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","export class RFAMessage {\n jsonrpc = \"2.0\"; // Transmits version of JSON-RPC. Compliance maybe allows some funky interaction with external tools?\n public method?: string; // Is defined when it's a request/notification, otherwise undefined\n public result?: ResultType; // Is defined when it's a response, otherwise undefined\n public params?: FileMetadata; // Optional parameters to method\n public error?: string; // Only defined on error\n public id?: number; // ID to keep track of request -> response interaction, undefined with notifications, defined with request/response\n\n constructor(obj: { method?: string; result?: ResultType; params?: FileMetadata; error?: string; id?: number } = {}) {\n this.method = obj.method;\n this.result = obj.result;\n this.params = obj.params;\n this.error = obj.error;\n this.id = obj.id;\n }\n}\n\ntype ResultType = string | number | Array | Array;\ntype FileMetadata = FileData | FileContent | FileLocation | FileServer;\n\nexport interface FileData {\n filename: string;\n content: string;\n server: string;\n}\n\nexport interface FileContent {\n filename: string;\n content: string;\n}\n\nexport interface FileLocation {\n filename: string;\n server: string;\n}\n\nexport interface FileServer {\n server: string;\n}\n\nexport function isFileData(p: unknown): p is FileData {\n const pf = p as FileData;\n return typeof pf.server === \"string\" && typeof pf.filename === \"string\" && typeof pf.content === \"string\";\n}\n\nexport function isFileLocation(p: unknown): p is FileLocation {\n const pf = p as FileLocation;\n return typeof pf.server === \"string\" && typeof pf.filename === \"string\";\n}\n\nexport function isFileContent(p: unknown): p is FileContent {\n const pf = p as FileContent;\n return typeof pf.filename === \"string\" && typeof pf.content === \"string\";\n}\n\nexport function isFileServer(p: unknown): p is FileServer {\n const pf = p as FileServer;\n return typeof pf.server === \"string\";\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 { 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","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, person: IPerson, 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 = action.getActionTime(this, person);\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, person, 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, person, 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, person, 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, person, 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 windowSize: 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 moveTail: 0,\n resizeTail: 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 mockServer: 0,\n mockPlayer: 0,\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","/**\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","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 // Used to deconflict multiple simultaneous compilations.\n queueCompile = false;\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.server = server; // hostname of server this script is on\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 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 updateRamUsage(player: IPlayer, otherScripts: Script[]): void {\n const res = 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","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 { 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\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\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: () =>\n Object.values(Factions).some(\n (f) => f.favor >= Math.floor(CONSTANTS.BaseFavorToDonate * BitNodeMultipliers.RepToDonateToFaction),\n ),\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","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 const actionIdent = player.bladeburner.getActionIdFromTypeAndName(this.actionType, this.actionName);\n if (!actionIdent) throw new Error(`Error getting ${this.actionName} action`);\n if (this.actionType === \"Contracts\") {\n const action = player.bladeburner.getActionObject(actionIdent);\n if (!action) throw new Error(`Error getting ${this.actionName} action object`);\n if (action.count <= 0) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n\n while (this.cyclesWorked > this.cyclesNeeded(player, sleeve)) {\n if (this.actionType === \"Contracts\") {\n const action = player.bladeburner.getActionObject(actionIdent);\n if (!action) throw new Error(`Error getting ${this.actionName} action object`);\n if (action.count <= 0) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n const retValue = 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 player.gainMoney(retValue.money, \"sleeves\");\n player.gainStats(retValue);\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","export enum GameOptionsTab {\n SYSTEM,\n INTERFACE,\n GAMEPLAY,\n MISC,\n REMOTE_API,\n}\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 // Name of crime as it appears on work screen: \"You are attempting...\"\n workName = \"\";\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 workName = \"\",\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.workName = workName;\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","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\";\nimport { BitNodeMultipliers } from \"../../../BitNode/BitNodeMultipliers\";\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 (\n repFormulas[this.factionWorkType](sleeve, faction.favor) *\n sleeve.shockBonus() *\n BitNodeMultipliers.FactionWorkRepGain\n );\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 { 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 consumed 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 consumed 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","// 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 if (!this.singularity) {\n dialogBoxCreate(\n <>\n You finished working for {this.companyName}\n \n You have reputation with them.\n >,\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 { Paper, Typography } from \"@mui/material\";\nimport React from \"react\";\n\ninterface IProps {\n children: React.ReactNode;\n title: string;\n}\n\nexport const GameOptionsPage = (props: IProps): React.ReactElement => {\n return (\n \n {props.title}\n {props.children}\n \n );\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 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","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\";\nimport { BitNodeMultipliers } from \"../../../BitNode/BitNodeMultipliers\";\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 * BitNodeMultipliers.CrimeMoney,\n hackExp: crime.hacking_exp * BitNodeMultipliers.CrimeExpGain,\n strExp: crime.strength_exp * BitNodeMultipliers.CrimeExpGain,\n defExp: crime.defense_exp * BitNodeMultipliers.CrimeExpGain,\n dexExp: crime.dexterity_exp * BitNodeMultipliers.CrimeExpGain,\n agiExp: crime.agility_exp * BitNodeMultipliers.CrimeExpGain,\n chaExp: crime.charisma_exp * BitNodeMultipliers.CrimeExpGain,\n intExp: crime.intelligence_exp * BitNodeMultipliers.CrimeExpGain,\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 crimeType: this.crimeType,\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","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","// 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) and level 3 permanently unlocks the full API. This Source-File also increases your charisma and company\n 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 Level 1: 16x\n \n Level 2: 4x\n \n Level 3: 1x\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 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