{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Player.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/ui/React/DialogBox.tsx","webpack:///./src/Locations/data/CityNames.ts","webpack:///./src/BitNode/BitNodeMultipliers.ts","webpack:///./src/ui/React/Money.tsx","webpack:///./src/utils/JSONReviver.ts","webpack:///./src/Server/AllServers.ts","webpack:///./src/utils/StringHelperFunctions.ts","webpack:///./src/ui/Router.ts","webpack:///./src/ui/Context.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/Augmentation/Augmentation.tsx","webpack:///./src/ui/React/Modal.tsx","webpack:///./src/Corporation/data/Constants.ts","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/Hacknet/HacknetHelpers.tsx","webpack:///./src/Corporation/Actions.ts","webpack:///./src/Bladeburner/data/Constants.ts","webpack:///./src/Bladeburner/data/BlackOperationNames.ts","webpack:///./src/PersonObjects/Player/PlayerObjectGeneralMethods.ts","webpack:///./src/Programs/Programs.ts","webpack:///./src/CotMG/FragmentType.ts","webpack:///./src/Literature/data/LiteratureNames.ts","webpack:///./src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts","webpack:///./src/ui/React/StatsRow.tsx","webpack:///./src/Augmentation/StaticAugmentations.ts","webpack:///./src/StockMarket/data/PositionTypes.ts","webpack:///./src/ui/React/Table.tsx","webpack:///./src/Company/Companies.ts","webpack:///./src/Gang/AllGangs.ts","webpack:///./src/Terminal/DirectoryHelpers.ts","webpack:///./src/Terminal.ts","webpack:///./src/Casino/utils.ts","webpack:///./src/Crime/Crimes.ts","webpack:///./src/Server/data/SpecialServers.ts","webpack:///./src/ui/GameRoot.tsx","webpack:///./src/Work/ClassWork.tsx","webpack:///./src/Hacknet/HacknetServer.ts","webpack:///./src/ui/React/Snackbar.tsx","webpack:///./src/StockMarket/data/StockSymbols.ts","webpack:///./src/Script/isScriptFilename.ts","webpack:///./src/Hacking.ts","webpack:///./src/Work/data/FactionWorkType.ts","webpack:///./src/CotMG/Helper.tsx","webpack:///./src/StockMarket/StockMarket.tsx","webpack:///./src/Company/CompanyPositions.ts","webpack:///./src/Faction/FactionHelpers.tsx","webpack:///./src/SaveObject.tsx","webpack:///./src/Exploits/Exploit.ts","webpack:///./src/Augmentation/AugmentationHelpers.tsx","webpack:///./src/NetscriptEvaluator.ts","webpack:///./src/CodingContracts.ts","webpack:///./src/StockMarket/data/OrderTypes.ts","webpack:///./src/ui/React/MoneyRate.tsx","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/Corporation/data/BaseResearchTree.ts","webpack:///./src/Server/ServerHelpers.ts","webpack:///./src/Corporation/ui/MoneyCost.tsx","webpack:///./src/Bladeburner/data/SkillNames.ts","webpack:///./src/ui/React/Reputation.tsx","webpack:///./src/utils/WorkType.ts","webpack:///./src/Gang/ui/Context.ts","webpack:///./src/Netscript/killWorkerScript.ts","webpack:///./src/Work/WorkStats.ts","webpack:///./src/utils/helpers/isString.ts","webpack:///./src/ui/React/OptionSwitch.tsx","webpack:///./src/BitNode/BitNode.tsx","webpack:///./src/Work/Work.ts","webpack:///./src/StockMarket/Stock.ts","webpack:///./src/Locations/Cities.ts","webpack:///./src/Hacknet/formulas/HacknetServers.ts","webpack:///./src/Alias.ts","webpack:///./src/Locations/Locations.ts","webpack:///./src/Literature/Literature.ts","webpack:///./src/ui/React/CopyableText.tsx","webpack:///./src/Themes/ui/Theme.tsx","webpack:///./src/Settings/SettingEnums.ts","webpack:///./src/ui/React/LogBoxManager.tsx","webpack:///./src/Corporation/MaterialSizes.ts","webpack:///./src/PersonObjects/formulas/skill.ts","webpack:///./src/Gang/data/upgrades.ts","webpack:///./src/Faction/Faction.ts","webpack:///./src/Gang/data/Constants.ts","webpack:///./src/Netscript/ScriptDeath.ts","webpack:///./src/NetscriptWorker.ts","webpack:///./src/Netscript/WorkerScripts.ts","webpack:///./src/ui/React/StatsTable.tsx","webpack:///./src/Corporation/Material.ts","webpack:///./src/Gang/formulas/formulas.ts","webpack:///./src/Infiltration/ui/GameTimer.tsx","webpack:///./src/Bladeburner/Bladeburner.tsx","webpack:///./src/Hacknet/formulas/HacknetNodes.ts","webpack:///./src/Casino/Game.tsx","webpack:///./src/CotMG/data/Shapes.ts","webpack:///./src/Infiltration/ui/Difficulty.ts","webpack:///./src/Infiltration/ui/KeyHandler.tsx","webpack:///./src/Work/FactionWork.tsx","webpack:///./src/ui/React/Hashes.tsx","webpack:///./src/Hacknet/HacknetNode.ts","webpack:///./src/Server/ServerPurchases.ts","webpack:///./src/TextFile.ts","webpack:///./src/Netscript/RamCostGenerator.ts","webpack:///./src/Bladeburner/Skills.ts","webpack:///./src/StockMarket/StockMarketHelpers.ts","webpack:///./src/Gang/GangMemberUpgrades.ts","webpack:///./src/PersonObjects/ITaskTracker.ts","webpack:///./src/StockMarket/StockMarketCosts.ts","webpack:///./src/ui/React/NumberInput.tsx","webpack:///./src/PersonObjects/Multipliers.ts","webpack:///./src/Hacknet/HashUpgrades.ts","webpack:///./src/Gang/GangMemberTasks.ts","webpack:///./src/Corporation/Warehouse.ts","webpack:///./src/StockMarket/BuyingAndSelling.tsx","webpack:///./src/Terminal/ITerminal.tsx","webpack:///./src/Bladeburner/Skill.ts","webpack:///./src/ui/React/ConfirmationModal.tsx","webpack:///./src/utils/helpers/createProgressBarText.ts","webpack:///./src/hash/hash.ts","webpack:///./src/Company/Company.ts","webpack:///./src/Script/Script.ts","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/MathJaxWrapper.tsx","webpack:///./src/utils/helpers/exceptionAlert.ts","webpack:///./src/Corporation/data/CorporationUnlockUpgrades.ts","webpack:///./src/PersonObjects/Grafting/GraftingHelpers.ts","webpack:///./src/Bladeburner/BlackOperations.tsx","webpack:///./src/CotMG/ActiveFragment.ts","webpack:///./src/Crime/Crime.ts","webpack:///./src/utils/helpers/arrayToString.ts","webpack:///./src/PersonObjects/formulas/reputation.ts","webpack:///./src/GameOptions/GameOptionsTab.ts","webpack:///./src/ui/React/HashRate.tsx","webpack:///./src/Message/Message.ts","webpack:///./src/Locations/ui/ApplyToJobButton.tsx","webpack:///./src/Corporation/ResearchMap.ts","webpack:///./src/Netscript/WorkerScriptStartStopEventEmitter.ts","webpack:///./src/Electron.tsx","webpack:///./src/Work/CreateProgramWork.ts","webpack:///./src/Achievements/Achievements.ts","webpack:///./src/ui/React/CharacterOverview.tsx","webpack:///./src/utils/helpers/addOffset.ts","webpack:///./src/DarkWeb/DarkWebItem.ts","webpack:///./src/Augmentation/PlayerOwnedAugmentation.ts","webpack:///./src/Casino/RNG.ts","webpack:///./src/Work/CompanyWork.tsx","webpack:///./src/utils/helpers/compareArrays.ts","webpack:///./src/ui/React/Favor.tsx","webpack:///./src/Work/formulas/Class.ts","webpack:///./src/PersonObjects/Sleeve/Sleeve.ts","webpack:///./src/Script/RamCalculationErrorCodes.ts","webpack:///./src/Terminal/TerminalEvents.ts","webpack:///./src/StockMarket/OrderProcessing.tsx","webpack:///./src/Themes/Themes.ts","webpack:///./src/ui/React/AlertManager.tsx","webpack:///./src/utils/IPAddress.ts","webpack:///./src/PersonObjects/formulas/intelligence.ts","webpack:///./src/Netscript/RecentScripts.ts","webpack:///./src/db.tsx","webpack:///./src/Message/MessageHelpers.ts","webpack:///./src/Faction/formulas/favor.ts","webpack:///./src/CodingContractGenerator.ts","webpack:///./src/ExportBonus.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/Company/CompanyPosition.ts","webpack:///./src/utils/helpers/checkEnum.ts","webpack:///./src/SourceFile/SourceFiles.tsx","webpack:///./src/Bladeburner/ui/StartButton.tsx","webpack:///./src/ui/React/CorruptableText.tsx","webpack:///./src/Work/GraftingWork.tsx","webpack:///./src/utils/helpers/formatTime.ts","webpack:///./src/Faction/FactionInfo.tsx","webpack:///./src/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/ReputationRate.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/Hospital/Hospital.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/ui/React/Progress.tsx","webpack:///./src/RedPill.tsx","webpack:///./src/ui/React/RecoveryRoot.tsx","webpack:///./src/NetworkShare/Share.tsx","webpack:///./src/Netscript/WorkerScript.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/Script/RunningScript.ts","webpack:///./src/Literature/LiteratureHelpers.ts","webpack:///./src/DarkWeb/DarkWeb.tsx","webpack:///./src/Hacking/netscriptCanHack.ts","webpack:///./src/Infiltration/formulas/game.ts","webpack:///./src/Terminal/Parser.ts","webpack:///./src/ui/React/CinematicText.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveCovenantPurchases.tsx","webpack:///./src/Script/RamCalculations.ts","webpack:///./src/utils/helpers/roundToTwo.ts","webpack:///./src/Netscript/Pid.ts","webpack:///./src/NetscriptFunctions.ts","webpack:///./src/StockMarket/PlayerInfluencing.ts","webpack:///./src/Gang/Gang.ts","webpack:///./src/Faction/formulas/donation.ts","webpack:///./src/Company/GetJobRequirementText.ts","webpack:///./src/Terminal/HelpText.ts","webpack:///./src/utils/ErrorHelper.ts","webpack:///./src/utils/helpers/getRandomByte.ts","webpack:///./src/Bladeburner/data/Growths.ts","webpack:///./src/Locations/createCityMap.ts","webpack:///./src/GameOptions/ui/GameOptionsPage.tsx","webpack:///./src/Casino/CardDeck/Hand.ts","webpack:///./src/StockMarket/ui/StockTickerTxButton.tsx","webpack:///./src/CotMG/ui/DummyGrid.tsx","webpack:///./src/Server/BaseServer.ts","webpack:///./src/ui/React/CodingContractModal.tsx","webpack:///./src/BitNode/ui/BitFlumeModal.tsx","webpack:///./src/PersonObjects/Player/PlayerObject.ts","webpack:///./src/Faction/ui/InvitationModal.tsx","webpack:///./src/ThirdParty/JSInterpreter.js","webpack:///./src/Server/formulas/grow.ts","webpack:///./src/ui/React/ANSIITypography.tsx","webpack:///./src/Gang/GangMember.ts","webpack:///./src/PersonObjects/Sleeve/SleeveHelpers.ts","webpack:///./src/CotMG/StaneksGiftEvents.ts","webpack:///./src/Locations/data/LocationsMetadata.ts","webpack:///./src/Terminal/commands/download.ts","webpack:///./src/utils/V2Modal.tsx","webpack:///./src/SourceFile/PlayerOwnedSourceFile.ts","webpack:///./src/Bladeburner/data/Icons.tsx","webpack:///./src/Bladeburner/ui/ActionLevel.tsx","webpack:///./src/Bladeburner/ui/Autolevel.tsx","webpack:///./src/Bladeburner/ui/TeamSizeButton.tsx","webpack:///./src/PersonObjects/Grafting/ui/GraftingRoot.tsx","webpack:///./src/Infiltration/ui/BlinkingCursor.tsx","webpack:///./src/Themes/ui/StyleEditorButton.tsx","webpack:///./src/Themes/ui/ThemeEditorButton.tsx","webpack:///./src/Themes/ui/ThemeCollaborate.tsx","webpack:///./src/ui/React/DeleteGameButton.tsx","webpack:///./src/ui/React/SoftResetButton.tsx","webpack:///./src/Augmentation/ui/PurchasableAugmentations.tsx","webpack:///./src/Locations/ui/TravelAgencyRoot.tsx","webpack:///./src/ScriptEditor/ui/ScriptEditorRoot.tsx","webpack:///./src/Terminal/DirectoryServerHelpers.ts","webpack:///./src/NetscriptJSEvaluator.ts","webpack:///./src/NetscriptFunctions/Flags.ts","webpack:///./src/NetscriptFunctions/toNative.ts","webpack:///./src/ui/React/TablePaginationActionsAll.tsx","webpack:///./src/BitNode/ui/BitnodeMultipliersDescription.tsx","webpack:///./src/CotMG/ui/Cell.tsx","webpack:///./src/CotMG/ui/Grid.tsx","webpack:///./src/Script/RunningScriptHelpers.ts","webpack:///./src/Terminal/commands/common/editor.ts","webpack:///./src/utils/HammingCodeTools.ts","webpack:///./src/Bladeburner/Contract.ts","webpack:///./src/Bladeburner/data/Help.ts","webpack:///./src/Corporation/ResearchTree.ts","webpack:///./src/StockMarket/StockMarketConstants.ts","webpack:///./src/CotMG/data/Constants.ts","webpack:///./src/utils/v1APIBreak.ts","webpack:///./src/Company/GetNextCompanyPosition.ts","webpack:///./src/PersonObjects/Player/PlayerObjectBladeburnerMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectCorporationMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectWorkMethods.ts","webpack:///./src/engine.tsx","webpack:///./src/Themes/data/index.ts","webpack:///./src/ui/LoadingScreen.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectAugmentationMethods.ts","webpack:///./src/utils/helpers/isValidNumber.ts","webpack:///./src/StockMarket/Order.ts","webpack:///./src/CotMG/StaneksGift.ts","webpack:///./src/Locations/Location.ts","webpack:///./src/PersonObjects/Sleeve/ui/StatsElement.tsx","webpack:///./src/ui/React/ServerDropdown.tsx","webpack:///./src/Casino/Blackjack.tsx","webpack:///./src/Casino/CardDeck/ReactCard.tsx","webpack:///./src/Milestones/Milestones.ts","webpack:///./src/StockMarket/data/TickerHeaderFormatData.ts","webpack:///./src/Achievements/AchievementEntry.tsx","webpack:///./src/ThirdParty/colorUtils.ts","webpack:///./src/Themes/data/default/index.ts","webpack:///./src/Themes/data/default-lite/index.ts","webpack:///./src/Themes/data/monokai-ish/index.ts","webpack:///./src/Themes/data/warmer/index.ts","webpack:///./src/Themes/data/dark-plus/index.ts","webpack:///./src/Themes/data/mayukai-dark/index.ts","webpack:///./src/Themes/data/purple/index.ts","webpack:///./src/Themes/data/smooth-green/index.ts","webpack:///./src/Themes/data/dracula/index.ts","webpack:///./src/Themes/data/dark-blue/index.ts","webpack:///./src/Themes/data/discord-like/index.ts","webpack:///./src/Themes/data/one-dark/index.ts","webpack:///./src/Themes/data/muted-gold-blue/index.ts","webpack:///./src/Themes/data/light/index.ts","webpack:///./src/Themes/data/default/screenshot.png","webpack:///./src/Themes/data/default-lite/screenshot.png","webpack:///./src/Themes/data/monokai-ish/screenshot.png","webpack:///./src/Themes/data/warmer/screenshot.png","webpack:///./src/Themes/data/dark-plus/screenshot.png","webpack:///./src/Themes/data/mayukai-dark/screenshot.png","webpack:///./src/Themes/data/purple/screenshot.png","webpack:///./src/Themes/data/smooth-green/screenshot.png","webpack:///./src/Themes/data/dracula/screenshot.png","webpack:///./src/Themes/data/dark-blue/screenshot.png","webpack:///./src/Themes/data/discord-like/screenshot.png","webpack:///./src/Themes/data/one-dark/screenshot.png","webpack:///./src/Themes/data/muted-gold-blue/screenshot.png","webpack:///./src/Themes/data/light/screenshot.png","webpack:///./src/Terminal/Terminal.ts","webpack:///./src/data/codingcontracttypes.ts","webpack:///./src/utils/Heap.ts","webpack:///./src/utils/helpers/createRandomString.ts","webpack:///./src/Programs/Program.ts","webpack:///./src/Programs/data/ProgramsMetadata.ts","webpack:///./src/utils/helpers/isValidIPAddress.ts","webpack:///./src/utils/helpers/getTimestamp.ts","webpack:///./src/NetworkShare/formulas/share.tsx","webpack:///./src/Work/formulas/Faction.ts","webpack:///./src/Company/data/CompaniesMetadata.ts","webpack:///./src/Corporation/Research.ts","webpack:///./src/Corporation/data/ResearchMetadata.ts","webpack:///./src/Hacknet/HashUpgrade.ts","webpack:///./src/Hacknet/data/HashUpgradesMetadata.tsx","webpack:///./src/Netscript/Environment.ts","webpack:///./src/utils/helpers/isPowerOfTwo.ts","webpack:///./src/StockMarket/data/InitStockMetadata.ts","webpack:///./src/NetscriptFunctions/Gang.ts","webpack:///./src/Gang/data/tasks.ts","webpack:///./src/Gang/GangMemberUpgrade.ts","webpack:///./src/Gang/data/power.ts","webpack:///./src/NetscriptFunctions/Sleeve.ts","webpack:///./src/NetscriptFunctions/Extra.ts","webpack:///./src/NetscriptFunctions/Hacknet.ts","webpack:///./src/NetscriptFunctions/Stanek.ts","webpack:///./src/CotMG/formulas/effect.ts","webpack:///./src/NetscriptFunctions/Infiltration.ts","webpack:///./src/NetscriptFunctions/UserInterface.ts","webpack:///./src/NetscriptFunctions/Bladeburner.ts","webpack:///./src/NetscriptFunctions/CodingContract.ts","webpack:///./src/utils/helpers/is2DArray.ts","webpack:///./src/NetscriptFunctions/Corporation.ts","webpack:///./src/Corporation/Industry.ts","webpack:///./src/utils/calculateEffectWithFactors.ts","webpack:///./src/Corporation/Employee.ts","webpack:///./src/Corporation/ProductRatingWeights.ts","webpack:///./src/NetscriptFunctions/Formulas.ts","webpack:///./src/NetscriptFunctions/StockMarket.ts","webpack:///./src/NetscriptFunctions/Grafting.ts","webpack:///./src/utils/v2APIBreak.ts","webpack:///./src/ui/InteractiveTutorial/InteractiveTutorialRoot.tsx","webpack:///./src/ui/InteractiveTutorial/NSSelection.tsx","webpack:///./src/ui/React/Overview.tsx","webpack:///./src/Sidebar/ui/SidebarRoot.tsx","webpack:///./src/Programs/ProgramHelpers.ts","webpack:///./src/Augmentation/ui/AugmentationsRoot.tsx","webpack:///./src/Augmentation/ui/InstalledAugmentations.tsx","webpack:///./src/Augmentation/ui/PlayerMultipliers.tsx","webpack:///./src/Augmentation/ui/PurchasedAugmentations.tsx","webpack:///./src/Augmentation/ui/SourceFiles.tsx","webpack:///./src/DevMenu.tsx","webpack:///./src/DevMenu/ui/General.tsx","webpack:///./src/DevMenu/ui/Stats.tsx","webpack:///./src/DevMenu/ui/Factions.tsx","webpack:///./src/DevMenu/ui/Augmentations.tsx","webpack:///./src/DevMenu/ui/SourceFiles.tsx","webpack:///./src/DevMenu/ui/Programs.tsx","webpack:///./src/DevMenu/ui/Servers.tsx","webpack:///./src/DevMenu/ui/Companies.tsx","webpack:///./src/DevMenu/ui/Bladeburner.tsx","webpack:///./src/DevMenu/ui/Gang.tsx","webpack:///./src/DevMenu/ui/Corporation.tsx","webpack:///./src/DevMenu/ui/CodingContracts.tsx","webpack:///./src/DevMenu/ui/StockMarket.tsx","webpack:///./src/DevMenu/ui/Sleeves.tsx","webpack:///./src/DevMenu/ui/Stanek.tsx","webpack:///./src/DevMenu/ui/TimeSkip.tsx","webpack:///./src/DevMenu/ui/SaveFile.tsx","webpack:///./src/DevMenu/ui/Achievements.tsx","webpack:///./src/DevMenu/ui/Entropy.tsx","webpack:///./src/Bladeburner/ui/BladeburnerRoot.tsx","webpack:///./src/Bladeburner/ui/Stats.tsx","webpack:///./src/Bladeburner/ui/TravelModal.tsx","webpack:///./src/Bladeburner/ui/Console.tsx","webpack:///./src/Bladeburner/ui/AllPages.tsx","webpack:///./src/Bladeburner/ui/GeneralActionPage.tsx","webpack:///./src/Bladeburner/ui/GeneralActionList.tsx","webpack:///./src/Bladeburner/ui/GeneralActionElem.tsx","webpack:///./src/Bladeburner/data/GeneralActions.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/Work/formulas/Company.ts","webpack:///./src/Company/data/CompanyPositionsMetadata.ts","webpack:///./src/Gang/ui/TaskSelector.tsx","webpack:///./src/Gang/ui/TaskDescription.tsx","webpack:///./src/Gang/ui/AscensionModal.tsx","webpack:///./src/Gang/ui/RecruitButton.tsx","webpack:///./src/Gang/ui/RecruitModal.tsx","webpack:///./src/Gang/ui/TerritorySubpage.tsx","webpack:///./src/Gang/ui/TerritoryInfoModal.tsx","webpack:///./src/Gang/ui/EquipmentsSubpage.tsx","webpack:///./src/Corporation/ui/CorporationRoot.tsx","webpack:///./src/Corporation/ui/MainPanel.tsx","webpack:///./src/Corporation/ui/CityTabs.tsx","webpack:///./src/Corporation/ui/Industry.tsx","webpack:///./src/Corporation/ui/IndustryOffice.tsx","webpack:///./src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx","webpack:///./src/Corporation/ui/modals/ThrowPartyModal.tsx","webpack:///./src/Corporation/ui/IndustryOverview.tsx","webpack:///./src/Corporation/ui/modals/MakeProductModal.tsx","webpack:///./src/Corporation/ui/modals/ResearchModal.tsx","webpack:///./src/Corporation/ui/IndustryWarehouse.tsx","webpack:///./src/Corporation/ui/modals/SmartSupplyModal.tsx","webpack:///./src/Corporation/ui/ProductElem.tsx","webpack:///./src/Corporation/ui/modals/DiscontinueProductModal.tsx","webpack:///./src/Corporation/ui/modals/LimitProductProductionModal.tsx","webpack:///./src/Corporation/ui/modals/SellProductModal.tsx","webpack:///./src/Corporation/ui/modals/ProductMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/CancelProductModal.tsx","webpack:///./src/Corporation/ui/MaterialElem.tsx","webpack:///./src/Corporation/ui/modals/ExportModal.tsx","webpack:///./src/Corporation/ui/modals/MaterialMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/SellMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/PurchaseMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/LimitMaterialProductionModal.tsx","webpack:///./src/Corporation/ui/IndustryProductEquation.tsx","webpack:///./src/Corporation/ui/ExpandNewCity.tsx","webpack:///./src/Corporation/ui/ExpandIndustryTab.tsx","webpack:///./src/Corporation/ui/Overview.tsx","webpack:///./src/Corporation/ui/LevelableUpgrade.tsx","webpack:///./src/Corporation/ui/UnlockUpgrade.tsx","webpack:///./src/Corporation/ui/modals/BribeFactionModal.tsx","webpack:///./src/Corporation/ui/modals/SellSharesModal.tsx","webpack:///./src/Corporation/ui/modals/BuybackSharesModal.tsx","webpack:///./src/Corporation/ui/modals/IssueDividendsModal.tsx","webpack:///./src/Corporation/ui/modals/IssueNewSharesModal.tsx","webpack:///./src/Corporation/ui/modals/FindInvestorsModal.tsx","webpack:///./src/Corporation/ui/modals/GoPublicModal.tsx","webpack:///./src/Infiltration/ui/InfiltrationRoot.tsx","webpack:///./src/Infiltration/ui/Game.tsx","webpack:///./src/Infiltration/ui/BackwardGame.tsx","webpack:///./src/Infiltration/ui/BracketGame.tsx","webpack:///./src/Infiltration/ui/BribeGame.tsx","webpack:///./src/Infiltration/ui/CheatCodeGame.tsx","webpack:///./src/Infiltration/ui/Countdown.tsx","webpack:///./src/Infiltration/ui/Cyberpunk2077Game.tsx","webpack:///./src/Infiltration/ui/MinesweeperGame.tsx","webpack:///./src/Infiltration/ui/SlashGame.tsx","webpack:///./src/Infiltration/ui/Victory.tsx","webpack:///./src/Infiltration/ui/WireCuttingGame.tsx","webpack:///./src/Infiltration/ui/Intro.tsx","webpack:///./src/ui/WorkInProgressRoot.tsx","webpack:///./src/GameOptions/ui/GameOptionsRoot.tsx","webpack:///./src/GameOptions/ui/CurrentOptionsPage.tsx","webpack:///./src/GameOptions/ui/GameOptionsSidebar.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveElem.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreEarningsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveAugmentationsModal.tsx","webpack:///./src/Augmentation/ui/PurchaseAugmentationModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TaskSelector.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TravelModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/FAQModal.tsx","webpack:///./src/Hacknet/ui/HacknetRoot.tsx","webpack:///./src/Hacknet/ui/GeneralInfo.tsx","webpack:///./src/Hacknet/ui/HacknetNodeElem.tsx","webpack:///./src/Hacknet/ui/HacknetServerElem.tsx","webpack:///./src/Hacknet/ui/HashUpgradeModal.tsx","webpack:///./src/Hacknet/ui/HacknetUpgradeElem.tsx","webpack:///./src/Hacknet/ui/MultiplierButtons.tsx","webpack:///./src/Hacknet/ui/PlayerInfo.tsx","webpack:///./src/Hacknet/ui/PurchaseButton.tsx","webpack:///./src/Locations/ui/GenericLocation.tsx","webpack:///./src/Locations/ui/CompanyLocation.tsx","webpack:///./src/Company/ui/QuitJobModal.tsx","webpack:///./src/Locations/ui/GymLocation.tsx","webpack:///./src/Locations/ui/HospitalLocation.tsx","webpack:///./src/Locations/ui/SlumsLocation.tsx","webpack:///./src/Locations/ui/SpecialLocation.tsx","webpack:///./src/Corporation/ui/modals/CreateCorporationModal.tsx","webpack:///./src/utils/helpers/N00dles.ts","webpack:///./src/Arcade/ui/ArcadeRoot.tsx","webpack:///./src/Arcade/ui/BBCabinet.tsx","webpack:///./src/Locations/ui/TechVendorLocation.tsx","webpack:///./src/Locations/ui/RamButton.tsx","webpack:///./src/Locations/ui/TorButton.tsx","webpack:///./src/Locations/LocationsHelpers.tsx","webpack:///./src/Locations/ui/CoresButton.tsx","webpack:///./src/Locations/ui/PurchaseServerModal.tsx","webpack:///./src/Locations/ui/TravelConfirmationModal.tsx","webpack:///./src/Locations/ui/UniversityLocation.tsx","webpack:///./src/Locations/ui/CasinoLocation.tsx","webpack:///./src/Casino/CardDeck/Deck.ts","webpack:///./src/Casino/CoinFlip.tsx","webpack:///./src/Casino/Roulette.tsx","webpack:///./src/Casino/SlotMachine.tsx","webpack:///./src/Locations/ui/City.tsx","webpack:///./src/ScriptEditor/ui/OptionsModal.tsx","webpack:///./src/ScriptEditor/ui/ThemeEditorModal.tsx","webpack:///./src/ScriptEditor/NetscriptDefinitions.d.ts","webpack:///./src/Milestones/ui/MilestonesRoot.tsx","webpack:///./src/Terminal/ui/TerminalRoot.tsx","webpack:///./src/Terminal/ui/TerminalInput.tsx","webpack:///./src/Terminal/determineAllPossibilitiesForTabCompletion.ts","webpack:///./src/Script/ScriptUrl.ts","webpack:///./src/Terminal/tabCompletion.ts","webpack:///./src/Tutorial/ui/TutorialRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/ScriptProduction.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordions.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordion.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordionContent.tsx","webpack:///./src/ui/ActiveScripts/WorkerScriptAccordion.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptAccordion.tsx","webpack:///./src/Faction/ui/FactionRoot.tsx","webpack:///./src/Faction/ui/AugmentationsPage.tsx","webpack:///./src/Faction/ui/DonateOption.tsx","webpack:///./src/Faction/ui/Info.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantPurchasesRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx","webpack:///./src/PersonObjects/Person.ts","webpack:///./src/SourceFile/applySourceFile.ts","webpack:///./src/Exploits/applyExploits.ts","webpack:///./src/Faction/ui/GangButton.tsx","webpack:///./src/Faction/ui/CreateGangModal.tsx","webpack:///./src/ui/CharacterStats.tsx","webpack:///./src/StockMarket/ui/StockMarketRoot.tsx","webpack:///./src/StockMarket/ui/InfoAndPurchases.tsx","webpack:///./src/StockMarket/ui/StockTickers.tsx","webpack:///./src/StockMarket/ui/StockTicker.tsx","webpack:///./src/StockMarket/ui/StockTickerHeaderText.tsx","webpack:///./src/StockMarket/ui/StockTickerOrderList.tsx","webpack:///./src/StockMarket/ui/StockTickerOrder.tsx","webpack:///./src/StockMarket/ui/StockTickerPositionText.tsx","webpack:///./src/StockMarket/ui/PlaceOrderModal.tsx","webpack:///./src/BitNode/ui/BitverseRoot.tsx","webpack:///./src/BitNode/ui/PortalModal.tsx","webpack:///./src/ui/React/CinematicLine.tsx","webpack:///./src/CotMG/ui/StaneksGiftRoot.tsx","webpack:///./src/CotMG/ui/MainBoard.tsx","webpack:///./src/CotMG/ui/FragmentInspector.tsx","webpack:///./src/CotMG/ui/FragmentSelector.tsx","webpack:///./src/CotMG/ui/FragmentPreview.tsx","webpack:///./src/CotMG/ui/ActiveFragmentSummary.tsx","webpack:///./src/CotMG/DummyGift.ts","webpack:///./src/Bladeburner/ui/BladeburnerCinematic.tsx","webpack:///./src/Exploits/Unclickable.tsx","webpack:///./src/Achievements/AchievementsRoot.tsx","webpack:///./src/Achievements/AchievementList.tsx","webpack:///./src/Achievements/AchievementIcon.tsx","webpack:///./src/ui/ErrorBoundary.tsx","webpack:///./src/Themes/ui/ThemeBrowser.tsx","webpack:///./src/Themes/ui/ThemeEntry.tsx","webpack:///./src/ui/React/ImportSaveRoot.tsx","webpack:///./src/ui/React/BypassWrapper.tsx","webpack:///./src/NetscriptFunctions/Singularity.ts","webpack:///./src/Netscript/APIWrapper.ts","webpack:///./src/NetscriptPort.ts","webpack:///./src/utils/helpers/clearObject.ts","webpack:///./src/PersonObjects/Grafting/EntropyAccumulation.ts","webpack:///./src/Corporation/CorporationState.ts","webpack:///./src/Literature/Literatures.ts","webpack:///./src/Terminal/commands/alias.ts","webpack:///./src/Terminal/commands/analyze.ts","webpack:///./src/Terminal/commands/backdoor.ts","webpack:///./src/Terminal/commands/buy.ts","webpack:///./src/Terminal/commands/cat.ts","webpack:///./src/Terminal/commands/cd.ts","webpack:///./src/Terminal/commands/check.ts","webpack:///./src/Terminal/commands/connect.ts","webpack:///./src/Terminal/commands/cp.ts","webpack:///./src/Terminal/commands/expr.ts","webpack:///./src/Terminal/commands/free.ts","webpack:///./src/Terminal/commands/grow.ts","webpack:///./src/Terminal/commands/hack.ts","webpack:///./src/Terminal/commands/help.ts","webpack:///./src/Terminal/commands/history.ts","webpack:///./src/Terminal/commands/home.ts","webpack:///./src/Terminal/commands/hostname.ts","webpack:///./src/Terminal/commands/kill.ts","webpack:///./src/Terminal/commands/killall.ts","webpack:///./src/Terminal/commands/ls.tsx","webpack:///./src/Terminal/commands/lscpu.ts","webpack:///./src/Terminal/commands/mem.ts","webpack:///./src/Terminal/commands/mv.ts","webpack:///./src/Terminal/commands/nano.ts","webpack:///./src/ScriptEditor/CursorPositions.ts","webpack:///./src/Terminal/commands/ps.ts","webpack:///./src/Terminal/commands/rm.ts","webpack:///./src/Terminal/commands/run.ts","webpack:///./src/Terminal/commands/runScript.ts","webpack:///./src/Terminal/commands/runProgram.ts","webpack:///./src/Terminal/commands/scan.ts","webpack:///./src/Terminal/commands/scananalyze.ts","webpack:///./src/Terminal/commands/scp.ts","webpack:///./src/Terminal/commands/sudov.ts","webpack:///./src/Terminal/commands/tail.ts","webpack:///./src/Terminal/commands/top.ts","webpack:///./src/Terminal/commands/unalias.ts","webpack:///./src/Terminal/commands/vim.ts","webpack:///./src/Terminal/commands/weaken.ts","webpack:///./src/Terminal/commands/wget.ts","webpack:///./src/Terminal/commands/apr1.ts","webpack:///./src/Exploits/loops.ts","webpack:///./src/UncaughtPromiseHandler.ts","webpack:///./src/index.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Player","PlayerObject","loadPlayer","saveString","JSON","parse","Reviver","money","parseFloat","exploits","sanitizeExploits","FactionNames","defaultSettings","ActiveScriptsServerPageSize","ActiveScriptsScriptPageSize","AutosaveInterval","CodeInstructionRunTime","DisableASCIIArt","DisableHotkeys","DisableTextEffects","DisableOverviewProgressBars","EnableBashHotkeys","TimestampsFormat","Locale","MaxRecentScriptsCapacity","MaxLogCapacity","MaxPortCapacity","MaxTerminalCapacity","SaveGameOnFileSave","SuppressBuyAugmentationConfirmation","SuppressFactionInvites","SuppressMessages","SuppressTravelConfirmation","SuppressBladeburnerPopup","SuppressTIXPopup","SuppressSavedGameToast","SuppressAutosaveDisabledWarnings","UseIEC60027_2","ExcludeRunningScriptsFromSave","IsSidebarOpened","theme","defaultTheme","styles","defaultStyles","overview","x","y","opened","EditorTheme","defaultMonacoTheme","Settings","OwnedAugmentationsOrder","OwnedAugmentationsOrderSetting","AcquirementTime","PurchaseAugmentationsOrder","PurchaseAugmentationsOrderSetting","Default","MonacoTheme","MonacoInsertSpaces","MonacoFontSize","MonacoVim","MonacoWordWrap","init","assign","load","save","extraFormats","extraNotations","gigaMultiplier","numeralWrapper","constructor","this","defaultLocale","updateLocale","numeral","locale","console","warn","format","Math","abs","answer","formatBigNumber","formatReallyBigNumber","decimalPlaces","nAbs","Infinity","repeat","str","formatHp","formatMoney","formatSkill","formatExp","formatHashes","formatReputation","formatFavor","formatSecurity","toFixed","formatRAM","formatPercentage","formatter","formatServerSecurity","formatRespect","formatWanted","formatMultiplier","formatSleeveShock","formatSleeveSynchro","formatSleeveMemory","formatPopulation","formatStamina","formatShares","formatInfiltrationSecurity","formatThreads","formatStaneksGiftHeat","formatStaneksGiftCharge","formatStaneksGiftPower","parseCustomLargeNumber","numericRegExp","RegExp","join","match","NaN","number","notation","notationIndex","indexOf","largestAbsoluteNumber","n1","n2","n3","isNaN","max","parseMoney","numeralValue","parsed","selfParsed","LocationName","AugmentationNames","CONSTANTS","VersionString","VersionNumber","_idleSpeed","MaxSkillLevel","MilliPerCycle","CorpFactionRepRequirement","BaseCostFor1GBOfRamHome","BaseCostFor1GBOfRamServer","TravelCost","BaseFavorToDonate","DonateMoneyToRepDivisor","FactionReputationToFavorBase","FactionReputationToFavorMult","CompanyReputationToFavorBase","CompanyReputationToFavorMult","NeuroFluxGovernorLevelMult","NumNetscriptPorts","HomeComputerMaxRam","ServerBaseGrowthRate","ServerMaxGrowthRate","ServerFortifyAmount","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","dialogBoxCreate","txt","AlertEvents","emit","component","sx","dangerouslySetInnerHTML","__html","CityName","BitNodeMultipliers","defaultMultipliers","useStyles","makeStyles","createStyles","unbuyable","color","palette","action","disabled","colors","Money","props","classes","undefined","player","Error","canAfford","className","ctor","constructors","fromJSON","obj","validationData","validateObject","Generic_toJSON","ctorName","keys","index","Generic_fromJSON","AllServers","GetServer","server","isValidIPAddress","hostname","GetServerByHostname","ipserver","ip","GetServerByIP","GetAllServers","servers","DeleteServer","serverkey","ipExists","hostName","createUniqueRandomIp","createRandomIp","AddToAllServers","initForeignServers","homeComputer","networkLayers","toNumber","getRandomInt","min","metadata","serverMetadata","serverParams","numOpenPortsRequired","organizationName","maxRamExponent","maxRam","pow","hackDifficulty","moneyAvailable","requiredHackingSkill","serverGrowth","Server","filename","literature","messages","SpecialServers","WorldDaemon","WorldDaemonDifficulty","networkLayer","linkNetworkLayers","network1","selectServer","server1","server2","serversOnNetwork","getRandomArrayItem","arr","floor","random","prestigeAllServers","member","loadAllServers","saveAllServers","excludeRunningScripts","TempAllServers","stringify","runningScripts","runningScriptObj","logs","convertTimeMsToTimeElapsedString","time","showMilli","totalSeconds","days","secondPerHours","secTruncDays","hours","secondPerMinute","secTruncHours","minutes","secTruncMinutes","milliTruncSec","res","longestCommonStart","strings","containsAllStrings","A","concat","sort","a1","a2","L","a","charAt","b","toUpperCase","substring","every","isString","formatNumber","num","numFractionDigits","toLocaleString","maximumFractionDigits","minimumFractionDigits","generateRandomString","chars","cyrb53","seed","h1","h2","ch","charCodeAt","imul","toString","capitalizeFirstLetter","capitalizeEachWord","split","map","word","Page","Context","React","createContext","Router","use","useContext","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","Augmentation","params","info","moneyCost","repCost","factions","prereqs","baseRepRequirement","freeze","baseCost","isSpecial","hacking","mults","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","includes","ShadowsOfAnarchy","soaAugmentationNames","initSoAAugmentations","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","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","FundingRoundShares","FundingRoundMultiplier","AvgProfitLength","HacknetNodeConstants","MoneyGainPerLevel","BaseCost","LevelBaseCost","RamBaseCost","CoreBaseCost","PurchaseNextMult","UpgradeLevelMult","UpgradeRamMult","UpgradeCoreMult","MaxLevel","MaxRam","MaxCores","PurchaseMultipliers","x1","x5","x10","MAX","HacknetServerConstants","HashesPerLevel","CacheBaseCost","PurchaseMult","UpgradeCacheMult","MaxServers","MaxCache","EmployeePositions","Operations","Engineer","Business","Management","RandD","Training","Unassigned","ActionTypes","Idle","Contract","Operation","BlackOp","BlackOperation","Recruitment","FieldAnalysis","Diplomacy","iTutorialSteps","ITutorial","currStep","Start","isRunning","stepIsDone","NSSelection","GoToCharacterPage","CharacterPage","CharacterGoToTerminalPage","TerminalIntro","TerminalHelp","TerminalLs","TerminalScan","TerminalScanAnalyze1","TerminalScanAnalyze2","TerminalConnect","TerminalAnalyze","TerminalNuke","TerminalManualHack","TerminalHackingMechanics","TerminalGoHome","TerminalCreateScript","TerminalTypeScript","TerminalFree","TerminalRunScript","TerminalGoToActiveScriptsPage","ActiveScriptsPage","ActiveScriptsToTerminal","TerminalTailScript","GoToHacknetNodesPage","HacknetNodesIntroduction","HacknetNodesGoToWorldPage","WorldDescription","TutorialPageInfo","End","iTutorialStart","iTutorialNextStep","iTutorialEnd","ITutorialEvents","iTutorialPrevStep","getHomeComputer","LiteratureNames","HackersStartingHandbook","BaseServer","super","startsWith","createRandomString","purchasedByPlayer","ServerStartingMoney","moneyMax","ServerMaxMoney","ServerStartingSecurity","baseDifficulty","minDifficulty","round","capDifficulty","changeMinimumSecurity","perc","changeMaximumMoney","aboveCap","log","fortify","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","hasHacknetServers","bitNodeN","sourceFileLvl","purchaseHacknet","numOwned","hacknetNodes","cost","getCostOfNextHacknetServer","loseMoney","createHacknetServer","updateHashManagerCapacity","getCostOfNextHacknetNode","node","HacknetNode","hasMaxNumberHacknetServers","calculateNodeCost","calculateServerCost","getMaxNumberLevelUpgrades","nodeObj","maxLevel","calculateLevelUpgradeCost","levelsToMax","curr","getMaxNumberRamUpgrades","calculateRamUpgradeCost","HacknetServer","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","process","wastedHashes","storeHashes","upgrade","HashUpgrades","gainMoney","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","type","Industry","NewCity","city","offices","OfficeSpace","loc","size","UnlockUpgrade","price","unlockUpgrades","unlock","LevelUpgrade","basePrice","priceMult","upgrades","IssueDividends","rate","dividendRate","SellMaterial","mat","replace","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","values","assignSingleJob","AutoAssignJob","autoAssignJob","UpgradeOfficeSize","initialPriceMult","mult","BuyCoffee","getCoffeeCost","setCoffee","ThrowParty","costPerEmployee","setParty","PurchaseWarehouse","warehouses","Warehouse","UpgradeWarehouseCost","Array","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","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","BlackOperationNames","t_homeComp","safetlyCreateUniqueServer","adminRights","isConnectedTo","currentServer","Home","Programs","NukeProgram","prestigeAugmentation","numPeopleKilled","location","TravelAgency","jobs","purchasedServers","factionInvitations","numSleeves","sleevesFromCovenant","sleeves","Sleeve","shock","synchronize","shockRecovery","lastUpdate","Date","getTime","playtimeSinceLastAug","scriptProdSinceLastAug","moneySourceA","reset","prestige","reapplyAllAugmentations","hp","max_hp","finishWork","prestigeSourceFile","entropy","karma","sync","gang","resetGangs","hasWseAccount","hasTixApiAccess","has4SData","has4SDataTixApi","moneySourceB","playtimeSinceLastBitnode","receiveInvite","calculateSkill","calculateSkillF","calculateSkillProgress","calculateSkillProgressF","updateSkillLevels","HackingLevelMultiplier","StrengthLevelMultiplier","DefenseLevelMultiplier","DexterityLevelMultiplier","AgilityLevelMultiplier","CharismaLevelMultiplier","intelligence","intelligence_exp","ratio","resetMultipliers","hasProgram","programName","home","toLowerCase","setMoney","source","recordMoneySource","MoneySourceTracker","record","gainHackingExp","gainStrengthExp","gainDefenseExp","gainDexterityExp","gainAgilityExp","gainCharismaExp","gainIntelligenceExp","gainStats","retValue","hack","def","dex","agi","cha","int","queryStatFromString","tempStr","startFocusing","focus","stopFocusing","takeDamage","hospitalize","regenerateHp","getHospitalizationCost","SnackbarEvents","ToastVariant","WARNING","applyForJob","entryPosType","sing","company","Companies","Company","pos","isQualified","getJobRequirementText","hasPosition","nextPos","getNextCompanyPositionHelper","reqText","getNextCompanyPosition","currCompany","currentPositionName","currentPosition","CompanyPositions","isSoftwareJob","isITJob","isBusinessJob","isSecurityEngineerJob","isNetworkEngineerJob","isSecurityJob","isAgentJob","isSoftwareConsultantJob","isBusinessConsultantJob","isPartTimeJob","quitJob","isCompanyWork","currentWork","companyName","hasJob","Boolean","applyForSoftwareJob","posNames","applyForSoftwareConsultantJob","applyForItJob","applyForSecurityEngineerJob","applyForNetworkEngineerJob","applyForBusinessJob","applyForBusinessConsultantJob","applyForSecurityJob","applyForAgentJob","applyForEmployeeJob","position","applyForPartTimeEmployeeJob","applyForWaiterJob","applyForPartTimeWaiterJob","offset","jobStatReqOffset","reqHacking","requiredHacking","reqStrength","requiredStrength","reqDefense","requiredDefense","reqDexterity","requiredDexterity","reqAgility","reqCharisma","requiredCharisma","playerReputation","requiredReputation","playerAug","applyAugmentation","reapplyAllSourceFiles","sourceFiles","srcFileKey","SourceFiles","applySourceFile","applyExploit","checkForFactionInvitations","invitedFactions","numAugmentations","allCompanies","allPositions","checkMegacorpRequirements","serverMeta","specialName","bonus","backdoorInstalled","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","v","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","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","SleeveTaskType","StatsRow","content","root","cellNone","style","align","PositionTypes","borderBottom","small","width","TableCell","Table","initCompanies","oldCompanies","companiesMetadata","forEach","loadCompanies","AllGangs","power","territory","loadAllGangs","removeLeadingSlash","removeTrailingSlash","endsWith","isValidFilename","isValidDirectoryName","isValidDirectoryPath","path","t_path","dirs","dir","isValidFilePath","fnSeparator","lastIndexOf","fn","getFirstParentDirectory","getAllParentDirectories","lastSlash","getDestinationFilepath","destination","cwd","dstDir","evaluateDirectoryPath","fileName","getFileName","isInRootDirectory","currPath","reconstructedPath","pop","evaluateFilePath","areFilesEqual","f0","f1","areImportsEquals","Terminal","TTerminal","trusted","event","isTrusted","Crimes","Shoplift","CrimeType","dexterity_success_weight","agility_success_weight","RobStore","hacking_success_weight","Mug","strength_success_weight","defense_success_weight","Larceny","DealDrugs","Drugs","charisma_success_weight","BondForgery","TraffickArms","Homicide","kills","GrandTheftAuto","Kidnap","Assassination","Heist","TheDarkArmyServer","DaedalusServer","DarkWeb","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","Work","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","setTimeout","reload","softReset","installAugmentations","useEffect","subscribe","ActiveScripts","Augmentations","Stats","CreateProgram","DevMenu","Options","Gang","Hacknet","Milestones","Grafting","options","ScriptEditor","Sleeves","StockMarket","Tutorial","City","Travel","calculateAchievements","BitVerse","BladeburnerCinematic","StaneksGift","Achievements","ThemeBrowser","base64save","automatic","_functions","fnName","_wrap","func","args","scrollTo","mainPage","withSidebar","withPopups","bypassGame","router","enter","enterBitNode","staneksGift","getCurrentServer","workerScripts","reactivateTutorial","buyStockLong","buyStock","buyStockShort","shortStock","cancelOrder","eventEmitterForReset","eventEmitterForUiReset","initStockMarket","initStockMarketFn","placeOrder","sellStockLong","sellStock","sellStockShort","sellShort","stockMarket","export","onExport","exportGame","forceKill","exportGameFn","installAugmentationsFn","Provider","killScripts","flexDirection","onToggled","isOpened","ClassType","Classes","StudyComputerScience","youAreCurrently","earnings","newWorkStats","hackExp","intExp","DataStructures","Networks","Algorithms","chaExp","Leadership","GymStrength","strExp","GymDefense","defExp","GymDexterity","dexExp","GymAgility","agiExp","isClassWork","w","WorkType","CLASS","ClassWork","singularity","classType","Sector12RothmanUniversity","isGym","getClass","calculateRates","calculateClassEarningsRate","cycles","cyclesWorked","applyWorkStats","sumWorkStats","finish","APICopy","updateHashCapacity","costMult","seconds","onlineTimeSeconds","hashRate","totalHashesGenerated","prodMult","cpuCores","runScript","script","updateRamUsed","calculateHashGainRate","ramUsed","snackbar","zIndex","logBoxBaseZIndex","alignSelf","SnackbarProvider","dense","maxSnack","anchorOrigin","horizontal","vertical","autoHideDuration","containerRoot","EventEmitter","Snackbar","enqueueSnackbar","closeSnackbar","useSnackbar","variant","duration","id","severity","k","onClick","StockSymbols","IshimaStormTechnologies","NewTokyoDefComm","VolhavenHeliosLabs","NewTokyoVitaLife","Sector12IcarusMicrosystems","Sector12UniversalEnergy","AevumAeroCorp","VolhavenOmniaCybersystems","ChongqingSolarisSpaceSystems","NewTokyoGlobalPharmaceuticals","IshimaNovaMedical","AevumWatchdogSecurity","VolhavenLexoCorp","AevumRhoConstruction","Sector12AlphaEnterprises","VolhavenSysCoreSecurities","VolhavenCompuTek","AevumNetLinkTechnologies","IshimaOmegaSoftware","Sector12FoodNStuff","Sector12JoesGuns","validScriptExtensions","isScriptFilename","some","ext","calculateHackingChance","difficultyMult","skillMult","chance","calculateHackingExpGain","expGain","HackExpGain","calculatePercentMoneyHacked","percentMoneyHacked","ScriptHackMoney","calculateHackingTime","skillFactor","calculateGrowTime","calculateWeakenTime","FactionWorkType","loadStaneksGift","zeros","height","array","fill","calculateGrid","gift","newgrid","fragmentAt","Orders","storedCycles","ticksUntilCycle","SymbolToStockMap","stock","shares","workerScript","Stock","order","Order","symbol","orders","stk","processOrderRefs","symbolToStockMap","processOrders","stockOrders","stockSymbol","orderTxt","scriptRef","loadStockMarket","deleteStockMarket","InitStockMetadata","TicksPerCycle","initSymbolToStockMap","cyclesPerStockUpdate","processStockPrices","timeNow","flipForecastForecast","stockMarketCycle","av","mv","chc","otlkMag","cap","changePrice","OrderTypes","LimitBuy","Short","LimitSell","Long","StopBuy","StopSell","otlkMagChange","cycleForecast","cycleForecastForecast","shareTxUntilMovement","shareTxForMovement","companyPositionMetadata","CompanyPosition","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","Promise","resolve","reject","then","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","totalPlaytime","current","bitNode","bitNodeLevel","loadGame","navigator","userAgent","setInterval","decodeURIComponent","escape","saveObj","loadAliases","loadGlobalAliases","ver","anyPlayer","companyPosition","positionName","companyPositions","changes","convert","code","change","scripts","v1APIBreak","AwardNFG","revenue","expenses","lastCycleRevenue","lastCycleExpenses","thisCycleRevenue","thisCycleExpenses","sleeve","resleeves","contract","contracts","ownedNFGs","newNFG","nfg","darkweb","pushProgram","graft","v2APIBreak","evaluateVersionCompatibility","href","resets","createNewUpdateText","whiteSpace","paddingLeft","lineHeight","Blob","document","createElement","url","URL","createObjectURL","body","appendChild","click","removeChild","revokeObjectURL","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","netscriptDelay","delayReject","delay","env","stopFlag","ScriptDeath","makeRuntimeRejectMsg","msg","scriptUrl","dependencies","resolveNetscriptRequestedThreads","ctx","requestedThreads","threads","requestedThreadsAsInt","function","isScriptErrorMessage","CodingContractType","gen","solver","diff","numTries","generate","CodingContractTypes","md","codingContractTypesMetadata","CodingContractResult","CodingContract","getData","getDescription","getDifficulty","getMaxNumTries","getType","isSolution","solution","Cancelled","onAttempt","val","Success","Failure","CodingContractEvent","MoneyRate","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","string","regexp","markup","keyword","comment","constant","ui","line","panel","selected","selection","colorRegExp","sanitizeTheme","entries","repairBlock","block","makeTheme","themeRules","token","foreground","themeColors","fromEntries","rules","async","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","ceil","processSingleServerGrowth","calculateServerGrowth","oldMoneyAvailable","isValidNumber","usedCycles","prestigeHomeComputer","homeComp","hasBitflume","BitFlume","updateRamUsage","getServerOnNetwork","isBackdoorInstalled","MoneyCost","SkillNames","BladesIntuition","Cloak","Marksman","WeaponProficiency","ShortCircuit","DigitalObserver","Tracer","Overclock","Reaper","EvasiveSystem","Datamancer","CybersEdge","HandsOfMidas","Hyperdrive","reputation","rep","Reputation","useGang","killWorkerScript","WorkerScript","stopAndCleanUpWorkerScript","killWorkerScriptByPid","runningScript","pid","ws","compareArrays","atExit","String","clearTimeout","killNetscriptDelay","rs","ramUsage","delete","AddRecentScript","WorkerScriptStartStopEventEmitter","removeWorkerScript","w0","w1","scaleWorkStats","workStats","gains","OptionSwitch","checked","tooltip","control","BitNode","BitNodes","HomeComputerRamCost","PurchasedServerCost","PurchasedServerSoftcap","CompanyWorkMoney","CrimeMoney","HacknetNodeMoney","ManualHackMoney","ScriptHackMoneyGain","ClassGymExpGain","CompanyWorkExpGain","CrimeExpGain","FactionWorkExpGain","FactionWorkRepGain","RepToDonateToFaction","InfiltrationMoney","InfiltrationRep","FourSigmaMarketDataCost","FourSigmaMarketDataApiCost","CorporationValuation","CorporationSoftcap","BladeburnerRank","BladeburnerSkillCost","GangSoftcap","StaneksGiftPowerMultiplier","StaneksGiftExtraSize","getBitNodeMultipliers","inc","dec","initBitNodeMultipliers","defaultConstructorParams","initPrice","marketCap","spreadPerc","range","divisor","lastPrice","playerShares","playerAvgPx","playerShortShares","playerAvgShortPx","otlkMagForecast","getAbsoluteForecast","totalSharesUnrounded","totalShares","maxShares","changeForecastForecast","newff","newPrice","changeAmt","increaseChance","getForecastIncreaseChance","getAskPrice","getBidPrice","influenceForecast","influenceForecastForecast","startingLevel","extraLevels","totalMultiplier","startingRam","totalCost","numUpgrades","currentRam","startingCores","currentCores","startingCache","currentCache","printAliases","print","parseAliasDeclaration","global","matches","addGlobalAlias","addAlias","getAlias","getGlobalAlias","removeAlias","substituteAliases","origCommand","commandArray","somethingSubstituted","depth","alias","constructLocation","asciiArt","LocationsMetadata","addLocation","Literature","CopyableText","setOpen","copyText","select","setSelectionRange","execCommand","ThemeEvents","refreshTheme","createTheme","combat","backgroundprimary","backgroundsecondary","button","successlight","success","successdark","white","black","light","primarylight","primarydark","secondary","secondarylight","secondarydark","errorlight","errordark","infolight","infodark","warning","warninglight","warningdark","well","typography","fontFamily","textTransform","components","MuiInputBase","styleOverrides","input","userSelect","MuiInput","borderBottomColor","underline","MuiInputLabel","MuiButtonGroup","marginRight","MuiButton","borderRadius","MuiSelect","icon","defaultProps","MuiTextField","MuiTypography","MuiMenu","list","MuiMenuItem","MuiAccordionSummary","MuiAccordionDetails","MuiIconButton","MuiTooltip","fontSize","disableInteractive","MuiSlider","valueLabel","MuiDrawer","paperAnchorDockedLeft","borderRight","welllight","MuiDivider","MuiFormControlLabel","MuiSwitch","switchBase","track","MuiPaper","MuiTablePagination","selectLabel","displayedRows","MuiTab","textColorPrimary","MuiTabs","scrollButtons","opacity","TabIndicatorProps","MuiAlert","standardSuccess","standardError","standardWarning","standardInfo","TTheme","injectFirst","layerCounter","LogBoxEvents","LogBoxCloserEvents","LogBoxClearEvents","LogBoxManager","closePid","LogWindow","close","overflowY","overflowX","wordWrap","titleButton","draggableRef","useRef","rootRef","setScript","container","minimized","setMinimized","kill","findRunningScript","startWorkerScript","updateLayer","full","maxLength","minimize","clearInterval","addEventListener","onResize","removeEventListener","debounce","isOnScreen","resetPosition","bounds","getBoundingClientRect","right","bottom","left","innerWidth","top","outerWidth","state","setState","minConstraints","handle","onDrag","MouseEvent","clientX","clientY","innerHeight","ref","onMouseDown","flexFlow","minWidth","cursor","textOverflow","has","onTouchEnd","Water","Plants","Metal","Hardware","Chemicals","Robots","AICores","calculateExp","skill","currentSkill","nextSkill","baseExperience","nextExperience","progress","currentExperience","remainingExperience","experience","UpgradeType","gangMemberUpgradesMetadata","upgType","Weapon","Armor","Vehicle","Rootkit","gainFavor","getFavorGain","totalRep","favorToRep","repToFavor","GangConstants","GangRespectToReputationRatio","MaximumGangMembers","CyclesPerTerritoryAndPowerUpdate","AscensionMultiplierRatio","Names","GangKarmaRequirement","errorMessage","NetscriptPorts","NetscriptPort","prestigeWorkerScripts","port","clear","startNetscript1Script","codeWithImports","codeLineOffset","running","importProcessingRes","ast","ecmaVersion","allowReserved","sourceType","getServer","generatedCode","hasImports","walksimple","ImportDeclaration","scriptName","getScript","scriptAst","specifiers","namespace","local","fnNames","fnDeclarations","FunctionDeclaration","fnsToImport","lineOffset","linesRemoved","processNetscript1Imports","interpreterInitialization","scope","NetscriptFunctions","entry","tempWrapper","fnArgs","isArray","pseudoToNative","callb","errorTextArray","errorMsg","setProperty","createAsyncFunction","createNativeFunction","nativeToPseudo","interpreter","Interpreter","runInterpreter","more","step","_e","parent","createAndAddWorkerScript","oneRamUsage","getRamUsageFromRunningScript","roundToTwo","arrayToString","generateNextPid","set","scriptExecution","runningFn","wrap","propName","sprintf","finally","wrapObject","vars","tree","prop","executeJSScript","SyntaxError","message","stack","startNetscript2Script","onlineExpGained","onlineMoneyMade","updateOnlineScriptTimes","onlineRunningTime","loadAllRunningScripts","skipScriptLoad","markUpdated","scriptCalculateOfflineProduction","runScriptFromScript","caller","scriptname","arg","getRunningScript","Number","ramAvailable","hasAdminRights","RunningScript","Map","StatsTable","rows","wide","MuiTable","row","elem","noWrap","Material","getMarkupLimit","qlt","mku","dmd","dmdR","cmp","cmpR","processMarket","priceChange","compChange","dmdChange","calculateWantedPenalty","respect","wantedLevel","calculateRespectGain","task","baseRespect","statWeight","hackWeight","strWeight","defWeight","dexWeight","agiWeight","chaWeight","territoryMult","territoryPenalty","respectMult","calculateWantedLevelGain","baseWanted","wanted","calc","calculateMoneyGain","baseMoney","calculateAscensionPointsGain","calculateAscensionMult","points","GameTimer","setV","totalMillis","WKSharmonizer","millis","intervalId","onExpire","noPaper","mb","ActionIdentifier","general","ops","blackops","events","updateSkillMultipliers","calculateMaxStamina","stamina","maxStamina","getCurrentCity","calculateStaminaPenalty","canAttemptBlackOp","actionId","getActionObject","reqdRank","rank","nm","BlackOperations","isAvailable","startAction","person","actionTimeCurrent","actionTimeToComplete","resetAction","getActionTime","exceptionAlert","comms","testBlackOp","getRecruitmentTime","upgradeSkill","skillName","skills","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","rand","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","bbAction","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","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","out","lerpD","lerp","Trivial","Normal","Hard","Impossible","KeyHandler","press","onKeyDown","FACTION","FactionWork","factionWorkType","HACKING","getFaction","getReputationRate","FIELD","SECURITY","focusBonus","NeuroreceptorManager","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","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","getSymbols","getPrice","getPosition","getMaxShares","getPurchaseCost","getSaleGain","short","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","createCorporation","hasUnlockUpgrade","getUnlockUpgradeCost","getUpgradeLevel","getUpgradeLevelCost","getExpandIndustryCost","getExpandCityCost","getInvestmentOffer","acceptInvestmentOffer","goPublic","bribe","getCorporation","getDivision","expandIndustry","expandCity","unlockUpgrade","levelUpgrade","issueDividends","buyBackShares","sellShares","sellMaterial","sellProduct","discontinueProduct","setSmartSupply","setSmartSupplyUseLeftovers","buyMaterial","bulkPurchase","getWarehouse","getProduct","getMaterial","setMaterialMarketTA1","setMaterialMarketTA2","setProductMarketTA1","setProductMarketTA2","exportMaterial","cancelExportMaterial","purchaseWarehouse","upgradeWarehouse","makeProduct","limitMaterialProduction","limitProductProduction","getPurchaseWarehouseCost","getUpgradeWarehouseCost","hasWarehouse","assignJob","hireEmployee","upgradeOfficeSize","throwParty","buyCoffee","hireAdVert","getOffice","getEmployee","getHireAdVertCost","getHireAdVertCount","getResearchCost","hasResearched","setAutoJobAssignment","getOfficeSizeUpgradeCost","hacknet","numNodes","purchaseNode","getPurchaseNodeCost","getNodeStats","getLevelUpgradeCost","getRamUpgradeCost","getCoreUpgradeCost","getCacheUpgradeCost","numHashes","hashCost","spendHashes","maxNumNodes","getHashUpgrades","getHashUpgradeLevel","getStudyMult","getTrainingMult","getTheme","setTheme","resetTheme","getStyles","setStyles","resetStyles","getGameInfo","clearTerminal","grafting","getAugmentationGraftPrice","getAugmentationGraftTime","getGraftableAugmentations","graftAugmentation","vsprintf","scan","hackAnalyzeThreads","hackAnalyze","hackAnalyzeSecurity","hackAnalyzeChance","sleep","asleep","share","getSharePower","grow","growthAnalyze","growthAnalyzeSecurity","weakenAnalyze","printf","tprint","tprintf","clearLog","disableLog","enableLog","isLogEnabled","getScriptLogs","nuke","brutessh","ftpcrack","relaysmtp","httpworm","sqlinject","exec","spawn","killall","exit","scp","ls","ps","getRecentScripts","hasRootAccess","getHostname","getHackingLevel","getHackingMultipliers","getHacknetMultipliers","getServerMoneyAvailable","getServerSecurityLevel","getServerBaseSecurityLevel","getServerMinSecurityLevel","getServerRequiredHackingLevel","getServerMaxMoney","getServerGrowth","getServerNumPortsRequired","getServerRam","getServerMaxRam","getServerUsedRam","serverExists","fileExists","getPurchasedServerLimit","getPurchasedServerMaxRam","getPurchasedServerCost","deleteServer","getPurchasedServers","tryWritePort","peek","writePort","readPort","getPortHandle","rm","scriptRunning","scriptKill","getScriptName","getScriptRam","getHackTime","getGrowTime","getWeakenTime","getTotalScriptIncome","getScriptIncome","getTotalScriptExpGain","getScriptExpGain","nFormat","tFormat","getTimeSinceLastAug","prompt","wget","getFavorToDonate","getPlayer","tail","toast","closeTail","clearPort","openDevMenu","alert","flags","bypass","alterReality","rainbow","heart","break","formulas","calculateFavorToRep","calculateRepToFavor","repFromDonation","hackChance","hackPercent","growPercent","hackTime","growTime","weakenTime","moneyGainRate","levelUpgradeCost","ramUpgradeCost","coreUpgradeCost","hacknetNodeCost","constants","hacknetServers","hashGainRate","cacheUpgradeCost","hashUpgradeCost","hacknetServerCost","wantedPenalty","respectGain","wantedLevelGain","ascensionPointsGain","ascensionMultiplier","RamCosts","getRamCost","currType","costInc","getBuyTransactionCost","posType","getSellTransactionGain","processTransactionForecastMovement","firstShares","remainingShares","numIterations","forecastChange","forecastForecastChange","calculateBuyMaxAmount","isLong","remainingMoney","currPrice","GangMemberUpgrades","GangMemberUpgrade","getStockMarket4SDataCost","getStockMarket4STixApiCost","getStockMarketWseCost","getStockMarketTixApiCost","NumberInput","textProps","m0","m1","HashUpgradesMetadata","HashUpgrade","GangMemberTasks","gangMemberTasksMetadata","GangMemberTask","isHacking","isCombat","materials","updateMaterialSizeUsed","matName","getStorageMultiplier","opts","suppressDialog","totalPrice","origTotal","newTotal","rerenderFn","resultTxt","netProfit","origCost","Output","formatTime","RawOutput","raw","Link","dashes","TTimer","timeLeft","recursiveMode","thisUpgrade","unFloored","ConfirmationModal","confirmationText","onConfirm","additionalButton","createProgressBarText","derived","totalTicks","bars","hash","__COMMIT_HASH__","DefaultConstructorParams","expMultiplier","salaryMultiplier","isPlayerEmployed","isMegacorp","hasAgentPositions","hasBusinessConsultantPositions","hasBusinessPositions","hasEmployeePositions","hasITPositions","hasSecurityPositions","hasSoftwareConsultantPositions","hasSoftwarePositions","hasWaiterPositions","globalModuleSequenceNumber","Script","otherScripts","moduleSequenceNumber","saveScript","formatCode","dependent","dependents","dependentScript","calculateRamUsage","ramUsageEntries","imports","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","offlineRunningTime","offlineExpGained","timesWeakened","findRunningScriptByPid","MathJaxWrapper","version","src","lineNumber","CorporationUnlockUpgradeIndex","CorporationUnlockUpgrades","Export","SmartSupply","MarketResearchDemand","MarketDataCompetition","VeChain","ShadyAccounting","GovernmentPartnership","WarehouseAPI","OfficeAPI","getGraftingAvailableAugs","augName","graftingIntBonus","calculateGraftingTimeWithBonus","OperationTyphoon","OperationZero","OperationX","OperationTitan","OperationAres","OperationArchangel","OperationJuggernaut","OperationRedDragon","OperationK","OperationDeckard","OperationTyrell","OperationWallace","OperationShoulderOfOrion","OperationHyron","OperationMorpheus","OperationIonStorm","OperationAnnihilus","OperationUltron","OperationCenturion","OperationVindictus","OperationDaedalus","ActiveFragment","highestCharge","numCharge","collide","other","thisFragment","otherFragment","dx","dy","fragSize","worldX","worldY","commit","div","startWork","CrimeWork","crimeType","successRate","vals","CalculateShareMult","GameOptionsTab","HashRate","Message","ApplyToJobButton","getJobRequirementTooltip","researchMetadata","initElectron","normalizeFileName","getFiles","deleteFile","removeFile","saveFile","Buffer","overwritten","writeToScriptFile","initWebserver","funcs","typesFn","appNotifier","initAppNotifier","triggerSave","triggerGameExport","ERROR","triggerScriptsExport","exportScripts","getSaveData","getSaveInfo","getImportDataFromString","pushSaveData","appSaveFns","initSaveFunctions","bridge","electronBridge","receive","send","initElectronBridge","pushGameReady","playtime","game","pushImportResult","wasImported","pushDisableRestore","isCreateProgramWork","CREATE_PROGRAM","CreateProgramWork","unitCompleted","programFile","percComplete","unitNeeded","getProgram","reqLvl","cancelled","incompleteName","lines","achievementData","bitNodeFinishedState","wd","hasAccessToSF","knowsAboutBitverse","Icon","Condition","THE_BLACK_HAND","THE_COVENANT","Visible","MONEY_1Q","MONEY_M1B","Secret","INSTALL_1","INSTALL_100","QUEUE_40","HACKING_100000","COMBAT_3000","NEUROFLUX_255","NS2","FROZE","RUNNING_SCRIPTS_1000","DRAIN_SERVER","MAX_RAM","MAX_CORES","SCRIPTS_30","KARMA_1000000","STOCK_1q","DISCOUNT","SCRIPT_32GB","FIRST_HACKNET_NODE","MAX_HACKNET_NODE","HACKNET_NODE_10M","REPUTATION_10M","DONATION","TRAVEL","WORKOUT","TOR","hasTorRouter","HOSPITALIZED","hospitalization","GANG","FULL_GANG","members","GANG_TERRITORY","GANG_MEMBER_POWER","CORPORATION","CORPORATION_BRIBE","CORPORATION_PROD_1000","CORPORATION_EMPLOYEE_3000","CORPORATION_REAL_ESTATE","Description","INTELLIGENCE_255","BLADEBURNER_DIVISION","BLADEBURNER_OVERCLOCK","BLADEBURNER_UNSPENT_100000","FIRST_HACKNET_SERVER","AdditionalUnlock","ALL_HACKNET_SERVER","MAX_HACKNET_SERVER","hs","HACKNET_SERVER_1B","MAX_CACHE","capacity","SLEEVE_8","INDECISIVE","FAST_BN","CHALLENGE_BN1","CHALLENGE_BN2","CHALLENGE_BN3","CHALLENGE_BN6","CHALLENGE_BN7","CHALLENGE_BN8","CHALLENGE_BN9","hacknet_expenses","CHALLENGE_BN10","CHALLENGE_BN12","BYPASS","PROTOTYPETAMPERING","UNCLICKABLE","UNDOCUMENTEDFUNCTIONCALL","TIMECOMPRESSION","REALITYALTERATION","N00DLES","EDITSAVEFILE","UNACHIEVABLE","CHALLENGE_BN13","StaneksGift1","DEVMENU","RAINBOW","TRUE_RECURSION","playerAchievements","missingAchievements","flatMap","Intelligence","useTheme","colSpan","WorkInProgressOverview","onClickFocus","header","workCell","workHeader","pt","pb","workSubtitles","mt","details","innerText","isCrimeWork","crime","getCrime","isGraftingWork","factionWork","companyWork","getCompany","getGainRates","textAlign","CharacterOverview","killOpen","setKillOpen","hackingProgress","strengthProgress","defenseProgress","dexterityProgress","agilityProgress","charismaProgress","borderTop","flex","aria-label","midpoint","program","description","BadRNG","WHRNG","s1","s2","s3","genSeed","COMPANY","CompanyWork","NewTokyoNoodleBar","calculateCompanyWorkStats","influenceStockThroughCompanyWork","v1","v2","Favor","gameCPS","classs","discount","calculateClassEarnings","work","hashMult","expMult","Person","crimeKey","currentTask","finishTask","resetTaskStatus","gainRatesForTask","currentTaskLocation","currentTaskMaxTime","currentTaskTime","successGainRates","keysForIteration","gainExperience","bb","bbContract","bbRetValue","fromOtherSleeve","multFac","pHackExp","pStrExp","pDefExp","pDexExp","pAgiExp","pChaExp","pIntExp","earningsForPlayer","earningsForTask","earningsForSleeves","getMemoryUpgradeCost","memory","currCost","currMemory","getRepGain","jobPerformance","calculateJobPerformance","getFactionHackingWorkRepGain","installAugmentation","updateStatLevels","cyclesUsed","Class","Gym","updateTaskGainRates","Synchro","retVal","gymStatType","takeUniversityCourse","universityName","AevumSummitUniversity","VolhavenZBInstituteOfTechnology","newCity","tryBuyAugmentation","AevumCrushFitnessGym","AevumSnapFitnessGym","Sector12IronGym","Sector12PowerhouseGym","VolhavenMilleniumFitnessGym","baseGymExp","totalExpMultiplier","totalExpMult","upgradeMemory","baseSalary","strengthExpGain","defenseExpGain","dexterityExpGain","agilityExpGain","workType","sanitizedWorkType","offerHackingWork","offerFieldWork","offerSecurityWork","workoutAtGym","gymName","stat","sanitizedStat","getBladeburnerActionTime","recruitmentSuccessChance","contractGainRates","contractSuccessChance","chances","RamCalculationErrorCode","TerminalEvents","TerminalClearEvents","orderType","refs","orderBook","executeOrder","isBuy","predefined","getPredefinedThemes","AlertManager","alerts","setAlerts","sha256","getMessageHash","overflowWrap","getRandomByte","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","problemType","getRandomProblemType","getRandomReward","randServer","getRandomServer","contractFn","getRandomFilename","addContract","generateRandomContractOnHome","generateContract","problemTypes","rewardType","factionsThatAllowHacking","sanitizeRewardType","numFactions","randFaction","allJobs","randIndex","canGetBonus","setLastExportBonus","unixTime","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","nextPosition","repMultiplier","reqdHacking","reqdStrength","reqdDefense","reqdDexterity","requiredAgility","reqdAgility","reqdCharisma","reqdReputation","hackingEffectiveness","strengthEffectiveness","defenseEffectiveness","dexterityEffectiveness","agilityEffectiveness","charismaEffectiveness","hackRatio","strRatio","defRatio","dexRatio","agiRatio","chaRatio","reputationGain","checkEnum","enumVariable","StartButton","char","CorruptableText","setContent","counter","timers","letter","randFrom","randomize","timerId","GRAFTING","GraftingWork","gAugs","GraftableAugmentations","GraftableAugmentation","fmt","FactionInfo","keep","keepOnInstall","assignment","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","ReputationRate","validator","paramValidator","calculateSellInformationCashReward","levelBonus","calculateTradeInformationRepReward","calculateInfiltratorsRepReward","startingSecurityLevel","infiltrationData","sanitizedSource","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","oldhp","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","ProgressBar","withStyles","bar","transition","LinearProgress","destroyedBitNode","newBitNode","bitNodeNumber","sourceFileKey","sourceFile","alreadyOwned","ownedSourceFile","playerSrcFile","PlayerOwnedSourceFile","giveSourceFile","ActivateRecoveryMode","RecoveryRoot","errorData","resetError","issueUrl","newIssueUrl","startIcon","onTriggered","px","multiline","fullWidth","sharePower","StartSharing","CSM","nsFuncsGenerator","sanitizedPid","Environment","getScriptOnServer","shouldLog","disableLogs","CorporationState","numUnlockUpgrades","upgradeMultipliers","addFunds","getState","gameCycles","issueNewSharesCooldown","avgProfit","cycleProfit","updateDividendTax","retainedEarnings","getCycleDividends","updateSharePrice","nextState","dividendTax","dividendsPerShare","dividends","determineValuation","getTargetSharePrice","targetPrice","immediatelyUpdateSharePrice","sharesTracker","sharesUntilUpdate","sharesSold","maxIterations","convertCooldownToString","cd","upgN","upgradeAmt","getProductionMultiplier","getDreamSenseGain","getAdvertisingMultiplier","getEmployeeCreMultiplier","getEmployeeChaMultiplier","getEmployeeIntMultiplier","getEmployeeEffMultiplier","getSalesMultiplier","getScientificResearchMultiplier","getStarterGuide","hasHandbook","handbookFn","showLiterature","popEst","locations","OptionsSlider","initialValue","_evt","newValue","onChangeCommitted","callback","valueLabelDisplay","marks","TickerDisplayMode","DisplayModeButton","tickerDisplayMode","Portfolio","changeDisplayMode","StockTickersConfig","changeWatchlistFilter","maintainMembership","finishAction","penalty","hack_asc_points","str_asc_points","def_asc_points","dex_asc_points","agi_asc_points","cha_asc_points","resetPidCounter","setMaxRam","EPSILON","decay","getSuccessChance","baseTime","skillFac","effDexterity","statFac","est","clamp","real","low","high","competence","playerStatLvl","effMultiplier","getSuccessesNeededForNextLevel","baseSuccessesPerLevel","newCrimeType","convertCrimeType","SHOPLIFT","ROBSTORE","MUG","LARCENY","DRUGS","BONDFORGERY","TRAFFICKARMS","HOMICIDE","GRANDTHEFTAUTO","KIDNAP","ASSASSINATION","HEIST","CRIME","frames","Apr1Events","Apr1","getMonth","getDate","isApr1","setN","allow","currentCity","onTravel","WorldMap","SuccessChance","estimatedSuccessChance","StaticModal","logEntry","logUpd","displayLog","recordHack","moneyGained","recordGrow","recordWeaken","litObj","Literatures","checkIfConnectedToDarkweb","listAllDarkwebItems","item","printRaw","buyDarkwebItem","itemName","buyAllDarkwebItems","itemsToBuy","baseCheck","netscriptCanHack","initialCheck","netscriptCanGrow","netscriptCanWeaken","calculateRawDiff","startingDifficulty","calculateDifficulty","calculateReward","parseArg","asNumber","ParseCommands","allCommands","flat","ParseCommand","idx","lastQuote","DOUBLE_QUOTE","QUOTE","CinematicText","setI","done","setDone","onDone","newI","auto","MaxSleevesFromCovenant","BaseCostPerSleeve","specialReferenceIF","specialReferenceFOR","specialReferenceWHILE","memCheckGlobalKey","parseOnlyRamCalculate","dependencyMap","completedParses","parseQueue","parseCode","moduleName","parseOnlyCalculateDeps","additionalModules","initialModule","nextModule","URLImportError","ImportError","detailedCosts","unresolvedRefs","resolvedRefs","loadedFns","prefix","ident","dep","applyFuncRam","findFunc","refDetail","fnRam","checkInfiniteLoop","missingAwaitLine","walk","WhileStatement","st","walkDeeper","nodeHasTrueTest","test","hasAwait","AwaitExpression","currentModule","globalKey","internalToExternal","addRef","external","objectPrototypeProperties","getOwnPropertyNames","commonVisitors","Identifier","DoWhileStatement","ForStatement","update","IfStatement","consequent","alternate","MemberExpression","importModuleName","spec","imported","codeCopy","decimal","pidCounter","tempCounter","MAX_SAFE_INTEGER","safeGetServer","makeRuntimeErrorMsg","getRunningScriptByArgs","scriptArgs","getRunningScriptByPid","createPublicRunningScript","offlineMoneyMade","getCannotFindRunningScriptErrorMessage","failOnHacknetServer","callingFn","errstack","userstack","stackline","dependency","parseChromeStackline","lineMatch","funcMatch","chromeCall","parseFirefoxStackline","lio","firefoxCall","rejectMsg","manual","hackingTime","canHack","expGainedOnSuccess","expGainedOnFailure","percentHacked","maxThreadNeeded","moneyDrained","influenceStockThroughServerHack","argsToString","toNative","roughlyIs","expect","actual","expects","actuals","helperString","funcName","argName","helperNumber","isScriptArgs","_args","helper","updateDynamicRam","ramCost","dynamicLoadedFns","dynamicRamUsage","ustring","unumber","scriptIdentifier","_fn","_hostname","boolean","checkSingularityAccess","getValidPort","iport","hacking_chance_mult","tor","inBladeburner","hasCorporation","g","gangMember","GangMember","gangTask","NetscriptSingularity","NetscriptGang","NetscriptBladeburner","NetscriptCodingContract","NetscriptSleeve","NetscriptCorporation","NetscriptStanek","NetscriptInfiltration","NetscriptUserInterface","NetscriptFormulas","NetscriptStockMarket","NetscriptGrafting","NetscriptHacknet","_hackAmount","hackAmount","_threads","_time","moneyBefore","moneyAfter","logGrowPercent","influenceStockThroughServerGrow","_growth","_cores","maxThreadsNeeded","end","_format","possibleLogs","_pid","openPortCount","sshPortOpen","ftpPortOpen","smtpPortOpen","httpPortOpen","sqlPortOpen","_scriptname","scriptServer","spawnDelay","killByPid","_safetyguard","safetyguard","scriptsKilled","_destination","_source","destServer","currServ","txtFile","newFile","sourceScript","oldScript","newScript","_grep","grep","allFiles","processes","speed","production","purchaseCost","coreCost","levelCost","_filename","_ram","_name","hostnameStr","_port","_mode","tryWrite","_file","status","suc","_n","_milliseconds","_milliPrecision","milliseconds","milliPrecision","_message","_variant","_duration","_txt","_url","_target","$","writeToTextFile","fail","_host","source_is_txt","dest_is_txt","source_file","dest_file","Flags","NetscriptExtra","getFunctionNames","functionNames","wrappedNS","wrapAPI","moneyHacked","orgName","percTotalMoneyHacked","moneyGrown","percTotalMoneyGrown","performanceMult","cyclesOfWork","compName","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","won","baseDeathChance","modifiedDeathChance","killMember","getRespectNeededToRecruitMember","getWantedPenalty","memberTotal","totalRespect","lostRespect","earnedRespect","ascend","getDiscount","getAllTaskNames","taskName","tooltiptext","reqRep","TerminalHelpText","TemplatedHelpTexts","HelpTexts","analyze","backdoor","cat","check","cls","cp","expr","free","help","history","lscpu","mem","nano","sudov","unalias","GameEnv","Platform","getErrorForDisplay","errorInfo","isElectron","Production","toDisplay","language","cookiesEnabled","cookieEnabled","doNotTrack","indexedDb","platform","Steam","Browser","environment","getErrorMetadata","Development","componentStack","Tracking","Retirement","Investigation","Raid","initValue","GameOptionsPage","disablePadding","uniqueId","Hand","cards","addCards","removeByIndex","StockTickerTxButton","DummyGrid","DummyGift","fragments","ghostGrid","getContract","contractName","removeContract","existingPartialExeIndex","findIndex","ret","CodingContractModal","setProps","setAnswer","contractType","tries","BitFlumeEvent","BitFlumeModal","terminalCommandHistory","generalMethods","workMethods","processWork","augmentationMethods","canAccessBladeburner","bladeburnerMethods","startBladeburner","canAccessCorporation","corporationMethods","startCorporation","gangMethods","serverMethods","InvitationModal","opt_initFunc","sourceCode","sourceCodeLineOffset","acorn","PARSE_OPTIONS","initFunc_","paused_","polyfills_","functionCounter_","stepFunctions_","stepMatch","methodName","createScope","stripLocations_","State","stateStack","nodeConstructor","READONLY_DESCRIPTOR","configurable","writable","NONENUMERABLE_DESCRIPTOR","READONLY_NONENUMERABLE_DESCRIPTOR","VARIABLE_DESCRIPTOR","STEP_ERROR","SCOPE_REFERENCE","VALUE_IN_DESCRIPTOR","toStringCycles_","getErrorLineNumber","getErrorLineNumberMessage","appendCode","populateScope_","initGlobalScope","OBJECT_PROTO","FUNCTION_PROTO","initFunction","initObject","proto","OBJECT","initArray","initString","initBoolean","initNumber","initDate","initRegExp","initError","initMath","initJSON","thisInterpreter","EvalError","parseInt","strFunctions","decodeURI","encodeURI","wrapper","nativeFunc","throwException","URI_ERROR","FUNCTION","ARRAY","ARRAY_PROTO","REGEXP","REGEXP_PROTO","DATE","DATE_PROTO","identifierRegexp","var_args","calledWithNew","newFunc","createObjectProto","arguments","argsStr","SYNTAX_ERROR","parentScope","boxThis","isObject","getScope","strict","box","getPrototype","thisArg","func_","funcThis_","arguments_","arrayPseudoToNative","TYPE_ERROR","doneExec_","setNativeFunctionPrototype","valueOf","throwIfNullUndefined","properties","arrayNativeToPseudo","descriptor","preventExtensions","getOwnPropertyDescriptor","setter","hasValue","pseudoDescriptor","propertyIsEnumerable","newArray","first","legalArrayLength","RANGE_ERROR","class","reverse","howmany","opt_begin","opt_end","opt_separator","iLength","getProperty","hasProperty","element","isa","jLength","searchElement","opt_fromIndex","STRING","fromCharCode","functions","compareString","locales","localeCompare","separator","jsList","search","newSubstr","BOOLEAN","NUMBER","numConsts","fractionDigits","toExponential","digits","precision","toPrecision","radix","Function","UTC","pattern","rgx","populateRegExp","lastIndex","opt_message","newError","createObject","createErrorSubclass","EVAL_ERROR","REFERENCE_ERROR","myMath","mathConsts","numFunctions","myJSON","nativeObj","child","legalArrayIndex","Value","strs","pseudoRegexp","nativeRegexp","ignoreCase","createFunction","opt_constructor","illegalConstructor","asyncFunc","pseudoDate","pseudoObj","opt_cycles","pseudo","native","nativeArray","pseudoArray","lineNum","isGetter","TypeError","opt_descriptor","ReferenceError","defObj","firstNode","expression","createSpecialScope","opt_scope","getValueFromScope","prevNode","setValueToScope","nodeClass","isConstructor","getValue","Completion","NORMAL","BREAK","CONTINUE","RETURN","THROW","errorClass","lineNumErrorMsg","unwind","lineNumberMsg","cv","labels","isLoop","isSwitch","realError","errorTable","RangeError","URIError","createGetter_","funcThis","doneCallee_","doneArgs_","createSetter_","elements","n_","array_","doneLeft_","doneRight_","leftReference_","doneGetter_","leftValue_","leftValue","doneSetter_","setterValue_","rightValue","directEval_","funcNode","paramName","paramValue","argsList","evalNode","argsWithCallback","done_","throwValue","mode_","test_","doneInit_","doneObject_","variable_","object_","visited_","name_","gotPropName","props_","doneVariable_","doneProperty_","properties_","kinds","switchValue_","defaultCase_","index_","switchCase","matched_","tested_","doneBlock_","doneHandler_","doneFinalizer_","leftSide_","changeValue","returnValue","declarations","declarationNode","init_","doneBody_","numServerGrowthCycles","numServerGrowthCyclesAdjusted","ANSI_ESCAPE","lineClass","ANSIITypography","memo","parts","groups","matchAll","startIndex","stopIndex","partText","paragraph","part","spanStyle","COLOR_MAP_BRIGHT","1","2","3","4","5","6","7","COLOR_MAP_DARK","codeParts","nextStyleKey","codePart","ir","ig","ib","grey","ansi2rgb","fontWeight","textDecoration","ansiCodeStyle","isEmpty","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","findSleevePurchasableAugs","ownedAugNames","availableAugs","isAvailableForSleeve","validMults","StaneksGiftEvents","maxClearanceLevel","TechVendor","techVendorMaxRam","techVendorMinRam","University","AevumCasino","Casino","Special","NewTokyoArcade","Sector12CarmichaelSecurity","Sector12CityHall","Hospital","Slums","WorldStockExchange","ChongqingChurchOfTheMachineGod","IshimaGlitch","matchEnding","zip","JSZip","zipFiles","fileNames","fileContents","zipFn","generateAsync","FileSaver","saveAs","v2ModalOpen","openV2Modal","V2Modal","stealthIcon","xmlns","viewBox","killIcon","ActionLevel","isActive","canIncrease","canDecrease","Autolevel","TeamSizeButton","graftableAug","canGraft","AugPreReqsChecklist","preAug","GraftingRoot","graftableAugmentations","selectedAug","setSelectedAug","graftOpen","setGraftOpen","selectedAugmentation","switchSortOrder","newOrder","Cost","getAugsSorted","BlinkingCursor","setOn","StyleEditorButton","styleEditorOpen","setStyleEditorOpen","ThemeEditorButton","themeEditorOpen","setThemeEditorOpen","ThemeCollaborate","DeleteGameButton","modalOpened","setModalOpened","SoftResetButton","noConfirmation","PreReqs","ownedPreReqs","hasPreReqs","Requirement","gridArea","Exclusive","PurchasableAugmentations","augNames","PurchasableAugmentation","owned","sleeveAugs","canPurchase","float","gridTemplateAreas","TravelAgencyRoot","setDestination","startTravel","symbolsLoaded","symbols","SetupTextEditor","populate","exclude","OpenScript","lastPosition","model","openScripts","currentScript","Root","editorRef","monacoRef","vimStatusRef","vimEditor","setVimEditor","setEditor","setFilter","searchExpanded","setSearchExpanded","setRAM","ramEntries","setRamEntries","updatingRam","setUpdatingRam","decorations","setDecorations","optionsOpen","setOptionsOpen","setOptions","insertSpaces","ramInfoOpen","setRamInfoOpen","dimensions","setDimensions","regenerateModel","createModel","debouncedHandleResize","updateRAM","keydown","ctrlKey","metaKey","require","initVimMode","VimMode","Vim","defineEx","saveNQuit","defineAction","_cm","nTabs","currIndex","currentTabIndex","onTabClick","nextIndex","mapCommand","context","dispose","debouncedSetRAM","useMemo","newCode","entriesDisp","scriptToSave","textFile","cleanCode","ns1","ns2","curIndex","isDisposed","setModel","setPosition","revealLineInCenter","onTabClose","closingScript","savedScriptIndex","savedScriptCode","serverScriptIndex","indexOffset","getServerCode","openScript","serverScript","handleFilterChange","handleExpandSearch","filteredOpenScripts","editorHeight","tabMaxWidth","tabTextWidth","tabIconWidth","onDragEnd","items","endIndex","removed","reorder","droppableId","direction","provided","snapshot","innerRef","droppableProps","isDraggingOver","spellCheck","externalScript","colorProps","borderColor","iconButtonStyle","scriptTabText","serverScriptCode","dirty","draggableId","disableInteractiveElementBlocking","draggableProps","dragHandleProps","flexShrink","onTabUpdate","beforeMount","languages","registerCompletionItemProvider","provideCompletionItems","suggestions","kind","CompletionItemKind","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","getLanguages","loader","tokenizer","libSource","typescript","javascriptDefaults","addExtraLib","typescriptDefaults","onMount","Position","loading","defaultLanguage","defaultValue","newPos","newArr","tempScript","awaitWarning","newDecorations","deltaDecorations","startLineNumber","startColumn","endLineNumber","endColumn","isWholeLine","glyphMarginClassName","glyphMarginHoverMessage","infLoop","glyphMargin","getAction","getSubdirectories","t_dir","processFile","subdir","containsFiles","dirWithTrailingSlash","makeScriptBlob","compile","shouldCompile","uurls","_getScriptUrls","loadedModule","isDependencyOutOfDate","scriptModuleSequenceNumber","depScript","seen","urlStack","ranges","importNodes","ExportNamedDeclaration","ExportAllDeclaration","transformedCode","matchingScripts","importedScript","urls","blob","ScriptUrl","vargs","schema","numDashes","libarg","argv","defaultInterpreter","TablePaginationActionsAll","rowsPerPage","onPageChange","BitnodeMultiplierDescription","BitNodeMultipliersDisplay","maxSfLevel","columnCount","columnGap","GeneralMults","SkillMults","FactionMults","AugmentationMults","HackingMults","PurchasedServersMults","StockMults","CrimeMults","InfiltrationMults","CompanyMults","GangMults","CorporationMults","BladeburnerMults","StanekMults","BNMultTable","rowsArray","rowData","marginBottom","sectionName","extraSize","StnakesGiftPowerMultiplier","Cell","cellProps","onMouseEnter","Grid","activeGrid","randomColor","elems","newNs2Template","detectSimpleScriptGlob","globString","globDatabase","parsedGlob","glob","preGlob","postGlob","globError","globMatches","globAgainst","parseSimpleScriptGlob","commonEditor","scriptEditorRouteOptions","filesToLoadOrCreate","globSearch","filepath","getFilepath","fileIsNs2","isNs2","CursorPositions","saveCursor","column","HammingEncode","enc","data_bits","parity","HammingEncodeProperly","HammingDecode","bits","bit","ans","automate","stop","findNode","setParent","queue","getMultiplierHelper","getProductProductionMultiplier","advertisingMult","employeeChaMult","employeeCreMult","employeeEffMult","employeeIntMult","productionMult","productProductionMult","salesMult","sciResearchMult","storageMult","StanekConstants","RAMBonus","BaseSize","MaxSize","detect","hasChanges","orig","nf","fl","backups","currPos","nextPosName","corpName","additionalShares","warehouseApi","OfficeApi","Engine","_lastUpdate","updateGame","expForOtherSleeves","decrementAllCounters","checkCounters","Counters","autoSaveCounter","updateSkillLevelsCounter","updateDisplays","updateDisplaysLong","updateActiveScriptsDisplay","createProgramNotifications","augmentationsNotifications","passiveFactionGrowth","mechanicProcess","contractGeneration","achievementsCounter","counterName","warningToast","warnAutosaveDisabled","adjustedCycles","startExploits","setupUncaughtPromiseHandler","timeOffline","numCyclesOffline","numContracts","offlineReputation","offlineHackingIncome","offlineProductionFromHacknetNodes","hacknetProdInfo","timeOfflineString","_thisUpdate","requestAnimationFrame","LoadingScreen","setShow","loaded","setLoaded","reason","doLoad","ignoreQueued","stacks","calculateEntropy","typ","invalidArgs","baseSize","charge","af","cotmg","inBonus","updateMults","effect","boost","neighboor","CalculateEffect","canPlace","rootX","rootY","newFrag","aFrag","place","findFragment","clearCharge","Void","StatsElement","EarningsElement","ServerType","All","Foreign","Owned","Purchased","ServerDropdown","isValidServer","purchased","serverType","purchase","DECK_COUNT","Result","Blackjack","bet","canStartGame","playerHand","deck","safeDrawCard","dealerHand","gameInProgress","Pending","getTrueHandValue","finishGame","Tie","PlayerWonByBlackjack","DealerWon","hand","handValues","getHandValue","valuesUnder21","isHandBusted","newHand","newDealerHand","PlayerWon","dealerHandValue","playerHandValue","betInput","wager","wagerInvalid","wagerInvalidHelperText","startGame","Deck","render","playerHandValues","getHandDisplayValues","dealerHandValues","wagerOnChange","helperText","playerHit","playerStay","startOnClick","elevation","card","prev","hidden","red","ReactCard","Clubs","Spades","allFactionAugs","factionAugs","factionAug","TickerHeaderFormatData","longestName","longestSymbol","AchievementEntry","cssFiltersUnlocked","cssFiltersLocked","isUnlocked","mainColor","achievedOn","unlocked","colorFilters","Color","hueRotate","angle","PI","sin","cos","multiply","grayscale","sepia","saturate","matrix","newR","newG","newB","brightness","linear","contrast","slope","intercept","invert","hsl","Solver","targetHSL","reusedColor","solve","solveNarrow","solveWide","css","best","initial","spsa","A1","iters","bestLoss","deltas","highArgs","lowArgs","ck","lossDiff","ak","fix","filters","colorHSL","getFiltersFromHex","hex","rgb","hexToRgb","Theme","credit","screenshot","img1","reference","outputHistory","startHack","startGrow","startWeaken","startBackdoor","startAnalyze","finishHack","oldSec","newSec","finishGrow","finishWeaken","finishBackdoor","finishAnalyze","isHacknet","org","canRunScripts","hackingSkill","security","hackingChance","numPort","getProgressText","getFile","getLitFile","lit","currDir","setcwd","contractOpen","executeScanAnalyzeCommand","visited","depthQueue","newS","titleDashes","connectToServer","executeCommands","commandHistory","commandHistoryIndex","executeCommand","n00dlesServ","commandName","scananalyze","apr1","removeBracketsFromArrayString","strCpy","removeQuotesFromString","convert2DArrayToString","_data","nums","ways","maxLen","padStart","spiral","u","col","playerAns","_arr","reach","jumps","lastJump","jumpedFrom","intervals","numIntervals","interval","sanitizedResult","sanitizedAns","B","C","ansArr","ipInAns","maxCur","maxSoFar","hold1","MIN_SAFE_INTEGER","hold2","release1","release2","prices","hold","rele","cur","createTriangleRecurse","numLevels","createTriangle","triangle","dp","numRows","numColumns","currentRow","gridString","grid","obstacleGrid","dstY","dstX","minPathLength","distanceFactor","distance","MinHeap","validPosition","neighbors","yN","xN","changeWeight","yQ","xQ","ansX","ansY","roll","dfs","pair","sanitizedPlayerAnsArr","resultInAnswer","numDigits","digitsArray","evaluated","multed","_alteredBit","_buildArray","_randomIndex","edges","shuffle","vertexShuffler","neighbourhood","vertex","adjLeft","adjRight","coloring","initialVertex","frontier","validColors","aColor","bColor","plaintext","ans_plain","run_length","compressed","BinHeap","heapifyUp","heapifyDown","predicate","heapOrderABeforeB","tmp","toSwap","weightA","weightB","requireHackingLevel","targetServer","numAugReq","ipaddress","byteRange","formattedHours","getHours","formattedMinutes","getMinutes","formattedSeconds","getSeconds","FactionWorkStats","baseStats","AllSoftwarePositions","AllITPositions","AllNetworkEngineerPositions","SecurityEngineerPositions","AllTechnologyPositions","AllBusinessPositions","AllAgentPositions","AllSecurityPositions","AllSoftwareConsultantPositions","AllBusinessConsultantPositions","SoftwarePositionsUpToHeadOfEngineering","SoftwarePositionsUpToLeadDeveloper","BusinessPositionsUpToOperationsManager","WaiterOnly","EmployeeOnly","PartTimeWaiterOnly","PartTimeEmployeeOnly","OperationsManagerOnly","CEOOnly","effectText","costPerLevel","hasTargetServer","collapsedSum","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","createDescription","checkSleeveAPIAccess","checkSleeveNumber","sleeveNumber","sl","_sleeveNumber","_crimeRoughName","crimeRoughName","_universityName","_className","_cityName","acompanyName","_factionName","_workType","_gymName","_stat","jobTitle","maxHp","agilityExp","charismaExp","companyRep","crimeMoney","crimeSuccess","defenseExp","dexterityExp","factionRep","hackingExp","strengthExp","workMoney","timeWorked","workHackExpGain","workStrExpGain","workDefExpGain","workDexExpGain","workAgiExpGain","workChaExpGain","workMoneyGain","workRepGain","purchasableAugs","_augName","_basePrice","_action","_contract","devMenu","doc","completely_unused_field","real_document","recur","guess","bcrypt","getHacknetNode","hi","_i","hasUpgraded","timeOnline","totalProduction","_upgName","_count","_upgTarget","checkStanekAPIAccess","_ctx","_rootX","_rootY","_rotation","_fragmentId","fragmentId","getLocationsWithInfiltrations","_location","locationName","tradeRep","sellCash","SoARep","calculateInfiltrationData","newTheme","currentTheme","errors","newStyles","currentStyles","checkBladeburnerAccess","skipjoined","apiDenied","bladeburnerDenied","checkBladeburnerCity","getBladeburnerActionObject","_blackOpName","blackOpName","_type","_level","_autoLevel","_skillName","_size","getCodingContract","returnReward","answerStr","is2DArray","answerComponents","creward","upgradeName","materialName","checkAccess","api","getSafeDivision","numAdVerts","_divisionName","_amt","_materialName","sell","sll","_productName","pCost","cityData","developmentProgress","_price","_all","_enabled","enabled","_designInvest","_marketingInvest","_qty","_sourceDivision","_sourceCity","_targetDivision","_targetCity","sourceDivision","targetDivision","targetCity","_on","_researchName","_employeeName","_job","_amount","amount","_costPerEmployee","_industryName","industryName","_upgradeName","_rate","dividendEarnings","_corporationName","_selfFund","corporationName","selfFund","fundingRound","percShares","funding","investShares","_numShares","initialSharePrice","_amountCash","amountCash","startingCost","reFac","robFac","aiFac","advFac","hwFac","getProductDescriptionText","getMaximumNumberProducts","additional","hasMaximumNumberProducts","calculateProductionFactors","multSum","cityMult","updateWarehouseSizeUsed","prodName","newInd","employeeSalary","officeLoc","processMaterialMarket","processProductMarket","popularityGain","awarenessGain","MAX_VALUE","processMaterials","processProducts","wh","foo","imp","buyAmt","maxAmt","smartBuy","smartSupplyStore","worseAmt","totalSize","freeSpace","maxProd","getOfficeProductivity","totalMatSize","reqMatName","normQty","producableFrac","reqMatQtyNeeded","fooProd","fooI","businessFactor","getBusinessFactor","advertisingFactor","getAdvertisingFactors","marketFactor","getMarketFactor","markupLimit","numerator","sqrtNumerator","sqrtDenominator","denominator","sqrt","optimalPrice","marketTa2Price","sellAmt","totalExp","expI","amtStr","expIndustry","expWarehouse","processProduct","totalProfit","forProduct","netStorageSize","sCostString","businessProd","calculateEffectWithFactors","awarenessFac","popularityFac","ratioFac","updateResearchTree","expFac","linearFac","morale","happiness","energy","det","trainingEff","effCre","effEff","prodBase","checkFormulasAccess","_favor","_rep","_player","_exp","_mult","_skill","_server","_startingLevel","_extraLevels","_costMult","_startingRam","_startingCore","_extraCores","extraCores","_ramUsed","_maxRam","HScalculateHashGainRate","HScalculateLevelUpgradeCost","HScalculateRamUpgradeCost","HScalculateCoreUpgradeCost","_startingCache","_extraCache","extraCache","HScalculateCacheUpgradeCost","HScalculateServerCost","_gang","_member","_task","_points","checkTixApiAccess","getStockFromSymbol","_symbol","_shares","_posType","sanitizedPosType","_pos","orderPos","ltype","lpos","stockMarketOrders","forecast","checkGraftingAPIAccess","_focus","wasFocusing","craftableAug","getPlayerFields","offenders","processScript","formatRules","formatOffenders","off","fileline","rule","textfield","Language","InteractiveTutorialRoot","nsSelectionOpen","setNSSelectionOpen","setLanguage","tutorialScriptExtension","NS1","tutorialScriptName","contents","canNext","square","tab","updateOptions","readOnly","overviewContainer","visibilityToggle","collapse","Overview","setX","setY","CurrentIcon","KeyboardArrowUpIcon","KeyboardArrowDownIcon","LeftIcon","SchoolIcon","EqualizerIcon","fakeDrag","triggerMouseEvent","eventType","clickEvent","createEvent","initEvent","dispatchEvent","Loading","onStop","defaultPosition","onDoubleClick","openedMixin","transitions","easing","sharp","enteringScreen","closedMixin","leavingScreen","up","Drawer","styled","shouldForwardProp","active","borderLeft","listitem","SidebarRoot","hackingOpen","setHackingOpen","characterOpen","setCharacterOpen","worldOpen","setWorldOpen","helpOpen","setHelpOpen","flashTerminal","flashStats","flashActiveScripts","flashHacknet","flashCity","flashTutorial","augmentationCount","invitationsCount","programCount","getAvailableCreatePrograms","canOpenFactions","canOpenAugmentations","canOpenSleeves","canCorporation","canGang","canJob","canStockMarket","canBladeburner","canStaneksGift","clickTerminal","clickScriptEditor","clickStats","clickActiveScripts","clickCreateProgram","clickFactions","clickAugmentations","clickHacknet","clickCity","clickTravel","clickJob","clickBladeburner","clickGang","clickTutorial","clickOptions","handleShortcuts","altKey","E","H","R","P","F","U","G","anchor","timeout","unmountOnExit","clsx","badgeContent","NeuroFluxDisplay","EntropyDisplay","AugmentationsRoot","installOpen","setInstallOpen","InstalledAugmentations","sourceAugs","Alphabetically","aug1","aug2","BitNodeModifiedStats","MultiplierList","listItems","augmented","bnMult","py","disableTypography","PlayerMultipliers","augP","augObj","calculateAugmentedStats","leftColData","rightColData","PurchasedAugmentations","displayName","enterNextDelay","safeGetSf","sfNum","sfObj","getMaxLevel","SourceFilesElement","sourceSfs","sf1","sf2","selectedSf","setSelectedSf","DevMenuRoot","General","setError","setCorporationName","gangFaction","setGangFaction","addMoney","TransitionProps","expandIcon","bigNumber","modifyExp","modifier","modifyKarma","resetExperience","modifyFactionRep","AllFaction","modifyFactionFavor","labelId","arial-label","setAugmentation","validSFN","setSF","sfN","sfLvl","setAllSF","setProgram","AllPrograms","Servers","setServer","setCompany","modifyCompanyRep","AllCompanies","modifyCompanyFavor","modifyBladeburnerRank","modify","modifyBladeburnerCycles","modifyGangCycles","modifyCorporationFunds","modifyCorporationCycles","CodingContracts","setCodingcontract","cc","stockPrice","setStockPrice","setStockSymbol","processStocks","inputSymbols","SM","stocks","sleeveSetStoredCycles","Stanek","modCycles","modCharge","TimeSkip","timeskip","SaveFile","importInput","setSaveFile","restoreScripts","setRestoreScripts","restoreAugs","setRestoreAugs","restoreSFs","setRestoreSFs","File","FileList","ii","playerAchievement","setPlayerAchievements","achieved","grantAchievement","removeAchievement","Entropy","BladeburnerRoot","travelOpen","setTravelOpen","inFaction","wordBreak","TravelModal","nopadding","preformatted","Line","Console","setCommand","consoleInput","consoleHistoryIndex","setConsoleHistoryIndex","Logs","tabIndex","inputRef","prevCommand","currentTarget","scrollHook","scrollTop","scrollHeight","AllPages","GeneralActionPage","GeneralActionList","actions","GeneralActionElem","computedActionTimeCurrent","actionData","ContractPage","ContractList","ContractElem","Contracts","StealthIcon","KillIcon","OperationPage","OperationList","OperationElem","TeamSizeModal","BlackOpPage","BlackOpList","blackopName","blackop","BlackOpElem","hasReqdRank","SkillPage","valid","onUpgrade","SkillList","SkillElem","canLevel","GangRoot","ManagementSubpage","GangStats","territoryStr","BonusTime","CyclerPerSecond","bonusMillis","GangMemberList","ascendOnly","setAscendOnly","onRecruit","GangMemberCard","GangMemberCardContent","ascendOpen","setAscendOpen","borderRightWidth","onAscend","borderLeftWidth","onTaskChange","GangMemberStats","asc","KillScriptsModal","companyPositionName","bn11Mult","TaskSelector","setCurrentTask","contextMember","TaskDescription","AscensionModal","RecruitButton","RecruitModal","setName","recruit","onKeyUp","TerritorySubpage","gangNames","infoOpen","setInfoOpen","formatTerritory","OtherGangTerritory","clashVictoryChance","TerritoryInfoModal","NextReveal","PurchasedUpgrade","UpgradeButton","GangMemberUpgradePanel","currentCategory","setCurrentCategory","filterUpgrades","weaponUpgrades","armorUpgrades","vehicleUpgrades","rootkitUpgrades","augUpgrades","categories","Weapons","Vehicles","Rootkits","EquipmentsSubpage","CorporationRoot","setDivisionName","canExpand","industryType","MainPanel","CityTabs","setCity","cityStateSetter","SwitchButton","manualMode","switchMode","ManualManagement","setEmployee","employeePositionSelectorInitialValue","employeePositions","positionNames","EmployeeCount","next","currJob","nextJob","nextUna","AutoManagement","vechain","totalMorale","totalHappiness","totalEnergy","avgMorale","avgHappiness","avgEnergy","currUna","IndustryOffice","upgradeOfficeSizeOpen","setUpgradeOfficeSizeOpen","throwPartyOpen","setThrowPartyOpen","employeeManualAssignMode","setEmployeeManualAssignMode","UpgradeSizeButton","upgradeSize","UpgradeOfficeSizeModal","upgradeCost","upgradeCost15","maxMult","maxNum","multIncrease","upgradeCostMax","ThrowPartyModal","setCost","canParty","EffectText","MakeProductButton","makeOpen","setMakeOpen","hasMaxProducts","createProductButtonText","IndustryOverview","researchOpen","setResearchOpen","advertisingInfo","advertisingFactors","totalAdvertisingFac","convertEffectFacToGraphic","MakeProductModal","allCities","design","setDesign","marketing","setMarketing","createProductPopupText","Upgrade","wrapInTooltip","ele","but","ResearchModal","retainHeight","WarehouseRoot","smartSupplyOpen","setSmartSupplyOpen","canAffordUpgrade","stateText","mats","isInStock","isRelevant","breakdownItems","breakdown","previous","IndustryWarehouse","EmptyWarehouse","Leftover","setChecked","SmartSupplyModal","ProductElem","sellOpen","setSellOpen","limitOpen","setLimitOpen","discontinueOpen","setDiscontinueOpen","cancelOpen","setCancelOpen","marketTaOpen","setMarketTaOpen","nfB","hasUpgradeDashboard","sellButtonText","limitProductionButtonText","DiscontinueProductModal","LimitProductProductionModal","setLimit","SellProductModal","iQty","setQty","setPx","initialPrice","MarketTA2","ProductMarketTaModal","CancelProductModal","MaterialElem","purchaseMaterialOpen","setPurchaseMaterialOpen","exportOpen","setExportOpen","sellMaterialOpen","setSellMaterialOpen","materialMarketTaOpen","setMaterialMarketTaOpen","limitProductionOpen","setLimitProductionOpen","tutorial","purchaseButtonText","limitMaterialButtonText","disablePurchaseLimit","ExportModal","possibleDivisions","defaultDivision","setIndustry","setAmt","removeExport","currentDivision","possibleCities","newCost","setNewCost","MaterialMarketTaModal","SellMaterialModal","setPrice","BulkPurchaseSection","setBuyAmt","setDisabled","BulkPurchaseText","parsedAmt","PurchaseMaterialModal","purchaseMaterial","LimitMaterialProductionModal","IndustryProductEquation","reqs","reqAmt","ExpandNewCity","ExpandIndustryTab","possibleIndustries","newIndustry","multRows","appendMult","DividendsStats","PublicButtons","PrivateButtons","BribeButton","Upgrades","findInvestorsopen","setFindInvestorsopen","goPublicopen","setGoPublicopen","fundingAvailable","findInvestorsTooltip","upgradeData","sellSharesOpen","setSellSharesOpen","buybackSharesOpen","setBuybackSharesOpen","issueNewSharesOpen","setIssueNewSharesOpen","issueDividendsOpen","setIssueDividendsOpen","sellSharesOnCd","sellSharesTooltip","issueNewSharesOnCd","issueNewSharesTooltip","canBribe","totalDividends","playerEarnings","storedTime","LevelableUpgrade","xs","UU","BribeFactionModal","selectedFaction","setSelectedFaction","getRepText","SellSharesModal","setShares","ProfitIndicator","BuybackSharesModal","CostIndicator","IssueDividendsModal","percent","setPercent","canIssue","maxNewSharesUnrounded","maxNewShares","newShares","IssueNewSharesModal","issueNewShares","privateShares","FindInvestorsModal","GoPublicModal","InfiltrationRoot","setStart","StartingDifficulty","Difficulty","Reward","cancel","Stage","minigames","SlashGame","BracketGame","BackwardGame","BribeGame","CheatCodeGame","Cyberpunk2077Game","MinesweeperGame","WireCuttingGame","setLevel","stage","setStage","Countdown","results","setResults","gameIds","setGameIds","lastGames","nextGameId","ids","setupNextGame","pushResult","stageComponent","onFinish","Minigame","MiniGame","onSuccess","Sell","onFailure","automated","Progress","difficulties","timer","words","makeAnswer","setGuess","hasAugment","BACKSPACE","shiftKey","ignorableKeyboardEvent","nextGuess","setRight","OPEN_BRACKET","LESS_THAN","OPEN_PARENTHESIS","OPEN_BRACE","generateLeftSide","CLOSE_PARENTHESIS","CLOSE_BRACKET","CLOSE_BRACE","GREATER_THAN","getChar","positive","option","negative","shuffleArray","makeChoices","correctIndex","setCorrectIndex","setIndex","currentChoice","choice","defaultColor","disabledColor","upColor","downColor","choiceColor","upIndex","upDistance","downIndex","downDistance","onCorrectIndex","newIndex","arrows","arrow","generateCode","puzzle","randChar","generatePuzzle","answers","generateAnswers","currentAnswerIndex","setCurrentAnswerIndex","setPos","flatGrid","isCorrectAnswer","optionColor","move","mines","minefield","field","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","rates","elapsed","stopTooltip","comp","tooltipInfo","GameOptionsRoot","currentTab","setCurrentTab","SYSTEM","setTab","CurrentOptionsPage","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","timestampFormat","setTimestampFormat","setLocale","_event","INTERFACE","GAMEPLAY","MISC","SideBarTab","sideBarProps","tabName","GameOptionsSidebar","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","confirmedImportGame","method","alt","ServerAccordion","FileDiagnosticModal","FontFamilyField","refreshId","errorText","setErrorText","setFontFamily","LineHeightField","setLineHeight","StyleEditorModal","setRefreshId","customStyle","setCustomStyle","persistToSettings","endIcon","ColorEditor","onColorChange","hideTextfield","deferred","newColor","disableAlpha","ThemeEditorModal","customTheme","setCustomTheme","setTemplateTheme","placement","maxRows","importedTheme","SleeveRoot","FAQOpen","setFAQOpen","SleeveElem","statsOpen","setStatsOpen","earningsOpen","setEarningsOpen","augmentationsOpen","setAugmentationsOpen","abc","setABC","doing","MoreEarningsModal","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","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","_locationName","_programName","baseserver","installTime","wasWorking","_companyName","wasFocused","_field","repNeededToDonate","crimeTime","_nextBN","_callbackScript","nextBN","callbackScript","hackingRequirements","wrapFunction","helpers","wrappedAPI","functionPath","functionName","extra","branch","getNestedProperty","setNestedProperty","empty","nerf","normalServer","relative_filename","evaledDir","t_dst","dst","srcExt","tRes","sRes","sanitizedExpr","used","avail","usedPercent","incorrectUsage","newPath","allPrograms","allScripts","allTextFiles","allContracts","allMessages","folders","handleFn","dest","parsedFn","firstParentDir","msgOrLit","ClickableScriptRow","scriptLinksWrap","scriptLink","textDecorationLine","paddingRight","rowSplitArray","rowItem","onScriptLinkClick","ClickableMessageRow","linksWrap","link","onMessageLinkClick","FileType","postSegments","group","segments","linked","filesPerRow","Folder","numThreads","verboseEntries","t_dest","sourcePath","destFile","destPath","positions","getCursor","re","matching","rsObj","delTarget","executableName","runContract","runProgram","commandArgs","threadFlag","tailFlag","toLocaleLowerCase","hasRoot","maxHostname","maxIP","args2","headers","currRunningScripts","numSpacesScript","spacesScript","numSpacesPid","spacesPid","numSpacesThread","spacesThread","tampering","last","minute","timeCompression","ReactDOM","globalThis","onbeforeunload"],"mappings":"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EACA,gGACA,0FACA,iFACA,+FACA,0FACA,4FACA,uEACA,wHACA,sFACA,iFACA,KAGIC,EACWj/D,GACN,CACJ,UAASA,wBACT,IACA,4GACA,4FACA,IACA,4CAA2CA,kDAC3C,kBAAiBA,yEACjB,IACA,YACA,IACA,OAAMA,YACN,OAAMA,qBACN,IACA,OAAMA,WACN,OAAMA,iBACN,KAKMk/D,EAA4B,CACvCh5E,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,KAEFi5E,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEFzxH,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEF0xH,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEFva,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEFwa,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEFjtE,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEFktE,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEFjtD,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEFktD,GAAI,CAAC,wBAAyB,IAAK,wEAAyE,KAC5G31F,SAAU,CACR,qCACA,IACA,mFACA,IACA,4GACA,IACA,kDACA,IACA,0CACA,IACA,0CACA,KAEF41F,KAAM,CACJ,wCACA,IACA,oFACA,IACA,oBACA,IACA,WACA,IACA,wBACA,IACA,qFACA,KAEFC,KAAM,CACJ,cACA,IACA,gIACA,gCACA,KAEFp/C,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEFlmE,KAAM,CACJ,cACA,IACA,uHACA,KAEFulH,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEFxmH,KAAM,CACJ,cACA,IACA,sGACA,KAEFvuB,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChFwiE,KAAM,CACJ,mDACA,IACA,4EACA,IACA,6EACA,4EACA,iFACA,4DACA,IACA,uCACA,IACA,qEACA,IACA,wCACA,IACA,qFACA,KAEFq0B,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,KAEFg+C,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEF57F,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEF67F,KAAMd,EAAgC,QACtCn9C,GAAI,CAAC,YAAa,IAAK,4DAA6D,KACpF8B,GAAI,CACF,mBACA,IACA,6GACA,IACA,kDACA,KAEFj7D,IAAK,CACH,sDACA,IACA,gDACA,IACA,sHACA,2GACA,gEACA,2DACA,2FACA,IACA,kHACA,iFACA,KAEFk3D,KAAM,CACJ,cACA,IACA,6HACA,2CACA,KAEF,eAAgB,CACd,mCACA,IACA,kGACA,wGACA,4EACA,IACA,uGACA,qGACA,0BACA,IACA,iHACA,yGACA,UACA,IACA,2GACA,sEACA,KAEF+B,IAAK,CACH,4CACA,IACA,8EACA,2GACA,oCACA,2FACA,IACA,6BACA,IACA,wCACA,KAEFo+C,MAAO,CAAC,eAAgB,IAAK,oEAAqE,KAElGj7C,KAAM,CA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,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,KAQJ69E,EAAYj+E,UAAUwvJ,WAAa,SAAUtyE,GAC3C,IACIozE,EADAN,EAAkBroJ,KAGtB2oJ,EAAU,SAAUluJ,GAElB,OADAA,EAAQymE,OAAOzmE,GACX4tJ,EAAgBmB,iBAElBxpJ,KAAKrI,KAAO8C,EACLuF,MAGAvF,GAGXuF,KAAK0sJ,OAAS1sJ,KAAKm2E,qBAAqBwyE,GAAS,GACjD3oJ,KAAKi2E,YAAYV,EAAO,SAAUv1E,KAAK0sJ,QAGvC1sJ,KAAKi2E,YACHj2E,KAAK0sJ,OACL,eACA1sJ,KAAKm2E,qBAAqBjV,OAAOyrF,cA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A,8GACA,8EACA,sCACA,qDACA,6GACA,iHACA,8CACC,iBAAgBnoL,EAAK,SAASA,EAAK,SACpC,6EACA,8CACAqL,KAAK,MAETykC,WAAY,EACZ6rB,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,SA4FGriD,KAAK,IAAMzQ,KAAK2O,SAAW,IAC3B3T,MAAM,EAAG,GACTwH,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,aAOKiO,KAAK,IAAMzQ,KAAK2O,SAAW,IAAK,IAGzCnV,KAAM,iCACNy5D,SAAU,GACVF,OAAQ,CAACusH,EAAgB9Q,KACvB,IAAKr9I,MAAMikD,QAAQkqG,GAAQ,MAAM,IAAI90K,MAAM,kCAC3C,MAAMrT,EAAOmoL,EAUb,MAPe,IAAInoL,EAAK,IACrBob,IAAI,CAAC1B,EAAGpZ,IACM,MAANoZ,EACHA,EACA6vD,OAAOyrF,cAAet7I,EAAEoB,WAAW,GAAK,IAAS9a,EAAK,GAAG8a,WAAWxa,EAAIN,EAAK,GAAGQ,SAAW,GAAM,KAEtG6K,KAAK,MACUgsK,M,6BCp2DxB,kCACA,MAAeuW,EAWbxlL,cACEC,KAAKrI,KAAO,GAIC,WACb,OAAOqI,KAAKrI,KAAKQ,OAIZM,KAAKgC,EA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+jI,EAAO7jI,SAAU1xE,EAAMm1M,YAC1C,kBAAC,IAAD,CAAOn2M,GAAI,CAAE4Q,QAAS,OAAQqnH,aAAc,SAAUtjB,GAAI,IACxD,kBAAC,IAAD,CAAYv+D,QAAQ,MAApB,UAAkCugK,EAA2B,GAAd,aAC/C,kBAAC,IAAD,CAAY10H,UAdlB,SAA+B37C,GAE7B,GADAA,EAAMmtF,iBALR,SAAgCntF,GAC9B,OAAOA,EAAMn1C,MAAQwZ,IAAIisM,WAActwK,EAAMuwK,UAA0B,UAAdvwK,EAAMn1C,KAAoBm1C,EAAMwxH,SAAWxxH,EAAM4xJ,OAKtG4e,CAAuBxwK,GAAQ,OACnC,MAAMywK,EAAY9zB,EAAQ38I,EAAMn1C,IAAIyW,cAC/B9Q,EAAOmjB,WAAW88L,GACdjgN,IAAWigN,EAAW/1M,EAAMi1M,YAChCS,EAASK,GAFqB/1M,EAAMm1M,aAUPA,UAAWn1M,EAAMm1M,YAC/C,kBAAC,IAAD,CAAYlzK,MAAO,CAAEwtB,UAAWkmJ,EAAa,OAAS,eAAiB7/M,GACvE,kBAAC,IAAD,KACGmsL,EACD,kBAAC,IAAD,SAkBV,MAAMuzB,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,CACF30H,QAAS,CAAE40H,MAAO,IAAM9yM,IAAK,EAAGzJ,IAAK,GACrC4nF,OAAQ,CAAE20H,MAAO,IAAM9yM,IAAK,EAAGzJ,IAAK,GACpC6nF,KAAM,CAAE00H,MAAO,IAAM9yM,IAAK,EAAGzJ,IAAK,GAClC8nF,WAAY,CAAEy0H,MAAO,KAAM9yM,IAAK,EAAGzJ,IAAK,IAkCnC,SAASy6M,EAAYzzM,GAC1B,MAAM68B,EAAyB,CAAE04K,MAAO,EAAG9yM,IAAK,EAAGzJ,IAAK,GACxDsnF,YAAYg1H,EAAct1M,EAAM68B,WAAYA,GAC5C,MAAM04K,EAAQ14K,EAAW04K,OAClBzwI,EAAOkxI,GAAYhsK,mBAAS,KAC5Bg7B,GAAQh7B,mBApCjB,SAA0BnN,GACxB,IAAIxmC,EAAM,GACV,MAAMg3C,EAAU,CAAC1jC,IAAIssM,aAActsM,IAAIusM,UAAWvsM,IAAIwsM,iBAAkBxsM,IAAIysM,YACxEvlN,IAAOoe,gBAAgB3V,IAAkBmoH,gBAAgB,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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([1554,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","export enum FactionNames {\n Illuminati = \"Illuminati\",\n Daedalus = \"Daedalus\",\n TheCovenant = \"The Covenant\",\n ECorp = \"ECorp\",\n MegaCorp = \"MegaCorp\",\n BachmanAssociates = \"Bachman & Associates\",\n BladeIndustries = \"Blade Industries\",\n NWO = \"NWO\",\n ClarkeIncorporated = \"Clarke Incorporated\",\n OmniTekIncorporated = \"OmniTek Incorporated\",\n FourSigma = \"Four Sigma\",\n KuaiGongInternational = \"KuaiGong International\",\n FulcrumSecretTechnologies = \"Fulcrum Secret Technologies\",\n BitRunners = \"BitRunners\",\n TheBlackHand = \"The Black Hand\",\n NiteSec = \"NiteSec\",\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n SpeakersForTheDead = \"Speakers for the Dead\",\n TheDarkArmy = \"The Dark Army\",\n TheSyndicate = \"The Syndicate\",\n Silhouette = \"Silhouette\",\n Tetrads = \"Tetrads\",\n SlumSnakes = \"Slum Snakes\",\n Netburners = \"Netburners\",\n TianDiHui = \"Tian Di Hui\",\n CyberSec = \"CyberSec\",\n Bladeburners = \"Bladeburners\",\n ChurchOfTheMachineGod = \"Church of the Machine God\",\n ShadowsOfAnarchy = \"Shadows of Anarchy\",\n}\n","import { ISelfInitializer, ISelfLoading } from \"../types\";\nimport { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from \"./SettingEnums\";\nimport { defaultTheme, ITheme } from \"../Themes/Themes\";\nimport { defaultStyles } from \"../Themes/Styles\";\nimport { WordWrapOptions } from \"../ScriptEditor/ui/Options\";\nimport { OverviewSettings } from \"../ui/React/Overview\";\nimport { IStyleSettings } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { defaultMonacoTheme, IScriptEditorTheme } from \"../ScriptEditor/ui/themes\";\n\n/**\n * Represents the default settings the player could customize.\n */\ninterface IDefaultSettings {\n /**\n * How many servers per page\n */\n ActiveScriptsServerPageSize: number;\n /**\n * How many scripts per page\n */\n ActiveScriptsScriptPageSize: number;\n /**\n * How often the game should autosave the player's progress, in seconds.\n */\n AutosaveInterval: number;\n\n /**\n * How many milliseconds between execution points for Netscript 1 statements.\n */\n CodeInstructionRunTime: number;\n\n /**\n * Render city as list of buttons.\n */\n DisableASCIIArt: boolean;\n\n /**\n * Whether global keyboard shortcuts should be recognized throughout the game.\n */\n DisableHotkeys: boolean;\n\n /**\n * Whether text effects such as corruption should be visible.\n */\n DisableTextEffects: boolean;\n\n /**\n * Whether overview progress bars should be visible.\n */\n DisableOverviewProgressBars: boolean;\n\n /**\n * Enable bash hotkeys\n */\n EnableBashHotkeys: boolean;\n\n /**\n * Timestamps format\n */\n TimestampsFormat: string;\n\n /**\n * Locale used for display numbers\n */\n Locale: string;\n\n /**\n * Limit the number of recently killed script entries being tracked.\n */\n MaxRecentScriptsCapacity: number;\n\n /**\n * Limit the number of log entries for each script being executed on each server.\n */\n MaxLogCapacity: number;\n\n /**\n * Limit how many entries can be written to a Netscript Port before entries start to get pushed out.\n */\n MaxPortCapacity: number;\n\n /**\n * Limit the number of entries in the terminal.\n */\n MaxTerminalCapacity: number;\n\n /**\n * Save the game when you save any file.\n */\n SaveGameOnFileSave: boolean;\n\n /**\n * Whether the player should be asked to confirm purchasing each and every augmentation.\n */\n SuppressBuyAugmentationConfirmation: boolean;\n\n /**\n * Whether the user should be prompted to join each faction via a dialog box.\n */\n SuppressFactionInvites: boolean;\n\n /**\n * Whether the user should be shown a dialog box whenever they receive a new message file.\n */\n SuppressMessages: boolean;\n\n /**\n * Whether the user should be asked to confirm travelling between cities.\n */\n SuppressTravelConfirmation: boolean;\n\n /**\n * Whether the user should be displayed a popup message when his Bladeburner actions are cancelled.\n */\n SuppressBladeburnerPopup: boolean;\n\n /**\n * Whether the user should be displayed a popup message on stock market actions.\n */\n SuppressTIXPopup: boolean;\n\n /**\n * Whether the user should be displayed a toast alert when the game is saved.\n */\n SuppressSavedGameToast: boolean;\n\n /**\n * Whether the user should be displayed a toast warning when the autosave is disabled.\n */\n SuppressAutosaveDisabledWarnings: boolean;\n\n /*\n * Whether the game should skip saving the running scripts for late game\n */\n ExcludeRunningScriptsFromSave: boolean;\n\n /*\n * Theme colors\n */\n theme: ITheme;\n\n /*\n * Interface styles\n */\n styles: IStyleSettings;\n\n /*\n * Use GiB instead of GB\n */\n UseIEC60027_2: boolean;\n\n /*\n * Character overview settings\n */\n overview: OverviewSettings;\n\n /**\n * If the game's sidebar is opened\n */\n IsSidebarOpened: boolean;\n\n /**\n * Script editor theme data\n */\n EditorTheme: IScriptEditorTheme;\n}\n\n/**\n * Represents all possible settings the player wants to customize to their play style.\n */\ninterface ISettings extends IDefaultSettings {\n /**\n * What order the player's owned Augmentations/Source Files should be displayed in\n */\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting;\n\n /**\n * What order the Augmentations should be displayed in when purchasing from a Faction\n */\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting;\n\n MonacoTheme: string;\n\n MonacoInsertSpaces: boolean;\n\n MonacoFontSize: number;\n\n MonacoVim: boolean;\n\n MonacoWordWrap: WordWrapOptions;\n}\n\nexport const defaultSettings: IDefaultSettings = {\n ActiveScriptsServerPageSize: 10,\n ActiveScriptsScriptPageSize: 10,\n AutosaveInterval: 60,\n CodeInstructionRunTime: 50,\n DisableASCIIArt: false,\n DisableHotkeys: false,\n DisableTextEffects: false,\n DisableOverviewProgressBars: false,\n EnableBashHotkeys: false,\n TimestampsFormat: \"\",\n Locale: \"en\",\n MaxRecentScriptsCapacity: 50,\n MaxLogCapacity: 50,\n MaxPortCapacity: 50,\n MaxTerminalCapacity: 500,\n SaveGameOnFileSave: true,\n SuppressBuyAugmentationConfirmation: false,\n SuppressFactionInvites: false,\n SuppressMessages: false,\n SuppressTravelConfirmation: false,\n SuppressBladeburnerPopup: false,\n SuppressTIXPopup: false,\n SuppressSavedGameToast: false,\n SuppressAutosaveDisabledWarnings: false,\n UseIEC60027_2: false,\n ExcludeRunningScriptsFromSave: false,\n IsSidebarOpened: true,\n\n theme: defaultTheme,\n styles: defaultStyles,\n overview: { x: 0, y: 0, opened: true },\n\n EditorTheme: defaultMonacoTheme,\n};\n\n/**\n * The current options the player has customized to their play style.\n */\n// tslint:disable-next-line:variable-name\nexport const Settings: ISettings & ISelfInitializer & ISelfLoading = {\n ActiveScriptsServerPageSize: defaultSettings.ActiveScriptsServerPageSize,\n ActiveScriptsScriptPageSize: defaultSettings.ActiveScriptsScriptPageSize,\n AutosaveInterval: defaultSettings.AutosaveInterval,\n CodeInstructionRunTime: 25,\n DisableASCIIArt: defaultSettings.DisableASCIIArt,\n DisableHotkeys: defaultSettings.DisableHotkeys,\n DisableTextEffects: defaultSettings.DisableTextEffects,\n DisableOverviewProgressBars: defaultSettings.DisableOverviewProgressBars,\n EnableBashHotkeys: defaultSettings.EnableBashHotkeys,\n TimestampsFormat: defaultSettings.TimestampsFormat,\n Locale: \"en\",\n MaxRecentScriptsCapacity: defaultSettings.MaxRecentScriptsCapacity,\n MaxLogCapacity: defaultSettings.MaxLogCapacity,\n MaxPortCapacity: defaultSettings.MaxPortCapacity,\n MaxTerminalCapacity: defaultSettings.MaxTerminalCapacity,\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting.AcquirementTime,\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting.Default,\n SaveGameOnFileSave: defaultSettings.SaveGameOnFileSave,\n SuppressBuyAugmentationConfirmation: defaultSettings.SuppressBuyAugmentationConfirmation,\n SuppressFactionInvites: defaultSettings.SuppressFactionInvites,\n SuppressMessages: defaultSettings.SuppressMessages,\n SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,\n SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,\n SuppressTIXPopup: defaultSettings.SuppressTIXPopup,\n SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,\n SuppressAutosaveDisabledWarnings: defaultSettings.SuppressAutosaveDisabledWarnings,\n UseIEC60027_2: defaultSettings.UseIEC60027_2,\n ExcludeRunningScriptsFromSave: defaultSettings.ExcludeRunningScriptsFromSave,\n IsSidebarOpened: defaultSettings.IsSidebarOpened,\n\n MonacoTheme: \"monokai\",\n MonacoInsertSpaces: false,\n MonacoFontSize: 20,\n MonacoVim: false,\n MonacoWordWrap: \"off\",\n\n theme: { ...defaultTheme },\n styles: { ...defaultStyles },\n overview: defaultSettings.overview,\n EditorTheme: { ...defaultMonacoTheme },\n init() {\n Object.assign(Settings, defaultSettings);\n },\n load(saveString: string) {\n const save = JSON.parse(saveString);\n Object.assign(Settings.theme, save.theme);\n delete save.theme;\n Object.assign(Settings.styles, save.styles);\n delete save.styles;\n Object.assign(Settings.overview, save.overview);\n delete save.overview;\n Object.assign(Settings.EditorTheme, save.EditorTheme);\n delete save.EditorTheme;\n Object.assign(Settings, save);\n },\n};\n","import numeral from \"numeral\";\nimport \"numeral/locales/bg\";\nimport \"numeral/locales/cs\";\nimport \"numeral/locales/da-dk\";\nimport \"numeral/locales/de\";\nimport \"numeral/locales/en-au\";\nimport \"numeral/locales/en-gb\";\nimport \"numeral/locales/es\";\nimport \"numeral/locales/fr\";\nimport \"numeral/locales/hu\";\nimport \"numeral/locales/it\";\nimport \"numeral/locales/lv\";\nimport \"numeral/locales/no\";\nimport \"numeral/locales/pl\";\nimport \"numeral/locales/ru\";\n\nimport { Settings } from \"../Settings/Settings\";\n\nconst extraFormats = [1e15, 1e18, 1e21, 1e24, 1e27, 1e30];\nconst extraNotations = [\"q\", \"Q\", \"s\", \"S\", \"o\", \"n\"];\nconst gigaMultiplier = { standard: 1e9, iec60027_2: 2 ** 30 };\n\nclass NumeralFormatter {\n // Default Locale\n defaultLocale = \"en\";\n\n constructor() {\n this.defaultLocale = \"en\";\n }\n\n updateLocale(l: string): boolean {\n if (numeral.locale(l) == null) {\n console.warn(`Invalid locale for numeral: ${l}`);\n\n numeral.locale(this.defaultLocale);\n return false;\n }\n return true;\n }\n\n format(n: number, format: string): string {\n // numeraljs doesnt properly format numbers that are too big or too small\n if (Math.abs(n) < 1e-6) {\n n = 0;\n }\n const answer = numeral(n).format(format);\n if (answer === \"NaN\") {\n return `${n}`;\n }\n return answer;\n }\n\n formatBigNumber(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n // TODO: leverage numeral.js to do it. This function also implies you can\n // use this format in some text field but you can't. ( \"1t\" will parse but\n // \"1s\" will not)\n formatReallyBigNumber(n: number, decimalPlaces = 3): string {\n const nAbs = Math.abs(n);\n if (n === Infinity) return \"∞\";\n for (let i = 0; i < extraFormats.length; i++) {\n if (extraFormats[i] < nAbs && nAbs <= extraFormats[i] * 1000) {\n return this.format(n / extraFormats[i], \"0.\" + \"0\".repeat(decimalPlaces)) + extraNotations[i];\n }\n }\n if (nAbs < 1000) {\n return this.format(n, \"0.\" + \"0\".repeat(decimalPlaces));\n }\n const str = this.format(n, \"0.\" + \"0\".repeat(decimalPlaces) + \"a\");\n if (str === \"NaNt\") return this.format(n, \"0.\" + \" \".repeat(decimalPlaces) + \"e+0\");\n return str;\n }\n\n formatHp(n: number): string {\n if (n < 1e6) {\n return this.format(n, \"0,0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatMoney(n: number): string {\n return \"$\" + this.formatReallyBigNumber(n);\n }\n\n formatSkill(n: number): string {\n if (n < 1e15) {\n return this.format(n, \"0,0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatExp(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatHashes(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatReputation(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatFavor(n: number): string {\n return this.format(n, \"0,0\");\n }\n\n formatSecurity(n: number): string {\n return n.toFixed(3);\n }\n\n formatRAM(n: number): string {\n if (Settings.UseIEC60027_2) {\n return this.format(n * gigaMultiplier.iec60027_2, \"0.00ib\");\n }\n return this.format(n * gigaMultiplier.standard, \"0.00b\");\n }\n\n formatPercentage(n: number, decimalPlaces = 2): string {\n const formatter: string = \"0.\" + \"0\".repeat(decimalPlaces) + \"%\";\n return this.format(n, formatter);\n }\n\n formatServerSecurity(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatRespect(n: number): string {\n return this.formatReallyBigNumber(n, 5);\n }\n\n formatWanted(n: number): string {\n return this.formatReallyBigNumber(n, 5);\n }\n\n formatMultiplier(n: number): string {\n return this.format(n, \"0,0.00\");\n }\n\n formatSleeveShock(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatSleeveSynchro(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatSleeveMemory(n: number): string {\n return this.format(n, \"0\");\n }\n\n formatPopulation(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStamina(n: number): string {\n return this.format(n, \"0.0\");\n }\n\n formatShares(n: number): string {\n if (n < 1000) {\n return this.format(n, \"0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatInfiltrationSecurity(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatThreads(n: number): string {\n return this.format(n, \"0,0\");\n }\n\n formatStaneksGiftHeat(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStaneksGiftCharge(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStaneksGiftPower(n: number): string {\n return this.format(n, \"0.00\");\n }\n\n parseCustomLargeNumber(str: string): number {\n const numericRegExp = new RegExp(\"^(-?\\\\d+\\\\.?\\\\d*)([\" + extraNotations.join(\"\") + \"]?)$\");\n const match = str.match(numericRegExp);\n if (match == null) {\n return NaN;\n }\n const [, number, notation] = match;\n const notationIndex = extraNotations.indexOf(notation);\n if (notationIndex === -1) {\n return NaN;\n }\n return parseFloat(number) * extraFormats[notationIndex];\n }\n\n largestAbsoluteNumber(n1: number, n2 = 0, n3 = 0): number {\n if (isNaN(n1)) n1 = 0;\n if (isNaN(n2)) n2 = 0;\n if (isNaN(n3)) n3 = 0;\n const largestAbsolute = Math.max(Math.abs(n1), Math.abs(n2), Math.abs(n3));\n switch (largestAbsolute) {\n case Math.abs(n1):\n return n1;\n case Math.abs(n2):\n return n2;\n case Math.abs(n3):\n return n3;\n }\n return 0;\n }\n\n parseMoney(s: string): number {\n // numeral library does not handle formats like 1s (returns 1) and 1e10 (returns 110) well,\n // so if more then 1 return a valid number, return the one farthest from 0\n const numeralValue = numeral(s).value();\n const parsed = parseFloat(s);\n const selfParsed = this.parseCustomLargeNumber(s);\n // Check for one or more NaN values\n if (isNaN(parsed) && isNaN(selfParsed)) {\n if (numeralValue === null) {\n // 3x NaN\n return NaN;\n }\n // 2x NaN\n return numeralValue;\n } else if (numeralValue === null && isNaN(selfParsed)) {\n // 2x NaN\n return parsed;\n } else if (isNaN(parsed)) {\n if (numeralValue === null) {\n // 2x NaN\n return selfParsed;\n }\n // 1x NaN\n return this.largestAbsoluteNumber(numeralValue, selfParsed);\n } else if (numeralValue === null) {\n // 1x NaN\n return this.largestAbsoluteNumber(parsed, selfParsed);\n } else if (isNaN(selfParsed)) {\n // 1x NaN\n return this.largestAbsoluteNumber(numeralValue, parsed);\n } else {\n // no NaN\n return this.largestAbsoluteNumber(numeralValue, parsed, selfParsed);\n }\n }\n}\n\nexport const numeralWrapper = new NumeralFormatter();\n","/**\n * Names of all locations\n */\nexport enum LocationName {\n // Aevum Locations\n AevumAeroCorp = \"AeroCorp\",\n AevumBachmanAndAssociates = \"Bachman & Associates\",\n AevumClarkeIncorporated = \"Clarke Incorporated\",\n AevumCrushFitnessGym = \"Crush Fitness Gym\",\n AevumECorp = \"ECorp\",\n AevumFulcrumTechnologies = \"Fulcrum Technologies\",\n AevumGalacticCybersystems = \"Galactic Cybersystems\",\n AevumNetLinkTechnologies = \"NetLink Technologies\",\n AevumPolice = \"Aevum Police Headquarters\",\n AevumRhoConstruction = \"Rho Construction\",\n AevumSnapFitnessGym = \"Snap Fitness Gym\",\n AevumSummitUniversity = \"Summit University\",\n AevumWatchdogSecurity = \"Watchdog Security\",\n AevumCasino = \"Iker Molina Casino\",\n\n // Chongqing locations\n ChongqingKuaiGongInternational = \"KuaiGong International\",\n ChongqingSolarisSpaceSystems = \"Solaris Space Systems\",\n ChongqingChurchOfTheMachineGod = \"Church of the Machine God\",\n\n // Sector 12\n Sector12AlphaEnterprises = \"Alpha Enterprises\",\n Sector12BladeIndustries = \"Blade Industries\",\n Sector12CIA = \"Central Intelligence Agency\",\n Sector12CarmichaelSecurity = \"Carmichael Security\",\n Sector12CityHall = \"Sector-12 City Hall\",\n Sector12DeltaOne = \"DeltaOne\",\n Sector12FoodNStuff = \"FoodNStuff\",\n Sector12FourSigma = \"Four Sigma\",\n Sector12IcarusMicrosystems = \"Icarus Microsystems\",\n Sector12IronGym = \"Iron Gym\",\n Sector12JoesGuns = \"Joe's Guns\",\n Sector12MegaCorp = \"MegaCorp\",\n Sector12NSA = \"National Security Agency\",\n Sector12PowerhouseGym = \"Powerhouse Gym\",\n Sector12RothmanUniversity = \"Rothman University\",\n Sector12UniversalEnergy = \"Universal Energy\",\n\n // New Tokyo\n NewTokyoDefComm = \"DefComm\",\n NewTokyoGlobalPharmaceuticals = \"Global Pharmaceuticals\",\n NewTokyoNoodleBar = \"Noodle Bar\",\n NewTokyoVitaLife = \"VitaLife\",\n NewTokyoArcade = \"Arcade\",\n\n // Ishima\n IshimaNovaMedical = \"Nova Medical\",\n IshimaOmegaSoftware = \"Omega Software\",\n IshimaStormTechnologies = \"Storm Technologies\",\n IshimaGlitch = \"0x6C1\",\n\n // Volhaven\n VolhavenCompuTek = \"CompuTek\",\n VolhavenHeliosLabs = \"Helios Labs\",\n VolhavenLexoCorp = \"LexoCorp\",\n VolhavenMilleniumFitnessGym = \"Millenium Fitness Gym\",\n VolhavenNWO = \"NWO\",\n VolhavenOmniTekIncorporated = \"OmniTek Incorporated\",\n VolhavenOmniaCybersystems = \"Omnia Cybersystems\",\n VolhavenSysCoreSecurities = \"SysCore Securities\",\n VolhavenZBInstituteOfTechnology = \"ZB Institute of Technology\",\n\n // Generic locations\n Hospital = \"Hospital\",\n Slums = \"The Slums\",\n TravelAgency = \"Travel Agency\",\n WorldStockExchange = \"World Stock Exchange\",\n\n // Default name for Location objects\n Void = \"The Void\",\n}\n","export enum AugmentationNames {\n Targeting1 = \"Augmented Targeting I\",\n Targeting2 = \"Augmented Targeting II\",\n Targeting3 = \"Augmented Targeting III\",\n SyntheticHeart = \"Synthetic Heart\",\n SynfibrilMuscle = \"Synfibril Muscle\",\n CombatRib1 = \"Combat Rib I\",\n CombatRib2 = \"Combat Rib II\",\n CombatRib3 = \"Combat Rib III\",\n NanofiberWeave = \"Nanofiber Weave\",\n SubdermalArmor = \"NEMEAN Subdermal Weave\",\n WiredReflexes = \"Wired Reflexes\",\n GrapheneBoneLacings = \"Graphene Bone Lacings\",\n BionicSpine = \"Bionic Spine\",\n GrapheneBionicSpine = \"Graphene Bionic Spine Upgrade\",\n BionicLegs = \"Bionic Legs\",\n GrapheneBionicLegs = \"Graphene Bionic Legs Upgrade\",\n SpeechProcessor = \"Speech Processor Implant\",\n TITN41Injection = \"TITN-41 Gene-Modification Injection\",\n EnhancedSocialInteractionImplant = \"Enhanced Social Interaction Implant\",\n BitWire = \"BitWire\",\n ArtificialBioNeuralNetwork = \"Artificial Bio-neural Network Implant\",\n ArtificialSynapticPotentiation = \"Artificial Synaptic Potentiation\",\n EnhancedMyelinSheathing = \"Enhanced Myelin Sheathing\",\n SynapticEnhancement = \"Synaptic Enhancement Implant\",\n NeuralRetentionEnhancement = \"Neural-Retention Enhancement\",\n DataJack = \"DataJack\",\n ENM = \"Embedded Netburner Module\",\n ENMCore = \"Embedded Netburner Module Core Implant\",\n ENMCoreV2 = \"Embedded Netburner Module Core V2 Upgrade\",\n ENMCoreV3 = \"Embedded Netburner Module Core V3 Upgrade\",\n ENMAnalyzeEngine = \"Embedded Netburner Module Analyze Engine\",\n ENMDMA = \"Embedded Netburner Module Direct Memory Access Upgrade\",\n Neuralstimulator = \"Neuralstimulator\",\n NeuralAccelerator = \"Neural Accelerator\",\n CranialSignalProcessorsG1 = \"Cranial Signal Processors - Gen I\",\n CranialSignalProcessorsG2 = \"Cranial Signal Processors - Gen II\",\n CranialSignalProcessorsG3 = \"Cranial Signal Processors - Gen III\",\n CranialSignalProcessorsG4 = \"Cranial Signal Processors - Gen IV\",\n CranialSignalProcessorsG5 = \"Cranial Signal Processors - Gen V\",\n NeuronalDensification = \"Neuronal Densification\",\n NeuroreceptorManager = \"Neuroreceptor Management Implant\",\n NuoptimalInjectorImplant = \"Nuoptimal Nootropic Injector Implant\",\n SpeechEnhancement = \"Speech Enhancement\",\n FocusWire = \"FocusWire\",\n PCDNI = \"PC Direct-Neural Interface\",\n PCDNIOptimizer = \"PC Direct-Neural Interface Optimization Submodule\",\n PCDNINeuralNetwork = \"PC Direct-Neural Interface NeuroNet Injector\",\n PCMatrix = \"PCMatrix\",\n ADRPheromone1 = \"ADR-V1 Pheromone Gene\",\n ADRPheromone2 = \"ADR-V2 Pheromone Gene\",\n ShadowsSimulacrum = \"The Shadow's Simulacrum\",\n HacknetNodeCPUUpload = \"Hacknet Node CPU Architecture Neural-Upload\",\n HacknetNodeCacheUpload = \"Hacknet Node Cache Architecture Neural-Upload\",\n HacknetNodeNICUpload = \"Hacknet Node NIC Architecture Neural-Upload\",\n HacknetNodeKernelDNI = \"Hacknet Node Kernel Direct-Neural Interface\",\n HacknetNodeCoreDNI = \"Hacknet Node Core Direct-Neural Interface\",\n NeuroFluxGovernor = \"NeuroFlux Governor\",\n Neurotrainer1 = \"Neurotrainer I\",\n Neurotrainer2 = \"Neurotrainer II\",\n Neurotrainer3 = \"Neurotrainer III\",\n Hypersight = \"HyperSight Corneal Implant\",\n LuminCloaking1 = \"LuminCloaking-V1 Skin Implant\",\n LuminCloaking2 = \"LuminCloaking-V2 Skin Implant\",\n HemoRecirculator = \"HemoRecirculator\",\n SmartSonar = \"SmartSonar Implant\",\n PowerRecirculator = \"Power Recirculation Core\",\n QLink = \"QLink\",\n TheRedPill = \"The Red Pill\",\n SPTN97 = \"SPTN-97 Gene Modification\",\n HiveMind = \"ECorp HVMind Implant\",\n CordiARCReactor = \"CordiARC Fusion Reactor\",\n SmartJaw = \"SmartJaw\",\n Neotra = \"Neotra\",\n Xanipher = \"Xanipher\",\n nextSENS = \"nextSENS Gene Modification\",\n OmniTekInfoLoad = \"OmniTek InfoLoad\",\n PhotosyntheticCells = \"Photosynthetic Cells\",\n Neurolink = \"BitRunners Neurolink\",\n TheBlackHand = \"The Black Hand\",\n UnstableCircadianModulator = \"Unstable Circadian Modulator\",\n CRTX42AA = \"CRTX42-AA Gene Modification\",\n Neuregen = \"Neuregen Gene Modification\",\n CashRoot = \"CashRoot Starter Kit\",\n NutriGen = \"NutriGen Implant\",\n INFRARet = \"INFRARET Enhancement\",\n DermaForce = \"DermaForce Particle Barrier\",\n GrapheneBrachiBlades = \"Graphene BrachiBlades Upgrade\",\n GrapheneBionicArms = \"Graphene Bionic Arms Upgrade\",\n BrachiBlades = \"BrachiBlades\",\n BionicArms = \"Bionic Arms\",\n SNA = \"Social Negotiation Assistant (S.N.A)\",\n HydroflameLeftArm = \"Hydroflame Left Arm\",\n CongruityImplant = \"nickofolas Congruity Implant\",\n EsperEyewear = \"EsperTech Bladeburner Eyewear\",\n EMS4Recombination = \"EMS-4 Recombination\",\n OrionShoulder = \"ORION-MKIV Shoulder\",\n HyperionV1 = \"Hyperion Plasma Cannon V1\",\n HyperionV2 = \"Hyperion Plasma Cannon V2\",\n GolemSerum = \"GOLEM Serum\",\n VangelisVirus = \"Vangelis Virus\",\n VangelisVirus3 = \"Vangelis Virus 3.0\",\n INTERLINKED = \"I.N.T.E.R.L.I.N.K.E.D\",\n BladeRunner = \"Blade's Runners\",\n BladeArmor = \"BLADE-51b Tesla Armor\",\n BladeArmorPowerCells = \"BLADE-51b Tesla Armor: Power Cells Upgrade\",\n BladeArmorEnergyShielding = \"BLADE-51b Tesla Armor: Energy Shielding Upgrade\",\n BladeArmorUnibeam = \"BLADE-51b Tesla Armor: Unibeam Upgrade\",\n BladeArmorOmnibeam = \"BLADE-51b Tesla Armor: Omnibeam Upgrade\",\n BladeArmorIPU = \"BLADE-51b Tesla Armor: IPU Upgrade\",\n BladesSimulacrum = \"The Blade's Simulacrum\",\n\n StaneksGift1 = \"Stanek's Gift - Genesis\",\n StaneksGift2 = \"Stanek's Gift - Awakening\",\n StaneksGift3 = \"Stanek's Gift - Serenity\",\n\n // Infiltrators MiniGames\n MightOfAres = \"SoA - Might of Ares\", // slash\n WisdomOfAthena = \"SoA - Wisdom of Athena\", // bracket\n TrickeryOfHermes = \"SoA - Trickery of Hermes\", // cheatcode\n BeautyOfAphrodite = \"SoA - Beauty of Aphrodite\", // bribe\n ChaosOfDionysus = \"SoA - Chaos of Dionysus\", // reverse\n FloodOfPoseidon = \"SoA - Flood of Poseidon\", // hex\n HuntOfArtemis = \"SoA - Hunt of Artemis\", // mine\n KnowledgeOfApollo = \"SoA - Knowledge of Apollo\", // wire\n WKSharmonizer = \"SoA - phyzical WKS harmonizer\",\n}\n","/**\n * Generic Game Constants\n *\n * Constants for specific mechanics or features will NOT be here.\n */\nexport const CONSTANTS: {\n VersionString: string;\n VersionNumber: number;\n _idleSpeed: number;\n MaxSkillLevel: number;\n MilliPerCycle: number;\n CorpFactionRepRequirement: number;\n BaseFocusBonus: number;\n BaseCostFor1GBOfRamHome: number;\n BaseCostFor1GBOfRamServer: number;\n TravelCost: number;\n BaseFavorToDonate: number;\n DonateMoneyToRepDivisor: number;\n FactionReputationToFavorBase: number;\n FactionReputationToFavorMult: number;\n CompanyReputationToFavorBase: number;\n CompanyReputationToFavorMult: number;\n NeuroFluxGovernorLevelMult: number;\n NumNetscriptPorts: number;\n HomeComputerMaxRam: number;\n ServerBaseGrowthRate: number;\n ServerMaxGrowthRate: number;\n ServerFortifyAmount: number;\n ServerWeakenAmount: number;\n PurchasedServerLimit: number;\n PurchasedServerMaxRam: number;\n MultipleAugMultiplier: number;\n TorRouterCost: number;\n WSEAccountCost: number;\n TIXAPICost: number;\n MarketData4SCost: number;\n MarketDataTixApi4SCost: number;\n StockMarketCommission: number;\n HospitalCostPerHp: number;\n IntelligenceCrimeWeight: number;\n IntelligenceInfiltrationWeight: number;\n IntelligenceCrimeBaseExpGain: number;\n IntelligenceProgramBaseExpGain: number;\n IntelligenceGraftBaseExpGain: number;\n IntelligenceTerminalHackBaseExpGain: number;\n IntelligenceSingFnBaseExpGain: number;\n IntelligenceClassBaseExpGain: number;\n MillisecondsPer20Hours: number;\n GameCyclesPer20Hours: number;\n MillisecondsPer10Hours: number;\n GameCyclesPer10Hours: number;\n MillisecondsPer8Hours: number;\n GameCyclesPer8Hours: number;\n MillisecondsPer4Hours: number;\n GameCyclesPer4Hours: number;\n MillisecondsPer2Hours: number;\n GameCyclesPer2Hours: number;\n MillisecondsPerHour: number;\n GameCyclesPerHour: number;\n MillisecondsPerHalfHour: number;\n GameCyclesPerHalfHour: number;\n MillisecondsPerQuarterHour: number;\n GameCyclesPerQuarterHour: number;\n MillisecondsPerFiveMinutes: number;\n GameCyclesPerFiveMinutes: number;\n ClassDataStructuresBaseCost: number;\n ClassNetworksBaseCost: number;\n ClassAlgorithmsBaseCost: number;\n ClassManagementBaseCost: number;\n ClassLeadershipBaseCost: number;\n ClassGymBaseCost: number;\n ClassStudyComputerScienceBaseExp: number;\n ClassDataStructuresBaseExp: number;\n ClassNetworksBaseExp: number;\n ClassAlgorithmsBaseExp: number;\n ClassManagementBaseExp: number;\n ClassLeadershipBaseExp: number;\n CodingContractBaseFactionRepGain: number;\n CodingContractBaseCompanyRepGain: number;\n CodingContractBaseMoneyGain: number;\n AugmentationGraftingCostMult: number;\n AugmentationGraftingTimeBase: number;\n SoACostMult: number;\n SoARepMult: number;\n EntropyEffect: number;\n TotalNumBitNodes: number;\n InfiniteLoopLimit: number;\n Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG\n LatestUpdate: string;\n} = {\n VersionString: \"2.0.0\",\n VersionNumber: 21,\n\n // Speed (in ms) at which the main loop is updated\n _idleSpeed: 200,\n\n /** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience\n * and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then\n * the player will have this level assuming no multipliers. Multipliers can cause skills to go above this.\n */\n MaxSkillLevel: 975,\n\n // Milliseconds per game cycle\n MilliPerCycle: 200,\n\n // How much reputation is needed to join a megacorporation's faction\n CorpFactionRepRequirement: 400e3,\n\n // Base RAM costs\n BaseCostFor1GBOfRamHome: 32000,\n BaseCostFor1GBOfRamServer: 55000, //1 GB of RAM\n\n // Cost to travel to another city\n TravelCost: 200e3,\n\n // Faction and Company favor-related things\n BaseFavorToDonate: 150,\n DonateMoneyToRepDivisor: 1e6,\n FactionReputationToFavorBase: 500,\n FactionReputationToFavorMult: 1.02,\n CompanyReputationToFavorBase: 500,\n CompanyReputationToFavorMult: 1.02,\n\n // NeuroFlux Governor Augmentation cost multiplier\n NeuroFluxGovernorLevelMult: 1.14,\n\n NumNetscriptPorts: 20,\n\n // Server-related constants\n HomeComputerMaxRam: 1073741824, // 2 ^ 30\n ServerBaseGrowthRate: 1.03, // Unadjusted Growth rate\n ServerMaxGrowthRate: 1.0035, // Maximum possible growth rate (max rate accounting for server security)\n ServerFortifyAmount: 0.002, // Amount by which server's security increases when its hacked/grown\n ServerWeakenAmount: 0.05, // Amount by which server's security decreases when weakened\n\n PurchasedServerLimit: 25,\n PurchasedServerMaxRam: 1048576, // 2^20\n\n // Augmentation Constants\n MultipleAugMultiplier: 1.9,\n\n // TOR Router\n TorRouterCost: 200e3,\n\n // Stock market\n WSEAccountCost: 200e6,\n TIXAPICost: 5e9,\n MarketData4SCost: 1e9,\n MarketDataTixApi4SCost: 25e9,\n StockMarketCommission: 100e3,\n\n // Hospital/Health\n HospitalCostPerHp: 100e3,\n\n // Intelligence-related constants\n IntelligenceCrimeWeight: 0.025, // Weight for how much int affects crime success rates\n IntelligenceInfiltrationWeight: 0.1, // Weight for how much int affects infiltration success rates\n IntelligenceCrimeBaseExpGain: 0.05,\n IntelligenceProgramBaseExpGain: 0.1, // Program required hack level divided by this to determine int exp gain\n IntelligenceGraftBaseExpGain: 0.05,\n IntelligenceTerminalHackBaseExpGain: 200, // Hacking exp divided by this to determine int exp gain\n IntelligenceSingFnBaseExpGain: 1.5,\n IntelligenceClassBaseExpGain: 0.01,\n\n // Time-related constants\n MillisecondsPer20Hours: 72000000,\n GameCyclesPer20Hours: 72000000 / 200,\n\n MillisecondsPer10Hours: 36000000,\n GameCyclesPer10Hours: 36000000 / 200,\n\n MillisecondsPer8Hours: 28800000,\n GameCyclesPer8Hours: 28800000 / 200,\n\n MillisecondsPer4Hours: 14400000,\n GameCyclesPer4Hours: 14400000 / 200,\n\n MillisecondsPer2Hours: 7200000,\n GameCyclesPer2Hours: 7200000 / 200,\n\n MillisecondsPerHour: 3600000,\n GameCyclesPerHour: 3600000 / 200,\n\n MillisecondsPerHalfHour: 1800000,\n GameCyclesPerHalfHour: 1800000 / 200,\n\n MillisecondsPerQuarterHour: 900000,\n GameCyclesPerQuarterHour: 900000 / 200,\n\n MillisecondsPerFiveMinutes: 300000,\n GameCyclesPerFiveMinutes: 300000 / 200,\n\n // Player Work & Action\n BaseFocusBonus: 0.8,\n\n ClassDataStructuresBaseCost: 40,\n ClassNetworksBaseCost: 80,\n ClassAlgorithmsBaseCost: 320,\n ClassManagementBaseCost: 160,\n ClassLeadershipBaseCost: 320,\n ClassGymBaseCost: 120,\n\n ClassStudyComputerScienceBaseExp: 0.5,\n ClassDataStructuresBaseExp: 1,\n ClassNetworksBaseExp: 2,\n ClassAlgorithmsBaseExp: 4,\n ClassManagementBaseExp: 2,\n ClassLeadershipBaseExp: 4,\n\n // Coding Contract\n // TODO: Move this into Coding contract implementation?\n CodingContractBaseFactionRepGain: 2500,\n CodingContractBaseCompanyRepGain: 4000,\n CodingContractBaseMoneyGain: 75e6,\n\n // Augmentation grafting multipliers\n AugmentationGraftingCostMult: 3,\n AugmentationGraftingTimeBase: 3600000,\n\n // SoA mults\n SoACostMult: 7,\n SoARepMult: 1.3,\n\n // Value raised to the number of entropy stacks, then multiplied to player multipliers\n EntropyEffect: 0.98,\n\n // BitNode/Source-File related stuff\n TotalNumBitNodes: 24,\n\n InfiniteLoopLimit: 2000,\n\n Donations: 22,\n\n LatestUpdate: `\nv2.0.0 - 2022-07-19 Work rework\n-------------------------------\n\n API break rewards\n\n * Everyone is awarded 10 NFG.\n * All work in progress program is auto completed.\n * All work in progress crafting is auto completed without adding entropy.\n\n Work (Create program / Work for faction / Studying / etc ...)\n\n * Working has been rebuilt from the grounds up. The motivation for that change is that all\n different types of work all required different cached variables on the main Player object.\n This caused a lot of bugs and crashes. It's been reworked in such a way as to prevent bugs\n and make it nearly trivial to add new kinds of work. However, since this caused a few API break\n I've decided to mark this version following semver protocols and call it 2.0.0\n * Crime can be unfocused and auto loops, no more spam clicking.\n * All work type give their reward immediately. No need to stop work to bank rewards like reputation.\n * Faction and Company work no longer have a time limit.\n * Company work no longer reduces rep gain by half for quitting early.\n * Company faction require 400k rep to join (from 200k)\n * Backdooring company server reduces faction requirement to 300k.\n * All work generally no longer keep track of cumulative gains like exp and reputation since it's applied instantly.\n * getPlayer returns way less fields but does return the new 'currentWork' field.\n\n API breaks\n\n * workForCompany argument 'companyName' is now not-optional\n * commitCrime now has 'focus' optional parameter\n * using getScriptIncome to get total income has been separated to getTotalScriptIncome.\n * using getScriptExpGain to get total income has been separated to getTotalScriptExpGain.\n * scp has it's 2 last argument reversed, the signature is now (files, destination, optional_source)\n * ns.connect and other singularity function are no longer available at the top level.\n They were already hidden from documentation but now they're gone.\n * stock.buy and stock.sell were renamed to stock.buyStock and stock.sellStock because 'buy' and 'sell'\n are very common tokens.\n * corporation.bribe no longer allows to give shares as bribe.\n\n Netscript\n\n * Add singularity.getCurrentWork\n * Add singularity.getAugmentationBasePrice\n * Add sleeve.getSleeveAugmentationPrice\n * Add sleeve.getSleeveAugmentationRepReq\n * Fix infiltration.getInfiltrationLocations\n * Singularity.goToLocation support for non-city-specific locations (@Ansopedian)\n * All corporation functions are synchronous. Job assignment only works on the following cycle. (@stalefishies)\n * Add batch functionality to NS spendHashes API (@undeemiss)\n * Fix #3661 Add missing memory property to Sleeve API (@borisflagell)\n * FIX#3732 Cannot assign two sleeve on \"Take on contracts\" regardless of contract type. (@borisflagell)\n\n Corporation\n\n * Dividend fixes and exposing dividends info via scripts (@stalefishies)\n * Add big number format support in some Corporation's modal (@borisflagell)\n * Fix #3261 Industry overview number formatting (@nickofolas)\n\n Multipliers\n\n * The main player object was also plagues with a million fields all called '*_mult'. Representing the different multipliers\n * These have been refactored in a field called 'mults'.\n\n Misc. \n\n * #3596 Enhanced terminal command parsing (@RevanProdigalKnight)\n * Fix #3366 Sleeve UI would sometimes displays the wrong stat while working out. (@borisflagell)\n * Two new encryption themed contracts - caesar and vigenere (@Markus-D-M)\n * Fixes #3132 several Sleeve can no longer works concurrently in the same company (@borisflagell)\n * FIX #3514 Clear recently killed tab on BN end event (@Daniel-Barbera)\n * HammingCodes description and implementation fixes (@s2ks)\n * FIX #3794 Sleeve were getting less shocked when hospitalized (was positive, should have detrimental) (@borisflagell)\n * Fix #3803 Servers can no longer have duplicate IPs (@crimsonhawk47)\n * Fix #3854 ctrl+c does not clear terminal input (@evil-tim)\n * Nerf noodle bar, obviously.\n\n`,\n};\n","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","/* 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 { 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 { 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","import { Faction } from \"../Faction/Faction\";\nimport { Location } from \"../Locations/Location\";\n\n/**\n * The full-screen page the player is currently be on.\n * These pages are mutually exclusive.\n */\nexport enum Page {\n ActiveScripts,\n Augmentations,\n BitVerse,\n Bladeburner,\n City,\n Corporation,\n CreateProgram,\n ScriptEditor,\n DevMenu,\n Faction,\n Factions,\n Gang,\n Hacknet,\n Infiltration,\n Job,\n Milestones,\n Options,\n Grafting,\n Sleeves,\n Stats,\n StockMarket,\n Terminal,\n Travel,\n Tutorial,\n Work,\n BladeburnerCinematic,\n Location,\n Loading,\n StaneksGift,\n Recovery,\n Achievements,\n ThemeBrowser,\n ImportSave,\n}\n\nexport interface ScriptEditorRouteOptions {\n vim: boolean;\n}\n\n/**\n * This class keeps track of player navigation/routing within the game.\n */\nexport interface IRouter {\n // toCinematicText(): void;\n // toInfiltration(): void;\n // toMission(): void;\n // toRedPill(): void;\n // toworkInProgress(): void;\n isInitialized: boolean;\n page(): Page;\n allowRouting(value: boolean): void;\n toActiveScripts(): void;\n toAugmentations(): void;\n toBitVerse(flume: boolean, quick: boolean): void;\n toBladeburner(): void;\n toStats(): void;\n toCity(): void; // travel ? city ?\n toCorporation(): void;\n toCreateProgram(): void;\n toDevMenu(): void;\n toFaction(faction: Faction, augPage?: boolean): void; // faction name\n toFactions(): void;\n toGameOptions(): void;\n toGang(): void;\n toHacknetNodes(): void;\n toInfiltration(location: Location): void;\n toJob(location: Location): void;\n toMilestones(): void;\n toGrafting(): void;\n toScriptEditor(files?: Record, options?: ScriptEditorRouteOptions): void;\n toSleeves(): void;\n toStockMarket(): void;\n toTerminal(): void;\n toTravel(): void;\n toTutorial(): void;\n toWork(): void;\n toBladeburnerCinematic(): void;\n toLocation(location: Location): void;\n toStaneksGift(): void;\n toAchievements(): void;\n toThemeBrowser(): void;\n toImportSave(base64Save: string, automatic?: boolean): void;\n}\n","import React, { useContext } from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"./Router\";\n\nexport const Context: {\n Player: React.Context;\n Router: React.Context;\n} = {\n Player: React.createContext({} as IPlayer),\n Router: React.createContext({} as IRouter),\n};\n\nexport const use: {\n Player: () => IPlayer;\n Router: () => IRouter;\n} = {\n Player: () => useContext(Context.Player),\n Router: () => useContext(Context.Router),\n};\n","/**\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","// 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","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 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 FundingRoundShares: [0.1, 0.35, 0.25, 0.2],\n FundingRoundMultiplier: [4, 3, 3, 2.5],\n\n AvgProfitLength: 1,\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","/**\n * Generic helper/utility functions for the Hacknet mechanic:\n * - Purchase nodes/upgrades\n * - Calculating maximum number of upgrades\n * - Processing Hacknet earnings\n * - Updating Hash Manager capacity\n * - Purchasing hash upgrades\n *\n * TODO Should probably split the different types of functions into their own modules\n */\nimport { HacknetNode } from \"./HacknetNode\";\nimport { calculateNodeCost } from \"./formulas/HacknetNodes\";\nimport { calculateServerCost } from \"./formulas/HacknetServers\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"./data/Constants\";\nimport { HacknetServer } from \"./HacknetServer\";\nimport { HashManager } from \"./HashManager\";\nimport { HashUpgrades } from \"./HashUpgrades\";\n\nimport { generateRandomContract } from \"../CodingContractGenerator\";\nimport { iTutorialSteps, iTutorialNextStep, ITutorial } from \"../InteractiveTutorial\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { Server } from \"../Server/Server\";\n\n// Returns a boolean indicating whether the player has Hacknet Servers\n// (the upgraded form of Hacknet Nodes)\nexport function hasHacknetServers(player: IPlayer): boolean {\n return player.bitNodeN === 9 || player.sourceFileLvl(9) > 0;\n}\n\nexport function purchaseHacknet(player: IPlayer): number {\n /* INTERACTIVE TUTORIAL */\n if (ITutorial.isRunning) {\n if (ITutorial.currStep === iTutorialSteps.HacknetNodesIntroduction) {\n iTutorialNextStep();\n } else {\n return -1;\n }\n }\n /* END INTERACTIVE TUTORIAL */\n\n const numOwned = player.hacknetNodes.length;\n if (hasHacknetServers(player)) {\n const cost = getCostOfNextHacknetServer(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetServer is NaN`);\n }\n\n if (!player.canAfford(cost) || numOwned >= HacknetServerConstants.MaxServers) {\n return -1;\n }\n player.loseMoney(cost, \"hacknet_expenses\");\n player.createHacknetServer();\n updateHashManagerCapacity(player);\n\n return numOwned;\n } else {\n const cost = getCostOfNextHacknetNode(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetNode is NaN`);\n }\n\n if (!player.canAfford(cost)) {\n return -1;\n }\n\n // Auto generate a name for the Node\n const name = \"hacknet-node-\" + numOwned;\n const node = new HacknetNode(name, player.mults.hacknet_node_money);\n\n player.loseMoney(cost, \"hacknet_expenses\");\n player.hacknetNodes.push(node);\n\n return numOwned;\n }\n}\n\nexport function hasMaxNumberHacknetServers(player: IPlayer): boolean {\n return hasHacknetServers(player) && player.hacknetNodes.length >= HacknetServerConstants.MaxServers;\n}\n\nexport function getCostOfNextHacknetNode(player: IPlayer): number {\n return calculateNodeCost(player.hacknetNodes.length + 1, player.mults.hacknet_node_purchase_cost);\n}\n\nexport function getCostOfNextHacknetServer(player: IPlayer): number {\n return calculateServerCost(player.hacknetNodes.length + 1, player.mults.hacknet_node_purchase_cost);\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's level\nexport function getMaxNumberLevelUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberLevelUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateLevelUpgradeCost(1, player.mults.hacknet_node_level_cost)) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.level;\n if (player.money > nodeObj.calculateLevelUpgradeCost(levelsToMax, player.mults.hacknet_node_level_cost)) {\n return levelsToMax;\n }\n\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr !== maxLevel &&\n player.money > nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost) &&\n player.money < nodeObj.calculateLevelUpgradeCost(curr + 1, player.mults.hacknet_node_level_cost)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost)) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's RAM\nexport function getMaxNumberRamUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberRamUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateRamUpgradeCost(1, player.mults.hacknet_node_ram_cost)) {\n return 0;\n }\n\n let levelsToMax;\n if (nodeObj instanceof HacknetServer) {\n levelsToMax = Math.round(Math.log2(maxLevel / nodeObj.maxRam));\n } else {\n levelsToMax = Math.round(Math.log2(maxLevel / nodeObj.ram));\n }\n if (player.money > nodeObj.calculateRamUpgradeCost(levelsToMax, player.mults.hacknet_node_ram_cost)) {\n return levelsToMax;\n }\n\n //We'll just loop until we find the max\n for (let i = levelsToMax - 1; i >= 0; --i) {\n if (player.money > nodeObj.calculateRamUpgradeCost(i, player.mults.hacknet_node_ram_cost)) {\n return i;\n }\n }\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's cores\nexport function getMaxNumberCoreUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberCoreUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateCoreUpgradeCost(1, player.mults.hacknet_node_core_cost)) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.cores;\n if (player.money > nodeObj.calculateCoreUpgradeCost(levelsToMax, player.mults.hacknet_node_core_cost)) {\n return levelsToMax;\n }\n\n // Use a binary search to find the max possible number of upgrades\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr != maxLevel &&\n player.money > nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost) &&\n player.money < nodeObj.calculateCoreUpgradeCost(curr + 1, player.mults.hacknet_node_core_cost)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost)) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's cache\nexport function getMaxNumberCacheUpgrades(player: IPlayer, nodeObj: HacknetServer, maxLevel: number): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberCacheUpgrades() called without maxLevel arg`);\n }\n\n if (!player.canAfford(nodeObj.calculateCacheUpgradeCost(1))) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.cache;\n if (player.canAfford(nodeObj.calculateCacheUpgradeCost(levelsToMax))) {\n return levelsToMax;\n }\n\n // Use a binary search to find the max possible number of upgrades\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr != maxLevel &&\n player.canAfford(nodeObj.calculateCacheUpgradeCost(curr)) &&\n !player.canAfford(nodeObj.calculateCacheUpgradeCost(curr + 1))\n ) {\n return Math.min(levelsToMax, curr);\n } else if (!player.canAfford(nodeObj.calculateCacheUpgradeCost(curr))) {\n max = curr - 1;\n } else if (player.canAfford(nodeObj.calculateCacheUpgradeCost(curr))) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n\n return 0;\n}\n\nexport function purchaseLevelUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateLevelUpgradeCost(sanitizedLevels, player.mults.hacknet_node_level_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n const isServer = node instanceof HacknetServer;\n\n // If we're at max level, return false\n if (node.level >= (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel)) {\n return false;\n }\n\n // If the number of specified upgrades would exceed the max level, calculate\n // the maximum number of upgrades and use that\n if (node.level + sanitizedLevels > (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel)) {\n const diff = Math.max(0, (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel) - node.level);\n return purchaseLevelUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeLevel(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseRamUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateRamUpgradeCost(sanitizedLevels, player.mults.hacknet_node_ram_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n if (node instanceof HacknetServer && node.maxRam >= HacknetServerConstants.MaxRam) {\n return false;\n }\n\n if (node instanceof HacknetNode && node.ram >= HacknetNodeConstants.MaxRam) {\n return false;\n }\n\n // If the number of specified upgrades would exceed the max RAM, calculate the\n // max possible number of upgrades and use that\n if (node instanceof HacknetServer) {\n if (node.maxRam * Math.pow(2, sanitizedLevels) > HacknetServerConstants.MaxRam) {\n const diff = Math.max(0, Math.log2(Math.round(HacknetServerConstants.MaxRam / node.maxRam)));\n return purchaseRamUpgrade(player, node, diff);\n }\n } else if (node instanceof HacknetNode) {\n if (node.ram * Math.pow(2, sanitizedLevels) > HacknetNodeConstants.MaxRam) {\n const diff = Math.max(0, Math.log2(Math.round(HacknetNodeConstants.MaxRam / node.ram)));\n return purchaseRamUpgrade(player, node, diff);\n }\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeRam(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseCoreUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateCoreUpgradeCost(sanitizedLevels, player.mults.hacknet_node_core_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n const isServer = node instanceof HacknetServer;\n\n // Fail if we're already at max\n if (node.cores >= (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores)) {\n return false;\n }\n\n // If the specified number of upgrades would exceed the max Cores, calculate\n // the max possible number of upgrades and use that\n if (node.cores + sanitizedLevels > (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores)) {\n const diff = Math.max(0, (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores) - node.cores);\n return purchaseCoreUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeCore(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseCacheUpgrade(player: IPlayer, node: HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateCacheUpgradeCost(sanitizedLevels);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n if (!(node instanceof HacknetServer)) {\n console.warn(`purchaseCacheUpgrade() called for a non-HacknetNode`);\n return false;\n }\n\n // Fail if we're already at max\n if (node.cache + sanitizedLevels > HacknetServerConstants.MaxCache) {\n const diff = Math.max(0, HacknetServerConstants.MaxCache - node.cache);\n return purchaseCacheUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeCache(sanitizedLevels);\n\n return true;\n}\n\nexport function processHacknetEarnings(player: IPlayer, numCycles: number): number {\n // Determine if player has Hacknet Nodes or Hacknet Servers, then\n // call the appropriate function\n if (player.hacknetNodes.length === 0) {\n return 0;\n }\n if (hasHacknetServers(player)) {\n return processAllHacknetServerEarnings(player, numCycles);\n } else if (player.hacknetNodes[0] instanceof HacknetNode) {\n return processAllHacknetNodeEarnings(player, numCycles);\n } else {\n return 0;\n }\n}\n\nfunction processAllHacknetNodeEarnings(player: IPlayer, numCycles: number): number {\n let total = 0;\n for (let i = 0; i < player.hacknetNodes.length; ++i) {\n const node = player.hacknetNodes[i];\n if (typeof node === \"string\") throw new Error(\"player node should not be ip string\");\n total += processSingleHacknetNodeEarnings(player, numCycles, node);\n }\n\n return total;\n}\n\nfunction processSingleHacknetNodeEarnings(player: IPlayer, numCycles: number, nodeObj: HacknetNode): number {\n const totalEarnings = nodeObj.process(numCycles);\n player.gainMoney(totalEarnings, \"hacknet\");\n\n return totalEarnings;\n}\n\nfunction processAllHacknetServerEarnings(player: IPlayer, numCycles: number): number {\n if (!(player.hashManager instanceof HashManager)) {\n throw new Error(`Player does not have a HashManager (should be in 'hashManager' prop)`);\n }\n\n let hashes = 0;\n for (let i = 0; i < player.hacknetNodes.length; ++i) {\n // hacknetNodes array only contains the IP addresses of the servers.\n // Also, update the hash rate before processing\n const ip = player.hacknetNodes[i];\n if (ip instanceof HacknetNode) throw new Error(`player nodes should not be HacketNode`);\n const hserver = GetServer(ip);\n if (!(hserver instanceof HacknetServer)) throw new Error(`player nodes shoud not be Server`);\n hserver.updateHashRate(player.mults.hacknet_node_money);\n const h = hserver.process(numCycles);\n hashes += h;\n }\n\n const wastedHashes = player.hashManager.storeHashes(hashes);\n if (wastedHashes > 0) {\n const upgrade = HashUpgrades[\"Sell for Money\"];\n if (upgrade === null) throw new Error(\"Could not get the hash upgrade\");\n if (!upgrade.cost) throw new Error(\"Upgrade is not properly configured\");\n\n const multiplier = wastedHashes / upgrade.cost;\n if (multiplier > 0) {\n player.gainMoney(upgrade.value * multiplier, \"hacknet\");\n }\n }\n\n return hashes;\n}\n\nexport function updateHashManagerCapacity(player: IPlayer): void {\n if (!(player.hashManager instanceof HashManager)) {\n console.error(`Player does not have a HashManager`);\n return;\n }\n\n const nodes = player.hacknetNodes;\n if (nodes.length === 0) {\n player.hashManager.updateCapacity(0);\n return;\n }\n\n let total = 0;\n for (let i = 0; i < nodes.length; ++i) {\n if (typeof nodes[i] !== \"string\") {\n player.hashManager.updateCapacity(0);\n return;\n }\n const ip = nodes[i];\n if (ip instanceof HacknetNode) throw new Error(`player nodes should be string but isn't`);\n const h = GetServer(ip);\n if (!(h instanceof HacknetServer)) {\n player.hashManager.updateCapacity(0);\n return;\n }\n\n total += h.hashCapacity;\n }\n\n player.hashManager.updateCapacity(total);\n}\n\nexport function purchaseHashUpgrade(player: IPlayer, upgName: string, upgTarget: string, count = 1): boolean {\n if (!(player.hashManager instanceof HashManager)) {\n console.error(`Player does not have a HashManager`);\n return false;\n }\n\n // HashManager handles the transaction. This just needs to actually implement\n // the effects of the upgrade\n if (player.hashManager.upgrade(upgName, count)) {\n const upg = HashUpgrades[upgName];\n\n switch (upgName) {\n case \"Sell for Money\": {\n player.gainMoney(upg.value * count, \"hacknet\");\n break;\n }\n case \"Sell for Corporation Funds\": {\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n corp.funds = corp.funds + upg.value * count;\n break;\n }\n case \"Reduce Minimum Security\": {\n try {\n const target = GetServer(upgTarget);\n if (target == null) {\n console.error(`Invalid target specified in purchaseHashUpgrade(): ${upgTarget}`);\n throw new Error(`'${upgTarget}' is not a server.`);\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n target.changeMinimumSecurity(upg.value ** count, true);\n } catch (e) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n break;\n }\n case \"Increase Maximum Money\": {\n try {\n const target = GetServer(upgTarget);\n if (target == null) {\n console.error(`Invalid target specified in purchaseHashUpgrade(): ${upgTarget}`);\n throw new Error(`'${upgTarget}' is not a server.`);\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n //Manually loop the change so as to properly handle the softcap\n for (let i = 0; i < count; i++) {\n target.changeMaximumMoney(upg.value);\n }\n } catch (e) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n break;\n }\n case \"Improve Studying\": {\n // Multiplier handled by HashManager\n break;\n }\n case \"Improve Gym Training\": {\n // Multiplier handled by HashManager\n break;\n }\n case \"Exchange for Corporation Research\": {\n // This will throw if player doesn't have a corporation\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n for (const division of corp.divisions) {\n division.sciResearch.qty += upg.value * count;\n }\n break;\n }\n case \"Exchange for Bladeburner Rank\": {\n // This will throw if player isnt in Bladeburner\n const bladeburner = player.bladeburner;\n if (bladeburner === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n bladeburner.changeRank(player, upg.value * count);\n break;\n }\n case \"Exchange for Bladeburner SP\": {\n // This will throw if player isnt in Bladeburner\n const bladeburner = player.bladeburner;\n if (bladeburner === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n\n bladeburner.skillPoints += upg.value * count;\n break;\n }\n case \"Generate Coding Contract\": {\n for (let i = 0; i < count; i++) {\n generateRandomContract();\n }\n break;\n }\n default:\n console.warn(`Unrecognized upgrade name ${upgName}. Upgrade has no effect`);\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n","import { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { IndustryStartingCosts, IndustryResearchTrees } from \"./IndustryData\";\nimport { Industry } from \"./Industry\";\nimport { CorporationConstants } from \"./data/Constants\";\nimport { OfficeSpace } from \"./OfficeSpace\";\nimport { Material } from \"./Material\";\nimport { Product } from \"./Product\";\nimport { Warehouse } from \"./Warehouse\";\nimport { CorporationUnlockUpgrade } from \"./data/CorporationUnlockUpgrades\";\nimport { CorporationUpgrade } from \"./data/CorporationUpgrades\";\nimport { Cities } from \"../Locations/Cities\";\nimport { EmployeePositions } from \"./EmployeePositions\";\nimport { ResearchMap } from \"./ResearchMap\";\nimport { isRelevantMaterial } from \"./ui/Helpers\";\n\nexport function NewIndustry(corporation: ICorporation, industry: string, name: string): void {\n if (corporation.divisions.find(({ type }) => industry == type))\n throw new Error(`You have already expanded into the ${industry} industry!`);\n\n for (let i = 0; i < corporation.divisions.length; ++i) {\n if (corporation.divisions[i].name === name) {\n throw new Error(\"This division name is already in use!\");\n }\n }\n\n const cost = IndustryStartingCosts[industry];\n if (cost === undefined) {\n throw new Error(`Invalid industry: '${industry}'`);\n }\n if (corporation.funds < cost) {\n throw new Error(\"Not enough money to create a new division in this industry\");\n } else if (name === \"\") {\n throw new Error(\"New division must have a name!\");\n } else {\n corporation.funds = corporation.funds - cost;\n corporation.divisions.push(\n new Industry({\n corp: corporation,\n name: name,\n type: industry,\n }),\n );\n }\n}\n\nexport function NewCity(corporation: ICorporation, division: IIndustry, city: string): void {\n if (corporation.funds < CorporationConstants.OfficeInitialCost) {\n throw new Error(\"You don't have enough company funds to open a new office!\");\n }\n if (division.offices[city]) {\n throw new Error(`You have already expanded into ${city} for ${division.name}`);\n }\n corporation.funds = corporation.funds - CorporationConstants.OfficeInitialCost;\n division.offices[city] = new OfficeSpace({\n loc: city,\n size: CorporationConstants.OfficeInitialSize,\n });\n}\n\nexport function UnlockUpgrade(corporation: ICorporation, upgrade: CorporationUnlockUpgrade): void {\n if (corporation.funds < upgrade.price) {\n throw new Error(\"Insufficient funds\");\n }\n if (corporation.unlockUpgrades[upgrade.index] === 1) {\n throw new Error(`You have already unlocked the ${upgrade.name} upgrade!`);\n }\n corporation.unlock(upgrade);\n}\n\nexport function LevelUpgrade(corporation: ICorporation, upgrade: CorporationUpgrade): void {\n const baseCost = upgrade.basePrice;\n const priceMult = upgrade.priceMult;\n const level = corporation.upgrades[upgrade.index];\n const cost = baseCost * Math.pow(priceMult, level);\n if (corporation.funds < cost) {\n throw new Error(\"Insufficient funds\");\n } else {\n corporation.upgrade(upgrade);\n }\n}\n\nexport function IssueDividends(corporation: ICorporation, rate: number): void {\n if (isNaN(rate) || rate < 0 || rate > CorporationConstants.DividendMaxRate) {\n throw new Error(`Invalid value. Must be an number between 0 and ${CorporationConstants.DividendMaxRate}`);\n }\n\n corporation.dividendRate = rate;\n}\n\nexport function SellMaterial(mat: Material, amt: string, price: string): void {\n if (price === \"\") price = \"0\";\n if (amt === \"\") amt = \"0\";\n let cost = price.replace(/\\s+/g, \"\");\n cost = cost.replace(/[^-()\\d/*+.MPe]/g, \"\"); //Sanitize cost\n let temp = cost.replace(/MP/g, mat.bCost + \"\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell price field: \" + e);\n }\n\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell price field\");\n }\n\n if (cost.includes(\"MP\")) {\n mat.sCost = cost; //Dynamically evaluated\n } else {\n mat.sCost = temp;\n }\n\n //Parse quantity\n amt = amt.toUpperCase();\n if (amt.includes(\"MAX\") || amt.includes(\"PROD\")) {\n let q = amt.replace(/\\s+/g, \"\");\n q = q.replace(/[^-()\\d/*+.MAXPROD]/g, \"\");\n let tempQty = q.replace(/MAX/g, mat.maxsll.toString());\n tempQty = tempQty.replace(/PROD/g, mat.prd.toString());\n try {\n tempQty = eval(tempQty);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell quantity field: \" + e);\n }\n\n if (tempQty == null || isNaN(parseFloat(tempQty)) || parseFloat(tempQty) < 0) {\n throw new Error(\"Invalid value or expression for sell quantity field\");\n }\n\n mat.sllman[0] = true;\n mat.sllman[1] = q; //Use sanitized input\n } else if (isNaN(parseFloat(amt)) || parseFloat(amt) < 0) {\n throw new Error(\"Invalid value for sell quantity field! Must be numeric or 'PROD' or 'MAX'\");\n } else {\n let q = parseFloat(amt);\n if (isNaN(q)) {\n q = 0;\n }\n if (q === 0) {\n mat.sllman[0] = false;\n mat.sllman[1] = 0;\n } else {\n mat.sllman[0] = true;\n mat.sllman[1] = q;\n }\n }\n}\n\nexport function SellProduct(product: Product, city: string, amt: string, price: string, all: boolean): void {\n //Parse price\n if (price.includes(\"MP\")) {\n //Dynamically evaluated quantity. First test to make sure its valid\n //Sanitize input, then replace dynamic variables with arbitrary numbers\n price = price.replace(/\\s+/g, \"\");\n price = price.replace(/[^-()\\d/*+.MP]/g, \"\");\n let temp = price.replace(/MP/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell price field: \" + e);\n }\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell price field.\");\n }\n product.sCost = price; //Use sanitized price\n } else {\n const cost = parseFloat(price);\n if (isNaN(cost)) {\n throw new Error(\"Invalid value for sell price field\");\n }\n product.sCost = cost;\n }\n\n // Array of all cities. Used later\n const cities = Object.keys(Cities);\n\n // Parse quantity\n amt = amt.toUpperCase();\n if (amt.includes(\"MAX\") || amt.includes(\"PROD\")) {\n //Dynamically evaluated quantity. First test to make sure its valid\n let qty = amt.replace(/\\s+/g, \"\");\n qty = qty.replace(/[^-()\\d/*+.MAXPROD]/g, \"\");\n let temp = qty.replace(/MAX/g, product.maxsll.toString());\n temp = temp.replace(/PROD/g, product.data[city][1].toString());\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell quantity field: \" + e);\n }\n\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell quantity field\");\n }\n if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = true;\n product.sllman[tempCity][1] = qty; //Use sanitized input\n }\n } else {\n product.sllman[city][0] = true;\n product.sllman[city][1] = qty; //Use sanitized input\n }\n } else if (isNaN(parseFloat(amt)) || parseFloat(amt) < 0) {\n throw new Error(\"Invalid value for sell quantity field! Must be numeric or 'PROD' or 'MAX'\");\n } else {\n let qty = parseFloat(amt);\n if (isNaN(qty)) {\n qty = 0;\n }\n if (qty === 0) {\n if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = false;\n product.sllman[tempCity][1] = \"\";\n }\n } else {\n product.sllman[city][0] = false;\n product.sllman[city][1] = \"\";\n }\n } else if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = true;\n product.sllman[tempCity][1] = qty;\n }\n } else {\n product.sllman[city][0] = true;\n product.sllman[city][1] = qty;\n }\n }\n}\n\nexport function SetSmartSupply(warehouse: Warehouse, smartSupply: boolean): void {\n warehouse.smartSupplyEnabled = smartSupply;\n}\n\nexport function SetSmartSupplyUseLeftovers(warehouse: Warehouse, material: Material, useLeftover: boolean): void {\n if (!Object.keys(warehouse.smartSupplyUseLeftovers).includes(material.name.replace(/ /g, \"\")))\n throw new Error(`Invalid material '${material.name}'`);\n warehouse.smartSupplyUseLeftovers[material.name.replace(/ /g, \"\")] = useLeftover;\n}\n\nexport function BuyMaterial(material: Material, amt: number): void {\n if (isNaN(amt) || amt < 0) {\n throw new Error(`Invalid amount '${amt}' to buy material '${material.name}'`);\n }\n material.buy = amt;\n}\n\nexport function BulkPurchase(corp: ICorporation, warehouse: Warehouse, material: Material, amt: number): void {\n const matSize = MaterialSizes[material.name];\n const maxAmount = (warehouse.size - warehouse.sizeUsed) / matSize;\n if (isNaN(amt) || amt < 0) {\n throw new Error(`Invalid input amount`);\n }\n if (amt > maxAmount) {\n throw new Error(`You do not have enough warehouse size to fit this purchase`);\n }\n const cost = amt * material.bCost;\n if (corp.funds >= cost) {\n corp.funds = corp.funds - cost;\n material.qty += amt;\n } else {\n throw new Error(`You cannot afford this purchase.`);\n }\n}\n\nexport function SellShares(corporation: ICorporation, player: IPlayer, numShares: number): number {\n if (isNaN(numShares)) throw new Error(\"Invalid value for number of shares\");\n if (numShares < 0) throw new Error(\"Invalid value for number of shares\");\n if (numShares > corporation.numShares) throw new Error(\"You don't have that many shares to sell!\");\n if (!corporation.public) throw new Error(\"You haven't gone public!\");\n if (corporation.shareSaleCooldown) throw new Error(\"Share sale on cooldown!\");\n const stockSaleResults = corporation.calculateShareSale(numShares);\n const profit = stockSaleResults[0];\n const newSharePrice = stockSaleResults[1];\n const newSharesUntilUpdate = stockSaleResults[2];\n\n corporation.numShares -= numShares;\n corporation.issuedShares += numShares;\n corporation.sharePrice = newSharePrice;\n corporation.shareSalesUntilPriceUpdate = newSharesUntilUpdate;\n corporation.shareSaleCooldown = CorporationConstants.SellSharesCooldown;\n player.gainMoney(profit, \"corporation\");\n return profit;\n}\n\nexport function BuyBackShares(corporation: ICorporation, player: IPlayer, numShares: number): boolean {\n if (isNaN(numShares)) throw new Error(\"Invalid value for number of shares\");\n if (numShares < 0) throw new Error(\"Invalid value for number of shares\");\n if (numShares > corporation.issuedShares) throw new Error(\"You don't have that many shares to buy!\");\n if (!corporation.public) throw new Error(\"You haven't gone public!\");\n const buybackPrice = corporation.sharePrice * 1.1;\n if (player.money < numShares * buybackPrice) throw new Error(\"You cant afford that many shares!\");\n corporation.numShares += numShares;\n corporation.issuedShares -= numShares;\n player.loseMoney(numShares * buybackPrice, \"corporation\");\n return true;\n}\n\nexport function AssignJob(office: OfficeSpace, employeeName: string, job: string): void {\n const employee = office.employees.find((e) => e.name === employeeName);\n\n if (!employee) throw new Error(`Could not find employee '${name}'.`);\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n\n office.assignSingleJob(employee, job);\n}\n\nexport function AutoAssignJob(office: OfficeSpace, job: string, count: number): boolean {\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n\n return office.autoAssignJob(job, count);\n}\n\nexport function UpgradeOfficeSize(corp: ICorporation, office: OfficeSpace, size: number): void {\n const initialPriceMult = Math.round(office.size / CorporationConstants.OfficeInitialSize);\n const costMultiplier = 1.09;\n // Calculate cost to upgrade size by 15 employees\n let mult = 0;\n for (let i = 0; i < size / CorporationConstants.OfficeInitialSize; ++i) {\n mult += Math.pow(costMultiplier, initialPriceMult + i);\n }\n const cost = CorporationConstants.OfficeInitialCost * mult;\n if (corp.funds < cost) return;\n office.size += size;\n corp.funds = corp.funds - cost;\n}\n\nexport function BuyCoffee(corp: ICorporation, office: OfficeSpace): boolean {\n const cost = office.getCoffeeCost();\n if (corp.funds < cost) {\n return false;\n }\n\n if (!office.setCoffee()) {\n return false;\n }\n corp.funds -= cost;\n\n return true;\n}\n\nexport function ThrowParty(corp: ICorporation, office: OfficeSpace, costPerEmployee: number): number {\n const mult = 1 + costPerEmployee / 10e6;\n const cost = costPerEmployee * office.employees.length;\n if (corp.funds < cost) {\n return 0;\n }\n\n if (!office.setParty(mult)) {\n return 0;\n }\n corp.funds -= cost;\n\n return mult;\n}\n\nexport function PurchaseWarehouse(corp: ICorporation, division: IIndustry, city: string): void {\n if (corp.funds < CorporationConstants.WarehouseInitialCost) return;\n if (division.warehouses[city] instanceof Warehouse) return;\n division.warehouses[city] = new Warehouse({\n corp: corp,\n industry: division,\n loc: city,\n size: CorporationConstants.WarehouseInitialSize,\n });\n corp.funds = corp.funds - CorporationConstants.WarehouseInitialCost;\n}\n\nexport function UpgradeWarehouseCost(warehouse: Warehouse, amt: number): number {\n return Array.from(Array(amt).keys()).reduce(\n (acc, index) => acc + CorporationConstants.WarehouseUpgradeBaseCost * Math.pow(1.07, warehouse.level + 1 + index),\n 0,\n );\n}\n\nexport function UpgradeWarehouse(corp: ICorporation, division: IIndustry, warehouse: Warehouse, amt = 1): void {\n const sizeUpgradeCost = UpgradeWarehouseCost(warehouse, amt);\n if (corp.funds < sizeUpgradeCost) return;\n warehouse.level += amt;\n warehouse.updateSize(corp, division);\n corp.funds = corp.funds - sizeUpgradeCost;\n}\n\nexport function HireAdVert(corp: ICorporation, division: IIndustry): void {\n const cost = division.getAdVertCost();\n if (corp.funds < cost) return;\n corp.funds = corp.funds - cost;\n division.applyAdVert(corp);\n}\n\nexport function MakeProduct(\n corp: ICorporation,\n division: IIndustry,\n city: string,\n productName: string,\n designInvest: number,\n marketingInvest: number,\n): void {\n if (designInvest < 0) {\n designInvest = 0;\n }\n if (marketingInvest < 0) {\n marketingInvest = 0;\n }\n if (productName == null || productName === \"\") {\n throw new Error(\"You must specify a name for your product!\");\n }\n if (!division.makesProducts) {\n throw new Error(\"You cannot create products for this industry!\");\n }\n if (isNaN(designInvest)) {\n throw new Error(\"Invalid value for design investment\");\n }\n if (isNaN(marketingInvest)) {\n throw new Error(\"Invalid value for marketing investment\");\n }\n if (corp.funds < designInvest + marketingInvest) {\n throw new Error(\"You don't have enough company funds to make this large of an investment\");\n }\n let maxProducts = 3;\n if (division.hasResearch(\"uPgrade: Capacity.II\")) {\n maxProducts = 5;\n } else if (division.hasResearch(\"uPgrade: Capacity.I\")) {\n maxProducts = 4;\n }\n const products = division.products;\n if (Object.keys(products).length >= maxProducts) {\n throw new Error(`You are already at the max products (${maxProducts}) for division: ${division.name}!`);\n }\n\n const product = new Product({\n name: productName.replace(/[<>]/g, \"\").trim(), //Sanitize for HTMl elements\n createCity: city,\n designCost: designInvest,\n advCost: marketingInvest,\n });\n if (products[product.name] instanceof Product) {\n throw new Error(`You already have a product with this name!`);\n }\n\n corp.funds = corp.funds - (designInvest + marketingInvest);\n products[product.name] = product;\n}\n\nexport function Research(division: IIndustry, researchName: string): void {\n const researchTree = IndustryResearchTrees[division.type];\n if (researchTree === undefined) throw new Error(`No research tree for industry '${division.type}'`);\n const allResearch = researchTree.getAllNodes();\n if (!allResearch.includes(researchName)) throw new Error(`No research named '${researchName}'`);\n const research = ResearchMap[researchName];\n\n if (division.sciResearch.qty < research.cost)\n throw new Error(`You do not have enough Scientific Research for ${research.name}`);\n division.sciResearch.qty -= research.cost;\n\n // Get the Node from the Research Tree and set its 'researched' property\n researchTree.research(researchName);\n division.researched[researchName] = true;\n}\n\nexport function ExportMaterial(\n divisionName: string,\n cityName: string,\n material: Material,\n amt: string,\n division?: Industry,\n): void {\n // Sanitize amt\n let sanitizedAmt = amt.replace(/\\s+/g, \"\").toUpperCase();\n sanitizedAmt = sanitizedAmt.replace(/[^-()\\d/*+.MAX]/g, \"\");\n let temp = sanitizedAmt.replace(/MAX/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid expression entered for export amount: \" + e);\n }\n\n const n = parseFloat(temp);\n\n if (n == null || isNaN(n) || n < 0) {\n throw new Error(\"Invalid amount entered for export\");\n }\n\n if (!division || !isRelevantMaterial(material.name, division)) {\n throw new Error(`You cannot export material: ${material.name} to division: ${divisionName}!`);\n }\n\n const exportObj = { ind: divisionName, city: cityName, amt: sanitizedAmt };\n material.exp.push(exportObj);\n}\n\nexport function CancelExportMaterial(divisionName: string, cityName: string, material: Material, amt: string): void {\n for (let i = 0; i < material.exp.length; ++i) {\n if (material.exp[i].ind !== divisionName || material.exp[i].city !== cityName || material.exp[i].amt !== amt)\n continue;\n material.exp.splice(i, 1);\n break;\n }\n}\n\nexport function LimitProductProduction(product: Product, cityName: string, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n product.prdman[cityName][0] = false;\n product.prdman[cityName][1] = 0;\n } else {\n product.prdman[cityName][0] = true;\n product.prdman[cityName][1] = qty;\n }\n}\n\nexport function LimitMaterialProduction(material: Material, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n material.prdman[0] = false;\n material.prdman[1] = 0;\n } else {\n material.prdman[0] = true;\n material.prdman[1] = qty;\n }\n}\n\nexport function SetMaterialMarketTA1(material: Material, on: boolean): void {\n material.marketTa1 = on;\n}\n\nexport function SetMaterialMarketTA2(material: Material, on: boolean): void {\n material.marketTa2 = on;\n}\n\nexport function SetProductMarketTA1(product: Product, on: boolean): void {\n product.marketTa1 = on;\n}\n\nexport function SetProductMarketTA2(product: Product, on: boolean): void {\n product.marketTa2 = on;\n}\n","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","export enum BlackOperationNames {\n OperationTyphoon = \"Operation Typhoon\",\n OperationZero = \"Operation Zero\",\n OperationX = \"Operation X\",\n OperationTitan = \"Operation Titan\",\n OperationAres = \"Operation Ares\",\n OperationArchangel = \"Operation Archangel\",\n OperationJuggernaut = \"Operation Juggernaut\",\n OperationRedDragon = \"Operation Red Dragon\",\n OperationK = \"Operation K\",\n OperationDeckard = \"Operation Deckard\",\n OperationTyrell = \"Operation Tyrell\",\n OperationWallace = \"Operation Wallace\",\n OperationShoulderOfOrion = \"Operation Shoulder of Orion\",\n OperationHyron = \"Operation Hyron\",\n OperationMorpheus = \"Operation Morpheus\",\n OperationIonStorm = \"Operation Ion Storm\",\n OperationAnnihilus = \"Operation Annihilus\",\n OperationUltron = \"Operation Ultron\",\n OperationCenturion = \"Operation Centurion\",\n OperationVindictus = \"Operation Vindictus\",\n OperationDaedalus = \"Operation Daedalus\",\n}\n","import { IPlayer } from \"../IPlayer\";\nimport { PlayerObject } from \"./PlayerObject\";\nimport { applyAugmentation } from \"../../Augmentation/AugmentationHelpers\";\nimport { PlayerOwnedAugmentation } from \"../../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CodingContractRewardType, ICodingContractReward } from \"../../CodingContracts\";\nimport { Company } from \"../../Company/Company\";\nimport { Companies } from \"../../Company/Companies\";\nimport { getNextCompanyPositionHelper } from \"../../Company/GetNextCompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\nimport { CompanyPositions } from \"../../Company/CompanyPositions\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport * as posNames from \"../../Company/data/companypositionnames\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { Programs } from \"../../Programs/Programs\";\nimport { Exploit } from \"../../Exploits/Exploit\";\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\nimport { resetGangs } from \"../../Gang/AllGangs\";\nimport { Cities } from \"../../Locations/Cities\";\nimport { Locations } from \"../../Locations/Locations\";\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { Sleeve } from \"../Sleeve/Sleeve\";\nimport {\n calculateSkill as calculateSkillF,\n calculateSkillProgress as calculateSkillProgressF,\n ISkillProgress,\n} from \"../formulas/skill\";\nimport { calculateIntelligenceBonus } from \"../formulas/intelligence\";\nimport { GetServer, AddToAllServers, createUniqueRandomIp } from \"../../Server/AllServers\";\nimport { Server } from \"../../Server/Server\";\nimport { safetlyCreateUniqueServer } from \"../../Server/ServerHelpers\";\n\nimport { SpecialServers } from \"../../Server/data/SpecialServers\";\nimport { applySourceFile } from \"../../SourceFile/applySourceFile\";\nimport { applyExploit } from \"../../Exploits/applyExploits\";\nimport { SourceFiles } from \"../../SourceFile/SourceFiles\";\nimport { getHospitalizationCost } from \"../../Hospital/Hospital\";\nimport { HacknetServer } from \"../../Hacknet/HacknetServer\";\n\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { MoneySourceTracker } from \"../../utils/MoneySourceTracker\";\nimport { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\nimport { SnackbarEvents, ToastVariant } from \"../../ui/React/Snackbar\";\nimport { achievements } from \"../../Achievements/Achievements\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\nimport { ITaskTracker } from \"../ITaskTracker\";\nimport { IPerson } from \"../IPerson\";\nimport { Player } from \"../../Player\";\n\nimport { isCompanyWork } from \"../../Work/CompanyWork\";\nimport { defaultMultipliers } from \"../Multipliers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\n\nexport function init(this: IPlayer): void {\n /* Initialize Player's home computer */\n const t_homeComp = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: \"home\",\n ip: createUniqueRandomIp(),\n isConnectedTo: true,\n maxRam: 8,\n organizationName: \"Home PC\",\n purchasedByPlayer: true,\n });\n this.currentServer = SpecialServers.Home;\n AddToAllServers(t_homeComp);\n\n this.getHomeComputer().programs.push(Programs.NukeProgram.name);\n}\n\nexport function prestigeAugmentation(this: PlayerObject): void {\n this.currentServer = SpecialServers.Home;\n\n this.numPeopleKilled = 0;\n\n //Reset stats\n this.hacking = 1;\n\n this.strength = 1;\n this.defense = 1;\n this.dexterity = 1;\n this.agility = 1;\n\n this.charisma = 1;\n\n this.hacking_exp = 0;\n this.strength_exp = 0;\n this.defense_exp = 0;\n this.dexterity_exp = 0;\n this.agility_exp = 0;\n this.charisma_exp = 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 = this.max_hp;\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.hacking = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.hacking_exp, this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier)),\n );\n this.strength = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.strength_exp, this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier),\n ),\n );\n this.defense = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.defense_exp, this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier)),\n );\n this.dexterity = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.dexterity_exp, this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier),\n ),\n );\n this.agility = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.agility_exp, this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier)),\n );\n this.charisma = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.charisma_exp, this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier),\n ),\n );\n\n if (this.intelligence > 0) {\n this.intelligence = Math.floor(this.calculateSkill(this.intelligence_exp));\n } else {\n this.intelligence = 0;\n }\n\n const ratio = this.hp / this.max_hp;\n this.max_hp = Math.floor(10 + this.defense / 10);\n this.hp = Math.round(this.max_hp * 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.hacking_exp += exp;\n if (this.hacking_exp < 0) {\n this.hacking_exp = 0;\n }\n\n this.hacking = calculateSkillF(this.hacking_exp, this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier);\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.strength_exp += exp;\n if (this.strength_exp < 0) {\n this.strength_exp = 0;\n }\n\n this.strength = calculateSkillF(this.strength_exp, this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier);\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.defense_exp += exp;\n if (this.defense_exp < 0) {\n this.defense_exp = 0;\n }\n\n this.defense = calculateSkillF(this.defense_exp, this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier);\n const ratio = this.hp / this.max_hp;\n this.max_hp = Math.floor(10 + this.defense / 10);\n this.hp = Math.round(this.max_hp * 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.dexterity_exp += exp;\n if (this.dexterity_exp < 0) {\n this.dexterity_exp = 0;\n }\n\n this.dexterity = calculateSkillF(\n this.dexterity_exp,\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.agility_exp += exp;\n if (this.agility_exp < 0) {\n this.agility_exp = 0;\n }\n\n this.agility = calculateSkillF(this.agility_exp, this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier);\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.charisma_exp += exp;\n if (this.charisma_exp < 0) {\n this.charisma_exp = 0;\n }\n\n this.charisma = calculateSkillF(this.charisma_exp, this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier);\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.intelligence > 0) {\n this.intelligence_exp += exp;\n this.intelligence = Math.floor(this.calculateSkill(this.intelligence_exp, 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.hacking;\n }\n if (tempStr.includes(\"str\")) {\n return this.strength;\n }\n if (tempStr.includes(\"def\")) {\n return this.defense;\n }\n if (tempStr.includes(\"dex\")) {\n return this.dexterity;\n }\n if (tempStr.includes(\"agi\")) {\n return this.agility;\n }\n if (tempStr.includes(\"cha\")) {\n return this.charisma;\n }\n if (tempStr.includes(\"int\")) {\n return this.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 -= amt;\n if (this.hp <= 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 += amt;\n if (this.hp > this.max_hp) {\n this.hp = this.max_hp;\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 = this.max_hp;\n return cost;\n}\n\n/********* Company job application **********/\n//Determines the job that the Player should get (if any) at the current company\n//The 'sing' argument designates whether or not this is being called from\n//the applyToCompany() Netscript Singularity function\nexport function applyForJob(this: IPlayer, entryPosType: CompanyPosition, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (!(company instanceof Company)) {\n console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`);\n return false;\n }\n\n let pos = entryPosType;\n\n if (!this.isQualified(company, pos)) {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position \" + getJobRequirementText(company, pos));\n }\n return false;\n }\n\n if (!company.hasPosition(pos)) {\n console.error(`Company ${company.name} does not have position ${pos}. Player.applyToCompany() failed`);\n return false;\n }\n\n while (true) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null) break;\n if (company.hasPosition(nextPos) && this.isQualified(company, nextPos)) {\n pos = nextPos;\n } else break;\n }\n\n //Check if player already has the assigned job\n if (this.jobs[company.name] === pos.name) {\n if (!sing) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null || !company.hasPosition(nextPos)) {\n dialogBoxCreate(\"You are already at the highest position for your field! No promotion available\");\n } else {\n const reqText = getJobRequirementText(company, nextPos);\n dialogBoxCreate(\"Unfortunately, you do not qualify for a promotion \" + reqText);\n }\n }\n return false;\n }\n\n this.jobs[company.name] = pos.name;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations! You were offered a new job at \" + company.name + \" as a \" + pos.name + \"!\");\n }\n return true;\n}\n\n//Returns your next position at a company given the field (software, business, etc.)\nexport function getNextCompanyPosition(\n this: IPlayer,\n company: Company,\n entryPosType: CompanyPosition,\n): CompanyPosition | null {\n const currCompany = Companies[company.name];\n\n //Not employed at this company, so return the entry position\n if (currCompany == null || currCompany.name != company.name) {\n return entryPosType;\n }\n\n //If the entry pos type and the player's current position have the same type,\n //return the player's \"nextCompanyPosition\". Otherwise return the entryposType\n //Employed at this company, so just return the next position if it exists.\n const currentPositionName = this.jobs[company.name];\n if (!currentPositionName) return entryPosType;\n const currentPosition = CompanyPositions[currentPositionName];\n if (\n (currentPosition.isSoftwareJob() && entryPosType.isSoftwareJob()) ||\n (currentPosition.isITJob() && entryPosType.isITJob()) ||\n (currentPosition.isBusinessJob() && entryPosType.isBusinessJob()) ||\n (currentPosition.isSecurityEngineerJob() && entryPosType.isSecurityEngineerJob()) ||\n (currentPosition.isNetworkEngineerJob() && entryPosType.isNetworkEngineerJob()) ||\n (currentPosition.isSecurityJob() && entryPosType.isSecurityJob()) ||\n (currentPosition.isAgentJob() && entryPosType.isAgentJob()) ||\n (currentPosition.isSoftwareConsultantJob() && entryPosType.isSoftwareConsultantJob()) ||\n (currentPosition.isBusinessConsultantJob() && entryPosType.isBusinessConsultantJob()) ||\n (currentPosition.isPartTimeJob() && entryPosType.isPartTimeJob())\n ) {\n return getNextCompanyPositionHelper(currentPosition);\n }\n\n return entryPosType;\n}\n\nexport function quitJob(this: IPlayer, company: string): void {\n if (isCompanyWork(this.currentWork) && this.currentWork.companyName === company) {\n this.finishWork(true);\n }\n delete this.jobs[company];\n}\n\n/**\n * Method to see if the player has at least one job assigned to them\n * @param this The player instance\n * @returns Whether the user has at least one job\n */\nexport function hasJob(this: IPlayer): boolean {\n return Boolean(Object.keys(this.jobs).length);\n}\n\nexport function applyForSoftwareJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareCompanyPositions[0]], sing);\n}\n\nexport function applyForSoftwareConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForItJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.ITCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]])) {\n return this.applyForJob(CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]], sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForNetworkEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForBusinessJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessCompanyPositions[0]], sing);\n}\n\nexport function applyForBusinessConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityJob(this: IPlayer, sing = false): boolean {\n // TODO Police Jobs\n // Indexing starts at 2 because 0 is for police officer\n return this.applyForJob(CompanyPositions[posNames.SecurityCompanyPositions[2]], sing);\n}\n\nexport function applyForAgentJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.AgentCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.AgentCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForPartTimeEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed part-time at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForPartTimeWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a part-time waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\n//Checks if the Player is qualified for a certain position\nexport function isQualified(this: IPlayer, company: Company, position: CompanyPosition): boolean {\n const offset = company.jobStatReqOffset;\n const reqHacking = position.requiredHacking > 0 ? position.requiredHacking + offset : 0;\n const reqStrength = position.requiredStrength > 0 ? position.requiredStrength + offset : 0;\n const reqDefense = position.requiredDefense > 0 ? position.requiredDefense + offset : 0;\n const reqDexterity = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqAgility = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqCharisma = position.requiredCharisma > 0 ? position.requiredCharisma + offset : 0;\n\n return (\n this.hacking >= reqHacking &&\n this.strength >= reqStrength &&\n this.defense >= reqDefense &&\n this.dexterity >= reqDexterity &&\n this.agility >= reqAgility &&\n this.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.hacking >= 1500 &&\n this.strength >= 1200 &&\n this.defense >= 1200 &&\n this.dexterity >= 1200 &&\n this.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.hacking >= 2500 ||\n (this.strength >= 1500 && this.defense >= 1500 && this.dexterity >= 1500 && this.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.hacking >= 850 &&\n this.strength >= 850 &&\n this.defense >= 850 &&\n this.dexterity >= 850 &&\n this.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.hacking >= 100 &&\n this.strength >= 300 &&\n this.defense >= 300 &&\n this.dexterity >= 300 &&\n this.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.hacking >= 300 &&\n this.strength >= 300 &&\n this.defense >= 300 &&\n this.dexterity >= 300 &&\n this.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.hacking >= 200 &&\n this.strength >= 200 &&\n this.defense >= 200 &&\n this.dexterity >= 200 &&\n this.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.strength >= 75 &&\n this.defense >= 75 &&\n this.dexterity >= 75 &&\n this.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.strength >= 30 &&\n this.defense >= 30 &&\n this.dexterity >= 30 &&\n this.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.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.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.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 { 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","/**\n * Enum for different types of tasks that a Sleeve can perform\n */\nexport enum SleeveTaskType {\n // Same Order as selectable order in UI\n Idle,\n Company,\n Faction,\n Crime,\n Class,\n Gym,\n Bladeburner,\n Recovery,\n Synchro,\n}\n","import React from \"react\";\n\nimport { Typography, TableCell, TableRow } from \"@mui/material\";\n\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { formatNumber } from \"../../utils/StringHelperFunctions\";\nimport { characterOverviewStyles as useStyles } from \"./CharacterOverview\";\nimport { ClassNameMap } from \"@material-ui/core/styles/withStyles\";\n\ninterface ITableRowData {\n content?: string;\n level?: number;\n exp?: number;\n}\n\ninterface IProps {\n name: string;\n color: string;\n classes?: ClassNameMap;\n data?: ITableRowData;\n children?: React.ReactElement;\n}\n\nexport const StatsRow = ({ name, color, classes = useStyles(), children, data }: IProps): React.ReactElement => {\n let content = \"\";\n\n if (data) {\n if (data.content !== undefined) {\n content = data.content;\n } else if (data.level !== undefined && data.exp !== undefined) {\n content = `${formatNumber(data.level, 0)} (${numeralWrapper.formatExp(data.exp)} exp)`;\n } else if (data.level !== undefined && data.exp === undefined) {\n content = `${formatNumber(data.level, 0)}`;\n }\n }\n\n return (\n \n \n {name}\n \n \n {content ? {content} : <>>}\n {children}\n \n \n );\n};\n","import { Augmentation } from \"./Augmentation\";\nimport { IMap } from \"../types\";\n\nexport const StaticAugmentations: IMap = {};\n","export enum PositionTypes {\n Long = \"L\",\n Short = \"S\",\n}\n","import React from \"react\";\nimport { TableCell as MuiTableCell, TableCellProps, Table as MuiTable, TableProps } from \"@mui/material\";\n\nimport makeStyles from \"@mui/styles/makeStyles\";\n\nconst useStyles = makeStyles({\n root: {\n borderBottom: \"none\",\n },\n small: {\n width: \"1px\",\n },\n});\n\nexport const TableCell: React.FC = (props: TableCellProps) => {\n return (\n \n );\n};\n\nexport const Table: React.FC = (props: TableProps) => {\n return (\n \n );\n};\n","// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts\nimport { companiesMetadata } from \"./data/CompaniesMetadata\";\nimport { Company, IConstructorParams } from \"./Company\";\nimport { IMap } from \"../types\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let Companies: IMap = {};\n\nfunction addCompany(params: IConstructorParams): void {\n if (Companies[params.name] != null) {\n console.warn(`Duplicate Company Position being defined: ${params.name}`);\n }\n Companies[params.name] = new Company(params);\n}\n\n// Used to initialize new Company objects for the Companies map\n// Called when creating new game or after a prestige/reset\nexport function initCompanies(): void {\n // Save Old Company data for 'favor'\n const oldCompanies = Companies;\n\n // Re-construct all Companies\n Companies = {};\n companiesMetadata.forEach((e) => {\n addCompany(e);\n });\n\n // Reset data\n for (const companyName of Object.keys(Companies)) {\n const company = Companies[companyName];\n const oldCompany = oldCompanies[companyName];\n if (!(oldCompany instanceof Company)) {\n // New game, so no OldCompanies data\n company.favor = 0;\n } else {\n company.favor = oldCompanies[companyName].favor;\n if (isNaN(company.favor)) {\n company.favor = 0;\n }\n }\n }\n}\n\n// Used to load Companies map from a save\nexport function loadCompanies(saveString: string): void {\n Companies = JSON.parse(saveString, Reviver);\n}\n","import { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\ninterface GangTerritory {\n power: number;\n territory: number;\n}\n\nexport let AllGangs: {\n [key: string]: GangTerritory;\n} = {\n [FactionNames.SlumSnakes]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.Tetrads]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheSyndicate]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheDarkArmy]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.SpeakersForTheDead]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.NiteSec]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheBlackHand]: {\n power: 1,\n territory: 1 / 7,\n },\n};\n\nexport function resetGangs(): void {\n AllGangs = {\n [FactionNames.SlumSnakes]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.Tetrads]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheSyndicate]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheDarkArmy]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.SpeakersForTheDead]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.NiteSec]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheBlackHand]: {\n power: 1,\n territory: 1 / 7,\n },\n };\n}\n\nexport function loadAllGangs(saveString: string): void {\n AllGangs = JSON.parse(saveString, Reviver);\n}\n","/**\n * Helper functions that implement \"directory\" functionality in the Terminal.\n * These aren't \"real\" directories, it's more of a pseudo-directory implementation\n * that uses mainly string manipulation.\n *\n * This file contains functions that deal only with that string manipulation.\n * Functions that need to access/process Server-related things can be\n * found in ./DirectoryServerHelpers.ts\n */\n\n/**\n * Removes leading forward slash (\"/\") from a string.\n */\nexport function removeLeadingSlash(s: string): string {\n if (s.startsWith(\"/\")) {\n return s.slice(1);\n }\n\n return s;\n}\n\n/**\n * Removes trailing forward slash (\"/\") from a string.\n * Note that this will also remove the slash if it is the leading slash (i.e. if s = \"/\")\n */\nexport function removeTrailingSlash(s: string): string {\n if (s.endsWith(\"/\")) {\n return s.slice(0, -1);\n }\n\n return s;\n}\n\n/**\n * Checks whether a string is a valid filename. Only used for the filename itself,\n * not the entire filepath\n */\nexport function isValidFilename(filename: string): boolean {\n // Allows alphanumerics, hyphens, underscores, and percentage signs\n // Must have a file extension\n const regex = /^[.a-zA-Z0-9_-]+[.][a-zA-Z0-9]+(?:-\\d+(?:\\.\\d*)?%-INC)?$/;\n\n // match() returns null if no match is found\n return filename.match(regex) != null;\n}\n\n/**\n * Checks whether a string is a valid directory name. Only used for the directory itself,\n * not an entire path\n */\nexport function isValidDirectoryName(name: string): boolean {\n // A valid directory name:\n // Must be at least 1 character long\n // Can only include characters in the character set [-.%a-zA-Z0-9_]\n // Cannot end with a '.'\n const regex = /^.?[a-zA-Z0-9_-]+$/;\n\n // match() returns null if no match is found\n return name.match(regex) != null;\n}\n\n/**\n * Checks whether a string is a valid directory path.\n * This only checks if it has the proper formatting. It does NOT check\n * if the directories actually exist on Terminal\n */\nexport function isValidDirectoryPath(path: string): boolean {\n let t_path: string = path;\n\n if (t_path.length === 0) {\n return false;\n }\n if (t_path.length === 1) {\n return t_path === \"/\";\n }\n\n // A full path must have a leading slash, but we'll ignore it for the checks\n if (t_path.startsWith(\"/\")) {\n t_path = t_path.slice(1);\n } else {\n return false;\n }\n\n // Trailing slash does not matter\n t_path = removeTrailingSlash(t_path);\n\n // Check that every section of the path is a valid directory name\n const dirs = t_path.split(\"/\");\n for (const dir of dirs) {\n // Special case, \".\" and \"..\" are valid for path\n if (dir === \".\" || dir === \"..\") {\n continue;\n }\n if (!isValidDirectoryName(dir)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether a string is a valid file path. This only checks if it has the\n * proper formatting. It dose NOT check if the file actually exists on Terminal\n */\nexport function isValidFilePath(path: string): boolean {\n if (path == null || typeof path !== \"string\") {\n return false;\n }\n const t_path = path;\n\n // Impossible for filename to have less than length of 3\n if (t_path.length < 3) {\n return false;\n }\n\n // Full filepath can't end with trailing slash because it must be a file\n if (t_path.endsWith(\"/\")) {\n return false;\n }\n\n // Everything after the last forward slash is the filename. Everything before\n // it is the file path\n const fnSeparator = t_path.lastIndexOf(\"/\");\n if (fnSeparator === -1) {\n return isValidFilename(t_path);\n }\n\n const fn = t_path.slice(fnSeparator + 1);\n const dirPath = t_path.slice(0, fnSeparator + 1);\n\n return isValidDirectoryPath(dirPath) && isValidFilename(fn);\n}\n\n/**\n * Returns a formatted string for the first parent directory in a filepath. For example:\n * /home/var/test/ -> home/\n * If there is no first parent directory, then it returns \"/\" for root\n */\nexport function getFirstParentDirectory(path: string): string {\n let t_path = path;\n t_path = removeLeadingSlash(t_path);\n t_path = removeTrailingSlash(t_path);\n\n if (t_path.lastIndexOf(\"/\") === -1) {\n return \"/\";\n }\n\n const dirs = t_path.split(\"/\");\n if (dirs.length === 0) {\n return \"/\";\n }\n\n return dirs[0] + \"/\";\n}\n\n/**\n * Given a filepath, returns a formatted string for all of the parent directories\n * in that filepath. For example:\n * /home/var/tes -> home/var/\n * /home/var/test/ -> home/var/test/\n * If there are no parent directories, it returns the empty string\n */\nexport function getAllParentDirectories(path: string): string {\n const t_path = path;\n const lastSlash = t_path.lastIndexOf(\"/\");\n if (lastSlash === -1) {\n return \"\";\n }\n\n return t_path.slice(0, lastSlash + 1);\n}\n\n/**\n * Given a destination that only contains a directory part, returns the\n * path to the source filename inside the new destination directory.\n * Otherwise, returns the path to the destination file.\n * @param destination The destination path or file name\n * @param source The source path\n * @param cwd The current working directory\n * @returns A file path which may be absolute or relative\n */\nexport function getDestinationFilepath(destination: string, source: string, cwd: string): string {\n const dstDir = evaluateDirectoryPath(destination, cwd);\n // If evaluating the directory for this destination fails, we have a filename or full path.\n if (dstDir === null) {\n return destination;\n } else {\n // Append the filename to the directory provided.\n const t_path = removeTrailingSlash(dstDir);\n const fileName = getFileName(source);\n return t_path + \"/\" + fileName;\n }\n}\n\n/**\n * Given a filepath, returns the file name (e.g. without directory parts)\n * For example:\n * /home/var/test.js -> test.js\n * ./var/test.js -> test.js\n * test.js -> test.js\n */\nexport function getFileName(path: string): string {\n const t_path = path;\n const lastSlash = t_path.lastIndexOf(\"/\");\n if (lastSlash === -1) {\n return t_path;\n }\n\n return t_path.slice(lastSlash + 1);\n}\n\n/**\n * Checks if a file path refers to a file in the root directory.\n */\nexport function isInRootDirectory(path: string): boolean {\n if (!isValidFilePath(path)) {\n return false;\n }\n if (path == null || path.length === 0) {\n return false;\n }\n\n return path.lastIndexOf(\"/\") <= 0;\n}\n\n/**\n * Evaluates a directory path, including the processing of linux dots.\n * Returns the full, proper path, or null if an invalid path is passed in\n */\nexport function evaluateDirectoryPath(path: string, currPath?: string): string | null {\n let t_path = path;\n\n // If the path begins with a slash, then its an absolute path. Otherwise its relative\n // For relative paths, we need to prepend the current directory\n if (!t_path.startsWith(\"/\") && currPath) {\n t_path = currPath + (currPath.endsWith(\"/\") ? \"\" : \"/\") + t_path;\n }\n\n if (!isValidDirectoryPath(t_path)) {\n return null;\n }\n\n // Trim leading/trailing slashes\n t_path = removeLeadingSlash(t_path);\n t_path = removeTrailingSlash(t_path);\n\n const dirs = t_path.split(\"/\");\n const reconstructedPath: string[] = [];\n\n for (const dir of dirs) {\n if (dir === \".\") {\n // Current directory, do nothing\n continue;\n } else if (dir === \"..\") {\n // Parent directory\n const res = reconstructedPath.pop();\n if (res == null) {\n return null; // Array was empty, invalid path\n }\n } else {\n reconstructedPath.push(dir);\n }\n }\n\n return \"/\" + reconstructedPath.join(\"/\");\n}\n\n/**\n * Evaluates a file path, including the processing of linux dots.\n * Returns the full, proper path, or null if an invalid path is passed in\n */\nexport function evaluateFilePath(path: string, currPath?: string): string | null {\n let t_path = path;\n\n // If the path begins with a slash, then its an absolute path. Otherwise its relative\n // For relative paths, we need to prepend the current directory\n if (!t_path.startsWith(\"/\") && currPath != null) {\n t_path = currPath + (currPath.endsWith(\"/\") ? \"\" : \"/\") + t_path;\n }\n\n if (!isValidFilePath(t_path)) {\n return null;\n }\n\n // Trim leading/trailing slashes\n t_path = removeLeadingSlash(t_path);\n\n const dirs = t_path.split(\"/\");\n const reconstructedPath: string[] = [];\n\n for (const dir of dirs) {\n if (dir === \".\") {\n // Current directory, do nothing\n continue;\n } else if (dir === \"..\") {\n // Parent directory\n const res = reconstructedPath.pop();\n if (res == null) {\n return null; // Array was empty, invalid path\n }\n } else {\n reconstructedPath.push(dir);\n }\n }\n\n return \"/\" + reconstructedPath.join(\"/\");\n}\n\nexport function areFilesEqual(f0: string, f1: string): boolean {\n if (!f0.startsWith(\"/\")) f0 = \"/\" + f0;\n if (!f1.startsWith(\"/\")) f1 = \"/\" + f1;\n return f0 === f1;\n}\n\nexport function areImportsEquals(f0: string, f1: string): boolean {\n if (!f0.endsWith(\".js\")) f0 = f0 + \".js\";\n if (!f1.endsWith(\".js\")) f1 = f1 + \".js\";\n return areFilesEqual(f0, f1);\n}\n","import { Terminal as TTerminal } from \"./Terminal/Terminal\";\n\nexport const Terminal = new TTerminal();\n","import * 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","import { Crime } from \"./Crime\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { IMap } from \"../types\";\n\nimport { CrimeType } from \"../utils/WorkType\";\n\nexport const Crimes: IMap = {\n Shoplift: new Crime(\"Shoplift\", CrimeType.Shoplift, 2e3, 15e3, 1 / 20, 0.1, {\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n dexterity_exp: 2,\n agility_exp: 2,\n }),\n\n RobStore: new Crime(\"Rob Store\", CrimeType.RobStore, 60e3, 400e3, 1 / 5, 0.5, {\n hacking_exp: 30,\n dexterity_exp: 45,\n agility_exp: 45,\n\n hacking_success_weight: 0.5,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n\n intelligence_exp: 7.5 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Mug: new Crime(\"Mug\", CrimeType.Mug, 4e3, 36e3, 1 / 5, 0.25, {\n strength_exp: 3,\n defense_exp: 3,\n dexterity_exp: 3,\n agility_exp: 3,\n\n strength_success_weight: 1.5,\n defense_success_weight: 0.5,\n dexterity_success_weight: 1.5,\n agility_success_weight: 0.5,\n }),\n\n Larceny: new Crime(\"Larceny\", CrimeType.Larceny, 90e3, 800e3, 1 / 3, 1.5, {\n hacking_exp: 45,\n dexterity_exp: 60,\n agility_exp: 60,\n\n hacking_success_weight: 0.5,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n intelligence_exp: 15 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n DealDrugs: new Crime(\"Deal Drugs\", CrimeType.Drugs, 10e3, 120e3, 1, 0.5, {\n dexterity_exp: 5,\n agility_exp: 5,\n charisma_exp: 10,\n\n charisma_success_weight: 3,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n }),\n\n BondForgery: new Crime(\"Bond Forgery\", CrimeType.BondForgery, 300e3, 4.5e6, 1 / 2, 0.1, {\n hacking_exp: 100,\n dexterity_exp: 150,\n charisma_exp: 15,\n\n hacking_success_weight: 0.05,\n dexterity_success_weight: 1.25,\n\n intelligence_exp: 60 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n TraffickArms: new Crime(\"Traffick Arms\", CrimeType.TraffickArms, 40e3, 600e3, 2, 1, {\n strength_exp: 20,\n defense_exp: 20,\n dexterity_exp: 20,\n agility_exp: 20,\n charisma_exp: 40,\n\n charisma_success_weight: 1,\n strength_success_weight: 1,\n defense_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n }),\n\n Homicide: new Crime(\"Homicide\", CrimeType.Homicide, 3e3, 45e3, 1, 3, {\n strength_exp: 2,\n defense_exp: 2,\n dexterity_exp: 2,\n agility_exp: 2,\n\n strength_success_weight: 2,\n defense_success_weight: 2,\n dexterity_success_weight: 0.5,\n agility_success_weight: 0.5,\n\n kills: 1,\n }),\n\n GrandTheftAuto: new Crime(\"Grand Theft Auto\", CrimeType.GrandTheftAuto, 80e3, 1.6e6, 8, 5, {\n strength_exp: 20,\n defense_exp: 20,\n dexterity_exp: 20,\n agility_exp: 80,\n charisma_exp: 40,\n\n hacking_success_weight: 1,\n strength_success_weight: 1,\n dexterity_success_weight: 4,\n agility_success_weight: 2,\n charisma_success_weight: 2,\n\n intelligence_exp: 16 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Kidnap: new Crime(\"Kidnap\", CrimeType.Kidnap, 120e3, 3.6e6, 5, 6, {\n strength_exp: 80,\n defense_exp: 80,\n dexterity_exp: 80,\n agility_exp: 80,\n charisma_exp: 80,\n\n charisma_success_weight: 1,\n strength_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n intelligence_exp: 26 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Assassination: new Crime(\"Assassination\", CrimeType.Assassination, 300e3, 12e6, 8, 10, {\n strength_exp: 300,\n defense_exp: 300,\n dexterity_exp: 300,\n agility_exp: 300,\n\n strength_success_weight: 1,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n\n intelligence_exp: 65 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n\n kills: 1,\n }),\n\n Heist: new Crime(\"Heist\", CrimeType.Heist, 600e3, 120e6, 18, 15, {\n hacking_exp: 450,\n strength_exp: 450,\n defense_exp: 450,\n dexterity_exp: 450,\n agility_exp: 450,\n charisma_exp: 450,\n\n hacking_success_weight: 1,\n strength_success_weight: 1,\n defense_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n charisma_success_weight: 1,\n\n intelligence_exp: 130 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n};\n","/* 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 React, { useState, useEffect } from \"react\";\n\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IEngine } from \"../IEngine\";\nimport { ITerminal } from \"../Terminal/ITerminal\";\nimport { installAugmentations } from \"../Augmentation/AugmentationHelpers\";\nimport { saveObject } from \"../SaveObject\";\nimport { onExport } from \"../ExportBonus\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { Location } from \"../Locations/Location\";\nimport { ITutorial, iTutorialStart } from \"../InteractiveTutorial\";\nimport { InteractiveTutorialRoot } from \"./InteractiveTutorial/InteractiveTutorialRoot\";\nimport { ITutorialEvents } from \"./InteractiveTutorial/ITutorialEvents\";\n\nimport { Faction } from \"../Faction/Faction\";\nimport { prestigeAugmentation } from \"../Prestige\";\nimport { dialogBoxCreate } from \"./React/DialogBox\";\nimport { GetAllServers } from \"../Server/AllServers\";\nimport { Factions } from \"../Faction/Factions\";\nimport { buyStock, sellStock, shortStock, sellShort } from \"../StockMarket/BuyingAndSelling\";\nimport {\n cancelOrder,\n eventEmitterForUiReset,\n initStockMarketFn,\n placeOrder,\n StockMarket,\n} from \"../StockMarket/StockMarket\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\n\nimport { Page, IRouter, ScriptEditorRouteOptions } from \"./Router\";\nimport { Overview } from \"./React/Overview\";\nimport { SidebarRoot } from \"../Sidebar/ui/SidebarRoot\";\nimport { AugmentationsRoot } from \"../Augmentation/ui/AugmentationsRoot\";\nimport { DevMenuRoot } from \"../DevMenu\";\nimport { BladeburnerRoot } from \"../Bladeburner/ui/BladeburnerRoot\";\nimport { GangRoot } from \"../Gang/ui/GangRoot\";\nimport { CorporationRoot } from \"../Corporation/ui/CorporationRoot\";\nimport { InfiltrationRoot } from \"../Infiltration/ui/InfiltrationRoot\";\nimport { GraftingRoot } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { WorkInProgressRoot } from \"./WorkInProgressRoot\";\nimport { GameOptionsRoot } from \"../GameOptions/ui/GameOptionsRoot\";\nimport { SleeveRoot } from \"../PersonObjects/Sleeve/ui/SleeveRoot\";\nimport { HacknetRoot } from \"../Hacknet/ui/HacknetRoot\";\nimport { GenericLocation } from \"../Locations/ui/GenericLocation\";\nimport { LocationCity } from \"../Locations/ui/City\";\nimport { ProgramsRoot } from \"../Programs/ui/ProgramsRoot\";\nimport { Root as ScriptEditorRoot } from \"../ScriptEditor/ui/ScriptEditorRoot\";\nimport { MilestonesRoot } from \"../Milestones/ui/MilestonesRoot\";\nimport { TerminalRoot } from \"../Terminal/ui/TerminalRoot\";\nimport { TutorialRoot } from \"../Tutorial/ui/TutorialRoot\";\nimport { ActiveScriptsRoot } from \"./ActiveScripts/ActiveScriptsRoot\";\nimport { FactionsRoot } from \"../Faction/ui/FactionsRoot\";\nimport { FactionRoot } from \"../Faction/ui/FactionRoot\";\nimport { CharacterStats } from \"./CharacterStats\";\nimport { TravelAgencyRoot } from \"../Locations/ui/TravelAgencyRoot\";\nimport { StockMarketRoot } from \"../StockMarket/ui/StockMarketRoot\";\nimport { BitverseRoot } from \"../BitNode/ui/BitverseRoot\";\nimport { StaneksGiftRoot } from \"../CotMG/ui/StaneksGiftRoot\";\nimport { staneksGift } from \"../CotMG/Helper\";\nimport { CharacterOverview } from \"./React/CharacterOverview\";\nimport { BladeburnerCinematic } from \"../Bladeburner/ui/BladeburnerCinematic\";\nimport { workerScripts } from \"../Netscript/WorkerScripts\";\nimport { Unclickable } from \"../Exploits/Unclickable\";\nimport { Snackbar, SnackbarProvider } from \"./React/Snackbar\";\nimport { LogBoxManager } from \"./React/LogBoxManager\";\nimport { AlertManager } from \"./React/AlertManager\";\nimport { PromptManager } from \"./React/PromptManager\";\nimport { InvitationModal } from \"../Faction/ui/InvitationModal\";\nimport { calculateAchievements } from \"../Achievements/Achievements\";\n\nimport { enterBitNode } from \"../RedPill\";\nimport { Context } from \"./Context\";\nimport { RecoveryMode, RecoveryRoot } from \"./React/RecoveryRoot\";\nimport { AchievementsRoot } from \"../Achievements/AchievementsRoot\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { Settings } from \"../Settings/Settings\";\nimport { ThemeBrowser } from \"../Themes/ui/ThemeBrowser\";\nimport { ImportSaveRoot } from \"./React/ImportSaveRoot\";\nimport { BypassWrapper } from \"./React/BypassWrapper\";\n\nimport _wrap from \"lodash/wrap\";\nimport _functions from \"lodash/functions\";\nimport { Apr1 } from \"./Apr1\";\nimport { isFactionWork } from \"../Work/FactionWork\";\nimport { V2Modal } from \"../utils/V2Modal\";\n\nconst htmlLocation = location;\n\ninterface IProps {\n terminal: ITerminal;\n player: IPlayer;\n engine: IEngine;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"-ms-overflow-style\": \"none\" /* for Internet Explorer, Edge */,\n \"scrollbar-width\": \"none\" /* for Firefox */,\n margin: theme.spacing(0),\n flexGrow: 1,\n display: \"block\",\n padding: \"8px\",\n minHeight: \"100vh\",\n boxSizing: \"border-box\",\n },\n }),\n);\n\nconst uninitialized = (): void => {\n throw new Error(\"Router called before initialization\");\n};\n\nexport let Router: IRouter = {\n isInitialized: false,\n page: () => {\n throw new Error(\"Router called before initialization\");\n },\n allowRouting: uninitialized,\n toActiveScripts: uninitialized,\n toAugmentations: uninitialized,\n toBitVerse: uninitialized,\n toBladeburner: uninitialized,\n toStats: uninitialized,\n toCity: uninitialized,\n toCorporation: uninitialized,\n toCreateProgram: uninitialized,\n toDevMenu: uninitialized,\n toFaction: uninitialized,\n toFactions: uninitialized,\n toGameOptions: uninitialized,\n toGang: uninitialized,\n toHacknetNodes: uninitialized,\n toInfiltration: uninitialized,\n toJob: uninitialized,\n toMilestones: uninitialized,\n toGrafting: uninitialized,\n toScriptEditor: uninitialized,\n toSleeves: uninitialized,\n toStockMarket: uninitialized,\n toTerminal: uninitialized,\n toTravel: uninitialized,\n toTutorial: uninitialized,\n toWork: uninitialized,\n toBladeburnerCinematic: uninitialized,\n toLocation: uninitialized,\n toStaneksGift: uninitialized,\n toAchievements: uninitialized,\n toThemeBrowser: uninitialized,\n toImportSave: uninitialized,\n};\n\nfunction determineStartPage(player: IPlayer): Page {\n if (RecoveryMode) return Page.Recovery;\n if (player.currentWork !== null) return Page.Work;\n return Page.Terminal;\n}\n\nexport function GameRoot({ player, engine, terminal }: IProps): React.ReactElement {\n const classes = useStyles();\n const [{ files, vim }, setEditorOptions] = useState({ files: {}, vim: false });\n const [page, setPage] = useState(determineStartPage(player));\n const setRerender = useState(0)[1];\n const [augPage, setAugPage] = useState(false);\n const [faction, setFaction] = useState(\n isFactionWork(player.currentWork) ? Factions[player.currentWork.factionName] : (undefined as unknown as Faction),\n );\n if (faction === undefined && page === Page.Faction)\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [flume, setFlume] = useState(false);\n const [quick, setQuick] = useState(false);\n const [location, setLocation] = useState(undefined as unknown as Location);\n if (location === undefined && (page === Page.Infiltration || page === Page.Location || page === Page.Job))\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [cinematicText, setCinematicText] = useState(\"\");\n const [errorBoundaryKey, setErrorBoundaryKey] = useState(0);\n const [sidebarOpened, setSideBarOpened] = useState(Settings.IsSidebarOpened);\n\n const [importString, setImportString] = useState(undefined as unknown as string);\n const [importAutomatic, setImportAutomatic] = useState(false);\n if (importString === undefined && page === Page.ImportSave)\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [allowRoutingCalls, setAllowRoutingCalls] = useState(true);\n\n function resetErrorBoundary(): void {\n setErrorBoundaryKey(errorBoundaryKey + 1);\n }\n\n function rerender(): void {\n setRerender((old) => old + 1);\n }\n useEffect(() => {\n return ITutorialEvents.subscribe(rerender);\n }, []);\n\n function killAllScripts(): void {\n for (const server of GetAllServers()) {\n server.runningScripts = [];\n }\n saveObject.saveGame();\n setTimeout(() => htmlLocation.reload(), 2000);\n }\n\n Router = {\n isInitialized: true,\n page: () => page,\n allowRouting: (value: boolean) => setAllowRoutingCalls(value),\n toActiveScripts: () => setPage(Page.ActiveScripts),\n toAugmentations: () => setPage(Page.Augmentations),\n toBladeburner: () => setPage(Page.Bladeburner),\n toStats: () => setPage(Page.Stats),\n toCorporation: () => setPage(Page.Corporation),\n toCreateProgram: () => setPage(Page.CreateProgram),\n toDevMenu: () => setPage(Page.DevMenu),\n toFaction: (faction: Faction, augPage = false) => {\n setAugPage(augPage);\n setPage(Page.Faction);\n if (faction) setFaction(faction);\n },\n toFactions: () => setPage(Page.Factions),\n toGameOptions: () => setPage(Page.Options),\n toGang: () => setPage(Page.Gang),\n toHacknetNodes: () => setPage(Page.Hacknet),\n toMilestones: () => setPage(Page.Milestones),\n toGrafting: () => setPage(Page.Grafting),\n toScriptEditor: (files: Record, options?: ScriptEditorRouteOptions) => {\n setEditorOptions({\n files,\n vim: !!options?.vim,\n });\n setPage(Page.ScriptEditor);\n },\n toSleeves: () => setPage(Page.Sleeves),\n toStockMarket: () => setPage(Page.StockMarket),\n toTerminal: () => setPage(Page.Terminal),\n toTutorial: () => setPage(Page.Tutorial),\n toJob: (location: Location) => {\n setLocation(location);\n setPage(Page.Job);\n },\n toCity: () => {\n setPage(Page.City);\n },\n toTravel: () => {\n player.gotoLocation(LocationName.TravelAgency);\n setPage(Page.Travel);\n },\n toBitVerse: (flume: boolean, quick: boolean) => {\n setFlume(flume);\n setQuick(quick);\n calculateAchievements();\n setPage(Page.BitVerse);\n },\n toInfiltration: (location: Location) => {\n setLocation(location);\n setPage(Page.Infiltration);\n },\n toWork: () => setPage(Page.Work),\n toBladeburnerCinematic: () => {\n setPage(Page.BladeburnerCinematic);\n setCinematicText(cinematicText);\n },\n toLocation: (location: Location) => {\n setLocation(location);\n setPage(Page.Location);\n },\n toStaneksGift: () => {\n setPage(Page.StaneksGift);\n },\n toAchievements: () => {\n setPage(Page.Achievements);\n },\n toThemeBrowser: () => {\n setPage(Page.ThemeBrowser);\n },\n toImportSave: (base64save: string, automatic = false) => {\n setImportString(base64save);\n setImportAutomatic(automatic);\n setPage(Page.ImportSave);\n },\n };\n\n useEffect(() => {\n // Wrap Router navigate functions to be able to disable the execution\n _functions(Router)\n .filter((fnName) => fnName.startsWith(\"to\"))\n .forEach((fnName) => {\n // @ts-ignore - tslint does not like this, couldn't find a way to make it cooperate\n Router[fnName] = _wrap(Router[fnName], (func, ...args) => {\n if (!allowRoutingCalls) {\n // Let's just log to console.\n console.error(`Routing is currently disabled - Attempted router.${fnName}()`);\n return;\n }\n\n // Call the function normally\n return func(...args);\n });\n });\n });\n\n useEffect(() => {\n if (page !== Page.Terminal) window.scrollTo(0, 0);\n });\n\n function softReset(): void {\n dialogBoxCreate(\"Soft Reset!\");\n installAugmentations(true);\n resetErrorBoundary();\n Router.toTerminal();\n }\n\n let mainPage = Cannot load;\n let withSidebar = true;\n let withPopups = true;\n let bypassGame = false;\n switch (page) {\n case Page.Recovery: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n break;\n }\n case Page.BitVerse: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Infiltration: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.BladeburnerCinematic: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Work: {\n mainPage = ;\n withSidebar = false;\n break;\n }\n case Page.Terminal: {\n mainPage = ;\n break;\n }\n case Page.Sleeves: {\n mainPage = ;\n break;\n }\n case Page.StaneksGift: {\n mainPage = ;\n break;\n }\n case Page.Stats: {\n mainPage = ;\n break;\n }\n case Page.ScriptEditor: {\n mainPage = (\n \n );\n break;\n }\n case Page.ActiveScripts: {\n mainPage = ;\n break;\n }\n case Page.Hacknet: {\n mainPage = ;\n break;\n }\n case Page.CreateProgram: {\n mainPage = ;\n break;\n }\n case Page.Factions: {\n mainPage = ;\n break;\n }\n case Page.Faction: {\n mainPage = ;\n break;\n }\n case Page.Milestones: {\n mainPage = ;\n break;\n }\n case Page.Tutorial: {\n mainPage = (\n {\n prestigeAugmentation();\n Router.toTerminal();\n iTutorialStart();\n }}\n />\n );\n break;\n }\n case Page.DevMenu: {\n mainPage = ;\n break;\n }\n case Page.Gang: {\n mainPage = ;\n break;\n }\n case Page.Corporation: {\n mainPage = ;\n break;\n }\n case Page.Bladeburner: {\n mainPage = ;\n break;\n }\n case Page.Grafting: {\n mainPage = ;\n break;\n }\n case Page.Travel: {\n mainPage = ;\n break;\n }\n case Page.StockMarket: {\n mainPage = (\n \n );\n break;\n }\n case Page.City: {\n mainPage = ;\n break;\n }\n case Page.Job:\n case Page.Location: {\n mainPage = ;\n break;\n }\n case Page.Options: {\n mainPage = (\n saveObject.saveGame()}\n export={() => {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n forceKill={killAllScripts}\n softReset={softReset}\n />\n );\n break;\n }\n case Page.Augmentations: {\n mainPage = (\n {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n installAugmentationsFn={() => {\n installAugmentations();\n }}\n />\n );\n break;\n }\n case Page.Achievements: {\n mainPage = ;\n break;\n }\n case Page.ThemeBrowser: {\n mainPage = ;\n break;\n }\n case Page.ImportSave: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n }\n }\n\n return (\n \n \n \n \n \n \n {!ITutorial.isRunning ? (\n saveObject.saveGame()} killScripts={killAllScripts} />\n ) : (\n \n )}\n \n {withSidebar ? (\n \n {\n setSideBarOpened(isOpened);\n Settings.IsSidebarOpened = isOpened;\n }}\n />\n {mainPage}\n \n ) : (\n {mainPage}\n )}\n \n {withPopups && (\n <>\n \n \n \n \n \n >\n )}\n \n \n \n \n \n \n \n );\n}\n","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, this);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n const rate = this.calculateRates(player);\n const earnings = applyWorkStats(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 * Hacknet Servers - Reworked Hacknet Node mechanic for BitNode-9\n */\nimport { CONSTANTS } from \"../Constants\";\n\nimport { IHacknetNode } from \"./IHacknetNode\";\n\nimport { BaseServer } from \"../Server/BaseServer\";\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { HacknetServerConstants } from \"./data/Constants\";\nimport {\n calculateHashGainRate,\n calculateLevelUpgradeCost,\n calculateRamUpgradeCost,\n calculateCoreUpgradeCost,\n calculateCacheUpgradeCost,\n} from \"./formulas/HacknetServers\";\n\nimport { createRandomIp } from \"../utils/IPAddress\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\ninterface IConstructorParams {\n adminRights?: boolean;\n hostname: string;\n ip?: string;\n isConnectedTo?: boolean;\n maxRam?: number;\n organizationName?: string;\n}\n\nexport class HacknetServer extends BaseServer implements IHacknetNode {\n // Cache level. Affects hash Capacity\n cache = 1;\n\n // Number of cores. Improves hash production\n cores = 1;\n\n // Number of hashes that can be stored by this Hacknet Server\n hashCapacity = 0;\n\n // Hashes produced per second\n hashRate = 0;\n\n // Similar to Node level. Improves hash production\n level = 1;\n\n // How long this HacknetServer has existed, in seconds\n onlineTimeSeconds = 0;\n\n // Total number of hashes earned by this server\n totalHashesGenerated = 0;\n\n // Flag indicating wehther this is a purchased server\n purchasedByPlayer = true;\n\n constructor(params: IConstructorParams = { hostname: \"\", ip: createRandomIp() }) {\n super(params);\n\n this.maxRam = 1;\n this.updateHashCapacity();\n }\n\n calculateCacheUpgradeCost(levels: number): number {\n return calculateCacheUpgradeCost(this.cache, levels);\n }\n\n calculateCoreUpgradeCost(levels: number, costMult: number): number {\n return calculateCoreUpgradeCost(this.cores, levels, costMult);\n }\n\n calculateLevelUpgradeCost(levels: number, costMult: number): number {\n return calculateLevelUpgradeCost(this.level, levels, costMult);\n }\n\n calculateRamUpgradeCost(levels: number, costMult: number): number {\n return calculateRamUpgradeCost(this.maxRam, levels, costMult);\n }\n\n // Process this Hacknet Server in the game loop. Returns the number of hashes generated\n process(numCycles = 1): number {\n const seconds = (numCycles * CONSTANTS.MilliPerCycle) / 1000;\n this.onlineTimeSeconds += seconds;\n\n const hashes = this.hashRate * seconds;\n this.totalHashesGenerated += hashes;\n\n return hashes;\n }\n\n upgradeCache(levels: number): void {\n this.cache = Math.min(HacknetServerConstants.MaxCache, Math.round(this.cache + levels));\n this.updateHashCapacity();\n }\n\n upgradeCore(levels: number, prodMult: number): void {\n this.cores = Math.min(HacknetServerConstants.MaxCores, Math.round(this.cores + levels));\n this.updateHashRate(prodMult);\n this.cpuCores = this.cores;\n }\n\n upgradeLevel(levels: number, prodMult: number): void {\n this.level = Math.min(HacknetServerConstants.MaxLevel, Math.round(this.level + levels));\n this.updateHashRate(prodMult);\n }\n\n upgradeRam(levels: number, prodMult: number): boolean {\n for (let i = 0; i < levels; ++i) {\n this.maxRam *= 2;\n }\n this.maxRam = Math.min(HacknetServerConstants.MaxRam, Math.round(this.maxRam));\n this.updateHashRate(prodMult);\n\n return true;\n }\n\n // Whenever a script is run, we must update this server's hash rate\n runScript(script: RunningScript, prodMult?: number): void {\n super.runScript(script);\n if (prodMult != null && typeof prodMult === \"number\") {\n this.updateHashRate(prodMult);\n }\n }\n\n updateRamUsed(ram: number, player: IPlayer): void {\n super.updateRamUsed(ram, player);\n this.updateHashRate(player.mults.hacknet_node_money);\n }\n\n updateHashCapacity(): void {\n this.hashCapacity = 32 * Math.pow(2, this.cache);\n }\n\n updateHashRate(prodMult: number): void {\n this.hashRate = calculateHashGainRate(this.level, this.ramUsed, this.maxRam, this.cores, prodMult);\n\n if (isNaN(this.hashRate)) {\n this.hashRate = 0;\n console.error(\n `Error calculating Hacknet Server hash production. This is a bug. Please report to game dev`,\n false,\n );\n }\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): IReviverValue {\n return Generic_toJSON(\"HacknetServer\", this);\n }\n\n // Initializes a HacknetServer Object from a JSON save state\n static fromJSON(value: IReviverValue): HacknetServer {\n return Generic_fromJSON(HacknetServer, value.data);\n }\n}\n\nReviver.constructors.HacknetServer = HacknetServer;\n","import React, { useEffect } from \"react\";\nimport { useSnackbar, SnackbarProvider as SB } from \"notistack\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport Alert from \"@mui/material/Alert\";\nimport Paper from \"@mui/material/Paper\";\nimport { logBoxBaseZIndex } from \"./LogBoxManager\";\n\ninterface IProps {\n children: React.ReactNode | React.ReactNode[];\n}\n\nexport enum ToastVariant {\n SUCCESS = \"success\",\n WARNING = \"warning\",\n ERROR = \"error\",\n INFO = \"info\",\n}\n\nconst useStyles = makeStyles(() => ({\n snackbar: {\n // Log popup z-index increments, so let's add a padding to be well above them.\n zIndex: `${logBoxBaseZIndex + 1000} !important` as any,\n\n \"& .MuiAlert-icon\": {\n alignSelf: \"center\",\n },\n },\n}));\n\nexport function SnackbarProvider(props: IProps): React.ReactElement {\n const classes = useStyles();\n return (\n \n {props.children}\n \n );\n}\n\nexport const SnackbarEvents = new EventEmitter<[string | React.ReactNode, ToastVariant, number]>();\n\nexport function Snackbar(): React.ReactElement {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n useEffect(() =>\n SnackbarEvents.subscribe((s, variant, duration) => {\n const id = enqueueSnackbar({s}, {\n content: (k, m) => {m},\n variant: variant,\n autoHideDuration: duration,\n onClick: () => closeSnackbar(id),\n });\n }),\n );\n return <>>;\n}\n","import { IMap } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nexport const StockSymbols: IMap = {};\n\n// Stocks for companies at which you can work\nStockSymbols[LocationName.AevumECorp] = \"ECP\";\nStockSymbols[LocationName.Sector12MegaCorp] = \"MGCP\";\nStockSymbols[LocationName.Sector12BladeIndustries] = \"BLD\";\nStockSymbols[LocationName.AevumClarkeIncorporated] = \"CLRK\";\nStockSymbols[LocationName.VolhavenOmniTekIncorporated] = \"OMTK\";\nStockSymbols[LocationName.Sector12FourSigma] = \"FSIG\";\nStockSymbols[LocationName.ChongqingKuaiGongInternational] = \"KGI\";\nStockSymbols[LocationName.AevumFulcrumTechnologies] = \"FLCM\";\nStockSymbols[LocationName.IshimaStormTechnologies] = \"STM\";\nStockSymbols[LocationName.NewTokyoDefComm] = \"DCOMM\";\nStockSymbols[LocationName.VolhavenHeliosLabs] = \"HLS\";\nStockSymbols[LocationName.NewTokyoVitaLife] = \"VITA\";\nStockSymbols[LocationName.Sector12IcarusMicrosystems] = \"ICRS\";\nStockSymbols[LocationName.Sector12UniversalEnergy] = \"UNV\";\nStockSymbols[LocationName.AevumAeroCorp] = \"AERO\";\nStockSymbols[LocationName.VolhavenOmniaCybersystems] = \"OMN\";\nStockSymbols[LocationName.ChongqingSolarisSpaceSystems] = \"SLRS\";\nStockSymbols[LocationName.NewTokyoGlobalPharmaceuticals] = \"GPH\";\nStockSymbols[LocationName.IshimaNovaMedical] = \"NVMD\";\nStockSymbols[LocationName.AevumWatchdogSecurity] = \"WDS\";\nStockSymbols[LocationName.VolhavenLexoCorp] = \"LXO\";\nStockSymbols[LocationName.AevumRhoConstruction] = \"RHOC\";\nStockSymbols[LocationName.Sector12AlphaEnterprises] = \"APHE\";\nStockSymbols[LocationName.VolhavenSysCoreSecurities] = \"SYSC\";\nStockSymbols[LocationName.VolhavenCompuTek] = \"CTK\";\nStockSymbols[LocationName.AevumNetLinkTechnologies] = \"NTLK\";\nStockSymbols[LocationName.IshimaOmegaSoftware] = \"OMGA\";\nStockSymbols[LocationName.Sector12FoodNStuff] = \"FNS\";\nStockSymbols[LocationName.Sector12JoesGuns] = \"JGN\";\n\n// Stocks for other companies\nStockSymbols[\"Sigma Cosmetics\"] = \"SGC\";\nStockSymbols[\"Catalyst Ventures\"] = \"CTYS\";\nStockSymbols[\"Microdyne Technologies\"] = \"MDYN\";\nStockSymbols[\"Titan Laboratories\"] = \"TITN\";\n","export const validScriptExtensions: Array = [`.js`, `.script`];\n\nexport function isScriptFilename(f: string): boolean {\n return validScriptExtensions.some((ext) => f.endsWith(ext));\n}\n","import { BitNodeMultipliers } from \"./BitNode/BitNodeMultipliers\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { calculateIntelligenceBonus } from \"./PersonObjects/formulas/intelligence\";\nimport { Server } from \"./Server/Server\";\n\n/**\n * Returns the chance the player has to successfully hack a server\n */\nexport function calculateHackingChance(server: Server, player: IPlayer): number {\n const hackFactor = 1.75;\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = hackFactor * player.hacking;\n const skillChance = (skillMult - server.requiredHackingSkill) / skillMult;\n const chance =\n skillChance * difficultyMult * player.mults.hacking_chance * calculateIntelligenceBonus(player.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.hacking - (server.requiredHackingSkill - 1)) / player.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.hacking + baseSkill;\n\n const hackTimeMultiplier = 5;\n const hackingTime =\n (hackTimeMultiplier * skillFactor) /\n (player.mults.hacking_speed * calculateIntelligenceBonus(player.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","export enum FactionWorkType {\n HACKING = \"HACKING\",\n FIELD = \"FIELD\",\n SECURITY = \"SECURITY\",\n}\n","import { Reviver } from \"../utils/JSONReviver\";\n\nimport { IStaneksGift } from \"./IStaneksGift\";\nimport { StaneksGift } from \"./StaneksGift\";\n\nexport let staneksGift: IStaneksGift = new StaneksGift();\n\nexport function loadStaneksGift(saveString: string): void {\n if (saveString) {\n staneksGift = JSON.parse(saveString, Reviver);\n } else {\n staneksGift = new StaneksGift();\n }\n}\n\nexport function zeros(width: number, height: number): number[][] {\n const array = [];\n\n for (let i = 0; i < width; ++i) {\n array.push(Array(height).fill(0));\n }\n\n return array;\n}\n\nexport function calculateGrid(gift: IStaneksGift): number[][] {\n const newgrid = zeros(gift.width(), gift.height()) as unknown as number[][];\n for (let i = 0; i < gift.width(); i++) {\n for (let j = 0; j < gift.height(); j++) {\n const fragment = gift.fragmentAt(i, j);\n if (!fragment) continue;\n newgrid[i][j] = 1;\n }\n }\n\n return newgrid;\n}\n","import { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { processOrders } from \"./OrderProcessing\";\nimport { Stock } from \"./Stock\";\nimport { TicksPerCycle } from \"./StockMarketConstants\";\nimport { InitStockMetadata } from \"./data/InitStockMetadata\";\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { StockSymbols } from \"./data/StockSymbols\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { IMap } from \"../types\";\nimport { EventEmitter } from \"../utils/EventEmitter\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let StockMarket: IStockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n} as IStockMarket; // Maps full stock name -> Stock object\nexport const SymbolToStockMap: IMap = {}; // Maps symbol -> Stock object\n\nexport function placeOrder(\n stock: Stock,\n shares: number,\n price: number,\n type: OrderTypes,\n position: PositionTypes,\n workerScript: WorkerScript | null = null,\n): boolean {\n if (!(stock instanceof Stock)) {\n if (workerScript) {\n workerScript.log(\"stock.placeOrder\", () => `Invalid stock: '${stock}'`);\n } else {\n dialogBoxCreate(`ERROR: Invalid stock passed to placeOrder() function`);\n }\n return false;\n }\n if (typeof shares !== \"number\" || typeof price !== \"number\") {\n if (workerScript) {\n workerScript.log(\"stock.placeOrder\", () => `Invalid arguments: shares='${shares}' price='${price}'`);\n } else {\n dialogBoxCreate(\"ERROR: Invalid numeric value provided for either 'shares' or 'price' argument\");\n }\n return false;\n }\n\n const order = new Order(stock.symbol, shares, price, type, position);\n if (StockMarket[\"Orders\"] == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stk = StockMarket[name];\n if (!(stk instanceof Stock)) {\n continue;\n }\n orders[stk.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n }\n StockMarket[\"Orders\"][stock.symbol].push(order);\n\n // Process to see if it should be executed immediately\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n processOrders(stock, order.type, order.pos, processOrderRefs);\n\n return true;\n}\n\n// Returns true if successfully cancels an order, false otherwise\nexport interface ICancelOrderParams {\n order?: Order;\n pos?: PositionTypes;\n price?: number;\n shares?: number;\n stock?: Stock;\n type?: OrderTypes;\n}\nexport function cancelOrder(params: ICancelOrderParams, workerScript: WorkerScript | null = null): boolean {\n if (StockMarket[\"Orders\"] == null) {\n return false;\n }\n if (params.order && params.order instanceof Order) {\n const order = params.order;\n // An 'Order' object is passed in\n const stockOrders = StockMarket[\"Orders\"][order.stockSymbol];\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n return true;\n }\n }\n return false;\n } else if (\n params.stock &&\n params.shares &&\n params.price &&\n params.type &&\n params.pos &&\n params.stock instanceof Stock\n ) {\n // Order properties are passed in. Need to look for the order\n const stockOrders = StockMarket[\"Orders\"][params.stock.symbol];\n const orderTxt = params.stock.symbol + \" - \" + params.shares + \" @ \" + numeralWrapper.formatMoney(params.price);\n for (let i = 0; i < stockOrders.length; ++i) {\n const order = stockOrders[i];\n if (\n params.shares === order.shares &&\n params.price === order.price &&\n params.type === order.type &&\n params.pos === order.pos\n ) {\n stockOrders.splice(i, 1);\n if (workerScript) {\n workerScript.scriptRef.log(\"Successfully cancelled order: \" + orderTxt);\n }\n return true;\n }\n }\n if (workerScript) {\n workerScript.scriptRef.log(\"Failed to cancel order: \" + orderTxt);\n }\n return false;\n }\n return false;\n}\n\nexport function loadStockMarket(saveString: string): void {\n if (saveString === \"\") {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n } else {\n StockMarket = JSON.parse(saveString, Reviver);\n }\n}\n\nexport function deleteStockMarket(): void {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n}\n\nexport function initStockMarket(): void {\n for (const stk of Object.keys(StockMarket)) {\n if (StockMarket.hasOwnProperty(stk)) {\n delete StockMarket[stk];\n }\n }\n\n for (const metadata of InitStockMetadata) {\n const name = metadata.name;\n StockMarket[name] = new Stock(metadata);\n }\n\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n\n StockMarket.storedCycles = 0;\n StockMarket.lastUpdate = 0;\n StockMarket.ticksUntilCycle = TicksPerCycle;\n}\n\nexport function initSymbolToStockMap(): void {\n for (const name of Object.keys(StockSymbols)) {\n if (StockSymbols.hasOwnProperty(name)) {\n const stock = StockMarket[name];\n if (stock == null) {\n console.error(`Could not find Stock for ${name}`);\n continue;\n }\n const symbol = StockSymbols[name];\n SymbolToStockMap[symbol] = stock;\n }\n }\n}\n\nfunction stockMarketCycle(): void {\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n\n const roll = Math.random();\n if (roll < 0.45) {\n stock.b = !stock.b;\n stock.flipForecastForecast();\n }\n\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n}\n\n// Stock prices updated every 6 seconds\nconst msPerStockUpdate = 6e3;\nconst cyclesPerStockUpdate = msPerStockUpdate / CONSTANTS.MilliPerCycle;\nexport function processStockPrices(numCycles = 1): void {\n if (StockMarket.storedCycles == null || isNaN(StockMarket.storedCycles)) {\n StockMarket.storedCycles = 0;\n }\n StockMarket.storedCycles += numCycles;\n\n if (StockMarket.storedCycles < cyclesPerStockUpdate) {\n return;\n }\n\n // We can process the update every 4 seconds as long as there are enough\n // stored cycles. This lets us account for offline time\n const timeNow = new Date().getTime();\n if (timeNow - StockMarket.lastUpdate < 4e3) {\n return;\n }\n\n StockMarket.lastUpdate = timeNow;\n StockMarket.storedCycles -= cyclesPerStockUpdate;\n\n // Cycle\n if (StockMarket.ticksUntilCycle == null || typeof StockMarket.ticksUntilCycle !== \"number\") {\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n --StockMarket.ticksUntilCycle;\n if (StockMarket.ticksUntilCycle <= 0) {\n stockMarketCycle();\n }\n\n const v = Math.random();\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n let av = (v * stock.mv) / 100;\n if (isNaN(av)) {\n av = 0.02;\n }\n\n let chc = 50;\n if (stock.b) {\n chc = (chc + stock.otlkMag) / 100;\n } else {\n chc = (chc - stock.otlkMag) / 100;\n }\n if (stock.price >= stock.cap) {\n chc = 0.1; // \"Soft Limit\" on stock price. It could still go up but its unlikely\n stock.b = false;\n }\n if (isNaN(chc)) {\n chc = 0.5;\n }\n\n const c = Math.random();\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n if (c < chc) {\n stock.changePrice(stock.price * (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Short, processOrderRefs);\n } else {\n stock.changePrice(stock.price / (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Long, processOrderRefs);\n }\n\n let otlkMagChange = stock.otlkMag * av;\n if (stock.otlkMag < 5) {\n if (stock.otlkMag <= 1) {\n otlkMagChange = 1;\n } else {\n otlkMagChange *= 10;\n }\n }\n stock.cycleForecast(otlkMagChange);\n stock.cycleForecastForecast(otlkMagChange / 2);\n\n // Shares required for price movement gradually approaches max over time\n stock.shareTxUntilMovement = Math.min(stock.shareTxUntilMovement + 10, stock.shareTxForMovement);\n }\n}\n\nexport function initStockMarketFn(): void {\n initStockMarket();\n initSymbolToStockMap();\n}\n\nexport const eventEmitterForUiReset = new EventEmitter<[]>();\n","// 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","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);\n const sRep = getFactionSecurityWorkRepGain(Player, faction);\n const fRep = getFactionFieldWorkRepGain(Player, faction);\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.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 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 // 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 Player.reapplyAllAugmentations(true);\n Player.reapplyAllSourceFiles();\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 v2APIBreak();\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","/*\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 { isString } from \"./utils/helpers/isString\";\nimport { GetServer } from \"./Server/AllServers\";\nimport { ScriptDeath } from \"./Netscript/ScriptDeath\";\nimport { WorkerScript } from \"./Netscript/WorkerScript\";\nimport { NetscriptContext } from \"./Netscript/APIWrapper\";\n\nexport function netscriptDelay(time: number, workerScript: WorkerScript): Promise {\n // Cancel any pre-existing netscriptDelay'ed function call\n // TODO: the rejection almost certainly ends up in the uncaught rejection handler.\n // Maybe reject with a stack-trace'd error message?\n if (workerScript.delayReject) workerScript.delayReject();\n\n return new Promise(function (resolve, reject) {\n workerScript.delay = window.setTimeout(() => {\n workerScript.delay = null;\n workerScript.delayReject = undefined;\n if (workerScript.env.stopFlag) reject(new ScriptDeath(workerScript));\n else resolve();\n }, time);\n workerScript.delayReject = reject;\n });\n}\n\nexport function makeRuntimeRejectMsg(workerScript: WorkerScript, msg: string): string {\n const server = GetServer(workerScript.hostname);\n if (server == null) {\n throw new Error(`WorkerScript constructed with invalid server ip: ${workerScript.hostname}`);\n }\n\n for (const scriptUrl of workerScript.scriptRef.dependencies) {\n // Return just the original msg if it's nullish so that we don't get a workerscript error\n msg = msg?.replace(new RegExp(scriptUrl.url, \"g\"), scriptUrl.filename) ?? msg;\n }\n\n return \"|DELIMITER|\" + server.hostname + \"|DELIMITER|\" + workerScript.name + \"|DELIMITER|\" + msg;\n}\n\nexport function 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\nexport function 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","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 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 { 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","// Defines the ResearchTree that is common to all Corporation Industries\n// i.e. all Industries have these types of Research available to unlock\nimport { Research } from \"../Research\";\nimport { ResearchMap } from \"../ResearchMap\";\nimport { ResearchTree, Node } from \"../ResearchTree\";\n\nfunction makeNode(name: string): Node {\n const research: Research | null = ResearchMap[name];\n if (research == null) {\n throw new Error(`Invalid research name: ${name}`);\n }\n\n return new Node({ text: research.name, cost: research.cost });\n}\n\n// Creates the Nodes for the BaseResearchTree.\n// Return the Root Node\nfunction createBaseResearchTreeNodes(): Node {\n const rootNode: Node = makeNode(\"Hi-Tech R&D Laboratory\");\n const autoBrew: Node = makeNode(\"AutoBrew\");\n const autoParty: Node = makeNode(\"AutoPartyManager\");\n const autoDrugs: Node = makeNode(\"Automatic Drug Administration\");\n const bulkPurchasing: Node = makeNode(\"Bulk Purchasing\");\n const cph4: Node = makeNode(\"CPH4 Injections\");\n const drones: Node = makeNode(\"Drones\");\n const dronesAssembly: Node = makeNode(\"Drones - Assembly\");\n const dronesTransport: Node = makeNode(\"Drones - Transport\");\n const goJuice: Node = makeNode(\"Go-Juice\");\n const hrRecruitment: Node = makeNode(\"HRBuddy-Recruitment\");\n const hrTraining: Node = makeNode(\"HRBuddy-Training\");\n const joywire: Node = makeNode(\"JoyWire\");\n const marketta1: Node = makeNode(\"Market-TA.I\");\n const marketta2: Node = makeNode(\"Market-TA.II\");\n const overclock: Node = makeNode(\"Overclock\");\n const scAssemblers: Node = makeNode(\"Self-Correcting Assemblers\");\n const stimu: Node = makeNode(\"Sti.mu\");\n\n autoDrugs.addChild(goJuice);\n autoDrugs.addChild(cph4);\n\n drones.addChild(dronesAssembly);\n drones.addChild(dronesTransport);\n\n hrRecruitment.addChild(hrTraining);\n\n marketta1.addChild(marketta2);\n\n overclock.addChild(stimu);\n\n rootNode.addChild(autoBrew);\n rootNode.addChild(autoParty);\n rootNode.addChild(autoDrugs);\n rootNode.addChild(bulkPurchasing);\n rootNode.addChild(drones);\n rootNode.addChild(hrRecruitment);\n rootNode.addChild(joywire);\n rootNode.addChild(marketta1);\n rootNode.addChild(overclock);\n rootNode.addChild(scAssemblers);\n\n return rootNode;\n}\n\nexport function getBaseResearchTreeCopy(): ResearchTree {\n const baseResearchTree: ResearchTree = new ResearchTree();\n baseResearchTree.setRoot(createBaseResearchTreeNodes());\n\n return baseResearchTree;\n}\n\n// Base Research Tree for Industry's that make products\nexport function getProductIndustryResearchTreeCopy(): ResearchTree {\n const researchTree: ResearchTree = new ResearchTree();\n const root = createBaseResearchTreeNodes();\n\n const upgradeFulcrum = makeNode(\"uPgrade: Fulcrum\");\n const upgradeCapacity1 = makeNode(\"uPgrade: Capacity.I\");\n const upgradeCapacity2 = makeNode(\"uPgrade: Capacity.II\");\n const upgradeDashboard = makeNode(\"uPgrade: Dashboard\");\n\n upgradeCapacity1.addChild(upgradeCapacity2);\n upgradeFulcrum.addChild(upgradeCapacity1);\n upgradeFulcrum.addChild(upgradeDashboard);\n root.addChild(upgradeFulcrum);\n\n researchTree.setRoot(root);\n\n return researchTree;\n}\n","import { GetServer, createUniqueRandomIp, ipExists } from \"./AllServers\";\nimport { Server, IConstructorParams } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { calculateServerGrowth } from \"./formulas/grow\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { LiteratureNames } from \"../Literature/data/LiteratureNames\";\n\nimport { isValidNumber } from \"../utils/helpers/isValidNumber\";\n\n/**\n * Constructs a new server, while also ensuring that the new server\n * does not have a duplicate hostname/ip.\n */\nexport function safetlyCreateUniqueServer(params: IConstructorParams): Server {\n let hostname: string = params.hostname.replace(/ /g, `-`);\n\n if (params.ip != null && ipExists(params.ip)) {\n params.ip = createUniqueRandomIp();\n }\n\n if (GetServer(hostname) != null) {\n hostname = `${hostname}-0`;\n\n // Use a for loop to ensure that we don't get suck in an infinite loop somehow\n for (let i = 0; i < 200; ++i) {\n hostname = hostname.replace(/-[0-9]+$/, `-${i}`);\n if (GetServer(hostname) == null) {\n break;\n }\n }\n }\n\n params.hostname = hostname;\n return new Server(params);\n}\n\n/**\n * Returns the number of \"growth cycles\" needed to grow the specified server by the\n * specified amount.\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, in DECIMAL form (e.g. 1.5 rather than 50)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowth(server: Server, growth: number, p: IPlayer, cores = 1): number {\n let ajdGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n if (ajdGrowthRate > CONSTANTS.ServerMaxGrowthRate) {\n ajdGrowthRate = CONSTANTS.ServerMaxGrowthRate;\n }\n\n const serverGrowthPercentage = server.serverGrowth / 100;\n\n const coreBonus = 1 + (cores - 1) / 16;\n const cycles =\n Math.log(growth) /\n (Math.log(ajdGrowthRate) *\n p.mults.hacking_grow *\n serverGrowthPercentage *\n BitNodeMultipliers.ServerGrowthRate *\n coreBonus);\n\n return cycles;\n}\n\n/**\n * Replacement function for the above function that accounts for the +$1/thread functionality of grow\n * with parameters that are the same (for compatibility), but functionality is slightly different.\n * This function can ONLY be used to calculate the threads needed for a given server in its current state,\n * and so wouldn't be appropriate to use for formulas.exe or ns.growthAnalyze (as those are meant to\n * provide theoretical scenarios, or inverse hack respectively). Players COULD use this function with a\n * custom server object with the correct moneyAvailable and moneyMax amounts, combined with a multiplier\n * correctly calculated to bring the server to a new moneyAvailable (ie, passing in moneyAvailable 300 and x2\n * when you want the number of threads required to grow that particular server from 300 to 600), and this\n * function would pass back the correct number of threads. But the key thing is that it doesn't just\n * inverse/undo a hack (since the amount hacked from/to matters, not just the multiplier).\n * The above is also a rather unnecessarily obtuse way of thinking about it for a formulas.exe type of\n * application, so another function with different parameters is provided for that case below this one.\n * Instead this function is meant to hand-off from the old numCycleForGrowth function to the new one\n * where used internally for pro-rating or the like. Where you have applied a grow and want to determine\n * how many threads were needed for THAT SPECIFIC grow case using a multiplier.\n * Ideally, this function, and the original function above will be depreciated to use the methodology\n * and inputs of the new function below this one. Even for internal cases (it's actually easier to do so).\n * @param server - Server being grown\n * @param growth - How much the server money is expected to be multiplied by (e.g. 1.5 for *1.5 / +50%)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthTransition(server: Server, growth: number, p: IPlayer, cores = 1): number {\n return numCycleForGrowthCorrected(server, server.moneyAvailable * growth, server.moneyAvailable, p, cores);\n}\n\n/**\n * This function calculates the number of threads needed to grow a server from one $amount to a higher $amount\n * (ie, how many threads to grow this server from $200 to $600 for example). Used primarily for a formulas (or possibly growthAnalyze)\n * type of application. It lets you \"theorycraft\" and easily ask what-if type questions. It's also the one that implements the\n * main thread calculation algorithm, and so is the function all helper functions should call.\n * It protects the inputs (so putting in INFINITY for targetMoney will use moneyMax, putting in a negative for start will use 0, etc.)\n * @param server - Server being grown\n * @param targetMoney - How much you want the server grown TO (not by), for instance, to grow from 200 to 600, input 600\n * @param startMoney - How much you are growing the server from, for instance, to grow from 200 to 600, input 200\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthCorrected(\n server: Server,\n targetMoney: number,\n startMoney: number,\n p: IPlayer,\n cores = 1,\n): number {\n if (startMoney < 0) {\n startMoney = 0;\n } // servers \"can't\" have less than 0 dollars on them\n if (targetMoney > server.moneyMax) {\n targetMoney = server.moneyMax;\n } // can't grow a server to more than its moneyMax\n if (targetMoney <= startMoney) {\n return 0;\n } // no growth --> no threads\n\n // exponential base adjusted by security\n const adjGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n const exponentialBase = Math.min(adjGrowthRate, CONSTANTS.ServerMaxGrowthRate); // cap growth rate\n\n // total of all grow thread multipliers\n const serverGrowthPercentage = server.serverGrowth / 100.0;\n const coreMultiplier = 1 + (cores - 1) / 16;\n const threadMultiplier =\n serverGrowthPercentage * p.mults.hacking_grow * coreMultiplier * BitNodeMultipliers.ServerGrowthRate;\n\n /* To understand what is done below we need to do some math. I hope the explanation is clear enough.\n * First of, the names will be shortened for ease of manipulation:\n * n:= targetMoney (n for new), o:= startMoney (o for old), b:= exponentialBase, t:= threadMultiplier, c:= cycles/threads\n * c is what we are trying to compute.\n *\n * After growing, the money on a server is n = (o + c) * b^(c*t)\n * c appears in an exponent and outside it, this is usually solved using the productLog/lambert's W special function\n * this function will be noted W in the following\n * The idea behind lambert's W function is W(x)*exp(W(x)) = x, or in other words, solving for y, y*exp(y) = x, as a function of x\n * This function is provided in some advanced math library but we will compute it ourself here.\n *\n * Let's get back to solving the equation. It cannot be rewrote using W immediately because the base of the exponentiation is b\n * b^(c*t) = exp(ln(b)*c*t) (this is how a^b is defined on reals, it matches the definition on integers)\n * so n = (o + c) * exp(ln(b)*c*t) , W still cannot be used directly. We want to eliminate the other terms in 'o + c' and 'ln(b)*c*t'.\n *\n * A change of variable will do. The idea is to add an equation introducing a new variable (w here) in the form c = f(w) (for some f)\n * With this equation we will eliminate all references to c, then solve for w and plug the result in the new equation to get c.\n * The change of variable performed here should get rid of the unwanted terms mentionned above, c = w/(ln(b)*t) - o should help.\n * This change of variable is allowed because whatever the value of c is, there is a value of w such that this equation holds:\n * w = (c + o)*ln(b)*t (see how we used the terms we wanted to eliminate in order to build this variable change)\n *\n * We get n = (o + w/(ln(b)*t) - o) * exp(ln(b)*(w/(ln(b)*t) - o)*t) [ = w/(ln(b)*t) * exp(w - ln(b)*o*t) ]\n * The change of variable exposed exp(w - o*ln(b)*t), we can rewrite that with exp(a - b) = exp(a)/exp(b) to isolate 'w*exp(w)'\n * n = w/(ln(b)*t) * exp(w)/exp(ln(b)*o*t) [ = w*exp(w) / (ln(b) * t * b^(o*t)) ]\n * Almost there, we just need to cancel the denominator on the right side of the equation:\n * n * ln(b) * t * b^(o*t) = w*exp(w), Thus w = W(n * ln(b) * t * b^(o*t))\n * Finally we invert the variable change: c = W(n * ln(b) * t * b^(o*t))/(ln(b)*t) - o\n *\n * There is still an issue left: b^(o*t) doesn't fit inside a double precision float\n * because the typical amount of money on servers is arround 10^6~10^9\n * We need to get an approximation of W without computing the power when o is huge\n * Thankfully an approximation giving ~30% error uses log immediately so we will use\n * W(n * ln(b) * t * b^(o*t)) ~= log(n * ln(b) * t * b^(o*t)) = log(n * ln(b) * t) + log(exp(ln(b) * o * t))\n * = log(n * ln(b) * t) + ln(b) * o * t\n * (thanks to Drak for the grow formula, f4113nb34st and Wolfram Alpha for the rewrite, dwRchyngqxs for the explanation)\n */\n const x = threadMultiplier * Math.log(exponentialBase);\n const y = startMoney * x + Math.log(targetMoney * x);\n /* Code for the approximation of lambert's W function is adapted from\n * https://git.savannah.gnu.org/cgit/gsl.git/tree/specfunc/lambert.c\n * using the articles [1] https://doi.org/10.1007/BF02124750 (algorithm above)\n * and [2] https://doi.org/10.1145/361952.361970 (initial approximation when x < 2.5)\n */\n let w;\n if (y < Math.log(2.5)) {\n /* exp(y) can be safely computed without overflow.\n * The relative error on the result is better when exp(y) < 2.5\n * using Padé rational fraction approximation [2](5)\n */\n const ey = Math.exp(y);\n w = (ey + (4 / 3) * ey * ey) / (1 + (7 / 3) * ey + (5 / 6) * ey * ey);\n } else {\n /* obtain initial approximation from rough asymptotic [1](4.18)\n * w = y [- log y when 0 <= y]\n */\n w = y;\n if (y > 0) w -= Math.log(y);\n }\n let cycles = w / x - startMoney;\n\n /* Iterative refinement, the goal is to correct c until |(o + c) * b^(c*t) - n| < 1\n * or the correction on the approximation is less than 1\n * The Newton-Raphson method will be used, this method is a classic to find roots of functions\n * (given f, find c such that f(c) = 0).\n *\n * The idea of this method is to take the horizontal position at which the horizontal axis\n * intersects with of the tangent of the function's curve as the next approximation.\n * It is equivalent to treating the curve as a line (it is called a first order approximation)\n * If the current approximation is c then the new approximated value is c - f(c)/f'(c)\n * (where f' is the derivative of f).\n *\n * In our case f(c) = (o + c) * b^(c*t) - n, f'(c) = d((o + c) * b^(c*t) - n)/dc\n * = (ln(b)*t * (c + o) + 1) * b^(c*t)\n * And the update step is c[new] = c[old] - ((o + c) * b^(c*t) - n)/((ln(b)*t * (o + c) + 1) * b^(c*t))\n *\n * The main question to ask when using this method is \"does it converges?\"\n * (are the approximations getting better?), if it does then it does quickly.\n * DOES IT CONVERGES? In the present case it does. The reason why doesn't help explaining the algorithm.\n * If you are intrested then check out the wikipedia page.\n */\n const bt = exponentialBase ** threadMultiplier;\n let corr = Infinity;\n // Two sided error because we do not want to get stuck if the error stays on the wrong side\n do {\n // c should be above 0 so Halley's method can't be used, we have to stick to Newton-Raphson\n const bct = bt ** cycles;\n const opc = startMoney + cycles;\n const diff = opc * bct - targetMoney;\n corr = diff / (opc * x + 1.0) / bct;\n cycles -= corr;\n } while (Math.abs(corr) >= 1);\n /* c is now within +/- 1 of the exact result.\n * We want the ceiling of the exact result, so the floor if the approximation is above,\n * the ceiling if the approximation is in the same unit as the exact result,\n * and the ceiling + 1 if the approximation is below.\n */\n const fca = Math.floor(cycles);\n if (targetMoney <= (startMoney + fca) * Math.pow(exponentialBase, fca * threadMultiplier)) {\n return fca;\n }\n const cca = Math.ceil(cycles);\n if (targetMoney <= (startMoney + cca) * Math.pow(exponentialBase, cca * threadMultiplier)) {\n return cca;\n }\n return cca + 1;\n}\n\n/**\n * This function calculates the number of threads needed to grow a server based on a pre-hack money and hackAmt\n * (ie, if you're hacking a server with $1e6 moneyAvail for 60%, this function will tell you how many threads to regrow it\n * A good replacement for the current ns.growthAnalyze if you want players to have more control/responsibility\n * @param server - Server being grown\n * @param hackProp - the proportion of money hacked (total, not per thread, like 0.60 for hacking 60% of available money)\n * @param prehackMoney - how much money the server had before being hacked (like 200000 for hacking a server that had $200000 on it at time of hacking)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed to reverse the described hack\n */\nexport function numCycleForGrowthByHackAmt(\n server: Server,\n hackProp: number,\n prehackMoney: number,\n p: IPlayer,\n cores = 1,\n): number {\n if (prehackMoney > server.moneyMax) prehackMoney = server.moneyMax;\n const posthackMoney = Math.floor(prehackMoney * Math.min(1, Math.max(0, 1 - hackProp)));\n return numCycleForGrowthCorrected(server, prehackMoney, posthackMoney, p, cores);\n}\n\n/**\n * This function calculates the number of threads needed to grow a server based on an expected growth multiplier assuming it will max out\n * (ie, if you expect to grow a server by 60% to reach maxMoney, this function will tell you how many threads to grow it)\n * PROBABLY the best replacement for the current ns.growthAnalyze to maintain existing scripts\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, as a multiple in DECIMAL form (e.g. 1.5 rather than 50). Infinity is acceptable.\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthByMultiplier(server: Server, growth: number, p: IPlayer, cores = 1): number {\n if (growth < 1.0) growth = 1.0;\n const targetMoney = server.moneyMax;\n const startingMoney = server.moneyMax / growth;\n return numCycleForGrowthCorrected(server, targetMoney, startingMoney, p, cores);\n}\n\n//Applied server growth for a single server. Returns the percentage growth\nexport function processSingleServerGrowth(server: Server, threads: number, p: IPlayer, cores = 1): number {\n let serverGrowth = calculateServerGrowth(server, threads, p, cores);\n if (serverGrowth < 1) {\n console.warn(\"serverGrowth calculated to be less than 1\");\n serverGrowth = 1;\n }\n\n const oldMoneyAvailable = server.moneyAvailable;\n server.moneyAvailable += 1 * threads; // It can be grown even if it has no money\n server.moneyAvailable *= serverGrowth;\n\n // in case of data corruption\n if (isValidNumber(server.moneyMax) && isNaN(server.moneyAvailable)) {\n server.moneyAvailable = server.moneyMax;\n }\n\n // cap at max\n if (isValidNumber(server.moneyMax) && server.moneyAvailable > server.moneyMax) {\n server.moneyAvailable = server.moneyMax;\n }\n\n // if there was any growth at all, increase security\n if (oldMoneyAvailable !== server.moneyAvailable) {\n let usedCycles = numCycleForGrowthCorrected(server, server.moneyAvailable, oldMoneyAvailable, p, cores);\n // Growing increases server security twice as much as hacking\n usedCycles = Math.min(Math.max(0, Math.ceil(usedCycles)), threads);\n server.fortify(2 * CONSTANTS.ServerFortifyAmount * usedCycles);\n }\n return server.moneyAvailable / oldMoneyAvailable;\n}\n\nexport function prestigeHomeComputer(player: IPlayer, homeComp: Server): void {\n const hasBitflume = homeComp.programs.includes(Programs.BitFlume.name);\n\n homeComp.programs.length = 0; //Remove programs\n homeComp.runningScripts = [];\n homeComp.serversOnNetwork = [];\n homeComp.isConnectedTo = true;\n homeComp.ramUsed = 0;\n homeComp.programs.push(Programs.NukeProgram.name);\n if (hasBitflume) {\n homeComp.programs.push(Programs.BitFlume.name);\n }\n\n //Update RAM usage on all scripts\n homeComp.scripts.forEach(function (script) {\n script.updateRamUsage(player, homeComp.scripts);\n });\n\n homeComp.messages.length = 0; //Remove .lit and .msg files\n homeComp.messages.push(LiteratureNames.HackersStartingHandbook);\n}\n\n// Returns the i-th server on the specified server's network\n// A Server's serverOnNetwork property holds only the IPs. This function returns\n// the actual Server object\nexport function getServerOnNetwork(server: BaseServer, i: number): BaseServer | null {\n if (i > server.serversOnNetwork.length) {\n console.error(\"Tried to get server on network that was out of range\");\n return null;\n }\n\n return GetServer(server.serversOnNetwork[i]);\n}\n\nexport function isBackdoorInstalled(server: BaseServer): boolean {\n if (server instanceof Server) {\n return server.backdoorInstalled;\n }\n return false;\n}\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { ICorporation } from \"../ICorporation\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number;\n corp: ICorporation;\n}\n\nexport function MoneyCost(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (!(props.corp.funds > props.money))\n return {numeralWrapper.formatMoney(props.money)};\n\n return {numeralWrapper.formatMoney(props.money)};\n}\n","export const SkillNames: {\n BladesIntuition: string;\n Cloak: string;\n Marksman: string;\n WeaponProficiency: string;\n ShortCircuit: string;\n DigitalObserver: string;\n Tracer: string;\n Overclock: string;\n Reaper: string;\n EvasiveSystem: string;\n Datamancer: string;\n CybersEdge: string;\n HandsOfMidas: string;\n Hyperdrive: string;\n} = {\n BladesIntuition: \"Blade's Intuition\",\n Cloak: \"Cloak\",\n Marksman: \"Marksman\",\n WeaponProficiency: \"Weapon Proficiency\",\n ShortCircuit: \"Short-Circuit\",\n DigitalObserver: \"Digital Observer\",\n Tracer: \"Tracer\",\n Overclock: \"Overclock\",\n Reaper: \"Reaper\",\n EvasiveSystem: \"Evasive System\",\n Datamancer: \"Datamancer\",\n CybersEdge: \"Cyber's Edge\",\n HandsOfMidas: \"Hands of Midas\",\n Hyperdrive: \"Hyperdrive\",\n};\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n reputation: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Reputation({ reputation }: { reputation: number | string }): React.ReactElement {\n const classes = useStyles();\n return (\n \n {typeof reputation === \"number\" ? numeralWrapper.formatReputation(reputation) : reputation}\n \n );\n}\n","export enum CrimeType {\n None = \"\",\n Shoplift = \"shoplift\",\n RobStore = \"rob a store\",\n Mug = \"mug someone\",\n Larceny = \"commit larceny\",\n Drugs = \"deal drugs\",\n BondForgery = \"forge corporate bonds\",\n TraffickArms = \"traffick illegal arms\",\n Homicide = \"commit homicide\",\n GrandTheftAuto = \"commit grand theft auto\",\n Kidnap = \"kidnap someone for ransom\",\n Assassination = \"assassinate a high-profile target\",\n Heist = \"pull off the ultimate heist\",\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 { compareArrays } from \"../utils/helpers/compareArrays\";\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 (\n ws.name == params.runningScript.filename &&\n ws.hostname == params.hostname &&\n compareArrays(ws.args, params.runningScript.args)\n ) {\n stopAndCleanUpWorkerScript(ws);\n\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\n return true;\n }\n\n return false;\n}\n\nfunction stopAndCleanUpWorkerScript(workerScript: WorkerScript): void {\n if (typeof workerScript.atExit === \"function\") {\n try {\n workerScript.atExit();\n } catch (e: unknown) {\n dialogBoxCreate(\n `Error trying to call atExit for script ${workerScript.name} on ${workerScript.hostname} ${\n workerScript.scriptRef.args\n } ${String(e)}`,\n );\n }\n workerScript.atExit = undefined;\n }\n workerScript.env.stopFlag = true;\n killNetscriptDelay(workerScript);\n removeWorkerScript(workerScript);\n}\n\n/**\n * Helper function that removes the script being killed from the global pool.\n * Also handles other cleanup-time operations\n *\n * @param {WorkerScript} - Identifier for WorkerScript. Either the object itself, or\n * its index in the global workerScripts array\n */\nfunction removeWorkerScript(workerScript: WorkerScript): void {\n const ip = workerScript.hostname;\n const name = workerScript.name;\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.filename === name && compareArrays(runningScript.args, workerScript.args)) {\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 { 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): WorkStats => {\n return {\n money: w.money * n,\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 = (player: IPlayer, workStats: WorkStats, cycles: number, source: string): WorkStats => {\n const gains = {\n money: workStats.money * cycles,\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 player.gainHackingExp(gains.hackExp);\n player.gainStrengthExp(gains.strExp);\n player.gainDefenseExp(gains.defExp);\n player.gainDexterityExp(gains.dexExp);\n player.gainAgilityExp(gains.agiExp);\n player.gainCharismaExp(gains.chaExp);\n player.gainIntelligenceExp(gains.intExp);\n player.gainMoney(gains.money, source);\n return gains;\n};\n","/**\n * Checks whether the value passed in can be considered a string.\n * @param value The value to check if it is a string.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === \"string\" || value instanceof String;\n}\n","import { FormControlLabel, Switch, Tooltip, Typography } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\n\ninterface IProps {\n checked: boolean;\n onChange: (newValue: boolean, error?: string) => void;\n text: React.ReactNode;\n tooltip: React.ReactNode;\n}\n\nexport function OptionSwitch({ checked, onChange, text, tooltip }: IProps): React.ReactElement {\n const [value, setValue] = useState(checked);\n\n function handleSwitchChange(event: React.ChangeEvent): void {\n setValue(event.target.checked);\n }\n\n useEffect(() => onChange(value), [value]);\n\n return (\n }\n label={\n {tooltip}}>\n {text}\n \n }\n />\n );\n}\n","import React from \"react\";\nimport { BitNodeMultipliers, IBitNodeMultipliers } from \"./BitNodeMultipliers\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { CityName } from \"../Locations/data/CityNames\";\n\nclass BitNode {\n // A short description, or tagline, about the BitNode\n desc: string;\n\n // A long, detailed overview of the BitNode\n info: JSX.Element;\n\n // Name of BitNode\n name: string;\n\n // BitNode number\n number: number;\n\n difficulty: 0 | 1 | 2;\n\n constructor(n: number, difficulty: 0 | 1 | 2, name: string, desc = \"\", info: JSX.Element = <>>) {\n this.number = n;\n this.difficulty = difficulty;\n this.name = name;\n this.desc = desc;\n this.info = info;\n }\n}\n\nexport const BitNodes: IMap = {};\n\nBitNodes[\"BitNode1\"] = new BitNode(\n 1,\n 0,\n \"Source Genesis\",\n \"The original BitNode\",\n (\n <>\n The first BitNode created by the Enders to imprison the minds of humans. It became the prototype and\n testing-grounds for all of the BitNodes that followed.\n \n \n This is the first BitNode that you play through. It has no special modifications or mechanics.\n \n \n Destroying this BitNode will give you Source-File 1, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the player start with 32GB of RAM on his/her home computer when\n entering a new BitNode, and also increases all of the player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nBitNodes[\"BitNode2\"] = new BitNode(\n 2,\n 0,\n \"Rise of the Underworld\",\n \"From the shadows, they rose\", //Gangs\n (\n <>\n From the shadows, they rose.\n \n \n Organized crime groups quickly filled the void of power left behind from the collapse of Western government in the\n 2050s. As society and civilization broke down, people quickly succumbed to the innate human impulse of evil and\n savagery. The organized crime factions quickly rose to the top of the modern world.\n \n \n Certain Factions ({FactionNames.SlumSnakes}, {FactionNames.Tetrads}, {FactionNames.TheSyndicate},{\" \"}\n {FactionNames.TheDarkArmy}, {FactionNames.SpeakersForTheDead}, {FactionNames.NiteSec}, {FactionNames.TheBlackHand}\n ) give the player the ability to form and manage their own gangs. These gangs will earn the player money and\n reputation with the corresponding Faction\n \n Every Augmentation in the game will be available through the Factions listed above\n \n \n Destroying this BitNode will give you Source-File 2, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to form gangs in other BitNodes once your karma decreases\n to a certain value. It also increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nBitNodes[\"BitNode3\"] = new BitNode(\n 3,\n 0,\n \"Corporatocracy\",\n \"The Price of Civilization\",\n (\n <>\n Our greatest illusion is that a healthy society can revolve around a single-minded pursuit of wealth.\n \n \n Sometime in the early 21st century economic and political globalization turned the world into a corporatocracy,\n and it never looked back. Now, the privileged elite will happily bankrupt their own countrymen, decimate their own\n community, and evict their neighbors from houses in their desperate bid to increase their wealth.\n \n \n In this BitNode you can create and manage your own corporation. Running a successful corporation has the potential\n of generating massive profits.\n \n \n Destroying this BitNode will give you Source-File 3, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you create corporations on other BitNodes (although some\n BitNodes will disable this mechanic). This Source-File also increases your charisma and company salary multipliers\n by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode4\"] = new BitNode(\n 4,\n 1,\n \"The Singularity\",\n \"The Man and the Machine\",\n (\n <>\n The Singularity has arrived. The human race is gone, replaced by artificially superintelligent beings that are\n more machine than man. \n \n \n In this BitNode you will gain access to a new set of Netscript Functions known as Singularity Functions. These\n functions allow you to control most aspects of the game through scripts, including working for factions/companies,\n purchasing/installing Augmentations, and creating programs.\n \n \n Destroying this BitNode will give you Source-File 4, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you access and use the Singularity Functions in other BitNodes.\n Each level of this Source-File reduces the RAM cost of singularity functions.\n >\n ),\n);\nBitNodes[\"BitNode5\"] = new BitNode(\n 5,\n 1,\n \"Artificial Intelligence\",\n \"Posthuman\",\n (\n <>\n They said it couldn't be done. They said the human brain, along with its consciousness and intelligence, couldn't\n be replicated. They said the complexity of the brain results from unpredictable, nonlinear interactions that\n couldn't be modeled by 1's and 0's. They were wrong.\n \n \n Destroying this BitNode will give you Source-File 5, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants you a special new stat called Intelligence. Intelligence is\n unique because it is permanent and persistent (it never gets reset back to 1). However gaining Intelligence\n experience is much slower than other stats. Higher Intelligence levels will boost your production for many actions\n in the game. \n \n In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with\n Formulas.exe, and will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode6\"] = new BitNode(\n 6,\n 1,\n FactionNames.Bladeburners,\n \"Like Tears in Rain\",\n (\n <>\n In the middle of the 21st century, {FactionNames.OmniTekIncorporated} began designing and manufacturing advanced\n synthetic androids, or Synthoids for short. They achieved a major technological breakthrough in the sixth\n generation of their Synthoid design, called MK-VI, by developing a hyperintelligent AI. Many argue that this was\n the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, and more\n intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} Division at the NSA, which provides a\n new mechanic for progression.\n \n \n Destroying this BitNode will give you Source-File 6, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the NSA's {FactionNames.Bladeburners} Division\n in other BitNodes. In addition, this Source-File will raise both the level and experience gain rate of all your\n combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode7\"] = new BitNode(\n 7,\n 2,\n `${FactionNames.Bladeburners} 2079`,\n \"More human than humans\",\n (\n <>\n In the middle of the 21st century, you were doing cutting-edge work at {FactionNames.OmniTekIncorporated} as part\n of the AI design team for advanced synthetic androids, or Synthoids for short. You helped achieve a major\n technological breakthrough in the sixth generation of the company's Synthoid design, called MK-VI, by developing a\n hyperintelligent AI. Many argue that this was the first sentient AI ever created. This resulted in Synthoid models\n that were stronger, faster, and more intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} API, which allows you to access{\" \"}\n {FactionNames.Bladeburners}\n functionality through Netscript.\n \n \n Destroying this BitNode will give you Source-File 7, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the {FactionNames.Bladeburners} Netscript API in\n other BitNodes. In addition, this Source-File will increase all of your {FactionNames.Bladeburners} multipliers\n by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode8\"] = new BitNode(\n 8,\n 2,\n \"Ghost of Wall Street\",\n \"Money never sleeps\",\n (\n <>\n You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.\n \n \n In this BitNode:\n \n \n You start with $250 million\n \n You start with a WSE membership and access to the TIX API\n \n You are able to short stocks and place different types of orders (limit/stop)\n \n \n Destroying this BitNode will give you Source-File 8, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nBitNodes[\"BitNode9\"] = new BitNode(\n 9,\n 2,\n \"Hacktocracy\",\n \"Hacknet Unleashed\",\n (\n <>\n When {FactionNames.FulcrumSecretTechnologies} released their open-source Linux distro Chapeau, it quickly became\n the OS of choice for the underground hacking community. Chapeau became especially notorious for powering the\n Hacknet, a global, decentralized network used for nefarious purposes. {FactionNames.FulcrumSecretTechnologies}{\" \"}\n quickly abandoned the project and dissociated themselves from it.\n \n \n This BitNode unlocks the Hacknet Server, an upgraded version of the Hacknet Node. Hacknet Servers generate hashes,\n which can be spent on a variety of different upgrades.\n \n \n Destroying this BitNode will give you Source-File 9, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode10\"] = new BitNode(\n 10,\n 2,\n \"Digital Carbon\",\n \"Your body is not who you are\",\n (\n <>\n In 2084, VitaLife unveiled to the world the Persona Core, a technology that allowed people to digitize their\n consciousness. Their consciousness could then be transferred into Synthoids or other bodies by trasmitting the\n digitized data. Human bodies became nothing more than 'sleeves' for the human consciousness. Mankind had finally\n achieved immortality - at least for those that could afford it.\n \n \n This BitNode unlocks Sleeve technology. Sleeve technology allows you to:\n \n \n 1. Grafting: Visit VitaLife in New Tokyo to be able to obtain Augmentations without needing to install\n \n 2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks\n synchronously.\n \n \n Destroying this BitNode will give you Source-File 10, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File unlocks Sleeve technology in other BitNodes. Each level of this\n Source-File also grants you a Duplicate Sleeve\n >\n ),\n);\nBitNodes[\"BitNode11\"] = new BitNode(\n 11,\n 1,\n \"The Big Crash\",\n \"Okay. Sell it all.\",\n (\n <>\n The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around\n the world. It was this period of disorder that eventually lead to the governmental reformation of many global\n superpowers, most notably the USA and China. But just as the world was slowly beginning to recover from these dark\n times, financial catastrophe hit.\n \n \n In many countries, the high cost of trying to deal with the civil disorder bankrupted the governments. In all of\n this chaos and confusion, hackers were able to steal billions of dollars from the world's largest electronic\n banks, prompting an international banking crisis as governments were unable to bail out insolvent banks. Now, the\n world is slowly crumbling in the middle of the biggest economic crisis of all time.\n \n \n Destroying this BitNode will give you Source-File 11, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File makes it so that company favor increases BOTH the player's salary and\n reputation gain rate at that company by 1% per favor (rather than just the reputation gain). This Source-File also\n increases the player's company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nBitNodes[\"BitNode12\"] = new BitNode(\n 12,\n 0,\n \"The Recursion\",\n \"Repeat.\",\n (\n <>\n To iterate is human, to recurse divine.\n \n \n Every time this BitNode is destroyed, it becomes slightly harder. Destroying this BitNode will give you\n Source-File 12, or if you already have this Source-File it will upgrade its level. There is no maximum level for\n Source-File 12. Each level of Source-File 12 lets you start any BitNodes with NeuroFlux Governor equal to the\n level of this source file.\n >\n ),\n);\nBitNodes[\"BitNode13\"] = new BitNode(\n 13,\n 2,\n \"They're lunatics\",\n \"1 step back, 2 steps forward\",\n (\n <>\n With the invention of Augmentations in the 2040s a religious group known as the{\" \"}\n {FactionNames.ChurchOfTheMachineGod} has rallied far more support than anyone would have hoped.\n \n \n Their leader, Allison \"Mother\" Stanek is said to have created her own Augmentation whose power goes beyond any\n other. Find her in {CityName.Chongqing} and gain her trust.\n \n \n Destroying this BitNode will give you Source-File 13, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the {FactionNames.ChurchOfTheMachineGod} appear in other\n BitNodes.\n \n \n Each level of this Source-File increases the size of Stanek's Gift.\n >\n ),\n);\n\nexport const defaultMultipliers: IBitNodeMultipliers = {\n HackingLevelMultiplier: 1,\n StrengthLevelMultiplier: 1,\n DefenseLevelMultiplier: 1,\n DexterityLevelMultiplier: 1,\n AgilityLevelMultiplier: 1,\n CharismaLevelMultiplier: 1,\n\n ServerGrowthRate: 1,\n ServerMaxMoney: 1,\n ServerStartingMoney: 1,\n ServerStartingSecurity: 1,\n ServerWeakenRate: 1,\n\n HomeComputerRamCost: 1,\n\n PurchasedServerCost: 1,\n PurchasedServerSoftcap: 1,\n PurchasedServerLimit: 1,\n PurchasedServerMaxRam: 1,\n\n CompanyWorkMoney: 1,\n CrimeMoney: 1,\n HacknetNodeMoney: 1,\n ManualHackMoney: 1,\n ScriptHackMoney: 1,\n ScriptHackMoneyGain: 1,\n CodingContractMoney: 1,\n\n ClassGymExpGain: 1,\n CompanyWorkExpGain: 1,\n CrimeExpGain: 1,\n FactionWorkExpGain: 1,\n HackExpGain: 1,\n\n FactionPassiveRepGain: 1,\n FactionWorkRepGain: 1,\n RepToDonateToFaction: 1,\n\n AugmentationMoneyCost: 1,\n AugmentationRepCost: 1,\n\n InfiltrationMoney: 1,\n InfiltrationRep: 1,\n\n FourSigmaMarketDataCost: 1,\n FourSigmaMarketDataApiCost: 1,\n\n CorporationValuation: 1,\n CorporationSoftcap: 1,\n\n BladeburnerRank: 1,\n BladeburnerSkillCost: 1,\n\n GangSoftcap: 1,\n GangUniqueAugs: 1,\n\n DaedalusAugsRequirement: 30,\n\n StaneksGiftPowerMultiplier: 1,\n StaneksGiftExtraSize: 0,\n\n WorldDaemonDifficulty: 1,\n};\n\nObject.freeze(defaultMultipliers);\n\nexport function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultipliers {\n const mults = Object.assign({}, defaultMultipliers);\n switch (n) {\n case 1: {\n return mults;\n }\n case 2: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n ServerGrowthRate: 0.8,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.4,\n CrimeMoney: 3,\n InfiltrationMoney: 3,\n FactionWorkRepGain: 0.5,\n FactionPassiveRepGain: 0,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: -6,\n PurchasedServerSoftcap: 1.3,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 5,\n });\n }\n case 3: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n RepToDonateToFaction: 0.5,\n AugmentationRepCost: 3,\n AugmentationMoneyCost: 3,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.2,\n ServerGrowthRate: 0.2,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.25,\n CrimeMoney: 0.25,\n HacknetNodeMoney: 0.25,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 2,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -2,\n PurchasedServerSoftcap: 1.3,\n GangSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.5,\n });\n }\n case 4: {\n return Object.assign(mults, {\n ServerMaxMoney: 0.15,\n ServerStartingMoney: 0.75,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.1,\n CrimeMoney: 0.2,\n HacknetNodeMoney: 0.05,\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.4,\n CrimeExpGain: 0.5,\n FactionWorkRepGain: 0.75,\n StaneksGiftPowerMultiplier: 1.5,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.5,\n });\n }\n case 5: {\n return Object.assign(mults, {\n ServerMaxMoney: 2,\n ServerStartingSecurity: 2,\n ServerStartingMoney: 0.5,\n ScriptHackMoney: 0.15,\n HacknetNodeMoney: 0.2,\n CrimeMoney: 0.5,\n InfiltrationRep: 1.5,\n InfiltrationMoney: 1.5,\n AugmentationMoneyCost: 2,\n HackExpGain: 0.5,\n CorporationValuation: 0.5,\n StaneksGiftPowerMultiplier: 1.3,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.5,\n });\n }\n case 6: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.75,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.7,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 7: {\n return Object.assign(mults, {\n BladeburnerRank: 0.6,\n BladeburnerSkillCost: 2,\n AugmentationMoneyCost: 3,\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.5,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n FourSigmaMarketDataCost: 2,\n FourSigmaMarketDataApiCost: 2,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.9,\n StaneksGiftExtraSize: -1,\n GangSoftcap: 0.7,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 8: {\n return Object.assign(mults, {\n ScriptHackMoney: 0.3,\n ScriptHackMoneyGain: 0,\n ManualHackMoney: 0,\n CompanyWorkMoney: 0,\n CrimeMoney: 0,\n HacknetNodeMoney: 0,\n InfiltrationMoney: 0,\n RepToDonateToFaction: 0,\n CorporationValuation: 0,\n CodingContractMoney: 0,\n StaneksGiftExtraSize: -99,\n PurchasedServerSoftcap: 4,\n GangSoftcap: 0,\n CorporationSoftcap: 0,\n GangUniqueAugs: 0,\n });\n }\n case 9: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.5,\n StrengthLevelMultiplier: 0.45,\n DefenseLevelMultiplier: 0.45,\n DexterityLevelMultiplier: 0.45,\n AgilityLevelMultiplier: 0.45,\n CharismaLevelMultiplier: 0.45,\n PurchasedServerLimit: 0,\n HomeComputerRamCost: 5,\n CrimeMoney: 0.5,\n ScriptHackMoney: 0.1,\n HackExpGain: 0.05,\n ServerStartingMoney: 0.1,\n ServerMaxMoney: 0.1,\n ServerStartingSecurity: 2.5,\n CorporationValuation: 0.5,\n FourSigmaMarketDataCost: 5,\n FourSigmaMarketDataApiCost: 4,\n BladeburnerRank: 0.9,\n BladeburnerSkillCost: 1.2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.8,\n CorporationSoftcap: 0.7,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.25,\n });\n }\n case 10: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n StrengthLevelMultiplier: 0.4,\n DefenseLevelMultiplier: 0.4,\n DexterityLevelMultiplier: 0.4,\n AgilityLevelMultiplier: 0.4,\n CharismaLevelMultiplier: 0.4,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.5,\n HacknetNodeMoney: 0.5,\n ManualHackMoney: 0.5,\n ScriptHackMoney: 0.5,\n CodingContractMoney: 0.5,\n InfiltrationMoney: 0.5,\n CorporationValuation: 0.5,\n AugmentationMoneyCost: 5,\n AugmentationRepCost: 2,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 5,\n PurchasedServerLimit: 0.6,\n PurchasedServerMaxRam: 0.5,\n BladeburnerRank: 0.8,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -3,\n PurchasedServerSoftcap: 1.1,\n GangSoftcap: 0.9,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.25,\n });\n }\n case 11: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.6,\n HackExpGain: 0.5,\n ServerMaxMoney: 0.1,\n ServerStartingMoney: 0.1,\n ServerGrowthRate: 0.2,\n ServerWeakenRate: 2,\n CrimeMoney: 3,\n CompanyWorkMoney: 0.5,\n HacknetNodeMoney: 0.1,\n AugmentationMoneyCost: 2,\n InfiltrationMoney: 2.5,\n InfiltrationRep: 2.5,\n CorporationValuation: 0.1,\n CodingContractMoney: 0.25,\n FourSigmaMarketDataCost: 4,\n FourSigmaMarketDataApiCost: 4,\n PurchasedServerSoftcap: 2,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.75,\n });\n }\n case 12: {\n const inc = Math.pow(1.02, lvl);\n const dec = 1 / inc;\n\n return Object.assign(mults, {\n DaedalusAugsRequirement: Math.floor(Math.min(mults.DaedalusAugsRequirement + inc, 40)),\n\n HackingLevelMultiplier: dec,\n StrengthLevelMultiplier: dec,\n DefenseLevelMultiplier: dec,\n DexterityLevelMultiplier: dec,\n AgilityLevelMultiplier: dec,\n CharismaLevelMultiplier: dec,\n\n ServerMaxMoney: dec,\n ServerStartingMoney: dec,\n ServerGrowthRate: dec,\n ServerWeakenRate: dec,\n\n //Does not scale, otherwise security might start at 300+\n ServerStartingSecurity: 1.5,\n\n HomeComputerRamCost: inc,\n\n PurchasedServerCost: inc,\n PurchasedServerLimit: dec,\n PurchasedServerMaxRam: dec,\n PurchasedServerSoftcap: inc,\n\n ManualHackMoney: dec,\n ScriptHackMoney: dec,\n CompanyWorkMoney: dec,\n CrimeMoney: dec,\n HacknetNodeMoney: dec,\n CodingContractMoney: dec,\n\n CompanyWorkExpGain: dec,\n ClassGymExpGain: dec,\n FactionWorkExpGain: dec,\n HackExpGain: dec,\n CrimeExpGain: dec,\n\n FactionWorkRepGain: dec,\n FactionPassiveRepGain: dec,\n RepToDonateToFaction: inc,\n\n AugmentationRepCost: inc,\n AugmentationMoneyCost: inc,\n\n InfiltrationMoney: dec,\n InfiltrationRep: dec,\n\n FourSigmaMarketDataCost: inc,\n FourSigmaMarketDataApiCost: inc,\n\n CorporationValuation: dec,\n\n BladeburnerRank: dec,\n BladeburnerSkillCost: inc,\n\n StaneksGiftPowerMultiplier: inc,\n StaneksGiftExtraSize: inc,\n GangSoftcap: 0.8,\n CorporationSoftcap: 0.8,\n WorldDaemonDifficulty: inc,\n\n GangUniqueAugs: dec,\n });\n }\n case 13: {\n return Object.assign(mults, {\n PurchasedServerSoftcap: 1.6,\n\n HackingLevelMultiplier: 0.25,\n StrengthLevelMultiplier: 0.7,\n DefenseLevelMultiplier: 0.7,\n DexterityLevelMultiplier: 0.7,\n AgilityLevelMultiplier: 0.7,\n\n ServerMaxMoney: 0.45,\n ServerStartingMoney: 0.75,\n\n ServerStartingSecurity: 3,\n\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.4,\n CrimeMoney: 0.4,\n HacknetNodeMoney: 0.4,\n CodingContractMoney: 0.4,\n\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.1,\n CrimeExpGain: 0.5,\n\n FactionWorkRepGain: 0.6,\n\n FourSigmaMarketDataCost: 10,\n FourSigmaMarketDataApiCost: 10,\n\n CorporationValuation: 0.001,\n\n BladeburnerRank: 0.45,\n BladeburnerSkillCost: 2,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: 1,\n GangSoftcap: 0.3,\n CorporationSoftcap: 0.3,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.1,\n });\n }\n default: {\n throw new Error(\"Invalid BitNodeN\");\n }\n }\n}\n\nexport function initBitNodeMultipliers(p: IPlayer): void {\n Object.assign(BitNodeMultipliers, getBitNodeMultipliers(p.bitNodeN, p.sourceFileLvl(p.bitNodeN)));\n}\n","import { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IReviverValue } from \"../utils/JSONReviver\";\n\nexport abstract class Work {\n type: WorkType;\n singularity: boolean;\n cyclesWorked: number;\n\n constructor(type: WorkType, singularity: boolean) {\n this.type = type;\n this.singularity = singularity;\n this.cyclesWorked = 0;\n }\n\n abstract process(player: IPlayer, cycles: number): boolean;\n abstract finish(player: IPlayer, cancelled: boolean): void;\n abstract APICopy(): Record;\n abstract toJSON(): IReviverValue;\n}\n\nexport enum WorkType {\n CRIME = \"CRIME\",\n CLASS = \"CLASS\",\n CREATE_PROGRAM = \"CREATE_PROGRAM\",\n GRAFTING = \"GRAFTING\",\n FACTION = \"FACTION\",\n COMPANY = \"COMPANY\",\n}\n","import { IMinMaxRange } from \"../types\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\n\nexport const StockForecastInfluenceLimit = 5;\n\nexport interface IConstructorParams {\n b: boolean;\n initPrice: number | IMinMaxRange;\n marketCap: number;\n mv: number | IMinMaxRange;\n name: string;\n otlkMag: number;\n spreadPerc: number | IMinMaxRange;\n shareTxForMovement: number | IMinMaxRange;\n symbol: string;\n}\n\nconst defaultConstructorParams: IConstructorParams = {\n b: true,\n initPrice: 10e3,\n marketCap: 1e12,\n mv: 1,\n name: \"\",\n otlkMag: 0,\n spreadPerc: 0,\n shareTxForMovement: 1e6,\n symbol: \"\",\n};\n\n// Helper function that convert a IMinMaxRange to a number\nfunction toNumber(n: number | IMinMaxRange): number {\n let value: number;\n switch (typeof n) {\n case \"number\": {\n return n;\n }\n case \"object\": {\n const range = n;\n value = getRandomInt(range.min, range.max);\n break;\n }\n default:\n throw Error(`Do not know how to convert the type '${typeof n}' to a number`);\n }\n\n if (typeof n === \"object\" && typeof n.divisor === \"number\") {\n return value / n.divisor;\n }\n\n return value;\n}\n\n/**\n * Represents the valuation of a company in the World Stock Exchange.\n */\nexport class Stock {\n /**\n * Bear or bull (more likely to go up or down, based on otlkMag)\n */\n b: boolean;\n\n /**\n * Maximum price of a stock (per share)\n */\n readonly cap: number;\n\n /**\n * Stocks previous share price\n */\n lastPrice: number;\n\n /**\n * Maximum number of shares that player can own (both long and short combined)\n */\n readonly maxShares: number;\n\n /**\n * Maximum volatility\n */\n readonly mv: number;\n\n /**\n * Name of the company that the stock is for\n */\n readonly name: string;\n\n /**\n * Outlook magnitude. Represents the stock's forecast and likelihood\n * of increasing/decreasing (based on whether its in bear or bull mode)\n */\n otlkMag: number;\n\n /**\n * Forecast of outlook magnitude. Essentially a second-order forecast.\n * Unlike 'otlkMag', this number is on an absolute scale from 0-100 (rather than 0-50)\n */\n otlkMagForecast: number;\n\n /**\n * Average price of stocks that the player owns in the LONG position\n */\n playerAvgPx: number;\n\n /**\n * Average price of stocks that the player owns in the SHORT position\n */\n playerAvgShortPx: number;\n\n /**\n * Number of shares the player owns in the LONG position\n */\n playerShares: number;\n\n /**\n * Number of shares the player owns in the SHORT position\n */\n playerShortShares: number;\n\n /**\n * Stock's share price\n */\n price: number;\n\n /**\n * How many shares need to be transacted in order to trigger a price movement\n */\n readonly shareTxForMovement: number;\n\n /**\n * How many share transactions remaining until a price movement occurs\n * (separately tracked for upward and downward movements)\n */\n shareTxUntilMovement: number;\n\n /**\n * Spread percentage. The bid/ask prices for this stock are N% above or below\n * the \"real price\" to emulate spread.\n */\n readonly spreadPerc: number;\n\n /**\n * The stock's ticker symbol\n */\n readonly symbol: string;\n\n /**\n * Total number of shares of this stock\n * This is different than maxShares, as this is like authorized stock while\n * maxShares is outstanding stock.\n */\n readonly totalShares: number;\n\n constructor(p: IConstructorParams = defaultConstructorParams) {\n this.name = p.name;\n this.symbol = p.symbol;\n this.price = toNumber(p.initPrice);\n this.lastPrice = this.price;\n this.playerShares = 0;\n this.playerAvgPx = 0;\n this.playerShortShares = 0;\n this.playerAvgShortPx = 0;\n this.mv = toNumber(p.mv);\n this.b = p.b;\n this.otlkMag = p.otlkMag;\n this.otlkMagForecast = this.getAbsoluteForecast();\n this.cap = getRandomInt(this.price * 1e3, this.price * 25e3);\n this.spreadPerc = toNumber(p.spreadPerc);\n this.shareTxForMovement = toNumber(p.shareTxForMovement);\n this.shareTxUntilMovement = this.shareTxForMovement;\n\n // Total shares is determined by market cap, and is rounded to nearest 100k\n const totalSharesUnrounded: number = p.marketCap / this.price;\n this.totalShares = Math.round(totalSharesUnrounded / 1e5) * 1e5;\n\n // Max Shares (Outstanding shares) is a percentage of total shares\n const outstandingSharePercentage = 0.2;\n this.maxShares = Math.round((this.totalShares * outstandingSharePercentage) / 1e5) * 1e5;\n }\n\n /**\n * Safely set the stock's second-order forecast to a new value\n */\n changeForecastForecast(newff: number): void {\n this.otlkMagForecast = newff;\n if (this.otlkMagForecast > 100) {\n this.otlkMagForecast = 100;\n } else if (this.otlkMagForecast < 0) {\n this.otlkMagForecast = 0;\n }\n }\n\n /**\n * Set the stock to a new price. Also updates the stock's previous price tracker\n */\n changePrice(newPrice: number): void {\n this.lastPrice = this.price;\n this.price = newPrice;\n }\n\n /**\n * Change the stock's forecast during a stock market 'tick'.\n * The way a stock's forecast changes depends on various internal properties,\n * but is ultimately determined by RNG\n */\n cycleForecast(changeAmt = 0.1): void {\n const increaseChance = this.getForecastIncreaseChance();\n\n if (Math.random() < increaseChance) {\n // Forecast increases\n if (this.b) {\n this.otlkMag += changeAmt;\n } else {\n this.otlkMag -= changeAmt;\n }\n } else if (this.b) {\n // Forecast decreases\n this.otlkMag -= changeAmt;\n } else {\n this.otlkMag += changeAmt;\n }\n\n this.otlkMag = Math.min(this.otlkMag, 50);\n if (this.otlkMag < 0) {\n this.otlkMag *= -1;\n this.b = !this.b;\n }\n }\n\n /**\n * Change's the stock's second-order forecast during a stock market 'tick'.\n * The change for the second-order forecast to increase is 50/50\n */\n cycleForecastForecast(changeAmt = 0.1): void {\n if (Math.random() < 0.5) {\n this.changeForecastForecast(this.otlkMagForecast + changeAmt);\n } else {\n this.changeForecastForecast(this.otlkMagForecast - changeAmt);\n }\n }\n\n /**\n * \"Flip\" the stock's second-order forecast. This can occur during a\n * stock market \"cycle\" (determined by RNG). It is used to simulate\n * RL stock market cycles and introduce volatility\n */\n flipForecastForecast(): void {\n const diff = this.otlkMagForecast - 50;\n this.otlkMagForecast = 50 + -1 * diff;\n }\n\n /**\n * Returns the stock's absolute forecast, which is a number between 0-100\n */\n getAbsoluteForecast(): number {\n return this.b ? 50 + this.otlkMag : 50 - this.otlkMag;\n }\n\n /**\n * Return the price at which YOUR stock is bought (market ask price). Accounts for spread\n */\n getAskPrice(): number {\n return this.price * (1 + this.spreadPerc / 100);\n }\n\n /**\n * Return the price at which YOUR stock is sold (market bid price). Accounts for spread\n */\n getBidPrice(): number {\n return this.price * (1 - this.spreadPerc / 100);\n }\n\n /**\n * Returns the chance (0-1 decimal) that a stock has of having its forecast increase\n */\n getForecastIncreaseChance(): number {\n const diff = this.otlkMagForecast - this.getAbsoluteForecast();\n\n return (50 + Math.min(Math.max(diff, -45), 45)) / 100;\n }\n\n /**\n * Changes a stock's forecast. This is used when the stock is influenced\n * by a transaction. The stock's forecast always goes towards 50, but the\n * movement is capped by a certain threshold/limit\n */\n influenceForecast(change: number): void {\n if (this.otlkMag > StockForecastInfluenceLimit) {\n this.otlkMag = Math.max(StockForecastInfluenceLimit, this.otlkMag - change);\n }\n }\n\n /**\n * Changes a stock's second-order forecast. This is used when the stock is\n * influenced by a transaction. The stock's second-order forecast always\n * goes towards 50.\n */\n influenceForecastForecast(change: number): void {\n if (this.otlkMagForecast > 50) {\n this.otlkMagForecast -= change;\n this.otlkMagForecast = Math.max(50, this.otlkMagForecast);\n } else if (this.otlkMagForecast < 50) {\n this.otlkMagForecast += change;\n this.otlkMagForecast = Math.min(50, this.otlkMagForecast);\n }\n }\n\n /**\n * Serialize the Stock to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Stock\", this);\n }\n\n /**\n * Initializes a Stock from a JSON save state\n */\n static fromJSON(value: IReviverValue): Stock {\n return Generic_fromJSON(Stock, value.data);\n }\n}\n\nReviver.constructors.Stock = Stock;\n","/**\n * Map of all Cities in the game\n * Key = City Name, Value = City object\n */\nimport { City } from \"./City\";\nimport { IMap } from \"../types\";\n\nexport const Cities: IMap = {};\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { HacknetServerConstants } from \"../data/Constants\";\n\nexport function calculateHashGainRate(\n level: number,\n ramUsed: number,\n maxRam: number,\n cores: number,\n mult: number,\n): number {\n const baseGain = HacknetServerConstants.HashesPerLevel * level;\n const ramMultiplier = Math.pow(1.07, Math.log2(maxRam));\n const coreMultiplier = 1 + (cores - 1) / 5;\n const ramRatio = 1 - ramUsed / maxRam;\n\n return baseGain * ramMultiplier * coreMultiplier * ramRatio * mult * BitNodeMultipliers.HacknetNodeMoney;\n}\n\nexport function calculateLevelUpgradeCost(startingLevel: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingLevel >= HacknetServerConstants.MaxLevel) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeLevelMult;\n let totalMultiplier = 0;\n let currLevel = startingLevel;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalMultiplier += Math.pow(mult, currLevel);\n ++currLevel;\n }\n\n return 10 * HacknetServerConstants.BaseCost * totalMultiplier * costMult;\n}\n\nexport function calculateRamUpgradeCost(startingRam: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingRam >= HacknetServerConstants.MaxRam) {\n return Infinity;\n }\n\n let totalCost = 0;\n let numUpgrades = Math.round(Math.log2(startingRam));\n let currentRam = startingRam;\n for (let i = 0; i < sanitizedLevels; ++i) {\n const baseCost = currentRam * HacknetServerConstants.RamBaseCost;\n const mult = Math.pow(HacknetServerConstants.UpgradeRamMult, numUpgrades);\n\n totalCost += baseCost * mult;\n\n currentRam *= 2;\n ++numUpgrades;\n }\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCoreUpgradeCost(startingCores: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingCores >= HacknetServerConstants.MaxCores) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeCoreMult;\n let totalCost = 0;\n let currentCores = startingCores;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalCost += Math.pow(mult, currentCores - 1);\n ++currentCores;\n }\n totalCost *= HacknetServerConstants.CoreBaseCost;\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCacheUpgradeCost(startingCache: number, extraLevels = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingCache >= HacknetServerConstants.MaxCache) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeCacheMult;\n let totalCost = 0;\n let currentCache = startingCache;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalCost += Math.pow(mult, currentCache - 1);\n ++currentCache;\n }\n totalCost *= HacknetServerConstants.CacheBaseCost;\n\n return totalCost;\n}\n\nexport function calculateServerCost(n: number, mult = 1): number {\n if (n - 1 >= HacknetServerConstants.MaxServers) {\n return Infinity;\n }\n\n return HacknetServerConstants.BaseCost * Math.pow(HacknetServerConstants.PurchaseMult, n - 1) * mult;\n}\n","import { IMap } from \"./types\";\nimport { Terminal } from \"./Terminal\";\n\nexport let Aliases: IMap = {};\nexport let GlobalAliases: IMap = {};\n\nexport function loadAliases(saveString: string): void {\n if (saveString === \"\") {\n Aliases = {};\n } else {\n Aliases = JSON.parse(saveString);\n }\n}\n\nexport function loadGlobalAliases(saveString: string): void {\n if (saveString === \"\") {\n GlobalAliases = {};\n } else {\n GlobalAliases = JSON.parse(saveString);\n }\n}\n\n// Prints all aliases to terminal\nexport function printAliases(): void {\n for (const name of Object.keys(Aliases)) {\n if (Aliases.hasOwnProperty(name)) {\n Terminal.print(\"alias \" + name + \"=\" + Aliases[name]);\n }\n }\n for (const name of Object.keys(GlobalAliases)) {\n if (GlobalAliases.hasOwnProperty(name)) {\n Terminal.print(\"global alias \" + name + \"=\" + GlobalAliases[name]);\n }\n }\n}\n\n// Returns true if successful, false otherwise\nexport function parseAliasDeclaration(dec: string, global = false): boolean {\n console.log(dec);\n const re = /^([\\w|!%,@-]+)=(.+)$/;\n const matches = dec.match(re);\n console.log(matches);\n if (matches == null || matches.length != 3) {\n return false;\n }\n\n if (global) {\n addGlobalAlias(matches[1], matches[2]);\n } else {\n addAlias(matches[1], matches[2]);\n }\n return true;\n}\n\nfunction addAlias(name: string, value: string): void {\n if (name in GlobalAliases) {\n delete GlobalAliases[name];\n }\n Aliases[name] = value.trim();\n}\n\nfunction addGlobalAlias(name: string, value: string): void {\n if (name in Aliases) {\n delete Aliases[name];\n }\n GlobalAliases[name] = value.trim();\n}\n\nfunction getAlias(name: string): string | null {\n if (Aliases.hasOwnProperty(name)) {\n return Aliases[name];\n }\n\n return null;\n}\n\nfunction getGlobalAlias(name: string): string | null {\n if (GlobalAliases.hasOwnProperty(name)) {\n return GlobalAliases[name];\n }\n return null;\n}\n\nexport function removeAlias(name: string): boolean {\n if (Aliases.hasOwnProperty(name)) {\n delete Aliases[name];\n return true;\n }\n\n if (GlobalAliases.hasOwnProperty(name)) {\n delete GlobalAliases[name];\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns the original string with any aliases substituted in.\n * Aliases are only applied to \"whole words\", one level deep\n */\nexport function substituteAliases(origCommand: string): string {\n const commandArray = origCommand.split(\" \");\n if (commandArray.length > 0) {\n // For the alias and unalias commands, dont substite\n if (commandArray[0] === \"unalias\" || commandArray[0] === \"alias\") {\n return commandArray.join(\" \");\n }\n\n let somethingSubstituted = true;\n let depth = 0;\n\n while (somethingSubstituted && depth < 10) {\n depth++;\n somethingSubstituted = false;\n const alias = getAlias(commandArray[0])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(0, 1, ...alias);\n //commandArray[0] = alias;\n }\n for (let i = 0; i < commandArray.length; ++i) {\n const alias = getGlobalAlias(commandArray[i])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(i, 1, ...alias);\n i += alias.length - 1;\n //commandArray[i] = alias;\n }\n }\n }\n }\n return commandArray.join(\" \");\n}\n","/**\n * Map of all Locations in the game\n * Key = Location name, value = Location object\n */\nimport { City } from \"./City\";\nimport { Cities } from \"./Cities\";\nimport { Location, IConstructorParams } from \"./Location\";\nimport { CityName } from \"./data/CityNames\";\nimport { LocationsMetadata } from \"./data/LocationsMetadata\";\n\nimport { IMap } from \"../types\";\n\nexport const Locations: IMap = {};\n\n/**\n * Here, we'll initialize both Locations and Cities data. These can both\n * be initialized from the `LocationsMetadata`\n */\nfunction constructLocation(p: IConstructorParams): Location {\n if (!p.name) {\n throw new Error(`Invalid constructor parameters for Location. No 'name' property`);\n }\n\n if (Locations[p.name] instanceof Location) {\n console.warn(`Property with name ${p.name} already exists and is being overwritten`);\n }\n\n Locations[p.name] = new Location(p);\n\n return Locations[p.name];\n}\n\n// First construct all cities\nCities[CityName.Aevum] = new City(CityName.Aevum);\nCities[CityName.Chongqing] = new City(CityName.Chongqing);\nCities[CityName.Ishima] = new City(CityName.Ishima);\nCities[CityName.NewTokyo] = new City(CityName.NewTokyo);\nCities[CityName.Sector12] = new City(CityName.Sector12);\nCities[CityName.Volhaven] = new City(CityName.Volhaven);\n\nCities[CityName.Aevum].asciiArt = `\n [aevum police headquarters] 26 \n o \n I \\\\ [bachman & associates] \n \\\\ 56 B \n x \\\\ [summit university] \n \\\\ \\\\ 28 \n \\\\ [snap fitness gym] x o--L-----------N \n K \\\\ / \n \\\\ \\\\ Q [casino] \n x 58 \\\\ / [travel agency] \n \\\\ 94 95 o \n 90 x 59 o------o | \n \\\\ / \\\\ | 98 102 103 \n o--------O------x----o 93 96 o-----+------------o o----o \n \\\\ | \\\\ / \n [hospital] \\\\ 61 [ecorp] x 31 99 o-F-o 101 \n o | \n | o---E-- | [fulcrum tech.] \n x 62 / A [aerocorp] \n [crush fitness gym] | / | \n | / | \n o--------D------+--o o \n | |\\\\ [rho construction] \n H [netlink tech.] | J \n | | \\\\ \n | 34 x \\\\ \n [clarke inc.] C | \\\\ [world stock exchange] \n | | \\\\ \n | | o-M-------R--------o \n[galactic cybersystems] G 35 x \n | [watchdog security] \n | \n 67 o \n \n [the slums] P `;\nCities[CityName.Chongqing].asciiArt = `\n | \n 75 o \n \\\\ \n o 76 \n 7 | | \n | + 77 \n [world stock exchange] F | \n \\\\ o 78 [kuaigong international] \n \\\\ / \n 38 o----x--x------x------A------G-- \n / 39 | 41 [church] \n 37 o + 79 o--x--x-C-0 \n / | / \n / x-----+-----x-----0 [hospital] \n[solaris space system] B | \n | + 80 \n | | \n 34 o E [travel agency] \n | \n | \n x 82 \n [the slums] D `;\nCities[CityName.Ishima].asciiArt = `\n o 59 \n o o | \n [storm tech.] | | G [world stock exchange] \n | | 28 | \n 23 o--C------o--------+----x----o | \n / / 25 | 27 \\\\ x 57 \n / / | \\\\ | \n / / | \\\\ | \n o 22 o | \\\\| 29/56 \n | | o \n | [hospital] D / \\\\ 3 2 1 \n o | / \\\\ o-------x------o \n / o / \\\\ / \n 48 o / 55 x \\\\ / \n \\\\ / / x [glitch] \n \\\\ / [nova medical] / 4/30 \\\\ \n 49 x A \\\\ H \n / \\\\ / \\\\ \n / \\\\ [travel agency] F o 31 \n / \\\\ 51 / \n / o----B------x-----o \n o 50 52 \n [omega soft.] \n [the slums] E `;\nCities[CityName.NewTokyo].asciiArt = `\n \n \n o \n \\\\ \n [arcade] E [defcomm] \n \\\\ \n o--x---A--x--o [travel agency] \n 7 8 10 H \n [vitalife] o 12 [global pharmaceuticals] \n | \n o--D-x----x-------x-C-+--------x--x-B-x---x-o \n 21 22 23 \\\\ 24 25 26 27 \n \\\\ \n [noodle bar] x 14 \n \\\\ \n \\\\ \n [hospital] o 15 [world stock exchange] \n | \n o--x--F--x-----x-----x---+---x----x--I--x-o \n | \n | \n o 17 \n \n \n \n G [the slums] \n `;\nCities[CityName.Sector12].asciiArt = `\n 78 o 97 \n o [icarus microsystems] / \n N [powerhouse gym] o I \n 1 | | / \n o-----+---x----o 4 A [alpha ent.] o-------o / \n | 3 \\\\ | \\\\ / \n | \\\\ | [iron gym] x 95 \n (79) x \\\\ | / \\\\ \n | o-E----+----x----J--o 10 / o----T--o \n | | 8 \\\\ 94 x \n 80 x [city hall] | x 11 / [world stock exchange]\n | | \\\\ / \n | C [cia] \\\\ / \n Q [hospital] | F P [universal energy] \n | o [deltaone] \\\\ / \n | 35 o---------x 13/92/36 \n L [megacorp] 33 / / \\\\ \n | o------------o 34 / \\\\ \n (29) | / [carmichael sec.] D \\\\ \n o-----+-----x------o / O [rothman university] \n | 31 32 [nsa] M \n | / \n B [blade industries] H \n | / [four sigma] \n | [joe's guns] / \n | / \n 85 o--G--------K--------S-------o 88 [the slums] R \n \n [foodnstuff] [travel agency] `;\nCities[CityName.Volhaven].asciiArt = `\n [omnia cybersystems] \n 17 66 68 \n o o------G-------o \n \\\\ / \\\\ \n \\\\ o 65 o 69 \n [syscore sec.] H | | \n \\\\ | | [millenium fitness gym] \n \\\\ | 21 22 23 24 | 26 \n o----+--x--x----x---x---+-----x-------D-----o \n 19 | | 28 \n | F [omnitek inc.] \n [hospital] J 63 o \n | / 72 \n 3 | 5 6 / 9 \n o--------+----x-----x----+----------M-------o \n / | | \n / 61 x [helios labs] B [world stock exchange] \n [travel agency] L | | \n / | o \n / E [nwo] / 75 \n / [computek] | / \n / A-------o------I-----o \n 1 o | | \n | [zb] o 77 \n [lexocorp] C \n | \n o \n 57 \n \n \n [the slums] K `;\n\n// Then construct all locations, and add them to the cities as we go.\nfor (const metadata of LocationsMetadata) {\n const loc = constructLocation(metadata);\n\n const cityName = loc.city;\n if (cityName === null) {\n // Generic location, add to all cities\n for (const city of Object.keys(Cities)) {\n Cities[city].addLocation(loc.name);\n }\n } else {\n Cities[cityName].addLocation(loc.name);\n }\n}\n","/**\n * Lore / world building literature files that can be found on servers.\n * These files can be read by the player\n */\nexport class Literature {\n title: string;\n fn: string;\n txt: string;\n\n constructor(title: string, filename: string, txt: string) {\n this.title = title;\n this.fn = filename;\n this.txt = txt;\n }\n}\n","import React, { useState } from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ntype IProps = {\n value: string;\n color?: string;\n variant?:\n | \"button\"\n | \"caption\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"subtitle1\"\n | \"subtitle2\"\n | \"body1\"\n | \"body2\"\n | \"overline\"\n | \"inherit\"\n | undefined;\n};\n\nexport function CopyableText(props: IProps): React.ReactElement {\n const [open, setOpen] = useState(false);\n\n function copy(): void {\n const copyText = document.createElement(\"textarea\");\n copyText.value = props.value;\n document.body.appendChild(copyText);\n copyText.select();\n copyText.setSelectionRange(0, 1e10);\n document.execCommand(\"copy\");\n document.body.removeChild(copyText);\n setOpen(true);\n setTimeout(() => setOpen(false), 1000);\n }\n\n return (\n Copied!}>\n \n {props.value}\n \n \n );\n}\n","import React from \"react\";\nimport { createTheme, ThemeProvider, Theme, StyledEngineProvider } from \"@mui/material/styles\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { Settings } from \"../../Settings/Settings\";\n\nexport const ThemeEvents = new EventEmitter<[]>();\n\ndeclare module \"@mui/material/styles\" {\n interface Theme {\n colors: {\n hp: React.CSSProperties[\"color\"];\n money: React.CSSProperties[\"color\"];\n hack: React.CSSProperties[\"color\"];\n combat: React.CSSProperties[\"color\"];\n cha: React.CSSProperties[\"color\"];\n int: React.CSSProperties[\"color\"];\n rep: React.CSSProperties[\"color\"];\n backgroundprimary: React.CSSProperties[\"color\"];\n backgroundsecondary: React.CSSProperties[\"color\"];\n button: React.CSSProperties[\"color\"];\n successlight: React.CSSProperties[\"color\"];\n success: React.CSSProperties[\"color\"];\n successdark: React.CSSProperties[\"color\"];\n white: React.CSSProperties[\"color\"];\n black: React.CSSProperties[\"color\"];\n };\n }\n interface ThemeOptions {\n colors: {\n hp: React.CSSProperties[\"color\"];\n money: React.CSSProperties[\"color\"];\n hack: React.CSSProperties[\"color\"];\n combat: React.CSSProperties[\"color\"];\n cha: React.CSSProperties[\"color\"];\n int: React.CSSProperties[\"color\"];\n rep: React.CSSProperties[\"color\"];\n backgroundprimary: React.CSSProperties[\"color\"];\n backgroundsecondary: React.CSSProperties[\"color\"];\n button: React.CSSProperties[\"color\"];\n successlight: React.CSSProperties[\"color\"];\n success: React.CSSProperties[\"color\"];\n successdark: React.CSSProperties[\"color\"];\n white: React.CSSProperties[\"color\"];\n black: React.CSSProperties[\"color\"];\n };\n }\n}\n\nlet theme: Theme;\n\nexport function refreshTheme(): void {\n theme = createTheme({\n colors: {\n hp: Settings.theme.hp,\n money: Settings.theme.money,\n hack: Settings.theme.hack,\n combat: Settings.theme.combat,\n cha: Settings.theme.cha,\n int: Settings.theme.int,\n rep: Settings.theme.rep,\n backgroundprimary: Settings.theme.backgroundprimary,\n backgroundsecondary: Settings.theme.backgroundsecondary,\n button: Settings.theme.button,\n successlight: Settings.theme.successlight,\n success: Settings.theme.success,\n successdark: Settings.theme.successdark,\n white: Settings.theme.white,\n black: Settings.theme.black,\n },\n palette: {\n primary: {\n light: Settings.theme.primarylight,\n main: Settings.theme.primary,\n dark: Settings.theme.primarydark,\n },\n secondary: {\n light: Settings.theme.secondarylight,\n main: Settings.theme.secondary,\n dark: Settings.theme.secondarydark,\n },\n error: {\n light: Settings.theme.errorlight,\n main: Settings.theme.error,\n dark: Settings.theme.errordark,\n },\n info: {\n light: Settings.theme.infolight,\n main: Settings.theme.info,\n dark: Settings.theme.infodark,\n },\n warning: {\n light: Settings.theme.warninglight,\n main: Settings.theme.warning,\n dark: Settings.theme.warningdark,\n },\n success: {\n light: Settings.theme.successlight,\n main: Settings.theme.success,\n dark: Settings.theme.successdark,\n },\n background: {\n default: Settings.theme.backgroundprimary,\n paper: Settings.theme.well,\n },\n action: {\n disabled: Settings.theme.disabled,\n },\n },\n typography: {\n fontFamily: Settings.styles.fontFamily,\n button: {\n textTransform: \"none\",\n },\n },\n components: {\n MuiInputBase: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.well,\n color: Settings.theme.primary,\n },\n input: {\n \"&::placeholder\": {\n userSelect: \"none\",\n color: Settings.theme.primarydark,\n },\n },\n },\n },\n\n MuiInput: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.well,\n borderBottomColor: \"#fff\",\n },\n underline: {\n \"&:hover\": {\n borderBottomColor: Settings.theme.primarydark,\n },\n \"&:before\": {\n borderBottomColor: Settings.theme.primary,\n },\n \"&:after\": {\n borderBottomColor: Settings.theme.primarylight,\n },\n },\n },\n },\n\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: Settings.theme.primarydark, // why is this switched?\n userSelect: \"none\",\n \"&:before\": {\n color: Settings.theme.primarylight,\n },\n },\n },\n },\n\n MuiButtonGroup: {\n styleOverrides: {\n root: {\n \"& .MuiButton-root:not(:last-of-type)\": {\n marginRight: \"1px\",\n },\n },\n },\n },\n\n MuiButton: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.button,\n border: \"1px solid \" + Settings.theme.well,\n // color: Settings.theme.primary,\n \"&:hover\": {\n backgroundColor: Settings.theme.backgroundsecondary,\n },\n\n borderRadius: 0,\n },\n },\n },\n MuiSelect: {\n styleOverrides: {\n icon: {\n color: Settings.theme.primary,\n },\n },\n defaultProps: {\n variant: \"standard\",\n },\n },\n MuiTextField: {\n defaultProps: {\n variant: \"standard\",\n },\n },\n MuiTypography: {\n defaultProps: {\n color: \"primary\",\n },\n styleOverrides: {\n root: {\n lineHeight: Settings.styles.lineHeight,\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n list: {\n backgroundColor: Settings.theme.well,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n backgroundColor: \"#111\",\n },\n },\n },\n MuiAccordionDetails: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.backgroundsecondary,\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontSize: \"1em\",\n color: Settings.theme.primary,\n backgroundColor: Settings.theme.well,\n borderRadius: 0,\n border: \"2px solid white\",\n maxWidth: \"100vh\",\n },\n },\n defaultProps: {\n disableInteractive: true,\n },\n },\n MuiSlider: {\n styleOverrides: {\n valueLabel: {\n color: Settings.theme.primary,\n backgroundColor: Settings.theme.well,\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n \"&::-webkit-scrollbar\": {\n // webkit\n display: \"none\",\n },\n scrollbarWidth: \"none\", // firefox\n backgroundColor: Settings.theme.backgroundsecondary,\n },\n paperAnchorDockedLeft: {\n borderRight: \"1px solid \" + Settings.theme.welllight,\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.welllight,\n },\n },\n },\n MuiFormControlLabel: {\n styleOverrides: {\n root: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiSwitch: {\n styleOverrides: {\n switchBase: {\n color: Settings.theme.primarydark,\n },\n track: {\n backgroundColor: Settings.theme.welllight,\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n borderRadius: 0,\n backgroundColor: Settings.theme.backgroundsecondary,\n border: \"1px solid \" + Settings.theme.welllight,\n },\n },\n },\n MuiTablePagination: {\n styleOverrides: {\n select: {\n color: Settings.theme.primary,\n },\n selectLabel: {\n color: Settings.theme.primary,\n },\n displayedRows: {\n color: Settings.theme.primary,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n textColorPrimary: {\n color: Settings.theme.secondary,\n \"&.Mui-selected\": {\n color: Settings.theme.primary,\n },\n },\n root: {\n backgroundColor: Settings.theme.backgroundsecondary,\n border: \"1px solid \" + Settings.theme.well,\n margin: \"3px\",\n\n \"&.Mui-selected\": {\n backgroundColor: Settings.theme.button,\n },\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n scrollButtons: {\n backgroundColor: Settings.theme.backgroundsecondary,\n color: Settings.theme.secondary,\n margin: \"3px\",\n opacity: 1,\n width: \"fit-content\",\n\n \"&.Mui-disabled\": {\n opacity: 0.5,\n },\n },\n },\n defaultProps: {\n TabIndicatorProps: {\n style: {\n display: \"none\",\n },\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n backgroundColor: Settings.theme.black,\n borderRadius: 0,\n border: \"1px solid \" + Settings.theme.well,\n },\n standardSuccess: {\n color: Settings.theme.successlight,\n },\n standardError: {\n color: Settings.theme.errorlight,\n },\n standardWarning: {\n color: Settings.theme.warninglight,\n },\n standardInfo: {\n color: Settings.theme.infolight,\n },\n },\n },\n },\n });\n\n document.body.style.backgroundColor = theme.colors.backgroundprimary?.toString() ?? \"black\";\n}\nrefreshTheme();\n\ninterface IProps {\n children: JSX.Element[] | JSX.Element;\n}\n\nexport const TTheme = ({ children }: IProps): React.ReactElement => (\n \n {children}\n \n);\n","// Enums that defined allowed values for setting configuration\n\n/**\n * Allowed values for the 'OwnedAugmentationsOrder' setting\n */\nexport enum PurchaseAugmentationsOrderSetting {\n Cost,\n Default,\n Reputation,\n Purchasable,\n}\n\n/**\n * Allowed values for the 'OwnedAugmentationsOrder' setting\n */\nexport enum OwnedAugmentationsOrderSetting {\n Alphabetically,\n AcquirementTime,\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { RunningScript } from \"../../Script/RunningScript\";\nimport { killWorkerScript } from \"../../Netscript/killWorkerScript\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport Paper from \"@mui/material/Paper\";\nimport Draggable, { DraggableEvent } from \"react-draggable\";\nimport { ResizableBox } from \"react-resizable\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { workerScripts } from \"../../Netscript/WorkerScripts\";\nimport { startWorkerScript } from \"../../NetscriptWorker\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { findRunningScript } from \"../../Script/ScriptHelpers\";\nimport { Player } from \"../../Player\";\nimport { debounce } from \"lodash\";\nimport { Settings } from \"../../Settings/Settings\";\nimport { ANSIITypography } from \"./ANSIITypography\";\nimport { ScriptArg } from \"../../Netscript/ScriptArg\";\n\nlet layerCounter = 0;\n\nexport const LogBoxEvents = new EventEmitter<[RunningScript]>();\nexport const LogBoxCloserEvents = new EventEmitter<[number]>();\nexport const LogBoxClearEvents = new EventEmitter<[]>();\n\ninterface Log {\n id: string;\n script: RunningScript;\n}\n\nlet logs: Log[] = [];\n\nexport function LogBoxManager(): React.ReactElement {\n const setRerender = useState(true)[1];\n function rerender(): void {\n setRerender((o) => !o);\n }\n useEffect(\n () =>\n LogBoxEvents.subscribe((script: RunningScript) => {\n const id = script.server + \"-\" + script.filename + script.args.map((x: ScriptArg): string => `${x}`).join(\"-\");\n if (logs.find((l) => l.id === id)) return;\n logs.push({\n id: id,\n script: script,\n });\n rerender();\n }),\n [],\n );\n\n //Event used by ns.closeTail to close tail windows\n useEffect(\n () =>\n LogBoxCloserEvents.subscribe((pid: number) => {\n closePid(pid);\n }),\n [],\n );\n\n useEffect(() =>\n LogBoxClearEvents.subscribe(() => {\n logs = [];\n rerender();\n }),\n );\n\n //Close tail windows by their id\n function close(id: string): void {\n logs = logs.filter((l) => l.id !== id);\n rerender();\n }\n\n //Close tail windows by their pid\n function closePid(pid: number): void {\n logs = logs.filter((log) => log.script.pid != pid);\n rerender();\n }\n\n return (\n <>\n {logs.map((log) => (\n close(log.id)} />\n ))}\n >\n );\n}\n\ninterface IProps {\n script: RunningScript;\n id: string;\n onClose: () => void;\n}\n\nconst useStyles = makeStyles(() =>\n createStyles({\n logs: {\n overflowY: \"scroll\",\n overflowX: \"hidden\",\n scrollbarWidth: \"auto\",\n flexDirection: \"column-reverse\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n },\n titleButton: {\n padding: \"1px 0\",\n height: \"100%\",\n },\n }),\n);\n\nexport const logBoxBaseZIndex = 1500;\n\nfunction LogWindow(props: IProps): React.ReactElement {\n const draggableRef = useRef(null);\n const rootRef = useRef(null);\n const [script, setScript] = useState(props.script);\n const classes = useStyles();\n const container = useRef(null);\n const setRerender = useState(false)[1];\n const [minimized, setMinimized] = useState(false);\n function rerender(): void {\n setRerender((old) => !old);\n }\n\n // useEffect(\n // () =>\n // WorkerScriptStartStopEventEmitter.subscribe(() => {\n // setTimeout(() => {\n // const server = GetServer(script.server);\n // if (server === null) return;\n // const exisitingScript = findRunningScript(script.filename, script.args, server);\n // if (exisitingScript) {\n // exisitingScript.logs = script.logs.concat(exisitingScript.logs)\n // setScript(exisitingScript)\n // }\n // rerender();\n // }, 100)\n // }),\n // [],\n // );\n\n useEffect(() => {\n updateLayer();\n const id = setInterval(rerender, 1000);\n return () => clearInterval(id);\n }, []);\n\n function kill(): void {\n killWorkerScript({ runningScript: script, hostname: script.server });\n }\n\n function run(): void {\n const server = GetServer(script.server);\n if (server === null) return;\n const s = findRunningScript(script.filename, script.args, server);\n if (s === null) {\n startWorkerScript(Player, script, server);\n } else {\n setScript(s);\n }\n }\n\n function updateLayer(): void {\n const c = container.current;\n if (c === null) return;\n c.style.zIndex = logBoxBaseZIndex + layerCounter + \"\";\n layerCounter++;\n rerender();\n }\n\n function title(full = false): string {\n const maxLength = 30;\n const t = `${script.filename} ${script.args.map((x: ScriptArg): string => `${x}`).join(\" \")}`;\n if (full || t.length <= maxLength) {\n return t;\n }\n return t.slice(0, maxLength - 3) + \"...\";\n }\n\n function minimize(): void {\n setMinimized(!minimized);\n }\n\n function lineColor(s: string): \"error\" | \"success\" | \"warn\" | \"info\" | \"primary\" {\n if (s.match(/(^\\[[^\\]]+\\] )?ERROR/) || s.match(/(^\\[[^\\]]+\\] )?FAIL/)) {\n return \"error\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?SUCCESS/)) {\n return \"success\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?WARN/)) {\n return \"warn\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?INFO/)) {\n return \"info\";\n }\n return \"primary\";\n }\n\n // And trigger fakeDrag when the window is resized\n useEffect(() => {\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, []);\n\n const onResize = debounce((): void => {\n const node = draggableRef?.current;\n if (!node) return;\n\n if (!isOnScreen(node)) {\n resetPosition();\n }\n }, 100);\n\n const isOnScreen = (node: HTMLDivElement): boolean => {\n const bounds = node.getBoundingClientRect();\n\n return !(bounds.right < 0 || bounds.bottom < 0 || bounds.left > innerWidth || bounds.top > outerWidth);\n };\n\n const resetPosition = (): void => {\n const node = rootRef?.current;\n if (!node) return;\n const state = node.state as { x: number; y: number };\n state.x = 0;\n state.y = 0;\n node.setState(state);\n };\n\n const boundToBody = (e: DraggableEvent): void | false => {\n if (\n e instanceof MouseEvent &&\n (e.clientX < 0 || e.clientY < 0 || e.clientX > innerWidth || e.clientY > innerHeight)\n )\n return false;\n };\n\n // Max [width, height]\n const minConstraints: [number, number] = [250, 33];\n\n return (\n \n \n \n \n \n }\n >\n <>\n \n \n {title(true)}\n \n\n \n {!workerScripts.has(script.pid) ? (\n \n ) : (\n \n )}\n \n \n \n \n\n \n \n {script.logs.map(\n (line: string, i: number): JSX.Element => (\n \n \n \n ),\n )}\n \n \n >\n \n \n \n );\n}\n","import { IMap } from \"../types\";\n\n// Map of material (by name) to their sizes (how much space it takes in warehouse)\nexport const MaterialSizes: IMap = {\n Water: 0.05,\n Energy: 0.01,\n Food: 0.03,\n Plants: 0.05,\n Metal: 0.1,\n Hardware: 0.06,\n Chemicals: 0.05,\n Drugs: 0.02,\n Robots: 0.5,\n AICores: 0.1,\n RealEstate: 0.005,\n \"Real Estate\": 0.005,\n \"AI Cores\": 0.1,\n};\n","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","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","import { FactionNames } from \"../../Faction/data/FactionNames\";\n\nexport const GangConstants: {\n GangRespectToReputationRatio: number;\n MaximumGangMembers: number;\n CyclesPerTerritoryAndPowerUpdate: number;\n AscensionMultiplierRatio: number;\n Names: string[];\n GangKarmaRequirement: number;\n} = {\n // Respect is divided by this to get rep gain\n GangRespectToReputationRatio: 75,\n MaximumGangMembers: 12,\n CyclesPerTerritoryAndPowerUpdate: 100,\n // Portion of upgrade multiplier that is kept after ascending\n AscensionMultiplierRatio: 0.15,\n // Names of possible Gangs\n Names: [\n FactionNames.SlumSnakes,\n FactionNames.Tetrads,\n FactionNames.TheSyndicate,\n FactionNames.TheDarkArmy,\n FactionNames.SpeakersForTheDead,\n FactionNames.NiteSec,\n FactionNames.TheBlackHand,\n ],\n GangKarmaRequirement: -54000,\n};\n","import { 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 * 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 { isScriptErrorMessage, makeRuntimeRejectMsg } from \"./NetscriptEvaluator\";\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\";\nimport { sprintf } from \"sprintf-js\";\n\nimport { parse } from \"acorn\";\nimport { simple as walksimple } from \"acorn-walk\";\nimport { areFilesEqual } from \"./Terminal/DirectoryHelpers\";\nimport { Player } from \"./Player\";\nimport { Terminal } from \"./Terminal\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { ScriptArg } from \"./Netscript/ScriptArg\";\n\n// Netscript Ports are instantiated here\nexport const NetscriptPorts: IPort[] = [];\nfor (let i = 0; i < CONSTANTS.NumNetscriptPorts; ++i) {\n NetscriptPorts.push(NetscriptPort());\n}\n\nexport function prestigeWorkerScripts(): void {\n for (const ws of workerScripts.values()) {\n ws.env.stopFlag = true;\n killWorkerScript(ws);\n }\n for (const port of NetscriptPorts) {\n port.clear();\n }\n\n WorkerScriptStartStopEventEmitter.emit();\n workerScripts.clear();\n}\n\n// JS script promises need a little massaging to have the same guarantees as netscript\n// promises. This does said massaging and kicks the script off. It returns a promise\n// that resolves or rejects when the corresponding worker script is done.\nfunction startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Promise {\n workerScript.running = true;\n\n // The name of the currently running netscript function, to prevent concurrent\n // calls to hack, grow, etc.\n let runningFn: string | null = null;\n\n // We need to go through the environment and wrap each function in such a way that it\n // can be called at most once at a time. This will prevent situations where multiple\n // hack promises are outstanding, for example.\n function wrap(propName: string, f: (...args: unknown[]) => Promise): (...args: unknown[]) => Promise {\n // This function unfortunately cannot be an async function, because we don't\n // know if the original one was, and there's no way to tell.\n return function (...args: unknown[]) {\n // Wrap every netscript function with a check for the stop flag.\n // This prevents cases where we never stop because we are only calling\n // netscript functions that don't check this.\n // This is not a problem for legacy Netscript because it also checks the\n // stop flag in the evaluator.\n if (workerScript.env.stopFlag) {\n throw new ScriptDeath(workerScript);\n }\n\n if (propName === \"asleep\") return f(...args); // OK for multiple simultaneous calls to sleep.\n\n const msg =\n \"Concurrent calls to Netscript functions are not allowed! \" +\n \"Did you forget to await hack(), grow(), or some other \" +\n \"promise-returning function? (Currently running: %s tried to run: %s)\";\n if (runningFn) {\n workerScript.errorMessage = makeRuntimeRejectMsg(workerScript, sprintf(msg, runningFn, propName));\n throw new ScriptDeath(workerScript);\n }\n runningFn = propName;\n\n // If the function throws an error, clear the runningFn flag first, and then re-throw it\n // This allows people to properly catch errors thrown by NS functions without getting\n // the concurrent call error above\n let result;\n try {\n result = f(...args);\n } catch (e: unknown) {\n runningFn = null;\n throw e;\n }\n\n if (result && result.finally !== undefined) {\n return result.finally(function () {\n runningFn = null;\n });\n } else {\n runningFn = null;\n return result;\n }\n };\n }\n\n function wrapObject(vars: unknown, ...tree: string[]): void {\n const isObject = (x: unknown): x is { [key: string]: unknown } => typeof x === \"object\";\n if (!isObject(vars)) throw new Error(\"wrong argument sent to wrapObject\");\n for (const prop of Object.keys(vars)) {\n let e = vars[prop];\n switch (typeof e) {\n case \"function\": {\n e = wrap([...tree, prop].join(\".\"), e as any);\n break;\n }\n case \"object\": {\n if (Array.isArray(e)) continue;\n wrapObject(e, ...tree, prop);\n break;\n }\n }\n }\n }\n wrapObject(workerScript.env.vars);\n\n // Note: the environment that we pass to the JS script only needs to contain the functions visible\n // to that script, which env.vars does at this point.\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 = makeRuntimeRejectMsg(workerScript, e.message + \" (sorry we can't be more helpful)\");\n } else {\n workerScript.errorMessage = makeRuntimeRejectMsg(\n workerScript,\n e.message + ((e.stack && \"\\nstack:\\n\" + e.stack.toString()) || \"\"),\n );\n }\n throw new ScriptDeath(workerScript);\n } else if (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 = makeRuntimeRejectMsg(workerScript, \"\" + e);\n throw new ScriptDeath(workerScript);\n });\n}\n\nfunction startNetscript1Script(workerScript: WorkerScript): Promise {\n const code = workerScript.code;\n workerScript.running = true;\n\n //Process imports\n let codeWithImports, codeLineOffset;\n try {\n const importProcessingRes = processNetscript1Imports(code, workerScript);\n codeWithImports = importProcessingRes.code;\n codeLineOffset = importProcessingRes.lineOffset;\n } catch (e: unknown) {\n dialogBoxCreate(\"Error processing Imports in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n const interpreterInitialization = function (int: Interpreter, scope: unknown): void {\n //Add the Netscript environment\n const ns = NetscriptFunctions(workerScript);\n for (const name of Object.keys(ns)) {\n const entry = ns[name];\n if (typeof entry === \"function\") {\n //Async functions need to be wrapped. See JS-Interpreter documentation\n const asyncFuncs = [\"hack\", \"grow\", \"weaken\", \"sleep\", \"prompt\", \"manualHack\", \"scp\", \"write\", \"share\", \"wget\"];\n\n if (asyncFuncs.includes(name)) {\n const tempWrapper = function (...args: unknown[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length - 1; ++i) {\n if (typeof args[i] === \"object\" || Array.isArray(args[i])) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n const callb = args[args.length - 1];\n const fnPromise = entry(...fnArgs);\n fnPromise\n .then(function (res: unknown) {\n if (typeof callb === \"function\") {\n callb(res);\n }\n })\n .catch(function (err: unknown) {\n if (typeof err === \"string\") {\n console.error(err);\n const errorTextArray = err.split(\"|DELIMITER|\");\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n let msg = `${scriptName}@${hostname} `;\n msg += \" \";\n msg += errorMsg;\n dialogBoxCreate(msg);\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n });\n };\n int.setProperty(scope, name, int.createAsyncFunction(tempWrapper));\n } else if (\n name === \"sprintf\" ||\n name === \"vsprintf\" ||\n name === \"scp\" ||\n name == \"write\" ||\n name === \"tryWrite\" ||\n name === \"run\" ||\n name === \"exec\"\n ) {\n const tempWrapper = function (...args: unknown[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length; ++i) {\n if (typeof args[i] === \"object\" || Array.isArray(args[i])) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n\n return entry(...fnArgs);\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n } else {\n const tempWrapper = function (...args: unknown[]): unknown {\n const res = entry(...args);\n\n if (res == null) {\n return res;\n } else if (res.constructor === Array || res === Object(res)) {\n //Objects and Arrays must be converted to the interpreter's format\n return int.nativeToPseudo(res);\n } else {\n return res;\n }\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n }\n } else {\n //bladeburner, or anything else\n int.setProperty(scope, name, int.nativeToPseudo(entry));\n }\n }\n\n //Add the arguments\n int.setProperty(scope, \"args\", int.nativeToPseudo(workerScript.args));\n };\n\n let interpreter: Interpreter;\n try {\n interpreter = new Interpreter(codeWithImports, interpreterInitialization, codeLineOffset);\n } catch (e: unknown) {\n dialogBoxCreate(\"Syntax ERROR in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n function runInterpreter(): void {\n try {\n if (workerScript.env.stopFlag) {\n return reject(new ScriptDeath(workerScript));\n }\n\n let more = true;\n let i = 0;\n while (i < 3 && more) {\n more = more && interpreter.step();\n i++;\n }\n\n if (more) {\n setTimeout(runInterpreter, Settings.CodeInstructionRunTime);\n } else {\n resolve();\n }\n } catch (_e: unknown) {\n let e = String(_e);\n if (!isScriptErrorMessage(e)) {\n e = makeRuntimeRejectMsg(workerScript, e);\n }\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n }\n }\n\n try {\n runInterpreter();\n } catch (e: unknown) {\n if (isString(e)) {\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n } else if (e instanceof ScriptDeath) {\n return reject(e);\n } else {\n console.error(e);\n return reject(new ScriptDeath(workerScript));\n }\n }\n });\n}\n\n/* Since the JS Interpreter used for Netscript 1.0 only supports ES5, the keyword\n 'import' throws an error. However, since we want to support import funtionality\n we'll implement it ourselves by parsing the Nodes in the AST out.\n\n @param code - The script's code\n @returns {Object} {\n code: Newly-generated code with imported functions\n lineOffset: Net number of lines of code added/removed due to imported functions\n Should typically be positive\n }\n*/\nfunction processNetscript1Imports(code: string, workerScript: WorkerScript): { code: string; lineOffset: number } {\n //allowReserved prevents 'import' from throwing error in ES5\n const ast: Node = parse(code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n const server = workerScript.getServer();\n if (server == null) {\n throw new Error(\"Failed to find underlying Server object for script\");\n }\n\n function getScript(scriptName: string): Script | null {\n for (let i = 0; i < server.scripts.length; ++i) {\n if (server.scripts[i].filename === scriptName) {\n return server.scripts[i];\n }\n }\n return null;\n }\n\n let generatedCode = \"\"; // Generated Javascript Code\n let hasImports = false;\n\n // Walk over the tree and process ImportDeclaration nodes\n walksimple(ast, {\n ImportDeclaration: (node: Node) => {\n hasImports = true;\n let scriptName = node.source.value;\n if (scriptName.startsWith(\"./\")) {\n scriptName = scriptName.slice(2);\n }\n const script = getScript(scriptName);\n if (script == null) {\n throw new Error(\"'Import' failed due to invalid script: \" + scriptName);\n }\n const scriptAst = parse(script.code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n if (node.specifiers.length === 1 && node.specifiers[0].type === \"ImportNamespaceSpecifier\") {\n // import * as namespace from script\n const namespace = node.specifiers[0].local.name;\n const fnNames: string[] = []; //Names only\n const fnDeclarations: Node[] = []; //FunctionDeclaration Node objects\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n fnNames.push(node.id.name);\n fnDeclarations.push(node);\n },\n });\n\n //Now we have to generate the code that would create the namespace\n generatedCode += `var ${namespace};\\n(function (namespace) {\\n`;\n\n //Add the function declarations\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n\n //Add functions to namespace\n fnNames.forEach((fnName) => {\n generatedCode += \"namespace.\" + fnName + \" = \" + fnName;\n generatedCode += \"\\n\";\n });\n\n //Finish\n generatedCode += `})(${namespace} || (\" + namespace + \" = {}));\\n`;\n } else {\n //import {...} from script\n\n //Get array of all fns to import\n const fnsToImport: string[] = [];\n node.specifiers.forEach((e: Node) => {\n fnsToImport.push(e.local.name);\n });\n\n //Walk through script and get FunctionDeclaration code for all specified fns\n const fnDeclarations: Node[] = [];\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n if (fnsToImport.includes(node.id.name)) {\n fnDeclarations.push(node);\n }\n },\n });\n\n //Convert FunctionDeclarations into code\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n }\n },\n });\n\n //If there are no imports, just return the original code\n if (!hasImports) {\n return { code: code, lineOffset: 0 };\n }\n\n //Remove ImportDeclarations from AST. These ImportDeclarations must be in top-level\n let linesRemoved = 0;\n if (ast.type !== \"Program\" || ast.body == null) {\n throw new Error(\"Code could not be properly parsed\");\n }\n for (let i = ast.body.length - 1; i >= 0; --i) {\n if (ast.body[i].type === \"ImportDeclaration\") {\n ast.body.splice(i, 1);\n ++linesRemoved;\n }\n }\n\n //Calculated line offset\n const lineOffset = (generatedCode.match(/\\n/g) || []).length - linesRemoved;\n\n //Convert the AST back into code\n code = generate(ast);\n\n //Add the imported code and re-generate in ES5 (JS Interpreter for NS1 only supports ES5);\n code = generatedCode + code;\n\n const res = {\n code: code,\n lineOffset: lineOffset,\n };\n return res;\n}\n\n/**\n * Used to start a RunningScript (by creating and starting its\n * corresponding WorkerScript), and add the RunningScript to the server on which\n * it is active\n */\nexport function startWorkerScript(\n player: IPlayer,\n runningScript: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): number {\n if (createAndAddWorkerScript(player, runningScript, server, parent)) {\n // Push onto runningScripts.\n // This has to come after createAndAddWorkerScript() because that fn updates RAM usage\n server.runScript(runningScript);\n\n // Once the WorkerScript is constructed in createAndAddWorkerScript(), the RunningScript\n // object should have a PID assigned to it, so we return that\n return runningScript.pid;\n }\n\n return 0;\n}\n\n/**\n * Given a RunningScript object, constructs its corresponding WorkerScript,\n * adds it to the global 'workerScripts' pool, and begins executing it.\n * @param {RunningScript} runningScriptObj - Script that's being run\n * @param {Server} server - Server on which the script is to be run\n * returns {boolean} indicating whether or not the workerScript was successfully added\n */\nfunction createAndAddWorkerScript(\n player: IPlayer,\n runningScriptObj: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): boolean {\n // Update server's ram usage\n let threads = 1;\n if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) {\n threads = runningScriptObj.threads;\n } else {\n runningScriptObj.threads = 1;\n }\n const oneRamUsage = getRamUsageFromRunningScript(runningScriptObj);\n const ramUsage = roundToTwo(oneRamUsage * threads);\n const ramAvailable = server.maxRam - server.ramUsed;\n if (ramUsage > ramAvailable + 0.001) {\n dialogBoxCreate(\n `Not enough RAM to run script ${runningScriptObj.filename} with args ` +\n `${arrayToString(runningScriptObj.args)}. This likely occurred because you re-loaded ` +\n `the game and the script's RAM usage increased (either because of an update to the game or ` +\n `your changes to the script.)`,\n );\n return false;\n }\n\n server.updateRamUsed(roundToTwo(server.ramUsed + ramUsage), Player);\n\n // Get the pid\n const pid = generateNextPid();\n if (pid === -1) {\n throw new Error(\n `Failed to start script because could not find available PID. This is most ` +\n `because you have too many scripts running.`,\n );\n }\n\n // Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying\n // RunningScript's PID as well\n const workerScript = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);\n workerScript.ramUsage = oneRamUsage;\n\n // Add the WorkerScript to the global pool\n workerScripts.set(pid, workerScript);\n WorkerScriptStartStopEventEmitter.emit();\n\n // Start the script's execution\n let scriptExecution: Promise | null = null; // Script's resulting promise\n if (workerScript.name.endsWith(\".js\")) {\n scriptExecution = startNetscript2Script(player, workerScript);\n } else {\n scriptExecution = startNetscript1Script(workerScript);\n if (!(scriptExecution instanceof Promise)) {\n return false;\n }\n }\n\n // Once the code finishes (either resolved or rejected, doesnt matter), set its\n // running status to false\n scriptExecution\n .then(function () {\n workerScript.running = false;\n workerScript.env.stopFlag = true;\n // On natural death, the earnings are transfered to the parent if it still exists.\n if (parent !== undefined) {\n if (parent.running) {\n parent.scriptRef.onlineExpGained += runningScriptObj.onlineExpGained;\n parent.scriptRef.onlineMoneyMade += runningScriptObj.onlineMoneyMade;\n }\n }\n\n killWorkerScript(workerScript);\n workerScript.log(\"\", () => \"Script finished running\");\n })\n .catch(function (e) {\n if (e instanceof Error) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\"Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: \" + e.toString());\n return;\n } else if (e instanceof ScriptDeath) {\n if (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 (isScriptErrorMessage(e)) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\n \"ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: \" +\n e.toString(),\n );\n return;\n } else {\n dialogBoxCreate(\"An unknown script died for an unknown reason. This is a bug please contact game dev\");\n console.error(e);\n }\n\n killWorkerScript(workerScript);\n });\n\n return true;\n}\n\n/**\n * Updates the online running time stat of all running scripts\n */\nexport function updateOnlineScriptTimes(numCycles = 1): void {\n const time = (numCycles * CONSTANTS._idleSpeed) / 1000; //seconds\n for (const ws of workerScripts.values()) {\n ws.scriptRef.onlineRunningTime += time;\n }\n}\n\n/**\n * Called when the game is loaded. Loads all running scripts (from all servers)\n * into worker scripts so that they will start running\n */\nexport function loadAllRunningScripts(player: IPlayer): void {\n const skipScriptLoad = window.location.href.toLowerCase().indexOf(\"?noscripts\") !== -1;\n if (skipScriptLoad) {\n Terminal.warn(\"Skipped loading player scripts during startup\");\n console.info(\"Skipping the load of any scripts during startup\");\n }\n for (const server of GetAllServers()) {\n // Reset each server's RAM usage to 0\n server.ramUsed = 0;\n\n // Reset modules on all scripts\n for (let i = 0; i < server.scripts.length; ++i) {\n server.scripts[i].markUpdated();\n }\n\n if (skipScriptLoad) {\n // Start game with no scripts\n server.runningScripts.length = 0;\n } else {\n for (let j = 0; j < server.runningScripts.length; ++j) {\n const fileName = server.runningScripts[j].filename;\n createAndAddWorkerScript(player, server.runningScripts[j], server);\n\n if (!server.runningScripts[j]) {\n // createAndAddWorkerScript can modify the server.runningScripts array if a script is invalid\n console.error(`createAndAddWorkerScript removed ${fileName} from ${server}`);\n continue;\n }\n\n // Offline production\n scriptCalculateOfflineProduction(server.runningScripts[j]);\n }\n }\n }\n}\n\n/**\n * Run a script from inside another script (run(), exec(), spawn(), etc.)\n */\nexport function runScriptFromScript(\n player: IPlayer,\n caller: string,\n server: BaseServer,\n scriptname: string,\n args: ScriptArg[],\n workerScript: WorkerScript,\n threads = 1,\n): number {\n // Sanitize arguments\n if (!(workerScript instanceof WorkerScript)) {\n return 0;\n }\n\n if (typeof scriptname !== \"string\" || !Array.isArray(args)) {\n workerScript.log(caller, () => `Invalid arguments: scriptname='${scriptname} args='${args}'`);\n console.error(`runScriptFromScript() failed due to invalid arguments`);\n return 0;\n }\n\n args.forEach((arg, i) => {\n if (typeof arg !== \"string\" && typeof arg !== \"number\" && typeof arg !== \"boolean\")\n throw new Error(\n \"Only strings, numbers, and booleans can be passed as arguments to other scripts.\\n\" +\n `${scriptname} argument index ${i} is of type ${typeof arg} and value ${JSON.stringify(arg)}`,\n );\n });\n\n // Check if the script is already running\n const runningScriptObj = server.getRunningScript(scriptname, args);\n if (runningScriptObj != null) {\n workerScript.log(caller, () => `'${scriptname}' is already running on '${server.hostname}'`);\n return 0;\n }\n\n // 'null/undefined' arguments are not allowed\n for (let i = 0; i < args.length; ++i) {\n if (args[i] == null) {\n workerScript.log(caller, () => \"Cannot execute a script with null/undefined as an argument\");\n return 0;\n }\n }\n\n // Check if the script exists and if it does run it\n for (let i = 0; i < server.scripts.length; ++i) {\n if (!areFilesEqual(server.scripts[i].filename, scriptname)) continue;\n // Check for admin rights and that there is enough RAM availble to run\n const script = server.scripts[i];\n let ramUsage = script.ramUsage;\n threads = Math.floor(Number(threads));\n if (threads === 0) {\n return 0;\n }\n ramUsage = ramUsage * threads;\n const ramAvailable = server.maxRam - server.ramUsed;\n\n if (server.hasAdminRights == false) {\n workerScript.log(caller, () => `You do not have root access on '${server.hostname}'`);\n return 0;\n } else if (ramUsage > ramAvailable + 0.001) {\n workerScript.log(\n caller,\n () =>\n `Cannot run script '${scriptname}' (t=${threads}) on '${server.hostname}' because there is not enough available RAM!`,\n );\n return 0;\n }\n // Able to run script\n workerScript.log(\n caller,\n () => `'${scriptname}' on '${server.hostname}' with ${threads} threads and args: ${arrayToString(args)}.`,\n );\n const runningScriptObj = new RunningScript(script, args);\n runningScriptObj.threads = threads;\n runningScriptObj.server = server.hostname;\n\n return startWorkerScript(player, runningScriptObj, server, workerScript);\n }\n\n workerScript.log(caller, () => `Could not find script '${scriptname}' on '${server.hostname}'`);\n return 0;\n}\n","/**\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 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 { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { Export } from \"./Export\";\n\ninterface IConstructorParams {\n name?: string;\n}\n\nexport class Material {\n // Name of material\n name = \"InitName\";\n\n // Amount of material owned\n qty = 0;\n\n // Material's \"quality\". Unbounded\n qlt = 0;\n\n // How much demand the Material has in the market, and the range of possible\n // values for this \"demand\"\n dmd = 0;\n dmdR: number[] = [0, 0];\n\n // How much competition there is for this Material in the market, and the range\n // of possible values for this \"competition\"\n cmp = 0;\n cmpR: number[] = [0, 0];\n\n // Maximum volatility of this Materials stats\n mv = 0;\n\n // Markup. Determines how high of a price you can charge on the material\n // compared to the market price without suffering loss in # of sales\n // Quality is divided by this to determine markup limits\n // e,g, If mku is 10 and quality is 100 then you can markup prices by 100/10 = 10\n mku = 0;\n\n // How much of this material is being bought, sold, imported and produced every second\n buy = 0;\n sll = 0;\n prd = 0;\n imp = 0;\n\n // Exports of this material to another warehouse/industry\n exp: Export[] = [];\n\n // Total amount of this material exported in the last cycle\n totalExp = 0;\n\n // Cost / sec to buy this material. AKA Market Price\n bCost = 0;\n\n // Cost / sec to sell this material\n sCost: string | number = 0;\n\n // Flags to keep track of whether production and/or sale of this material is limited\n // [Whether production/sale is limited, limit amount]\n prdman: [boolean, number] = [false, 0]; // Production\n sllman: [boolean, string | number] = [false, 0]; // Sale\n\n // Flags that signal whether automatic sale pricing through Market TA is enabled\n marketTa1 = false;\n marketTa2 = false;\n marketTa2Price = 0;\n\n // Determines the maximum amount of this material that can be sold in one market cycle\n maxsll = 0;\n\n constructor(params: IConstructorParams = {}) {\n if (params.name) {\n this.name = params.name;\n }\n this.init();\n }\n\n getMarkupLimit(): number {\n return this.qlt / this.mku;\n }\n\n init(): void {\n switch (this.name) {\n case \"Water\":\n this.dmd = 75;\n this.dmdR = [65, 85];\n this.cmp = 50;\n this.cmpR = [40, 60];\n this.bCost = 1500;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Energy\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 2000;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Food\":\n this.dmd = 80;\n this.dmdR = [70, 90];\n this.cmp = 60;\n this.cmpR = [35, 85];\n this.bCost = 5000;\n this.mv = 1;\n this.mku = 3;\n break;\n case \"Plants\":\n this.dmd = 70;\n this.dmdR = [20, 90];\n this.cmp = 50;\n this.cmpR = [30, 70];\n this.bCost = 3000;\n this.mv = 0.6;\n this.mku = 3.75;\n break;\n case \"Metal\":\n this.dmd = 80;\n this.dmdR = [75, 85];\n this.cmp = 70;\n this.cmpR = [60, 80];\n this.bCost = 2650;\n this.mv = 1;\n this.mku = 6;\n break;\n case \"Hardware\":\n this.dmd = 85;\n this.dmdR = [80, 90];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 8e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"Chemicals\":\n this.dmd = 55;\n this.dmdR = [40, 70];\n this.cmp = 60;\n this.cmpR = [40, 80];\n this.bCost = 9e3;\n this.mv = 1.2;\n this.mku = 2;\n break;\n case \"Real Estate\":\n this.dmd = 50;\n this.dmdR = [5, 99];\n this.cmp = 50;\n this.cmpR = [25, 75];\n this.bCost = 80e3;\n this.mv = 1.5; //Less mv bc its processed twice\n this.mku = 1.5;\n break;\n case \"Drugs\":\n this.dmd = 60;\n this.dmdR = [45, 75];\n this.cmp = 70;\n this.cmpR = [40, 99];\n this.bCost = 40e3;\n this.mv = 1.6;\n this.mku = 1;\n break;\n case \"Robots\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 75e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"AI Cores\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 15e3;\n this.mv = 0.8; //Less mv bc its processed twice\n this.mku = 0.5;\n break;\n case \"Scientific Research\":\n case \"InitName\":\n break;\n default:\n console.error(`Invalid material type in init(): ${this.name}`);\n break;\n }\n }\n\n // Process change in demand, competition, and buy cost of this material\n processMarket(): void {\n // The price will change in accordance with demand and competition.\n // e.g. If demand goes up, then so does price. If competition goes up, price goes down\n const priceVolatility: number = (Math.random() * this.mv) / 300;\n const priceChange: number = 1 + priceVolatility;\n\n //This 1st random check determines whether competition increases or decreases\n const compVolatility: number = (Math.random() * this.mv) / 100;\n const compChange: number = 1 + compVolatility;\n if (Math.random() < 0.5) {\n this.cmp *= compChange;\n if (this.cmp > this.cmpR[1]) {\n this.cmp = this.cmpR[1];\n }\n this.bCost *= 1 / priceChange; // Competition increases, so price goes down\n } else {\n this.cmp *= 1 / compChange;\n if (this.cmp < this.cmpR[0]) {\n this.cmp = this.cmpR[0];\n }\n this.bCost *= priceChange; // Competition decreases, so price goes up\n }\n\n // This 2nd random check determines whether demand increases or decreases\n const dmdVolatility: number = (Math.random() * this.mv) / 100;\n const dmdChange: number = 1 + dmdVolatility;\n if (Math.random() < 0.5) {\n this.dmd *= dmdChange;\n if (this.dmd > this.dmdR[1]) {\n this.dmd = this.dmdR[1];\n }\n this.bCost *= priceChange; // Demand increases, so price goes up\n } else {\n this.dmd *= 1 / dmdChange;\n if (this.dmd < this.dmdR[0]) {\n this.dmd = this.dmdR[0];\n }\n this.bCost *= 1 / priceChange;\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Material\", this);\n }\n\n // Initiatizes a Material object from a JSON save state.\n static fromJSON(value: IReviverValue): Material {\n return Generic_fromJSON(Material, value.data);\n }\n}\n\nReviver.constructors.Material = Material;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { GangMember } from \"../GangMember\";\nimport { GangMemberTask } from \"../GangMemberTask\";\n\nexport interface FormulaGang {\n respect: number;\n territory: number;\n wantedLevel: number;\n}\n\nexport function calculateWantedPenalty(gang: FormulaGang): number {\n return gang.respect / (gang.respect + gang.wantedLevel);\n}\n\nexport function calculateRespectGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseRespect === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 4 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.respect) / 100);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n return Math.pow(11 * task.baseRespect * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateWantedLevelGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseWanted === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 3.5 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.wanted) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n if (task.baseWanted < 0) {\n return 0.4 * task.baseWanted * statWeight * territoryMult;\n }\n const calc = (7 * task.baseWanted) / Math.pow(3 * statWeight * territoryMult, 0.8);\n\n // Put an arbitrary cap on this to prevent wanted level from rising too fast if the\n // denominator is very small. Might want to rethink formula later\n return Math.min(100, calc);\n}\n\nexport function calculateMoneyGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseMoney === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n\n statWeight -= 3.2 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.money) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n return Math.pow(5 * task.baseMoney * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateAscensionPointsGain(exp: number): number {\n return Math.max(exp - 1000, 0);\n}\n\nexport function calculateAscensionMult(points: number): number {\n return Math.max(Math.pow(points / 2000, 0.5), 1);\n}\n","import { Paper } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { use } from \"../../ui/Context\";\nimport { ProgressBar } from \"../../ui/React/Progress\";\n\ninterface IProps {\n millis: number;\n onExpire: () => void;\n noPaper?: boolean;\n}\n\nexport function GameTimer(props: IProps): React.ReactElement {\n const player = use.Player();\n const [v, setV] = useState(100);\n const totalMillis = (player.hasAugmentation(AugmentationNames.WKSharmonizer, true) ? 1.3 : 1) * props.millis;\n\n const tick = 200;\n useEffect(() => {\n const intervalId = setInterval(() => {\n setV((old) => {\n if (old <= 0) props.onExpire();\n return old - (tick / totalMillis) * 100;\n });\n }, tick);\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n\n // https://stackoverflow.com/questions/55593367/disable-material-uis-linearprogress-animation\n // TODO(hydroflame): there's like a bug where it triggers the end before the\n // bar physically reaches the end\n return props.noPaper ? (\n \n ) : (\n \n \n \n );\n}\n","import { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IBladeburner } from \"./IBladeburner\";\nimport { IActionIdentifier } from \"./IActionIdentifier\";\nimport { ActionIdentifier } from \"./ActionIdentifier\";\nimport { ActionTypes } from \"./data/ActionTypes\";\nimport { Growths } from \"./data/Growths\";\nimport { BlackOperations } from \"./BlackOperations\";\nimport { BlackOperation } from \"./BlackOperation\";\nimport { Operation } from \"./Operation\";\nimport { Contract } from \"./Contract\";\nimport { GeneralActions } from \"./GeneralActions\";\nimport { formatNumber } from \"../utils/StringHelperFunctions\";\nimport { Skills } from \"./Skills\";\nimport { Skill } from \"./Skill\";\nimport { City } from \"./City\";\nimport { IAction } from \"./IAction\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { createTaskTracker, ITaskTracker } from \"../PersonObjects/ITaskTracker\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { IRouter } from \"../ui/Router\";\nimport { ConsoleHelpText } from \"./data/Help\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { addOffset } from \"../utils/helpers/addOffset\";\nimport { Faction } from \"../Faction/Faction\";\nimport { Factions, factionExists } from \"../Faction/Factions\";\nimport { calculateHospitalizationCost } from \"../Hospital/Hospital\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { getTimestamp } from \"../utils/helpers/getTimestamp\";\nimport { joinFaction } from \"../Faction/FactionHelpers\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { KEY } from \"../utils/helpers/keyCodes\";\n\ninterface BlackOpsAttempt {\n error?: string;\n isAvailable?: boolean;\n action?: BlackOperation;\n}\n\nexport class Bladeburner implements IBladeburner {\n numHosp = 0;\n moneyLost = 0;\n rank = 0;\n maxRank = 0;\n\n skillPoints = 0;\n totalSkillPoints = 0;\n\n teamSize = 0;\n sleeveSize = 0;\n teamLost = 0;\n hpLost = 0;\n\n storedCycles = 0;\n\n randomEventCounter: number = getRandomInt(240, 600);\n\n actionTimeToComplete = 0;\n actionTimeCurrent = 0;\n actionTimeOverflow = 0;\n\n action: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n\n cities: Record = {};\n city: string = BladeburnerConstants.CityNames[2];\n skills: Record = {};\n skillMultipliers: Record = {};\n staminaBonus = 0;\n maxStamina = 0;\n stamina = 0;\n contracts: Record = {};\n operations: Record = {};\n blackops: Record = {};\n logging = {\n general: true,\n contracts: true,\n ops: true,\n blackops: true,\n events: true,\n };\n automateEnabled = false;\n automateActionHigh: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshHigh = 0;\n automateActionLow: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshLow = 0;\n consoleHistory: string[] = [];\n consoleLogs: string[] = [\"Bladeburner Console\", \"Type 'help' to see console commands\"];\n\n constructor(player?: IPlayer) {\n for (let i = 0; i < BladeburnerConstants.CityNames.length; ++i) {\n this.cities[BladeburnerConstants.CityNames[i]] = new City(BladeburnerConstants.CityNames[i]);\n }\n\n this.updateSkillMultipliers(); // Calls resetSkillMultipliers()\n\n // Max Stamina is based on stats and Bladeburner-specific bonuses\n if (player) this.calculateMaxStamina(player);\n this.stamina = this.maxStamina;\n this.create();\n }\n\n getCurrentCity(): City {\n const city = this.cities[this.city];\n if (!(city instanceof City)) {\n throw new Error(\"Bladeburner.getCurrentCity() did not properly return a City object\");\n }\n return city;\n }\n\n calculateStaminaPenalty(): number {\n return Math.min(1, this.stamina / (0.5 * this.maxStamina));\n }\n\n canAttemptBlackOp(actionId: IActionIdentifier): BlackOpsAttempt {\n // Safety measure - don't repeat BlackOps that are already done\n if (this.blackops[actionId.name] != null) {\n return { error: \"Tried to start a Black Operation that had already been completed\" };\n }\n\n const action = this.getActionObject(actionId);\n if (!(action instanceof BlackOperation)) throw new Error(`Action should be BlackOperation but isn't`);\n if (action == null) throw new Error(\"Failed to get BlackOperation object for: \" + actionId.name);\n\n if (action.reqdRank > this.rank) {\n return { error: \"Tried to start a Black Operation without the rank requirement\" };\n }\n\n // Can't start a BlackOp if you haven't done the one before it\n const blackops = [];\n for (const nm of Object.keys(BlackOperations)) {\n if (BlackOperations.hasOwnProperty(nm)) {\n blackops.push(nm);\n }\n }\n blackops.sort(function (a, b) {\n return BlackOperations[a].reqdRank - BlackOperations[b].reqdRank; // Sort black ops in intended order\n });\n\n const i = blackops.indexOf(actionId.name);\n if (i === -1) {\n return { error: `Invalid Black Op: '${name}'` };\n }\n\n if (i > 0 && this.blackops[blackops[i - 1]] == null) {\n return { error: `Preceding Black Op must be completed before starting '${actionId.name}'.` };\n }\n\n return { isAvailable: true, action };\n }\n\n startAction(person: IPerson, actionId: IActionIdentifier): void {\n if (actionId == null) return;\n this.action = actionId;\n this.actionTimeCurrent = 0;\n switch (actionId.type) {\n case ActionTypes[\"Idle\"]:\n this.actionTimeToComplete = 0;\n break;\n case ActionTypes[\"Contract\"]:\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Contract Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n case ActionTypes[\"Operation\"]: {\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n if (actionId.name === \"Raid\" && this.getCurrentCity().comms === 0) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const testBlackOp = this.canAttemptBlackOp(actionId);\n if (!testBlackOp.isAvailable) {\n this.resetAction();\n this.log(`Error: ${testBlackOp.error}`);\n break;\n }\n if (testBlackOp.action === undefined) {\n throw new Error(\"action should not be null\");\n }\n this.actionTimeToComplete = testBlackOp.action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]:\n this.actionTimeToComplete = this.getRecruitmentTime(person);\n break;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]:\n this.actionTimeToComplete = 30;\n break;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n this.actionTimeToComplete = 60;\n break;\n default:\n throw new Error(\"Invalid Action Type in startAction(Bladeburner,player, ): \" + actionId.type);\n }\n }\n\n upgradeSkill(skill: Skill, count = 1): void {\n // This does NOT handle deduction of skill points\n const skillName = skill.name;\n if (this.skills[skillName]) {\n this.skills[skillName] += count;\n } else {\n this.skills[skillName] = count;\n }\n if (isNaN(this.skills[skillName]) || this.skills[skillName] < 0) {\n throw new Error(\"Level of Skill \" + skillName + \" is invalid: \" + this.skills[skillName]);\n }\n this.updateSkillMultipliers();\n }\n\n executeConsoleCommands(player: IPlayer, commands: string): void {\n try {\n // Console History\n if (this.consoleHistory[this.consoleHistory.length - 1] != commands) {\n this.consoleHistory.push(commands);\n if (this.consoleHistory.length > 50) {\n this.consoleHistory.splice(0, 1);\n }\n }\n\n const arrayOfCommands = commands.split(\";\");\n for (let i = 0; i < arrayOfCommands.length; ++i) {\n this.executeConsoleCommand(player, arrayOfCommands[i]);\n }\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n postToConsole(input: string, saveToLogs = true): void {\n const MaxConsoleEntries = 100;\n if (saveToLogs) {\n this.consoleLogs.push(input);\n if (this.consoleLogs.length > MaxConsoleEntries) {\n this.consoleLogs.shift();\n }\n }\n }\n\n log(input: string): void {\n // Adds a timestamp and then just calls postToConsole\n this.postToConsole(`[${getTimestamp()}] ${input}`);\n }\n\n resetAction(): void {\n this.action = new ActionIdentifier({ type: ActionTypes.Idle });\n this.actionTimeCurrent = 0;\n this.actionTimeToComplete = 0;\n }\n\n clearConsole(): void {\n this.consoleLogs.length = 0;\n }\n\n prestige(): void {\n this.resetAction();\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n }\n }\n\n storeCycles(numCycles = 0): void {\n this.storedCycles += numCycles;\n }\n\n // working on\n getActionIdFromTypeAndName(type = \"\", name = \"\"): IActionIdentifier | null {\n if (type === \"\" || name === \"\") {\n return null;\n }\n const action = new ActionIdentifier();\n const convertedType = type.toLowerCase().trim();\n const convertedName = name.toLowerCase().trim();\n switch (convertedType) {\n case \"contract\":\n case \"contracts\":\n case \"contr\":\n action.type = ActionTypes[\"Contract\"];\n if (this.contracts.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"operation\":\n case \"operations\":\n case \"op\":\n case \"ops\":\n action.type = ActionTypes[\"Operation\"];\n if (this.operations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"blackoperation\":\n case \"black operation\":\n case \"black operations\":\n case \"black op\":\n case \"black ops\":\n case \"blackop\":\n case \"blackops\":\n action.type = ActionTypes[\"BlackOp\"];\n if (BlackOperations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"general\":\n case \"general action\":\n case \"gen\":\n break;\n default:\n return null;\n }\n\n if (convertedType.startsWith(\"gen\")) {\n switch (convertedName) {\n case \"training\":\n action.type = ActionTypes[\"Training\"];\n action.name = \"Training\";\n break;\n case \"recruitment\":\n case \"recruit\":\n action.type = ActionTypes[\"Recruitment\"];\n action.name = \"Recruitment\";\n break;\n case \"field analysis\":\n case \"fieldanalysis\":\n action.type = ActionTypes[\"Field Analysis\"];\n action.name = \"Field Analysis\";\n break;\n case \"diplomacy\":\n action.type = ActionTypes[\"Diplomacy\"];\n action.name = \"Diplomacy\";\n break;\n case \"hyperbolic regeneration chamber\":\n action.type = ActionTypes[\"Hyperbolic Regeneration Chamber\"];\n action.name = \"Hyperbolic Regeneration Chamber\";\n break;\n case \"incite violence\":\n action.type = ActionTypes[\"Incite Violence\"];\n action.name = \"Incite Violence\";\n break;\n default:\n return null;\n }\n return action;\n }\n\n return null;\n }\n\n executeStartConsoleCommand(player: IPlayer, args: string[]): void {\n if (args.length !== 3) {\n this.postToConsole(\"Invalid usage of 'start' console command: start [type] [name]\");\n this.postToConsole(\"Use 'help start' for more info\");\n return;\n }\n const name = args[2];\n switch (args[1].toLowerCase()) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[name] != null) {\n this.action.type = ActionTypes[name];\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + args[2]);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[name] != null) {\n this.action.type = ActionTypes.Contract;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + args[2]);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[name] != null) {\n this.action.type = ActionTypes.Operation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + args[2]);\n }\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n if (BlackOperations[name] != null) {\n this.action.type = ActionTypes.BlackOperation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid BlackOp name specified: \" + args[2]);\n }\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[1]);\n this.postToConsole(\"Examples of valid action/event identifiers are: [general, contract, op, blackop]\");\n break;\n }\n }\n\n executeSkillConsoleCommand(args: string[]): void {\n switch (args.length) {\n case 1: {\n // Display Skill Help Command\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n case 2: {\n if (args[1].toLowerCase() === \"list\") {\n // List all skills and their level\n this.postToConsole(\"Skills: \");\n const skillNames = Object.keys(Skills);\n for (let i = 0; i < skillNames.length; ++i) {\n const skill = Skills[skillNames[i]];\n let level = 0;\n if (this.skills[skill.name] != null) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level, 0));\n }\n this.postToConsole(\" \");\n this.postToConsole(\"Effects: \");\n const multKeys = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multKeys.length; ++i) {\n const mult = this.skillMultipliers[multKeys[i]];\n if (mult && mult !== 1) {\n const mults = formatNumber(mult, 3);\n switch (multKeys[i]) {\n case \"successChanceAll\":\n this.postToConsole(\"Total Success Chance: x\" + mults);\n break;\n case \"successChanceStealth\":\n this.postToConsole(\"Stealth Success Chance: x\" + mults);\n break;\n case \"successChanceKill\":\n this.postToConsole(\"Retirement Success Chance: x\" + mults);\n break;\n case \"successChanceContract\":\n this.postToConsole(\"Contract Success Chance: x\" + mults);\n break;\n case \"successChanceOperation\":\n this.postToConsole(\"Operation Success Chance: x\" + mults);\n break;\n case \"successChanceEstimate\":\n this.postToConsole(\"Synthoid Data Estimate: x\" + mults);\n break;\n case \"actionTime\":\n this.postToConsole(\"Action Time: x\" + mults);\n break;\n case \"effHack\":\n this.postToConsole(\"Hacking Skill: x\" + mults);\n break;\n case \"effStr\":\n this.postToConsole(\"Strength: x\" + mults);\n break;\n case \"effDef\":\n this.postToConsole(\"Defense: x\" + mults);\n break;\n case \"effDex\":\n this.postToConsole(\"Dexterity: x\" + mults);\n break;\n case \"effAgi\":\n this.postToConsole(\"Agility: x\" + mults);\n break;\n case \"effCha\":\n this.postToConsole(\"Charisma: x\" + mults);\n break;\n case \"effInt\":\n this.postToConsole(\"Intelligence: x\" + mults);\n break;\n case \"stamina\":\n this.postToConsole(\"Stamina: x\" + mults);\n break;\n default:\n console.warn(`Unrecognized SkillMult Key: ${multKeys[i]}`);\n break;\n }\n }\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n case 3: {\n const skillName = args[2];\n const skill = Skills[skillName];\n if (skill == null || !(skill instanceof Skill)) {\n this.postToConsole(\"Invalid skill name (Note that it is case-sensitive): \" + skillName);\n break;\n }\n if (args[1].toLowerCase() === \"list\") {\n let level = 0;\n if (this.skills[skill.name] !== undefined) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level));\n } else if (args[1].toLowerCase() === \"level\") {\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const pointCost = skill.calculateCost(currentLevel);\n if (skill.maxLvl !== 0 && currentLevel >= skill.maxLvl) {\n this.postToConsole(`This skill ${skill.name} is already at max level (${currentLevel}/${skill.maxLvl}).`);\n } else if (this.skillPoints >= pointCost) {\n this.skillPoints -= pointCost;\n this.upgradeSkill(skill);\n this.log(skill.name + \" upgraded to Level \" + this.skills[skillName]);\n } else {\n this.postToConsole(\n \"You do not have enough Skill Points to upgrade this. You need \" + formatNumber(pointCost, 0),\n );\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n default: {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n }\n }\n\n executeLogConsoleCommand(args: string[]): void {\n if (args.length < 3) {\n this.postToConsole(\"Invalid usage of log command: log [enable/disable] [action/event]\");\n this.postToConsole(\"Use 'help log' for more details and examples\");\n return;\n }\n\n let flag = true;\n if (args[1].toLowerCase().includes(\"d\")) {\n flag = false;\n } // d for disable\n\n switch (args[2].toLowerCase()) {\n case \"general\":\n case \"gen\":\n this.logging.general = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for general actions\");\n break;\n case \"contract\":\n case \"contracts\":\n this.logging.contracts = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Contracts\");\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n this.logging.ops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Operations\");\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n this.logging.blackops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for BlackOps\");\n break;\n case \"event\":\n case \"events\":\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for events\");\n break;\n case \"all\":\n this.logging.general = flag;\n this.logging.contracts = flag;\n this.logging.ops = flag;\n this.logging.blackops = flag;\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for everything\");\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[2]);\n this.postToConsole(\n \"Examples of valid action/event identifiers are: [general, contracts, ops, blackops, events]\",\n );\n break;\n }\n }\n\n executeHelpConsoleCommand(args: string[]): void {\n if (args.length === 1) {\n for (const line of ConsoleHelpText.helpList) {\n this.postToConsole(line);\n }\n } else {\n for (let i = 1; i < args.length; ++i) {\n if (!(args[i] in ConsoleHelpText)) continue;\n const helpText = ConsoleHelpText[args[i]];\n for (const line of helpText) {\n this.postToConsole(line);\n }\n }\n }\n }\n\n executeAutomateConsoleCommand(args: string[]): void {\n if (args.length !== 2 && args.length !== 4) {\n this.postToConsole(\n \"Invalid use of 'automate' command: automate [var] [val] [hi/low]. Use 'help automate' for more info\",\n );\n return;\n }\n\n // Enable/Disable\n if (args.length === 2) {\n const flag = args[1];\n if (flag.toLowerCase() === \"status\") {\n this.postToConsole(\"Automation: \" + (this.automateEnabled ? \"enabled\" : \"disabled\"));\n this.postToConsole(\n \"When your stamina drops to \" +\n formatNumber(this.automateThreshLow, 0) +\n \", you will automatically switch to \" +\n this.automateActionLow.name +\n \". When your stamina recovers to \" +\n formatNumber(this.automateThreshHigh, 0) +\n \", you will automatically \" +\n \"switch to \" +\n this.automateActionHigh.name +\n \".\",\n );\n } else if (flag.toLowerCase().includes(\"en\")) {\n if (\n !(this.automateActionLow instanceof ActionIdentifier) ||\n !(this.automateActionHigh instanceof ActionIdentifier)\n ) {\n return this.log(\"Failed to enable automation. Actions were not set\");\n }\n this.automateEnabled = true;\n this.log(\"Bladeburner automation enabled\");\n } else if (flag.toLowerCase().includes(\"d\")) {\n this.automateEnabled = false;\n this.log(\"Bladeburner automation disabled\");\n } else {\n this.log(\"Invalid argument for 'automate' console command: \" + args[1]);\n }\n return;\n }\n\n // Set variables\n if (args.length === 4) {\n const variable = args[1].toLowerCase(); // allows Action Type to be with or without capitalisation.\n const val = args[2];\n\n let highLow = false; // True for high, false for low\n if (args[3].toLowerCase().includes(\"hi\")) {\n highLow = true;\n }\n\n switch (variable) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes[val],\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + val);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Contract,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + val);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Operation,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + val);\n }\n break;\n case \"stamina\":\n if (isNaN(parseFloat(val))) {\n this.postToConsole(\"Invalid value specified for stamina threshold (must be numeric): \" + val);\n } else {\n if (highLow) {\n this.automateThreshHigh = Number(val);\n } else {\n this.automateThreshLow = Number(val);\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") stamina threshold set to \" + val);\n }\n break;\n default:\n break;\n }\n\n return;\n }\n }\n\n parseCommandArguments(command: string): string[] {\n /**\n * Returns an array with command and its arguments in each index.\n * e.g. skill \"blade's intuition\" foo returns [skill, blade's intuition, foo]\n * The input to the fn will be trimmed and will have all whitespace replaced w/ a single space\n */\n const args = [];\n let start = 0;\n let i = 0;\n while (i < command.length) {\n const c = command.charAt(i);\n if (c === '\"' || c === \"'\") {\n // Double quotes or Single quotes\n const endQuote = command.indexOf(c, i + 1);\n if (endQuote !== -1 && (endQuote === command.length - 1 || command.charAt(endQuote + 1) === KEY.SPACE)) {\n args.push(command.substr(i + 1, endQuote - i - 1));\n if (endQuote === command.length - 1) {\n start = i = endQuote + 1;\n } else {\n start = i = endQuote + 2; // Skip the space\n }\n continue;\n }\n } else if (c === KEY.SPACE) {\n args.push(command.substr(start, i - start));\n start = i + 1;\n }\n ++i;\n }\n if (start !== i) {\n args.push(command.substr(start, i - start));\n }\n return args;\n }\n\n executeConsoleCommand(player: IPlayer, command: string): void {\n command = command.trim();\n command = command.replace(/\\s\\s+/g, \" \"); // Replace all whitespace w/ a single space\n\n const args = this.parseCommandArguments(command);\n if (args.length <= 0) return; // Log an error?\n\n switch (args[0].toLowerCase()) {\n case \"automate\":\n this.executeAutomateConsoleCommand(args);\n break;\n case \"clear\":\n case \"cls\":\n this.clearConsole();\n break;\n case \"help\":\n this.executeHelpConsoleCommand(args);\n break;\n case \"log\":\n this.executeLogConsoleCommand(args);\n break;\n case \"skill\":\n this.executeSkillConsoleCommand(args);\n break;\n case \"start\":\n this.executeStartConsoleCommand(player, args);\n break;\n case \"stop\":\n this.resetAction();\n break;\n default:\n this.postToConsole(\"Invalid console command\");\n break;\n }\n }\n\n triggerMigration(sourceCityName: string): void {\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n const sourceCity = this.cities[sourceCityName];\n if (destCity == null || sourceCity == null) {\n throw new Error(\"Failed to find City with name: \" + destCityName);\n }\n const rand = Math.random();\n let percentage = getRandomInt(3, 15) / 100;\n\n if (rand < 0.05 && sourceCity.comms > 0) {\n // 5% chance for community migration\n percentage *= getRandomInt(2, 4); // Migration increases population change\n --sourceCity.comms;\n ++destCity.comms;\n }\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n }\n\n triggerPotentialMigration(sourceCityName: string, chance: number): void {\n if (chance == null || isNaN(chance)) {\n console.error(\"Invalid 'chance' parameter passed into Bladeburner.triggerPotentialMigration()\");\n }\n if (chance > 1) {\n chance /= 100;\n }\n if (Math.random() < chance) {\n this.triggerMigration(sourceCityName);\n }\n }\n\n randomEvent(): void {\n const chance = Math.random();\n\n // Choose random source/destination city for events\n const sourceCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n const sourceCity = this.cities[sourceCityName];\n if (!(sourceCity instanceof City)) {\n throw new Error(\"sourceCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n\n if (!(sourceCity instanceof City) || !(destCity instanceof City)) {\n throw new Error(\"sourceCity/destCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n if (chance <= 0.05) {\n // New Synthoid Community, 5%\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else if (chance <= 0.1) {\n // Synthoid Community Migration, 5%\n if (sourceCity.comms <= 0) {\n // If no comms in source city, then instead trigger a new Synthoid community event\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else {\n --sourceCity.comms;\n ++destCity.comms;\n\n // Change pop\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a Synthoid community migrated from \" + sourceCityName + \" to some other city\",\n );\n }\n }\n } else if (chance <= 0.3) {\n // New Synthoids (non community), 20%\n const percentage = getRandomInt(8, 24) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n } else if (chance <= 0.5) {\n // Synthoid migration (non community) 20%\n this.triggerMigration(sourceCityName);\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a large number of Synthoids migrated from \" +\n sourceCityName +\n \" to some other city\",\n );\n }\n } else if (chance <= 0.7) {\n // Synthoid Riots (+chaos), 20%\n sourceCity.chaos += 1;\n sourceCity.chaos *= 1 + getRandomInt(5, 20) / 100;\n if (this.logging.events) {\n this.log(\"Tensions between Synthoids and humans lead to riots in \" + sourceCityName + \"! Chaos increased\");\n }\n } else if (chance <= 0.9) {\n // Less Synthoids, 20%\n const percentage = getRandomInt(8, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n }\n // 10% chance of nothing happening\n }\n\n /**\n * Return stat to be gained from Contracts, Operations, and Black Operations\n * @param action(Action obj) - Derived action class\n * @param success(bool) - Whether action was successful\n */\n getActionStats(action: IAction, success: boolean): ITaskTracker {\n const difficulty = action.getDifficulty();\n\n /**\n * Gain multiplier based on difficulty. If it changes then the\n * same variable calculated in completeAction() needs to change too\n */\n const difficultyMult =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n const time = this.actionTimeToComplete;\n const successMult = success ? 1 : 0.5;\n\n const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult;\n const unweightedIntGain = time * BladeburnerConstants.BaseIntGain * successMult * difficultyMult;\n const skillMult = this.skillMultipliers.expGain;\n\n return {\n hack: unweightedGain * action.weights.hack * skillMult,\n str: unweightedGain * action.weights.str * skillMult,\n def: unweightedGain * action.weights.def * skillMult,\n dex: unweightedGain * action.weights.dex * skillMult,\n agi: unweightedGain * action.weights.agi * skillMult,\n cha: unweightedGain * action.weights.cha * skillMult,\n int: unweightedIntGain * action.weights.int * skillMult,\n money: 0,\n };\n }\n\n getDiplomacyEffectiveness(person: IPerson): number {\n // Returns a decimal by which the city's chaos level should be multiplied (e.g. 0.98)\n const CharismaLinearFactor = 1e3;\n const CharismaExponentialFactor = 0.045;\n\n const charismaEff = Math.pow(person.charisma, CharismaExponentialFactor) + person.charisma / CharismaLinearFactor;\n return (100 - charismaEff) / 100;\n }\n\n getRecruitmentSuccessChance(person: IPerson): number {\n return Math.pow(person.charisma, 0.45) / (this.teamSize - this.sleeveSize + 1);\n }\n\n getRecruitmentTime(person: IPerson): number {\n const effCharisma = person.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) => x.bbAction == \"Support main sleeve\");\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].max_hp);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.ops && losses > 0) {\n this.log(\"Lost \" + formatNumber(losses, 0) + \" team members during this \" + action.name);\n }\n }\n\n const city = this.getCurrentCity();\n switch (action.name) {\n case \"Investigation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.4 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.1);\n }\n break;\n case \"Undercover Operation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.8 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.15);\n }\n break;\n case \"Sting Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.1, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByCount(0.1);\n break;\n case \"Raid\":\n if (success) {\n city.changePopulationByPercentage(-1, {\n changeEstEqually: true,\n nonZero: true,\n });\n --city.comms;\n } else {\n const change = getRandomInt(-10, -5) / 10;\n city.changePopulationByPercentage(change, {\n nonZero: true,\n changeEstEqually: false,\n });\n }\n city.changeChaosByPercentage(getRandomInt(1, 5));\n break;\n case \"Stealth Retirement Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.5, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByPercentage(getRandomInt(-3, -1));\n break;\n case \"Assassination\":\n if (success) {\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n }\n city.changeChaosByPercentage(getRandomInt(-5, 5));\n break;\n default:\n throw new Error(\"Invalid Action name in completeOperation: \" + this.action.name);\n }\n }\n\n getActionObject(actionId: IActionIdentifier): IAction | null {\n /**\n * Given an ActionIdentifier object, returns the corresponding\n * GeneralAction, Contract, Operation, or BlackOperation object\n */\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n return this.contracts[actionId.name];\n case ActionTypes[\"Operation\"]:\n return this.operations[actionId.name];\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return BlackOperations[actionId.name];\n case ActionTypes[\"Training\"]:\n return GeneralActions[\"Training\"];\n case ActionTypes[\"Field Analysis\"]:\n return GeneralActions[\"Field Analysis\"];\n case ActionTypes[\"Recruitment\"]:\n return GeneralActions[\"Recruitment\"];\n case ActionTypes[\"Diplomacy\"]:\n return GeneralActions[\"Diplomacy\"];\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n return GeneralActions[\"Hyperbolic Regeneration Chamber\"];\n case ActionTypes[\"Incite Violence\"]:\n return GeneralActions[\"Incite Violence\"];\n default:\n return null;\n }\n }\n\n completeContract(success: boolean, actionIdent: IActionIdentifier): void {\n if (actionIdent.type !== ActionTypes.Contract) {\n throw new Error(\"completeContract() called even though current action is not a Contract\");\n }\n const city = this.getCurrentCity();\n if (success) {\n switch (actionIdent.name) {\n case \"Tracking\":\n // Increase estimate accuracy by a relatively small amount\n city.improvePopulationEstimateByCount(getRandomInt(100, 1e3));\n break;\n case \"Bounty Hunter\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.02);\n break;\n case \"Retirement\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.04);\n break;\n default:\n throw new Error(\"Invalid Action name in completeContract: \" + actionIdent.name);\n }\n }\n }\n\n completeAction(player: IPlayer, person: IPerson, actionIdent: IActionIdentifier, isPlayer = true): ITaskTracker {\n let retValue = createTaskTracker();\n switch (actionIdent.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]: {\n try {\n const isOperation = actionIdent.type === ActionTypes[\"Operation\"];\n const action = this.getActionObject(actionIdent);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n const rewardMultiplier = Math.pow(action.rewardFac, action.level - 1);\n\n if (isPlayer) {\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n }\n\n // Process Contract/Operation success/failure\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, true);\n ++action.successes;\n --action.count;\n\n // Earn money for contracts\n let moneyGain = 0;\n if (!isOperation) {\n moneyGain = BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * this.skillMultipliers.money;\n retValue.money = moneyGain;\n }\n\n if (isOperation) {\n action.setMaxLevel(BladeburnerConstants.OperationSuccessesPerLevel);\n } else {\n action.setMaxLevel(BladeburnerConstants.ContractSuccessesPerLevel);\n }\n if (action.rankGain) {\n const gain = addOffset(action.rankGain * rewardMultiplier * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, gain);\n if (isOperation && this.logging.ops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank\",\n );\n } else if (!isOperation && this.logging.contracts) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" contract successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank and \" +\n numeralWrapper.formatMoney(moneyGain),\n );\n }\n }\n isOperation ? this.completeOperation(true, player) : this.completeContract(true, actionIdent);\n } else {\n retValue = this.getActionStats(action, false);\n ++action.failures;\n let loss = 0,\n damage = 0;\n if (action.rankLoss) {\n loss = addOffset(action.rankLoss * rewardMultiplier, 10);\n this.changeRank(person, -1 * loss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n this.hpLost += damage;\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n let logLossText = \"\";\n if (loss > 0) {\n logLossText += \"Lost \" + formatNumber(loss, 3) + \" rank. \";\n }\n if (damage > 0) {\n logLossText += \"Took \" + formatNumber(damage, 0) + \" damage.\";\n }\n if (isOperation && this.logging.ops) {\n this.log(`${person.whoAmI()}: ` + action.name + \" failed! \" + logLossText);\n } else if (!isOperation && this.logging.contracts) {\n this.log(`${person.whoAmI()}: ` + action.name + \" contract failed! \" + logLossText);\n }\n isOperation ? this.completeOperation(false, player) : this.completeContract(false, actionIdent);\n }\n if (action.autoLevel) {\n action.level = action.maxLevel;\n } // Autolevel\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const action = this.getActionObject(actionIdent);\n if (action == null || !(action instanceof BlackOperation)) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n\n // Team loss variables\n const teamCount = action.teamCount;\n let teamLossMax;\n\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, true);\n action.count = 0;\n this.blackops[action.name] = true;\n let rankGain = 0;\n if (action.rankGain) {\n rankGain = addOffset(action.rankGain * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, rankGain);\n }\n teamLossMax = Math.ceil(teamCount / 2);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` + action.name + \" successful! Gained \" + formatNumber(rankGain, 1) + \" rank\",\n );\n }\n } else {\n retValue = this.getActionStats(action, false);\n let rankLoss = 0;\n let damage = 0;\n if (action.rankLoss) {\n rankLoss = addOffset(action.rankLoss, 10);\n this.changeRank(person, -1 * rankLoss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n teamLossMax = Math.floor(teamCount);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" failed! Lost \" +\n formatNumber(rankLoss, 1) +\n \" rank and took \" +\n formatNumber(damage, 0) +\n \" damage\",\n );\n }\n }\n\n this.resetAction(); // Stop regardless of success or fail\n\n // Calculate team lossses\n if (teamCount >= 1) {\n const losses = getRandomInt(1, teamLossMax);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => x.bbAction == \"Support main sleeve\");\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].max_hp);\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(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.hacking, 0.3) +\n 0.04 * Math.pow(person.intelligence, 0.9) +\n 0.02 * Math.pow(person.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) => s.bbAction === \"Infiltrate synthoids\").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.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.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, WorkStats } from \"./WorkStats\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\nimport {\n getFactionFieldWorkRepGain,\n getFactionSecurityWorkRepGain,\n getHackingWorkRepGain,\n} from \"../PersonObjects/formulas/reputation\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { calculateFactionExp } 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 const faction = this.getFaction();\n const repFormulas = {\n [FactionWorkType.HACKING]: getHackingWorkRepGain,\n [FactionWorkType.FIELD]: getFactionFieldWorkRepGain,\n [FactionWorkType.SECURITY]: getFactionSecurityWorkRepGain,\n };\n const rep = repFormulas[this.factionWorkType](player, faction);\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return rep * focusBonus;\n }\n\n getExpRates(player: IPlayer): WorkStats {\n return calculateFactionExp(player, this.factionWorkType);\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, 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 { 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 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 short: RamCostConstants.ScriptBuySellStockRamCost,\n sellShort: RamCostConstants.ScriptBuySellStockRamCost,\n placeOrder: RamCostConstants.ScriptBuySellStockRamCost,\n cancelOrder: RamCostConstants.ScriptBuySellStockRamCost,\n getOrders: RamCostConstants.ScriptBuySellStockRamCost,\n getVolatility: RamCostConstants.ScriptBuySellStockRamCost,\n getForecast: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketData: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketDataTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseWseAccount: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n};\n\n// Singularity API\nconst singularity = {\n universityCourse: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n gymWorkout: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n travelToCity: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n goToLocation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseTor: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n purchaseProgram: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n getCurrentServer: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n connect: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n manualHack: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n installBackdoor: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n getDarkwebProgramCost: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n getDarkwebPrograms: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n hospitalize: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n isBusy: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n stopAction: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 2),\n upgradeHomeRam: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n upgradeHomeCores: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getUpgradeHomeRamCost: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 2),\n getUpgradeHomeCoresCost: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 2),\n workForCompany: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n applyToCompany: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n quitJob: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getCompanyRep: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getCompanyFavor: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getCompanyFavorGain: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 4),\n checkFactionInvitations: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n joinFaction: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n workForFaction: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getFactionRep: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getFactionFavor: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getFactionFavorGain: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 4),\n donateToFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n createProgram: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n commitCrime: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getCrimeChance: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getCrimeStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getOwnedAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getOwnedSourceFiles: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationsFromFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationCost: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrereq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationBasePrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationRepReq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseAugmentation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n softReset: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n installAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n isFocused: SF4Cost(0.1),\n setFocus: SF4Cost(0.1),\n b1tflum3: SF4Cost(16),\n destroyW0r1dD43m0n: SF4Cost(32),\n getCurrentWork: SF4Cost(0.5),\n};\n\n// Gang API\nconst gang = {\n createGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n inGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getMemberNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getOtherGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getMemberInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n canRecruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n recruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getTaskNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getTaskStats: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n setMemberTask: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getEquipmentCost: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentType: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentStats: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n purchaseEquipment: RamCostConstants.ScriptGangApiBaseRamCost,\n ascendMember: RamCostConstants.ScriptGangApiBaseRamCost,\n getAscensionResult: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n setTerritoryWarfare: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getChanceToWinClash: RamCostConstants.ScriptGangApiBaseRamCost,\n getBonusTime: 0,\n};\n\n// Bladeburner API\nconst bladeburner = {\n getContractNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getOperationNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getGeneralActionNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getSkillNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n startAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n stopBladeburnerAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getCurrentAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 4,\n getActionTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionEstimatedSuccessChance: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionRepGain: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCountRemaining: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionMaxLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillPoints: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillUpgradeCost: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n upgradeSkill: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityEstimatedPopulation: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityCommunities: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityChaos: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n switchCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getStamina: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerFaction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerDivision: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getBonusTime: 0,\n};\n\nconst infiltration = {\n getPossibleLocations: RamCostConstants.ScriptInfiltrationGetLocations,\n getInfiltration: RamCostConstants.ScriptInfiltrationGetInfiltrations,\n};\n\n// Coding Contract API\nconst codingcontract = {\n attempt: RamCostConstants.ScriptCodingContractBaseRamCost,\n getContractType: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getData: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getDescription: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getNumTriesRemaining: RamCostConstants.ScriptCodingContractBaseRamCost / 5,\n};\n\n// Duplicate Sleeve API\nconst sleeve = {\n getNumSleeves: RamCostConstants.ScriptSleeveBaseRamCost,\n setToShockRecovery: RamCostConstants.ScriptSleeveBaseRamCost,\n setToSynchronize: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCommitCrime: RamCostConstants.ScriptSleeveBaseRamCost,\n setToUniversityCourse: RamCostConstants.ScriptSleeveBaseRamCost,\n travel: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCompanyWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToFactionWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToGymWorkout: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveStats: RamCostConstants.ScriptSleeveBaseRamCost,\n getTask: RamCostConstants.ScriptSleeveBaseRamCost,\n getInformation: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentations: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleevePurchasableAugs: RamCostConstants.ScriptSleeveBaseRamCost,\n purchaseSleeveAug: RamCostConstants.ScriptSleeveBaseRamCost,\n setToBladeburnerAction: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationPrice: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationRepReq: RamCostConstants.ScriptSleeveBaseRamCost,\n};\n\n// Stanek API\nconst stanek = {\n giftWidth: RamCostConstants.ScriptStanekWidth,\n giftHeight: RamCostConstants.ScriptStanekHeight,\n chargeFragment: RamCostConstants.ScriptStanekCharge,\n fragmentDefinitions: RamCostConstants.ScriptStanekFragmentDefinitions,\n activeFragments: RamCostConstants.ScriptStanekPlacedFragments,\n clearGift: RamCostConstants.ScriptStanekClear,\n canPlaceFragment: RamCostConstants.ScriptStanekCanPlace,\n placeFragment: RamCostConstants.ScriptStanekPlace,\n getFragment: RamCostConstants.ScriptStanekFragmentAt,\n removeFragment: RamCostConstants.ScriptStanekDeleteAt,\n acceptGift: RamCostConstants.ScriptStanekAcceptGift,\n};\n\n// UI API\nconst ui = {\n getTheme: 0,\n setTheme: 0,\n resetTheme: 0,\n getStyles: 0,\n setStyles: 0,\n resetStyles: 0,\n getGameInfo: 0,\n clearTerminal: 0,\n};\n\n// Grafting API\nconst grafting = {\n getAugmentationGraftPrice: 3.75,\n getAugmentationGraftTime: 3.75,\n getGraftableAugmentations: 5,\n graftAugmentation: 7.5,\n};\n\nconst corporation = {\n createCorporation: 0,\n hasUnlockUpgrade: 0,\n getUnlockUpgradeCost: 0,\n getUpgradeLevel: 0,\n getUpgradeLevelCost: 0,\n getExpandIndustryCost: 0,\n getExpandCityCost: 0,\n getInvestmentOffer: 0,\n acceptInvestmentOffer: 0,\n goPublic: 0,\n bribe: 0,\n getCorporation: 0,\n getDivision: 0,\n expandIndustry: 0,\n expandCity: 0,\n unlockUpgrade: 0,\n levelUpgrade: 0,\n issueDividends: 0,\n buyBackShares: 0,\n sellShares: 0,\n getBonusTime: 0,\n sellMaterial: 0,\n sellProduct: 0,\n discontinueProduct: 0,\n setSmartSupply: 0,\n setSmartSupplyUseLeftovers: 0,\n buyMaterial: 0,\n bulkPurchase: 0,\n getWarehouse: 0,\n getProduct: 0,\n getMaterial: 0,\n setMaterialMarketTA1: 0,\n setMaterialMarketTA2: 0,\n setProductMarketTA1: 0,\n setProductMarketTA2: 0,\n exportMaterial: 0,\n cancelExportMaterial: 0,\n purchaseWarehouse: 0,\n upgradeWarehouse: 0,\n makeProduct: 0,\n limitMaterialProduction: 0,\n limitProductProduction: 0,\n getPurchaseWarehouseCost: 0,\n getUpgradeWarehouseCost: 0,\n hasWarehouse: 0,\n assignJob: 0,\n hireEmployee: 0,\n upgradeOfficeSize: 0,\n throwParty: 0,\n buyCoffee: 0,\n hireAdVert: 0,\n research: 0,\n getOffice: 0,\n getEmployee: 0,\n getHireAdVertCost: 0,\n getHireAdVertCount: 0,\n getResearchCost: 0,\n hasResearched: 0,\n setAutoJobAssignment: 0,\n getOfficeSizeUpgradeCost: 0,\n};\n\nconst SourceRamCosts = {\n args: undefined as unknown as never[], // special use case\n enums: undefined as unknown as never,\n corporation,\n hacknet,\n stock,\n singularity,\n ...singularity, // singularity is in namespace & toplevel\n gang,\n bladeburner,\n infiltration,\n codingcontract,\n sleeve,\n stanek,\n ui,\n grafting,\n\n sprintf: 0,\n vsprintf: 0,\n scan: RamCostConstants.ScriptScanRamCost,\n hack: RamCostConstants.ScriptHackRamCost,\n hackAnalyzeThreads: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyze: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeSecurity: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeChance: RamCostConstants.ScriptHackAnalyzeRamCost,\n sleep: 0,\n asleep: 0,\n share: 2.4,\n getSharePower: 0.2,\n grow: RamCostConstants.ScriptGrowRamCost,\n growthAnalyze: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n growthAnalyzeSecurity: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n weaken: RamCostConstants.ScriptWeakenRamCost,\n weakenAnalyze: RamCostConstants.ScriptWeakenAnalyzeRamCost,\n print: 0,\n printf: 0,\n tprint: 0,\n tprintf: 0,\n clearLog: 0,\n disableLog: 0,\n enableLog: 0,\n isLogEnabled: 0,\n getScriptLogs: 0,\n nuke: RamCostConstants.ScriptPortProgramRamCost,\n brutessh: RamCostConstants.ScriptPortProgramRamCost,\n ftpcrack: RamCostConstants.ScriptPortProgramRamCost,\n relaysmtp: RamCostConstants.ScriptPortProgramRamCost,\n httpworm: RamCostConstants.ScriptPortProgramRamCost,\n sqlinject: RamCostConstants.ScriptPortProgramRamCost,\n run: RamCostConstants.ScriptRunRamCost,\n exec: RamCostConstants.ScriptExecRamCost,\n spawn: RamCostConstants.ScriptSpawnRamCost,\n kill: RamCostConstants.ScriptKillRamCost,\n killall: RamCostConstants.ScriptKillRamCost,\n exit: 0,\n atExit: 0,\n scp: RamCostConstants.ScriptScpRamCost,\n ls: RamCostConstants.ScriptScanRamCost,\n ps: RamCostConstants.ScriptScanRamCost,\n getRecentScripts: RamCostConstants.ScriptRecentScriptsRamCost,\n hasRootAccess: RamCostConstants.ScriptHasRootAccessRamCost,\n getHostname: RamCostConstants.ScriptGetHostnameRamCost,\n getHackingLevel: RamCostConstants.ScriptGetHackingLevelRamCost,\n getHackingMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getHacknetMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getBitNodeMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getServer: RamCostConstants.ScriptGetMultipliersRamCost / 2,\n getServerMoneyAvailable: RamCostConstants.ScriptGetServerRamCost,\n getServerSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerBaseSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMinSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerRequiredHackingLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxMoney: RamCostConstants.ScriptGetServerRamCost,\n getServerGrowth: RamCostConstants.ScriptGetServerRamCost,\n getServerNumPortsRequired: RamCostConstants.ScriptGetServerRamCost,\n getServerRam: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxRam: RamCostConstants.ScriptGetServerMaxRam,\n getServerUsedRam: RamCostConstants.ScriptGetServerUsedRam,\n serverExists: RamCostConstants.ScriptGetServerRamCost,\n fileExists: RamCostConstants.ScriptFileExistsRamCost,\n isRunning: RamCostConstants.ScriptIsRunningRamCost,\n getPurchasedServerLimit: RamCostConstants.ScriptGetPurchasedServerLimit,\n getPurchasedServerMaxRam: RamCostConstants.ScriptGetPurchasedServerMaxRam,\n getPurchasedServerCost: RamCostConstants.ScriptGetPurchaseServerRamCost,\n purchaseServer: RamCostConstants.ScriptPurchaseServerRamCost,\n deleteServer: RamCostConstants.ScriptPurchaseServerRamCost,\n getPurchasedServers: RamCostConstants.ScriptPurchaseServerRamCost,\n write: 0,\n tryWritePort: 0,\n read: 0,\n peek: 0,\n clear: 0,\n writePort: 0,\n readPort: 0,\n getPortHandle: 0,\n rm: RamCostConstants.ScriptReadWriteRamCost,\n scriptRunning: RamCostConstants.ScriptArbScriptRamCost,\n scriptKill: RamCostConstants.ScriptArbScriptRamCost,\n getScriptName: 0,\n getScriptRam: RamCostConstants.ScriptGetScriptRamCost,\n getHackTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getGrowTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getWeakenTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getTotalScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getTotalScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getRunningScript: RamCostConstants.ScriptGetRunningScriptRamCost,\n nFormat: 0,\n tFormat: 0,\n getTimeSinceLastAug: RamCostConstants.ScriptGetHackTimeRamCost,\n prompt: 0,\n wget: 0,\n getFavorToDonate: RamCostConstants.ScriptGetFavorToDonate,\n getPlayer: RamCostConstants.ScriptSingularityFn1RamCost / 4,\n mv: 0,\n tail: 0,\n toast: 0,\n closeTail: 0,\n clearPort: 0,\n openDevMenu: 0,\n alert: 0,\n flags: 0,\n exploit: 0,\n bypass: 0,\n alterReality: 0,\n rainbow: 0,\n heart: {\n // Easter egg function\n break: 0,\n },\n\n formulas: {\n reputation: {\n calculateFavorToRep: 0,\n calculateRepToFavor: 0,\n repFromDonation: 0,\n },\n skills: {\n calculateSkill: 0,\n calculateExp: 0,\n },\n hacking: {\n hackChance: 0,\n hackExp: 0,\n hackPercent: 0,\n growPercent: 0,\n hackTime: 0,\n growTime: 0,\n weakenTime: 0,\n },\n hacknetNodes: {\n moneyGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n hacknetNodeCost: 0,\n constants: 0,\n },\n hacknetServers: {\n hashGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n cacheUpgradeCost: 0,\n hashUpgradeCost: 0,\n hacknetServerCost: 0,\n constants: 0,\n },\n gang: {\n wantedPenalty: 0,\n respectGain: 0,\n wantedLevelGain: 0,\n moneyGain: 0,\n ascensionPointsGain: 0,\n ascensionMultiplier: 0,\n },\n },\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","// Interface that defines a generic object used to track experience/money\n// earnings for tasks\nexport interface ITaskTracker {\n hack: number;\n str: number;\n def: number;\n dex: number;\n agi: number;\n cha: number;\n int: number;\n money: number;\n}\n\nexport function createTaskTracker(): ITaskTracker {\n return {\n hack: 0,\n str: 0,\n def: 0,\n dex: 0,\n agi: 0,\n cha: 0,\n int: 0,\n money: 0,\n };\n}\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\n\nexport function getStockMarket4SDataCost(): number {\n return CONSTANTS.MarketData4SCost * BitNodeMultipliers.FourSigmaMarketDataCost;\n}\n\nexport function getStockMarket4STixApiCost(): number {\n return CONSTANTS.MarketDataTixApi4SCost * BitNodeMultipliers.FourSigmaMarketDataApiCost;\n}\n\nexport function getStockMarketWseCost(): number {\n return CONSTANTS.WSEAccountCost;\n}\n\nexport function getStockMarketTixApiCost(): number {\n return CONSTANTS.TIXAPICost;\n}\n","import { TextField, StandardTextFieldProps } from \"@mui/material\";\nimport React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\n\ninterface IProps extends Omit {\n onChange: (v: number) => void;\n}\n\nexport function NumberInput(props: IProps): React.ReactElement {\n const textProps = {\n ...props,\n onChange: (event: React.ChangeEvent) => {\n const amt = numeralWrapper.parseMoney(event.target.value);\n if (event.target.value === \"\" || isNaN(amt)) props.onChange(NaN);\n else props.onChange(amt);\n },\n };\n return ;\n}\n","import { AugmentationStats } from \"../ScriptEditor/NetscriptDefinitions\";\n\nexport interface Multipliers {\n hacking_chance: number;\n hacking_speed: number;\n hacking_money: number;\n hacking_grow: number;\n hacking: number;\n hacking_exp: number;\n strength: number;\n strength_exp: number;\n defense: number;\n defense_exp: number;\n dexterity: number;\n dexterity_exp: number;\n agility: number;\n agility_exp: number;\n charisma: number;\n charisma_exp: number;\n hacknet_node_money: number;\n hacknet_node_purchase_cost: number;\n hacknet_node_ram_cost: number;\n hacknet_node_core_cost: number;\n hacknet_node_level_cost: number;\n company_rep: number;\n faction_rep: number;\n work_money: number;\n crime_success: number;\n crime_money: number;\n bladeburner_max_stamina: number;\n bladeburner_stamina_gain: number;\n bladeburner_analysis: number;\n bladeburner_success_chance: number;\n}\n\nexport const defaultMultipliers = (): Multipliers => {\n return {\n hacking_chance: 1,\n hacking_speed: 1,\n hacking_money: 1,\n hacking_grow: 1,\n hacking: 1,\n hacking_exp: 1,\n strength: 1,\n strength_exp: 1,\n defense: 1,\n defense_exp: 1,\n dexterity: 1,\n dexterity_exp: 1,\n agility: 1,\n agility_exp: 1,\n charisma: 1,\n charisma_exp: 1,\n hacknet_node_money: 1,\n hacknet_node_purchase_cost: 1,\n hacknet_node_ram_cost: 1,\n hacknet_node_core_cost: 1,\n hacknet_node_level_cost: 1,\n company_rep: 1,\n faction_rep: 1,\n work_money: 1,\n crime_success: 1,\n crime_money: 1,\n bladeburner_max_stamina: 1,\n bladeburner_stamina_gain: 1,\n bladeburner_analysis: 1,\n bladeburner_success_chance: 1,\n };\n};\n\nexport const mergeMultipliers = (m0: Multipliers, m1: AugmentationStats): Multipliers => {\n return {\n hacking_chance: m0.hacking_chance * (m1.hacking_chance ?? 1),\n hacking_speed: m0.hacking_speed * (m1.hacking_speed ?? 1),\n hacking_money: m0.hacking_money * (m1.hacking_money ?? 1),\n hacking_grow: m0.hacking_grow * (m1.hacking_grow ?? 1),\n hacking: m0.hacking * (m1.hacking ?? 1),\n hacking_exp: m0.hacking_exp * (m1.hacking_exp ?? 1),\n strength: m0.strength * (m1.strength ?? 1),\n strength_exp: m0.strength_exp * (m1.strength_exp ?? 1),\n defense: m0.defense * (m1.defense ?? 1),\n defense_exp: m0.defense_exp * (m1.defense_exp ?? 1),\n dexterity: m0.dexterity * (m1.dexterity ?? 1),\n dexterity_exp: m0.dexterity_exp * (m1.dexterity_exp ?? 1),\n agility: m0.agility * (m1.agility ?? 1),\n agility_exp: m0.agility_exp * (m1.agility_exp ?? 1),\n charisma: m0.charisma * (m1.charisma ?? 1),\n charisma_exp: m0.charisma_exp * (m1.charisma_exp ?? 1),\n hacknet_node_money: m0.hacknet_node_money * (m1.hacknet_node_money ?? 1),\n hacknet_node_purchase_cost: m0.hacknet_node_purchase_cost * (m1.hacknet_node_purchase_cost ?? 1),\n hacknet_node_ram_cost: m0.hacknet_node_ram_cost * (m1.hacknet_node_ram_cost ?? 1),\n hacknet_node_core_cost: m0.hacknet_node_core_cost * (m1.hacknet_node_core_cost ?? 1),\n hacknet_node_level_cost: m0.hacknet_node_level_cost * (m1.hacknet_node_level_cost ?? 1),\n company_rep: m0.company_rep * (m1.company_rep ?? 1),\n faction_rep: m0.faction_rep * (m1.faction_rep ?? 1),\n work_money: m0.work_money * (m1.work_money ?? 1),\n crime_success: m0.crime_success * (m1.crime_success ?? 1),\n crime_money: m0.crime_money * (m1.crime_money ?? 1),\n bladeburner_max_stamina: m0.bladeburner_max_stamina * (m1.bladeburner_max_stamina ?? 1),\n bladeburner_stamina_gain: m0.bladeburner_stamina_gain * (m1.bladeburner_stamina_gain ?? 1),\n bladeburner_analysis: m0.bladeburner_analysis * (m1.bladeburner_analysis ?? 1),\n bladeburner_success_chance: m0.bladeburner_success_chance * (m1.bladeburner_success_chance ?? 1),\n };\n};\n","/**\n * Map of all Hash Upgrades\n * Key = Hash name, Value = HashUpgrade object\n */\nimport { HashUpgrade, IConstructorParams } from \"./HashUpgrade\";\nimport { HashUpgradesMetadata } from \"./data/HashUpgradesMetadata\";\nimport { IMap } from \"../types\";\n\nexport const HashUpgrades: IMap = {};\n\nfunction createHashUpgrade(p: IConstructorParams): void {\n HashUpgrades[p.name] = new HashUpgrade(p);\n}\n\nfor (const metadata of HashUpgradesMetadata) {\n createHashUpgrade(metadata);\n}\n","import { gangMemberTasksMetadata } from \"./data/tasks\";\nimport { GangMemberTask } from \"./GangMemberTask\";\n\nexport const GangMemberTasks: {\n [key: string]: GangMemberTask;\n} = {};\n\n(function () {\n gangMemberTasksMetadata.forEach((e) => {\n GangMemberTasks[e.name] = new GangMemberTask(e.name, e.desc, e.isHacking, e.isCombat, e.params);\n });\n})();\n","import { Material } from \"./Material\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { IMap } from \"../types\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\n\ninterface IConstructorParams {\n corp?: ICorporation;\n industry?: IIndustry;\n loc?: string;\n size?: number;\n}\n\nexport class Warehouse {\n // Warehouse's level, which affects its maximum size\n level = 1;\n\n // City that this Warehouse is in\n loc: string;\n\n // Map of Materials held by this Warehouse\n materials: IMap;\n\n // Maximum amount warehouse can hold\n size: number;\n\n // Amount of space currently used by warehouse\n sizeUsed = 0;\n\n // Whether Smart Supply is enabled for this Industry (the Industry that this Warehouse is for)\n smartSupplyEnabled = false;\n\n // Decide if smart supply should use the materials already in the warehouse when deciding on the amount to buy.\n smartSupplyUseLeftovers: { [key: string]: boolean | undefined } = {};\n\n // Stores the amount of product to be produced. Used for Smart Supply unlock.\n // The production tracked by smart supply is always based on the previous cycle,\n // so it will always trail the \"true\" production by 1 cycle\n smartSupplyStore = 0;\n\n constructor(params: IConstructorParams = {}) {\n this.loc = params.loc ? params.loc : \"\";\n this.size = params.size ? params.size : 0;\n\n this.materials = {\n Water: new Material({ name: \"Water\" }),\n Energy: new Material({ name: \"Energy\" }),\n Food: new Material({ name: \"Food\" }),\n Plants: new Material({ name: \"Plants\" }),\n Metal: new Material({ name: \"Metal\" }),\n Hardware: new Material({ name: \"Hardware\" }),\n Chemicals: new Material({ name: \"Chemicals\" }),\n Drugs: new Material({ name: \"Drugs\" }),\n Robots: new Material({ name: \"Robots\" }),\n AICores: new Material({ name: \"AI Cores\" }),\n RealEstate: new Material({ name: \"Real Estate\" }),\n };\n\n this.smartSupplyUseLeftovers = {\n Water: true,\n Energy: true,\n Food: true,\n Plants: true,\n Metal: true,\n Hardware: true,\n Chemicals: true,\n Drugs: true,\n Robots: true,\n AICores: true,\n RealEstate: true,\n };\n\n if (params.corp && params.industry) {\n this.updateSize(params.corp, params.industry);\n }\n\n // Default smart supply to being enabled if the upgrade is unlocked\n if (params.corp?.unlockUpgrades[1]) {\n this.smartSupplyEnabled = true;\n }\n }\n\n // Re-calculate how much space is being used by this Warehouse\n updateMaterialSizeUsed(): void {\n this.sizeUsed = 0;\n for (const matName of Object.keys(this.materials)) {\n const mat = this.materials[matName];\n if (MaterialSizes.hasOwnProperty(matName)) {\n this.sizeUsed += mat.qty * MaterialSizes[matName];\n }\n }\n if (this.sizeUsed > this.size) {\n console.warn(\"Warehouse size used greater than capacity, something went wrong\");\n }\n }\n\n updateSize(corporation: ICorporation, industry: IIndustry): void {\n try {\n this.size = this.level * 100 * corporation.getStorageMultiplier() * industry.getStorageMultiplier();\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Warehouse\", this);\n }\n\n // Initiatizes a Warehouse object from a JSON save state.\n static fromJSON(value: IReviverValue): Warehouse {\n return Generic_fromJSON(Warehouse, value.data);\n }\n}\n\nReviver.constructors.Warehouse = Warehouse;\n","/**\n * Functions for buying/selling stocks. There are four functions total, two for\n * long positions and two for short positions.\n */\nimport { Stock } from \"./Stock\";\nimport {\n getBuyTransactionCost,\n getSellTransactionGain,\n processTransactionForecastMovement,\n} from \"./StockMarketHelpers\";\n\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { Player } from \"../Player\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nimport * as React from \"react\";\n\n/**\n * Each function takes an optional config object as its last argument\n */\ninterface IOptions {\n rerenderFn?: () => void;\n suppressDialog?: boolean;\n}\n\n/**\n * Attempt to buy a stock in the long position\n * @param {Stock} stock - Stock to buy\n * @param {number} shares - Number of shares to buy\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function buyStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.buyStock\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\"Failed to buy stock. This may be a bug, contact developer\");\n }\n\n return false;\n }\n\n // Does player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Long);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (workerScript) {\n workerScript.log(\n \"stock.buyStock\",\n () =>\n `You do not have enough money to purchase this position. You need ${numeralWrapper.formatMoney(totalPrice)}.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (workerScript) {\n workerScript.log(\n \"stock.buyStock\",\n () =>\n `Purchasing '${shares + stock.playerShares + stock.playerShortShares}' shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${numeralWrapper.formatShares(\n stock.maxShares,\n )} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShares * stock.playerAvgPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShares = Math.round(stock.playerShares + shares);\n stock.playerAvgPx = newTotal / stock.playerShares;\n processTransactionForecastMovement(stock, shares);\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt = `Bought ${numeralWrapper.formatShares(shares)} shares of ${\n stock.symbol\n } for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} in commission fees.`;\n workerScript.log(\"stock.buyStock\", () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Bought {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for . Paid{\" \"}\n in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the long position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * returns {boolean} - true if successfully sells given number of shares OR MAX owned, false otherwise\n */\nexport function sellStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Sanitize/Validate arguments\n if (stock == null || shares < 0 || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.sellStock\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShares) {\n shares = stock.playerShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const gains = getSellTransactionGain(stock, shares, PositionTypes.Long);\n if (gains == null) {\n return false;\n }\n let netProfit = gains - stock.playerAvgPx * shares;\n if (isNaN(netProfit)) {\n netProfit = 0;\n }\n Player.gainMoney(gains, \"stock\");\n if (workerScript) {\n workerScript.scriptRef.onlineMoneyMade += netProfit;\n Player.scriptProdSinceLastAug += netProfit;\n }\n\n stock.playerShares = Math.round(stock.playerShares - shares);\n if (stock.playerShares === 0) {\n stock.playerAvgPx = 0;\n }\n\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`;\n workerScript.log(\"stock.sellStock\", () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Sold {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{\" \"}\n .\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to buy a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to short\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function shortStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.short\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to initiate a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n return false;\n }\n\n // Does the player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Short);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (workerScript) {\n workerScript.log(\n \"stock.short\",\n () =>\n \"You do not have enough \" +\n \"money to purchase this short position. You need \" +\n numeralWrapper.formatMoney(totalPrice),\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this short position. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (workerScript) {\n workerScript.log(\n \"stock.short\",\n () =>\n `This '${shares + stock.playerShares + stock.playerShortShares}' short shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${stock.maxShares} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShortShares * stock.playerAvgShortPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShortShares = Math.round(stock.playerShortShares + shares);\n stock.playerAvgShortPx = newTotal / stock.playerShortShares;\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Bought a short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} ` +\n `for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} ` +\n `in commission fees.`;\n workerScript.log(\"stock.short\", () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Bought a short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for{\" \"}\n . Paid in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} true if successfully sells given amount OR max owned, false otherwise\n */\nexport function sellShort(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n if (stock == null || isNaN(shares) || shares < 0) {\n if (workerScript) {\n workerScript.log(\"stock.sellShort\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n \"Failed to sell a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShortShares) {\n shares = stock.playerShortShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const origCost = shares * stock.playerAvgShortPx;\n const totalGain = getSellTransactionGain(stock, shares, PositionTypes.Short);\n if (totalGain == null || isNaN(totalGain) || origCost == null) {\n if (workerScript) {\n workerScript.log(\n \"stock.sellShort\",\n () => `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n }\n\n return false;\n }\n let profit = totalGain - origCost;\n if (isNaN(profit)) {\n profit = 0;\n }\n Player.gainMoney(totalGain, \"stock\");\n if (workerScript) {\n workerScript.scriptRef.onlineMoneyMade += profit;\n Player.scriptProdSinceLastAug += profit;\n }\n\n stock.playerShortShares = Math.round(stock.playerShortShares - shares);\n if (stock.playerShortShares === 0) {\n stock.playerAvgShortPx = 0;\n }\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Sold your short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(totalGain)}`;\n workerScript.log(\"stock.sellShort\", () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Sold your short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions,\n you gained a total of \n >,\n );\n }\n\n return true;\n}\n","import React from \"react\";\nimport { TextFile } from \"../TextFile\";\nimport { Script } from \"../Script/Script\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"../ui/Router\";\nimport { Settings } from \"../Settings/Settings\";\nimport { formatTime } from \"../utils/helpers/formatTime\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport class Output {\n text: string;\n color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\";\n constructor(text: string, color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\") {\n if (Settings.TimestampsFormat) text = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + text;\n this.text = text;\n this.color = color;\n }\n}\n\nexport class RawOutput {\n raw: React.ReactNode;\n constructor(node: React.ReactNode) {\n if (Settings.TimestampsFormat)\n node = (\n <>\n [{formatTime(Settings.TimestampsFormat)}] {node}\n >\n );\n this.raw = node;\n }\n}\n\nexport class Link {\n hostname: string;\n dashes: string;\n constructor(dashes: string, hostname: string) {\n if (Settings.TimestampsFormat) dashes = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + dashes;\n this.hostname = hostname;\n this.dashes = dashes;\n }\n}\n\nexport class TTimer {\n time: number;\n timeLeft: number;\n action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\";\n server?: BaseServer;\n\n constructor(time: number, action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\", server?: BaseServer) {\n this.time = time;\n this.timeLeft = time;\n this.action = action;\n this.server = server;\n }\n}\n\nexport interface ITerminal {\n action: TTimer | null;\n\n commandHistory: string[];\n commandHistoryIndex: number;\n\n outputHistory: (Output | Link | RawOutput)[];\n\n // True if a Coding Contract prompt is opened\n contractOpen: boolean;\n\n // Full Path of current directory\n // Excludes the trailing forward slash\n currDir: string;\n\n print(s: string): void;\n printRaw(node: React.ReactNode): void;\n error(s: string): void;\n success(s: string): void;\n info(s: string): void;\n warn(s: string): void;\n\n clear(): void;\n startAnalyze(player: IPlayer): void;\n startBackdoor(player: IPlayer): void;\n startHack(player: IPlayer): void;\n startGrow(player: IPlayer): void;\n startWeaken(player: IPlayer): void;\n finishHack(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishGrow(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishWeaken(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishBackdoor(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAnalyze(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAction(router: IRouter, player: IPlayer, cancelled?: boolean): void;\n getFilepath(filename: string): string;\n getFile(player: IPlayer, filename: string): Script | TextFile | string | null;\n getScript(player: IPlayer, filename: string): Script | null;\n getTextFile(player: IPlayer, filename: string): TextFile | null;\n getLitFile(player: IPlayer, filename: string): string | null;\n cwd(): string;\n setcwd(dir: string): void;\n runContract(player: IPlayer, name: string): void;\n executeScanAnalyzeCommand(player: IPlayer, depth?: number, all?: boolean): void;\n connectToServer(player: IPlayer, server: string): void;\n executeCommand(router: IRouter, player: IPlayer, command: string): void;\n executeCommands(router: IRouter, player: IPlayer, commands: string): void;\n // If there was any changes, will return true, once.\n process(router: IRouter, player: IPlayer, cycles: number): void;\n prestige(): void;\n getProgressText(): string;\n}\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\ninterface ISkillParams {\n name: string;\n desc: string;\n\n baseCost?: number;\n costInc?: number;\n maxLvl?: number;\n\n successChanceAll?: number;\n successChanceStealth?: number;\n successChanceKill?: number;\n successChanceContract?: number;\n successChanceOperation?: number;\n successChanceEstimate?: number;\n\n actionTime?: number;\n\n effHack?: number;\n effStr?: number;\n effDef?: number;\n effDex?: number;\n effAgi?: number;\n effCha?: number;\n\n stamina?: number;\n money?: number;\n expGain?: number;\n}\n\nexport class Skill {\n name: string;\n desc: string;\n // Cost is in Skill Points\n baseCost = 1;\n // Additive cost increase per level\n costInc = 1;\n maxLvl = 0;\n\n /**\n * These benefits are additive. So total multiplier will be level (handled externally) times the\n * effects below\n */\n successChanceAll = 0;\n successChanceStealth = 0;\n successChanceKill = 0;\n successChanceContract = 0;\n successChanceOperation = 0;\n\n /**\n * This multiplier affects everything that increases synthoid population/community estimate\n * e.g. Field analysis, Investigation Op, Undercover Op\n */\n successChanceEstimate = 0;\n actionTime = 0;\n effHack = 0;\n effStr = 0;\n effDef = 0;\n effDex = 0;\n effAgi = 0;\n effCha = 0;\n stamina = 0;\n money = 0;\n expGain = 0;\n\n constructor(params: ISkillParams = { name: \"foo\", desc: \"foo\" }) {\n if (!params.name) {\n throw new Error(\"Failed to initialize Bladeburner Skill. No name was specified in ctor\");\n }\n if (!params.desc) {\n throw new Error(\"Failed to initialize Bladeburner Skills. No desc was specified in ctor\");\n }\n this.name = params.name;\n this.desc = params.desc;\n this.baseCost = params.baseCost ? params.baseCost : 1;\n this.costInc = params.costInc ? params.costInc : 1;\n\n if (params.maxLvl) {\n this.maxLvl = params.maxLvl;\n }\n\n if (params.successChanceAll) {\n this.successChanceAll = params.successChanceAll;\n }\n if (params.successChanceStealth) {\n this.successChanceStealth = params.successChanceStealth;\n }\n if (params.successChanceKill) {\n this.successChanceKill = params.successChanceKill;\n }\n if (params.successChanceContract) {\n this.successChanceContract = params.successChanceContract;\n }\n if (params.successChanceOperation) {\n this.successChanceOperation = params.successChanceOperation;\n }\n\n if (params.successChanceEstimate) {\n this.successChanceEstimate = params.successChanceEstimate;\n }\n\n if (params.actionTime) {\n this.actionTime = params.actionTime;\n }\n if (params.effHack) {\n this.effHack = params.effHack;\n }\n if (params.effStr) {\n this.effStr = params.effStr;\n }\n if (params.effDef) {\n this.effDef = params.effDef;\n }\n if (params.effDex) {\n this.effDex = params.effDex;\n }\n if (params.effAgi) {\n this.effAgi = params.effAgi;\n }\n if (params.effCha) {\n this.effCha = params.effCha;\n }\n\n if (params.stamina) {\n this.stamina = params.stamina;\n }\n if (params.money) {\n this.money = params.money;\n }\n if (params.expGain) {\n this.expGain = params.expGain;\n }\n }\n\n calculateCost(currentLevel: number, count = 1): number {\n //Recursive mode does not handle invalid inputs properly, but it should never\n //be possible for it to run with them. For the sake of not crashing the game,\n const recursiveMode = (currentLevel: number, count: number): number => {\n if (count <= 1) {\n return Math.floor((this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost);\n } else {\n const thisUpgrade = Math.floor(\n (this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost,\n );\n return this.calculateCost(currentLevel + 1, count - 1) + thisUpgrade;\n }\n };\n\n //Count must be a positive integer.\n if (count < 0 || count % 1 != 0) {\n throw new Error(`${count} is an invalid number of upgrades`);\n }\n //Use recursive mode if count is small\n if (count <= 100) {\n return recursiveMode(currentLevel, count);\n }\n //Use optimized mode if count is large\n else {\n //unFloored is roughly equivalent to\n //(this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost\n //being repeated for increasing currentLevel\n const preMult = (count * (2 * this.baseCost + this.costInc * (2 * currentLevel + count + 1))) / 2;\n const unFloored = preMult * BitNodeMultipliers.BladeburnerSkillCost - count / 2;\n return Math.floor(unFloored);\n }\n }\n\n getMultiplier(name: string): number {\n if (name === \"successChanceAll\") return this.successChanceAll;\n if (name === \"successChanceStealth\") return this.successChanceStealth;\n if (name === \"successChanceKill\") return this.successChanceKill;\n if (name === \"successChanceContract\") return this.successChanceContract;\n if (name === \"successChanceOperation\") return this.successChanceOperation;\n if (name === \"successChanceEstimate\") return this.successChanceEstimate;\n\n if (name === \"actionTime\") return this.actionTime;\n\n if (name === \"effHack\") return this.effHack;\n if (name === \"effStr\") return this.effStr;\n if (name === \"effDef\") return this.effDef;\n if (name === \"effDex\") return this.effDex;\n if (name === \"effAgi\") return this.effAgi;\n if (name === \"effCha\") return this.effCha;\n\n if (name === \"stamina\") return this.stamina;\n if (name === \"money\") return this.money;\n if (name === \"expGain\") return this.expGain;\n return 0;\n }\n}\n","import React from \"react\";\nimport { Modal } from \"./Modal\";\n\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface IProps {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n confirmationText: string | React.ReactNode;\n additionalButton?: React.ReactNode;\n}\n\nexport function ConfirmationModal(props: IProps): React.ReactElement {\n return (\n \n <>\n {props.confirmationText}\n \n {props.additionalButton && <>{props.additionalButton}>}\n >\n \n );\n}\n","/**\n * Represents the possible configuration values that can be provided when creating the progress bar text.\n */\ninterface IProgressBarConfiguration {\n /**\n * Current progress, taken as a decimal (i.e. '0.6' to represent '60%')\n */\n progress?: number;\n\n /**\n * Total number of ticks in progress bar. Preferably a factor of 100.\n */\n totalTicks?: number;\n}\n\n/**\n * Represents concrete configuration values when creating the progress bar text.\n */\ninterface IProgressBarConfigurationMaterialized extends IProgressBarConfiguration {\n progress: number;\n totalTicks: number;\n}\n\n/**\n * Creates a graphical \"progress bar\"\n * e.g.: [||||---------------]\n * @param params The configuration parameters for the progress bar\n */\nexport function createProgressBarText(params: IProgressBarConfiguration): string {\n // Default values\n const defaultParams: IProgressBarConfigurationMaterialized = {\n progress: 0,\n totalTicks: 20,\n };\n\n // tslint:disable-next-line:prefer-object-spread\n const derived: IProgressBarConfigurationMaterialized = Object.assign({}, defaultParams, params);\n // Ensure it is 0..1\n derived.progress = Math.max(Math.min(derived.progress, 1), 0);\n\n // This way there is always at least one bar filled in...\n const bars: number = Math.max(Math.floor(derived.progress / (1 / derived.totalTicks)), 1);\n const dashes: number = Math.max(derived.totalTicks - bars, 0);\n\n // String.prototype.repeat isn't completley supported, but good enough for our purposes\n return `[${\"|\".repeat(bars)}${\"-\".repeat(dashes)}]`;\n}\n","export function hash(): string {\n try {\n if (__COMMIT_HASH__) {\n return __COMMIT_HASH__;\n }\n } catch (err) {}\n return \"DEV\";\n}\n","import { 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 * Class representing a script file.\n *\n * This does NOT represent a script that is actively running and\n * being evaluated. See RunningScript for that\n */\nimport { calculateRamUsage, RamUsageEntry } from \"./RamCalculations\";\nimport { ScriptUrl } from \"./ScriptUrl\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { roundToTwo } from \"../utils/helpers/roundToTwo\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { ScriptModule } from \"./ScriptModule\";\n\nlet globalModuleSequenceNumber = 0;\n\ninterface ScriptReference {\n filename: string;\n server: string;\n}\n\nexport class Script {\n // Code for this script\n code = \"\";\n\n // Filename for the script file\n filename = \"\";\n\n // url of the script if any, only for NS2.\n url = \"\";\n\n // The dynamic module generated for this script when it is run.\n // This is only applicable for NetscriptJS\n module: Promise | null = null;\n\n // The timestamp when when the script was last updated.\n moduleSequenceNumber: number;\n\n // Only used with NS2 scripts; the list of dependency script filenames. This is constructed\n // whenever the script is first evaluated, and therefore may be out of date if the script\n // has been updated since it was last run.\n dependencies: ScriptUrl[] = [];\n dependents: ScriptReference[] = [];\n\n // Amount of RAM this Script requres to run\n ramUsage = 0;\n ramUsageEntries?: RamUsageEntry[];\n\n // hostname of server that this script is on.\n server = \"\";\n\n constructor(player: IPlayer | null = null, fn = \"\", code = \"\", server = \"\", otherScripts: Script[] = []) {\n this.filename = fn;\n this.code = code;\n this.ramUsage = 0;\n this.server = server; // hostname of server this script is on\n this.module = null;\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n if (this.code !== \"\" && player !== null) {\n this.updateRamUsage(player, otherScripts);\n }\n }\n\n /**\n * Download the script as a file\n */\n download(): void {\n const filename = this.filename;\n const file = new Blob([this.code], { type: \"text/plain\" });\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(function () {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n\n /**\n * Marks this script as having been updated. It will be recompiled next time something tries\n * to exec it.\n */\n markUpdated(): void {\n this.module = null;\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n }\n\n /**\n * Save a script from the script editor\n * @param {string} code - The new contents of the script\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n saveScript(player: IPlayer, filename: string, code: string, hostname: string, otherScripts: Script[]): void {\n // Update code and filename\n this.code = Script.formatCode(code);\n\n this.filename = filename;\n this.server = hostname;\n this.updateRamUsage(player, otherScripts);\n this.markUpdated();\n for (const dependent of this.dependents) {\n const [dependentScript] = otherScripts.filter(\n (s) => s.filename === dependent.filename && s.server == dependent.server,\n );\n if (dependentScript !== null) dependentScript.markUpdated();\n }\n }\n\n /**\n * Calculates and updates the script's RAM usage based on its code\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n async updateRamUsage(player: IPlayer, otherScripts: Script[]): Promise {\n const res = await calculateRamUsage(player, this.code, otherScripts);\n if (res.cost > 0) {\n this.ramUsage = roundToTwo(res.cost);\n this.ramUsageEntries = res.entries;\n }\n this.markUpdated();\n }\n\n imports(): string[] {\n return [];\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Script\", this);\n }\n\n // Initializes a Script Object from a JSON save state\n static fromJSON(value: IReviverValue): Script {\n const s = Generic_fromJSON(Script, value.data);\n // Force the url to blank from the save data. Urls are not valid outside the current browser page load.\n s.url = \"\";\n s.dependents = [];\n return s;\n }\n\n /**\n * Formats code: Removes the starting & trailing whitespace\n * @param {string} code - The code to format\n * @returns The formatted code\n */\n static formatCode(code: string): string {\n return code.replace(/^\\s+|\\s+$/g, \"\");\n }\n}\n\nReviver.constructors.Script = Script;\n","import { 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 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 \n \n \n HP \n \n \n \n {numeralWrapper.formatHp(player.hp)} / {numeralWrapper.formatHp(player.max_hp)}\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 {numeralWrapper.formatSkill(player.hacking)}\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 {numeralWrapper.formatSkill(player.strength)}\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 {numeralWrapper.formatSkill(player.defense)}\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 {numeralWrapper.formatSkill(player.dexterity)}\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 {numeralWrapper.formatSkill(player.agility)}\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 {numeralWrapper.formatSkill(player.charisma)}\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, WorkStats } from \"./WorkStats\";\nimport { Company } from \"../Company/Company\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\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 return calculateCompanyWorkStats(player, this.getCompany());\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, gains, cycles, \"work\");\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return false;\n }\n finish(): void {\n dialogBoxCreate(\n <>\n You finished working for {this.companyName}\n \n You have reputation with them.\n >,\n );\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CompanyWork {\n return Generic_fromJSON(CompanyWork, value.data);\n }\n}\n\nReviver.constructors.CompanyWork = CompanyWork;\n","/**\n * Does a shallow compare of two arrays to determine if they are equal.\n * @param a1 The first array\n * @param a2 The second array\n */\nexport function compareArrays(a1: T[], a2: T[]): boolean {\n if (a1.length !== a2.length) {\n return false;\n }\n\n for (let i = 0; i < a1.length; ++i) {\n const v1 = a1[i];\n const v2 = a2[i];\n if (Array.isArray(v1)) {\n // If the other element is not an array, then these cannot be equal\n if (!Array.isArray(v2)) {\n return false;\n }\n\n if (!compareArrays(v1, v2)) {\n return false;\n }\n } else if (v1 !== v2 && !(Number.isNaN(v1) && Number.isNaN(v2))) {\n // strict (in)equality considers NaN not equal to itself\n return false;\n }\n }\n\n return true;\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 { 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, ClassWork } from \"../ClassWork\";\nimport { WorkStats } from \"../WorkStats\";\nimport { Server } from \"../../Server/Server\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\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(player: IPlayer, work: ClassWork): WorkStats {\n //Find cost and exp gain per game cycle\n const hashManager = player.hashManager;\n const classs = Classes[work.classType];\n const location = Locations[work.location];\n\n const hashMult = work.isGym() ? hashManager.getTrainingMult() : 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 * player.mults.hacking_exp * BitNodeMultipliers.ClassGymExpGain,\n strExp: strExp * player.mults.strength_exp * BitNodeMultipliers.ClassGymExpGain,\n defExp: defExp * player.mults.defense_exp * BitNodeMultipliers.ClassGymExpGain,\n dexExp: dexExp * player.mults.dexterity_exp * BitNodeMultipliers.ClassGymExpGain,\n agiExp: agiExp * player.mults.agility_exp * BitNodeMultipliers.ClassGymExpGain,\n chaExp: chaExp * player.mults.charisma_exp * BitNodeMultipliers.ClassGymExpGain,\n intExp: 0,\n };\n}\n","/**\n * Sleeves are bodies that contain the player's cloned consciousness.\n * The player can use these bodies to perform different tasks synchronously.\n *\n * Each sleeve is its own individual, meaning it has its own stats/exp\n *\n * Sleeves are unlocked in BitNode-10.\n */\nimport { SleeveTaskType } from \"./SleeveTaskTypesEnum\";\n\nimport { IPlayer } from \"../IPlayer\";\nimport { Person } from \"../Person\";\nimport { ITaskTracker, createTaskTracker } from \"../ITaskTracker\";\n\nimport { Augmentation } from \"../../Augmentation/Augmentation\";\n\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\n\nimport { Crime } from \"../../Crime/Crime\";\nimport { Crimes } from \"../../Crime/Crimes\";\n\nimport { Companies } from \"../../Company/Companies\";\nimport { Company } from \"../../Company/Company\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport { CompanyPositions } from \"../../Company/CompanyPositions\";\n\nimport { CONSTANTS } from \"../../Constants\";\n\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\n\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../utils/JSONReviver\";\nimport { BladeburnerConstants } from \"../../Bladeburner/data/Constants\";\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { capitalizeFirstLetter, capitalizeEachWord } from \"../../utils/StringHelperFunctions\";\nimport { FactionWorkType } from \"../../Work/data/FactionWorkType\";\n\nexport class Sleeve extends Person {\n /**\n * Stores the name of the class that the player is currently taking\n */\n className = \"\";\n\n /**\n * Stores the type of crime the sleeve is currently attempting\n * Must match the name of a Crime object\n */\n crimeType = \"\";\n\n /**\n * Enum value for current task\n */\n currentTask: SleeveTaskType = SleeveTaskType.Idle;\n\n /**\n * Contains details about the sleeve's current task. The info stored\n * in this depends on the task type\n *\n * Faction/Company Work: Name of Faction/Company\n * Crime: Money earned if successful\n * Class/Gym: Name of university/gym\n * Bladeburner: success chance\n */\n currentTaskLocation = \"\";\n\n /**\n * Maximum amount of time (in milliseconds) that can be spent on current task.\n */\n currentTaskMaxTime = 0;\n\n /**\n * Milliseconds spent on current task\n */\n currentTaskTime = 0;\n\n /**\n * Keeps track of experience earned for other sleeves\n */\n earningsForSleeves: ITaskTracker = createTaskTracker();\n\n /**\n * Keeps track of experience + money earned for player\n */\n earningsForPlayer: ITaskTracker = createTaskTracker();\n\n /**\n * Keeps track of experienced earned in the current task/action\n */\n earningsForTask: ITaskTracker = createTaskTracker();\n\n /**\n * Keeps track of what type of work sleeve is doing for faction, if applicable\n */\n factionWorkType: FactionWorkType = FactionWorkType.HACKING;\n\n /**\n * Records experience gain rate for the current task\n */\n gainRatesForTask: ITaskTracker = createTaskTracker();\n\n /**\n * String that stores what stat the sleeve is training at the gym\n */\n gymStatType = \"\";\n\n /**\n * String that stores what stat the sleeve is training at the gym\n */\n bbAction = \"\";\n\n /**\n * String that stores what stat the sleeve is training at the gym\n */\n bbContract = \"\";\n\n /**\n * Keeps track of events/notifications for this sleeve\n */\n logs: string[] = [];\n\n /**\n * Clone retains 'memory' synchronization (and maybe exp?) upon prestige/installing Augs\n */\n memory = 1;\n\n /**\n * Sleeve shock. Number between 0 and 100\n * Trauma/shock that comes with being in a sleeve. Experience earned\n * is multipled by shock%. This gets applied before synchronization\n *\n * Reputation earned is also multiplied by shock%\n */\n shock = 1;\n\n /**\n * Stored number of game \"loop\" cycles\n */\n storedCycles = 0;\n\n /**\n * Synchronization. Number between 0 and 100\n * When experience is earned by sleeve, both the player and the sleeve get\n * sync% of the experience earned. Other sleeves get sync^2% of exp\n */\n sync = 1;\n\n constructor(p: IPlayer | null = null) {\n super();\n if (p != null) {\n this.shockRecovery(p);\n }\n }\n\n /**\n * Commit crimes\n */\n commitCrime(p: IPlayer, crimeKey: string): boolean {\n const crime: Crime | null = Crimes[crimeKey] || Object.values(Crimes).find((crime) => crime.name === crimeKey);\n if (!crime) {\n return false;\n }\n\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n this.gainRatesForTask.hack = crime.hacking_exp * this.mults.hacking_exp * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.str = crime.strength_exp * this.mults.strength_exp * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.def = crime.defense_exp * this.mults.defense_exp * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.dex = crime.dexterity_exp * this.mults.dexterity_exp * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.agi = crime.agility_exp * this.mults.agility_exp * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.cha = crime.charisma_exp * this.mults.charisma_exp * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.int = crime.intelligence_exp;\n this.gainRatesForTask.money = crime.money * this.mults.crime_money * BitNodeMultipliers.CrimeMoney;\n\n this.currentTaskLocation = String(this.gainRatesForTask.money);\n\n this.crimeType = crime.name;\n this.currentTaskMaxTime = crime.time;\n this.currentTask = SleeveTaskType.Crime;\n return true;\n }\n\n /**\n * Called to stop the current task\n */\n finishTask(p: IPlayer): ITaskTracker {\n let retValue: ITaskTracker = createTaskTracker(); // Amount of exp to be gained by other sleeves\n\n if (this.currentTask === SleeveTaskType.Crime) {\n // For crimes, all experience and money is gained at the end\n if (this.currentTaskTime >= this.currentTaskMaxTime) {\n const crime: Crime | undefined = Object.values(Crimes).find((crime) => crime.name === this.crimeType);\n if (!crime) {\n console.error(`Invalid data stored in sleeve.crimeType: ${this.crimeType}`);\n this.resetTaskStatus(p);\n return retValue;\n }\n if (Math.random() < crime.successRate(this)) {\n // Success\n const successGainRates: ITaskTracker = createTaskTracker();\n\n const keysForIteration: (keyof ITaskTracker)[] = Object.keys(successGainRates) as (keyof ITaskTracker)[];\n for (let i = 0; i < keysForIteration.length; ++i) {\n const key = keysForIteration[i];\n successGainRates[key] = this.gainRatesForTask[key] * 2;\n }\n retValue = this.gainExperience(p, successGainRates);\n this.gainMoney(p, this.gainRatesForTask);\n\n p.karma -= crime.karma * (this.sync / 100);\n } else {\n retValue = this.gainExperience(p, this.gainRatesForTask);\n }\n\n // Do not reset task to IDLE\n this.currentTaskTime = 0;\n return retValue;\n }\n } else if (this.currentTask === SleeveTaskType.Bladeburner) {\n if (this.currentTaskMaxTime === 0) {\n this.currentTaskTime = 0;\n return retValue;\n }\n // For bladeburner, all experience and money is gained at the end\n const bb = p.bladeburner;\n if (bb === null) {\n const errorLogText = `bladeburner is null`;\n console.error(`Function: sleeves.finishTask; Message: '${errorLogText}'`);\n this.resetTaskStatus(p);\n return retValue;\n }\n\n if (this.currentTaskTime >= this.currentTaskMaxTime) {\n if (this.bbAction === \"Infiltrate synthoids\") {\n bb.infiltrateSynthoidCommunities(p);\n this.currentTaskTime = 0;\n return retValue;\n }\n let type: string;\n let name: string;\n if (this.bbAction === \"Take on contracts\") {\n type = \"Contracts\";\n name = this.bbContract;\n } else {\n type = \"General\";\n name = this.bbAction;\n }\n\n const actionIdent = bb.getActionIdFromTypeAndName(type, name);\n if (actionIdent === null) {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n console.error(`Function: sleeves.finishTask; Message: '${errorLogText}'`);\n this.resetTaskStatus(p);\n return retValue;\n }\n\n const action = bb.getActionObject(actionIdent);\n if ((action?.count ?? 0) > 0) {\n const bbRetValue = bb.completeAction(p, this, actionIdent, false);\n if (bbRetValue) {\n retValue = this.gainExperience(p, bbRetValue);\n this.gainMoney(p, bbRetValue);\n\n // Do not reset task to IDLE\n this.currentTaskTime = 0;\n return retValue;\n }\n }\n }\n }\n\n this.resetTaskStatus(p);\n\n return retValue;\n }\n\n /**\n * Earn experience for any stats (supports multiple)\n * This function also handles experience propogating to Player and other sleeves\n */\n gainExperience(p: IPlayer, exp: ITaskTracker, numCycles = 1, fromOtherSleeve = false): ITaskTracker {\n // If the experience is coming from another sleeve, it is not multiplied by anything.\n // Also the player does not earn anything\n if (fromOtherSleeve) {\n if (exp.hack > 0) {\n this.hacking_exp += exp.hack;\n }\n\n if (exp.str > 0) {\n this.strength_exp += exp.str;\n }\n\n if (exp.def > 0) {\n this.defense_exp += exp.def;\n }\n\n if (exp.dex > 0) {\n this.dexterity_exp += exp.dex;\n }\n\n if (exp.agi > 0) {\n this.agility_exp += exp.agi;\n }\n\n if (exp.cha > 0) {\n this.charisma_exp += exp.cha;\n }\n\n return createTaskTracker();\n }\n\n // Experience is first multiplied by shock. Then 'synchronization'\n // is accounted for\n\n const multFac = (this.shock / 100) * (this.sync / 100) * numCycles;\n const pHackExp = exp.hack * multFac;\n const pStrExp = exp.str * multFac;\n const pDefExp = exp.def * multFac;\n const pDexExp = exp.dex * multFac;\n const pAgiExp = exp.agi * multFac;\n const pChaExp = exp.cha * multFac;\n const pIntExp = exp.int * multFac;\n\n // Experience is gained by both this sleeve and player\n if (pHackExp > 0) {\n this.gainHackingExp(pHackExp);\n p.gainHackingExp(pHackExp);\n this.earningsForPlayer.hack += pHackExp;\n this.earningsForTask.hack += pHackExp;\n }\n\n if (pStrExp > 0) {\n this.gainStrengthExp(pStrExp);\n p.gainStrengthExp(pStrExp);\n this.earningsForPlayer.str += pStrExp;\n this.earningsForTask.str += pStrExp;\n }\n\n if (pDefExp > 0) {\n this.gainDefenseExp(pDefExp);\n p.gainDefenseExp(pDefExp);\n this.earningsForPlayer.def += pDefExp;\n this.earningsForTask.def += pDefExp;\n }\n\n if (pDexExp > 0) {\n this.gainDexterityExp(pDexExp);\n p.gainDexterityExp(pDexExp);\n this.earningsForPlayer.dex += pDexExp;\n this.earningsForTask.dex += pDexExp;\n }\n\n if (pAgiExp > 0) {\n this.gainAgilityExp(pAgiExp);\n p.gainAgilityExp(pAgiExp);\n this.earningsForPlayer.agi += pAgiExp;\n this.earningsForTask.agi += pAgiExp;\n }\n\n if (pChaExp > 0) {\n this.gainCharismaExp(pChaExp);\n p.gainCharismaExp(pChaExp);\n this.earningsForPlayer.cha += pChaExp;\n this.earningsForTask.cha += pChaExp;\n }\n\n if (pIntExp > 0) {\n this.gainIntelligenceExp(pIntExp);\n p.gainIntelligenceExp(pIntExp);\n }\n\n // Record earnings for other sleeves\n this.earningsForSleeves.hack += pHackExp * (this.sync / 100);\n this.earningsForSleeves.str += pStrExp * (this.sync / 100);\n this.earningsForSleeves.def += pDefExp * (this.sync / 100);\n this.earningsForSleeves.dex += pDexExp * (this.sync / 100);\n this.earningsForSleeves.agi += pAgiExp * (this.sync / 100);\n this.earningsForSleeves.cha += pChaExp * (this.sync / 100);\n\n // Return the experience to be gained by other sleeves\n return {\n hack: pHackExp * (this.sync / 100),\n str: pStrExp * (this.sync / 100),\n def: pDefExp * (this.sync / 100),\n dex: pDexExp * (this.sync / 100),\n agi: pAgiExp * (this.sync / 100),\n cha: pChaExp * (this.sync / 100),\n int: pIntExp * (this.sync / 100),\n money: exp.money,\n };\n }\n\n /**\n * Earn money for player\n */\n gainMoney(p: IPlayer, task: ITaskTracker, numCycles = 1): void {\n const gain: number = task.money * numCycles;\n this.earningsForTask.money += gain;\n this.earningsForPlayer.money += gain;\n p.gainMoney(gain, \"sleeves\");\n }\n\n /**\n * Returns the cost of upgrading this sleeve's memory by a certain amount\n */\n getMemoryUpgradeCost(n: number): number {\n const amt = Math.round(n);\n if (amt < 0) {\n return 0;\n }\n\n if (this.memory + amt > 100) {\n return this.getMemoryUpgradeCost(100 - this.memory);\n }\n\n const mult = 1.02;\n const baseCost = 1e12;\n let currCost = 0;\n let currMemory = this.memory - 1;\n for (let i = 0; i < n; ++i) {\n currCost += Math.pow(mult, currMemory);\n ++currMemory;\n }\n\n return currCost * baseCost;\n }\n\n /**\n * Gets reputation gain for the current task\n * Only applicable when working for company or faction\n */\n getRepGain(p: IPlayer): number {\n if (this.currentTask === SleeveTaskType.Faction) {\n let favorMult = 1;\n const fac: Faction | null = Factions[this.currentTaskLocation];\n if (fac != null) {\n favorMult = 1 + fac.favor / 100;\n }\n\n switch (this.factionWorkType) {\n case FactionWorkType.HACKING:\n return this.getFactionHackingWorkRepGain() * (this.shock / 100) * favorMult;\n case FactionWorkType.FIELD:\n return this.getFactionFieldWorkRepGain() * (this.shock / 100) * favorMult;\n case FactionWorkType.SECURITY:\n return this.getFactionSecurityWorkRepGain() * (this.shock / 100) * favorMult;\n default:\n console.warn(`Invalid Sleeve.factionWorkType property in Sleeve.getRepGain(): ${this.factionWorkType}`);\n return 0;\n }\n } else if (this.currentTask === SleeveTaskType.Company) {\n const companyName: string = this.currentTaskLocation;\n const company: Company | null = Companies[companyName];\n if (company == null) {\n console.error(`Invalid company found when trying to calculate rep gain: ${companyName}`);\n return 0;\n }\n\n const companyPosition: CompanyPosition | null = CompanyPositions[p.jobs[companyName]];\n if (companyPosition == null) {\n console.error(`Invalid company position name found when trying to calculate rep gain: ${p.jobs[companyName]}`);\n return 0;\n }\n\n const jobPerformance: number = companyPosition.calculateJobPerformance(\n this.hacking,\n this.strength,\n this.defense,\n this.dexterity,\n this.agility,\n this.charisma,\n );\n const favorMult = 1 + company.favor / 100;\n\n return jobPerformance * this.mults.company_rep * favorMult;\n } else {\n return 0;\n }\n }\n\n installAugmentation(aug: Augmentation): void {\n this.hacking_exp = 0;\n this.strength_exp = 0;\n this.defense_exp = 0;\n this.dexterity_exp = 0;\n this.agility_exp = 0;\n this.charisma_exp = 0;\n this.applyAugmentation(aug);\n this.augmentations.push({ name: aug.name, level: 1 });\n this.updateStatLevels();\n }\n\n log(entry: string): void {\n const MaxLogSize = 50;\n this.logs.push(entry);\n if (this.logs.length > MaxLogSize) {\n this.logs.shift();\n }\n }\n\n /**\n * Called on every sleeve for a Source File Prestige\n */\n prestige(p: IPlayer): void {\n // Reset exp\n this.hacking_exp = 0;\n this.strength_exp = 0;\n this.defense_exp = 0;\n this.dexterity_exp = 0;\n this.agility_exp = 0;\n this.charisma_exp = 0;\n\n // Reset task-related stuff\n this.resetTaskStatus(p);\n this.earningsForSleeves = createTaskTracker();\n this.earningsForPlayer = createTaskTracker();\n this.shockRecovery(p);\n\n // Reset augs and multipliers\n this.augmentations = [];\n this.resetMultipliers();\n\n // Reset Location\n\n this.city = CityName.Sector12;\n\n // Reset sleeve-related stats\n this.shock = 1;\n this.storedCycles = 0;\n this.sync = Math.max(this.memory, 1);\n\n this.logs = [];\n }\n\n /**\n * Process loop\n * Returns an object containing the amount of experience that should be\n * transferred to all other sleeves\n */\n process(p: IPlayer, numCycles = 1): ITaskTracker | null {\n // Only process once every second (5 cycles)\n const CyclesPerSecond = 1000 / CONSTANTS.MilliPerCycle;\n this.storedCycles += numCycles;\n if (this.storedCycles < CyclesPerSecond) {\n return null;\n }\n\n let cyclesUsed = this.storedCycles;\n cyclesUsed = Math.min(cyclesUsed, 15);\n let time = cyclesUsed * CONSTANTS.MilliPerCycle;\n if (this.currentTaskMaxTime !== 0 && this.currentTaskTime + time > this.currentTaskMaxTime) {\n time = this.currentTaskMaxTime - this.currentTaskTime;\n cyclesUsed = Math.floor(time / CONSTANTS.MilliPerCycle);\n\n if (time < 0 || cyclesUsed < 0) {\n console.warn(`Sleeve.process() calculated negative cycle usage`);\n time = 0;\n cyclesUsed = 0;\n }\n }\n\n this.currentTaskTime += time;\n\n // Shock gradually goes towards 100\n this.shock = Math.min(100, this.shock + 0.0001 * cyclesUsed);\n\n let retValue: ITaskTracker = createTaskTracker();\n switch (this.currentTask) {\n case SleeveTaskType.Idle:\n break;\n case SleeveTaskType.Class:\n case SleeveTaskType.Gym:\n this.updateTaskGainRates(p);\n retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed);\n this.gainMoney(p, this.gainRatesForTask, cyclesUsed);\n break;\n case SleeveTaskType.Faction: {\n retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed);\n this.gainMoney(p, this.gainRatesForTask, cyclesUsed);\n\n // Gain faction reputation\n const fac: Faction = Factions[this.currentTaskLocation];\n if (!(fac instanceof Faction)) {\n console.error(`Invalid faction for Sleeve task: ${this.currentTaskLocation}`);\n break;\n }\n\n // If the player has a gang with the faction the sleeve is working\n // for, we need to reset the sleeve's task\n if (p.gang) {\n if (fac.name === p.gang.facName) {\n this.resetTaskStatus(p);\n }\n }\n\n fac.playerReputation += this.getRepGain(p) * cyclesUsed;\n break;\n }\n case SleeveTaskType.Company: {\n retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed);\n this.gainMoney(p, this.gainRatesForTask, cyclesUsed);\n\n const company: Company = Companies[this.currentTaskLocation];\n if (!(company instanceof Company)) {\n console.error(`Invalid company for Sleeve task: ${this.currentTaskLocation}`);\n break;\n }\n\n company.playerReputation += this.getRepGain(p) * cyclesUsed;\n break;\n }\n case SleeveTaskType.Recovery:\n this.shock = Math.min(100, this.shock + 0.0002 * cyclesUsed);\n if (this.shock >= 100) this.resetTaskStatus(p);\n break;\n case SleeveTaskType.Synchro:\n this.sync = Math.min(100, this.sync + p.getIntelligenceBonus(0.5) * 0.0002 * cyclesUsed);\n if (this.sync >= 100) this.resetTaskStatus(p);\n break;\n default:\n break;\n }\n\n if (this.currentTaskMaxTime !== 0 && this.currentTaskTime >= this.currentTaskMaxTime) {\n if (this.currentTask === SleeveTaskType.Crime || this.currentTask === SleeveTaskType.Bladeburner) {\n retValue = this.finishTask(p);\n } else {\n this.finishTask(p);\n }\n }\n\n this.updateStatLevels();\n\n this.storedCycles -= cyclesUsed;\n\n return retValue;\n }\n\n /**\n * Resets all parameters used to keep information about the current task\n */\n resetTaskStatus(p: IPlayer): void {\n if (this.bbAction == \"Support main sleeve\") {\n p.bladeburner?.sleeveSupport(false);\n }\n if (this.currentTask == SleeveTaskType.Class) {\n const retVal = createTaskTracker();\n retVal.int = CONSTANTS.IntelligenceClassBaseExpGain * Math.round(this.currentTaskTime / 1000);\n const r = this.gainExperience(p, retVal);\n p.sleeves.filter((s) => s != this).forEach((s) => s.gainExperience(p, r, 1, true));\n }\n this.earningsForTask = createTaskTracker();\n this.gainRatesForTask = createTaskTracker();\n this.currentTask = SleeveTaskType.Idle;\n this.currentTaskTime = 0;\n this.currentTaskMaxTime = 0;\n this.factionWorkType = FactionWorkType.HACKING;\n this.crimeType = \"\";\n this.currentTaskLocation = \"\";\n this.gymStatType = \"\";\n this.className = \"\";\n this.bbAction = \"\";\n this.bbContract = \"------\";\n }\n\n shockRecovery(p: IPlayer): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n this.currentTask = SleeveTaskType.Recovery;\n return true;\n }\n\n synchronize(p: IPlayer): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n this.currentTask = SleeveTaskType.Synchro;\n return true;\n }\n\n /**\n * Take a course at a university\n */\n takeUniversityCourse(p: IPlayer, universityName: string, className: string): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n // Set exp/money multipliers based on which university.\n // Also check that the sleeve is in the right city\n let costMult = 1;\n switch (universityName.toLowerCase()) {\n case LocationName.AevumSummitUniversity.toLowerCase():\n if (this.city !== CityName.Aevum) {\n return false;\n }\n this.currentTaskLocation = LocationName.AevumSummitUniversity;\n costMult = 4;\n break;\n case LocationName.Sector12RothmanUniversity.toLowerCase():\n if (this.city !== CityName.Sector12) {\n return false;\n }\n this.currentTaskLocation = LocationName.Sector12RothmanUniversity;\n costMult = 3;\n break;\n case LocationName.VolhavenZBInstituteOfTechnology.toLowerCase():\n if (this.city !== CityName.Volhaven) {\n return false;\n }\n this.currentTaskLocation = LocationName.VolhavenZBInstituteOfTechnology;\n costMult = 5;\n break;\n default:\n return false;\n }\n\n // Set experience/money gains based on class\n switch (className.toLowerCase()) {\n case \"study computer science\":\n break;\n case \"data structures\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassDataStructuresBaseCost * costMult);\n break;\n case \"networks\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassNetworksBaseCost * costMult);\n break;\n case \"algorithms\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassAlgorithmsBaseCost * costMult);\n break;\n case \"management\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassManagementBaseCost * costMult);\n break;\n case \"leadership\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassLeadershipBaseCost * costMult);\n break;\n default:\n return false;\n }\n\n this.className = className;\n this.currentTask = SleeveTaskType.Class;\n return true;\n }\n\n /**\n * Travel to another City. Costs money from player\n */\n travel(p: IPlayer, newCity: CityName): boolean {\n p.loseMoney(CONSTANTS.TravelCost, \"sleeves\");\n this.city = newCity;\n\n return true;\n }\n\n tryBuyAugmentation(p: IPlayer, aug: Augmentation): boolean {\n if (!p.canAfford(aug.baseCost)) {\n return false;\n }\n\n // Verify that this sleeve does not already have that augmentation.\n if (this.augmentations.some((a) => a.name === aug.name)) {\n return false;\n }\n\n p.loseMoney(aug.baseCost, \"sleeves\");\n this.installAugmentation(aug);\n return true;\n }\n\n updateTaskGainRates(p: IPlayer): void {\n if (this.currentTask === SleeveTaskType.Class) {\n let expMult = 1;\n switch (this.currentTaskLocation.toLowerCase()) {\n case LocationName.AevumSummitUniversity.toLowerCase():\n expMult = 3;\n break;\n case LocationName.Sector12RothmanUniversity.toLowerCase():\n expMult = 2;\n break;\n case LocationName.VolhavenZBInstituteOfTechnology.toLowerCase():\n expMult = 4;\n break;\n default:\n return;\n }\n\n const totalExpMult = expMult * p.hashManager.getStudyMult();\n switch (this.className.toLowerCase()) {\n case \"study computer science\":\n this.gainRatesForTask.hack =\n CONSTANTS.ClassStudyComputerScienceBaseExp * totalExpMult * this.mults.hacking_exp;\n break;\n case \"data structures\":\n this.gainRatesForTask.hack = CONSTANTS.ClassDataStructuresBaseExp * totalExpMult * this.mults.hacking_exp;\n break;\n case \"networks\":\n this.gainRatesForTask.hack = CONSTANTS.ClassNetworksBaseExp * totalExpMult * this.mults.hacking_exp;\n break;\n case \"algorithms\":\n this.gainRatesForTask.hack = CONSTANTS.ClassAlgorithmsBaseExp * totalExpMult * this.mults.hacking_exp;\n break;\n case \"management\":\n this.gainRatesForTask.cha = CONSTANTS.ClassManagementBaseExp * totalExpMult * this.mults.charisma_exp;\n break;\n case \"leadership\":\n this.gainRatesForTask.cha = CONSTANTS.ClassLeadershipBaseExp * totalExpMult * this.mults.charisma_exp;\n break;\n default:\n break;\n }\n\n return;\n }\n\n if (this.currentTask === SleeveTaskType.Gym) {\n // Get gym exp multiplier\n let expMult = 1;\n switch (this.currentTaskLocation.toLowerCase()) {\n case LocationName.AevumCrushFitnessGym.toLowerCase():\n expMult = 2;\n break;\n case LocationName.AevumSnapFitnessGym.toLowerCase():\n expMult = 5;\n break;\n case LocationName.Sector12IronGym.toLowerCase():\n expMult = 1;\n break;\n case LocationName.Sector12PowerhouseGym.toLowerCase():\n expMult = 10;\n break;\n case LocationName.VolhavenMilleniumFitnessGym.toLowerCase():\n expMult = 4;\n break;\n default:\n return;\n }\n\n // Set stat gain rate\n const baseGymExp = 1;\n const totalExpMultiplier = p.hashManager.getTrainingMult() * expMult;\n switch (this.gymStatType) {\n case \"none\": // Note : due to the way Sleeve.workOutAtGym() is currently designed, this should never happend.\n break;\n case \"str\":\n this.gainRatesForTask.str = baseGymExp * totalExpMultiplier * this.mults.strength_exp;\n break;\n case \"def\":\n this.gainRatesForTask.def = baseGymExp * totalExpMultiplier * this.mults.defense_exp;\n break;\n case \"dex\":\n this.gainRatesForTask.dex = baseGymExp * totalExpMultiplier * this.mults.dexterity_exp;\n break;\n case \"agi\":\n this.gainRatesForTask.agi = baseGymExp * totalExpMultiplier * this.mults.agility_exp;\n break;\n }\n return;\n }\n\n console.warn(`Sleeve.updateTaskGainRates() called for unexpected task type ${this.currentTask}`);\n }\n\n upgradeMemory(n: number): void {\n if (n < 0) {\n console.warn(`Sleeve.upgradeMemory() called with negative value: ${n}`);\n return;\n }\n\n this.memory = Math.min(100, Math.round(this.memory + n));\n }\n\n /**\n * Start work for one of the player's companies\n * Returns boolean indicating success\n */\n workForCompany(p: IPlayer, companyName: string): boolean {\n if (!(Companies[companyName] instanceof Company) || p.jobs[companyName] == null) {\n return false;\n }\n\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n const company: Company | null = Companies[companyName];\n const companyPosition: CompanyPosition | null = CompanyPositions[p.jobs[companyName]];\n if (company == null) {\n return false;\n }\n if (companyPosition == null) {\n return false;\n }\n this.gainRatesForTask.money =\n companyPosition.baseSalary *\n company.salaryMultiplier *\n this.mults.work_money *\n BitNodeMultipliers.CompanyWorkMoney;\n this.gainRatesForTask.hack =\n companyPosition.hackingExpGain *\n company.expMultiplier *\n this.mults.hacking_exp *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.str =\n companyPosition.strengthExpGain *\n company.expMultiplier *\n this.mults.strength_exp *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.def =\n companyPosition.defenseExpGain *\n company.expMultiplier *\n this.mults.defense_exp *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.dex =\n companyPosition.dexterityExpGain *\n company.expMultiplier *\n this.mults.dexterity_exp *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.agi =\n companyPosition.agilityExpGain *\n company.expMultiplier *\n this.mults.agility_exp *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.cha =\n companyPosition.charismaExpGain *\n company.expMultiplier *\n this.mults.charisma_exp *\n BitNodeMultipliers.CompanyWorkExpGain;\n\n this.currentTaskLocation = companyName;\n this.currentTask = SleeveTaskType.Company;\n\n return true;\n }\n\n /**\n * Start work for one of the player's factions\n * Returns boolean indicating success\n */\n workForFaction(p: IPlayer, factionName: string, workType: string): boolean {\n const faction = Factions[factionName];\n if (factionName === \"\" || !faction || !(faction instanceof Faction) || !p.factions.includes(factionName)) {\n return false;\n }\n\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n const factionInfo = faction.getInfo();\n\n // Set type of work (hacking/field/security), and the experience gains\n const sanitizedWorkType: string = workType.toLowerCase();\n if (sanitizedWorkType.includes(\"hack\")) {\n if (!factionInfo.offerHackingWork) {\n return false;\n }\n this.factionWorkType = FactionWorkType.HACKING;\n this.gainRatesForTask.hack = 0.15 * this.mults.hacking_exp * BitNodeMultipliers.FactionWorkExpGain;\n } else if (sanitizedWorkType.includes(\"field\")) {\n if (!factionInfo.offerFieldWork) {\n return false;\n }\n this.factionWorkType = FactionWorkType.FIELD;\n this.gainRatesForTask.hack = 0.1 * this.mults.hacking_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.str = 0.1 * this.mults.strength_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.def = 0.1 * this.mults.defense_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.dex = 0.1 * this.mults.dexterity_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.agi = 0.1 * this.mults.agility_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.cha = 0.1 * this.mults.charisma_exp * BitNodeMultipliers.FactionWorkExpGain;\n } else if (sanitizedWorkType.includes(\"security\")) {\n if (!factionInfo.offerSecurityWork) {\n return false;\n }\n this.factionWorkType = FactionWorkType.SECURITY;\n this.gainRatesForTask.hack = 0.1 * this.mults.hacking_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.str = 0.15 * this.mults.strength_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.def = 0.15 * this.mults.defense_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.dex = 0.15 * this.mults.dexterity_exp * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.agi = 0.15 * this.mults.agility_exp * BitNodeMultipliers.FactionWorkExpGain;\n } else {\n return false;\n }\n\n this.currentTaskLocation = factionName;\n this.currentTask = SleeveTaskType.Faction;\n\n return true;\n }\n\n /**\n * Begin a gym workout task\n */\n workoutAtGym(p: IPlayer, gymName: string, stat: string): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n // Set exp/money multipliers based on which university.\n // Also check that the sleeve is in the right city\n let costMult = 1;\n switch (gymName.toLowerCase()) {\n case LocationName.AevumCrushFitnessGym.toLowerCase():\n if (this.city != CityName.Aevum) {\n return false;\n }\n this.currentTaskLocation = LocationName.AevumCrushFitnessGym;\n costMult = 3;\n break;\n case LocationName.AevumSnapFitnessGym.toLowerCase():\n if (this.city != CityName.Aevum) {\n return false;\n }\n this.currentTaskLocation = LocationName.AevumSnapFitnessGym;\n costMult = 10;\n break;\n case LocationName.Sector12IronGym.toLowerCase():\n if (this.city != CityName.Sector12) {\n return false;\n }\n this.currentTaskLocation = LocationName.Sector12IronGym;\n costMult = 1;\n break;\n case LocationName.Sector12PowerhouseGym.toLowerCase():\n if (this.city != CityName.Sector12) {\n return false;\n }\n this.currentTaskLocation = LocationName.Sector12PowerhouseGym;\n costMult = 20;\n break;\n case LocationName.VolhavenMilleniumFitnessGym.toLowerCase():\n if (this.city != CityName.Volhaven) {\n return false;\n }\n this.currentTaskLocation = LocationName.VolhavenMilleniumFitnessGym;\n costMult = 7;\n break;\n default:\n return false;\n }\n\n // Set experience/money gains based on class\n const sanitizedStat: string = stat.toLowerCase();\n\n // set stat to a default value.\n stat = \"none\";\n if (sanitizedStat.includes(\"str\")) {\n stat = \"str\";\n }\n if (sanitizedStat.includes(\"def\")) {\n stat = \"def\";\n }\n if (sanitizedStat.includes(\"dex\")) {\n stat = \"dex\";\n }\n if (sanitizedStat.includes(\"agi\")) {\n stat = \"agi\";\n }\n // if stat is still equals its default value, then validation has failed.\n if (stat === \"none\") {\n return false;\n }\n\n // Set cost\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassGymBaseCost * costMult);\n this.gymStatType = stat;\n this.currentTask = SleeveTaskType.Gym;\n\n return true;\n }\n\n /**\n * Begin a bladeburner task\n */\n bladeburner(p: IPlayer, action: string, contract: string): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus(p);\n }\n\n this.gainRatesForTask.hack = 0;\n this.gainRatesForTask.str = 0;\n this.gainRatesForTask.def = 0;\n this.gainRatesForTask.dex = 0;\n this.gainRatesForTask.agi = 0;\n this.gainRatesForTask.cha = 0;\n this.gainRatesForTask.money = 0;\n this.currentTaskLocation = \"\";\n\n let time = 0;\n\n this.bbContract = \"------\";\n switch (action) {\n case \"Field analysis\":\n time = this.getBladeburnerActionTime(p, \"General\", action);\n this.gainRatesForTask.hack = 20 * this.mults.hacking_exp;\n this.gainRatesForTask.cha = 20 * this.mults.charisma_exp;\n break;\n case \"Recruitment\":\n time = this.getBladeburnerActionTime(p, \"General\", action);\n this.gainRatesForTask.cha =\n 2 * BladeburnerConstants.BaseStatGain * (p.bladeburner?.getRecruitmentTime(this) ?? 0) * 1000;\n this.currentTaskLocation = `(Success Rate: ${numeralWrapper.formatPercentage(\n this.recruitmentSuccessChance(p),\n )})`;\n break;\n case \"Diplomacy\":\n time = this.getBladeburnerActionTime(p, \"General\", action);\n break;\n case \"Infiltrate synthoids\":\n time = 60000;\n this.currentTaskLocation = \"This will generate additional contracts and operations\";\n break;\n case \"Support main sleeve\":\n p.bladeburner?.sleeveSupport(true);\n time = 0;\n break;\n case \"Take on contracts\":\n time = this.getBladeburnerActionTime(p, \"Contracts\", contract);\n this.contractGainRates(p, \"Contracts\", contract);\n this.currentTaskLocation = this.contractSuccessChance(p, \"Contracts\", contract);\n this.bbContract = capitalizeEachWord(contract.toLowerCase());\n break;\n }\n\n this.bbAction = capitalizeFirstLetter(action.toLowerCase());\n this.currentTaskMaxTime = time;\n this.currentTask = SleeveTaskType.Bladeburner;\n return true;\n }\n\n recruitmentSuccessChance(p: IPlayer): number {\n return Math.max(0, Math.min(1, p.bladeburner?.getRecruitmentSuccessChance(this) ?? 0));\n }\n\n contractSuccessChance(p: IPlayer, type: string, name: string): string {\n const bb = p.bladeburner;\n if (bb === null) {\n const errorLogText = `bladeburner is null`;\n console.error(`Function: sleeves.contractSuccessChance; Message: '${errorLogText}'`);\n return \"0%\";\n }\n const chances = bb.getActionEstimatedSuccessChanceNetscriptFn(this, type, name);\n if (typeof chances === \"string\") {\n console.error(`Function: sleeves.contractSuccessChance; Message: '${chances}'`);\n return \"0%\";\n }\n if (chances[0] >= 1) {\n return \"100%\";\n } else {\n return `${numeralWrapper.formatPercentage(chances[0])} - ${numeralWrapper.formatPercentage(chances[1])}`;\n }\n }\n\n contractGainRates(p: IPlayer, type: string, name: string): void {\n const bb = p.bladeburner;\n if (bb === null) {\n const errorLogText = `bladeburner is null`;\n console.error(`Function: sleeves.contractGainRates; Message: '${errorLogText}'`);\n return;\n }\n const actionIdent = bb.getActionIdFromTypeAndName(type, name);\n if (actionIdent === null) {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n console.error(`Function: sleeves.contractGainRates; Message: '${errorLogText}'`);\n this.resetTaskStatus(p);\n return;\n }\n const action = bb.getActionObject(actionIdent);\n if (action === null) {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n console.error(`Function: sleeves.contractGainRates; Message: '${errorLogText}'`);\n this.resetTaskStatus(p);\n return;\n }\n const retValue = bb.getActionStats(action, true);\n this.gainRatesForTask.hack = retValue.hack;\n this.gainRatesForTask.str = retValue.str;\n this.gainRatesForTask.def = retValue.def;\n this.gainRatesForTask.dex = retValue.dex;\n this.gainRatesForTask.agi = retValue.agi;\n this.gainRatesForTask.cha = retValue.cha;\n const rewardMultiplier = Math.pow(action.rewardFac, action.level - 1);\n this.gainRatesForTask.money =\n BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * bb.skillMultipliers.money;\n }\n\n getBladeburnerActionTime(p: IPlayer, type: string, name: string): number {\n //Maybe find workerscript and use original\n const bb = p.bladeburner;\n if (bb === null) {\n const errorLogText = `bladeburner is null`;\n console.error(`Function: sleeves.getBladeburnerActionTime; Message: '${errorLogText}'`);\n return -1;\n }\n\n const time = bb.getActionTimeNetscriptFn(this, type, name);\n if (typeof time === \"string\") {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n console.error(`Function: sleeves.getBladeburnerActionTime; Message: '${errorLogText}'`);\n return -1;\n } else {\n return time;\n }\n }\n\n takeDamage(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 -= amt;\n if (this.hp <= 0) {\n this.shock = Math.min(1, this.shock - 0.5);\n this.hp = this.max_hp;\n return true;\n } else {\n return false;\n }\n }\n\n whoAmI(): string {\n return \"Sleeve\";\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Sleeve\", this);\n }\n\n /**\n * Initiatizes a Sleeve object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Sleeve {\n return Generic_fromJSON(Sleeve, value.data);\n }\n}\n\nReviver.constructors.Sleeve = Sleeve;\n","export enum RamCalculationErrorCode {\n SyntaxError = -1,\n ImportError = -2,\n URLImportError = -3,\n}\n","import { EventEmitter } from \"../utils/EventEmitter\";\nexport const TerminalEvents = new EventEmitter<[]>();\nexport const TerminalClearEvents = new EventEmitter<[]>();\n","/**\n * Helper functions for determine whether Limit and Stop orders should\n * be executed (and executing them)\n */\nimport { buyStock, sellStock, shortStock, sellShort } from \"./BuyingAndSelling\";\nimport { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { Stock } from \"./Stock\";\n\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\n\nimport * as React from \"react\";\n\nexport interface IProcessOrderRefs {\n stockMarket: IStockMarket;\n symbolToStockMap: IMap;\n}\n\n/**\n * Search for all orders of a specific type and execute them if appropriate\n * @param {Stock} stock - Stock for which orders should be processed\n * @param {OrderTypes} orderType - Type of order to check (Limit/Stop buy/sell)\n * @param {PositionTypes} posType - Long or short\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nexport function processOrders(\n stock: Stock,\n orderType: OrderTypes,\n posType: PositionTypes,\n refs: IProcessOrderRefs,\n): void {\n const orderBook = refs.stockMarket[\"Orders\"];\n if (orderBook == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(refs.stockMarket)) {\n const stock = refs.stockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n refs.stockMarket[\"Orders\"] = orders;\n return; // Newly created, so no orders to process\n }\n let stockOrders = orderBook[stock.symbol];\n if (stockOrders == null || !(stockOrders.constructor === Array)) {\n console.error(`Invalid Order book for ${stock.symbol} in processOrders(): ${stockOrders}`);\n stockOrders = [];\n return;\n }\n\n for (const order of stockOrders) {\n if (order.type === orderType && order.pos === posType) {\n switch (order.type) {\n case OrderTypes.LimitBuy:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.LimitSell:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopBuy:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n }\n }\n}\n\n/**\n * Execute a Stop or Limit Order.\n * @param {Order} order - Order being executed\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nfunction executeOrder(order: Order, refs: IProcessOrderRefs): void {\n const stock = refs.symbolToStockMap[order.stockSymbol];\n if (!(stock instanceof Stock)) {\n console.error(`Could not find stock for this order: ${order.stockSymbol}`);\n return;\n }\n const stockMarket = refs.stockMarket;\n const orderBook = stockMarket[\"Orders\"];\n const stockOrders = orderBook[stock.symbol];\n\n // When orders are executed, the buying and selling functions shouldn't\n // emit popup dialog boxes. This options object configures the functions for that\n const opts = {\n suppressDialog: true,\n };\n\n let res = true;\n let isBuy = false;\n switch (order.type) {\n case OrderTypes.LimitBuy:\n case OrderTypes.StopBuy:\n isBuy = true;\n if (order.pos === PositionTypes.Long) {\n res = buyStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = shortStock(stock, order.shares, null, opts) && res;\n }\n break;\n case OrderTypes.LimitSell:\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long) {\n res = sellStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = sellShort(stock, order.shares, null, opts) && res;\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n\n // Position type, for logging/message purposes\n const pos = order.pos === PositionTypes.Long ? \"Long\" : \"Short\";\n\n if (res) {\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n if (!Settings.SuppressTIXPopup) {\n dialogBoxCreate(\n <>\n {order.type} for {stock.symbol} @ ({pos}) was filled (\n {numeralWrapper.formatShares(Math.round(order.shares))} shares)\n >,\n );\n }\n return;\n }\n }\n\n console.error(\"Could not find the following Order in Order Book: \");\n console.error(order);\n } else if (isBuy) {\n dialogBoxCreate(\n <>\n Failed to execute {order.type} for {stock.symbol} @ ({pos}). This is most likely\n because you do not have enough money or the order would exceed the stock's maximum number of shares\n >,\n );\n }\n}\n","import { IMap } from \"../types\";\nimport * as predefined from \"./data\";\n\nexport interface ITheme {\n [key: string]: string | undefined;\n primarylight: string;\n primary: string;\n primarydark: string;\n successlight: string;\n success: string;\n successdark: string;\n errorlight: string;\n error: string;\n errordark: string;\n secondarylight: string;\n secondary: string;\n secondarydark: string;\n warninglight: string;\n warning: string;\n warningdark: string;\n infolight: string;\n info: string;\n infodark: string;\n welllight: string;\n well: string;\n white: string;\n black: string;\n hp: string;\n money: string;\n hack: string;\n combat: string;\n cha: string;\n int: string;\n rep: string;\n disabled: string;\n backgroundprimary: string;\n backgroundsecondary: string;\n button: string;\n}\n\nexport interface IPredefinedTheme {\n colors: ITheme;\n name: string;\n credit: string;\n screenshot: string;\n description: string;\n reference?: string;\n}\n\nexport const defaultTheme: ITheme = {\n ...predefined.Default.colors,\n};\n\nexport const getPredefinedThemes = (): IMap => ({\n ...predefined,\n});\n","import React, { useState, useEffect } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { Modal } from \"./Modal\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport { sha256 } from \"js-sha256\";\n\nexport const AlertEvents = new EventEmitter<[string | JSX.Element]>();\n\ninterface Alert {\n id: string;\n text: string | JSX.Element;\n hash: string;\n}\n\nlet i = 0;\nexport function AlertManager(): React.ReactElement {\n const [alerts, setAlerts] = useState([]);\n useEffect(\n () =>\n AlertEvents.subscribe((text: string | JSX.Element) => {\n const id = i + \"\";\n i++;\n setAlerts((old) => {\n const hash = getMessageHash(text);\n if (old.some((a) => a.hash === hash)) {\n return old;\n }\n return [\n ...old,\n {\n id: id,\n text: text,\n hash: hash,\n },\n ];\n });\n }),\n [],\n );\n\n useEffect(() => {\n function handle(this: Document, event: KeyboardEvent): void {\n if (event.code === \"Escape\") {\n setAlerts([]);\n }\n }\n document.addEventListener(\"keydown\", handle);\n return () => document.removeEventListener(\"keydown\", handle);\n }, []);\n\n function getMessageHash(text: string | JSX.Element): string {\n if (typeof text === \"string\") return sha256(text);\n return sha256(JSON.stringify(text.props));\n }\n\n function close(): void {\n setAlerts((old) => {\n return old.slice(1, 1e99);\n });\n }\n\n return (\n <>\n {alerts.length > 0 && (\n \n \n {alerts[0].text}\n \n \n )}\n >\n );\n}\n","import { getRandomByte } from \"./helpers/getRandomByte\";\n\n/**\n * Generate a random IP address\n * Does not check to see if the IP already exists in the game\n */\nexport const createRandomIp = (): string =>\n `${getRandomByte(99)}.${getRandomByte(9)}.${getRandomByte(9)}.${getRandomByte(9)}`;\n","export function calculateIntelligenceBonus(intelligence: number, weight = 1): number {\n return 1 + (weight * Math.pow(intelligence, 0.8)) / 600;\n}\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.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.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.hacking >= 40) {\n sendMessage(jumper1);\n } else if (!recvd(cybersecTest) && Player.hacking >= 50) {\n sendMessage(cybersecTest);\n } else if (!recvd(jumper2) && Player.hacking >= 175) {\n sendMessage(jumper2);\n } else if (!recvd(nitesecTest) && Player.hacking >= 200) {\n sendMessage(nitesecTest);\n } else if (!recvd(jumper3) && Player.hacking >= 350) {\n sendMessage(jumper3);\n } else if (!recvd(jumper4) && Player.hacking >= 490) {\n sendMessage(jumper4);\n } else if (!recvd(bitrunnersTest) && Player.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","// 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","/**\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 { 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","export function checkEnum(\n enumVariable: { [key in T]: TEnumValue },\n value: string,\n): value is TEnumValue {\n return Object.values(enumVariable).includes(value);\n}\n","import React from \"react\";\nimport { SourceFile } from \"./SourceFile\";\nimport { IMap } from \"../types\";\n\nexport const SourceFiles: IMap = {};\n\nSourceFiles[\"SourceFile1\"] = new SourceFile(\n 1,\n (\n <>\n This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the\n player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nSourceFiles[\"SourceFile2\"] = new SourceFile(\n 2,\n (\n <>\n This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also\n increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nSourceFiles[\"SourceFile3\"] = new SourceFile(\n 3,\n (\n <>\n This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this\n mechanic). This Source-File also increases your charisma and company salary multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile4\"] = new SourceFile(\n 4,\n (\n <>\n This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this\n Source-File reduces the RAM cost of Singularity functions.\n >\n ),\n);\nSourceFiles[\"SourceFile5\"] = new SourceFile(\n 5,\n (\n <>\n This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent and\n persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other\n stats. Higher Intelligence levels will boost your production for many actions in the game. In addition, this\n Source-File will unlock:\n \n
\n
\n The getBitNodeMultipliers() Netscript function\n
\n
Permanent access to Formulas.exe
\n
\n Access to BitNode multiplier information on the Stats page\n
\n
\n It will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile6\"] = new SourceFile(\n 6,\n (\n <>\n This Source-File allows you to access the NSA's Bladeburner Division in other BitNodes. In addition, this\n Source-File will raise both the level and experience gain rate of all your combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile7\"] = new SourceFile(\n 7,\n (\n <>\n This Source-File allows you to access the Bladeburner Netscript API in other BitNodes. In addition, this\n Source-File will increase all of your Bladeburner multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile8\"] = new SourceFile(\n 8,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nSourceFiles[\"SourceFile9\"] = new SourceFile(\n 9,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile10\"] = new SourceFile(\n 10,\n (\n <>\n This Source-File unlocks Sleeve technology, and the Grafting API in other BitNodes. Each level of this Source-File\n also grants you a Duplicate Sleeve\n >\n ),\n);\nSourceFiles[\"SourceFile11\"] = new SourceFile(\n 11,\n (\n <>\n This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at\n that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the player's\n company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nSourceFiles[\"SourceFile12\"] = new SourceFile(\n 12,\n <>This Source-File lets the player start with Neuroflux Governor equal to the level of this Source-File.>,\n);\nSourceFiles[\"SourceFile13\"] = new SourceFile(\n 13,\n <>Each level of this Source-File increases the size of Stanek's Gift.>,\n);\n","import React from \"react\";\n\nimport { IBladeburner } from \"../IBladeburner\";\nimport { BlackOperation } from \"../BlackOperation\";\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\n\ninterface IProps {\n bladeburner: IBladeburner;\n type: number;\n name: string;\n rerender: () => void;\n}\nexport function StartButton(props: IProps): React.ReactElement {\n const player = use.Player();\n const action = props.bladeburner.getActionObject({ name: props.name, type: props.type });\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + props.name);\n }\n let disabled = false;\n if (action.count < 1) {\n disabled = true;\n }\n if (props.name === \"Raid\" && props.bladeburner.getCurrentCity().comms === 0) {\n disabled = true;\n }\n\n if (action instanceof BlackOperation && props.bladeburner.rank < action.reqdRank) {\n disabled = true;\n }\n function onStart(): void {\n if (disabled) return;\n props.bladeburner.action.type = props.type;\n props.bladeburner.action.name = props.name;\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true)) player.finishWork(true);\n props.bladeburner.startAction(player, props.bladeburner.action);\n props.rerender();\n }\n\n return (\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\n\nfunction replace(str: string, i: number, char: string): string {\n return str.substring(0, i) + char + str.substring(i + 1);\n}\n\ninterface IProps {\n content: string;\n}\n\nfunction randomize(char: string): string {\n const randFrom = (str: string): string => str[Math.floor(Math.random() * str.length)];\n const classes = [\"abcdefghijklmnopqrstuvwxyz\", \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", \"1234567890\", \" _\", \"()[]{}<>\"];\n const other = `!@#$%^&*()_+|\\\\';\"/.,?\\`~`;\n\n for (const c of classes) {\n if (c.includes(char)) return randFrom(c);\n }\n\n return randFrom(other);\n}\n\nexport function CorruptableText(props: IProps): JSX.Element {\n const [content, setContent] = useState(props.content);\n\n useEffect(() => {\n let counter = 5;\n const timers: number[] = [];\n const intervalId = setInterval(() => {\n counter--;\n if (counter > 0) return;\n counter = Math.random() * 5;\n const index = Math.random() * content.length;\n const letter = content.charAt(index);\n setContent((content) => replace(content, index, randomize(letter)));\n timers.push(\n window.setTimeout(() => {\n setContent((content) => replace(content, index, letter));\n }, 500),\n );\n }, 20);\n\n return () => {\n clearInterval(intervalId);\n timers.forEach((timerId) => clearTimeout(timerId));\n };\n }, []);\n\n return {content};\n}\n","import React from \"react\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { GraftableAugmentations } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Work, WorkType } from \"./Work\";\nimport { graftingIntBonus } from \"../PersonObjects/Grafting/GraftingHelpers\";\nimport { applyAugmentation } from \"../Augmentation/AugmentationHelpers\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { GraftableAugmentation } from \"../PersonObjects/Grafting/GraftableAugmentation\";\nimport { StaticAugmentations } from \"../Augmentation/StaticAugmentations\";\n\nexport const isGraftingWork = (w: Work | null): w is GraftingWork => w !== null && w.type === WorkType.GRAFTING;\n\ninterface GraftingWorkParams {\n augmentation: string;\n player: IPlayer;\n singularity: boolean;\n}\n\nexport class GraftingWork extends Work {\n augmentation: string;\n unitCompleted: number;\n\n constructor(params?: GraftingWorkParams) {\n super(WorkType.GRAFTING, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.augmentation = params?.augmentation ?? AugmentationNames.Targeting1;\n const gAugs = GraftableAugmentations();\n if (params?.player) params.player.loseMoney(gAugs[this.augmentation].cost, \"augmentations\");\n }\n\n unitNeeded(): number {\n return new GraftableAugmentation(StaticAugmentations[this.augmentation]).time;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n\n this.cyclesWorked += cycles;\n this.unitCompleted += CONSTANTS._idleSpeed * cycles * graftingIntBonus(player) * focusBonus;\n\n return this.unitCompleted >= this.unitNeeded();\n }\n\n finish(player: IPlayer, cancelled: boolean): void {\n const augName = this.augmentation;\n if (!cancelled) {\n applyAugmentation({ name: augName, level: 1 });\n\n if (!player.hasAugmentation(AugmentationNames.CongruityImplant)) {\n player.entropy += 1;\n player.applyEntropy(player.entropy);\n }\n\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You've finished grafting {augName}. \n The augmentation has been applied to your body{\" \"}\n {player.hasAugmentation(AugmentationNames.CongruityImplant) ? \".\" : \", but you feel a bit off.\"}\n >,\n );\n }\n } else if (cancelled && !this.singularity) {\n dialogBoxCreate(\n <>\n You cancelled the grafting of {augName}.\n \n Your money was not returned to you.\n >,\n );\n }\n\n // Intelligence gain\n if (!cancelled) {\n player.gainIntelligenceExp(\n (CONSTANTS.IntelligenceGraftBaseExpGain * this.cyclesWorked * CONSTANTS._idleSpeed) / 10000,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n augmentation: this.augmentation,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"GraftingWork\", this);\n }\n\n /**\n * Initiatizes a GraftingWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): GraftingWork {\n return Generic_fromJSON(GraftingWork, value.data);\n }\n}\n\nReviver.constructors.GraftingWork = GraftingWork;\n","import { format } from \"date-fns\";\n\nexport function formatTime(fmt: string): string {\n try {\n return format(new Date(), fmt);\n } catch (e: unknown) {\n return \"format error\";\n }\n}\n","import React from \"react\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { use } from \"../ui/Context\";\nimport { Option } from \"./ui/Option\";\nimport { Typography } from \"@mui/material\";\n\ninterface FactionInfoParams {\n infoText?: JSX.Element;\n enemies?: string[];\n offerHackingWork?: boolean;\n offerFieldWork?: boolean;\n offerSecurityWork?: boolean;\n special?: boolean;\n keepOnInstall?: boolean;\n assignment?: () => React.ReactElement;\n}\n\n/**\n * Contains the \"information\" property for all the Factions, which is just a description of each faction\n */\nexport class FactionInfo {\n /**\n * The names of all other factions considered to be enemies to this faction.\n */\n enemies: string[];\n\n /**\n * The descriptive text to show on the faction's page.\n */\n infoText: JSX.Element;\n\n /**\n * A flag indicating if the faction supports field work to earn reputation.\n */\n offerFieldWork: boolean;\n\n /**\n * A flag indicating if the faction supports hacking work to earn reputation.\n */\n offerHackingWork: boolean;\n\n /**\n * A flag indicating if the faction supports security work to earn reputation.\n */\n offerSecurityWork: boolean;\n\n /**\n * Keep faction on install.\n */\n keep: boolean;\n\n /**\n * Special faction\n */\n special: boolean;\n\n /**\n * The data to display on the faction screen.\n */\n assignment?: () => React.ReactElement;\n\n constructor(params: FactionInfoParams) {\n this.infoText = params.infoText ?? <>>;\n this.enemies = params.enemies ?? [];\n this.offerHackingWork = params.offerHackingWork ?? false;\n this.offerFieldWork = params.offerFieldWork ?? false;\n this.offerSecurityWork = params.offerSecurityWork ?? false;\n\n this.keep = params.keepOnInstall ?? false;\n this.special = params.special ?? false;\n this.assignment = params.assignment;\n }\n\n offersWork(): boolean {\n return this.offerFieldWork || this.offerHackingWork || this.offerSecurityWork;\n }\n}\n\n/**\n * A map of all factions and associated info to them.\n */\n// tslint:disable-next-line:variable-name\nexport const FactionInfos: IMap = {\n // Endgame\n [FactionNames.Illuminati]: new FactionInfo({\n infoText: (\n <>\n Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. And\n from this chaos, we are the invisible hand that guides them to order.{\" \"}\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Daedalus]: new FactionInfo({\n infoText: <>Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheCovenant]: new FactionInfo({\n infoText: (\n <>\n Surrender yourself. Give up your empty individuality to become part of something great, something eternal.\n Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.\n \n \n Only then can you discover immortality.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // Megacorporations, each forms its own faction\n [FactionNames.ECorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.ECorp}'s mission is simple: to connect the world of today with the technology of tomorrow. With\n our wide range of Internet-related software and commercial hardware, {FactionNames.ECorp} makes the world's\n information universally accessible.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.MegaCorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.MegaCorp} does what no other dares to do. We imagine. We create. We invent. We create what others\n have never even dreamed of. Our work fills the world's needs for food, water, power, and transportation on an\n unprecedented scale, in ways that no other company can.\n \n \n In our labs and factories and on the ground with customers, {FactionNames.MegaCorp} is ushering in a new era for\n the world.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BachmanAssociates]: new FactionInfo({\n infoText: (\n <>\n Where Law and Business meet - that's where we are.\n \n \n Legal Insight - Business Instinct - Innovative Experience.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BladeIndustries]: new FactionInfo({\n infoText: <>Augmentation is Salvation.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.NWO]: new FactionInfo({\n infoText: (\n <>\n Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given\n purpose and direction in life. That is why they created God. And that is why they created civilization - not\n because of willingness, but because of a need to be incorporated into higher orders of structure and meaning.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.ClarkeIncorporated]: new FactionInfo({\n infoText: <>The Power of the Genome - Unlocked.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.OmniTekIncorporated]: new FactionInfo({\n infoText: <>Simply put, our mission is to design and build robots that make a difference.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.FourSigma]: new FactionInfo({\n infoText: (\n <>\n The scientific method is the best way to approach investing. Big strategies backed up with big data. Driven by\n deep learning and innovative ideas. And improved by iteration. That's {FactionNames.FourSigma}.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.KuaiGongInternational]: new FactionInfo({\n infoText: <>Dream big. Work hard. Make history.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Other Corporations\n [FactionNames.FulcrumSecretTechnologies]: new FactionInfo({\n infoText: (\n <>\n The human organism has an innate desire to worship. That is why they created gods. If there were no gods, it\n would be necessary to create them. And now we can.\n >\n ),\n offerHackingWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Hacker groups\n [FactionNames.BitRunners]: new FactionInfo({\n infoText: (\n <>\n Our entire lives are controlled by bits. All of our actions, our thoughts, our personal information. It's all\n transformed into bits, stored in bits, communicated through bits. It’s impossible for any person to move, to\n live, to operate at any level without the use of bits. And when a person moves, lives, and operates, they leave\n behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be\n reconstructed. Transformed. Used.\n \n \n Those who run the bits, run the world.\n >\n ),\n offerHackingWork: true,\n }),\n\n [FactionNames.TheBlackHand]: new FactionInfo({\n infoText: (\n <>\n The world, so afraid of strong government, now has no government. Only power - Digital power. Financial power.\n Technological power. And those at the top rule with an invisible hand. They built a society where the rich get\n richer, and everyone else suffers.\n \n \n So much pain. So many lives. Their darkness must end.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // prettier-ignore\n [FactionNames.NiteSec]: new FactionInfo({\n infoText:(<>\n {\" __..__ \"} \n {\" _.nITESECNIt. \"} \n {\" .-'NITESECNITESEc. \"} \n {\" .' NITESECNITESECn \"} \n {\" / NITESECNITESEC; \"} \n {\" : :NITESECNITESEC; \"} \n {\" ; $ NITESECNITESECN \"} \n {\" : _, ,N'ITESECNITESEC \"} \n {\" : .+^^`, : `NITESECNIT \"} \n {\" ) /), `-,-=,NITESECNI \"} \n {\" / ^ ,-;|NITESECN; \"} \n {\" / _.' '-';NITESECN \"} \n {\" ( , ,-''`^NITE' \"} \n {\" )` :`. .' \"} \n {\" )-- ; `- / \"} \n {\" ' _.-' : \"} \n {\" ( _.-' . \"} \n {\" ------. \"} \n {\" . \"} \n {\" _.nIt \"} \n {\" _.nITESECNi \"} \n {\" nITESECNIT^' \"} \n {\" NITE^' ___ \"} \n {\" / .gP''''Tp. \"} \n {\" : d' . `b \"} \n {\" ; d' o `b ; \"} \n {\" / d; `b| \"} \n {\" /, $; @ `: \"} \n {\" /' $/ ; \"} \n {\" .' $/b o | \"} \n {\" .' d$/$; : \"} \n {\" / .d/$/$; , ; \"} \n {\" d .dNITESEC $ | \"} \n {\" :bp.__.gNITESEC/$ :$ ; \"} \n {\" NITESECNITESECNIT /$b : \"} >),\n offerHackingWork: true,\n offerFieldWork: false,\n offerSecurityWork: false,\n special: false,\n keepOnInstall: false,\n }),\n\n // City factions, essentially governments\n [FactionNames.Aevum]: new FactionInfo({\n infoText: <>The Silicon City.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Chongqing]: new FactionInfo({\n infoText: <>Serve the People.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Ishima]: new FactionInfo({\n infoText: <>The East Asian Order of the Future.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.NewTokyo]: new FactionInfo({\n infoText: <>Asia's World City.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Sector12]: new FactionInfo({\n infoText: <>The City of the Future.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Volhaven]: new FactionInfo({\n infoText: <>Benefit, Honor, and Glory.>,\n enemies: [\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n ],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Criminal Organizations/Gangs\n [FactionNames.SpeakersForTheDead]: new FactionInfo({\n infoText: <>It is better to reign in Hell than to serve in Heaven.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.TheDarkArmy]: new FactionInfo({\n infoText: <>The World doesn't care about right or wrong. It only cares about power.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheSyndicate]: new FactionInfo({\n infoText: <>Honor holds you back.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.Silhouette]: new FactionInfo({\n infoText: (\n <>\n Corporations have filled the void of power left behind by the collapse of Western government. The issue is\n they've become so big that you don't know who they're working for. And if you're employed at one of these\n corporations, you don't even know who you're working for.\n \n \n That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Tetrads]: new FactionInfo({\n infoText: <>Following the mandate of Heaven and carrying out the way.>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.SlumSnakes]: new FactionInfo({\n infoText: <>{FactionNames.SlumSnakes} rule!>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Earlygame factions - factions the player will prestige with early on that don't belong in other categories.\n [FactionNames.Netburners]: new FactionInfo({\n infoText: <>{\"~~//*>H4CK||3T 8URN3R5**>?>\\\\~~\"}>,\n offerHackingWork: true,\n }),\n\n [FactionNames.TianDiHui]: new FactionInfo({\n infoText: <>Obey Heaven and work righteously.>,\n offerHackingWork: true,\n\n offerSecurityWork: true,\n }),\n\n [FactionNames.CyberSec]: new FactionInfo({\n infoText: (\n <>\n The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy\n that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of\n total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse.\n >\n ),\n offerHackingWork: true,\n }),\n\n // Special Factions\n [FactionNames.Bladeburners]: new FactionInfo({\n infoText: (\n <>\n It's too bad they won't live. But then again, who does?\n \n \n Note that for this faction, reputation can only be gained through {FactionNames.Bladeburners} actions.{\" \"}\n Completing {FactionNames.Bladeburners} contracts/operations will increase your reputation.\n >\n ),\n\n special: true,\n assignment: (): React.ReactElement => {\n const router = use.Router();\n return (\n