{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Player.ts","webpack:///./src/Netscript/NetscriptHelpers.ts","webpack:///./src/Faction/data/FactionNames.ts","webpack:///./src/Settings/Settings.ts","webpack:///./src/ui/numeralFormat.ts","webpack:///./src/Locations/data/LocationNames.ts","webpack:///./src/Augmentation/data/AugmentationNames.ts","webpack:///./src/Constants.ts","webpack:///./src/utils/JSONReviver.ts","webpack:///./src/ui/React/DialogBox.tsx","webpack:///./src/Locations/data/CityNames.ts","webpack:///./src/ui/React/Money.tsx","webpack:///./src/BitNode/BitNodeMultipliers.ts","webpack:///./src/Server/AllServers.ts","webpack:///./src/ui/Router.ts","webpack:///./src/ui/Context.ts","webpack:///./src/utils/StringHelperFunctions.ts","webpack:///./src/Faction/Factions.ts","webpack:///./src/utils/helpers/keyCodes.ts","webpack:///./src/Company/data/companypositionnames.ts","webpack:///./src/utils/helpers/getRandomInt.ts","webpack:///./src/Corporation/data/Constants.ts","webpack:///./src/Augmentation/Augmentation.tsx","webpack:///./src/ui/React/Modal.tsx","webpack:///./src/Hacknet/data/Constants.ts","webpack:///./src/Corporation/EmployeePositions.ts","webpack:///./src/Bladeburner/data/ActionTypes.ts","webpack:///./src/InteractiveTutorial.ts","webpack:///./src/Server/Server.ts","webpack:///./src/Corporation/ui/Context.ts","webpack:///./src/Corporation/IndustryData.tsx","webpack:///./src/Locations/LocationTypeEnum.ts","webpack:///./src/Work/ClassWork.tsx","webpack:///./src/Hacknet/HacknetHelpers.tsx","webpack:///./src/Corporation/Actions.ts","webpack:///./src/Bladeburner/data/BlackOperationNames.ts","webpack:///./src/PersonObjects/Player/PlayerObjectGeneralMethods.ts","webpack:///./src/Bladeburner/data/Constants.ts","webpack:///./src/Programs/Programs.ts","webpack:///./src/CotMG/FragmentType.ts","webpack:///./src/Literature/data/LiteratureNames.ts","webpack:///./src/ui/React/StatsRow.tsx","webpack:///./src/Augmentation/StaticAugmentations.ts","webpack:///./src/StockMarket/data/PositionTypes.ts","webpack:///./src/ui/React/Table.tsx","webpack:///./src/Terminal/DirectoryHelpers.ts","webpack:///./src/Company/Companies.ts","webpack:///./src/Gang/AllGangs.ts","webpack:///./src/Terminal.ts","webpack:///./src/ui/React/Snackbar.tsx","webpack:///./src/Crime/Crimes.ts","webpack:///./src/Casino/utils.ts","webpack:///./src/Server/data/SpecialServers.ts","webpack:///./src/Work/WorkStats.ts","webpack:///./src/ui/GameRoot.tsx","webpack:///./src/Hacknet/HacknetServer.ts","webpack:///./src/Script/isScriptFilename.ts","webpack:///./src/StockMarket/StockMarket.tsx","webpack:///./src/StockMarket/data/StockSymbols.ts","webpack:///./src/Hacking.ts","webpack:///./src/PersonObjects/Sleeve/Work/Work.ts","webpack:///./src/CotMG/Helper.tsx","webpack:///./src/Faction/FactionHelpers.tsx","webpack:///./src/SaveObject.tsx","webpack:///./src/Company/CompanyPositions.ts","webpack:///./src/Work/data/FactionWorkType.ts","webpack:///./src/Exploits/Exploit.ts","webpack:///./src/Augmentation/AugmentationHelpers.tsx","webpack:///./src/ui/React/MoneyRate.tsx","webpack:///./src/CodingContracts.ts","webpack:///./src/StockMarket/data/OrderTypes.ts","webpack:///./src/CotMG/Fragment.ts","webpack:///./src/ScriptEditor/ui/themes.ts","webpack:///./src/DevMenu/ui/Adjuster.tsx","webpack:///./src/utils/EventEmitter.ts","webpack:///./src/Infiltration/utils.ts","webpack:///./src/Bladeburner/BlackOperation.ts","webpack:///./src/utils/WorkType.ts","webpack:///./src/Corporation/data/BaseResearchTree.ts","webpack:///./src/Server/ServerHelpers.ts","webpack:///./src/Corporation/ui/MoneyCost.tsx","webpack:///./src/Bladeburner/data/SkillNames.ts","webpack:///./src/ui/React/Reputation.tsx","webpack:///./src/Gang/ui/Context.ts","webpack:///./src/Netscript/killWorkerScript.ts","webpack:///./src/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/utils/helpers/isString.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/Netscript/ScriptDeath.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/NetscriptWorker.ts","webpack:///./src/Gang/data/Constants.ts","webpack:///./src/StockMarket/BuyingAndSelling.tsx","webpack:///./src/Faction/Faction.ts","webpack:///./src/Netscript/WorkerScripts.ts","webpack:///./src/Corporation/Material.ts","webpack:///./src/Gang/formulas/formulas.ts","webpack:///./src/RemoteFileAPI/MessageDefinitions.ts","webpack:///./src/Infiltration/ui/GameTimer.tsx","webpack:///./src/PersonObjects/Multipliers.ts","webpack:///./src/Bladeburner/Bladeburner.tsx","webpack:///./src/Hacknet/formulas/HacknetNodes.ts","webpack:///./src/Casino/Game.tsx","webpack:///./src/CotMG/data/Shapes.ts","webpack:///./src/Infiltration/ui/Difficulty.ts","webpack:///./src/Infiltration/ui/KeyHandler.tsx","webpack:///./src/Work/FactionWork.tsx","webpack:///./src/ui/React/Hashes.tsx","webpack:///./src/Hacknet/HacknetNode.ts","webpack:///./src/Server/ServerPurchases.ts","webpack:///./src/TextFile.ts","webpack:///./src/PersonObjects/formulas/reputation.ts","webpack:///./src/Netscript/RamCostGenerator.ts","webpack:///./src/Bladeburner/Skills.ts","webpack:///./src/StockMarket/StockMarketHelpers.ts","webpack:///./src/Gang/GangMemberUpgrades.ts","webpack:///./src/StockMarket/StockMarketCosts.ts","webpack:///./src/ui/React/NumberInput.tsx","webpack:///./src/Hacknet/HashUpgrades.ts","webpack:///./src/Gang/GangMemberTasks.ts","webpack:///./src/Corporation/Warehouse.ts","webpack:///./src/Terminal/ITerminal.tsx","webpack:///./src/Bladeburner/Skill.ts","webpack:///./src/ui/React/ConfirmationModal.tsx","webpack:///./src/utils/helpers/createProgressBarText.ts","webpack:///./src/hash/hash.ts","webpack:///./src/Work/formulas/Class.ts","webpack:///./src/Script/Script.ts","webpack:///./src/ui/React/StatsTable.tsx","webpack:///./src/DarkWeb/DarkWebItems.ts","webpack:///./src/GameOptions/GameOptionsTab.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/Achievements/Achievements.ts","webpack:///./src/PersonObjects/formulas/intelligence.ts","webpack:///./src/Company/Company.ts","webpack:///./src/utils/helpers/arrayToString.ts","webpack:///./src/MathJaxWrapper.tsx","webpack:///./src/utils/helpers/exceptionAlert.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts","webpack:///./src/Corporation/data/CorporationUnlockUpgrades.ts","webpack:///./src/PersonObjects/Grafting/GraftingHelpers.ts","webpack:///./src/Bladeburner/BlackOperations.tsx","webpack:///./src/CotMG/ActiveFragment.ts","webpack:///./src/Crime/Crime.ts","webpack:///./src/ui/React/HashRate.tsx","webpack:///./src/Message/Message.ts","webpack:///./src/Locations/ui/ApplyToJobButton.tsx","webpack:///./src/Corporation/ResearchMap.ts","webpack:///./src/Netscript/WorkerScriptStartStopEventEmitter.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveCompanyWork.ts","webpack:///./src/Electron.tsx","webpack:///./src/Work/CreateProgramWork.ts","webpack:///./src/ui/React/CharacterOverview.tsx","webpack:///./src/utils/helpers/addOffset.ts","webpack:///./src/DarkWeb/DarkWebItem.ts","webpack:///./src/Augmentation/PlayerOwnedAugmentation.ts","webpack:///./src/Casino/RNG.ts","webpack:///./src/Work/CompanyWork.tsx","webpack:///./src/ui/React/Favor.tsx","webpack:///./src/Terminal/TerminalEvents.ts","webpack:///./src/StockMarket/OrderProcessing.tsx","webpack:///./src/Themes/Themes.ts","webpack:///./src/ui/React/AlertManager.tsx","webpack:///./src/utils/IPAddress.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveSupportWork.ts","webpack:///./src/Netscript/RecentScripts.ts","webpack:///./src/db.tsx","webpack:///./src/Message/MessageHelpers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveClassWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts","webpack:///./src/Faction/formulas/favor.ts","webpack:///./src/CodingContractGenerator.ts","webpack:///./src/ExportBonus.tsx","webpack:///./src/ui/React/ReputationRate.tsx","webpack:///./src/Faction/ui/Option.tsx","webpack:///./src/Bladeburner/Operation.ts","webpack:///./src/Augmentation/data/AugmentationCreator.tsx","webpack:///./src/Server/data/servers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveInfiltrateWork.ts","webpack:///./src/Company/CompanyPosition.ts","webpack:///./src/StockMarket/PlayerInfluencing.ts","webpack:///./src/utils/helpers/checkEnum.ts","webpack:///./src/SourceFile/SourceFiles.tsx","webpack:///./src/Bladeburner/ui/StartButton.tsx","webpack:///./src/ui/React/CorruptableText.tsx","webpack:///./src/Work/GraftingWork.tsx","webpack:///./src/utils/helpers/formatTime.ts","webpack:///./src/Faction/FactionInfo.tsx","webpack:///./src/Work/formulas/Faction.ts","webpack:///./src/Hacknet/HashManager.ts","webpack:///./src/ui/InteractiveTutorial/ITutorialEvents.ts","webpack:///./src/Crime/CrimeHelpers.ts","webpack:///./src/Corporation/OfficeSpace.ts","webpack:///./src/Corporation/data/CorporationUpgrades.ts","webpack:///./src/PersonObjects/Grafting/GraftableAugmentation.ts","webpack:///./src/ui/React/Progress.tsx","webpack:///./src/utils/Validator.ts","webpack:///./src/Infiltration/formulas/victory.ts","webpack:///./src/utils/MoneySourceTracker.ts","webpack:///./src/utils/CompressionContracts.ts","webpack:///./src/ui/React/StatsProgressBar.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectGangMethods.ts","webpack:///./src/Themes/Styles.ts","webpack:///./src/utils/helpers/compareArrays.ts","webpack:///./src/Hospital/Hospital.ts","webpack:///./src/Hacking/netscriptCanHack.ts","webpack:///./src/ui/React/PromptManager.tsx","webpack:///./src/Corporation/Product.ts","webpack:///./src/Corporation/ui/Helpers.tsx","webpack:///./src/Programs/ui/ProgramsRoot.tsx","webpack:///./src/Faction/ui/FactionsRoot.tsx","webpack:///./src/RedPill.tsx","webpack:///./src/ui/React/RecoveryRoot.tsx","webpack:///./src/Script/RamCalculationErrorCodes.ts","webpack:///./src/NetworkShare/Share.tsx","webpack:///./src/Netscript/WorkerScript.ts","webpack:///./src/PersonObjects/Sleeve/Sleeve.ts","webpack:///./src/Corporation/Corporation.tsx","webpack:///./src/Bladeburner/City.ts","webpack:///./src/Locations/City.ts","webpack:///./src/GameOptions/ui/OptionsSlider.tsx","webpack:///./src/StockMarket/ui/StockTickersConfig.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectServerMethods.ts","webpack:///./src/Prestige.ts","webpack:///./src/Bladeburner/Action.tsx","webpack:///./src/Gang/GangMemberTask.ts","webpack:///./src/Work/CrimeWork.ts","webpack:///./src/ui/Apr1.tsx","webpack:///./src/ui/React/WorldMap.tsx","webpack:///./src/Bladeburner/ui/SuccessChance.tsx","webpack:///./src/ui/React/StaticModal.tsx","webpack:///./src/PersonObjects/Sleeve/Work/SleeveRecoveryWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveSynchroWork.ts","webpack:///./src/Script/RunningScript.ts","webpack:///./src/Literature/LiteratureHelpers.ts","webpack:///./src/DarkWeb/DarkWeb.tsx","webpack:///./src/Infiltration/formulas/game.ts","webpack:///./src/Terminal/Parser.ts","webpack:///./src/ui/React/CinematicText.tsx","webpack:///./src/GameOptions/ui/GameOptionsPage.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveCovenantPurchases.tsx","webpack:///./src/Script/RamCalculations.ts","webpack:///./src/utils/helpers/roundToTwo.ts","webpack:///./src/Netscript/Pid.ts","webpack:///./src/NetscriptFunctions.ts","webpack:///./src/Gang/Gang.ts","webpack:///./src/Faction/formulas/donation.ts","webpack:///./src/RemoteFileAPI/RemoteFileAPI.ts","webpack:///./src/Company/GetJobRequirementText.ts","webpack:///./src/Terminal/HelpText.ts","webpack:///./src/utils/ErrorHelper.ts","webpack:///./src/utils/helpers/getRandomByte.ts","webpack:///./src/Bladeburner/data/Growths.ts","webpack:///./src/Locations/createCityMap.ts","webpack:///./src/Casino/CardDeck/Hand.ts","webpack:///./src/StockMarket/ui/StockTickerTxButton.tsx","webpack:///./src/CotMG/ui/DummyGrid.tsx","webpack:///./src/Server/BaseServer.ts","webpack:///./src/ui/React/CodingContractModal.tsx","webpack:///./src/BitNode/ui/BitFlumeModal.tsx","webpack:///./src/PersonObjects/Player/PlayerObject.ts","webpack:///./src/Faction/ui/InvitationModal.tsx","webpack:///./src/ThirdParty/JSInterpreter.js","webpack:///./src/Server/formulas/grow.ts","webpack:///./src/Gang/GangMember.ts","webpack:///./src/NetscriptFunctions/toNative.ts","webpack:///./src/ui/React/ANSIITypography.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveHelpers.ts","webpack:///./src/Work/formulas/Crime.ts","webpack:///./src/Bladeburner/data/GeneralActions.tsx","webpack:///./src/Work/formulas/Company.ts","webpack:///./src/CotMG/StaneksGiftEvents.ts","webpack:///./src/Locations/data/LocationsMetadata.ts","webpack:///./src/Terminal/commands/download.ts","webpack:///./src/utils/V2Modal.tsx","webpack:///./src/SourceFile/PlayerOwnedSourceFile.ts","webpack:///./src/Bladeburner/data/Icons.tsx","webpack:///./src/Bladeburner/ui/ActionLevel.tsx","webpack:///./src/Bladeburner/ui/Autolevel.tsx","webpack:///./src/Bladeburner/ui/TeamSizeButton.tsx","webpack:///./src/PersonObjects/Grafting/ui/GraftingRoot.tsx","webpack:///./src/Infiltration/ui/BlinkingCursor.tsx","webpack:///./src/ScriptEditor/NetscriptDefinitions.d.ts","webpack:///./src/Themes/ui/StyleEditorButton.tsx","webpack:///./src/Themes/ui/ThemeEditorButton.tsx","webpack:///./src/Themes/ui/ThemeCollaborate.tsx","webpack:///./src/ui/React/DeleteGameButton.tsx","webpack:///./src/ui/React/SoftResetButton.tsx","webpack:///./src/Augmentation/ui/PurchasableAugmentations.tsx","webpack:///./src/Locations/ui/TravelAgencyRoot.tsx","webpack:///./src/ScriptEditor/ui/ScriptEditorRoot.tsx","webpack:///./src/Terminal/DirectoryServerHelpers.ts","webpack:///./src/NetscriptJSEvaluator.ts","webpack:///./src/NetscriptFunctions/Flags.ts","webpack:///./src/ui/React/TablePaginationActionsAll.tsx","webpack:///./src/BitNode/ui/BitnodeMultipliersDescription.tsx","webpack:///./src/CotMG/ui/Cell.tsx","webpack:///./src/CotMG/ui/Grid.tsx","webpack:///./src/Script/RunningScriptHelpers.ts","webpack:///./src/Terminal/commands/common/editor.ts","webpack:///./src/utils/HammingCodeTools.ts","webpack:///./src/Bladeburner/Contract.ts","webpack:///./src/Bladeburner/data/Help.ts","webpack:///./src/Corporation/ResearchTree.ts","webpack:///./src/StockMarket/StockMarketConstants.ts","webpack:///./src/CotMG/data/Constants.ts","webpack:///./src/utils/v1APIBreak.ts","webpack:///./src/Company/GetNextCompanyPosition.ts","webpack:///./src/PersonObjects/Player/PlayerObjectBladeburnerMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectCorporationMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectWorkMethods.ts","webpack:///./src/engine.tsx","webpack:///./src/Themes/data/index.ts","webpack:///./src/ui/LoadingScreen.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectAugmentationMethods.ts","webpack:///./src/utils/helpers/isValidNumber.ts","webpack:///./src/StockMarket/Order.ts","webpack:///./src/CotMG/StaneksGift.ts","webpack:///./src/Locations/Location.ts","webpack:///./src/RemoteFileAPI/MessageHandlers.ts","webpack:///./src/PersonObjects/Sleeve/ui/StatsElement.tsx","webpack:///./src/ui/React/ServerDropdown.tsx","webpack:///./src/Casino/Blackjack.tsx","webpack:///./src/Casino/CardDeck/ReactCard.tsx","webpack:///./src/Milestones/Milestones.ts","webpack:///./src/StockMarket/data/TickerHeaderFormatData.ts","webpack:///./src/Achievements/AchievementEntry.tsx","webpack:///./src/ThirdParty/colorUtils.ts","webpack:///./src/Themes/data/default/index.ts","webpack:///./src/Themes/data/default-lite/index.ts","webpack:///./src/Themes/data/monokai-ish/index.ts","webpack:///./src/Themes/data/warmer/index.ts","webpack:///./src/Themes/data/dark-plus/index.ts","webpack:///./src/Themes/data/mayukai-dark/index.ts","webpack:///./src/Themes/data/purple/index.ts","webpack:///./src/Themes/data/smooth-green/index.ts","webpack:///./src/Themes/data/dracula/index.ts","webpack:///./src/Themes/data/dark-blue/index.ts","webpack:///./src/Themes/data/discord-like/index.ts","webpack:///./src/Themes/data/one-dark/index.ts","webpack:///./src/Themes/data/muted-gold-blue/index.ts","webpack:///./src/Themes/data/light/index.ts","webpack:///./src/Themes/data/default/screenshot.png","webpack:///./src/Themes/data/default-lite/screenshot.png","webpack:///./src/Themes/data/monokai-ish/screenshot.png","webpack:///./src/Themes/data/warmer/screenshot.png","webpack:///./src/Themes/data/dark-plus/screenshot.png","webpack:///./src/Themes/data/mayukai-dark/screenshot.png","webpack:///./src/Themes/data/purple/screenshot.png","webpack:///./src/Themes/data/smooth-green/screenshot.png","webpack:///./src/Themes/data/dracula/screenshot.png","webpack:///./src/Themes/data/dark-blue/screenshot.png","webpack:///./src/Themes/data/discord-like/screenshot.png","webpack:///./src/Themes/data/one-dark/screenshot.png","webpack:///./src/Themes/data/muted-gold-blue/screenshot.png","webpack:///./src/Themes/data/light/screenshot.png","webpack:///./src/Terminal/Terminal.ts","webpack:///./src/data/codingcontracttypes.ts","webpack:///./src/utils/Heap.ts","webpack:///./src/utils/helpers/createRandomString.ts","webpack:///./src/Programs/Program.ts","webpack:///./src/Programs/data/ProgramsMetadata.ts","webpack:///./src/utils/helpers/isValidIPAddress.ts","webpack:///./src/PersonObjects/ITaskTracker.ts","webpack:///./src/utils/helpers/getTimestamp.ts","webpack:///./src/NetworkShare/formulas/share.tsx","webpack:///./src/Company/data/CompaniesMetadata.ts","webpack:///./src/Corporation/Research.ts","webpack:///./src/Corporation/data/ResearchMetadata.ts","webpack:///./src/Hacknet/HashUpgrade.ts","webpack:///./src/Hacknet/data/HashUpgradesMetadata.tsx","webpack:///./src/Netscript/Environment.ts","webpack:///./src/utils/helpers/isPowerOfTwo.ts","webpack:///./src/Gang/data/tasks.ts","webpack:///./src/Gang/GangMemberUpgrade.ts","webpack:///./src/StockMarket/data/InitStockMetadata.ts","webpack:///./src/NetscriptFunctions/Gang.ts","webpack:///./src/Gang/data/power.ts","webpack:///./src/NetscriptFunctions/Sleeve.ts","webpack:///./src/Company/data/CompanyPositionsMetadata.ts","webpack:///./src/NetscriptFunctions/Extra.ts","webpack:///./src/NetscriptFunctions/Hacknet.ts","webpack:///./src/NetscriptFunctions/Stanek.ts","webpack:///./src/CotMG/formulas/effect.ts","webpack:///./src/NetscriptFunctions/Infiltration.ts","webpack:///./src/NetscriptFunctions/UserInterface.ts","webpack:///./src/NetscriptFunctions/Bladeburner.ts","webpack:///./src/NetscriptFunctions/CodingContract.ts","webpack:///./src/NetscriptFunctions/Corporation.ts","webpack:///./src/Corporation/Industry.ts","webpack:///./src/utils/calculateEffectWithFactors.ts","webpack:///./src/Corporation/Employee.ts","webpack:///./src/Corporation/ProductRatingWeights.ts","webpack:///./src/NetscriptFunctions/Formulas.ts","webpack:///./src/NetscriptFunctions/StockMarket.ts","webpack:///./src/NetscriptFunctions/Grafting.ts","webpack:///./src/utils/v2APIBreak.ts","webpack:///./src/ui/InteractiveTutorial/InteractiveTutorialRoot.tsx","webpack:///./src/ui/InteractiveTutorial/NSSelection.tsx","webpack:///./src/ui/React/Overview.tsx","webpack:///./src/Sidebar/ui/SidebarRoot.tsx","webpack:///./src/Programs/ProgramHelpers.ts","webpack:///./src/Augmentation/ui/AugmentationsRoot.tsx","webpack:///./src/Augmentation/ui/InstalledAugmentations.tsx","webpack:///./src/Augmentation/ui/PlayerMultipliers.tsx","webpack:///./src/Augmentation/ui/PurchasedAugmentations.tsx","webpack:///./src/Augmentation/ui/SourceFiles.tsx","webpack:///./src/DevMenu.tsx","webpack:///./src/DevMenu/ui/General.tsx","webpack:///./src/DevMenu/ui/Stats.tsx","webpack:///./src/DevMenu/ui/Factions.tsx","webpack:///./src/DevMenu/ui/Augmentations.tsx","webpack:///./src/DevMenu/ui/SourceFiles.tsx","webpack:///./src/DevMenu/ui/Programs.tsx","webpack:///./src/DevMenu/ui/Servers.tsx","webpack:///./src/DevMenu/ui/Companies.tsx","webpack:///./src/DevMenu/ui/Bladeburner.tsx","webpack:///./src/DevMenu/ui/Gang.tsx","webpack:///./src/DevMenu/ui/Corporation.tsx","webpack:///./src/DevMenu/ui/CodingContracts.tsx","webpack:///./src/DevMenu/ui/StockMarket.tsx","webpack:///./src/DevMenu/ui/Sleeves.tsx","webpack:///./src/DevMenu/ui/Stanek.tsx","webpack:///./src/DevMenu/ui/TimeSkip.tsx","webpack:///./src/DevMenu/ui/SaveFile.tsx","webpack:///./src/DevMenu/ui/Achievements.tsx","webpack:///./src/DevMenu/ui/Entropy.tsx","webpack:///./src/Bladeburner/ui/BladeburnerRoot.tsx","webpack:///./src/Bladeburner/ui/Stats.tsx","webpack:///./src/Bladeburner/ui/TravelModal.tsx","webpack:///./src/Bladeburner/ui/Console.tsx","webpack:///./src/Bladeburner/ui/AllPages.tsx","webpack:///./src/Bladeburner/ui/GeneralActionPage.tsx","webpack:///./src/Bladeburner/ui/GeneralActionList.tsx","webpack:///./src/Bladeburner/ui/GeneralActionElem.tsx","webpack:///./src/Bladeburner/ui/ContractPage.tsx","webpack:///./src/Bladeburner/ui/ContractList.tsx","webpack:///./src/Bladeburner/ui/ContractElem.tsx","webpack:///./src/Bladeburner/data/Contracts.tsx","webpack:///./src/Bladeburner/ui/StealthIcon.tsx","webpack:///./src/Bladeburner/ui/KillIcon.tsx","webpack:///./src/Bladeburner/ui/OperationPage.tsx","webpack:///./src/Bladeburner/ui/OperationList.tsx","webpack:///./src/Bladeburner/ui/OperationElem.tsx","webpack:///./src/Bladeburner/ui/TeamSizeModal.tsx","webpack:///./src/Bladeburner/data/Operations.tsx","webpack:///./src/Bladeburner/ui/BlackOpPage.tsx","webpack:///./src/Bladeburner/ui/BlackOpList.tsx","webpack:///./src/Bladeburner/ui/BlackOpElem.tsx","webpack:///./src/Bladeburner/data/BlackOperations.tsx","webpack:///./src/Bladeburner/ui/SkillPage.tsx","webpack:///./src/Bladeburner/ui/SkillList.tsx","webpack:///./src/Bladeburner/ui/SkillElem.tsx","webpack:///./src/Gang/ui/GangRoot.tsx","webpack:///./src/Gang/ui/ManagementSubpage.tsx","webpack:///./src/Gang/ui/GangStats.tsx","webpack:///./src/Gang/ui/BonusTime.tsx","webpack:///./src/Gang/ui/GangMemberList.tsx","webpack:///./src/Gang/ui/GangMemberCard.tsx","webpack:///./src/Gang/ui/GangMemberCardContent.tsx","webpack:///./src/Gang/ui/GangMemberStats.tsx","webpack:///./src/ui/React/KillScriptsModal.tsx","webpack:///./src/Gang/ui/TaskSelector.tsx","webpack:///./src/Gang/ui/TaskDescription.tsx","webpack:///./src/Gang/ui/AscensionModal.tsx","webpack:///./src/Gang/ui/RecruitButton.tsx","webpack:///./src/Gang/ui/RecruitModal.tsx","webpack:///./src/Gang/ui/TerritorySubpage.tsx","webpack:///./src/Gang/ui/TerritoryInfoModal.tsx","webpack:///./src/Gang/ui/EquipmentsSubpage.tsx","webpack:///./src/Corporation/ui/CorporationRoot.tsx","webpack:///./src/Corporation/ui/MainPanel.tsx","webpack:///./src/Corporation/ui/CityTabs.tsx","webpack:///./src/Corporation/ui/Industry.tsx","webpack:///./src/Corporation/ui/IndustryOffice.tsx","webpack:///./src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx","webpack:///./src/Corporation/ui/modals/ThrowPartyModal.tsx","webpack:///./src/Corporation/ui/IndustryOverview.tsx","webpack:///./src/Corporation/ui/modals/MakeProductModal.tsx","webpack:///./src/Corporation/ui/modals/ResearchModal.tsx","webpack:///./src/Corporation/ui/IndustryWarehouse.tsx","webpack:///./src/Corporation/ui/modals/SmartSupplyModal.tsx","webpack:///./src/Corporation/ui/ProductElem.tsx","webpack:///./src/Corporation/ui/modals/DiscontinueProductModal.tsx","webpack:///./src/Corporation/ui/modals/LimitProductProductionModal.tsx","webpack:///./src/Corporation/ui/modals/SellProductModal.tsx","webpack:///./src/Corporation/ui/modals/ProductMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/CancelProductModal.tsx","webpack:///./src/Corporation/ui/MaterialElem.tsx","webpack:///./src/Corporation/ui/modals/ExportModal.tsx","webpack:///./src/Corporation/ui/modals/MaterialMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/SellMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/PurchaseMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/LimitMaterialProductionModal.tsx","webpack:///./src/Corporation/ui/IndustryProductEquation.tsx","webpack:///./src/Corporation/ui/ExpandNewCity.tsx","webpack:///./src/Corporation/ui/ExpandIndustryTab.tsx","webpack:///./src/Corporation/ui/Overview.tsx","webpack:///./src/Corporation/ui/LevelableUpgrade.tsx","webpack:///./src/Corporation/ui/UnlockUpgrade.tsx","webpack:///./src/Corporation/ui/modals/BribeFactionModal.tsx","webpack:///./src/Corporation/ui/modals/SellSharesModal.tsx","webpack:///./src/Corporation/ui/modals/BuybackSharesModal.tsx","webpack:///./src/Corporation/ui/modals/IssueDividendsModal.tsx","webpack:///./src/Corporation/ui/modals/IssueNewSharesModal.tsx","webpack:///./src/Corporation/ui/modals/FindInvestorsModal.tsx","webpack:///./src/Corporation/ui/modals/GoPublicModal.tsx","webpack:///./src/Infiltration/ui/InfiltrationRoot.tsx","webpack:///./src/Infiltration/ui/Game.tsx","webpack:///./src/Infiltration/ui/BackwardGame.tsx","webpack:///./src/Infiltration/ui/BracketGame.tsx","webpack:///./src/Infiltration/ui/BribeGame.tsx","webpack:///./src/Infiltration/ui/CheatCodeGame.tsx","webpack:///./src/Infiltration/ui/Countdown.tsx","webpack:///./src/Infiltration/ui/Cyberpunk2077Game.tsx","webpack:///./src/Infiltration/ui/MinesweeperGame.tsx","webpack:///./src/Infiltration/ui/SlashGame.tsx","webpack:///./src/Infiltration/ui/Victory.tsx","webpack:///./src/Infiltration/ui/WireCuttingGame.tsx","webpack:///./src/Infiltration/ui/Intro.tsx","webpack:///./src/ui/WorkInProgressRoot.tsx","webpack:///./src/GameOptions/ui/GameOptionsRoot.tsx","webpack:///./src/GameOptions/ui/CurrentOptionsPage.tsx","webpack:///./src/RemoteFileAPI/Remote.ts","webpack:///./src/GameOptions/ui/ConnectionBauble.tsx","webpack:///./src/GameOptions/ui/GameOptionsSidebar.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveElem.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveAugmentationsModal.tsx","webpack:///./src/Augmentation/ui/PurchaseAugmentationModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TaskSelector.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TravelModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/FAQModal.tsx","webpack:///./src/Hacknet/ui/HacknetRoot.tsx","webpack:///./src/Hacknet/ui/GeneralInfo.tsx","webpack:///./src/Hacknet/ui/HacknetNodeElem.tsx","webpack:///./src/Hacknet/ui/HacknetServerElem.tsx","webpack:///./src/Hacknet/ui/HashUpgradeModal.tsx","webpack:///./src/Hacknet/ui/HacknetUpgradeElem.tsx","webpack:///./src/Hacknet/ui/MultiplierButtons.tsx","webpack:///./src/Hacknet/ui/PlayerInfo.tsx","webpack:///./src/Hacknet/ui/PurchaseButton.tsx","webpack:///./src/Locations/ui/GenericLocation.tsx","webpack:///./src/Locations/ui/CompanyLocation.tsx","webpack:///./src/Company/ui/QuitJobModal.tsx","webpack:///./src/Locations/ui/GymLocation.tsx","webpack:///./src/Locations/ui/HospitalLocation.tsx","webpack:///./src/Locations/ui/SlumsLocation.tsx","webpack:///./src/Locations/ui/SpecialLocation.tsx","webpack:///./src/Corporation/ui/modals/CreateCorporationModal.tsx","webpack:///./src/utils/helpers/N00dles.ts","webpack:///./src/Arcade/ui/ArcadeRoot.tsx","webpack:///./src/Arcade/ui/BBCabinet.tsx","webpack:///./src/Locations/ui/TechVendorLocation.tsx","webpack:///./src/Locations/ui/RamButton.tsx","webpack:///./src/Locations/ui/TorButton.tsx","webpack:///./src/Locations/LocationsHelpers.tsx","webpack:///./src/Locations/ui/CoresButton.tsx","webpack:///./src/Locations/ui/PurchaseServerModal.tsx","webpack:///./src/Locations/ui/TravelConfirmationModal.tsx","webpack:///./src/Locations/ui/UniversityLocation.tsx","webpack:///./src/Locations/ui/CasinoLocation.tsx","webpack:///./src/Casino/CardDeck/Deck.ts","webpack:///./src/Casino/CoinFlip.tsx","webpack:///./src/Casino/Roulette.tsx","webpack:///./src/Casino/SlotMachine.tsx","webpack:///./src/Locations/ui/City.tsx","webpack:///./src/ScriptEditor/ui/OptionsModal.tsx","webpack:///./src/ScriptEditor/ui/ThemeEditorModal.tsx","webpack:///./src/Milestones/ui/MilestonesRoot.tsx","webpack:///./src/Terminal/ui/TerminalRoot.tsx","webpack:///./src/Terminal/ui/TerminalInput.tsx","webpack:///./src/Terminal/determineAllPossibilitiesForTabCompletion.ts","webpack:///./src/Script/ScriptUrl.ts","webpack:///./src/Terminal/tabCompletion.ts","webpack:///./src/Tutorial/ui/TutorialRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/ScriptProduction.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordions.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordion.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordionContent.tsx","webpack:///./src/ui/ActiveScripts/WorkerScriptAccordion.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptAccordion.tsx","webpack:///./src/Faction/ui/FactionRoot.tsx","webpack:///./src/Faction/ui/AugmentationsPage.tsx","webpack:///./src/Faction/ui/DonateOption.tsx","webpack:///./src/Faction/ui/Info.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantPurchasesRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx","webpack:///./src/PersonObjects/Person.ts","webpack:///./src/SourceFile/applySourceFile.ts","webpack:///./src/Exploits/applyExploits.ts","webpack:///./src/Faction/ui/GangButton.tsx","webpack:///./src/Faction/ui/CreateGangModal.tsx","webpack:///./src/ui/CharacterStats.tsx","webpack:///./src/StockMarket/ui/StockMarketRoot.tsx","webpack:///./src/StockMarket/ui/InfoAndPurchases.tsx","webpack:///./src/StockMarket/ui/StockTickers.tsx","webpack:///./src/StockMarket/ui/StockTicker.tsx","webpack:///./src/StockMarket/ui/StockTickerHeaderText.tsx","webpack:///./src/StockMarket/ui/StockTickerOrderList.tsx","webpack:///./src/StockMarket/ui/StockTickerOrder.tsx","webpack:///./src/StockMarket/ui/StockTickerPositionText.tsx","webpack:///./src/StockMarket/ui/PlaceOrderModal.tsx","webpack:///./src/BitNode/ui/BitverseRoot.tsx","webpack:///./src/BitNode/ui/PortalModal.tsx","webpack:///./src/ui/React/CinematicLine.tsx","webpack:///./src/CotMG/ui/StaneksGiftRoot.tsx","webpack:///./src/CotMG/ui/MainBoard.tsx","webpack:///./src/CotMG/ui/FragmentInspector.tsx","webpack:///./src/CotMG/ui/FragmentSelector.tsx","webpack:///./src/CotMG/ui/FragmentPreview.tsx","webpack:///./src/CotMG/ui/ActiveFragmentSummary.tsx","webpack:///./src/CotMG/DummyGift.ts","webpack:///./src/Bladeburner/ui/BladeburnerCinematic.tsx","webpack:///./src/Exploits/Unclickable.tsx","webpack:///./src/Achievements/AchievementsRoot.tsx","webpack:///./src/Achievements/AchievementList.tsx","webpack:///./src/Achievements/AchievementIcon.tsx","webpack:///./src/ui/ErrorBoundary.tsx","webpack:///./src/Themes/ui/ThemeBrowser.tsx","webpack:///./src/Themes/ui/ThemeEntry.tsx","webpack:///./src/ui/React/ImportSaveRoot.tsx","webpack:///./src/ui/React/BypassWrapper.tsx","webpack:///./src/NetscriptFunctions/Singularity.ts","webpack:///./src/Netscript/APIWrapper.ts","webpack:///./src/NetscriptPort.ts","webpack:///./src/utils/helpers/clearObject.ts","webpack:///./src/PersonObjects/Grafting/EntropyAccumulation.ts","webpack:///./src/Corporation/CorporationState.ts","webpack:///./src/Literature/Literatures.ts","webpack:///./src/Terminal/commands/alias.ts","webpack:///./src/Terminal/commands/analyze.ts","webpack:///./src/Terminal/commands/backdoor.ts","webpack:///./src/Terminal/commands/buy.ts","webpack:///./src/Terminal/commands/cat.ts","webpack:///./src/Terminal/commands/cd.ts","webpack:///./src/Terminal/commands/check.ts","webpack:///./src/Terminal/commands/connect.ts","webpack:///./src/Terminal/commands/cp.ts","webpack:///./src/Terminal/commands/expr.ts","webpack:///./src/Terminal/commands/free.ts","webpack:///./src/Terminal/commands/grow.ts","webpack:///./src/Terminal/commands/hack.ts","webpack:///./src/Terminal/commands/help.ts","webpack:///./src/Terminal/commands/history.ts","webpack:///./src/Terminal/commands/home.ts","webpack:///./src/Terminal/commands/hostname.ts","webpack:///./src/Terminal/commands/kill.ts","webpack:///./src/Terminal/commands/killall.ts","webpack:///./src/Terminal/commands/ls.tsx","webpack:///./src/Terminal/commands/lscpu.ts","webpack:///./src/Terminal/commands/mem.ts","webpack:///./src/Terminal/commands/mv.ts","webpack:///./src/Terminal/commands/nano.ts","webpack:///./src/ScriptEditor/CursorPositions.ts","webpack:///./src/Terminal/commands/ps.ts","webpack:///./src/Terminal/commands/rm.ts","webpack:///./src/Terminal/commands/run.ts","webpack:///./src/Terminal/commands/runScript.ts","webpack:///./src/Terminal/commands/runProgram.ts","webpack:///./src/Terminal/commands/scan.ts","webpack:///./src/Terminal/commands/scananalyze.ts","webpack:///./src/Terminal/commands/scp.ts","webpack:///./src/Terminal/commands/sudov.ts","webpack:///./src/Terminal/commands/tail.ts","webpack:///./src/Terminal/commands/top.ts","webpack:///./src/Terminal/commands/unalias.ts","webpack:///./src/Terminal/commands/vim.ts","webpack:///./src/Terminal/commands/weaken.ts","webpack:///./src/Terminal/commands/wget.ts","webpack:///./src/Terminal/commands/apr1.ts","webpack:///./src/Exploits/loops.ts","webpack:///./src/UncaughtPromiseHandler.ts","webpack:///./src/index.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Player","PlayerObject","loadPlayer","saveString","JSON","parse","Reviver","money","parseFloat","exploits","sanitizeExploits","helpers","string","number","ctx","argName","v","x","isNaN","makeRuntimeErrorMsg","scriptArgs","argsToString","args","out","arg","undefined","toNative","stringify","isScriptErrorMessage","msg","isString","split","makeRuntimeRejectMsg","resolveNetscriptRequestedThreads","requestedThreads","threads","workerScript","scriptRef","requestedThreadsAsInt","function","checkEnvFlags","ws","env","stopFlag","ScriptDeath","runningFn","errorMessage","delayReject","checkSingularityAccess","bitNodeN","sourceFileLvl","netscriptDelay","time","Promise","resolve","reject","delay","setTimeout","updateDynamicRam","ramCost","fnName","dynamicLoadedFns","console","warn","hostname","dynamicRamUsage","ramUsage","numeralWrapper","formatRAM","city","values","CityName","includes","getServer","scriptIdentifier","scriptID","_hostname","_args","pid","scriptname","Error","hack","async","manual","stock","server","Server","hackingTime","calculateHackingTime","canHack","netscriptCanHack","res","log","convertTimeMsToTimeElapsedString","formatThreads","then","hackChance","calculateHackingChance","rand","Math","random","expGainedOnSuccess","calculateHackingExpGain","expGainedOnFailure","percentHacked","calculatePercentMoneyHacked","maxThreadNeeded","ceil","moneyDrained","floor","moneyAvailable","moneyGained","BitNodeMultipliers","ScriptHackMoneyGain","ManualHackMoney","gainMoney","onlineMoneyMade","scriptProdSinceLastAug","recordHack","gainHackingExp","gainIntelligenceExp","onlineExpGained","formatMoney","formatExp","fortify","CONSTANTS","ServerFortifyAmount","min","influenceStockThroughServerHack","backdoorInstalled","getValidPort","port","NumNetscriptPorts","round","iport","NetscriptPorts","player","roughlyIs","hp","mults","numPeopleKilled","location","totalPlaytime","playtimeSinceLastAug","playtimeSinceLastBitnode","jobs","factions","tor","inBladeburner","hasCorporation","entropy","cpuCores","ftpPortOpen","hasAdminRights","httpPortOpen","ip","isConnectedTo","maxRam","organizationName","ramUsed","smtpPortOpen","sqlPortOpen","sshPortOpen","purchasedByPlayer","baseDifficulty","hackDifficulty","minDifficulty","moneyMax","numOpenPortsRequired","openPortCount","requiredHackingSkill","serverGrowth","gang","g","respect","territory","wantedLevel","gangMember","GangMember","gangTask","GangMemberTask","getFunctionNames","obj","prefix","functionNames","entries","getRunningScript","ident","GetAllServers","runningScript","findRunningScriptByPid","getRunningScriptByPid","getRunningScriptByArgs","getCannotFindRunningScriptErrorMessage","arrayToString","createPublicRunningScript","filename","logs","offlineExpGained","offlineMoneyMade","offlineRunningTime","onlineRunningTime","failOnHacknetServer","callingFn","HacknetServer","Array","isArray","every","isScriptArgs","scriptUrl","dependencies","replace","RegExp","url","errstack","stack","caller","scripts","userstack","stackline","script","dependency","parseChromeStackline","line","lineMatch","match","funcMatch","func","chromeCall","parseFirefoxStackline","lio","lastIndexOf","firefoxCall","rejectMsg","join","GetServer","expect","actual","expects","keys","actuals","message","functionPath","fn","findRunningScript","FactionNames","defaultSettings","ActiveScriptsServerPageSize","ActiveScriptsScriptPageSize","AutosaveInterval","CodeInstructionRunTime","DisableASCIIArt","DisableHotkeys","DisableTextEffects","DisableOverviewProgressBars","EnableBashHotkeys","TimestampsFormat","Locale","MaxRecentScriptsCapacity","MaxLogCapacity","MaxPortCapacity","MaxTerminalCapacity","RemoteFileApiPort","SaveGameOnFileSave","SuppressBuyAugmentationConfirmation","SuppressFactionInvites","SuppressMessages","SuppressTravelConfirmation","SuppressBladeburnerPopup","SuppressTIXPopup","SuppressSavedGameToast","SuppressAutosaveDisabledWarnings","UseIEC60027_2","ExcludeRunningScriptsFromSave","IsSidebarOpened","theme","defaultTheme","styles","defaultStyles","overview","y","opened","EditorTheme","defaultMonacoTheme","Settings","OwnedAugmentationsOrder","OwnedAugmentationsOrderSetting","AcquirementTime","PurchaseAugmentationsOrder","PurchaseAugmentationsOrderSetting","Default","MonacoTheme","MonacoInsertSpaces","MonacoFontSize","MonacoVim","MonacoWordWrap","init","assign","load","save","extraFormats","extraNotations","gigaMultiplier","constructor","this","defaultLocale","updateLocale","numeral","locale","format","abs","answer","formatBigNumber","formatReallyBigNumber","decimalPlaces","nAbs","Infinity","repeat","str","formatHp","formatSkill","formatHashes","formatReputation","formatFavor","formatSecurity","toFixed","formatPercentage","formatter","formatServerSecurity","formatRespect","formatWanted","formatMultiplier","formatSleeveShock","formatSleeveSynchro","formatSleeveMemory","formatPopulation","formatStamina","formatShares","formatInfiltrationSecurity","formatStaneksGiftHeat","formatStaneksGiftCharge","formatStaneksGiftPower","parseCustomLargeNumber","numericRegExp","NaN","notation","notationIndex","indexOf","largestAbsoluteNumber","n1","n2","n3","max","parseMoney","numeralValue","parsed","selfParsed","LocationName","AugmentationNames","VersionString","VersionNumber","_idleSpeed","MaxSkillLevel","MilliPerCycle","CorpFactionRepRequirement","BaseCostFor1GBOfRamHome","BaseCostFor1GBOfRamServer","TravelCost","BaseFavorToDonate","DonateMoneyToRepDivisor","FactionReputationToFavorBase","FactionReputationToFavorMult","CompanyReputationToFavorBase","CompanyReputationToFavorMult","NeuroFluxGovernorLevelMult","HomeComputerMaxRam","ServerBaseGrowthRate","ServerMaxGrowthRate","ServerWeakenAmount","PurchasedServerLimit","PurchasedServerMaxRam","MultipleAugMultiplier","TorRouterCost","WSEAccountCost","TIXAPICost","MarketData4SCost","MarketDataTixApi4SCost","StockMarketCommission","HospitalCostPerHp","IntelligenceCrimeWeight","IntelligenceInfiltrationWeight","IntelligenceCrimeBaseExpGain","IntelligenceProgramBaseExpGain","IntelligenceGraftBaseExpGain","IntelligenceTerminalHackBaseExpGain","IntelligenceSingFnBaseExpGain","IntelligenceClassBaseExpGain","MillisecondsPer20Hours","GameCyclesPer20Hours","MillisecondsPer10Hours","GameCyclesPer10Hours","MillisecondsPer8Hours","GameCyclesPer8Hours","MillisecondsPer4Hours","GameCyclesPer4Hours","MillisecondsPer2Hours","GameCyclesPer2Hours","MillisecondsPerHour","GameCyclesPerHour","MillisecondsPerHalfHour","GameCyclesPerHalfHour","MillisecondsPerQuarterHour","GameCyclesPerQuarterHour","MillisecondsPerFiveMinutes","GameCyclesPerFiveMinutes","BaseFocusBonus","ClassDataStructuresBaseCost","ClassNetworksBaseCost","ClassAlgorithmsBaseCost","ClassManagementBaseCost","ClassLeadershipBaseCost","ClassGymBaseCost","ClassStudyComputerScienceBaseExp","ClassDataStructuresBaseExp","ClassNetworksBaseExp","ClassAlgorithmsBaseExp","ClassManagementBaseExp","ClassLeadershipBaseExp","CodingContractBaseFactionRepGain","CodingContractBaseCompanyRepGain","CodingContractBaseMoneyGain","AugmentationGraftingCostMult","AugmentationGraftingTimeBase","SoACostMult","SoARepMult","EntropyEffect","TotalNumBitNodes","InfiniteLoopLimit","Donations","LatestUpdate","ctor","constructors","fromJSON","validationData","validateObject","Generic_toJSON","ctorName","index","Generic_fromJSON","dialogBoxCreate","txt","AlertEvents","emit","component","sx","dangerouslySetInnerHTML","__html","useStyles","makeStyles","createStyles","unbuyable","color","palette","action","disabled","colors","Money","props","classes","canAfford","className","defaultMultipliers","AllServers","isValidIPAddress","GetServerByHostname","ipserver","GetServerByIP","servers","DeleteServer","serverkey","ipExists","hostName","createUniqueRandomIp","createRandomIp","AddToAllServers","initForeignServers","homeComputer","networkLayers","toNumber","getRandomInt","metadata","serverMetadata","serverParams","maxRamExponent","pow","literature","messages","SpecialServers","WorldDaemon","WorldDaemonDifficulty","networkLayer","linkNetworkLayers","network1","selectServer","server1","server2","serversOnNetwork","getRandomArrayItem","arr","prestigeAllServers","member","loadAllServers","saveAllServers","excludeRunningScripts","TempAllServers","runningScripts","runningScriptObj","Page","Context","React","createContext","Router","use","useContext","showMilli","totalSeconds","days","secondPerHours","secTruncDays","hours","secondPerMinute","secTruncHours","minutes","secTruncMinutes","milliTruncSec","longestCommonStart","strings","containsAllStrings","A","concat","sort","a1","a2","L","a","charAt","b","toUpperCase","substring","formatNumber","num","numFractionDigits","toLocaleString","maximumFractionDigits","minimumFractionDigits","generateRandomString","chars","cyrb53","seed","h1","h2","ch","charCodeAt","imul","toString","Factions","loadFactions","faction","getInfo","err","error","factionExists","initFactions","FactionInfos","resetFaction","Faction","newFactionObject","factionName","favor","AddToFactions","KEY","KEYCODE","SoftwareCompanyPositions","ITCompanyPositions","SecurityEngineerCompanyPositions","NetworkEngineerCompanyPositions","BusinessCompanyPositions","SecurityCompanyPositions","AgentCompanyPositions","MiscCompanyPositions","SoftwareConsultantCompanyPositions","BusinessConsultantCompanyPositions","PartTimeCompanyPositions","lower","upper","AllCorporationStates","CorporationConstants","INITIALSHARES","SHARESPERPRICEUPDATE","IssueNewSharesCooldown","SellSharesCooldown","CyclesPerMarketCycle","CyclesPerIndustryStateCycle","SecsPerMarketCycle","Cities","Aevum","Chongqing","Sector12","NewTokyo","Ishima","Volhaven","WarehouseInitialCost","WarehouseInitialSize","WarehouseUpgradeBaseCost","OfficeInitialCost","OfficeInitialSize","OfficeUpgradeBaseCost","BribeThreshold","BribeToRepRatio","ProductProductionCostRatio","DividendMaxRate","EmployeeSalaryMultiplier","CyclesPerEmployeeRaise","EmployeeRaiseAmount","BaseMaxProducts","AllMaterials","AllIndustryTypes","AllUnlocks","AllUpgrades","AllResearch","FundingRoundShares","FundingRoundMultiplier","AvgProfitLength","Augmentation","params","info","moneyCost","repCost","prereqs","baseRepRequirement","freeze","baseCost","isSpecial","hacking","strength","defense","dexterity","agility","charisma","hacking_exp","strength_exp","defense_exp","dexterity_exp","agility_exp","charisma_exp","hacking_chance","hacking_speed","hacking_money","hacking_grow","company_rep","faction_rep","crime_money","crime_success","work_money","hacknet_node_money","hacknet_node_purchase_cost","hacknet_node_ram_cost","hacknet_node_core_cost","hacknet_node_level_cost","bladeburner_max_stamina","bladeburner_stamina_gain","bladeburner_analysis","bladeburner_success_chance","stats","programs","startingMoney","f","decimals","desc","generateStatsDescription","addToFactions","factionList","augmentations","getCost","augmentationReference","StaticAugmentations","NeuroFluxGovernor","nextLevel","getLevel","multiplier","AugmentationRepCost","AugmentationMoneyCost","queuedAugmentations","getBaseAugmentationPriceMultiplier","ShadowsOfAnarchy","soaAugmentationNames","initSoAAugmentations","map","augmentation","soaMultiplier","filter","augmentationName","hasAugmentation","find","getGenericAugmentationPriceMultiplier","currLevel","level","addToAllFactions","fac","facObj","special","toJSON","modal","display","alignItems","justifyContent","paper","backgroundColor","background","default","border","primary","main","boxShadow","dark","padding","maxWidth","maxHeight","overflow","scrollbarWidth","Modal","disableRestoreFocus","disableScrollLock","disableEnforceFocus","disableAutoFocus","open","onClose","closeAfterTransition","in","children","HacknetNodeConstants","MoneyGainPerLevel","BaseCost","LevelBaseCost","RamBaseCost","CoreBaseCost","PurchaseNextMult","UpgradeLevelMult","UpgradeRamMult","UpgradeCoreMult","MaxLevel","MaxRam","MaxCores","PurchaseMultipliers","x1","x5","x10","MAX","HacknetServerConstants","HashesPerLevel","CacheBaseCost","PurchaseMult","UpgradeCacheMult","MaxServers","MaxCache","EmployeePositions","Operations","Engineer","Business","Management","RandD","Training","Unassigned","ActionTypes","Idle","Contract","Operation","BlackOp","BlackOperation","Recruitment","FieldAnalysis","Diplomacy","iTutorialSteps","ITutorial","currStep","Start","isRunning","stepIsDone","NSSelection","GoToCharacterPage","CharacterPage","CharacterGoToTerminalPage","TerminalIntro","TerminalHelp","TerminalLs","TerminalScan","TerminalScanAnalyze1","TerminalScanAnalyze2","TerminalConnect","TerminalAnalyze","TerminalNuke","TerminalManualHack","TerminalHackingMechanics","TerminalGoHome","TerminalCreateScript","TerminalTypeScript","TerminalFree","TerminalRunScript","TerminalGoToActiveScriptsPage","ActiveScriptsPage","ActiveScriptsToTerminal","TerminalTailScript","GoToHacknetNodesPage","HacknetNodesIntroduction","HacknetNodesGoToWorldPage","WorldDescription","TutorialPageInfo","End","iTutorialStart","iTutorialNextStep","iTutorialEnd","ITutorialEvents","iTutorialPrevStep","getHomeComputer","LiteratureNames","HackersStartingHandbook","BaseServer","super","startsWith","createRandomString","ServerStartingMoney","ServerMaxMoney","ServerStartingSecurity","capDifficulty","changeMinimumSecurity","perc","changeMaximumMoney","aboveCap","amt","weaken","ServerWeakenRate","Corporation","Division","useCorporation","useDivision","Industries","Energy","Utilities","Agriculture","Fishing","Mining","Food","Tobacco","Chemical","Pharmaceutical","Computer","Robotics","Software","Healthcare","RealEstate","IndustryStartingCosts","IndustryDescriptions","corp","IndustryResearchTrees","getBaseResearchTreeCopy","getProductIndustryResearchTreeCopy","resetIndustryResearchTrees","LocationType","ClassType","Classes","StudyComputerScience","youAreCurrently","type","earnings","newWorkStats","hackExp","intExp","DataStructures","Networks","Algorithms","chaExp","Leadership","GymStrength","strExp","GymDefense","defExp","GymDexterity","dexExp","GymAgility","agiExp","isClassWork","w","WorkType","CLASS","ClassWork","Work","singularity","classType","Sector12RothmanUniversity","isGym","getClass","calculateRates","calculateClassEarningsRate","process","cycles","cyclesWorked","rate","applyWorkStats","sumWorkStats","finish","APICopy","hasHacknetServers","purchaseHacknet","numOwned","hacknetNodes","cost","getCostOfNextHacknetServer","loseMoney","createHacknetServer","updateHashManagerCapacity","getCostOfNextHacknetNode","node","HacknetNode","hasMaxNumberHacknetServers","calculateNodeCost","calculateServerCost","getMaxNumberLevelUpgrades","nodeObj","maxLevel","calculateLevelUpgradeCost","levelsToMax","curr","getMaxNumberRamUpgrades","calculateRamUpgradeCost","log2","ram","getMaxNumberCoreUpgrades","calculateCoreUpgradeCost","cores","getMaxNumberCacheUpgrades","calculateCacheUpgradeCost","cache","purchaseLevelUpgrade","levels","sanitizedLevels","isServer","upgradeLevel","purchaseRamUpgrade","upgradeRam","purchaseCoreUpgrade","upgradeCore","purchaseCacheUpgrade","upgradeCache","processHacknetEarnings","numCycles","hashManager","HashManager","hashes","hserver","updateHashRate","h","wastedHashes","storeHashes","upgrade","HashUpgrades","processAllHacknetServerEarnings","total","processSingleHacknetNodeEarnings","processAllHacknetNodeEarnings","totalEarnings","nodes","updateCapacity","hashCapacity","purchaseHashUpgrade","upgName","upgTarget","count","upg","corporation","refundUpgrade","funds","target","e","division","divisions","sciResearch","qty","bladeburner","changeRank","skillPoints","generateRandomContract","NewIndustry","industry","Industry","NewCity","offices","OfficeSpace","loc","size","UnlockUpgrade","price","unlockUpgrades","unlock","LevelUpgrade","basePrice","priceMult","upgrades","IssueDividends","dividendRate","SellMaterial","mat","temp","bCost","eval","sCost","q","tempQty","maxsll","prd","sllman","SellProduct","product","all","cities","tempCity","SetSmartSupply","warehouse","smartSupply","smartSupplyEnabled","SetSmartSupplyUseLeftovers","material","useLeftover","smartSupplyUseLeftovers","BuyMaterial","buy","BulkPurchase","matSize","MaterialSizes","maxAmount","sizeUsed","SellShares","numShares","public","shareSaleCooldown","stockSaleResults","calculateShareSale","profit","newSharePrice","newSharesUntilUpdate","issuedShares","sharePrice","shareSalesUntilPriceUpdate","BuyBackShares","buybackPrice","AssignJob","office","employeeName","job","employee","employees","assignSingleJob","AutoAssignJob","autoAssignJob","UpgradeOfficeSize","initialPriceMult","mult","BuyCoffee","getCoffeeCost","setCoffee","ThrowParty","costPerEmployee","setParty","PurchaseWarehouse","warehouses","Warehouse","UpgradeWarehouseCost","from","reduce","acc","UpgradeWarehouse","sizeUpgradeCost","updateSize","HireAdVert","getAdVertCost","applyAdVert","MakeProduct","productName","designInvest","marketingInvest","makesProducts","maxProducts","hasResearch","products","Product","trim","createCity","designCost","advCost","Research","researchName","researchTree","getAllNodes","research","ResearchMap","researched","ExportMaterial","divisionName","cityName","sanitizedAmt","isRelevantMaterial","exportObj","ind","exp","CancelExportMaterial","LimitProductProduction","prdman","LimitMaterialProduction","SetMaterialMarketTA1","on","marketTa1","SetMaterialMarketTA2","marketTa2","SetProductMarketTA1","SetProductMarketTA2","BlackOperationNames","t_homeComp","safetlyCreateUniqueServer","adminRights","currentServer","Home","Programs","NukeProgram","prestigeAugmentation","skills","TravelAgency","purchasedServers","factionInvitations","numSleeves","sleevesFromCovenant","sleeves","Sleeve","shock","synchronize","shockRecovery","lastUpdate","Date","getTime","moneySourceA","reset","prestige","reapplyAllAugmentations","current","finishWork","prestigeSourceFile","karma","sync","resetGangs","hasWseAccount","hasTixApiAccess","has4SData","has4SDataTixApi","moneySourceB","receiveInvite","calculateSkill","calculateSkillF","calculateSkillProgress","calculateSkillProgressF","updateSkillLevels","HackingLevelMultiplier","StrengthLevelMultiplier","DefenseLevelMultiplier","DexterityLevelMultiplier","AgilityLevelMultiplier","CharismaLevelMultiplier","intelligence","ratio","resetMultipliers","hasProgram","programName","home","toLowerCase","setMoney","source","recordMoneySource","MoneySourceTracker","record","gainStrengthExp","gainDefenseExp","gainDexterityExp","gainAgilityExp","gainCharismaExp","gainStats","retValue","def","dex","agi","cha","int","queryStatFromString","tempStr","startFocusing","focus","stopFocusing","takeDamage","hospitalize","regenerateHp","getHospitalizationCost","SnackbarEvents","ToastVariant","WARNING","applyForJob","entryPosType","sing","company","Companies","Company","pos","isQualified","getJobRequirementText","hasPosition","nextPos","getNextCompanyPositionHelper","reqText","getNextCompanyPosition","currCompany","currentPositionName","currentPosition","CompanyPositions","isSoftwareJob","isITJob","isBusinessJob","isSecurityEngineerJob","isNetworkEngineerJob","isSecurityJob","isAgentJob","isSoftwareConsultantJob","isBusinessConsultantJob","isPartTimeJob","quitJob","isCompanyWork","currentWork","companyName","hasJob","Boolean","applyForSoftwareJob","posNames","applyForSoftwareConsultantJob","applyForItJob","applyForSecurityEngineerJob","applyForNetworkEngineerJob","applyForBusinessJob","applyForBusinessConsultantJob","applyForSecurityJob","applyForAgentJob","applyForEmployeeJob","position","applyForPartTimeEmployeeJob","applyForWaiterJob","applyForPartTimeWaiterJob","offset","jobStatReqOffset","reqHacking","requiredHacking","reqStrength","requiredStrength","reqDefense","requiredDefense","reqDexterity","requiredDexterity","reqAgility","reqCharisma","requiredCharisma","playerReputation","requiredReputation","playerAug","applyAugmentation","reapplyAllSourceFiles","sourceFiles","srcFileKey","SourceFiles","applySourceFile","applyExploit","checkForFactionInvitations","invitedFactions","numAugmentations","allCompanies","allPositions","checkMegacorpRequirements","serverMeta","specialName","bonus","getCompanyRep","illuminatiFac","Illuminati","isBanned","isMember","alreadyInvited","daedalusFac","Daedalus","DaedalusAugsRequirement","covenantFac","TheCovenant","ecorpFac","ECorp","AevumECorp","megacorpFac","MegaCorp","Sector12MegaCorp","bachmanandassociatesFac","BachmanAssociates","AevumBachmanAndAssociates","bladeindustriesFac","BladeIndustries","Sector12BladeIndustries","nwoFac","NWO","VolhavenNWO","clarkeincorporatedFac","ClarkeIncorporated","AevumClarkeIncorporated","omnitekincorporatedFac","OmniTekIncorporated","VolhavenOmniTekIncorporated","foursigmaFac","FourSigma","Sector12FourSigma","kuaigonginternationalFac","KuaiGongInternational","ChongqingKuaiGongInternational","fulcrumsecrettechonologiesFac","FulcrumSecretTechnologies","fulcrumSecretServer","AevumFulcrumTechnologies","bitrunnersFac","BitRunners","bitrunnersServer","BitRunnersServer","theblackhandFac","TheBlackHand","blackhandServer","TheBlackHandServer","nitesecFac","NiteSec","nitesecServer","NiteSecServer","chongqingFac","sector12Fac","newtokyoFac","aevumFac","ishimaFac","volhavenFac","speakersforthedeadFac","SpeakersForTheDead","Sector12CIA","Sector12NSA","thedarkarmyFac","TheDarkArmy","thesyndicateFac","TheSyndicate","silhouetteFac","Silhouette","tetradsFac","Tetrads","slumsnakesFac","SlumSnakes","netburnersFac","Netburners","totalHacknetRam","totalHacknetCores","totalHacknetLevels","tiandihuiFac","TianDiHui","cybersecFac","CyberSec","cybersecServer","CyberSecServer","setBitNodeNumber","queueAugmentation","aug","PlayerOwnedAugmentation","gainCodingContractReward","reward","difficulty","CodingContractRewardType","FactionReputation","FactionReputationAll","repGain","totalGain","specialFactions","Bladeburners","gainPerFaction","facName","CompanyReputation","moneyGain","CodingContractMoney","travel","to","gotoLocation","Locations","canAccessGrafting","giveExploit","exploit","SUCCESS","giveAchievement","achievementId","achievement","achievements","ID","unlockedOn","Name","getIntelligenceBonus","weight","calculateIntelligenceBonus","getCasinoWinnings","casino","canAccessCotMG","sf","lvl","focusPenalty","BladeburnerConstants","CityNames","CyclesPerSecond","StaminaGainPerSecond","BaseStaminaLoss","MaxStaminaToGainFactor","DifficultyToTimeFactor","DiffMultExponentialFactor","DiffMultLinearFactor","EffAgiLinearFactor","EffDexLinearFactor","EffAgiExponentialFactor","EffDexExponentialFactor","BaseRecruitmentTimeNeeded","PopulationThreshold","PopulationExponent","ChaosThreshold","BaseStatGain","BaseIntGain","ActionCountGrowthPeriod","RankToFactionRepFactor","RankNeededForFaction","ContractSuccessesPerLevel","OperationSuccessesPerLevel","RanksPerSkillPoint","ContractBaseMoneyGain","HrcHpGain","HrcStaminaGain","programsMetadata","Program","run","FragmentType","Effect","tpe","HackingChance","HackingSpeed","HackingMoney","HackingGrow","Hacking","Strength","Defense","Dexterity","Agility","Charisma","HacknetMoney","HacknetCost","Rep","WorkMoney","Crime","Bladeburner","CorporationManagementHandbook","HistoryOfSynthoids","AGreenTomorrow","AlphaOmega","SimulatedReality","BeyondMan","BrighterThanTheSun","DemocracyIsDead","Sector12Crime","ManAndMachine","SecretSocieties","TheFailedFrontier","CodedIntelligence","SyntheticMuscles","TensionsInTechRace","CostOfImmortality","TheHiddenWorld","TheNewGod","NewTriads","TheSecretWar","StatsRow","content","root","cellNone","style","align","PositionTypes","borderBottom","small","width","TableCell","Table","removeLeadingSlash","removeTrailingSlash","endsWith","isValidFilename","isValidDirectoryName","isValidDirectoryPath","path","t_path","dirs","dir","isValidFilePath","fnSeparator","getFirstParentDirectory","getAllParentDirectories","lastSlash","getDestinationFilepath","destination","cwd","dstDir","evaluateDirectoryPath","fileName","getFileName","isInRootDirectory","currPath","reconstructedPath","pop","evaluateFilePath","areFilesEqual","f0","f1","areImportsEquals","initCompanies","oldCompanies","companiesMetadata","forEach","loadCompanies","AllGangs","power","loadAllGangs","Terminal","TTerminal","snackbar","zIndex","logBoxBaseZIndex","alignSelf","SnackbarProvider","dense","maxSnack","anchorOrigin","horizontal","vertical","autoHideDuration","containerRoot","EventEmitter","Snackbar","enqueueSnackbar","closeSnackbar","useSnackbar","useEffect","subscribe","variant","duration","id","severity","k","onClick","Crimes","Shoplift","CrimeType","SHOPLIFT","dexterity_success_weight","agility_success_weight","RobStore","ROB_STORE","hacking_success_weight","intelligence_exp","Mug","MUG","strength_success_weight","defense_success_weight","Larceny","LARCENY","DealDrugs","DRUGS","charisma_success_weight","BondForgery","BOND_FORGERY","TraffickArms","TRAFFIC_ARMS","Homicide","HOMICIDE","kills","GrandTheftAuto","GRAND_THEFT_AUTO","Kidnap","KIDNAP","Assassination","ASSASSINATION","Heist","HEIST","trusted","event","isTrusted","TheDarkArmyServer","DaedalusServer","DarkWeb","reputation","w0","w1","scaleWorkStats","scaleMoney","workStats","expStats","applyWorkStatsExp","gains","htmlLocation","margin","spacing","flexGrow","minHeight","boxSizing","uninitialized","isInitialized","page","allowRouting","toActiveScripts","toAugmentations","toBitVerse","toBladeburner","toStats","toCity","toCorporation","toCreateProgram","toDevMenu","toFaction","toFactions","toGameOptions","toGang","toHacknetNodes","toInfiltration","toJob","toMilestones","toGrafting","toScriptEditor","toSleeves","toStockMarket","toTerminal","toTravel","toTutorial","toWork","toBladeburnerCinematic","toLocation","toStaneksGift","toAchievements","toThemeBrowser","toImportSave","GameRoot","engine","terminal","files","vim","setEditorOptions","useState","setPage","RecoveryMode","Recovery","determineStartPage","setRerender","augPage","setAugPage","setFaction","isFactionWork","flume","setFlume","quick","setQuick","setLocation","Infiltration","Location","Job","cinematicText","setCinematicText","errorBoundaryKey","setErrorBoundaryKey","sidebarOpened","setSideBarOpened","importString","setImportString","importAutomatic","setImportAutomatic","ImportSave","allowRoutingCalls","setAllowRoutingCalls","rerender","old","killAllScripts","saveObject","saveGame","reload","softReset","installAugmentations","ActiveScripts","Augmentations","Stats","CreateProgram","DevMenu","Options","Gang","Hacknet","Milestones","Grafting","options","ScriptEditor","Sleeves","StockMarket","Tutorial","City","Travel","calculateAchievements","BitVerse","BladeburnerCinematic","StaneksGift","Achievements","ThemeBrowser","base64save","automatic","_functions","_wrap","scrollTo","mainPage","withSidebar","withPopups","bypassGame","router","enter","enterBitNode","staneksGift","getCurrentServer","workerScripts","reactivateTutorial","stockMarket","export","onExport","exportGame","forceKill","exportGameFn","installAugmentationsFn","Provider","killScripts","flexDirection","onToggled","isOpened","updateHashCapacity","costMult","seconds","onlineTimeSeconds","hashRate","totalHashesGenerated","prodMult","runScript","updateRamUsed","calculateHashGainRate","validScriptExtensions","isScriptFilename","some","ext","Orders","storedCycles","ticksUntilCycle","SymbolToStockMap","placeOrder","shares","Stock","order","Order","symbol","orders","stk","processOrderRefs","symbolToStockMap","processOrders","cancelOrder","stockOrders","stockSymbol","orderTxt","loadStockMarket","deleteStockMarket","initStockMarket","InitStockMetadata","TicksPerCycle","initSymbolToStockMap","StockSymbols","cyclesPerStockUpdate","processStockPrices","timeNow","flipForecastForecast","stockMarketCycle","av","mv","chc","otlkMag","cap","changePrice","OrderTypes","LimitBuy","Short","LimitSell","Long","StopBuy","StopSell","otlkMagChange","cycleForecast","cycleForecastForecast","shareTxUntilMovement","shareTxForMovement","initStockMarketFn","IshimaStormTechnologies","NewTokyoDefComm","VolhavenHeliosLabs","NewTokyoVitaLife","Sector12IcarusMicrosystems","Sector12UniversalEnergy","AevumAeroCorp","VolhavenOmniaCybersystems","ChongqingSolarisSpaceSystems","NewTokyoGlobalPharmaceuticals","IshimaNovaMedical","AevumWatchdogSecurity","VolhavenLexoCorp","AevumRhoConstruction","Sector12AlphaEnterprises","VolhavenSysCoreSecurities","VolhavenCompuTek","AevumNetLinkTechnologies","IshimaOmegaSoftware","Sector12FoodNStuff","Sector12JoesGuns","difficultyMult","skillMult","chance","expGain","HackExpGain","percentMoneyHacked","ScriptHackMoney","skillFactor","calculateGrowTime","calculateWeakenTime","applySleeveGains","sleeve","rawStats","shockedStats","shockBonus","syncStats","syncBonus","__player","loadStaneksGift","zeros","height","array","fill","calculateGrid","gift","newgrid","fragmentAt","inviteToFaction","InvitationEvent","joinFaction","allFactions","factionInfo","enemy","enemies","hasAugmentationPrereqs","purchaseAugmentation","hasPrereqs","augCosts","queuedAugmentation","req","processPassiveFactionRepGain","offersWork","getGangName","favorMult","hRep","getHackingWorkRepGain","sRep","getFactionSecurityWorkRepGain","fRep","getFactionFieldWorkRepGain","FactionPassiveRepGain","getFactionAugmentationsFiltered","hasGangWith","augs","CongruityImplant","TheRedPill","rng","SFC32RNG","uniqueFilter","GangUniqueAugs","BitburnerSaveObject","getSaveString","PlayerSave","AllServersSave","CompaniesSave","FactionsSave","AliasesSave","Aliases","GlobalAliasesSave","GlobalAliases","StockMarketSave","SettingsSave","VersionSave","LastExportBonus","ExportBonus","StaneksGiftSave","inGang","AllGangsSave","btoa","unescape","encodeURIComponent","emitToastEvent","savedOn","lastSave","saveData","playerIdentifier","identifier","getSaveFileName","pushGameSaved","INFO","catch","isRecovery","epochTime","now","bn","download","importGame","base64Save","getImportStringFromFile","file","reader","FileReader","promise","onload","readAsText","newSave","parsedSave","atob","base64","importedPlayer","playerData","bitNode","bitNodeLevel","loadGame","navigator","userAgent","setInterval","decodeURIComponent","escape","saveObj","loadAliases","loadGlobalAliases","ver","anyPlayer","companyPosition","positionName","companyPositions","changes","convert","code","change","v1APIBreak","AwardNFG","revenue","expenses","lastCycleRevenue","lastCycleExpenses","thisCycleRevenue","thisCycleExpenses","resleeves","contract","contracts","v22PlayerBreak","ownedNFGs","newNFG","nfg","darkweb","pushProgram","graft","v2APIBreak","removePlayerFields","removeSleeveFields","Number","field","anySleeve","evaluateVersionCompatibility","href","resets","createNewUpdateText","whiteSpace","paddingLeft","lineHeight","Blob","document","createElement","URL","createObjectURL","body","appendChild","click","removeChild","revokeObjectURL","companyPositionMetadata","CompanyPosition","FactionWorkType","Exploit","names","Bypass","EditSaveFile","PrototypeTampering","TimeCompression","Unclickable","UndocumentedFunctionCall","RealityAlteration","N00dles","YoureNotMeantToAccessThis","TrueRecursion","INeedARainbow","ExploitName","Set","initAugmentations","resetFactionAugmentations","clearObject","initNeuroFluxGovernor","initUnstableCircadianModulator","initGeneralAugmentations","initBladeburnerAugmentations","ChurchOfTheMachineGod","initChurchOfTheMachineGodAugmentations","resetAugmentation","augmentationExists","AddToStaticAugmentations","reapply","staticAugmentation","mergeMultipliers","applyEntropy","ownedNfg","pAug","ownedAug","force","augmentationList","nfgIndex","isRepeatableAug","MoneyRate","CodingContractType","gen","solver","diff","numTries","generate","CodingContractTypes","md","codingContractTypesMetadata","CodingContractResult","CodingContract","getData","getDescription","getDifficulty","getMaxNumTries","getType","isSolution","solution","Cancelled","onAttempt","val","Success","Failure","CodingContractEvent","Fragments","Fragment","shape","limit","fullAt","rotation","sy","mx","my","qx","qy","neighboors","candidates","add","coord","cells","candidate","cell","copy","FragmentById","fragment","_","X","Shapes","S","Z","T","I","J","O","Booster","NoneFragment","None","DeleteFragment","Delete","base","inherit","common","accent","bg","fg","syntax","tag","entity","regexp","markup","keyword","comment","constant","ui","panel","selected","selection","colorRegExp","sanitizeTheme","repairBlock","block","makeTheme","themeRules","token","foreground","themeColors","fromEntries","rules","loadThemes","monaco","editor","defineTheme","fontStyle","Adjuster","setValue","label","placeholder","subtract","tons","onChange","InputProps","startAdornment","title","transform","endAdornment","uuidv4","uuid","subscribers","sub","upArrowSymbol","downArrowSymbol","leftArrowSymbol","rightArrowSymbol","getArrow","UP_ARROW","W","LEFT_ARROW","DOWN_ARROW","RIGHT_ARROW","D","getInverseArrow","getActionTimePenalty","getChaosCompetencePenalty","getChaosDifficultyBonus","makeNode","Node","text","createBaseResearchTreeNodes","rootNode","autoBrew","autoParty","autoDrugs","bulkPurchasing","cph4","drones","dronesAssembly","dronesTransport","goJuice","hrRecruitment","hrTraining","joywire","marketta1","marketta2","overclock","scAssemblers","stimu","addChild","baseResearchTree","ResearchTree","setRoot","upgradeFulcrum","upgradeCapacity1","upgradeCapacity2","upgradeDashboard","numCycleForGrowth","growth","ajdGrowthRate","serverGrowthPercentage","coreBonus","ServerGrowthRate","numCycleForGrowthCorrected","targetMoney","startMoney","adjGrowthRate","exponentialBase","coreMultiplier","threadMultiplier","ey","bt","corr","bct","opc","fca","cca","processSingleServerGrowth","calculateServerGrowth","oldMoneyAvailable","isValidNumber","usedCycles","prestigeHomeComputer","homeComp","hasBitflume","BitFlume","updateRamUsage","getServerOnNetwork","isBackdoorInstalled","MoneyCost","SkillNames","BladesIntuition","Cloak","Marksman","WeaponProficiency","ShortCircuit","DigitalObserver","Tracer","Overclock","Reaper","EvasiveSystem","Datamancer","CybersEdge","HandsOfMidas","Hyperdrive","rep","Reputation","useGang","killWorkerScript","WorkerScript","stopAndCleanUpWorkerScript","killWorkerScriptByPid","clearTimeout","atExit","String","rs","delete","AddRecentScript","WorkerScriptStartStopEventEmitter","removeWorkerScript","OptionSwitch","checked","tooltip","control","BitNode","BitNodes","HomeComputerRamCost","PurchasedServerCost","PurchasedServerSoftcap","CompanyWorkMoney","CrimeMoney","HacknetNodeMoney","ClassGymExpGain","CompanyWorkExpGain","CrimeExpGain","FactionWorkExpGain","FactionWorkRepGain","RepToDonateToFaction","InfiltrationMoney","InfiltrationRep","FourSigmaMarketDataCost","FourSigmaMarketDataApiCost","CorporationValuation","CorporationSoftcap","BladeburnerRank","BladeburnerSkillCost","GangSoftcap","StaneksGiftPowerMultiplier","StaneksGiftExtraSize","getBitNodeMultipliers","inc","dec","initBitNodeMultipliers","defaultConstructorParams","initPrice","marketCap","spreadPerc","range","divisor","lastPrice","playerShares","playerAvgPx","playerShortShares","playerAvgShortPx","otlkMagForecast","getAbsoluteForecast","totalSharesUnrounded","totalShares","maxShares","changeForecastForecast","newff","newPrice","changeAmt","increaseChance","getForecastIncreaseChance","getAskPrice","getBidPrice","influenceForecast","influenceForecastForecast","startingLevel","extraLevels","totalMultiplier","startingRam","totalCost","numUpgrades","currentRam","startingCores","currentCores","startingCache","currentCache","printAliases","print","parseAliasDeclaration","global","matches","addGlobalAlias","addAlias","getAlias","getGlobalAlias","removeAlias","substituteAliases","origCommand","commandArray","somethingSubstituted","depth","alias","constructLocation","asciiArt","LocationsMetadata","addLocation","Literature","CopyableText","setOpen","copyText","select","setSelectionRange","execCommand","ThemeEvents","refreshTheme","createTheme","combat","backgroundprimary","backgroundsecondary","button","successlight","success","successdark","white","black","light","primarylight","primarydark","secondary","secondarylight","secondarydark","errorlight","errordark","infolight","infodark","warning","warninglight","warningdark","well","typography","fontFamily","textTransform","components","MuiInputBase","styleOverrides","input","userSelect","MuiInput","borderBottomColor","underline","MuiInputLabel","MuiButtonGroup","marginRight","MuiButton","borderRadius","MuiSelect","icon","defaultProps","MuiTextField","MuiTypography","MuiMenu","list","MuiMenuItem","MuiAccordionSummary","MuiAccordionDetails","MuiIconButton","MuiTooltip","fontSize","disableInteractive","MuiSlider","valueLabel","MuiDrawer","paperAnchorDockedLeft","borderRight","welllight","MuiDivider","MuiFormControlLabel","MuiSwitch","switchBase","track","MuiPaper","MuiTablePagination","selectLabel","displayedRows","MuiTab","textColorPrimary","MuiTabs","scrollButtons","opacity","TabIndicatorProps","MuiAlert","standardSuccess","standardError","standardWarning","standardInfo","TTheme","injectFirst","layerCounter","LogBoxEvents","LogBoxCloserEvents","LogBoxClearEvents","LogBoxManager","closePid","LogWindow","close","overflowY","overflowX","wordWrap","titleButton","draggableRef","useRef","rootRef","setScript","container","minimized","setMinimized","kill","startWorkerScript","updateLayer","full","maxLength","minimize","clearInterval","addEventListener","onResize","removeEventListener","debounce","isOnScreen","resetPosition","bounds","getBoundingClientRect","right","bottom","left","innerWidth","top","outerWidth","state","setState","minConstraints","handle","onDrag","MouseEvent","clientX","clientY","innerHeight","ref","onMouseDown","flexFlow","minWidth","cursor","textOverflow","has","onTouchEnd","Water","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AICores","calculateExp","skill","currentSkill","nextSkill","baseExperience","nextExperience","progress","currentExperience","remainingExperience","experience","UpgradeType","gangMemberUpgradesMetadata","upgType","Weapon","Armor","Vehicle","Rootkit","NetscriptPort","prestigeWorkerScripts","clear","startNetscript1Script","codeWithImports","codeLineOffset","running","importProcessingRes","ast","ecmaVersion","allowReserved","sourceType","generatedCode","hasImports","walksimple","ImportDeclaration","scriptName","getScript","scriptAst","specifiers","namespace","local","fnNames","fnDeclarations","FunctionDeclaration","fnsToImport","lineOffset","linesRemoved","processNetscript1Imports","interpreterInitialization","scope","NetscriptFunctions","entry","tempWrapper","fnArgs","pseudoToNative","callb","errorTextArray","errorMsg","setProperty","createAsyncFunction","createNativeFunction","nativeToPseudo","interpreter","Interpreter","runInterpreter","more","step","_e","parent","createAndAddWorkerScript","oneRamUsage","getRamUsageFromRunningScript","roundToTwo","generateNextPid","set","scriptExecution","executeJSScript","SyntaxError","startNetscript2Script","updateOnlineScriptTimes","loadAllRunningScripts","skipScriptLoad","markUpdated","scriptCalculateOfflineProduction","runScriptFromScript","ramAvailable","RunningScript","GangConstants","GangRespectToReputationRatio","MaximumGangMembers","CyclesPerTerritoryAndPowerUpdate","AscensionMultiplierRatio","Names","GangKarmaRequirement","buyStock","opts","suppressDialog","totalPrice","getBuyTransactionCost","origTotal","newTotal","processTransactionForecastMovement","rerenderFn","resultTxt","sellStock","getSellTransactionGain","netProfit","shortStock","sellShort","origCost","gainFavor","getFavorGain","totalRep","favorToRep","repToFavor","Map","Material","getMarkupLimit","qlt","mku","dmd","dmdR","cmp","cmpR","processMarket","priceChange","compChange","dmdChange","calculateWantedPenalty","calculateRespectGain","task","baseRespect","statWeight","hackWeight","strWeight","defWeight","dexWeight","agiWeight","chaWeight","territoryMult","territoryPenalty","respectMult","calculateWantedLevelGain","baseWanted","wanted","calc","calculateMoneyGain","baseMoney","calculateAscensionPointsGain","calculateAscensionMult","points","RFAMessage","method","isFileData","pf","isFileLocation","isFileServer","GameTimer","setV","totalMillis","WKSharmonizer","millis","intervalId","onExpire","noPaper","mb","m0","m1","ActionIdentifier","general","ops","blackops","events","updateSkillMultipliers","calculateMaxStamina","stamina","maxStamina","getCurrentCity","calculateStaminaPenalty","canAttemptBlackOp","actionId","getActionObject","reqdRank","rank","nm","BlackOperations","isAvailable","startAction","person","actionTimeCurrent","actionTimeToComplete","resetAction","getActionTime","exceptionAlert","comms","testBlackOp","getRecruitmentTime","upgradeSkill","skillName","executeConsoleCommands","commands","consoleHistory","arrayOfCommands","executeConsoleCommand","postToConsole","saveToLogs","consoleLogs","getTimestamp","clearConsole","bladeburnerFac","storeCycles","getActionIdFromTypeAndName","convertedType","convertedName","operations","executeStartConsoleCommand","GeneralActions","executeSkillConsoleCommand","skillNames","Skills","multKeys","skillMultipliers","Skill","currentLevel","pointCost","calculateCost","maxLvl","executeLogConsoleCommand","flag","logging","executeHelpConsoleCommand","ConsoleHelpText","helpList","helpText","executeAutomateConsoleCommand","variable","highLow","automateActionHigh","automateActionLow","automateThreshHigh","automateThreshLow","automateEnabled","parseCommandArguments","command","start","endQuote","SPACE","substr","triggerMigration","sourceCityName","destCityName","destCity","sourceCity","percentage","triggerPotentialMigration","randomEvent","chaos","getActionStats","successMult","unweightedGain","unweightedIntGain","weights","getDiplomacyEffectiveness","getRecruitmentSuccessChance","teamSize","sleeveSize","effCharisma","effCha","charismaFactor","sleeveSupport","joining","resetSkillMultipliers","successChanceAll","successChanceStealth","successChanceKill","successChanceContract","successChanceOperation","successChanceEstimate","actionTime","effHack","effStr","effDef","effDex","effAgi","effInt","multiplierNames","multiplierName","getMultiplier","multiplierValue","completeOperation","teamCount","losses","sup","isSleeveSupportWork","teamLost","improvePopulationEstimateByPercentage","changePopulationByPercentage","changeEstEqually","nonZero","changeChaosByCount","changeChaosByPercentage","changePopulationByCount","estChange","estOffset","completeContract","actionIdent","improvePopulationEstimateByCount","completeAction","isPlayer","createTaskTracker","isOperation","difficultyMultiplier","rewardMultiplier","rewardFac","attempt","successes","setMaxLevel","rankGain","gain","addOffset","whoAmI","failures","loss","damage","rankLoss","hpLoss","hpLost","calculateHospitalizationCost","numHosp","moneyLost","logLossText","autoLevel","teamLossMax","strExpGain","defExpGain","dexExpGain","agiExpGain","staminaGain","staminaBonus","eff","hackingExpGain","charismaExpGain","successChance","recruitTime","growthF","Growths","operation","infiltrateSynthoidCommunities","infilSleeves","isSleeveInfiltrateWork","maxRank","bladeburnersFactionName","favorBonus","rankNeededForSp","totalSkillPoints","gainedSkillPoints","processAction","actionTimeOverflow","calculateStaminaGainPerSecond","effAgility","maxStaminaBonus","oldMax","difficultyFac","decays","isStealth","isKill","BladesSimulacrum","op","randomEventCounter","getTypeAndNameFromActionId","types","getContractNamesNetscriptFn","getOperationNamesNetscriptFn","getBlackOpNamesNetscriptFn","getGeneralActionNamesNetscriptFn","getSkillNamesNetscriptFn","startActionNetscriptFn","errorLogText","canRunOp","getActionTimeNetscriptFn","actionObj","getActionEstimatedSuccessChanceNetscriptFn","getEstSuccessChance","recChance","getActionCountRemainingNetscriptFn","getSkillLevelNetscriptFn","getSkillUpgradeCostNetscriptFn","upgradeSkillNetscriptFn","getTeamSizeNetscriptFn","setTeamSizeNetscriptFn","sanitizedSize","joinBladeburnerFactionNetscriptFn","calculateMoneyGainRate","startingCore","sanitizedCores","coreBaseCost","win","reachedLimit","reached","Game","interpolate","settings","lerpD","lerp","Trivial","Normal","Hard","Impossible","KeyHandler","press","onKeyDown","FACTION","FactionWork","factionWorkType","HACKING","getFaction","getReputationRate","focusBonus","NeuroreceptorManager","calculateFactionRep","getExpRates","calculateFactionExp","Hashes","updateMoneyGainRate","moneyGainRatePerSecond","totalMoneyGenerated","minMax","getPurchaseServerCost","sanitizedRam","isPowerOfTwo","sign","getPurchaseServerMaxRam","getPurchaseServerLimit","clz32","purchaseServer","newServ","purchaseRamForHomeComputer","getUpgradeHomeRamCost","TextFile","append","read","show","write","getTextFile","textFiles","createTextFile","CalculateShareMult","RamCostConstants","ScriptBaseRamCost","ScriptDomRamCost","ScriptCorporationRamCost","ScriptHackRamCost","ScriptHackAnalyzeRamCost","ScriptGrowRamCost","ScriptGrowthAnalyzeRamCost","ScriptWeakenRamCost","ScriptWeakenAnalyzeRamCost","ScriptScanRamCost","ScriptRecentScriptsRamCost","ScriptPortProgramRamCost","ScriptRunRamCost","ScriptExecRamCost","ScriptSpawnRamCost","ScriptScpRamCost","ScriptKillRamCost","ScriptHasRootAccessRamCost","ScriptGetHostnameRamCost","ScriptGetHackingLevelRamCost","ScriptGetMultipliersRamCost","ScriptGetServerRamCost","ScriptGetServerMaxRam","ScriptGetServerUsedRam","ScriptFileExistsRamCost","ScriptIsRunningRamCost","ScriptHacknetNodesRamCost","ScriptHNUpgLevelRamCost","ScriptHNUpgRamRamCost","ScriptHNUpgCoreRamCost","ScriptGetStockRamCost","ScriptBuySellStockRamCost","ScriptGetPurchaseServerRamCost","ScriptPurchaseServerRamCost","ScriptGetPurchasedServerLimit","ScriptGetPurchasedServerMaxRam","ScriptRoundRamCost","ScriptReadWriteRamCost","ScriptArbScriptRamCost","ScriptGetScriptRamCost","ScriptGetRunningScriptRamCost","ScriptGetHackTimeRamCost","ScriptGetFavorToDonate","ScriptCodingContractBaseRamCost","ScriptSleeveBaseRamCost","ScriptClearTerminalCost","ScriptSingularityFn1RamCost","ScriptSingularityFn2RamCost","ScriptSingularityFn3RamCost","ScriptGangApiBaseRamCost","ScriptBladeburnerApiBaseRamCost","ScriptStanekWidth","ScriptStanekHeight","ScriptStanekCharge","ScriptStanekFragmentDefinitions","ScriptStanekPlacedFragments","ScriptStanekClear","ScriptStanekCanPlace","ScriptStanekPlace","ScriptStanekFragmentAt","ScriptStanekDeleteAt","ScriptInfiltrationCalculateDifficulty","ScriptInfiltrationCalculateRewards","ScriptInfiltrationGetLocations","ScriptInfiltrationGetInfiltrations","ScriptStanekAcceptGift","SF4Cost","sf4","hasWSEAccount","hasTIXAPIAccess","has4SDataTIXAPI","getSymbols","getPrice","getPosition","getMaxShares","getPurchaseCost","getSaleGain","buyShort","getOrders","getVolatility","getForecast","purchase4SMarketData","purchase4SMarketDataTixApi","purchaseWseAccount","purchaseTixApi","universityCourse","gymWorkout","travelToCity","goToLocation","purchaseTor","purchaseProgram","connect","manualHack","installBackdoor","getDarkwebProgramCost","getDarkwebPrograms","isBusy","stopAction","upgradeHomeRam","upgradeHomeCores","getUpgradeHomeCoresCost","workForCompany","applyToCompany","getCompanyFavor","getCompanyFavorGain","checkFactionInvitations","workForFaction","getFactionRep","getFactionFavor","getFactionFavorGain","donateToFaction","createProgram","commitCrime","getCrimeChance","getCrimeStats","getOwnedAugmentations","getOwnedSourceFiles","getAugmentationsFromFaction","getAugmentationCost","getAugmentationPrereq","getAugmentationPrice","getAugmentationBasePrice","getAugmentationRepReq","getAugmentationStats","isFocused","setFocus","b1tflum3","destroyW0r1dD43m0n","getCurrentWork","createGang","getMemberNames","getGangInformation","getOtherGangInformation","getMemberInformation","canRecruitMember","recruitMember","getTaskNames","getTaskStats","setMemberTask","getEquipmentNames","getEquipmentCost","getEquipmentType","getEquipmentStats","purchaseEquipment","ascendMember","getAscensionResult","setTerritoryWarfare","getChanceToWinClash","getBonusTime","getContractNames","getOperationNames","getBlackOpNames","getBlackOpRank","getGeneralActionNames","getSkillNames","stopBladeburnerAction","getCurrentAction","getActionCurrentTime","getActionEstimatedSuccessChance","getActionRepGain","getActionCountRemaining","getActionMaxLevel","getActionCurrentLevel","getActionAutolevel","setActionAutolevel","setActionLevel","getRank","getSkillPoints","getSkillLevel","getSkillUpgradeCost","getTeamSize","setTeamSize","getCityEstimatedPopulation","getCityCommunities","getCityChaos","getCity","switchCity","getStamina","joinBladeburnerFaction","joinBladeburnerDivision","infiltration","getPossibleLocations","getInfiltration","codingcontract","getContractType","getNumTriesRemaining","getNumSleeves","setToShockRecovery","setToSynchronize","setToCommitCrime","setToUniversityCourse","setToCompanyWork","setToFactionWork","setToGymWorkout","getSleeveStats","getTask","getInformation","getSleeveAugmentations","getSleevePurchasableAugs","purchaseSleeveAug","setToBladeburnerAction","getSleeveAugmentationPrice","getSleeveAugmentationRepReq","stanek","giftWidth","giftHeight","chargeFragment","fragmentDefinitions","activeFragments","clearGift","canPlaceFragment","placeFragment","getFragment","removeFragment","acceptGift","SourceRamCosts","enums","getMaterialNames","getIndustryTypes","getUnlockables","getUpgradeNames","getResearchNames","createCorporation","hasUnlockUpgrade","getUnlockUpgradeCost","getUpgradeLevel","getUpgradeLevelCost","getExpandIndustryCost","getExpandCityCost","getInvestmentOffer","acceptInvestmentOffer","goPublic","bribe","getCorporation","getDivision","expandIndustry","expandCity","unlockUpgrade","levelUpgrade","issueDividends","buyBackShares","sellShares","sellMaterial","sellProduct","discontinueProduct","setSmartSupply","setSmartSupplyUseLeftovers","buyMaterial","bulkPurchase","getWarehouse","getProduct","getMaterial","setMaterialMarketTA1","setMaterialMarketTA2","setProductMarketTA1","setProductMarketTA2","exportMaterial","cancelExportMaterial","purchaseWarehouse","upgradeWarehouse","makeProduct","limitMaterialProduction","limitProductProduction","getPurchaseWarehouseCost","getUpgradeWarehouseCost","hasWarehouse","assignJob","hireEmployee","upgradeOfficeSize","throwParty","buyCoffee","hireAdVert","getOffice","getEmployee","getHireAdVertCost","getHireAdVertCount","getResearchCost","hasResearched","setAutoJobAssignment","getOfficeSizeUpgradeCost","hacknet","numNodes","purchaseNode","getPurchaseNodeCost","getNodeStats","getLevelUpgradeCost","getRamUpgradeCost","getCoreUpgradeCost","getCacheUpgradeCost","numHashes","hashCost","spendHashes","maxNumNodes","getHashUpgrades","getHashUpgradeLevel","getStudyMult","getTrainingMult","getTheme","setTheme","resetTheme","getStyles","setStyles","resetStyles","getGameInfo","clearTerminal","grafting","getAugmentationGraftPrice","getAugmentationGraftTime","getGraftableAugmentations","graftAugmentation","sprintf","vsprintf","scan","hackAnalyzeThreads","hackAnalyze","hackAnalyzeSecurity","hackAnalyzeChance","sleep","asleep","share","getSharePower","grow","growthAnalyze","growthAnalyzeSecurity","weakenAnalyze","printf","tprint","tprintf","clearLog","disableLog","enableLog","isLogEnabled","getScriptLogs","nuke","brutessh","ftpcrack","relaysmtp","httpworm","sqlinject","exec","spawn","killall","exit","scp","ls","ps","getRecentScripts","hasRootAccess","getHostname","getHackingLevel","getHackingMultipliers","getHacknetMultipliers","getServerMoneyAvailable","getServerSecurityLevel","getServerBaseSecurityLevel","getServerMinSecurityLevel","getServerRequiredHackingLevel","getServerMaxMoney","getServerGrowth","getServerNumPortsRequired","getServerRam","getServerMaxRam","getServerUsedRam","serverExists","fileExists","getPurchasedServerLimit","getPurchasedServerMaxRam","getPurchasedServerCost","deleteServer","getPurchasedServers","tryWritePort","peek","writePort","readPort","getPortHandle","rm","scriptRunning","scriptKill","getScriptName","getScriptRam","getHackTime","getGrowTime","getWeakenTime","getTotalScriptIncome","getScriptIncome","getTotalScriptExpGain","getScriptExpGain","nFormat","tFormat","getTimeSinceLastAug","prompt","wget","getFavorToDonate","getPlayer","tail","toast","closeTail","clearPort","openDevMenu","alert","flags","bypass","alterReality","rainbow","heart","break","formulas","mockServer","mockPlayer","calculateFavorToRep","calculateRepToFavor","repFromDonation","hackPercent","growPercent","hackTime","growTime","weakenTime","moneyGainRate","levelUpgradeCost","ramUpgradeCost","coreUpgradeCost","hacknetNodeCost","constants","hacknetServers","hashGainRate","cacheUpgradeCost","hashUpgradeCost","hacknetServerCost","wantedPenalty","respectGain","wantedLevelGain","ascensionPointsGain","ascensionMultiplier","work","crimeGains","classGains","factionGains","RamCosts","getRamCost","currType","costInc","posType","firstShares","remainingShares","numIterations","forecastChange","forecastForecastChange","calculateBuyMaxAmount","isLong","remainingMoney","currPrice","GangMemberUpgrades","GangMemberUpgrade","getStockMarket4SDataCost","getStockMarket4STixApiCost","getStockMarketWseCost","getStockMarketTixApiCost","NumberInput","textProps","HashUpgradesMetadata","HashUpgrade","GangMemberTasks","gangMemberTasksMetadata","isHacking","isCombat","materials","updateMaterialSizeUsed","matName","getStorageMultiplier","Output","formatTime","RawOutput","raw","Link","dashes","TTimer","timeLeft","recursiveMode","thisUpgrade","unFloored","ConfirmationModal","confirmationText","onConfirm","additionalButton","createProgressBarText","derived","totalTicks","bars","hash","__COMMIT_HASH__","gameCPS","classs","discount","calculateClassEarnings","locationName","hashMult","expMult","globalModuleSequenceNumber","Script","otherScripts","moduleSequenceNumber","saveScript","formatCode","dependent","dependents","dependentScript","calculateRamUsage","ramUsageEntries","imports","StatsTable","rows","wide","MuiTable","row","elem","noWrap","DarkWebItems","BruteSSHProgram","DarkWebItem","FTPCrackProgram","RelaySMTPProgram","HTTPWormProgram","SQLInjectProgram","ServerProfiler","DeepscanV1","DeepscanV2","AutolinkProgram","AutoLink","FormulasProgram","Formulas","GameOptionsTab","actionNames","actionName","Action","Suit","Card","suit","formatValue","isRedSuit","Hearts","Diamonds","getStringRepresentation","SourceFile","bitnodeKey","bitnode","timePassed","confidence","dataMap","serv","timesGrown","host","timesWeakened","compareArrays","achievementData","bitNodeFinishedState","wd","OperationDaedalus","hasAccessToSF","knowsAboutBitverse","Icon","Condition","THE_BLACK_HAND","THE_COVENANT","Visible","MONEY_1Q","MONEY_M1B","Secret","INSTALL_1","INSTALL_100","QUEUE_40","HACKING_100000","COMBAT_3000","NEUROFLUX_255","NS2","FROZE","RUNNING_SCRIPTS_1000","DRAIN_SERVER","MAX_RAM","MAX_CORES","SCRIPTS_30","KARMA_1000000","STOCK_1q","DISCOUNT","SCRIPT_32GB","FIRST_HACKNET_NODE","MAX_HACKNET_NODE","HACKNET_NODE_10M","REPUTATION_10M","DONATION","TRAVEL","WORKOUT","TOR","hasTorRouter","HOSPITALIZED","hospitalization","GANG","FULL_GANG","members","GANG_TERRITORY","GANG_MEMBER_POWER","CORPORATION","CORPORATION_BRIBE","CORPORATION_PROD_1000","CORPORATION_EMPLOYEE_3000","CORPORATION_REAL_ESTATE","Description","INTELLIGENCE_255","BLADEBURNER_DIVISION","BLADEBURNER_OVERCLOCK","BLADEBURNER_UNSPENT_100000","FIRST_HACKNET_SERVER","AdditionalUnlock","ALL_HACKNET_SERVER","MAX_HACKNET_SERVER","hs","HACKNET_SERVER_1B","MAX_CACHE","capacity","SLEEVE_8","INDECISIVE","FAST_BN","CHALLENGE_BN1","CHALLENGE_BN2","CHALLENGE_BN3","CHALLENGE_BN6","CHALLENGE_BN7","CHALLENGE_BN8","CHALLENGE_BN9","hacknet_expenses","CHALLENGE_BN10","CHALLENGE_BN12","BYPASS","PROTOTYPETAMPERING","UNCLICKABLE","UNDOCUMENTEDFUNCTIONCALL","TIMECOMPRESSION","REALITYALTERATION","N00DLES","EDITSAVEFILE","UNACHIEVABLE","CHALLENGE_BN13","StaneksGift1","DEVMENU","RAINBOW","TRUE_RECURSION","playerAchievements","missingAchievements","flatMap","DefaultConstructorParams","expMultiplier","salaryMultiplier","isPlayerEmployed","isMegacorp","hasAgentPositions","hasBusinessConsultantPositions","hasBusinessPositions","hasEmployeePositions","hasITPositions","hasSecurityPositions","hasSoftwareConsultantPositions","hasSoftwarePositions","hasWaiterPositions","vals","MathJaxWrapper","version","src","lineNumber","isSleeveBladeburnerWork","BLADEBURNER","SleeveBladeburnerWork","actionType","cyclesNeeded","ret","CorporationUnlockUpgradeIndex","CorporationUnlockUpgrades","Export","SmartSupply","MarketResearchDemand","MarketDataCompetition","VeChain","ShadyAccounting","GovernmentPartnership","WarehouseAPI","OfficeAPI","getGraftingAvailableAugs","augName","graftingIntBonus","calculateGraftingTimeWithBonus","OperationTyphoon","OperationZero","OperationX","OperationTitan","OperationAres","OperationArchangel","OperationJuggernaut","OperationRedDragon","OperationK","OperationDeckard","OperationTyrell","OperationWallace","OperationShoulderOfOrion","OperationHyron","OperationMorpheus","OperationIonStorm","OperationAnnihilus","OperationUltron","OperationCenturion","OperationVindictus","ActiveFragment","highestCharge","numCharge","collide","other","thisFragment","otherFragment","dx","dy","fragSize","worldX","worldY","workName","commit","div","startWork","CrimeWork","crimeType","successRate","HashRate","Message","ApplyToJobButton","getJobRequirementTooltip","researchMetadata","isSleeveFactionWork","SleeveFactionWork","FIELD","SECURITY","stopWork","isSleeveCompanyWork","COMPANY","SleeveCompanyWork","NewTokyoNoodleBar","getCompany","getGainRates","calculateCompanyWorkStats","influenceStockThroughCompanyWork","initElectron","normalizeFileName","getFiles","deleteFile","removeFile","saveFile","Buffer","overwritten","writeToScriptFile","initWebserver","funcs","typesFn","appNotifier","initAppNotifier","triggerSave","triggerGameExport","ERROR","triggerScriptsExport","exportScripts","getSaveData","getSaveInfo","getImportDataFromString","pushSaveData","appSaveFns","initSaveFunctions","bridge","electronBridge","receive","send","initElectronBridge","pushGameReady","playtime","game","pushImportResult","wasImported","pushDisableRestore","isCreateProgramWork","CREATE_PROGRAM","CreateProgramWork","unitCompleted","programFile","percComplete","unitNeeded","getProgram","reqLvl","cancelled","incompleteName","lines","Intelligence","useTheme","colSpan","WorkInProgressOverview","onClickFocus","header","workCell","workHeader","pt","pb","workSubtitles","mt","details","innerText","isCrimeWork","crime","getCrime","isGraftingWork","factionWork","companyWork","textAlign","CharacterOverview","killOpen","setKillOpen","hackingProgress","strengthProgress","defenseProgress","dexterityProgress","agilityProgress","charismaProgress","borderTop","flex","aria-label","midpoint","program","description","BadRNG","WHRNG","s1","s2","s3","genSeed","CompanyWork","Favor","TerminalEvents","TerminalClearEvents","orderType","refs","orderBook","executeOrder","isBuy","predefined","getPredefinedThemes","AlertManager","alerts","setAlerts","sha256","getMessageHash","overflowWrap","getRandomByte","SUPPORT","SleeveSupportWork","recentScripts","killedTime","unshift","timeOfDeath","getDB","indexedDB","indexedDbRequest","onupgradeneeded","createObjectStore","onerror","ev","onsuccess","db","transaction","objectStore","request","put","deleteGame","sendMessage","forced","showMessage","recvd","addMessageToServer","Messages","checkForMessagesToSend","jumper0","MessageFilenames","Jumper0","jumper1","Jumper1","jumper2","Jumper2","jumper3","Jumper3","jumper4","Jumper4","cybersecTest","CyberSecTest","nitesecTest","NiteSecTest","bitrunnersTest","BitRunnersTest","truthGazer","TruthGazer","redpill","RedPill","worldDaemon","flightName","Flight","isSleeveClassWork","SleeveClassWork","isSleeveCrimeWork","CRIME","SleeveCrimeWork","getExp","problemType","getRandomProblemType","getRandomReward","randServer","getRandomServer","contractFn","getRandomFilename","addContract","generateRandomContractOnHome","generateContract","problemTypes","rewardType","factionsThatAllowHacking","offerHackingWork","sanitizeRewardType","numFactions","randFaction","allJobs","randIndex","canGetBonus","setLastExportBonus","unixTime","ReputationRate","Option","buttonText","infoText","getTeamSuccessBonus","inst","getActionTypeSkillSuccessBonus","MightOfAres","WisdomOfAthena","ChaosOfDionysus","BeautyOfAphrodite","TrickeryOfHermes","FloodOfPoseidon","HuntOfArtemis","KnowledgeOfApollo","HemoRecirculator","Targeting1","Targeting2","Targeting3","SyntheticHeart","SynfibrilMuscle","CombatRib1","CombatRib2","CombatRib3","NanofiberWeave","SubdermalArmor","WiredReflexes","GrapheneBoneLacings","BionicSpine","GrapheneBionicSpine","BionicLegs","GrapheneBionicLegs","SpeechProcessor","TITN41Injection","EnhancedSocialInteractionImplant","BitWire","ArtificialBioNeuralNetwork","ArtificialSynapticPotentiation","EnhancedMyelinSheathing","SynapticEnhancement","NeuralRetentionEnhancement","DataJack","ENM","ENMCore","ENMCoreV2","ENMCoreV3","ENMAnalyzeEngine","ENMDMA","Neuralstimulator","NeuralAccelerator","CranialSignalProcessorsG1","CranialSignalProcessorsG2","CranialSignalProcessorsG3","CranialSignalProcessorsG4","CranialSignalProcessorsG5","NeuronalDensification","NuoptimalInjectorImplant","SpeechEnhancement","FocusWire","PCDNI","PCDNIOptimizer","PCDNINeuralNetwork","ADRPheromone1","ADRPheromone2","ShadowsSimulacrum","HacknetNodeCPUUpload","HacknetNodeCacheUpload","HacknetNodeNICUpload","HacknetNodeKernelDNI","HacknetNodeCoreDNI","Neurotrainer1","Neurotrainer2","Neurotrainer3","Hypersight","LuminCloaking1","LuminCloaking2","SmartSonar","PowerRecirculator","QLink","SPTN97","HiveMind","CordiARCReactor","SmartJaw","Neotra","Xanipher","HydroflameLeftArm","nextSENS","OmniTekInfoLoad","PhotosyntheticCells","Neurolink","CRTX42AA","Neuregen","CashRoot","NutriGen","PCMatrix","INFRARet","DermaForce","GrapheneBrachiBlades","BrachiBlades","GrapheneBionicArms","BionicArms","SNA","EsperEyewear","EMS4Recombination","OrionShoulder","HyperionV1","HyperionV2","GolemSerum","VangelisVirus","VangelisVirus3","INTERLINKED","BladeRunner","BladeArmor","BladeArmorPowerCells","BladeArmorEnergyShielding","BladeArmorUnibeam","BladeArmorOmnibeam","BladeArmorIPU","StaneksGift2","StaneksGift3","donationBonus","randomBonuses","bonuses","randomNumber","getRandomBonus","UnstableCircadianModulatorParams","UnstableCircadianModulator","AevumGalacticCybersystems","Sector12DeltaOne","AevumPolice","VolhavenZBInstituteOfTechnology","AevumSummitUniversity","AevumCrushFitnessGym","Sector12IronGym","VolhavenMilleniumFitnessGym","Sector12PowerhouseGym","AevumSnapFitnessGym","infiltrateCycles","INFILTRATE","SleeveInfiltrateWork","nextPosition","baseSalary","repMultiplier","reqdHacking","reqdStrength","reqdDefense","reqdDexterity","requiredAgility","reqdAgility","reqdCharisma","reqdReputation","hackingEffectiveness","strengthEffectiveness","defenseEffectiveness","dexterityEffectiveness","agilityEffectiveness","charismaEffectiveness","strengthExpGain","defenseExpGain","dexterityExpGain","agilityExpGain","calculateJobPerformance","hackRatio","strRatio","defRatio","dexRatio","agiRatio","chaRatio","reputationGain","moneyHacked","orgName","percTotalMoneyHacked","influenceStockThroughServerGrow","moneyGrown","percTotalMoneyGrown","performanceMult","cyclesOfWork","compName","checkEnum","enumVariable","StartButton","char","CorruptableText","setContent","counter","timers","letter","randFrom","randomize","timerId","GRAFTING","GraftingWork","gAugs","GraftableAugmentations","GraftableAugmentation","fmt","FactionInfo","offerFieldWork","offerSecurityWork","keep","keepOnInstall","assignment","FactionWorkStats","baseStats","getMult","getUpgrade","getUpgradeCost","newCap","determineCrimeSuccess","found","findCrime","roughName","atCapacity","marketCycles","emp","hireRandomEmployee","calculateTotalEmployees","calculateNextEmployees","maxEne","maxHap","maxMor","autoCoffee","perfMult","totalSalary","ene","coffeeMult","coffeeEmployees","mor","hap","partyMult","partyEmployees","minEne","minMor","minHap","calculateEmployeeProductivity","employeeNextJobs","employeeJobs","employeeProd","prod","calculateProductivity","getElementById","cre","sal","Employee","creativity","efficiency","salary","CorporationUpgradeIndex","CorporationUpgrades","SmartFactories","benefit","SmartStorage","DreamSense","WilsonAnalytics","NuoptimalNootropicInjectorImplants","SpeechProcessorImplants","NeuralAccelerators","FocusWires","ABCSalesBots","ProjectInsight","antiLog","sum","ProgressBar","withStyles","bar","transition","LinearProgress","validator","paramValidator","calculateSellInformationCashReward","levelBonus","calculateTradeInformationRepReward","calculateInfiltratorsRepReward","startingSecurityLevel","infiltrationData","sanitizedSource","prop","comprGenChar","comprLZGenerate","plain","comprLZEncode","cur_state","new_state","new_offset","tmp_state","len","comprLZDecode","compr","literal_length","backref_length","backref_offset","StatsProgressBar","remaining","StatsProgressOverviewCell","characterOverviewStyles","paddingBottom","canAccessGang","isAwareOfGang","getGangFaction","startGang","v1","v2","oldhp","baseCheck","initialCheck","netscriptCanGrow","netscriptCanWeaken","PromptEvent","PromptManager","setPrompt","PromptMenuText","PromptMenuSelect","PromptContent","PromptMenuBoolean","paddingTop","submit","autoFocus","onInput","stopPropagation","ENTER","preventDefault","choices","getItems","createCityMap","demand","competition","quality","per","performance","dur","durability","rel","reliability","aes","aesthetics","fea","features","siz","reqMats","createProduct","fin","opProd","engrProd","mgmtProd","mgmtFactor","prog","creationProd","finishProduct","totalProd","engrRatio","mgmtRatio","rndRatio","opsRatio","busRatio","totalMult","sciFac","calculateRating","advMult","busmgtgRatio","isFinite","awareness","popularity","reqMat","ProductRatingWeights","rat","Quality","Performance","Durability","Reliability","Aesthetics","Features","prodMats","ProgramsSeen","ProgramsRoot","getHackingLevelRemaining","disableGutters","gridTemplateColumns","curCompletion","getProgCompletion","Paper","flexWrap","mr","InvitationsSeen","WorkTypesOffered","FactionElement","facInfo","joined","gap","openFaction","openFactionAugPage","acceptInvitation","ml","justifyItems","gridAutoFlow","FactionsRoot","allJoinedFactions","invitations","breakpoints","down","gridTemplateRows","gridAutoRows","destroyedBitNode","newBitNode","bitNodeNumber","sourceFileKey","sourceFile","alreadyOwned","ownedSourceFile","playerSrcFile","PlayerOwnedSourceFile","giveSourceFile","ActivateRecoveryMode","RecoveryRoot","errorData","resetError","issueUrl","newIssueUrl","startIcon","onTriggered","px","multiline","fullWidth","RamCalculationErrorCode","sharePower","StartSharing","CSM","nsFuncsGenerator","sanitizedPid","Environment","vars","getScriptOnServer","shouldLog","disableLogs","Person","crimeKey","getMemoryUpgradeCost","memory","currCost","currMemory","installAugmentation","updateStatLevels","cyclesUsed","SleeveRecoveryWork","SleeveSynchroWork","takeUniversityCourse","universityName","newCity","tryBuyAugmentation","upgradeMemory","workType","sanitizedWorkType","workoutAtGym","gymName","stat","sanitizedStat","recruitmentSuccessChance","contractSuccessChance","bb","chances","CorporationState","numUnlockUpgrades","upgradeMultipliers","addFunds","getState","gameCycles","issueNewSharesCooldown","avgProfit","cycleProfit","updateDividendTax","retainedEarnings","getCycleDividends","updateSharePrice","nextState","dividendTax","dividendsPerShare","dividends","determineValuation","getTargetSharePrice","targetPrice","immediatelyUpdateSharePrice","sharesTracker","sharesUntilUpdate","sharesSold","maxIterations","convertCooldownToString","cd","upgN","upgradeAmt","getProductionMultiplier","getDreamSenseGain","getAdvertisingMultiplier","getEmployeeCreMultiplier","getEmployeeChaMultiplier","getEmployeeIntMultiplier","getEmployeeEffMultiplier","getSalesMultiplier","getScientificResearchMultiplier","getStarterGuide","hasHandbook","handbookFn","showLiterature","popEst","locations","OptionsSlider","initialValue","_evt","newValue","onChangeCommitted","callback","valueLabelDisplay","marks","TickerDisplayMode","DisplayModeButton","tickerDisplayMode","Portfolio","changeDisplayMode","StockTickersConfig","changeWatchlistFilter","maintainMembership","finishAction","penalty","hack_asc_points","str_asc_points","def_asc_points","dex_asc_points","agi_asc_points","cha_asc_points","resetPidCounter","setMaxRam","EPSILON","decay","getSuccessChance","baseTime","skillFac","effDexterity","statFac","est","clamp","real","low","high","competence","playerStatLvl","effMultiplier","getSuccessesNeededForNextLevel","baseSuccessesPerLevel","newCrimeType","convertCrimeType","ROBSTORE","BONDFORGERY","TRAFFICKARMS","GRANDTHEFTAUTO","calculateCrimeWorkStats","frames","Apr1Events","Apr1","getMonth","getDate","isApr1","setN","allow","currentCity","onTravel","WorldMap","SuccessChance","estimatedSuccessChance","StaticModal","isSleeveRecoveryWork","RECOVERY","isSleeveSynchroWork","SYNCHRO","logEntry","logUpd","displayLog","recordGrow","recordWeaken","litObj","Literatures","checkIfConnectedToDarkweb","listAllDarkwebItems","item","printRaw","buyDarkwebItem","itemName","buyAllDarkwebItems","itemsToBuy","calculateRawDiff","startingDifficulty","calculateDifficulty","calculateReward","parseArg","asNumber","ParseCommands","allCommands","flat","ParseCommand","idx","lastQuote","DOUBLE_QUOTE","QUOTE","CinematicText","setI","done","setDone","onDone","newI","auto","GameOptionsPage","disablePadding","uniqueId","MaxSleevesFromCovenant","BaseCostPerSleeve","parseOnlyRamCalculate","dependencyMap","completedParses","parseQueue","parseCode","moduleName","currentModule","globalKey","internalToExternal","additionalModules","addRef","external","objectPrototypeProperties","getOwnPropertyNames","commonVisitors","Identifier","st","WhileStatement","walkDeeper","test","DoWhileStatement","ForStatement","update","IfStatement","consequent","alternate","MemberExpression","walk","importModuleName","spec","imported","parseOnlyCalculateDeps","initialModule","nextModule","ImportError","detailedCosts","unresolvedRefs","resolvedRefs","loadedFns","dep","findFunc","refDetail","fnRam","checkInfiniteLoop","missingAwaitLine","nodeHasTrueTest","hasAwait","AwaitExpression","codeCopy","decimal","pidCounter","tempCounter","MAX_SAFE_INTEGER","wrapAPI","NetscriptSingularity","NetscriptGang","NetscriptBladeburner","NetscriptCodingContract","NetscriptSleeve","NetscriptCorporation","NetscriptStanek","NetscriptInfiltration","NetscriptUserInterface","NetscriptFormulas","NetscriptStockMarket","NetscriptGrafting","NetscriptHacknet","_hackAmount","hackAmount","_threads","_time","moneyBefore","moneyAfter","logGrowPercent","_growth","_cores","maxThreadsNeeded","end","finally","_format","_fn","possibleLogs","_pid","_scriptname","scriptServer","spawnDelay","killByPid","_safetyguard","safetyguard","scriptsKilled","_files","_destination","_source","destServer","sourceServ","noFailures","sourceTextFile","textFile","destTextFile","newFile","sourceScript","destScript","newScript","_grep","grep","allFiles","processes","speed","production","purchaseCost","coreCost","levelCost","_filename","_ram","_name","hostnameStr","_port","_data","_mode","txtFile","tryWrite","_file","status","suc","_n","_milliseconds","_milliPrecision","milliseconds","milliPrecision","_message","_variant","_duration","_txt","_url","_target","$","writeToTextFile","fail","_host","source_is_txt","dest_is_txt","source_file","dest_file","Flags","NetscriptExtra","isHackingGang","respectGainRate","wantedGainRate","storedTerritoryAndPowerCycles","territoryClashChance","territoryWarfareEngaged","notifyMemberDeath","getPower","getTerritory","processGains","processExperienceGains","processTerritoryAndPowerGains","moneyGains","respectGains","wantedLevelGains","justice","recordEarnedRespect","oldWanted","newWanted","gangName","calculatePower","gainRoll","multiplicativeGain","powerMult","PowerMultiplier","additiveGain","gangs","others","thisGang","otherGang","thisPwr","thisChance","calculateTerritoryGain","winGang","loseGang","powerBonus","territoryGain","clash","gainExperience","won","baseDeathChance","modifiedDeathChance","killMember","getRespectNeededToRecruitMember","getWantedPenalty","memberTotal","totalRespect","lostRespect","earnedRespect","ascend","getDiscount","getAllTaskNames","taskName","newRemoteFileApiConnection","stopConnection","Remote","startConnection","isRemoteFileApiConnectionLive","connection","readyState","tooltiptext","reqRep","TerminalHelpText","TemplatedHelpTexts","HelpTexts","analyze","backdoor","cat","check","cls","cp","expr","free","help","history","lscpu","mem","nano","sudov","unalias","GameEnv","Platform","getErrorForDisplay","errorInfo","isElectron","Production","toDisplay","language","cookiesEnabled","cookieEnabled","doNotTrack","indexedDb","platform","Steam","Browser","environment","getErrorMetadata","Development","componentStack","Tracking","Retirement","Investigation","Raid","initValue","Hand","cards","addCards","removeByIndex","StockTickerTxButton","DummyGrid","DummyGift","fragments","ghostGrid","getContract","contractName","removeContract","existingPartialExeIndex","findIndex","CodingContractModal","setProps","setAnswer","contractType","tries","BitFlumeEvent","BitFlumeModal","terminalCommandHistory","generalMethods","workMethods","processWork","augmentationMethods","canAccessBladeburner","bladeburnerMethods","startBladeburner","canAccessCorporation","corporationMethods","startCorporation","gangMethods","serverMethods","InvitationModal","opt_initFunc","sourceCode","sourceCodeLineOffset","acorn","PARSE_OPTIONS","initFunc_","paused_","polyfills_","functionCounter_","stepFunctions_","stepMatch","methodName","createScope","stripLocations_","State","stateStack","nodeConstructor","READONLY_DESCRIPTOR","configurable","writable","NONENUMERABLE_DESCRIPTOR","READONLY_NONENUMERABLE_DESCRIPTOR","VARIABLE_DESCRIPTOR","STEP_ERROR","SCOPE_REFERENCE","VALUE_IN_DESCRIPTOR","toStringCycles_","getErrorLineNumber","getErrorLineNumberMessage","appendCode","populateScope_","initGlobalScope","OBJECT_PROTO","FUNCTION_PROTO","initFunction","initObject","proto","OBJECT","initArray","initString","initBoolean","initNumber","initDate","initRegExp","initError","initMath","initJSON","thisInterpreter","EvalError","parseInt","strFunctions","decodeURI","encodeURI","wrapper","nativeFunc","throwException","URI_ERROR","FUNCTION","ARRAY","ARRAY_PROTO","REGEXP","REGEXP_PROTO","DATE","DATE_PROTO","identifierRegexp","var_args","calledWithNew","newFunc","createObjectProto","arguments","argsStr","SYNTAX_ERROR","parentScope","boxThis","isObject","getScope","strict","box","getPrototype","thisArg","func_","funcThis_","arguments_","arrayPseudoToNative","TYPE_ERROR","doneExec_","setNativeFunctionPrototype","valueOf","throwIfNullUndefined","properties","arrayNativeToPseudo","descriptor","preventExtensions","getOwnPropertyDescriptor","setter","hasValue","pseudoDescriptor","propertyIsEnumerable","newArray","first","legalArrayLength","RANGE_ERROR","class","reverse","howmany","opt_begin","opt_end","opt_separator","iLength","getProperty","hasProperty","element","isa","jLength","searchElement","opt_fromIndex","STRING","fromCharCode","functions","compareString","locales","localeCompare","separator","jsList","search","newSubstr","BOOLEAN","NUMBER","numConsts","fractionDigits","toExponential","digits","precision","toPrecision","radix","Function","UTC","pattern","rgx","populateRegExp","lastIndex","opt_message","newError","createObject","createErrorSubclass","EVAL_ERROR","REFERENCE_ERROR","myMath","mathConsts","numFunctions","myJSON","nativeObj","child","legalArrayIndex","Value","strs","pseudoRegexp","nativeRegexp","ignoreCase","createFunction","opt_constructor","illegalConstructor","asyncFunc","pseudoDate","pseudoObj","opt_cycles","pseudo","native","nativeArray","pseudoArray","lineNum","isGetter","TypeError","opt_descriptor","ReferenceError","defObj","firstNode","expression","createSpecialScope","opt_scope","getValueFromScope","prevNode","setValueToScope","nodeClass","isConstructor","getValue","Completion","NORMAL","BREAK","CONTINUE","RETURN","THROW","errorClass","lineNumErrorMsg","unwind","lineNumberMsg","cv","labels","isLoop","isSwitch","realError","errorTable","RangeError","URIError","createGetter_","funcThis","doneCallee_","doneArgs_","createSetter_","elements","n_","array_","doneLeft_","doneRight_","leftReference_","doneGetter_","leftValue_","leftValue","doneSetter_","setterValue_","rightValue","directEval_","funcNode","paramName","paramValue","argsList","evalNode","argsWithCallback","done_","throwValue","mode_","test_","doneInit_","doneObject_","variable_","object_","visited_","name_","gotPropName","props_","doneVariable_","propName","doneProperty_","properties_","kinds","switchValue_","defaultCase_","index_","switchCase","matched_","tested_","doneBlock_","doneHandler_","doneFinalizer_","leftSide_","changeValue","returnValue","declarations","declarationNode","init_","doneBody_","numServerGrowthCycles","numServerGrowthCyclesAdjusted","hack_exp","hack_mult","str_exp","str_mult","def_exp","def_mult","dex_exp","dex_mult","agi_exp","agi_mult","cha_exp","cha_mult","assignToTask","unassignFromTask","difficultyPerCycles","getGainedAscensionPoints","canAscend","getCurrentAscensionMults","getAscensionMultsAfterAscend","getAscensionResults","postAscend","preAscend","applyUpgrade","respectToDeduct","buyUpgrade","defaultInterpreter","ANSI_ESCAPE","lineClass","ANSIITypography","memo","parts","groups","matchAll","startIndex","stopIndex","partText","paragraph","part","ansiCodeStyle","COLOR_MAP_BRIGHT","1","2","3","4","5","6","7","COLOR_MAP_DARK","8","9","10","11","12","13","14","15","codeParts","nextStyleKey","codePart","ir","ig","ib","grey","ansi2rgb","fontWeight","textDecoration","findSleevePurchasableAugs","ownedAugNames","availableAugs","isAvailableForSleeve","validMults","worker","companyPositionName","bn11Mult","jobPerformance","StaneksGiftEvents","maxClearanceLevel","Gym","TechVendor","techVendorMaxRam","techVendorMinRam","University","AevumCasino","Casino","Special","NewTokyoArcade","Sector12CarmichaelSecurity","Sector12CityHall","Hospital","Slums","WorldStockExchange","ChongqingChurchOfTheMachineGod","IshimaGlitch","matchEnding","zip","JSZip","zipFiles","fileNames","fileContents","zipFn","generateAsync","FileSaver","saveAs","v2ModalOpen","openV2Modal","V2Modal","stealthIcon","xmlns","viewBox","killIcon","ActionLevel","isActive","canIncrease","canDecrease","Autolevel","TeamSizeButton","graftableAug","canGraft","AugPreReqsChecklist","preAug","GraftingRoot","graftableAugmentations","selectedAug","setSelectedAug","graftOpen","setGraftOpen","selectedAugmentation","switchSortOrder","newOrder","Cost","getAugsSorted","BlinkingCursor","setOn","StyleEditorButton","styleEditorOpen","setStyleEditorOpen","ThemeEditorButton","themeEditorOpen","setThemeEditorOpen","ThemeCollaborate","DeleteGameButton","modalOpened","setModalOpened","SoftResetButton","noConfirmation","PreReqs","ownedPreReqs","hasPreReqs","Requirement","gridArea","Exclusive","PurchasableAugmentations","augNames","PurchasableAugmentation","owned","sleeveAugs","canPurchase","float","gridTemplateAreas","TravelAgencyRoot","setDestination","startTravel","symbolsLoaded","symbols","SetupTextEditor","populate","exclude","OpenScript","lastPosition","model","isTxt","openScripts","currentScript","Root","editorRef","monacoRef","vimStatusRef","vimEditor","setVimEditor","setEditor","setFilter","searchExpanded","setSearchExpanded","setRAM","ramEntries","setRamEntries","updatingRam","setUpdatingRam","decorations","setDecorations","optionsOpen","setOptionsOpen","setOptions","insertSpaces","ramInfoOpen","setRamInfoOpen","regenerateModel","createModel","updateRAM","keydown","ctrlKey","metaKey","require","initVimMode","VimMode","Vim","defineEx","saveNQuit","defineAction","_cm","nTabs","currIndex","currentTabIndex","onTabClick","nextIndex","mapCommand","context","dispose","debouncedUpdateRAM","newCode","entriesDisp","RAM","scriptToSave","cleanCode","ns1","ns2","curIndex","isDisposed","setModel","setPosition","revealLineInCenter","onTabClose","closingScript","savedScriptCode","wasCurrentScript","dirty","indexOffset","openScript","serverData","getServerCode","handleFilterChange","handleExpandSearch","filteredOpenScripts","tabMaxWidth","tabTextWidth","tabIconWidth","onDragEnd","endIndex","removed","reorder","droppableId","direction","provided","snapshot","innerRef","droppableProps","isDraggingOver","spellCheck","externalScript","colorProps","borderColor","iconButtonStyle","scriptTabText","draggableId","disableInteractiveElementBlocking","draggableProps","dragHandleProps","flexShrink","serverScriptCode","onTabUpdate","beforeMount","languages","registerCompletionItemProvider","provideCompletionItems","suggestions","kind","CompletionItemKind","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","getLanguages","loader","tokenizer","libSource","typescript","javascriptDefaults","addExtraLib","typescriptDefaults","onMount","Position","loading","defaultLanguage","defaultValue","newPos","awaitWarning","newDecorations","deltaDecorations","startLineNumber","startColumn","endLineNumber","endColumn","isWholeLine","glyphMarginClassName","glyphMarginHoverMessage","infLoop","glyphMargin","getAction","getSubdirectories","t_dir","processFile","subdir","containsFiles","dirWithTrailingSlash","makeScriptBlob","compile","shouldCompile","queueCompile","uurls","_getScriptUrls","loadedModule","isDependencyOutOfDate","scriptModuleSequenceNumber","depScript","seen","urlStack","ranges","importNodes","ExportNamedDeclaration","ExportAllDeclaration","transformedCode","matchingScripts","importedScript","urls","blob","ScriptUrl","vargs","schema","numDashes","libarg","argv","TablePaginationActionsAll","rowsPerPage","onPageChange","BitnodeMultiplierDescription","BitNodeMultipliersDisplay","maxSfLevel","columnCount","columnGap","GeneralMults","SkillMults","FactionMults","AugmentationMults","HackingMults","PurchasedServersMults","StockMults","CrimeMults","InfiltrationMults","CompanyMults","GangMults","CorporationMults","BladeburnerMults","StanekMults","BNMultTable","rowsArray","rowData","marginBottom","sectionName","extraSize","StnakesGiftPowerMultiplier","Cell","cellProps","onMouseEnter","Grid","activeGrid","randomColor","elems","newNs2Template","detectSimpleScriptGlob","globString","globDatabase","parsedGlob","glob","preGlob","postGlob","globError","globMatches","globAgainst","parseSimpleScriptGlob","commonEditor","scriptEditorRouteOptions","filesToLoadOrCreate","globSearch","isEmpty","filepath","getFilepath","fileIsNs2","isNs2","CursorPositions","saveCursor","column","HammingEncode","enc","data_bits","parity","HammingEncodeProperly","HammingDecode","bits","bit","ans","automate","stop","findNode","setParent","queue","getMultiplierHelper","getProductProductionMultiplier","advertisingMult","employeeChaMult","employeeCreMult","employeeEffMult","employeeIntMult","productionMult","productProductionMult","salesMult","sciResearchMult","storageMult","StanekConstants","RAMBonus","BaseSize","MaxSize","detect","hasChanges","orig","nf","fl","backups","currPos","nextPosName","corpName","additionalShares","warehouseApi","OfficeApi","Engine","_lastUpdate","updateGame","decrementAllCounters","checkCounters","Counters","autoSaveCounter","updateSkillLevelsCounter","updateDisplays","updateDisplaysLong","updateActiveScriptsDisplay","createProgramNotifications","augmentationsNotifications","passiveFactionGrowth","mechanicProcess","contractGeneration","achievementsCounter","counterName","warningToast","warnAutosaveDisabled","adjustedCycles","startExploits","setupUncaughtPromiseHandler","timeOffline","numCyclesOffline","numContracts","offlineReputation","offlineHackingIncome","offlineProductionFromHacknetNodes","hacknetProdInfo","timeOfflineString","_thisUpdate","requestAnimationFrame","LoadingScreen","setShow","loaded","setLoaded","reason","doLoad","ignoreQueued","stacks","calculateEntropy","typ","invalidArgs","baseSize","charge","af","cotmg","inBonus","updateMults","effect","boost","neighboor","CalculateEffect","canPlace","rootX","rootY","newFrag","aFrag","place","findFragment","clearCharge","Void","RFARequestHandler","pushFile","fileData","at","getFile","scriptContent","getFileNames","fileNameList","scr","getAllFiles","fileList","calculateRam","getDefinitionFile","StatsElement","EarningsElement","rates","ServerType","All","Foreign","Owned","Purchased","ServerDropdown","isValidServer","purchased","serverType","purchase","DECK_COUNT","Result","Blackjack","bet","canStartGame","playerHand","deck","safeDrawCard","dealerHand","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","currServ","isHacknet","org","canRunScripts","hackingSkill","security","hackingChance","numPort","getProgressText","getLitFile","lit","currDir","setcwd","contractOpen","executeScanAnalyzeCommand","visited","depthQueue","newS","titleDashes","connectToServer","executeCommands","commandHistory","commandHistoryIndex","executeCommand","n00dlesServ","commandName","scananalyze","apr1","removeBracketsFromArrayString","strCpy","removeQuotesFromString","convert2DArrayToString","nums","ways","maxLen","padStart","spiral","u","col","playerAns","_arr","reach","jumps","lastJump","jumpedFrom","intervals","numIntervals","interval","sanitizedResult","sanitizedAns","B","C","ansArr","ipInAns","maxCur","maxSoFar","hold1","MIN_SAFE_INTEGER","hold2","release1","release2","prices","hold","rele","cur","createTriangleRecurse","numLevels","createTriangle","triangle","dp","numRows","numColumns","currentRow","gridString","grid","obstacleGrid","dstY","dstX","minPathLength","distanceFactor","distance","MinHeap","validPosition","neighbors","yN","xN","changeWeight","yQ","xQ","ansX","ansY","roll","dfs","pair","sanitizedPlayerAnsArr","resultInAnswer","numDigits","digitsArray","helper","evaluated","multed","_alteredBit","_buildArray","_randomIndex","edges","shuffle","vertexShuffler","sanitizedPlayerAns","neighbourhood","vertex","adjLeft","adjRight","coloring","initialVertex","frontier","validColors","aColor","bColor","plaintext","ans_plain","run_length","compressed","BinHeap","heapifyUp","heapifyDown","predicate","heapOrderABeforeB","tmp","toSwap","weightA","weightB","requireHackingLevel","targetServer","numAugReq","ipaddress","byteRange","formattedHours","getHours","formattedMinutes","getMinutes","formattedSeconds","getSeconds","AllSoftwarePositions","AllITPositions","AllNetworkEngineerPositions","SecurityEngineerPositions","AllTechnologyPositions","AllBusinessPositions","AllAgentPositions","AllSecurityPositions","AllSoftwareConsultantPositions","AllBusinessConsultantPositions","SoftwarePositionsUpToHeadOfEngineering","SoftwarePositionsUpToLeadDeveloper","BusinessPositionsUpToOperationsManager","WaiterOnly","EmployeeOnly","PartTimeWaiterOnly","PartTimeEmployeeOnly","OperationsManagerOnly","CEOOnly","effectText","costPerLevel","hasTargetServer","collapsedSum","createDescription","checkGangApiAccess","getGangMember","_faction","wantedLevelGainRate","cpy","_memberName","memberName","hack_asc_mult","str_asc_mult","def_asc_mult","dex_asc_mult","agi_asc_mult","cha_asc_mult","recruited","tasks","_taskName","getGangTask","_equipName","equipName","equipment","typecheck","_engage","engage","_otherGang","playerPower","checkSleeveAPIAccess","checkSleeveNumber","sleeveNumber","sl","_sleeveNumber","_crimeRoughName","crimeRoughName","_universityName","_className","_cityName","acompanyName","_factionName","_workType","_gymName","_stat","jobTitle","agilityExp","charismaExp","companyRep","crimeMoney","crimeSuccess","defenseExp","dexterityExp","factionRep","hackingExp","strengthExp","workMoney","purchasableAugs","_augName","_action","_contract","devMenu","doc","completely_unused_field","real_document","recur","guess","bcrypt","getHacknetNode","hi","_i","hasUpgraded","timeOnline","totalProduction","_upgName","_count","_upgTarget","checkStanekAPIAccess","_rootX","_rootY","_rotation","_fragmentId","fragmentId","getLocationsWithInfiltrations","_location","tradeRep","sellCash","SoARep","calculateInfiltrationData","newTheme","currentTheme","errors","newStyles","currentStyles","checkBladeburnerAccess","skipjoined","apiDenied","bladeburnerDenied","checkBladeburnerCity","getBladeburnerActionObject","_blackOpName","blackOpName","_type","_level","_autoLevel","_skillName","_size","getCodingContract","returnReward","answerStr","creward","upgradeName","materialName","checkAccess","api","getSafeDivision","numAdVerts","_divisionName","_amt","_materialName","sell","sll","_productName","pCost","cityData","developmentProgress","_price","_all","_enabled","enabled","_designInvest","_marketingInvest","_qty","_sourceDivision","_sourceCity","_targetDivision","_targetCity","sourceDivision","targetDivision","targetCity","_on","_researchName","_employeeName","_job","_amount","amount","_costPerEmployee","_industryName","industryName","_upgradeName","_rate","dividendEarnings","_corporationName","_selfFund","corporationName","selfFund","fundingRound","percShares","funding","investShares","_numShares","initialSharePrice","_amountCash","amountCash","startingCost","reFac","robFac","aiFac","advFac","hwFac","getProductDescriptionText","getMaximumNumberProducts","additional","hasMaximumNumberProducts","calculateProductionFactors","multSum","cityMult","updateWarehouseSizeUsed","prodName","newInd","employeeSalary","officeLoc","processMaterialMarket","processProductMarket","popularityGain","awarenessGain","MAX_VALUE","processMaterials","processProducts","wh","foo","imp","buyAmt","maxAmt","smartBuy","smartSupplyStore","worseAmt","totalSize","freeSpace","maxProd","getOfficeProductivity","totalMatSize","reqMatName","normQty","producableFrac","reqMatQtyNeeded","fooProd","fooI","businessFactor","getBusinessFactor","advertisingFactor","getAdvertisingFactors","marketFactor","getMarketFactor","markupLimit","numerator","sqrtNumerator","sqrtDenominator","denominator","sqrt","optimalPrice","marketTa2Price","sellAmt","totalExp","expI","amtStr","expIndustry","expWarehouse","processProduct","totalProfit","forProduct","netStorageSize","sCostString","businessProd","calculateEffectWithFactors","awarenessFac","popularityFac","ratioFac","updateResearchTree","expFac","linearFac","morale","happiness","energy","det","trainingEff","effCre","effEff","prodBase","checkFormulasAccess","_favor","_rep","_player","_exp","_mult","_skill","_server","_startingLevel","_extraLevels","_costMult","_startingRam","_startingCore","_extraCores","extraCores","_ramUsed","_maxRam","HScalculateHashGainRate","HScalculateLevelUpgradeCost","HScalculateRamUpgradeCost","HScalculateCoreUpgradeCost","_startingCache","_extraCache","extraCache","HScalculateCacheUpgradeCost","HScalculateServerCost","_gang","_member","_task","_points","_crimeType","_classType","_locationName","checkTixApiAccess","getStockFromSymbol","_symbol","_shares","_posType","sanitizedPosType","_pos","orderPos","ltype","lpos","stockMarketOrders","forecast","checkGraftingAPIAccess","_focus","wasFocusing","craftableAug","getPlayerFields","matchJS","matchScript","offenders","processScript","formatRules","formatOffenders","off","fileline","rule","textfield","Language","InteractiveTutorialRoot","nsSelectionOpen","setNSSelectionOpen","setLanguage","tutorialScriptExtension","NS1","tutorialScriptName","contents","canNext","square","tab","updateOptions","readOnly","overviewContainer","visibilityToggle","collapse","Overview","setX","setY","CurrentIcon","KeyboardArrowUpIcon","KeyboardArrowDownIcon","LeftIcon","SchoolIcon","EqualizerIcon","fakeDrag","triggerMouseEvent","eventType","clickEvent","createEvent","initEvent","dispatchEvent","Loading","onStop","defaultPosition","onDoubleClick","openedMixin","transitions","easing","sharp","enteringScreen","closedMixin","leavingScreen","up","Drawer","styled","shouldForwardProp","active","borderLeft","listitem","SidebarRoot","hackingOpen","setHackingOpen","characterOpen","setCharacterOpen","worldOpen","setWorldOpen","helpOpen","setHelpOpen","flashTerminal","flashStats","flashActiveScripts","flashHacknet","flashCity","flashTutorial","augmentationCount","invitationsCount","programCount","getAvailableCreatePrograms","canOpenFactions","canOpenAugmentations","canOpenSleeves","canCorporation","canGang","canJob","canStockMarket","canBladeburner","canStaneksGift","clickTerminal","clickScriptEditor","clickStats","clickActiveScripts","clickCreateProgram","clickFactions","clickAugmentations","clickHacknet","clickCity","clickTravel","clickJob","clickBladeburner","clickGang","clickTutorial","clickOptions","handleShortcuts","altKey","E","H","R","P","F","U","G","anchor","timeout","unmountOnExit","clsx","badgeContent","NeuroFluxDisplay","EntropyDisplay","AugmentationsRoot","installOpen","setInstallOpen","InstalledAugmentations","sourceAugs","Alphabetically","aug1","aug2","BitNodeModifiedStats","MultiplierList","listItems","augmented","bnMult","py","disableTypography","PlayerMultipliers","augP","augObj","calculateAugmentedStats","leftColData","rightColData","PurchasedAugmentations","displayName","enterNextDelay","safeGetSf","sfNum","sfObj","getMaxLevel","SourceFilesElement","sourceSfs","sf1","sf2","selectedSf","setSelectedSf","DevMenuRoot","General","setError","setCorporationName","gangFaction","setGangFaction","addMoney","TransitionProps","expandIcon","bigNumber","modifyExp","modifier","modifyKarma","resetExperience","modifyFactionRep","AllFaction","modifyFactionFavor","labelId","arial-label","setAugmentation","validSFN","setSF","sfN","sfLvl","setAllSF","setProgram","AllPrograms","Servers","setServer","setCompany","modifyCompanyRep","AllCompanies","modifyCompanyFavor","modifyBladeburnerRank","modify","modifyBladeburnerCycles","modifyGangCycles","modifyCorporationFunds","modifyCorporationCycles","CodingContracts","setCodingcontract","cc","stockPrice","setStockPrice","setStockSymbol","processStocks","inputSymbols","SM","stocks","sleeveSetStoredCycles","Stanek","modCycles","modCharge","TimeSkip","timeskip","SaveFile","importInput","setSaveFile","restoreScripts","setRestoreScripts","restoreAugs","setRestoreAugs","restoreSFs","setRestoreSFs","File","FileList","ii","playerAchievement","setPlayerAchievements","achieved","grantAchievement","removeAchievement","Entropy","BladeburnerRoot","travelOpen","setTravelOpen","inFaction","wordBreak","TravelModal","nopadding","preformatted","Line","Console","setCommand","consoleInput","consoleHistoryIndex","setConsoleHistoryIndex","Logs","tabIndex","inputRef","prevCommand","currentTarget","scrollHook","scrollTop","scrollHeight","AllPages","GeneralActionPage","GeneralActionList","actions","GeneralActionElem","computedActionTimeCurrent","actionData","ContractPage","ContractList","ContractElem","Contracts","StealthIcon","KillIcon","OperationPage","OperationList","OperationElem","TeamSizeModal","BlackOpPage","BlackOpList","blackopName","blackop","BlackOpElem","hasReqdRank","SkillPage","valid","onUpgrade","SkillList","SkillElem","canLevel","GangRoot","ManagementSubpage","GangStats","territoryStr","BonusTime","CyclerPerSecond","bonusMillis","GangMemberList","ascendOnly","setAscendOnly","onRecruit","GangMemberCard","GangMemberCardContent","ascendOpen","setAscendOpen","borderRightWidth","onAscend","borderLeftWidth","onTaskChange","GangMemberStats","asc","KillScriptsModal","TaskSelector","currentTask","setCurrentTask","contextMember","TaskDescription","AscensionModal","RecruitButton","RecruitModal","setName","recruit","onKeyUp","TerritorySubpage","gangNames","infoOpen","setInfoOpen","formatTerritory","OtherGangTerritory","clashVictoryChance","TerritoryInfoModal","NextReveal","PurchasedUpgrade","UpgradeButton","GangMemberUpgradePanel","currentCategory","setCurrentCategory","filterUpgrades","weaponUpgrades","armorUpgrades","vehicleUpgrades","rootkitUpgrades","augUpgrades","categories","Weapons","Vehicles","Rootkits","EquipmentsSubpage","CorporationRoot","setDivisionName","canExpand","industryType","MainPanel","CityTabs","setCity","cityStateSetter","SwitchButton","manualMode","switchMode","ManualManagement","setEmployee","employeePositionSelectorInitialValue","employeePositions","positionNames","EmployeeCount","next","currJob","nextJob","nextUna","AutoManagement","vechain","totalMorale","totalHappiness","totalEnergy","avgMorale","avgHappiness","avgEnergy","currUna","IndustryOffice","upgradeOfficeSizeOpen","setUpgradeOfficeSizeOpen","throwPartyOpen","setThrowPartyOpen","employeeManualAssignMode","setEmployeeManualAssignMode","UpgradeSizeButton","upgradeSize","UpgradeOfficeSizeModal","upgradeCost","upgradeCost15","maxMult","maxNum","multIncrease","upgradeCostMax","ThrowPartyModal","setCost","canParty","EffectText","MakeProductButton","makeOpen","setMakeOpen","hasMaxProducts","createProductButtonText","IndustryOverview","researchOpen","setResearchOpen","advertisingInfo","advertisingFactors","totalAdvertisingFac","convertEffectFacToGraphic","MakeProductModal","allCities","design","setDesign","marketing","setMarketing","createProductPopupText","Upgrade","wrapInTooltip","ele","but","ResearchModal","retainHeight","WarehouseRoot","smartSupplyOpen","setSmartSupplyOpen","canAffordUpgrade","stateText","mats","isInStock","isRelevant","breakdownItems","breakdown","previous","IndustryWarehouse","EmptyWarehouse","Leftover","setChecked","SmartSupplyModal","ProductElem","sellOpen","setSellOpen","limitOpen","setLimitOpen","discontinueOpen","setDiscontinueOpen","cancelOpen","setCancelOpen","marketTaOpen","setMarketTaOpen","nfB","hasUpgradeDashboard","sellButtonText","limitProductionButtonText","DiscontinueProductModal","LimitProductProductionModal","setLimit","SellProductModal","iQty","setQty","setPx","initialPrice","MarketTA2","ProductMarketTaModal","CancelProductModal","MaterialElem","purchaseMaterialOpen","setPurchaseMaterialOpen","exportOpen","setExportOpen","sellMaterialOpen","setSellMaterialOpen","materialMarketTaOpen","setMaterialMarketTaOpen","limitProductionOpen","setLimitProductionOpen","tutorial","purchaseButtonText","limitMaterialButtonText","disablePurchaseLimit","ExportModal","possibleDivisions","defaultDivision","setIndustry","setAmt","removeExport","currentDivision","possibleCities","newCost","setNewCost","MaterialMarketTaModal","SellMaterialModal","setPrice","BulkPurchaseSection","setBuyAmt","setDisabled","BulkPurchaseText","parsedAmt","PurchaseMaterialModal","purchaseMaterial","LimitMaterialProductionModal","IndustryProductEquation","reqs","reqAmt","ExpandNewCity","ExpandIndustryTab","possibleIndustries","newIndustry","multRows","appendMult","DividendsStats","PublicButtons","PrivateButtons","BribeButton","Upgrades","findInvestorsopen","setFindInvestorsopen","goPublicopen","setGoPublicopen","fundingAvailable","findInvestorsTooltip","upgradeData","sellSharesOpen","setSellSharesOpen","buybackSharesOpen","setBuybackSharesOpen","issueNewSharesOpen","setIssueNewSharesOpen","issueDividendsOpen","setIssueDividendsOpen","sellSharesOnCd","sellSharesTooltip","issueNewSharesOnCd","issueNewSharesTooltip","canBribe","totalDividends","playerEarnings","storedTime","LevelableUpgrade","xs","UU","BribeFactionModal","selectedFaction","setSelectedFaction","getRepText","SellSharesModal","setShares","ProfitIndicator","BuybackSharesModal","CostIndicator","IssueDividendsModal","percent","setPercent","canIssue","maxNewSharesUnrounded","maxNewShares","newShares","IssueNewSharesModal","issueNewShares","privateOwnedRatio","maxPrivateShares","privateShares","dialogContents","FindInvestorsModal","GoPublicModal","InfiltrationRoot","setStart","StartingDifficulty","Difficulty","Reward","cancel","Stage","minigames","SlashGame","BracketGame","BackwardGame","BribeGame","CheatCodeGame","Cyberpunk2077Game","MinesweeperGame","WireCuttingGame","setLevel","stage","setStage","Countdown","results","setResults","gameIds","setGameIds","lastGames","nextGameId","ids","setupNextGame","pushResult","stageComponent","onFinish","Minigame","MiniGame","onSuccess","Sell","onFailure","automated","Progress","difficulties","timer","words","makeAnswer","setGuess","hasAugment","BACKSPACE","shiftKey","ignorableKeyboardEvent","nextGuess","setRight","OPEN_BRACKET","LESS_THAN","OPEN_PARENTHESIS","OPEN_BRACE","generateLeftSide","CLOSE_PARENTHESIS","CLOSE_BRACKET","CLOSE_BRACE","GREATER_THAN","getChar","positive","option","negative","shuffleArray","makeChoices","correctIndex","setCorrectIndex","setIndex","currentChoice","choice","defaultColor","disabledColor","upColor","downColor","choiceColor","upIndex","upDistance","downIndex","downDistance","onCorrectIndex","newIndex","arrows","arrow","generateCode","puzzle","randChar","generatePuzzle","answers","generateAnswers","currentAnswerIndex","setCurrentAnswerIndex","setPos","flatGrid","isCorrectAnswer","optionColor","move","mines","minefield","generateEmptyField","generateMinefield","memoryPhase","setMemoryPhase","flagged","marked","fieldEquals","phase","setPhase","phaseZeroTime","timeUntilAttacking","Victory","quitInfiltration","handleInfiltrators","soa","infiltrationRepGain","isMemberOfInfiltrators","wiresmin","wiresmax","PIPE","DOT","FORWARD_SLASH","HYPHEN","HASH","colorNames","blue","wires","numWires","wireColors","generateWires","cutWires","setCutWires","questions","numQuestions","questionGenerators","randomPositionQuestion","randomColorQuestion","generateQuestion","checkWire","wireNum","shouldCut","wiresToBeCut","shouldBeCut","question","isCorrectWire","wire","wireColor","cutColor","arrowPart","Intro","CYCLES_PER_SEC","ExpRows","WorkInProgressRoot","workInfo","buttons","stopText","completion","unfocus","classWork","elapsed","stopTooltip","comp","tooltipInfo","GameOptionsRoot","currentTab","setCurrentTab","SYSTEM","setTab","CurrentOptionsPage","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","timestampFormat","setTimestampFormat","remoteFileApiPort","setRemoteFileApiPort","setLocale","_event","INTERFACE","GAMEPLAY","MISC","REMOTE_API","isConnected","ipaddr","address","protocol","WebSocket","handleMessageEvent","response","ConnectionBauble","setConnection","SideBarTab","sideBarProps","tabName","GameOptionsSidebar","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","confirmedImportGame","alt","ServerAccordion","FileDiagnosticModal","FontFamilyField","refreshId","errorText","setErrorText","setFontFamily","LineHeightField","setLineHeight","StyleEditorModal","setRefreshId","customStyle","setCustomStyle","persistToSettings","endIcon","ColorEditor","onColorChange","hideTextfield","deferred","newColor","disableAlpha","ThemeEditorModal","customTheme","setCustomTheme","setTemplateTheme","placement","maxRows","importedTheme","SleeveRoot","FAQOpen","setFAQOpen","SleeveElem","statsOpen","setStatsOpen","augmentationsOpen","setAugmentationsOpen","abc","setABC","doing","MoreStatsModal","SleeveAugmentationsModal","PurchaseAugmentationModal","universitySelectorOptions","gymSelectorOptions","bladeburnerSelectorOptions","possibleJobs","forbiddenCompanies","otherSleeve","possibleFactions","forbiddenFactions","factionObj","second","universities","gyms","possibleContracts","Synchronize","canDo","getABC","s0","setS0","setS1","setS2","validActions","detailsF","details2","detail","FAQModal","HacknetRoot","purchaseMultiplier","setPurchaseMultiplier","purchaseMultiplierOnClicks","onClicks","GeneralInfo","HacknetNodeElem","purchaseMult","upgradeLevelButton","upgradeRAMButton","upgradeCoresButton","increase","upgradeLevelCost","upgradeRamCost","upgradeCoreCost","HacknetServerElem","upgradeRamButton","upgradeCacheButton","base_increase","modded_increase","upgradeCacheCost","HashUpgradeModal","serversMap","HacknetUpgradeElem","selectedServer","setSelectedServer","MultiplierButton","MultiplierButtons","btnProps","PlayerInfo","hasServers","PurchaseButton","GenericLocation","locContent","locName","getLocationSpecificContent","CompanyLocation","quitOpen","setQuitOpen","isEmployedHere","favorGain","onQuit","QuitJobModal","GymLocation","train","HospitalLocation","getHealed","currHp","btnStyle","SlumsLocation","shopliftChance","robStoreChance","mugChance","larcenyChance","drugsChance","bondChance","armsChance","homicideChance","gtaChance","kidnapChance","assassinateChance","heistChance","SpecialLocation","handleBladeburner","worldHeader","HTMLElement","handleGrafting","CreateCorporation","handleCotMG","renderBladeburner","toStanek","renderCotMG","CreateCorporationModal","canSelfFund","n00dlePower","ArcadeRoot","Megabyteburner2000","currentGame","BBCabinetRoot","origin","joystick","borderStyle","borderWidth","ServerButton","TechVendorLocation","purchaseServerButtons","RamButton","TorButton","purchaseTorRouter","CoresButton","maxCores","PurchaseServerModal","setHostname","tryToPurchaseServer","TravelConfirmationModal","UniversityLocation","take","dataStructuresCost","networksCost","algorithmsCost","managementCost","leadershipCost","GameType","CasinoLocation","setGame","Coin","Slots","Roulette","numDecks","drawCard","CoinFlip","investment","setInvestment","setResult","setStatus","playLock","setPlayLock","play","correct","redNumbers","strategies","Red","payout","Black","Odd","Even","High","Low","Third1","Third2","Third3","Single","canPlay","setCanPlay","lock","setLock","strategy","playerWin","isRed","currentNumber","getPayout","payLines","SlotMachine","locks","setLocks","stoppedOne","getPaylineData","payline","point","countSequence","checkWinnings","getTable","LocationLetter","ASCIICity","locationLettersRegex","letterMap","K","M","N","Q","V","Y","lineElems","startI","endI","locationI","ListCity","locationButtons","LocationCity","OptionsModal","setInsertSpaces","setFontSize","setWordWrap","setVim","themePath","themeCopy","setThemeCopy","MilestonesRoot","milestones","highestMilestone","milestone","ActionTimer","TerminalRoot","setKey","doScroll","hook","scrollIntoView","debounced","maxWait","unsubscribe","scrollId","TerminalInput","terminalInput","postUpdateValue","setPostUpdateValue","possibilities","setPossibilities","saveValue","postUpdate","modifyInput","mod","inputLength","selectionStart","inputText","delStart","moveTextCursor","keyDown","autoComplete","onBlur","TAB","semiColonIndex","allPos","determineAllPossibilitiesForTabCompletion","tabCompletion","selectionEnd","anchorEl","parentDirPath","evaledParentDirPath","addAllCodingContracts","cct","addAllLitFiles","addAllPrograms","addAllScripts","processFilepath","addAllTextFiles","addAllDirectories","subdirs","t_parentDirPath","convertParentPath","isCommand","cmd","t_cmd","autocomplete","runArgs","permissive","flagFunc","autocompleteData","txts","pos2","scriptAutocomplete","addAllMessages","allPossibilities","oldValue","longestStartSubstr","TutorialRoot","confirmResetOpen","setConfirmResetOpen","ActiveScriptsRoot","ScriptProduction","prodRateSinceLastAug","ServerAccordions","setRowsPerPage","serverToScriptMap","filtered","rowsPerPageOptions","newPage","onRowsPerPageChange","ActionsComponent","paddedName","barOptions","headerTxt","ServerAccordionContent","noborder","WorkerScriptAccordion","killScript","onlineMps","onlineEps","RecentScriptsPage","recentScript","RecentScriptAccordion","MainPage","onAugmentations","sleevesOpen","setSleevesOpen","isPlayersGang","favorToDonate","canDonate","canPurchaseSleeves","startHackingContracts","startFieldWork","startSecurityWork","FactionRoot","purchasingAugs","setPurchasingAugs","routeToMainPage","AugmentationsPage","getAugs","augName1","augName2","getAugsSortedByCost","getAugsSortedByReputation","Purchasable","canBuy","hasReq","hasRep","cantBuy","getAugsSortedByPurchasable","purchasable","multiplierComponent","costs","showModal","DonateOption","donateAmt","setDonateAmt","Status","noformat","DefaultAssignment","Info","Assignment","CovenantPurchasesRoot","setUpdate","purchaseDisabled","upgradePanels","CovenantSleeveMemoryUpgrade","maxMemory","purchaseBtnDisabled","purchaseBtnContent","calculateStat","getFactionHackingWorkRepGain","srcFile","sourceFileObject","incMult","decMult","GangButton","gangOpen","setGangOpen","CreateGangModal","EmployersModal","MultiplierTable","noMargin","effValue","CurrentBitNode","MoneyModal","convertMoneySourceTrackerToString","CharacterStats","moneyOpen","setMoneyOpen","employersOpen","setEmployersOpen","timeRows","showBitNodeMults","isEqual","StockMarketRoot","Purchase4SMarketDataTixApiAccessButton","PurchaseWseAccountButton","PurchaseTixApiAccessButton","Purchase4SMarketDataButton","InfoAndPurchases","StockTickers","setTickerDisplayMode","AllStocks","watchlistSymbols","setWatchlistSymbols","tickers","stockMarketProp","rerenderAllTickers","sanitizedWatchlist","SelectorOrderType","StockTicker","setOrderType","Market","tickerOpen","setTicketOpen","modalProps","setModalProps","placeText","getQuantity","hasOrderAccess","Limit","Stop","getBuyTransactionCostContent","getSellTransactionCostContent","playerMoney","localesWithLongPriceFormat","StockTickerHeaderText","stockPriceFormat","spacesAllottedForStockPrice","spacesAfterStockName","spacesBeforePrice","hdrText","plusOrMinus","StockTickerOrderList","StockTickerOrder","posTxt","LongPosition","percentageGains","ShortPosition","StockTickerPositionText","PlaceOrderModal","portal","level0","level1","level2","level3","BitNodePortal","portalOpen","setPortalOpen","cssClass","aria-description","BitverseRoot","destroyed","destroySequence","setDestroySequence","nextSourceFileLvl","PortalModal","bitNodeKey","maxSourceFileLevel","newLevel","CinematicLine","setLength","ms","newLength","advance","StaneksGiftRoot","MainBoard","setGhostGrid","setRotation","selectedFragment","setSelectedFragment","moveGhost","clickAt","deleteAt","doRotate","selectFragment","FragmentInspector","setC","effectAmt","FragmentOption","colorAt","FragmentSelector","FragmentPreview","ActiveFragmentSummary","summary","coordinate","formatEffect","_width","_height","getComputedStyle","Element","visibility","AchievementsRoot","AchievementList","cssPrimary","cssSecondary","secret","unavailable","locked","pr","defaultExpanded","AchievementIcon","imgLoaded","setImgLoaded","onLoad","ErrorBoundary","Component","hasError","componentDidCatch","ex","previousScrollY","modalOpen","setModalOpen","modalImageSrc","setModalImageSrc","predefinedThemes","themes","templateTheme","onActivated","scrollY","previousColors","onImageClick","handleZoom","ThemeEntry","subheader","image","ComparisonIcon","isBetter","initialAutosave","ImportSaveRoot","currentData","setCurrentData","importModalOpen","setImportModalOpen","headback","setHeadback","dataBeingImported","dataCurrentlyInGame","fetchData","BypassWrapper","getAugmentation","runAfterReset","cbScript","_purchased","_facName","_cbScript","_programName","baseserver","installTime","wasWorking","_companyName","wasFocused","_field","repNeededToDonate","crimeTime","_nextBN","_callbackScript","nextBN","callbackScript","wrapFunction","wrappedAPI","tree","functionName","branch","getNestedProperty","wrapAPILayer","setNestedProperty","empty","nerf","normalServer","relative_filename","evaledDir","t_dst","dst","srcExt","tRes","sRes","sanitizedExpr","used","avail","usedPercent","incorrectUsage","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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IAY7D,GAVIsuC,EAAM,KACRoB,IACAO,eAEE3B,EAAM,KACRC,EAAUjtB,YAAc,MAEtBgtB,EAAM,IACRx6D,IAAOuzB,kBAAkB9lB,QAAQsyC,QAASjiD,GAAMA,EAAEsO,SAAS2xC,SAAS,SAAWjgD,EAAEsO,UAAY,QAE3FouD,EAAM,GAAI,CACZ,MAAM4B,EAAqB,CACzB,sBACA,qBACA,qBACA,oBACA,eACA,gBACA,eACA,iBACA,eACA,gBACA,mBACA,oBACA,mBACA,qBACA,mBACA,oBACA,mBACA,mBACA,mBACA,qBACA,kBACA,0BACA,kCACA,6BACA,8BACA,+BACA,+BACA,gCACA,4BACA,kCACA,cACA,eACA,cACA,gBACA,cACA,eACA,mBACA,cACA,YACA,WACA,eACA,cACA,yBACA,gCACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,kBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,mBACA,gBACA,kBACA,oBACA,sBACA,wBACA,8BACA,YACA,YACA,aACA,0BACA,2BACA,kBACA,4BACA,0BACA,UACA,SACA,WACA,UACA,YACA,UACA,WACA,gBAEIC,EAAqB,CACzB,cACA,WACA,aACA,UACA,WACA,UACA,YACA,UACA,WACA,eACA,SACA,cACA,eACA,cACA,gBACA,cACA,eACA,mBACA,eACA,gBACA,eACA,iBACA,eACA,gBACA,mBACA,oBACA,mBACA,qBACA,mBACA,oBACA,sBACA,qBACA,qBACA,oBACA,mBACA,mBACA,mBACA,qBACA,kBACA,0BACA,kCACA,6BACA,8BACA,+BACA,+BACA,gCACA,4BACA,kCACA,YACA,YACA,cACA,sBACA,qBACA,kBACA,qBACA,oBACA,kBACA,kBACA,mBACA,QAEF,IAAIzlC,EAAS0lC,OAAO7B,EAAUjY,kBAC1BthD,MAAM01B,KAASA,EAAS,GAC5B6jC,EAAUj1B,IAAI8D,cAAgB1S,EAC9B,IAAK,MAAM2lC,KAASH,SACX3B,EAAU8B,GAEnB,IAAK,MAAM9I,KAAUgH,EAAUtzB,QAAS,CACtC,MAAMq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ACA,IACA,mHACA,yHACA,4CACA,IACA,gCACA,IACA,6DACA,IACA,eACA,IACA,2HACA,4HACA,IACA,mCACA,IACA,8GACA,IACA,uHACA,uCACA,IACA,uDACA,KAEFyzE,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEFlmH,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEFmmH,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEFnV,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEFoV,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEFxoE,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEFyoE,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEFnoD,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEFooD,GAAI,CAAC,wBAAyB,IAAK,wEAAyE,KAC5GnuF,SAAU,CACR,qCACA,IACA,mFACA,IACA,4GACA,IACA,kDACA,IACA,0CACA,IACA,0CACA,KAEFouF,KAAM,CACJ,wCACA,IACA,oFACA,IACA,oBACA,IACA,WACA,IACA,wBACA,IACA,qFACA,KAEFC,KAAM,CACJ,cACA,IACA,gIACA,gCACA,KAEFh6C,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEFjoG,KAAM,CACJ,cACA,IACA,uHACA,KAEFkiJ,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEFz9G,KAAM,CACJ,cACA,IACA,sGACA,KAEF3lC,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChFq2E,KAAM,CACJ,mDACA,IACA,4EACA,IACA,6EACA,4EACA,iFACA,4DACA,IACA,uCACA,IACA,qEACA,IACA,wCACA,IACA,qFACA,KAEFi0B,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,KAEF44C,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEF/2F,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEFg3F,KAAMd,EAAgC,QACtC/3C,GAAI,CAAC,YAAa,IAAK,4DAA6D,KACpF8B,GAAI,CACF,mBACA,IACA,6GACA,IACA,kDACA,KAEF/1D,IAAK,CACH,sDACA,IACA,gDACA,IACA,sHACA,2GACA,gEACA,2DACA,2FACA,IACA,kHACA,iFACA,KAEFgyD,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,KAEFg5C,MAAO,CAAC,eAAgB,IAAK,oEAAqE,KAElG71C,KAAM,CACJ,sCACA,IACA,oHACA,uHACA,oEACA,IACA,8BACA,IACA,gFACA,IACA,+BACA,KAEFn2B,IAAK,CACH,aACA,IACA,yGACA,+BACA,KAEFisE,QAAS,CACP,8BACA,IACA,mFACA,IACA,iDACA,IACA,oBACA,IACA,kCACA,IACA,gBACA,IACA,kGACA,KAEF5/F,IAAK4+F,EAAgC,OACrClyH,OAAQ,CACN,gBACA,IACA,oHACA,iEACA,KAEFi9E,KAAM,CACJ,kCACA,IACA,iGACA,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BACA,gBACA,+DACA,kCACA,gBACA,kBACA,mDACA,IACA,IACA,cACA,IACA,MAKA,+BACA,mDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,iBACA,IACA,OACA,IACA,oBACA,KACA,sBACA,iBACA,MACA,IAKA,oCACA,wDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,YACA,IACA,OACA,IACA,aACA,KACA,sBACA,iBACA,MACA,IAIA,oDACA,8CACA,gCACA,kEACA,YACA,wBACA,4BACA,yCACA,SACA,oBACA,4CACA,OACA,IACA,IACA,MAIA,uDACA,8CACA,sBACA,0DACA,IACA,yCACA,wBACA,mDACA,4BACA,mCACA,mBACA,gBACA,IACA,yCACA,qEACA,yBACA,uBACA,qBACA,oBACA,2BACA,+BACA,uDACA,iCACA,8FACA,IACA,8BACA,oBACA,+DACA,wEACA,4CACA,eACA,IACA,0BACA,OACA,IACA,qBACA,gBACA,IACA,MAIA,gDACA,8CACA,gCACA,8DACA,eACA,wBACA,4BACA,yCACA,sBACA,SACA,oBACA,mDACA,OACA,IACA,YACA,IACA,MAIA,mDACA,8CACA,0CACA,kEACA,4DACA,gCACA,wBACA,WACA,oCACA,kBACA,kEACA,IACA,kBACA,IACA,yBACA,mDACA,IACA,gBACA,IACA,MAIA,wDACA,8CACA,0CACA,yGACA,kEACA,+BACA,wBACA,WACA,mCACA,eACA,kEACA,IACA,kBACA,IACA,wBACA,mDACA,IACA,gBACA,IACA,MAIA,iDACA,8CACA,+BACA,6DACA,wBACA,4BACA,+DACA,kCACA,iDACA,eACA,IACA,IACA,gBACA,IACA,MAEA,gBACA,oCACA,8CAEA,wCACA,2BACA,IAEA,0CACA,mBACA,kDACA,4CACA,sBACA,yBACA,sBACA,aACA,IACA,IACA,uBACA,IACA,eACA,KACA,QAEA,2DACA,8C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CACL,qEACA,2EACA,kCACA,+GACA,+FACA,sFACA,sFACA,qFACA,qFACA,qFACA,wGACA,qFACA,uFACA,8GACA,8EACA,sCACA,qDACA,6GACA,iHACA,8CACC,iBAAgB5kJ,EAAK,SAASA,EAAK,SACpC,6EACA,8CACAwS,KAAK,MAET4nC,WAAY,EACZ+pB,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,SA4FGz+C,KAAK,IAAMzb,KAAKC,SAAW,IAC3BrG,MAAM,EAAG,GACT2O,KAAK,IA5FG,CACX,YACA,YACA,UACA,WACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,UACA,YACA,WACA,YACA,WACA,WACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACA,UACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,YACA,UACA,UACA,WACA,aAOKkT,KAAK,IAAMzb,KAAKC,SAAW,IAAK,IAGzC7H,KAAM,iCACNiiE,SAAU,GACVF,OAAQ,CAACwgF,EAAgBu0B,KACvB,IAAKxoK,MAAMC,QAAQg0I,GAAQ,MAAM,IAAI97I,MAAM,kCAC3C,MAAM9I,EAAO4kJ,EAUb,MAPe,IAAI5kJ,EAAK,IACrBuvB,IAAI,CAACzJ,EAAGxlB,IACM,MAANwlB,EACHA,EACAurD,OAAOmlF,cAAe1wI,EAAEkB,WAAW,GAAK,IAAShnB,EAAK,GAAGgnB,WAAW1mB,EAAIN,EAAK,GAAGQ,SAAW,GAAM,KAEtGgS,KAAK,MACU2mK,M,6BCr2DxB,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,wCAAuCgjH,IACxD,GAGJ9uD,YAAuB0sI,EAAah2K,eAKzCljB,IAAO49G,UACL,IAAIgZ,IAAa,CACfpnG,aAAa,EACbtM,aAAco4F,EACdt7G,OAAQA,OAIRyiC,GACFziC,IAAOwiC,gBACPvqB,IAAOymC,UACEu6I,IACTj5L,IAAO0iC,eACPzqB,IAAOsmC,cAGTpmD,IAAQiF,IAAI9E,EAAK,IAAO,+BAA8BgjH,OAC/C,IArBLnjH,IAAQiF,IAAI9E,EAAK,IAAO,yCAAwCgjH,IACzD,O,qCC7EjB,gEAMA,MAAM9rF,EAAc,CAClB,iBACA,WACA,0BACA,cACA,UACA,gBACA,qBACA,kBACA,2BACA,sBACA,wBACA,uBACA,wBACA,8BACA,uBACA,kBACA,sBACA,gBACA,iBACA,gBACA,mBACA,wBACA,qBACA,kBACA,sBACA,gBACA,wBACA,sBACA,0BACA,wBACA,eACA,aACA,cACA,uBACA,kBACA,SACA,YACA,cACA,aACA,uBACA,kBACA,cACA,UACA,WACA,YACA,aACA,eACA,mBACA,mBACA,iBACA,iBACA,kBAGI2pK,EAAkB,CACtB,mBACA,yBACA,mBACA,oBACA,sBACA,mBACA,cACA,YACA,gBACA,qBACA,WACA,qBACA,YACA,kBACA,mBACA,gCACA,sBACA,qBACA,qBACA,kBACA,oBACA,oBACA,oBACA,qBACA,mBACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,eACA,cACA,eACA,cACA,gBACA,cACA,eACA,mBACA,KACA,SACA,gBACA,kBACA,YACA,mBAGIh5L,EAAQ,CACZ,sBACA,qBACA,qBACA,oBACA,eACA,mBACA,gBACA,oBACA,eACA,mBACA,iBACA,qBACA,eACA,mBACA,gBACA,oBACA,0BACA,kCACA,6BACA,8BACA,+BACA,mBACA,mBACA,kBACA,qBACA,mBACA,+BACA,gCACA,4BACA,mCAUWwzD,EAAa,KACxB,MAAMxyB,EAAOh7B,YAAU,QACvB,IAAKg7B,EAAM,MAAM,IAAI3kC,MAAM,gCAC3B,MAAM2gE,EAAiB,CACrB,CACEi8H,QAAS,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kD,KAAoB4kD,EAAMkkH,SAAWlkH,EAAMmkJ,OAKtG8e,CAAuBjjK,GAAQ,OACnC,MAAMkjK,EAAYj0B,EAAQjvI,EAAM5kD,IAAI6iB,cAC/B5O,EAAOqgB,WAAWwzL,GACd7zM,IAAW6zM,EAAWjqM,EAAMmpM,YAChCS,EAASK,GAFqBjqM,EAAMqpM,aAUPA,UAAWrpM,EAAMqpM,YAC/C,kBAAC,IAAD,CAAYnpK,MAAO,CAAEspB,UAAWqgJ,EAAa,OAAS,eAAiBzzM,GACvE,kBAAC,IAAD,KACG4/K,EACD,kBAAC,IAAD,SAkBV,MAAM0zB,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,SA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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([1569,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { PlayerObject } from \"./PersonObjects/Player/PlayerObject\";\nimport { sanitizeExploits } from \"./Exploits/Exploit\";\n\nimport { Reviver } from \"./utils/JSONReviver\";\n\nexport let Player = new PlayerObject();\n\nexport function loadPlayer(saveString: string): void {\n Player = JSON.parse(saveString, Reviver);\n Player.money = parseFloat(Player.money + \"\");\n Player.exploits = sanitizeExploits(Player.exploits);\n}\n","import { NetscriptContext } from \"./APIWrapper\";\nimport { WorkerScript } from \"./WorkerScript\";\nimport { GetAllServers, GetServer } from \"../Server/AllServers\";\nimport { Player } from \"../Player\";\nimport { ScriptDeath } from \"./ScriptDeath\";\nimport { isString } from \"../utils/helpers/isString\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { ScriptArg } from \"./ScriptArg\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { BasicHGWOptions } from \"src/ScriptEditor/NetscriptDefinitions\";\nimport { Server } from \"../Server/Server\";\nimport {\n calculateHackingChance,\n calculateHackingExpGain,\n calculateHackingTime,\n calculatePercentMoneyHacked,\n} from \"../Hacking\";\nimport { netscriptCanHack } from \"../Hacking/netscriptCanHack\";\nimport { convertTimeMsToTimeElapsedString } from \"../utils/StringHelperFunctions\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { influenceStockThroughServerHack } from \"../StockMarket/PlayerInfluencing\";\nimport { IPort } from \"../NetscriptPort\";\nimport { NetscriptPorts } from \"../NetscriptWorker\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { FormulaGang } from \"../Gang/formulas/formulas\";\nimport { GangMember } from \"../Gang/GangMember\";\nimport { GangMemberTask } from \"../Gang/GangMemberTask\";\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { toNative } from \"../NetscriptFunctions/toNative\";\nimport { ScriptIdentifier } from \"./ScriptIdentifier\";\nimport { findRunningScript, findRunningScriptByPid } from \"../Script/ScriptHelpers\";\nimport { RunningScript as IRunningScript } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { arrayToString } from \"../utils/helpers/arrayToString\";\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport const helpers = {\n string,\n number,\n scriptArgs,\n argsToString,\n isScriptErrorMessage,\n makeRuntimeRejectMsg,\n makeRuntimeErrorMsg,\n resolveNetscriptRequestedThreads,\n checkEnvFlags,\n checkSingularityAccess,\n netscriptDelay,\n updateDynamicRam,\n city,\n getServer,\n scriptIdentifier,\n hack,\n getValidPort,\n player,\n server,\n gang,\n gangMember,\n gangTask,\n log,\n getFunctionNames,\n getRunningScript,\n getRunningScriptByArgs,\n getCannotFindRunningScriptErrorMessage,\n createPublicRunningScript,\n failOnHacknetServer,\n};\n\n/** Convert a provided value v for argument argName to string. If it wasn't originally a string or number, throw. */\nfunction string(ctx: NetscriptContext, argName: string, v: unknown): string {\n if (typeof v === \"string\") return v;\n if (typeof v === \"number\") return v + \"\"; // cast to string;\n throw makeRuntimeErrorMsg(ctx, `'${argName}' should be a string.`);\n}\n\n/** Convert provided value v for argument argName to number. Throw if could not convert to a non-NaN number. */\nfunction number(ctx: NetscriptContext, argName: string, v: unknown): number {\n if (typeof v === \"string\") {\n const x = parseFloat(v);\n if (!isNaN(x)) return x; // otherwise it wasn't even a string representing a number.\n } else if (typeof v === \"number\") {\n if (isNaN(v)) throw makeRuntimeErrorMsg(ctx, `'${argName}' is NaN.`);\n return v;\n }\n throw makeRuntimeErrorMsg(ctx, `'${argName}' should be a number.`);\n}\n\n/** Returns args back if it is a ScriptArg[]. Throws an error if it is not. */\nfunction scriptArgs(ctx: NetscriptContext, args: unknown) {\n if (!isScriptArgs(args)) throw makeRuntimeErrorMsg(ctx, \"'args' is not an array of script args\");\n return args;\n}\n\n/** Determines if the given msg string is an error created by makeRuntimeRejectMsg. */\nfunction isScriptErrorMessage(msg: string): boolean {\n if (!isString(msg)) {\n return false;\n }\n const splitMsg = msg.split(\"|DELIMITER|\");\n return splitMsg.length == 4;\n}\n\n/** Convert multiple arguments for tprint or print into a single string. */\nfunction argsToString(args: unknown[]): string {\n let out = \"\";\n for (let arg of args) {\n if (arg === null) {\n out += \"null\";\n continue;\n }\n if (arg === undefined) {\n out += \"undefined\";\n continue;\n }\n arg = toNative(arg);\n out += typeof arg === \"object\" ? JSON.stringify(arg) : `${arg}`;\n }\n\n return out;\n}\n\n/** Creates an error message string containing hostname, scriptname, and the error message msg */\nfunction makeRuntimeRejectMsg(workerScript: WorkerScript, msg: string): string {\n for (const scriptUrl of workerScript.scriptRef.dependencies) {\n msg = msg.replace(new RegExp(scriptUrl.url, \"g\"), scriptUrl.filename);\n }\n\n return \"|DELIMITER|\" + workerScript.hostname + \"|DELIMITER|\" + workerScript.name + \"|DELIMITER|\" + msg;\n}\n\n/** Creates an error message string with a stack trace. */\nfunction makeRuntimeErrorMsg(ctx: NetscriptContext, msg: string): string {\n const errstack = new Error().stack;\n if (errstack === undefined) throw new Error(\"how did we not throw an error?\");\n const stack = errstack.split(\"\\n\").slice(1);\n const workerScript = ctx.workerScript;\n const caller = ctx.function;\n const scripts = workerScript.getServer().scripts;\n const userstack = [];\n for (const stackline of stack) {\n let filename;\n for (const script of scripts) {\n if (script.url && stackline.includes(script.url)) {\n filename = script.filename;\n }\n for (const dependency of script.dependencies) {\n if (stackline.includes(dependency.url)) {\n filename = dependency.filename;\n }\n }\n }\n if (!filename) continue;\n\n interface ILine {\n line: string;\n func: string;\n }\n\n function parseChromeStackline(line: string): ILine | null {\n const lineRe = /.*:(\\d+):\\d+.*/;\n const funcRe = /.*at (.+) \\(.*/;\n\n const lineMatch = line.match(lineRe);\n const funcMatch = line.match(funcRe);\n if (lineMatch && funcMatch) {\n return { line: lineMatch[1], func: funcMatch[1] };\n }\n return null;\n }\n let call = { line: \"-1\", func: \"unknown\" };\n const chromeCall = parseChromeStackline(stackline);\n if (chromeCall) {\n call = chromeCall;\n }\n\n function parseFirefoxStackline(line: string): ILine | null {\n const lineRe = /.*:(\\d+):\\d+$/;\n const lineMatch = line.match(lineRe);\n\n const lio = line.lastIndexOf(\"@\");\n\n if (lineMatch && lio !== -1) {\n return { line: lineMatch[1], func: line.slice(0, lio) };\n }\n return null;\n }\n\n const firefoxCall = parseFirefoxStackline(stackline);\n if (firefoxCall) {\n call = firefoxCall;\n }\n\n userstack.push(`${filename}:L${call.line}@${call.func}`);\n }\n\n workerScript.log(caller, () => msg);\n let rejectMsg = `${caller}: ${msg}`;\n if (userstack.length !== 0) rejectMsg += `
Stack: ${userstack.join(\" \")}`;\n return makeRuntimeRejectMsg(workerScript, rejectMsg);\n}\n\n/** Validate requested number of threads for h/g/w options */\nfunction resolveNetscriptRequestedThreads(ctx: NetscriptContext, requestedThreads?: number): number {\n const threads = ctx.workerScript.scriptRef.threads;\n if (!requestedThreads) {\n return isNaN(threads) || threads < 1 ? 1 : threads;\n }\n const requestedThreadsAsInt = requestedThreads | 0;\n if (isNaN(requestedThreads) || requestedThreadsAsInt < 1) {\n throw makeRuntimeRejectMsg(\n ctx.workerScript,\n `Invalid thread count passed to ${ctx.function}: ${requestedThreads}. Threads must be a positive number.`,\n );\n }\n if (requestedThreadsAsInt > threads) {\n throw makeRuntimeRejectMsg(\n ctx.workerScript,\n `Too many threads requested by ${ctx.function}. Requested: ${requestedThreads}. Has: ${threads}.`,\n );\n }\n return requestedThreadsAsInt;\n}\n\n/** Validate singularity access by throwing an error if the player does not have access. */\nfunction checkSingularityAccess(ctx: NetscriptContext): void {\n if (Player.bitNodeN !== 4 && Player.sourceFileLvl(4) === 0) {\n throw makeRuntimeErrorMsg(\n ctx,\n `This singularity function requires Source-File 4 to run. A power up you obtain later in the game.\n It will be very obvious when and how you can obtain it.`,\n );\n }\n}\n\n/** Create an error if a script is dead or if concurrent ns function calls are made */\nfunction checkEnvFlags(ctx: NetscriptContext): void {\n const ws = ctx.workerScript;\n if (ws.env.stopFlag) throw new ScriptDeath(ws);\n if (ws.env.runningFn && ctx.function !== \"asleep\") {\n ws.errorMessage = makeRuntimeRejectMsg(\n ws,\n `Concurrent calls to Netscript functions are not allowed!\n Did you forget to await hack(), grow(), or some other\n promise-returning function?\n Currently running: ${ws.env.runningFn} tried to run: ${ctx.function}`,\n );\n if (ws.delayReject) ws.delayReject(new ScriptDeath(ws));\n throw new ScriptDeath(ws); //No idea if this is the right thing to throw\n }\n}\n\n/** Set a timeout for performing a task, mark the script as busy in the meantime. */\nfunction netscriptDelay(ctx: NetscriptContext, time: number): Promise {\n const ws = ctx.workerScript;\n return new Promise(function (resolve, reject) {\n ws.delay = window.setTimeout(() => {\n ws.delay = null;\n ws.delayReject = undefined;\n ws.env.runningFn = \"\";\n if (ws.env.stopFlag) reject(new ScriptDeath(ws));\n else resolve();\n }, time);\n ws.delayReject = reject;\n ws.env.runningFn = ctx.function;\n });\n}\n\n/** Adds to dynamic ram cost when calling new ns functions from a script */\nfunction updateDynamicRam(ctx: NetscriptContext, ramCost: number): void {\n const ws = ctx.workerScript;\n const fnName = ctx.function;\n if (ws.dynamicLoadedFns[fnName]) return;\n ws.dynamicLoadedFns[fnName] = true;\n\n let threads = ws.scriptRef.threads;\n if (typeof threads !== \"number\") {\n console.warn(`WorkerScript detected NaN for threadcount for ${ws.name} on ${ws.hostname}`);\n threads = 1;\n }\n ws.dynamicRamUsage += ramCost;\n if (ws.dynamicRamUsage > 1.01 * ws.ramUsage) {\n ws.errorMessage = makeRuntimeRejectMsg(\n ws,\n `Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${fnName}.\n This is probably because you somehow circumvented the static RAM calculation.\n\n Threads: ${threads}\n Dynamic RAM Usage: ${numeralWrapper.formatRAM(ws.dynamicRamUsage)}\n Static RAM Usage: ${numeralWrapper.formatRAM(ws.ramUsage)}\n\n One of these could be the reason:\n * Using eval() to get a reference to a ns function\n const myScan = eval('ns.scan');\n\n * Using map access to do the same\n const myScan = ns['scan'];\n\n Sorry :(`,\n );\n }\n}\n\n/** Validates the input v as being a CityName. Throws an error if it is not. */\nfunction city(ctx: NetscriptContext, argName: string, v: unknown): CityName {\n if (typeof v !== \"string\") throw makeRuntimeErrorMsg(ctx, `${argName} should be a city name.`);\n const s = v as CityName;\n if (!Object.values(CityName).includes(s)) throw makeRuntimeErrorMsg(ctx, `${argName} should be a city name.`);\n return s;\n}\n\nfunction scriptIdentifier(\n ctx: NetscriptContext,\n scriptID: unknown,\n _hostname: unknown,\n _args: unknown,\n): ScriptIdentifier {\n const ws = ctx.workerScript;\n // Provide the pid for the current script if no identifier provided\n if (scriptID === undefined) return ws.pid;\n if (typeof scriptID === \"number\") return scriptID;\n if (typeof scriptID === \"string\") {\n const hostname = _hostname === undefined ? ctx.workerScript.hostname : string(ctx, \"hostname\", _hostname);\n const args = _args === undefined ? [] : scriptArgs(ctx, _args);\n return {\n scriptname: scriptID,\n hostname,\n args,\n };\n }\n throw new Error(\"not implemented\");\n}\n\n/**\n * Gets the Server for a specific hostname/ip, throwing an error\n * if the server doesn't exist.\n * @param {NetscriptContext} ctx - Context from which getServer is being called. For logging purposes.\n * @param {string} hostname - Hostname of the server\n * @returns {BaseServer} The specified server as a BaseServer\n */\nfunction getServer(ctx: NetscriptContext, hostname: string) {\n const server = GetServer(hostname);\n if (server == null) {\n const str = hostname === \"\" ? \"'' (empty string)\" : \"'\" + hostname + \"'\";\n throw makeRuntimeErrorMsg(ctx, `Invalid hostname: ${str}`);\n }\n return server;\n}\n\nfunction isScriptArgs(args: unknown): args is ScriptArg[] {\n const isScriptArg = (arg: unknown) => typeof arg === \"string\" || typeof arg === \"number\" || typeof arg === \"boolean\";\n return Array.isArray(args) && args.every(isScriptArg);\n}\n\nasync function hack(\n ctx: NetscriptContext,\n hostname: string,\n manual: boolean,\n { threads: requestedThreads, stock }: BasicHGWOptions = {},\n): Promise {\n const ws = ctx.workerScript;\n const threads = helpers.resolveNetscriptRequestedThreads(ctx, requestedThreads);\n const server = getServer(ctx, hostname);\n if (!(server instanceof Server)) {\n throw makeRuntimeErrorMsg(ctx, \"Cannot be executed on this server.\");\n }\n\n // Calculate the hacking time\n const hackingTime = calculateHackingTime(server, Player); // This is in seconds\n\n // No root access or skill level too low\n const canHack = netscriptCanHack(server, Player);\n if (!canHack.res) {\n throw makeRuntimeErrorMsg(ctx, canHack.msg || \"\");\n }\n\n log(\n ctx,\n () =>\n `Executing on '${server.hostname}' in ${convertTimeMsToTimeElapsedString(\n hackingTime * 1000,\n true,\n )} (t=${numeralWrapper.formatThreads(threads)})`,\n );\n\n return helpers.netscriptDelay(ctx, hackingTime * 1000).then(function () {\n const hackChance = calculateHackingChance(server, Player);\n const rand = Math.random();\n let expGainedOnSuccess = calculateHackingExpGain(server, Player) * threads;\n const expGainedOnFailure = expGainedOnSuccess / 4;\n if (rand < hackChance) {\n // Success!\n const percentHacked = calculatePercentMoneyHacked(server, Player);\n let maxThreadNeeded = Math.ceil(1 / percentHacked);\n if (isNaN(maxThreadNeeded)) {\n // Server has a 'max money' of 0 (probably). We'll set this to an arbitrarily large value\n maxThreadNeeded = 1e6;\n }\n\n let moneyDrained = Math.floor(server.moneyAvailable * percentHacked) * threads;\n\n // Over-the-top safety checks\n if (moneyDrained <= 0) {\n moneyDrained = 0;\n expGainedOnSuccess = expGainedOnFailure;\n }\n if (moneyDrained > server.moneyAvailable) {\n moneyDrained = server.moneyAvailable;\n }\n server.moneyAvailable -= moneyDrained;\n if (server.moneyAvailable < 0) {\n server.moneyAvailable = 0;\n }\n\n let moneyGained = moneyDrained * BitNodeMultipliers.ScriptHackMoneyGain;\n if (manual) {\n moneyGained = moneyDrained * BitNodeMultipliers.ManualHackMoney;\n }\n\n Player.gainMoney(moneyGained, \"hacking\");\n ws.scriptRef.onlineMoneyMade += moneyGained;\n Player.scriptProdSinceLastAug += moneyGained;\n ws.scriptRef.recordHack(server.hostname, moneyGained, threads);\n Player.gainHackingExp(expGainedOnSuccess);\n if (manual) Player.gainIntelligenceExp(0.005);\n ws.scriptRef.onlineExpGained += expGainedOnSuccess;\n log(\n ctx,\n () =>\n `Successfully hacked '${server.hostname}' for ${numeralWrapper.formatMoney(\n moneyGained,\n )} and ${numeralWrapper.formatExp(expGainedOnSuccess)} exp (t=${numeralWrapper.formatThreads(threads)})`,\n );\n server.fortify(CONSTANTS.ServerFortifyAmount * Math.min(threads, maxThreadNeeded));\n if (stock) {\n influenceStockThroughServerHack(server, moneyDrained);\n }\n if (manual) {\n server.backdoorInstalled = true;\n }\n return Promise.resolve(moneyGained);\n } else {\n // Player only gains 25% exp for failure?\n Player.gainHackingExp(expGainedOnFailure);\n ws.scriptRef.onlineExpGained += expGainedOnFailure;\n log(\n ctx,\n () =>\n `Failed to hack '${server.hostname}'. Gained ${numeralWrapper.formatExp(\n expGainedOnFailure,\n )} exp (t=${numeralWrapper.formatThreads(threads)})`,\n );\n return Promise.resolve(0);\n }\n });\n}\n\nfunction getValidPort(ctx: NetscriptContext, port: number): IPort {\n if (isNaN(port)) {\n throw makeRuntimeErrorMsg(\n ctx,\n `Invalid argument. Must be a port number between 1 and ${CONSTANTS.NumNetscriptPorts}, is ${port}`,\n );\n }\n port = Math.round(port);\n if (port < 1 || port > CONSTANTS.NumNetscriptPorts) {\n throw makeRuntimeErrorMsg(\n ctx,\n `Trying to use an invalid port: ${port}. Only ports 1-${CONSTANTS.NumNetscriptPorts} are valid.`,\n );\n }\n const iport = NetscriptPorts[port - 1];\n if (iport == null || !(iport instanceof Object)) {\n throw makeRuntimeErrorMsg(ctx, `Could not find port: ${port}. This is a bug. Report to dev.`);\n }\n return iport;\n}\n\nfunction player(ctx: NetscriptContext, p: unknown): IPlayer {\n const fakePlayer = {\n hp: undefined,\n mults: undefined,\n numPeopleKilled: undefined,\n money: undefined,\n city: undefined,\n location: undefined,\n bitNodeN: undefined,\n totalPlaytime: undefined,\n playtimeSinceLastAug: undefined,\n playtimeSinceLastBitnode: undefined,\n jobs: undefined,\n factions: undefined,\n tor: undefined,\n inBladeburner: undefined,\n hasCorporation: undefined,\n entropy: undefined,\n };\n if (!roughlyIs(fakePlayer, p)) throw makeRuntimeErrorMsg(ctx, `player should be a Player.`);\n return p as IPlayer;\n}\n\nfunction server(ctx: NetscriptContext, s: unknown): Server {\n const fakeServer = {\n cpuCores: undefined,\n ftpPortOpen: undefined,\n hasAdminRights: undefined,\n hostname: undefined,\n httpPortOpen: undefined,\n ip: undefined,\n isConnectedTo: undefined,\n maxRam: undefined,\n organizationName: undefined,\n ramUsed: undefined,\n smtpPortOpen: undefined,\n sqlPortOpen: undefined,\n sshPortOpen: undefined,\n purchasedByPlayer: undefined,\n backdoorInstalled: undefined,\n baseDifficulty: undefined,\n hackDifficulty: undefined,\n minDifficulty: undefined,\n moneyAvailable: undefined,\n moneyMax: undefined,\n numOpenPortsRequired: undefined,\n openPortCount: undefined,\n requiredHackingSkill: undefined,\n serverGrowth: undefined,\n };\n if (!roughlyIs(fakeServer, s)) throw makeRuntimeErrorMsg(ctx, `server should be a Server.`);\n return s as Server;\n}\n\nfunction roughlyIs(expect: object, actual: unknown): boolean {\n if (typeof actual !== \"object\" || actual == null) return false;\n\n const expects = Object.keys(expect);\n const actuals = Object.keys(actual);\n for (const expect of expects)\n if (!actuals.includes(expect)) {\n return false;\n }\n return true;\n}\n\nfunction gang(ctx: NetscriptContext, g: unknown): FormulaGang {\n if (!roughlyIs({ respect: 0, territory: 0, wantedLevel: 0 }, g))\n throw makeRuntimeErrorMsg(ctx, `gang should be a Gang.`);\n return g as FormulaGang;\n}\n\nfunction gangMember(ctx: NetscriptContext, m: unknown): GangMember {\n if (!roughlyIs(new GangMember(), m)) throw makeRuntimeErrorMsg(ctx, `member should be a GangMember.`);\n return m as GangMember;\n}\n\nfunction gangTask(ctx: NetscriptContext, t: unknown): GangMemberTask {\n if (!roughlyIs(new GangMemberTask(\"\", \"\", false, false, {}), t))\n throw makeRuntimeErrorMsg(ctx, `task should be a GangMemberTask.`);\n return t as GangMemberTask;\n}\n\nfunction log(ctx: NetscriptContext, message: () => string) {\n ctx.workerScript.log(ctx.functionPath, message);\n}\n\n/**\n * Searches for and returns the RunningScript object for the specified script.\n * If the 'fn' argument is not specified, this returns the current RunningScript.\n * @param {string} fn - Filename of script\n * @param {string} hostname - Hostname/ip of the server on which the script resides\n * @param {any[]} scriptArgs - Running script's arguments\n * @returns {RunningScript}\n * Running script identified by the parameters, or null if no such script\n * exists, or the current running script if the first argument 'fn'\n * is not specified.\n */\nfunction getRunningScriptByArgs(\n ctx: NetscriptContext,\n fn: string,\n hostname: string,\n scriptArgs: ScriptArg[],\n): RunningScript | null {\n if (!Array.isArray(scriptArgs)) {\n throw helpers.makeRuntimeRejectMsg(\n ctx.workerScript,\n `Invalid scriptArgs argument passed into getRunningScript() from ${ctx.function}(). ` +\n `This is probably a bug. Please report to game developer`,\n );\n }\n\n if (fn != null && typeof fn === \"string\") {\n // Get Logs of another script\n if (hostname == null) {\n hostname = ctx.workerScript.hostname;\n }\n const server = helpers.getServer(ctx, hostname);\n\n return findRunningScript(fn, scriptArgs, server);\n }\n\n // If no arguments are specified, return the current RunningScript\n return ctx.workerScript.scriptRef;\n}\n\n/** Provides an array of all function names on a nested object */\nfunction getFunctionNames(obj: object, prefix: string): string[] {\n const functionNames: string[] = [];\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"args\") {\n continue;\n } else if (typeof value == \"function\") {\n functionNames.push(prefix + key);\n } else if (typeof value == \"object\") {\n functionNames.push(...getFunctionNames(value, key + \".\"));\n }\n }\n return functionNames;\n}\n\nfunction getRunningScriptByPid(pid: number): RunningScript | null {\n for (const server of GetAllServers()) {\n const runningScript = findRunningScriptByPid(pid, server);\n if (runningScript) return runningScript;\n }\n return null;\n}\n\nfunction getRunningScript(ctx: NetscriptContext, ident: ScriptIdentifier): RunningScript | null {\n if (typeof ident === \"number\") {\n return getRunningScriptByPid(ident);\n } else {\n return getRunningScriptByArgs(ctx, ident.scriptname, ident.hostname, ident.args);\n }\n}\n\n/**\n * Helper function for getting the error log message when the user specifies\n * a nonexistent running script\n * @param {string} fn - Filename of script\n * @param {string} hostname - Hostname/ip of the server on which the script resides\n * @param {any[]} scriptArgs - Running script's arguments\n * @returns {string} Error message to print to logs\n */\nfunction getCannotFindRunningScriptErrorMessage(ident: ScriptIdentifier): string {\n if (typeof ident === \"number\") return `Cannot find running script with pid: ${ident}`;\n\n return `Cannot find running script ${ident.scriptname} on server ${ident.hostname} with args: ${arrayToString(\n ident.args,\n )}`;\n}\n\n/**\n * Sanitizes a `RunningScript` to remove sensitive information, making it suitable for\n * return through an NS function.\n * @see NS.getRecentScripts\n * @see NS.getRunningScript\n * @param runningScript Existing, internal RunningScript\n * @returns A sanitized, NS-facing copy of the RunningScript\n */\nfunction createPublicRunningScript(runningScript: RunningScript): IRunningScript {\n return {\n args: runningScript.args.slice(),\n filename: runningScript.filename,\n logs: runningScript.logs.slice(),\n offlineExpGained: runningScript.offlineExpGained,\n offlineMoneyMade: runningScript.offlineMoneyMade,\n offlineRunningTime: runningScript.offlineRunningTime,\n onlineExpGained: runningScript.onlineExpGained,\n onlineMoneyMade: runningScript.onlineMoneyMade,\n onlineRunningTime: runningScript.onlineRunningTime,\n pid: runningScript.pid,\n ramUsage: runningScript.ramUsage,\n server: runningScript.server,\n threads: runningScript.threads,\n };\n}\n\n/**\n * Used to fail a function if the function's target is a Hacknet Server.\n * This is used for functions that should run on normal Servers, but not Hacknet Servers\n * @param {Server} server - Target server\n * @param {string} callingFn - Name of calling function. For logging purposes\n * @returns {boolean} True if the server is a Hacknet Server, false otherwise\n */\nfunction failOnHacknetServer(ctx: NetscriptContext, server: BaseServer, callingFn = \"\"): boolean {\n if (server instanceof HacknetServer) {\n ctx.workerScript.log(callingFn, () => `Does not work on Hacknet Servers`);\n return true;\n } else {\n return false;\n }\n}\n","export enum FactionNames {\n Illuminati = \"Illuminati\",\n Daedalus = \"Daedalus\",\n TheCovenant = \"The Covenant\",\n ECorp = \"ECorp\",\n MegaCorp = \"MegaCorp\",\n BachmanAssociates = \"Bachman & Associates\",\n BladeIndustries = \"Blade Industries\",\n NWO = \"NWO\",\n ClarkeIncorporated = \"Clarke Incorporated\",\n OmniTekIncorporated = \"OmniTek Incorporated\",\n FourSigma = \"Four Sigma\",\n KuaiGongInternational = \"KuaiGong International\",\n FulcrumSecretTechnologies = \"Fulcrum Secret Technologies\",\n BitRunners = \"BitRunners\",\n TheBlackHand = \"The Black Hand\",\n NiteSec = \"NiteSec\",\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n SpeakersForTheDead = \"Speakers for the Dead\",\n TheDarkArmy = \"The Dark Army\",\n TheSyndicate = \"The Syndicate\",\n Silhouette = \"Silhouette\",\n Tetrads = \"Tetrads\",\n SlumSnakes = \"Slum Snakes\",\n Netburners = \"Netburners\",\n TianDiHui = \"Tian Di Hui\",\n CyberSec = \"CyberSec\",\n Bladeburners = \"Bladeburners\",\n ChurchOfTheMachineGod = \"Church of the Machine God\",\n ShadowsOfAnarchy = \"Shadows of Anarchy\",\n}\n","import { ISelfInitializer, ISelfLoading } from \"../types\";\nimport { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from \"./SettingEnums\";\nimport { defaultTheme, ITheme } from \"../Themes/Themes\";\nimport { defaultStyles } from \"../Themes/Styles\";\nimport { WordWrapOptions } from \"../ScriptEditor/ui/Options\";\nimport { OverviewSettings } from \"../ui/React/Overview\";\nimport { IStyleSettings } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { defaultMonacoTheme, IScriptEditorTheme } from \"../ScriptEditor/ui/themes\";\n\n/**\n * Represents the default settings the player could customize.\n */\ninterface IDefaultSettings {\n /**\n * How many servers per page\n */\n ActiveScriptsServerPageSize: number;\n /**\n * How many scripts per page\n */\n ActiveScriptsScriptPageSize: number;\n /**\n * How often the game should autosave the player's progress, in seconds.\n */\n AutosaveInterval: number;\n\n /**\n * How many milliseconds between execution points for Netscript 1 statements.\n */\n CodeInstructionRunTime: number;\n\n /**\n * Render city as list of buttons.\n */\n DisableASCIIArt: boolean;\n\n /**\n * Whether global keyboard shortcuts should be recognized throughout the game.\n */\n DisableHotkeys: boolean;\n\n /**\n * Whether text effects such as corruption should be visible.\n */\n DisableTextEffects: boolean;\n\n /**\n * Whether overview progress bars should be visible.\n */\n DisableOverviewProgressBars: boolean;\n\n /**\n * Enable bash hotkeys\n */\n EnableBashHotkeys: boolean;\n\n /**\n * Timestamps format\n */\n TimestampsFormat: string;\n\n /**\n * Locale used for display numbers\n */\n Locale: string;\n\n /**\n * Limit the number of recently killed script entries being tracked.\n */\n MaxRecentScriptsCapacity: number;\n\n /**\n * Limit the number of log entries for each script being executed on each server.\n */\n MaxLogCapacity: number;\n\n /**\n * Limit how many entries can be written to a Netscript Port before entries start to get pushed out.\n */\n MaxPortCapacity: number;\n\n /**\n * Limit the number of entries in the terminal.\n */\n MaxTerminalCapacity: number;\n\n /**\n * Port the Remote File API client will try to connect to.\n */\n RemoteFileApiPort: number;\n\n /**\n * Save the game when you save any file.\n */\n SaveGameOnFileSave: boolean;\n\n /**\n * Whether the player should be asked to confirm purchasing each and every augmentation.\n */\n SuppressBuyAugmentationConfirmation: boolean;\n\n /**\n * Whether the user should be prompted to join each faction via a dialog box.\n */\n SuppressFactionInvites: boolean;\n\n /**\n * Whether the user should be shown a dialog box whenever they receive a new message file.\n */\n SuppressMessages: boolean;\n\n /**\n * Whether the user should be asked to confirm travelling between cities.\n */\n SuppressTravelConfirmation: boolean;\n\n /**\n * Whether the user should be displayed a popup message when his Bladeburner actions are cancelled.\n */\n SuppressBladeburnerPopup: boolean;\n\n /**\n * Whether the user should be displayed a popup message on stock market actions.\n */\n SuppressTIXPopup: boolean;\n\n /**\n * Whether the user should be displayed a toast alert when the game is saved.\n */\n SuppressSavedGameToast: boolean;\n\n /**\n * Whether the user should be displayed a toast warning when the autosave is disabled.\n */\n SuppressAutosaveDisabledWarnings: boolean;\n\n /*\n * Whether the game should skip saving the running scripts for late game\n */\n ExcludeRunningScriptsFromSave: boolean;\n\n /*\n * Theme colors\n */\n theme: ITheme;\n\n /*\n * Interface styles\n */\n styles: IStyleSettings;\n\n /*\n * Use GiB instead of GB\n */\n UseIEC60027_2: boolean;\n\n /*\n * Character overview settings\n */\n overview: OverviewSettings;\n\n /**\n * If the game's sidebar is opened\n */\n IsSidebarOpened: boolean;\n\n /**\n * Script editor theme data\n */\n EditorTheme: IScriptEditorTheme;\n}\n\n/**\n * Represents all possible settings the player wants to customize to their play style.\n */\ninterface ISettings extends IDefaultSettings {\n /**\n * What order the player's owned Augmentations/Source Files should be displayed in\n */\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting;\n\n /**\n * What order the Augmentations should be displayed in when purchasing from a Faction\n */\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting;\n\n MonacoTheme: string;\n\n MonacoInsertSpaces: boolean;\n\n MonacoFontSize: number;\n\n MonacoVim: boolean;\n\n MonacoWordWrap: WordWrapOptions;\n}\n\nexport const defaultSettings: IDefaultSettings = {\n ActiveScriptsServerPageSize: 10,\n ActiveScriptsScriptPageSize: 10,\n AutosaveInterval: 60,\n CodeInstructionRunTime: 50,\n DisableASCIIArt: false,\n DisableHotkeys: false,\n DisableTextEffects: false,\n DisableOverviewProgressBars: false,\n EnableBashHotkeys: false,\n TimestampsFormat: \"\",\n Locale: \"en\",\n MaxRecentScriptsCapacity: 50,\n MaxLogCapacity: 50,\n MaxPortCapacity: 50,\n MaxTerminalCapacity: 500,\n RemoteFileApiPort: 0,\n SaveGameOnFileSave: true,\n SuppressBuyAugmentationConfirmation: false,\n SuppressFactionInvites: false,\n SuppressMessages: false,\n SuppressTravelConfirmation: false,\n SuppressBladeburnerPopup: false,\n SuppressTIXPopup: false,\n SuppressSavedGameToast: false,\n SuppressAutosaveDisabledWarnings: false,\n UseIEC60027_2: false,\n ExcludeRunningScriptsFromSave: false,\n IsSidebarOpened: true,\n\n theme: defaultTheme,\n styles: defaultStyles,\n overview: { x: 0, y: 0, opened: true },\n\n EditorTheme: defaultMonacoTheme,\n};\n\n/**\n * The current options the player has customized to their play style.\n */\n// tslint:disable-next-line:variable-name\nexport const Settings: ISettings & ISelfInitializer & ISelfLoading = {\n ActiveScriptsServerPageSize: defaultSettings.ActiveScriptsServerPageSize,\n ActiveScriptsScriptPageSize: defaultSettings.ActiveScriptsScriptPageSize,\n AutosaveInterval: defaultSettings.AutosaveInterval,\n CodeInstructionRunTime: 25,\n DisableASCIIArt: defaultSettings.DisableASCIIArt,\n DisableHotkeys: defaultSettings.DisableHotkeys,\n DisableTextEffects: defaultSettings.DisableTextEffects,\n DisableOverviewProgressBars: defaultSettings.DisableOverviewProgressBars,\n EnableBashHotkeys: defaultSettings.EnableBashHotkeys,\n TimestampsFormat: defaultSettings.TimestampsFormat,\n Locale: \"en\",\n MaxRecentScriptsCapacity: defaultSettings.MaxRecentScriptsCapacity,\n MaxLogCapacity: defaultSettings.MaxLogCapacity,\n MaxPortCapacity: defaultSettings.MaxPortCapacity,\n MaxTerminalCapacity: defaultSettings.MaxTerminalCapacity,\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting.AcquirementTime,\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting.Default,\n RemoteFileApiPort: defaultSettings.RemoteFileApiPort,\n SaveGameOnFileSave: defaultSettings.SaveGameOnFileSave,\n SuppressBuyAugmentationConfirmation: defaultSettings.SuppressBuyAugmentationConfirmation,\n SuppressFactionInvites: defaultSettings.SuppressFactionInvites,\n SuppressMessages: defaultSettings.SuppressMessages,\n SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,\n SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,\n SuppressTIXPopup: defaultSettings.SuppressTIXPopup,\n SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,\n SuppressAutosaveDisabledWarnings: defaultSettings.SuppressAutosaveDisabledWarnings,\n UseIEC60027_2: defaultSettings.UseIEC60027_2,\n ExcludeRunningScriptsFromSave: defaultSettings.ExcludeRunningScriptsFromSave,\n IsSidebarOpened: defaultSettings.IsSidebarOpened,\n\n MonacoTheme: \"monokai\",\n MonacoInsertSpaces: false,\n MonacoFontSize: 20,\n MonacoVim: false,\n MonacoWordWrap: \"off\",\n\n theme: { ...defaultTheme },\n styles: { ...defaultStyles },\n overview: defaultSettings.overview,\n EditorTheme: { ...defaultMonacoTheme },\n init() {\n Object.assign(Settings, defaultSettings);\n },\n load(saveString: string) {\n const save = JSON.parse(saveString);\n Object.assign(Settings.theme, save.theme);\n delete save.theme;\n Object.assign(Settings.styles, save.styles);\n delete save.styles;\n Object.assign(Settings.overview, save.overview);\n delete save.overview;\n Object.assign(Settings.EditorTheme, save.EditorTheme);\n delete save.EditorTheme;\n Object.assign(Settings, save);\n },\n};\n","import numeral from \"numeral\";\nimport \"numeral/locales/bg\";\nimport \"numeral/locales/cs\";\nimport \"numeral/locales/da-dk\";\nimport \"numeral/locales/de\";\nimport \"numeral/locales/en-au\";\nimport \"numeral/locales/en-gb\";\nimport \"numeral/locales/es\";\nimport \"numeral/locales/fr\";\nimport \"numeral/locales/hu\";\nimport \"numeral/locales/it\";\nimport \"numeral/locales/lv\";\nimport \"numeral/locales/no\";\nimport \"numeral/locales/pl\";\nimport \"numeral/locales/ru\";\n\nimport { Settings } from \"../Settings/Settings\";\n\nconst extraFormats = [1e15, 1e18, 1e21, 1e24, 1e27, 1e30];\nconst extraNotations = [\"q\", \"Q\", \"s\", \"S\", \"o\", \"n\"];\nconst gigaMultiplier = { standard: 1e9, iec60027_2: 2 ** 30 };\n\nclass NumeralFormatter {\n // Default Locale\n defaultLocale = \"en\";\n\n constructor() {\n this.defaultLocale = \"en\";\n }\n\n updateLocale(l: string): boolean {\n if (numeral.locale(l) == null) {\n console.warn(`Invalid locale for numeral: ${l}`);\n\n numeral.locale(this.defaultLocale);\n return false;\n }\n return true;\n }\n\n format(n: number, format: string): string {\n // numeraljs doesnt properly format numbers that are too big or too small\n if (Math.abs(n) < 1e-6) {\n n = 0;\n }\n const answer = numeral(n).format(format);\n if (answer === \"NaN\") {\n return `${n}`;\n }\n return answer;\n }\n\n formatBigNumber(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n // TODO: leverage numeral.js to do it. This function also implies you can\n // use this format in some text field but you can't. ( \"1t\" will parse but\n // \"1s\" will not)\n formatReallyBigNumber(n: number, decimalPlaces = 3): string {\n const nAbs = Math.abs(n);\n if (n === Infinity) return \"∞\";\n for (let i = 0; i < extraFormats.length; i++) {\n if (extraFormats[i] < nAbs && nAbs <= extraFormats[i] * 1000) {\n return this.format(n / extraFormats[i], \"0.\" + \"0\".repeat(decimalPlaces)) + extraNotations[i];\n }\n }\n if (nAbs < 1000) {\n return this.format(n, \"0.\" + \"0\".repeat(decimalPlaces));\n }\n const str = this.format(n, \"0.\" + \"0\".repeat(decimalPlaces) + \"a\");\n if (str === \"NaNt\") return this.format(n, \"0.\" + \" \".repeat(decimalPlaces) + \"e+0\");\n return str;\n }\n\n formatHp(n: number): string {\n if (n < 1e6) {\n return this.format(n, \"0,0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatMoney(n: number): string {\n return \"$\" + this.formatReallyBigNumber(n);\n }\n\n formatSkill(n: number): string {\n if (n < 1e15) {\n return this.format(n, \"0,0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatExp(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatHashes(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatReputation(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatFavor(n: number): string {\n return this.format(n, \"0,0\");\n }\n\n formatSecurity(n: number): string {\n return n.toFixed(3);\n }\n\n formatRAM(n: number): string {\n if (Settings.UseIEC60027_2) {\n return this.format(n * gigaMultiplier.iec60027_2, \"0.00ib\");\n }\n return this.format(n * gigaMultiplier.standard, \"0.00b\");\n }\n\n formatPercentage(n: number, decimalPlaces = 2): string {\n const formatter: string = \"0.\" + \"0\".repeat(decimalPlaces) + \"%\";\n return this.format(n, formatter);\n }\n\n formatServerSecurity(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatRespect(n: number): string {\n return this.formatReallyBigNumber(n, 5);\n }\n\n formatWanted(n: number): string {\n return this.formatReallyBigNumber(n, 5);\n }\n\n formatMultiplier(n: number): string {\n return this.format(n, \"0,0.00\");\n }\n\n formatSleeveShock(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatSleeveSynchro(n: number): string {\n return this.format(n, \"0,0.000\");\n }\n\n formatSleeveMemory(n: number): string {\n return this.format(n, \"0\");\n }\n\n formatPopulation(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStamina(n: number): string {\n return this.format(n, \"0.0\");\n }\n\n formatShares(n: number): string {\n if (n < 1000) {\n return this.format(n, \"0\");\n }\n return this.formatReallyBigNumber(n);\n }\n\n formatInfiltrationSecurity(n: number): string {\n return this.formatReallyBigNumber(n);\n }\n\n formatThreads(n: number): string {\n return this.format(n, \"0,0\");\n }\n\n formatStaneksGiftHeat(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStaneksGiftCharge(n: number): string {\n return this.format(n, \"0.000a\");\n }\n\n formatStaneksGiftPower(n: number): string {\n return this.format(n, \"0.00\");\n }\n\n parseCustomLargeNumber(str: string): number {\n const numericRegExp = new RegExp(\"^(-?\\\\d+\\\\.?\\\\d*)([\" + extraNotations.join(\"\") + \"]?)$\");\n const match = str.match(numericRegExp);\n if (match == null) {\n return NaN;\n }\n const [, number, notation] = match;\n const notationIndex = extraNotations.indexOf(notation);\n if (notationIndex === -1) {\n return NaN;\n }\n return parseFloat(number) * extraFormats[notationIndex];\n }\n\n largestAbsoluteNumber(n1: number, n2 = 0, n3 = 0): number {\n if (isNaN(n1)) n1 = 0;\n if (isNaN(n2)) n2 = 0;\n if (isNaN(n3)) n3 = 0;\n const largestAbsolute = Math.max(Math.abs(n1), Math.abs(n2), Math.abs(n3));\n switch (largestAbsolute) {\n case Math.abs(n1):\n return n1;\n case Math.abs(n2):\n return n2;\n case Math.abs(n3):\n return n3;\n }\n return 0;\n }\n\n parseMoney(s: string): number {\n // numeral library does not handle formats like 1s (returns 1) and 1e10 (returns 110) well,\n // so if more then 1 return a valid number, return the one farthest from 0\n const numeralValue = numeral(s).value();\n const parsed = parseFloat(s);\n const selfParsed = this.parseCustomLargeNumber(s);\n // Check for one or more NaN values\n if (isNaN(parsed) && isNaN(selfParsed)) {\n if (numeralValue === null) {\n // 3x NaN\n return NaN;\n }\n // 2x NaN\n return numeralValue;\n } else if (numeralValue === null && isNaN(selfParsed)) {\n // 2x NaN\n return parsed;\n } else if (isNaN(parsed)) {\n if (numeralValue === null) {\n // 2x NaN\n return selfParsed;\n }\n // 1x NaN\n return this.largestAbsoluteNumber(numeralValue, selfParsed);\n } else if (numeralValue === null) {\n // 1x NaN\n return this.largestAbsoluteNumber(parsed, selfParsed);\n } else if (isNaN(selfParsed)) {\n // 1x NaN\n return this.largestAbsoluteNumber(numeralValue, parsed);\n } else {\n // no NaN\n return this.largestAbsoluteNumber(numeralValue, parsed, selfParsed);\n }\n }\n}\n\nexport const numeralWrapper = new NumeralFormatter();\n","/**\n * Names of all locations\n */\nexport enum LocationName {\n // Aevum Locations\n AevumAeroCorp = \"AeroCorp\",\n AevumBachmanAndAssociates = \"Bachman & Associates\",\n AevumClarkeIncorporated = \"Clarke Incorporated\",\n AevumCrushFitnessGym = \"Crush Fitness Gym\",\n AevumECorp = \"ECorp\",\n AevumFulcrumTechnologies = \"Fulcrum Technologies\",\n AevumGalacticCybersystems = \"Galactic Cybersystems\",\n AevumNetLinkTechnologies = \"NetLink Technologies\",\n AevumPolice = \"Aevum Police Headquarters\",\n AevumRhoConstruction = \"Rho Construction\",\n AevumSnapFitnessGym = \"Snap Fitness Gym\",\n AevumSummitUniversity = \"Summit University\",\n AevumWatchdogSecurity = \"Watchdog Security\",\n AevumCasino = \"Iker Molina Casino\",\n\n // Chongqing locations\n ChongqingKuaiGongInternational = \"KuaiGong International\",\n ChongqingSolarisSpaceSystems = \"Solaris Space Systems\",\n ChongqingChurchOfTheMachineGod = \"Church of the Machine God\",\n\n // Sector 12\n Sector12AlphaEnterprises = \"Alpha Enterprises\",\n Sector12BladeIndustries = \"Blade Industries\",\n Sector12CIA = \"Central Intelligence Agency\",\n Sector12CarmichaelSecurity = \"Carmichael Security\",\n Sector12CityHall = \"Sector-12 City Hall\",\n Sector12DeltaOne = \"DeltaOne\",\n Sector12FoodNStuff = \"FoodNStuff\",\n Sector12FourSigma = \"Four Sigma\",\n Sector12IcarusMicrosystems = \"Icarus Microsystems\",\n Sector12IronGym = \"Iron Gym\",\n Sector12JoesGuns = \"Joe's Guns\",\n Sector12MegaCorp = \"MegaCorp\",\n Sector12NSA = \"National Security Agency\",\n Sector12PowerhouseGym = \"Powerhouse Gym\",\n Sector12RothmanUniversity = \"Rothman University\",\n Sector12UniversalEnergy = \"Universal Energy\",\n\n // New Tokyo\n NewTokyoDefComm = \"DefComm\",\n NewTokyoGlobalPharmaceuticals = \"Global Pharmaceuticals\",\n NewTokyoNoodleBar = \"Noodle Bar\",\n NewTokyoVitaLife = \"VitaLife\",\n NewTokyoArcade = \"Arcade\",\n\n // Ishima\n IshimaNovaMedical = \"Nova Medical\",\n IshimaOmegaSoftware = \"Omega Software\",\n IshimaStormTechnologies = \"Storm Technologies\",\n IshimaGlitch = \"0x6C1\",\n\n // Volhaven\n VolhavenCompuTek = \"CompuTek\",\n VolhavenHeliosLabs = \"Helios Labs\",\n VolhavenLexoCorp = \"LexoCorp\",\n VolhavenMilleniumFitnessGym = \"Millenium Fitness Gym\",\n VolhavenNWO = \"NWO\",\n VolhavenOmniTekIncorporated = \"OmniTek Incorporated\",\n VolhavenOmniaCybersystems = \"Omnia Cybersystems\",\n VolhavenSysCoreSecurities = \"SysCore Securities\",\n VolhavenZBInstituteOfTechnology = \"ZB Institute of Technology\",\n\n // Generic locations\n Hospital = \"Hospital\",\n Slums = \"The Slums\",\n TravelAgency = \"Travel Agency\",\n WorldStockExchange = \"World Stock Exchange\",\n\n // Default name for Location objects\n Void = \"The Void\",\n}\n","export enum AugmentationNames {\n Targeting1 = \"Augmented Targeting I\",\n Targeting2 = \"Augmented Targeting II\",\n Targeting3 = \"Augmented Targeting III\",\n SyntheticHeart = \"Synthetic Heart\",\n SynfibrilMuscle = \"Synfibril Muscle\",\n CombatRib1 = \"Combat Rib I\",\n CombatRib2 = \"Combat Rib II\",\n CombatRib3 = \"Combat Rib III\",\n NanofiberWeave = \"Nanofiber Weave\",\n SubdermalArmor = \"NEMEAN Subdermal Weave\",\n WiredReflexes = \"Wired Reflexes\",\n GrapheneBoneLacings = \"Graphene Bone Lacings\",\n BionicSpine = \"Bionic Spine\",\n GrapheneBionicSpine = \"Graphene Bionic Spine Upgrade\",\n BionicLegs = \"Bionic Legs\",\n GrapheneBionicLegs = \"Graphene Bionic Legs Upgrade\",\n SpeechProcessor = \"Speech Processor Implant\",\n TITN41Injection = \"TITN-41 Gene-Modification Injection\",\n EnhancedSocialInteractionImplant = \"Enhanced Social Interaction Implant\",\n BitWire = \"BitWire\",\n ArtificialBioNeuralNetwork = \"Artificial Bio-neural Network Implant\",\n ArtificialSynapticPotentiation = \"Artificial Synaptic Potentiation\",\n EnhancedMyelinSheathing = \"Enhanced Myelin Sheathing\",\n SynapticEnhancement = \"Synaptic Enhancement Implant\",\n NeuralRetentionEnhancement = \"Neural-Retention Enhancement\",\n DataJack = \"DataJack\",\n ENM = \"Embedded Netburner Module\",\n ENMCore = \"Embedded Netburner Module Core Implant\",\n ENMCoreV2 = \"Embedded Netburner Module Core V2 Upgrade\",\n ENMCoreV3 = \"Embedded Netburner Module Core V3 Upgrade\",\n ENMAnalyzeEngine = \"Embedded Netburner Module Analyze Engine\",\n ENMDMA = \"Embedded Netburner Module Direct Memory Access Upgrade\",\n Neuralstimulator = \"Neuralstimulator\",\n NeuralAccelerator = \"Neural Accelerator\",\n CranialSignalProcessorsG1 = \"Cranial Signal Processors - Gen I\",\n CranialSignalProcessorsG2 = \"Cranial Signal Processors - Gen II\",\n CranialSignalProcessorsG3 = \"Cranial Signal Processors - Gen III\",\n CranialSignalProcessorsG4 = \"Cranial Signal Processors - Gen IV\",\n CranialSignalProcessorsG5 = \"Cranial Signal Processors - Gen V\",\n NeuronalDensification = \"Neuronal Densification\",\n NeuroreceptorManager = \"Neuroreceptor Management Implant\",\n NuoptimalInjectorImplant = \"Nuoptimal Nootropic Injector Implant\",\n SpeechEnhancement = \"Speech Enhancement\",\n FocusWire = \"FocusWire\",\n PCDNI = \"PC Direct-Neural Interface\",\n PCDNIOptimizer = \"PC Direct-Neural Interface Optimization Submodule\",\n PCDNINeuralNetwork = \"PC Direct-Neural Interface NeuroNet Injector\",\n PCMatrix = \"PCMatrix\",\n ADRPheromone1 = \"ADR-V1 Pheromone Gene\",\n ADRPheromone2 = \"ADR-V2 Pheromone Gene\",\n ShadowsSimulacrum = \"The Shadow's Simulacrum\",\n HacknetNodeCPUUpload = \"Hacknet Node CPU Architecture Neural-Upload\",\n HacknetNodeCacheUpload = \"Hacknet Node Cache Architecture Neural-Upload\",\n HacknetNodeNICUpload = \"Hacknet Node NIC Architecture Neural-Upload\",\n HacknetNodeKernelDNI = \"Hacknet Node Kernel Direct-Neural Interface\",\n HacknetNodeCoreDNI = \"Hacknet Node Core Direct-Neural Interface\",\n NeuroFluxGovernor = \"NeuroFlux Governor\",\n Neurotrainer1 = \"Neurotrainer I\",\n Neurotrainer2 = \"Neurotrainer II\",\n Neurotrainer3 = \"Neurotrainer III\",\n Hypersight = \"HyperSight Corneal Implant\",\n LuminCloaking1 = \"LuminCloaking-V1 Skin Implant\",\n LuminCloaking2 = \"LuminCloaking-V2 Skin Implant\",\n HemoRecirculator = \"HemoRecirculator\",\n SmartSonar = \"SmartSonar Implant\",\n PowerRecirculator = \"Power Recirculation Core\",\n QLink = \"QLink\",\n TheRedPill = \"The Red Pill\",\n SPTN97 = \"SPTN-97 Gene Modification\",\n HiveMind = \"ECorp HVMind Implant\",\n CordiARCReactor = \"CordiARC Fusion Reactor\",\n SmartJaw = \"SmartJaw\",\n Neotra = \"Neotra\",\n Xanipher = \"Xanipher\",\n nextSENS = \"nextSENS Gene Modification\",\n OmniTekInfoLoad = \"OmniTek InfoLoad\",\n PhotosyntheticCells = \"Photosynthetic Cells\",\n Neurolink = \"BitRunners Neurolink\",\n TheBlackHand = \"The Black Hand\",\n UnstableCircadianModulator = \"Unstable Circadian Modulator\",\n CRTX42AA = \"CRTX42-AA Gene Modification\",\n Neuregen = \"Neuregen Gene Modification\",\n CashRoot = \"CashRoot Starter Kit\",\n NutriGen = \"NutriGen Implant\",\n INFRARet = \"INFRARET Enhancement\",\n DermaForce = \"DermaForce Particle Barrier\",\n GrapheneBrachiBlades = \"Graphene BrachiBlades Upgrade\",\n GrapheneBionicArms = \"Graphene Bionic Arms Upgrade\",\n BrachiBlades = \"BrachiBlades\",\n BionicArms = \"Bionic Arms\",\n SNA = \"Social Negotiation Assistant (S.N.A)\",\n HydroflameLeftArm = \"Hydroflame Left Arm\",\n CongruityImplant = \"nickofolas Congruity Implant\",\n EsperEyewear = \"EsperTech Bladeburner Eyewear\",\n EMS4Recombination = \"EMS-4 Recombination\",\n OrionShoulder = \"ORION-MKIV Shoulder\",\n HyperionV1 = \"Hyperion Plasma Cannon V1\",\n HyperionV2 = \"Hyperion Plasma Cannon V2\",\n GolemSerum = \"GOLEM Serum\",\n VangelisVirus = \"Vangelis Virus\",\n VangelisVirus3 = \"Vangelis Virus 3.0\",\n INTERLINKED = \"I.N.T.E.R.L.I.N.K.E.D\",\n BladeRunner = \"Blade's Runners\",\n BladeArmor = \"BLADE-51b Tesla Armor\",\n BladeArmorPowerCells = \"BLADE-51b Tesla Armor: Power Cells Upgrade\",\n BladeArmorEnergyShielding = \"BLADE-51b Tesla Armor: Energy Shielding Upgrade\",\n BladeArmorUnibeam = \"BLADE-51b Tesla Armor: Unibeam Upgrade\",\n BladeArmorOmnibeam = \"BLADE-51b Tesla Armor: Omnibeam Upgrade\",\n BladeArmorIPU = \"BLADE-51b Tesla Armor: IPU Upgrade\",\n BladesSimulacrum = \"The Blade's Simulacrum\",\n\n StaneksGift1 = \"Stanek's Gift - Genesis\",\n StaneksGift2 = \"Stanek's Gift - Awakening\",\n StaneksGift3 = \"Stanek's Gift - Serenity\",\n\n // Infiltrators MiniGames\n MightOfAres = \"SoA - Might of Ares\", // slash\n WisdomOfAthena = \"SoA - Wisdom of Athena\", // bracket\n TrickeryOfHermes = \"SoA - Trickery of Hermes\", // cheatcode\n BeautyOfAphrodite = \"SoA - Beauty of Aphrodite\", // bribe\n ChaosOfDionysus = \"SoA - Chaos of Dionysus\", // reverse\n FloodOfPoseidon = \"SoA - Flood of Poseidon\", // hex\n HuntOfArtemis = \"SoA - Hunt of Artemis\", // mine\n KnowledgeOfApollo = \"SoA - Knowledge of Apollo\", // wire\n WKSharmonizer = \"SoA - phyzical WKS harmonizer\",\n}\n","/**\n * Generic Game Constants\n *\n * Constants for specific mechanics or features will NOT be here.\n */\nexport const CONSTANTS: {\n VersionString: string;\n VersionNumber: number;\n _idleSpeed: number;\n MaxSkillLevel: number;\n MilliPerCycle: number;\n CorpFactionRepRequirement: number;\n BaseFocusBonus: number;\n BaseCostFor1GBOfRamHome: number;\n BaseCostFor1GBOfRamServer: number;\n TravelCost: number;\n BaseFavorToDonate: number;\n DonateMoneyToRepDivisor: number;\n FactionReputationToFavorBase: number;\n FactionReputationToFavorMult: number;\n CompanyReputationToFavorBase: number;\n CompanyReputationToFavorMult: number;\n NeuroFluxGovernorLevelMult: number;\n NumNetscriptPorts: number;\n HomeComputerMaxRam: number;\n ServerBaseGrowthRate: number;\n ServerMaxGrowthRate: number;\n ServerFortifyAmount: number;\n ServerWeakenAmount: number;\n PurchasedServerLimit: number;\n PurchasedServerMaxRam: number;\n MultipleAugMultiplier: number;\n TorRouterCost: number;\n WSEAccountCost: number;\n TIXAPICost: number;\n MarketData4SCost: number;\n MarketDataTixApi4SCost: number;\n StockMarketCommission: number;\n HospitalCostPerHp: number;\n IntelligenceCrimeWeight: number;\n IntelligenceInfiltrationWeight: number;\n IntelligenceCrimeBaseExpGain: number;\n IntelligenceProgramBaseExpGain: number;\n IntelligenceGraftBaseExpGain: number;\n IntelligenceTerminalHackBaseExpGain: number;\n IntelligenceSingFnBaseExpGain: number;\n IntelligenceClassBaseExpGain: number;\n MillisecondsPer20Hours: number;\n GameCyclesPer20Hours: number;\n MillisecondsPer10Hours: number;\n GameCyclesPer10Hours: number;\n MillisecondsPer8Hours: number;\n GameCyclesPer8Hours: number;\n MillisecondsPer4Hours: number;\n GameCyclesPer4Hours: number;\n MillisecondsPer2Hours: number;\n GameCyclesPer2Hours: number;\n MillisecondsPerHour: number;\n GameCyclesPerHour: number;\n MillisecondsPerHalfHour: number;\n GameCyclesPerHalfHour: number;\n MillisecondsPerQuarterHour: number;\n GameCyclesPerQuarterHour: number;\n MillisecondsPerFiveMinutes: number;\n GameCyclesPerFiveMinutes: number;\n ClassDataStructuresBaseCost: number;\n ClassNetworksBaseCost: number;\n ClassAlgorithmsBaseCost: number;\n ClassManagementBaseCost: number;\n ClassLeadershipBaseCost: number;\n ClassGymBaseCost: number;\n ClassStudyComputerScienceBaseExp: number;\n ClassDataStructuresBaseExp: number;\n ClassNetworksBaseExp: number;\n ClassAlgorithmsBaseExp: number;\n ClassManagementBaseExp: number;\n ClassLeadershipBaseExp: number;\n CodingContractBaseFactionRepGain: number;\n CodingContractBaseCompanyRepGain: number;\n CodingContractBaseMoneyGain: number;\n AugmentationGraftingCostMult: number;\n AugmentationGraftingTimeBase: number;\n SoACostMult: number;\n SoARepMult: number;\n EntropyEffect: number;\n TotalNumBitNodes: number;\n InfiniteLoopLimit: number;\n Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG\n LatestUpdate: string;\n} = {\n VersionString: \"2.1.0\",\n VersionNumber: 25,\n\n // Speed (in ms) at which the main loop is updated\n _idleSpeed: 200,\n\n /** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience\n * and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then\n * the player will have this level assuming no multipliers. Multipliers can cause skills to go above this.\n */\n MaxSkillLevel: 975,\n\n // Milliseconds per game cycle\n MilliPerCycle: 200,\n\n // How much reputation is needed to join a megacorporation's faction\n CorpFactionRepRequirement: 400e3,\n\n // Base RAM costs\n BaseCostFor1GBOfRamHome: 32000,\n BaseCostFor1GBOfRamServer: 55000, //1 GB of RAM\n\n // Cost to travel to another city\n TravelCost: 200e3,\n\n // Faction and Company favor-related things\n BaseFavorToDonate: 150,\n DonateMoneyToRepDivisor: 1e6,\n FactionReputationToFavorBase: 500,\n FactionReputationToFavorMult: 1.02,\n CompanyReputationToFavorBase: 500,\n CompanyReputationToFavorMult: 1.02,\n\n // NeuroFlux Governor Augmentation cost multiplier\n NeuroFluxGovernorLevelMult: 1.14,\n\n NumNetscriptPorts: 20,\n\n // Server-related constants\n HomeComputerMaxRam: 1073741824, // 2 ^ 30\n ServerBaseGrowthRate: 1.03, // Unadjusted Growth rate\n ServerMaxGrowthRate: 1.0035, // Maximum possible growth rate (max rate accounting for server security)\n ServerFortifyAmount: 0.002, // Amount by which server's security increases when its hacked/grown\n ServerWeakenAmount: 0.05, // Amount by which server's security decreases when weakened\n\n PurchasedServerLimit: 25,\n PurchasedServerMaxRam: 1048576, // 2^20\n\n // Augmentation Constants\n MultipleAugMultiplier: 1.9,\n\n // TOR Router\n TorRouterCost: 200e3,\n\n // Stock market\n WSEAccountCost: 200e6,\n TIXAPICost: 5e9,\n MarketData4SCost: 1e9,\n MarketDataTixApi4SCost: 25e9,\n StockMarketCommission: 100e3,\n\n // Hospital/Health\n HospitalCostPerHp: 100e3,\n\n // Intelligence-related constants\n IntelligenceCrimeWeight: 0.025, // Weight for how much int affects crime success rates\n IntelligenceInfiltrationWeight: 0.1, // Weight for how much int affects infiltration success rates\n IntelligenceCrimeBaseExpGain: 0.05,\n IntelligenceProgramBaseExpGain: 0.1, // Program required hack level divided by this to determine int exp gain\n IntelligenceGraftBaseExpGain: 0.05,\n IntelligenceTerminalHackBaseExpGain: 200, // Hacking exp divided by this to determine int exp gain\n IntelligenceSingFnBaseExpGain: 1.5,\n IntelligenceClassBaseExpGain: 0.01,\n\n // Time-related constants\n MillisecondsPer20Hours: 72000000,\n GameCyclesPer20Hours: 72000000 / 200,\n\n MillisecondsPer10Hours: 36000000,\n GameCyclesPer10Hours: 36000000 / 200,\n\n MillisecondsPer8Hours: 28800000,\n GameCyclesPer8Hours: 28800000 / 200,\n\n MillisecondsPer4Hours: 14400000,\n GameCyclesPer4Hours: 14400000 / 200,\n\n MillisecondsPer2Hours: 7200000,\n GameCyclesPer2Hours: 7200000 / 200,\n\n MillisecondsPerHour: 3600000,\n GameCyclesPerHour: 3600000 / 200,\n\n MillisecondsPerHalfHour: 1800000,\n GameCyclesPerHalfHour: 1800000 / 200,\n\n MillisecondsPerQuarterHour: 900000,\n GameCyclesPerQuarterHour: 900000 / 200,\n\n MillisecondsPerFiveMinutes: 300000,\n GameCyclesPerFiveMinutes: 300000 / 200,\n\n // Player Work & Action\n BaseFocusBonus: 0.8,\n\n ClassDataStructuresBaseCost: 40,\n ClassNetworksBaseCost: 80,\n ClassAlgorithmsBaseCost: 320,\n ClassManagementBaseCost: 160,\n ClassLeadershipBaseCost: 320,\n ClassGymBaseCost: 120,\n\n ClassStudyComputerScienceBaseExp: 0.5,\n ClassDataStructuresBaseExp: 1,\n ClassNetworksBaseExp: 2,\n ClassAlgorithmsBaseExp: 4,\n ClassManagementBaseExp: 2,\n ClassLeadershipBaseExp: 4,\n\n // Coding Contract\n // TODO: Move this into Coding contract implementation?\n CodingContractBaseFactionRepGain: 2500,\n CodingContractBaseCompanyRepGain: 4000,\n CodingContractBaseMoneyGain: 75e6,\n\n // Augmentation grafting multipliers\n AugmentationGraftingCostMult: 3,\n AugmentationGraftingTimeBase: 3600000,\n\n // SoA mults\n SoACostMult: 7,\n SoARepMult: 1.3,\n\n // Value raised to the number of entropy stacks, then multiplied to player multipliers\n EntropyEffect: 0.98,\n\n // BitNode/Source-File related stuff\n TotalNumBitNodes: 24,\n\n InfiniteLoopLimit: 2000,\n\n Donations: 25,\n\n LatestUpdate: `\nv2.1.0 - 2022-08-23\n-------------------\n\n * pending\n * nerf noodle bar\n\n`,\n};\n","/* Generic Reviver, toJSON, and fromJSON functions used for saving and loading objects */\n\nimport { validateObject } from \"./Validator\";\n\nexport interface IReviverValue {\n ctor: string;\n data: any;\n}\n\n// A generic \"smart reviver\" function.\n// Looks for object values with a `ctor` property and\n// a `data` property. If it finds them, and finds a matching\n// constructor that has a `fromJSON` property on it, it hands\n// off to that `fromJSON` fuunction, passing in the value.\nexport function Reviver(key: string, value: IReviverValue | null): any {\n if (value == null) {\n return null;\n }\n\n if (typeof value === \"object\" && typeof value.ctor === \"string\" && typeof value.data !== \"undefined\") {\n // Compatibility for version v0.43.1\n // TODO Remove this eventually\n if (value.ctor === \"AllServersMap\") {\n console.warn(\"Converting AllServersMap for v0.43.1\");\n return value.data;\n }\n\n const ctor = Reviver.constructors[value.ctor];\n\n if (typeof ctor === \"function\" && typeof ctor.fromJSON === \"function\") {\n const obj = ctor.fromJSON(value);\n if (ctor.validationData !== undefined) {\n validateObject(obj, ctor.validationData);\n }\n return obj;\n }\n }\n return value;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Reviver {\n export const constructors: { [key: string]: any } = {};\n}\n\n// A generic \"toJSON\" function that creates the data expected\n// by Reviver.\n// `ctorName` The name of the constructor to use to revive it\n// `obj` The object being serialized\n// `keys` (Optional) Array of the properties to serialize,\n// if not given then all of the objects \"own\" properties\n// that don't have function values will be serialized.\n// (Note: If you list a property in `keys`, it will be serialized\n// regardless of whether it's an \"own\" property.)\n// Returns: The structure (which will then be turned into a string\n// as part of the JSON.stringify algorithm)\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Generic_toJSON(ctorName: string, obj: Record, keys?: string[]): IReviverValue {\n if (!keys) {\n keys = Object.keys(obj); // Only \"own\" properties are included\n }\n\n const data: Record = {};\n for (let index = 0; index < keys.length; ++index) {\n const key = keys[index];\n data[key] = obj[key];\n }\n return { ctor: ctorName, data: data };\n}\n\n// A generic \"fromJSON\" function for use with Reviver: Just calls the\n// constructor function with no arguments, then applies all of the\n// key/value pairs from the raw data to the instance. Only useful for\n// constructors that can be reasonably called without arguments!\n// `ctor` The constructor to call\n// `data` The data to apply\n// Returns: The object\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Generic_fromJSON(ctor: new () => T, data: any): T {\n const obj: any = new ctor();\n for (const name in data) {\n obj[name] = data[name];\n }\n return obj;\n}\n","import { AlertEvents } from \"./AlertManager\";\n\nimport React from \"react\";\nimport { SxProps } from \"@mui/system\";\nimport { Typography } from \"@mui/material\";\n\nexport function dialogBoxCreate(txt: string | JSX.Element, styles?: SxProps): void {\n if (typeof txt !== \"string\") {\n AlertEvents.emit(txt);\n } else {\n AlertEvents.emit();\n }\n}\n","/**\n * All possible Cities in the game. Names only, not actual \"City\" object\n * Implemented as an enum for typing purposes\n */\nexport enum CityName {\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n}\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { IPlayer } from \"../../PersonObjects/IPlayer\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number | string;\n player?: IPlayer;\n}\nexport function Money(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (props.player !== undefined) {\n if (typeof props.money !== \"number\") throw new Error(\"if player if provided, money should be number, contact dev\");\n if (!props.player.canAfford(props.money))\n return {numeralWrapper.formatMoney(props.money)};\n }\n return (\n \n {typeof props.money === \"number\" ? numeralWrapper.formatMoney(props.money) : props.money}\n \n );\n}\n","import { defaultMultipliers } from \"./BitNode\";\n\n/**\n * Bitnode multipliers influence the difficulty of different aspects of the game.\n * Each Bitnode has a different theme/strategy to achieving the end goal, so these multipliers will can help drive the\n * player toward the intended strategy. Unless they really want to play the long, slow game of waiting...\n */\nexport interface IBitNodeMultipliers {\n /**\n * Influences how quickly the player's agility level (not exp) scales\n */\n AgilityLevelMultiplier: number;\n\n /**\n * Influences the base cost to purchase an augmentation.\n */\n AugmentationMoneyCost: number;\n\n /**\n * Influences the base rep the player must have with a faction to purchase an augmentation.\n */\n AugmentationRepCost: number;\n\n /**\n * Influences how quickly the player can gain rank within Bladeburner.\n */\n BladeburnerRank: number;\n\n /**\n * Influences the cost of skill levels from Bladeburner.\n */\n BladeburnerSkillCost: number;\n\n /**\n * Influences how quickly the player's charisma level (not exp) scales\n */\n CharismaLevelMultiplier: number;\n\n /**\n * Influences the experience gained for each ability when a player completes a class.\n */\n ClassGymExpGain: number;\n\n /**\n * Influences the amount of money gained from completing Coding Contracts\n **/\n CodingContractMoney: number;\n\n /**\n * Influences the experience gained for each ability when the player completes working their job.\n */\n CompanyWorkExpGain: number;\n\n /**\n * Influences how much money the player earns when completing working their job.\n */\n CompanyWorkMoney: number;\n\n /**\n * Influences the valuation of corporations created by the player.\n */\n CorporationValuation: number;\n\n /**\n * Influences the base experience gained for each ability when the player commits a crime.\n */\n CrimeExpGain: number;\n\n /**\n * Influences the base money gained when the player commits a crime.\n */\n CrimeMoney: number;\n\n /**\n * Influences how many Augmentations you need in order to get invited to the Daedalus faction\n */\n DaedalusAugsRequirement: number;\n\n /**\n * Influences how quickly the player's defense level (not exp) scales\n */\n DefenseLevelMultiplier: number;\n\n /**\n * Influences how quickly the player's dexterity level (not exp) scales\n */\n DexterityLevelMultiplier: number;\n\n /**\n * Influences how much rep the player gains in each faction simply by being a member.\n */\n FactionPassiveRepGain: number;\n\n /**\n * Influences the experience gained for each ability when the player completes work for a Faction.\n */\n FactionWorkExpGain: number;\n\n /**\n * Influences how much rep the player gains when performing work for a faction.\n */\n FactionWorkRepGain: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data API\n */\n FourSigmaMarketDataApiCost: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data (NOT API)\n */\n FourSigmaMarketDataCost: number;\n\n /**\n * Reduces gangs earning.\n */\n GangSoftcap: number;\n\n /**\n * Percentage of unique augs that the gang has.\n */\n GangUniqueAugs: number;\n\n /**\n * Influences the experienced gained when hacking a server.\n */\n HackExpGain: number;\n\n /**\n * Influences how quickly the player's hacking level (not experience) scales\n */\n HackingLevelMultiplier: number;\n\n /**\n * Influences how much money is produced by Hacknet Nodes.\n * Influeces the hash rate of Hacknet Servers (unlocked in BitNode-9)\n */\n HacknetNodeMoney: number;\n\n /**\n * Influences how much money it costs to upgrade your home computer's RAM\n */\n HomeComputerRamCost: number;\n\n /**\n * Influences how much money is gained when the player infiltrates a company.\n */\n InfiltrationMoney: number;\n\n /**\n * Influences how much rep the player can gain from factions when selling stolen documents and secrets\n */\n InfiltrationRep: number;\n\n /**\n * Influences how much money can be stolen from a server when the player performs a hack against it through\n * the Terminal.\n */\n ManualHackMoney: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerCost: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerSoftcap: number;\n\n /**\n * Influences the maximum number of purchased servers you can have\n */\n PurchasedServerLimit: number;\n\n /**\n * Influences the maximum allowed RAM for a purchased server\n */\n PurchasedServerMaxRam: number;\n /**\n * Influences the minimum favor the player must have with a faction before they can donate to gain rep.\n */\n RepToDonateToFaction: number;\n\n /**\n * Influences how much money can be stolen from a server when a script performs a hack against it.\n */\n ScriptHackMoney: number;\n\n /**\n * The amount of money actually gained when script hack a server. This is\n * different than the above because you can reduce the amount of money but\n * not gain that same amount.\n */\n ScriptHackMoneyGain: number;\n\n /**\n * Influences the growth percentage per cycle against a server.\n */\n ServerGrowthRate: number;\n\n /**\n * Influences the maxmimum money that a server can grow to.\n */\n ServerMaxMoney: number;\n\n /**\n * Influences the initial money that a server starts with.\n */\n ServerStartingMoney: number;\n\n /**\n * Influences the initial security level (hackDifficulty) of a server.\n */\n ServerStartingSecurity: number;\n\n /**\n * Influences the weaken amount per invocation against a server.\n */\n ServerWeakenRate: number;\n\n /**\n * Influences how quickly the player's strength level (not exp) scales\n */\n StrengthLevelMultiplier: number;\n\n /**\n * Influences the power of the gift.\n */\n StaneksGiftPowerMultiplier: number;\n\n /**\n * Influences the size of the gift.\n */\n StaneksGiftExtraSize: number;\n\n /**\n * Influences the hacking skill required to backdoor the world daemon.\n */\n WorldDaemonDifficulty: number;\n\n /**\n * Influences corporation dividends.\n */\n CorporationSoftcap: number;\n\n // Index signature\n [key: string]: number;\n}\n\n/**\n * The multipliers that are influenced by current Bitnode progression.\n */\n// tslint:disable-next-line:variable-name\nexport const BitNodeMultipliers = Object.assign({}, defaultMultipliers);\n","import { Server } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { serverMetadata } from \"./data/servers\";\n\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\n\nimport { IMap, IMinMaxRange } from \"../types\";\nimport { createRandomIp } from \"../utils/IPAddress\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { Reviver } from \"../utils/JSONReviver\";\nimport { isValidIPAddress } from \"../utils/helpers/isValidIPAddress\";\nimport { SpecialServers } from \"./data/SpecialServers\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\n/**\n * Map of all Servers that exist in the game\n * Key (string) = IP\n * Value = Server object\n */\nlet AllServers: IMap = {};\n\nfunction GetServerByIP(ip: string): BaseServer | undefined {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.ip !== ip) continue;\n return server;\n }\n}\n\n//Returns server object with corresponding hostname\n// Relatively slow, would rather not use this a lot\nfunction GetServerByHostname(hostname: string): BaseServer | null {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.hostname == hostname) {\n return server;\n }\n }\n\n return null;\n}\n\n//Get server by IP or hostname. Returns null if invalid\nexport function GetServer(s: string): BaseServer | null {\n if (AllServers.hasOwnProperty(s)) {\n const server = AllServers[s];\n if (server) return server;\n }\n\n if (!isValidIPAddress(s)) {\n return GetServerByHostname(s);\n }\n\n const ipserver = GetServerByIP(s);\n if (ipserver !== undefined) {\n return ipserver;\n }\n\n return null;\n}\n\nexport function GetAllServers(): BaseServer[] {\n const servers: BaseServer[] = [];\n for (const key of Object.keys(AllServers)) {\n servers.push(AllServers[key]);\n }\n return servers;\n}\n\nexport function DeleteServer(serverkey: string): void {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.ip !== serverkey && server.hostname !== serverkey) continue;\n delete AllServers[key];\n break;\n }\n}\n\nexport function ipExists(ip: string): boolean {\n for (const hostName in AllServers) {\n if (AllServers[hostName].ip === ip) {\n return true;\n }\n }\n return false;\n}\n\nexport function createUniqueRandomIp(): string {\n let ip: string;\n // Repeat generating ip, until unique one is found\n do {\n ip = createRandomIp();\n } while (ipExists(ip));\n\n return ip;\n}\n\n// Saftely add a Server to the AllServers map\nexport function AddToAllServers(server: Server | HacknetServer): void {\n if (GetServer(server.hostname)) {\n console.warn(`Hostname of the server thats being added: ${server.hostname}`);\n console.warn(`The server that already has this IP is: ${AllServers[server.hostname].hostname}`);\n throw new Error(\"Error: Trying to add a server with an existing IP\");\n }\n\n AllServers[server.hostname] = server;\n}\n\ninterface IServerParams {\n hackDifficulty?: number;\n hostname: string;\n ip: string;\n maxRam?: number;\n moneyAvailable?: number;\n numOpenPortsRequired: number;\n organizationName: string;\n requiredHackingSkill?: number;\n serverGrowth?: number;\n}\n\nexport function initForeignServers(homeComputer: Server): void {\n /* Create a randomized network for all the foreign servers */\n //Groupings for creating a randomized network\n const networkLayers: Server[][] = [];\n for (let i = 0; i < 15; i++) {\n networkLayers.push([]);\n }\n\n const toNumber = (value: number | IMinMaxRange): number => {\n if (typeof value === \"number\") return value;\n else return getRandomInt(value.min, value.max);\n };\n\n for (const metadata of serverMetadata) {\n const serverParams: IServerParams = {\n hostname: metadata.hostname,\n ip: createUniqueRandomIp(),\n numOpenPortsRequired: metadata.numOpenPortsRequired,\n organizationName: metadata.organizationName,\n };\n\n if (metadata.maxRamExponent !== undefined) {\n serverParams.maxRam = Math.pow(2, toNumber(metadata.maxRamExponent));\n }\n\n if (metadata.hackDifficulty) serverParams.hackDifficulty = toNumber(metadata.hackDifficulty);\n if (metadata.moneyAvailable) serverParams.moneyAvailable = toNumber(metadata.moneyAvailable);\n if (metadata.requiredHackingSkill) serverParams.requiredHackingSkill = toNumber(metadata.requiredHackingSkill);\n if (metadata.serverGrowth) serverParams.serverGrowth = toNumber(metadata.serverGrowth);\n\n const server = new Server(serverParams);\n for (const filename of metadata.literature || []) {\n server.messages.push(filename);\n }\n\n if (server.hostname === SpecialServers.WorldDaemon) {\n server.requiredHackingSkill *= BitNodeMultipliers.WorldDaemonDifficulty;\n }\n AddToAllServers(server);\n if (metadata.networkLayer !== undefined) {\n networkLayers[toNumber(metadata.networkLayer) - 1].push(server);\n }\n }\n\n /* Create a randomized network for all the foreign servers */\n const linkComputers = (server1: Server, server2: Server): void => {\n server1.serversOnNetwork.push(server2.hostname);\n server2.serversOnNetwork.push(server1.hostname);\n };\n\n const getRandomArrayItem = (arr: T[]): T => arr[Math.floor(Math.random() * arr.length)];\n\n const linkNetworkLayers = (network1: Server[], selectServer: () => Server): void => {\n for (const server of network1) {\n linkComputers(server, selectServer());\n }\n };\n\n // Connect the first tier of servers to the player's home computer\n linkNetworkLayers(networkLayers[0], () => homeComputer);\n for (let i = 1; i < networkLayers.length; i++) {\n linkNetworkLayers(networkLayers[i], () => getRandomArrayItem(networkLayers[i - 1]));\n }\n}\n\nexport function prestigeAllServers(): void {\n for (const member of Object.keys(AllServers)) {\n delete AllServers[member];\n }\n AllServers = {};\n}\n\nexport function loadAllServers(saveString: string): void {\n AllServers = JSON.parse(saveString, Reviver);\n}\n\nexport function saveAllServers(excludeRunningScripts = false): string {\n const TempAllServers = JSON.parse(JSON.stringify(AllServers), Reviver);\n for (const key of Object.keys(TempAllServers)) {\n const server = TempAllServers[key];\n if (excludeRunningScripts) {\n server.runningScripts = [];\n continue;\n }\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScriptObj = server.runningScripts[i];\n runningScriptObj.logs.length = 0;\n runningScriptObj.logs = [];\n }\n }\n\n return JSON.stringify(TempAllServers);\n}\n","import { Faction } from \"../Faction/Faction\";\nimport { Location } from \"../Locations/Location\";\n\n/**\n * The full-screen page the player is currently be on.\n * These pages are mutually exclusive.\n */\nexport enum Page {\n ActiveScripts,\n Augmentations,\n BitVerse,\n Bladeburner,\n City,\n Corporation,\n CreateProgram,\n ScriptEditor,\n DevMenu,\n Faction,\n Factions,\n Gang,\n Hacknet,\n Infiltration,\n Job,\n Milestones,\n Options,\n Grafting,\n Sleeves,\n Stats,\n StockMarket,\n Terminal,\n Travel,\n Tutorial,\n Work,\n BladeburnerCinematic,\n Location,\n Loading,\n StaneksGift,\n Recovery,\n Achievements,\n ThemeBrowser,\n ImportSave,\n}\n\nexport interface ScriptEditorRouteOptions {\n vim: boolean;\n}\n\n/**\n * This class keeps track of player navigation/routing within the game.\n */\nexport interface IRouter {\n // toCinematicText(): void;\n // toInfiltration(): void;\n // toMission(): void;\n // toRedPill(): void;\n // toworkInProgress(): void;\n isInitialized: boolean;\n page(): Page;\n allowRouting(value: boolean): void;\n toActiveScripts(): void;\n toAugmentations(): void;\n toBitVerse(flume: boolean, quick: boolean): void;\n toBladeburner(): void;\n toStats(): void;\n toCity(): void; // travel ? city ?\n toCorporation(): void;\n toCreateProgram(): void;\n toDevMenu(): void;\n toFaction(faction: Faction, augPage?: boolean): void; // faction name\n toFactions(): void;\n toGameOptions(): void;\n toGang(): void;\n toHacknetNodes(): void;\n toInfiltration(location: Location): void;\n toJob(location: Location): void;\n toMilestones(): void;\n toGrafting(): void;\n toScriptEditor(files?: Record, options?: ScriptEditorRouteOptions): void;\n toSleeves(): void;\n toStockMarket(): void;\n toTerminal(): void;\n toTravel(): void;\n toTutorial(): void;\n toWork(): void;\n toBladeburnerCinematic(): void;\n toLocation(location: Location): void;\n toStaneksGift(): void;\n toAchievements(): void;\n toThemeBrowser(): void;\n toImportSave(base64Save: string, automatic?: boolean): void;\n}\n","import React, { useContext } from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"./Router\";\n\nexport const Context: {\n Player: React.Context;\n Router: React.Context;\n} = {\n Player: React.createContext({} as IPlayer),\n Router: React.createContext({} as IRouter),\n};\n\nexport const use: {\n Player: () => IPlayer;\n Router: () => IRouter;\n} = {\n Player: () => useContext(Context.Player),\n Router: () => useContext(Context.Router),\n};\n","import { EqualityFunc } from \"../types\";\nimport { isString } from \"./helpers/isString\";\n\n/*\nConverts a date representing time in milliseconds to a string with the format H hours M minutes and S seconds\ne.g. 10000 -> \"10 seconds\"\n 120000 -> \"2 minutes and 0 seconds\"\n*/\nfunction convertTimeMsToTimeElapsedString(time: number, showMilli = false): string {\n time = Math.floor(time);\n const millisecondsPerSecond = 1000;\n const secondPerMinute = 60;\n const minutesPerHours = 60;\n const secondPerHours: number = secondPerMinute * minutesPerHours;\n const hoursPerDays = 24;\n const secondPerDay: number = secondPerHours * hoursPerDays;\n\n // Convert ms to seconds, since we only have second-level precision\n const totalSeconds: number = Math.floor(time / millisecondsPerSecond);\n\n const days: number = Math.floor(totalSeconds / secondPerDay);\n const secTruncDays: number = totalSeconds % secondPerDay;\n\n const hours: number = Math.floor(secTruncDays / secondPerHours);\n const secTruncHours: number = secTruncDays % secondPerHours;\n\n const minutes: number = Math.floor(secTruncHours / secondPerMinute);\n const secTruncMinutes: number = secTruncHours % secondPerMinute;\n\n const milliTruncSec: string = (() => {\n let str = `${time % millisecondsPerSecond}`;\n while (str.length < 3) str = \"0\" + str;\n return str;\n })();\n\n const seconds: string = showMilli ? `${secTruncMinutes}.${milliTruncSec}` : `${secTruncMinutes}`;\n\n let res = \"\";\n if (days > 0) {\n res += `${days} days `;\n }\n if (hours > 0) {\n res += `${hours} hours `;\n }\n if (minutes > 0) {\n res += `${minutes} minutes `;\n }\n res += `${seconds} seconds`;\n\n return res;\n}\n\n// Finds the longest common starting substring in a set of strings\nfunction longestCommonStart(strings: string[]): string {\n if (!containsAllStrings(strings)) {\n return \"\";\n }\n if (strings.length === 0) {\n return \"\";\n }\n\n const A: string[] = strings.concat().sort();\n const a1: string = A[0];\n const a2: string = A[A.length - 1];\n const L: number = a1.length;\n let i = 0;\n const areEqualCaseInsensitive: EqualityFunc = (a: string, b: string) => a.toUpperCase() === b.toUpperCase();\n while (i < L && areEqualCaseInsensitive(a1.charAt(i), a2.charAt(i))) {\n i++;\n }\n\n return a1.substring(0, i);\n}\n\n// Returns whether an array contains entirely of string objects\nfunction containsAllStrings(arr: string[]): boolean {\n return arr.every(isString);\n}\n\n// Formats a number with commas and a specific number of decimal digits\nfunction formatNumber(num: number, numFractionDigits = 0): string {\n return num.toLocaleString(undefined, {\n maximumFractionDigits: numFractionDigits,\n minimumFractionDigits: numFractionDigits,\n });\n}\n\n// Generates a random alphanumeric string with N characters\nfunction generateRandomString(n: number): string {\n let str = \"\";\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\n for (let i = 0; i < n; i++) {\n str += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n\n return str;\n}\n\n/**\n * Hashes the input string. This is a fast hash, so NOT good for cryptography.\n * This has been ripped off here: https://stackoverflow.com/a/52171480\n * @param str The string that is to be hashed\n * @param seed A seed to randomize the result\n * @returns An hexadecimal string representation of the hashed input\n */\nfunction cyrb53(str: string, seed = 0): string {\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16);\n}\n\nfunction capitalizeFirstLetter(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n\nfunction capitalizeEachWord(s: string): string {\n return s\n .split(\" \")\n .map((word) => capitalizeFirstLetter(word))\n .join(\" \");\n}\n\nexport {\n convertTimeMsToTimeElapsedString,\n longestCommonStart,\n containsAllStrings,\n formatNumber,\n generateRandomString,\n cyrb53,\n capitalizeFirstLetter,\n capitalizeEachWord,\n};\n","/**\n * Initialization and manipulation of the Factions object, which stores data\n * about all Factions in the game\n */\nimport { Faction } from \"./Faction\";\nimport { FactionInfos } from \"./FactionInfo\";\n\nimport { IMap } from \"../types\";\n\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let Factions: IMap = {};\n\nexport function loadFactions(saveString: string): void {\n Factions = JSON.parse(saveString, Reviver);\n // safety check for when we load older save file that don't have newer factions\n for (const faction of Object.keys(Factions)) {\n try {\n Factions[faction].getInfo();\n } catch (err) {\n console.error(\"deleting \" + faction);\n delete Factions[faction];\n }\n }\n}\n\nfunction AddToFactions(faction: Faction): void {\n const name: string = faction.name;\n Factions[name] = faction;\n}\n\nexport function factionExists(name: string): boolean {\n return Factions.hasOwnProperty(name);\n}\n\nexport function initFactions(): void {\n for (const name of Object.keys(FactionInfos)) {\n resetFaction(new Faction(name));\n }\n}\n\n//Resets a faction during (re-)initialization. Saves the favor in the new\n//Faction object and deletes the old Faction Object from \"Factions\". Then\n//reinserts the new Faction object\nfunction resetFaction(newFactionObject: Faction): void {\n if (!(newFactionObject instanceof Faction)) {\n throw new Error(\"Invalid argument 'newFactionObject' passed into resetFaction()\");\n }\n const factionName: string = newFactionObject.name;\n if (factionExists(factionName)) {\n newFactionObject.favor = Factions[factionName].favor;\n delete Factions[factionName];\n }\n AddToFactions(newFactionObject);\n}\n","/**\n * Keyboard key codes as returned by event.key\n */\nexport enum KEY {\n //SHIFT: 16, // Check by `&& event.shiftKey`\n //CTRL: 17, // Check by `&& event.ctrlKey`\n //ALT: 18, // Check by `&& event.altKey`\n ENTER = \"Enter\",\n ESC = \"Escape\",\n TAB = \"Tab\",\n SPACE = \" \",\n BACKSPACE = \"Backspace\",\n UP_ARROW = \"ArrowUp\",\n DOWN_ARROW = \"ArrowDown\",\n LEFT_ARROW = \"ArrowLeft\",\n RIGHT_ARROW = \"ArrowRight\",\n\n QUOTE = \"'\",\n DOUBLE_QUOTE = '\"',\n OPEN_BRACKET = \"[\",\n CLOSE_BRACKET = \"]\",\n LESS_THAN = \"<\",\n GREATER_THAN = \">\",\n OPEN_PARENTHESIS = \"(\",\n CLOSE_PARENTHESIS = \")\",\n OPEN_BRACE = \"{\",\n CLOSE_BRACE = \"}\",\n EQUAL = \"=\",\n\n PIPE = \"|\",\n DOT = \".\",\n FORWARD_SLASH = \"/\",\n HYPHEN = \"-\",\n HASH = \"#\",\n\n k0 = \"0\",\n k1 = \"1\",\n k2 = \"2\",\n k3 = \"3\",\n k4 = \"4\",\n k5 = \"5\",\n k6 = \"6\",\n k7 = \"7\",\n k8 = \"8\",\n k9 = \"9\",\n\n A = \"a\",\n B = \"b\",\n C = \"c\",\n D = \"d\",\n E = \"e\",\n F = \"f\",\n G = \"g\",\n H = \"h\",\n I = \"i\",\n J = \"j\",\n K = \"k\",\n L = \"l\",\n M = \"m\",\n N = \"n\",\n O = \"o\",\n P = \"p\",\n Q = \"q\",\n R = \"r\",\n S = \"s\",\n T = \"t\",\n U = \"u\",\n V = \"v\",\n W = \"w\",\n X = \"x\",\n Y = \"y\",\n Z = \"z\",\n}\n\n/**\n * Keyboard key codes as returned by event.code\n */\nexport enum KEYCODE {\n //SHIFT: 16, // Check by `&& event.shiftKey`\n //CTRL: 17, // Check by `&& event.ctrlKey`\n //ALT: 18, // Check by `&& event.altKey`\n ENTER = \"Enter\",\n ESC = \"Escape\",\n TAB = \"Tab\",\n SPACE = \"Space\",\n BACKSPACE = \"Backspace\",\n UP_ARROW = \"ArrowUp\",\n DOWN_ARROW = \"ArrowDown\",\n LEFT_ARROW = \"ArrowLeft\",\n RIGHT_ARROW = \"ArrowRight\",\n\n BACKWARD_SLASH = \"Backslash\",\n BACKQUOTE = \"Backquote\",\n COMMA = \"Comma\",\n DOT = \"Period\",\n EQUAL = \"Equal\",\n FORWARD_SLASH = \"Slash\",\n HYPHEN = \"Minus\",\n SEMICOLON = \"Semicolon\",\n QUOTE = \"Quote\",\n\n k0 = \"Digit0\",\n k1 = \"Digit1\",\n k2 = \"Digit2\",\n k3 = \"Digit3\",\n k4 = \"Digit4\",\n k5 = \"Digit5\",\n k6 = \"Digit6\",\n k7 = \"Digit7\",\n k8 = \"Digit8\",\n k9 = \"Digit9\",\n\n A = \"KeyA\",\n B = \"KeyB\",\n C = \"KeyC\",\n D = \"KeyD\",\n E = \"KeyE\",\n F = \"KeyF\",\n G = \"KeyG\",\n H = \"KeyH\",\n I = \"KeyI\",\n J = \"KeyJ\",\n K = \"KeyK\",\n L = \"KeyL\",\n M = \"KeyM\",\n N = \"KeyN\",\n O = \"KeyO\",\n P = \"KeyP\",\n Q = \"KeyQ\",\n R = \"KeyR\",\n S = \"KeyS\",\n T = \"KeyT\",\n U = \"KeyU\",\n V = \"KeyV\",\n W = \"KeyW\",\n X = \"KeyX\",\n Y = \"KeyY\",\n Z = \"KeyZ\",\n}\n","// Defs for job titles, stored in arrays and categorized by job \"type\"\n\nexport const SoftwareCompanyPositions: string[] = [\n \"Software Engineering Intern\",\n \"Junior Software Engineer\",\n \"Senior Software Engineer\",\n \"Lead Software Developer\",\n \"Head of Software\",\n \"Head of Engineering\",\n \"Vice President of Technology\",\n \"Chief Technology Officer\",\n];\n\nexport const ITCompanyPositions: string[] = [\"IT Intern\", \"IT Analyst\", \"IT Manager\", \"Systems Administrator\"];\n\nexport const SecurityEngineerCompanyPositions: string[] = [\"Security Engineer\"];\n\nexport const NetworkEngineerCompanyPositions: string[] = [\"Network Engineer\", \"Network Administrator\"];\n\nexport const BusinessCompanyPositions: string[] = [\n \"Business Intern\",\n \"Business Analyst\",\n \"Business Manager\",\n \"Operations Manager\",\n \"Chief Financial Officer\",\n \"Chief Executive Officer\",\n];\n\nexport const SecurityCompanyPositions: string[] = [\n \"Police Officer\",\n \"Police Chief\",\n \"Security Guard\",\n \"Security Officer\",\n \"Security Supervisor\",\n \"Head of Security\",\n];\n\nexport const AgentCompanyPositions: string[] = [\"Field Agent\", \"Secret Agent\", \"Special Operative\"];\n\nexport const MiscCompanyPositions: string[] = [\"Waiter\", \"Employee\"];\n\nexport const SoftwareConsultantCompanyPositions: string[] = [\"Software Consultant\", \"Senior Software Consultant\"];\n\nexport const BusinessConsultantCompanyPositions: string[] = [\"Business Consultant\", \"Senior Business Consultant\"];\n\nexport const PartTimeCompanyPositions: string[] = [\"Part-time Waiter\", \"Part-time Employee\"];\n","/**\n * Gets a random integer bounded by the values passed in.\n * @param min The minimum value in the range.\n * @param max The maximum value in the range.\n */\nexport function getRandomInt(min: number, max: number): number {\n const lower: number = Math.min(min, max);\n const upper: number = Math.max(min, max);\n\n return Math.floor(Math.random() * (upper - lower + 1)) + lower;\n}\n","import { CityName } from \"./../../Locations/data/CityNames\";\nconst CyclesPerMarketCycle = 50;\nconst AllCorporationStates = [\"START\", \"PURCHASE\", \"PRODUCTION\", \"SALE\", \"EXPORT\"];\nexport const CorporationConstants: {\n INITIALSHARES: number;\n SHARESPERPRICEUPDATE: number;\n IssueNewSharesCooldown: number;\n SellSharesCooldown: number;\n CyclesPerMarketCycle: number;\n CyclesPerIndustryStateCycle: number;\n SecsPerMarketCycle: number;\n Cities: string[];\n WarehouseInitialCost: number;\n WarehouseInitialSize: number;\n WarehouseUpgradeBaseCost: number;\n OfficeInitialCost: number;\n OfficeInitialSize: number;\n OfficeUpgradeBaseCost: number;\n BribeThreshold: number;\n BribeToRepRatio: number;\n ProductProductionCostRatio: number;\n DividendMaxRate: number;\n EmployeeSalaryMultiplier: number;\n CyclesPerEmployeeRaise: number;\n EmployeeRaiseAmount: number;\n BaseMaxProducts: number;\n AllCorporationStates: string[];\n AllMaterials: string[];\n AllIndustryTypes: string[];\n AllUnlocks: string[];\n AllUpgrades: string[];\n AllResearch: string[];\n FundingRoundShares: number[];\n FundingRoundMultiplier: number[];\n AvgProfitLength: number;\n} = {\n INITIALSHARES: 1e9, //Total number of shares you have at your company\n SHARESPERPRICEUPDATE: 1e6, //When selling large number of shares, price is dynamically updated for every batch of this amount\n IssueNewSharesCooldown: 216e3, // 12 Hour in terms of game cycles\n SellSharesCooldown: 18e3, // 1 Hour in terms of game cycles\n\n CyclesPerMarketCycle: CyclesPerMarketCycle,\n CyclesPerIndustryStateCycle: CyclesPerMarketCycle / AllCorporationStates.length,\n SecsPerMarketCycle: CyclesPerMarketCycle / 5,\n\n Cities: [\n CityName.Aevum,\n CityName.Chongqing,\n CityName.Sector12,\n CityName.NewTokyo,\n CityName.Ishima,\n CityName.Volhaven,\n ],\n\n WarehouseInitialCost: 5e9, //Initial purchase cost of warehouse\n WarehouseInitialSize: 100,\n WarehouseUpgradeBaseCost: 1e9,\n\n OfficeInitialCost: 4e9,\n OfficeInitialSize: 3,\n OfficeUpgradeBaseCost: 1e9,\n\n BribeThreshold: 100e12, //Money needed to be able to bribe for faction rep\n BribeToRepRatio: 1e9, //Bribe Value divided by this = rep gain\n\n ProductProductionCostRatio: 5, //Ratio of material cost of a product to its production cost\n\n DividendMaxRate: 1,\n\n EmployeeSalaryMultiplier: 3, // Employee stats multiplied by this to determine initial salary\n CyclesPerEmployeeRaise: 400, // All employees get a raise every X market cycles\n EmployeeRaiseAmount: 50, // Employee salary increases by this (additive)\n\n BaseMaxProducts: 3, // Initial value for maximum number of products allowed\n AllCorporationStates: AllCorporationStates,\n AllMaterials: [\n \"Water\",\n \"Energy\",\n \"Food\",\n \"Plants\",\n \"Metal\",\n \"Hardware\",\n \"Chemicals\",\n \"Drugs\",\n \"Robots\",\n \"AI Cores\",\n \"Real Estate\",\n ],\n AllIndustryTypes: [\n \"Energy\",\n \"Utilities\",\n \"Agriculture\",\n \"Fishing\",\n \"Mining\",\n \"Food\",\n \"Tobacco\",\n \"Chemical\",\n \"Pharmaceutical\",\n \"Hardware\",\n \"Robotics\",\n \"Software\",\n \"Healthcare\",\n \"RealEstate\",\n ],\n AllUnlocks: [\n \"Export\",\n \"Smart Supply\",\n \"Market Research - Demand\",\n \"Market Data - Competition\",\n \"VeChain\",\n \"Shady Accounting\",\n \"Government Partnership\",\n \"Warehouse API\",\n \"Office API\",\n ],\n AllUpgrades: [\n \"Smart Factories\",\n \"Smart Storage\",\n \"DreamSense\",\n \"Wilson Analytics\",\n \"Nuoptimal Nootropic Injector Implants\",\n \"Speech Processor Implants\",\n \"Neural Accelerators\",\n \"FocusWires\",\n \"ABC SalesBots\",\n \"Project Insight\",\n ],\n AllResearch: [\n \"Hi-Tech R&D Laboratory\",\n \"AutoBrew\",\n \"AutoPartyManager\",\n \"Automatic Drug Administration\",\n \"Bulk Purchasing\",\n \"CPH4 Injections\",\n \"Drones\",\n \"Drones - Assembly\",\n \"Drones - Transport\",\n \"Go-Juice\",\n \"HRBuddy-Recruitment\",\n \"HRBuddy-Training\",\n \"JoyWire\",\n \"Market-TA.I\",\n \"Market-TA.II\",\n \"Overclock\",\n \"Self-Correcting Assemblers\",\n \"Sti.mu\",\n \"sudo.Assist\",\n \"uPgrade: Capacity.I\",\n \"uPgrade: Capacity.II\",\n \"uPgrade: Dashboard\",\n \"uPgrade: Fulcrum\",\n ],\n FundingRoundShares: [0.1, 0.35, 0.25, 0.2],\n FundingRoundMultiplier: [4, 3, 3, 2.5],\n\n AvgProfitLength: 1,\n};\n","// Class definition for a single Augmentation object\nimport * as React from \"react\";\n\nimport { Faction } from \"../Faction/Faction\";\nimport { Factions } from \"../Faction/Factions\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { AugmentationNames } from \"./data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\nimport { StaticAugmentations } from \"./StaticAugmentations\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { getBaseAugmentationPriceMultiplier, getGenericAugmentationPriceMultiplier } from \"./AugmentationHelpers\";\nimport { initSoAAugmentations } from \"./data/AugmentationCreator\";\nimport { Multipliers, defaultMultipliers } from \"../PersonObjects/Multipliers\";\n\nexport interface AugmentationCosts {\n moneyCost: number;\n repCost: number;\n}\n\nexport interface IConstructorParams {\n info: string | JSX.Element;\n stats?: JSX.Element | null;\n isSpecial?: boolean;\n moneyCost: number;\n name: string;\n prereqs?: string[];\n repCost: number;\n factions: string[];\n\n hacking?: number;\n strength?: number;\n defense?: number;\n dexterity?: number;\n agility?: number;\n charisma?: number;\n hacking_exp?: number;\n strength_exp?: number;\n defense_exp?: number;\n dexterity_exp?: number;\n agility_exp?: number;\n charisma_exp?: number;\n hacking_chance?: number;\n hacking_speed?: number;\n hacking_money?: number;\n hacking_grow?: number;\n company_rep?: number;\n faction_rep?: number;\n crime_money?: number;\n crime_success?: number;\n work_money?: number;\n hacknet_node_money?: number;\n hacknet_node_purchase_cost?: number;\n hacknet_node_ram_cost?: number;\n hacknet_node_core_cost?: number;\n hacknet_node_level_cost?: number;\n bladeburner_max_stamina?: number;\n bladeburner_stamina_gain?: number;\n bladeburner_analysis?: number;\n bladeburner_success_chance?: number;\n infiltration_base_rep_increase?: number;\n infiltration_rep?: number;\n infiltration_trade?: number;\n infiltration_sell?: number;\n infiltration_timer?: number;\n infiltration_damage_reduction?: number;\n\n startingMoney?: number;\n programs?: string[];\n}\n\nfunction generateStatsDescription(mults: Multipliers, programs?: string[], startingMoney?: number): JSX.Element {\n const f = (x: number, decimals = 0): string => {\n // look, I don't know how to make a \"smart decimals\"\n // todo, make it smarter\n if (x === 1.0777 - 1) return \"7.77%\";\n if (x === 1.777 - 1) return \"77.7%\";\n return numeralWrapper.formatPercentage(x, decimals);\n };\n let desc = <>Effects:>;\n\n if (\n mults.hacking !== 1 &&\n mults.hacking == mults.strength &&\n mults.hacking == mults.defense &&\n mults.hacking == mults.dexterity &&\n mults.hacking == mults.agility &&\n mults.hacking == mults.charisma\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.hacking - 1)} all skills\n >\n );\n } else {\n if (mults.hacking !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking - 1)} hacking skill\n >\n );\n\n if (\n mults.strength !== 1 &&\n mults.strength == mults.defense &&\n mults.strength == mults.dexterity &&\n mults.strength == mults.agility\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.strength - 1)} combat skills\n >\n );\n } else {\n if (mults.strength !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.strength - 1)} strength skill\n >\n );\n if (mults.defense !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.defense - 1)} defense skill\n >\n );\n if (mults.dexterity !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.dexterity - 1)} dexterity skill\n >\n );\n if (mults.agility !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.agility - 1)} agility skill\n >\n );\n }\n if (mults.charisma !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.charisma - 1)} charisma skill\n >\n );\n }\n\n if (\n mults.hacking_exp !== 1 &&\n mults.hacking_exp === mults.strength_exp &&\n mults.hacking_exp === mults.defense_exp &&\n mults.hacking_exp === mults.dexterity_exp &&\n mults.hacking_exp === mults.agility_exp &&\n mults.hacking_exp === mults.charisma_exp\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.hacking_exp - 1)} exp for all skills\n >\n );\n } else {\n if (mults.hacking_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_exp - 1)} hacking exp\n >\n );\n\n if (\n mults.strength_exp !== 1 &&\n mults.strength_exp === mults.defense_exp &&\n mults.strength_exp === mults.dexterity_exp &&\n mults.strength_exp === mults.agility_exp\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.strength_exp - 1)} combat exp\n >\n );\n } else {\n if (mults.strength_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.strength_exp - 1)} strength exp\n >\n );\n if (mults.defense_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.defense_exp - 1)} defense exp\n >\n );\n if (mults.dexterity_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.dexterity_exp - 1)} dexterity exp\n >\n );\n if (mults.agility_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.agility_exp - 1)} agility exp\n >\n );\n }\n if (mults.charisma_exp !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.charisma_exp - 1)} charisma exp\n >\n );\n }\n\n if (mults.hacking_speed !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_speed - 1)} faster hack(), grow(), and weaken()\n >\n );\n if (mults.hacking_chance !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_chance - 1)} hack() success chance\n >\n );\n if (mults.hacking_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_money - 1)} hack() power\n >\n );\n if (mults.hacking_grow !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_grow - 1)} grow() power\n >\n );\n\n if (mults.faction_rep !== 1 && mults.faction_rep === mults.company_rep) {\n desc = (\n <>\n {desc}\n +{f(mults.faction_rep - 1)} reputation from factions and companies\n >\n );\n } else {\n if (mults.faction_rep !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.faction_rep - 1)} reputation from factions\n >\n );\n if (mults.company_rep !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.company_rep - 1)} reputation from companies\n >\n );\n }\n\n if (mults.crime_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.crime_money - 1)} crime money\n >\n );\n if (mults.crime_success !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.crime_success - 1)} crime success rate\n >\n );\n if (mults.work_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.work_money - 1)} work money\n >\n );\n\n if (mults.hacknet_node_money !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.hacknet_node_money - 1)} hacknet production\n >\n );\n if (mults.hacknet_node_purchase_cost !== 1)\n desc = (\n <>\n {desc}\n -{f(-(mults.hacknet_node_purchase_cost - 1))} hacknet nodes cost\n >\n );\n if (mults.hacknet_node_level_cost !== 1)\n desc = (\n <>\n {desc}\n -{f(-(mults.hacknet_node_level_cost - 1))} hacknet nodes upgrade cost\n >\n );\n\n if (mults.bladeburner_max_stamina !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_max_stamina - 1)} Bladeburner Max Stamina\n >\n );\n if (mults.bladeburner_stamina_gain !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_stamina_gain - 1)} Bladeburner Stamina gain\n >\n );\n if (mults.bladeburner_analysis !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_analysis - 1)} Bladeburner Field Analysis effectiveness\n >\n );\n if (mults.bladeburner_success_chance !== 1)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_success_chance - 1)} Bladeburner Contracts and Operations success chance\n >\n );\n if (startingMoney)\n desc = (\n <>\n {desc}\n \n Start with after installing Augmentations.\n >\n );\n\n if (programs)\n desc = (\n <>\n {desc}\n \n Start with {programs.join(\" and \")} after installing Augmentations.\n >\n );\n return desc;\n}\n\nexport class Augmentation {\n // How much money this costs to buy before multipliers\n baseCost = 0;\n\n // How much faction reputation is required to unlock this before multipliers\n baseRepRequirement = 0;\n\n // Description of what this Aug is and what it does\n info: string | JSX.Element;\n\n // Description of the stats, often autogenerated, sometimes manually written.\n stats: JSX.Element | null;\n\n // Any Augmentation not immediately available in BitNode-1 is special (e.g. Bladeburner augs)\n isSpecial = false;\n\n // Name of Augmentation\n name = \"\";\n\n // Array of names of all prerequisites\n prereqs: string[] = [];\n\n // Multipliers given by this Augmentation. Must match the property name in\n // The Player/Person classes\n mults: Multipliers = defaultMultipliers();\n\n // Factions that offer this aug.\n factions: string[] = [];\n\n constructor(\n params: IConstructorParams = {\n info: \"\",\n moneyCost: 0,\n name: \"\",\n repCost: 0,\n factions: [],\n },\n ) {\n this.name = params.name;\n this.info = params.info;\n this.prereqs = params.prereqs ? params.prereqs : [];\n\n this.baseRepRequirement = params.repCost;\n Object.freeze(this.baseRepRequirement);\n this.baseCost = params.moneyCost;\n Object.freeze(this.baseCost);\n this.factions = params.factions;\n\n if (params.isSpecial) {\n this.isSpecial = true;\n }\n\n // Set multipliers\n if (params.hacking) {\n this.mults.hacking = params.hacking;\n }\n if (params.strength) {\n this.mults.strength = params.strength;\n }\n if (params.defense) {\n this.mults.defense = params.defense;\n }\n if (params.dexterity) {\n this.mults.dexterity = params.dexterity;\n }\n if (params.agility) {\n this.mults.agility = params.agility;\n }\n if (params.charisma) {\n this.mults.charisma = params.charisma;\n }\n if (params.hacking_exp) {\n this.mults.hacking_exp = params.hacking_exp;\n }\n if (params.strength_exp) {\n this.mults.strength_exp = params.strength_exp;\n }\n if (params.defense_exp) {\n this.mults.defense_exp = params.defense_exp;\n }\n if (params.dexterity_exp) {\n this.mults.dexterity_exp = params.dexterity_exp;\n }\n if (params.agility_exp) {\n this.mults.agility_exp = params.agility_exp;\n }\n if (params.charisma_exp) {\n this.mults.charisma_exp = params.charisma_exp;\n }\n if (params.hacking_chance) {\n this.mults.hacking_chance = params.hacking_chance;\n }\n if (params.hacking_speed) {\n this.mults.hacking_speed = params.hacking_speed;\n }\n if (params.hacking_money) {\n this.mults.hacking_money = params.hacking_money;\n }\n if (params.hacking_grow) {\n this.mults.hacking_grow = params.hacking_grow;\n }\n if (params.company_rep) {\n this.mults.company_rep = params.company_rep;\n }\n if (params.faction_rep) {\n this.mults.faction_rep = params.faction_rep;\n }\n if (params.crime_money) {\n this.mults.crime_money = params.crime_money;\n }\n if (params.crime_success) {\n this.mults.crime_success = params.crime_success;\n }\n if (params.work_money) {\n this.mults.work_money = params.work_money;\n }\n if (params.hacknet_node_money) {\n this.mults.hacknet_node_money = params.hacknet_node_money;\n }\n if (params.hacknet_node_purchase_cost) {\n this.mults.hacknet_node_purchase_cost = params.hacknet_node_purchase_cost;\n }\n if (params.hacknet_node_ram_cost) {\n this.mults.hacknet_node_ram_cost = params.hacknet_node_ram_cost;\n }\n if (params.hacknet_node_core_cost) {\n this.mults.hacknet_node_core_cost = params.hacknet_node_core_cost;\n }\n if (params.hacknet_node_level_cost) {\n this.mults.hacknet_node_level_cost = params.hacknet_node_level_cost;\n }\n if (params.bladeburner_max_stamina) {\n this.mults.bladeburner_max_stamina = params.bladeburner_max_stamina;\n }\n if (params.bladeburner_stamina_gain) {\n this.mults.bladeburner_stamina_gain = params.bladeburner_stamina_gain;\n }\n if (params.bladeburner_analysis) {\n this.mults.bladeburner_analysis = params.bladeburner_analysis;\n }\n if (params.bladeburner_success_chance) {\n this.mults.bladeburner_success_chance = params.bladeburner_success_chance;\n }\n\n if (params.stats === undefined)\n this.stats = generateStatsDescription(this.mults, params.programs, params.startingMoney);\n else this.stats = params.stats;\n }\n\n // Adds this Augmentation to the specified Factions\n addToFactions(factionList: string[]): void {\n for (let i = 0; i < factionList.length; ++i) {\n const faction: Faction | null = Factions[factionList[i]];\n if (faction == null) {\n console.warn(`In Augmentation.addToFactions(), could not find faction with this name: ${factionList[i]}`);\n continue;\n }\n faction.augmentations.push(this.name);\n }\n }\n\n getCost(player: IPlayer): AugmentationCosts {\n const augmentationReference = StaticAugmentations[this.name];\n let moneyCost = augmentationReference.baseCost;\n let repCost = augmentationReference.baseRepRequirement;\n\n if (augmentationReference.name === AugmentationNames.NeuroFluxGovernor) {\n let nextLevel = this.getLevel(player);\n --nextLevel;\n const multiplier = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);\n repCost = augmentationReference.baseRepRequirement * multiplier * BitNodeMultipliers.AugmentationRepCost;\n moneyCost = augmentationReference.baseCost * multiplier * BitNodeMultipliers.AugmentationMoneyCost;\n\n for (let i = 0; i < player.queuedAugmentations.length; ++i) {\n moneyCost *= getBaseAugmentationPriceMultiplier();\n }\n } else if (augmentationReference.factions.includes(FactionNames.ShadowsOfAnarchy)) {\n const soaAugmentationNames = initSoAAugmentations().map((augmentation) => augmentation.name);\n const soaMultiplier = Math.pow(\n CONSTANTS.SoACostMult,\n soaAugmentationNames.filter((augmentationName) => player.hasAugmentation(augmentationName)).length,\n );\n moneyCost = augmentationReference.baseCost * soaMultiplier;\n if (soaAugmentationNames.find((augmentationName) => augmentationName === augmentationReference.name)) {\n repCost = augmentationReference.baseRepRequirement * soaMultiplier;\n }\n } else {\n moneyCost =\n augmentationReference.baseCost *\n getGenericAugmentationPriceMultiplier() *\n BitNodeMultipliers.AugmentationMoneyCost;\n repCost = augmentationReference.baseRepRequirement * BitNodeMultipliers.AugmentationRepCost;\n }\n return { moneyCost, repCost };\n }\n\n getLevel(player: IPlayer): number {\n // Get current Neuroflux level based on Player's augmentations\n if (this.name === AugmentationNames.NeuroFluxGovernor) {\n let currLevel = 0;\n for (let i = 0; i < player.augmentations.length; ++i) {\n if (player.augmentations[i].name === AugmentationNames.NeuroFluxGovernor) {\n currLevel = player.augmentations[i].level;\n }\n }\n\n // Account for purchased but uninstalled Augmentations\n for (let i = 0; i < player.queuedAugmentations.length; ++i) {\n if (player.queuedAugmentations[i].name == AugmentationNames.NeuroFluxGovernor) {\n ++currLevel;\n }\n }\n return currLevel + 1;\n }\n return 0;\n }\n\n // Adds this Augmentation to all Factions\n addToAllFactions(): void {\n for (const fac of Object.keys(Factions)) {\n if (Factions.hasOwnProperty(fac)) {\n const facObj: Faction | null = Factions[fac];\n if (facObj == null) {\n console.warn(`Invalid Faction object in addToAllFactions(). Key value: ${fac}`);\n continue;\n }\n if (facObj.getInfo().special) continue;\n facObj.augmentations.push(this.name);\n }\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Augmentation\", this);\n }\n\n // Initiatizes a Augmentation object from a JSON save state.\n static fromJSON(value: IReviverValue): Augmentation {\n return Generic_fromJSON(Augmentation, value.data);\n }\n}\n\nReviver.constructors.Augmentation = Augmentation;\n","import { Theme } from \"@mui/material\";\nimport Box from \"@mui/material/Box\";\nimport Fade from \"@mui/material/Fade\";\nimport M from \"@mui/material/Modal\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { SxProps } from \"@mui/system\";\nimport React from \"react\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n modal: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n paper: {\n backgroundColor: theme.palette.background.default,\n border: \"2px solid \" + theme.palette.primary.main,\n boxShadow: `0px 3px 5px -1px ${theme.palette.primary.dark},0px 5px 8px 0px ${theme.palette.primary.dark},0px 1px 14px 0px ${theme.palette.primary.dark}`,\n padding: 2,\n maxWidth: \"80%\",\n maxHeight: \"80%\",\n overflow: \"auto\",\n \"&::-webkit-scrollbar\": {\n // webkit\n display: \"none\",\n },\n scrollbarWidth: \"none\", // firefox\n },\n }),\n);\n\ninterface IProps {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n sx?: SxProps;\n}\n\nexport const Modal = (props: IProps): React.ReactElement => {\n const classes = useStyles();\n return (\n \n \n
\n {props.children}\n
\n \n \n );\n};\n","export const HacknetNodeConstants: {\n // Constants for Hacknet Node production\n MoneyGainPerLevel: number;\n\n // Constants for Hacknet Node purchase/upgrade costs\n BaseCost: number;\n LevelBaseCost: number;\n RamBaseCost: number;\n CoreBaseCost: number;\n\n PurchaseNextMult: number;\n UpgradeLevelMult: number;\n UpgradeRamMult: number;\n UpgradeCoreMult: number;\n\n // Constants for max upgrade levels for Hacknet Nodes\n MaxLevel: number;\n MaxRam: number;\n MaxCores: number;\n} = {\n MoneyGainPerLevel: 1.5,\n\n BaseCost: 1000,\n LevelBaseCost: 1,\n RamBaseCost: 30e3,\n CoreBaseCost: 500e3,\n\n PurchaseNextMult: 1.85,\n UpgradeLevelMult: 1.04,\n UpgradeRamMult: 1.28,\n UpgradeCoreMult: 1.48,\n\n MaxLevel: 200,\n MaxRam: 64,\n MaxCores: 16,\n};\n\nexport const PurchaseMultipliers: {\n [key: string]: number | \"MAX\" | undefined;\n x1: number;\n x5: number;\n x10: number;\n MAX: \"MAX\";\n} = {\n x1: 1,\n x5: 5,\n x10: 10,\n MAX: \"MAX\",\n};\n\nexport const HacknetServerConstants: {\n // Constants for Hacknet Server stats/production\n HashesPerLevel: number;\n\n // Constants for Hacknet Server purchase/upgrade costs\n BaseCost: number;\n RamBaseCost: number;\n CoreBaseCost: number;\n CacheBaseCost: number;\n\n PurchaseMult: number; // Multiplier for puchasing an additional Hacknet Server\n UpgradeLevelMult: number; // Multiplier for cost when upgrading level\n UpgradeRamMult: number; // Multiplier for cost when upgrading RAM\n UpgradeCoreMult: number; // Multiplier for cost when buying another core\n UpgradeCacheMult: number; // Multiplier for cost when upgrading cache\n MaxServers: number; // Max number of Hacknet Servers you can own\n\n // Constants for max upgrade levels for Hacknet Server\n MaxLevel: number;\n MaxRam: number;\n MaxCores: number;\n MaxCache: number;\n} = {\n HashesPerLevel: 0.001,\n\n BaseCost: 50e3,\n RamBaseCost: 200e3,\n CoreBaseCost: 1e6,\n CacheBaseCost: 10e6,\n\n PurchaseMult: 3.2,\n UpgradeLevelMult: 1.1,\n UpgradeRamMult: 1.4,\n UpgradeCoreMult: 1.55,\n UpgradeCacheMult: 1.85,\n\n MaxServers: 20,\n\n MaxLevel: 300,\n MaxRam: 8192,\n MaxCores: 128,\n MaxCache: 15,\n};\n","import { IMap } from \"../types\";\n\nexport const EmployeePositions: IMap = {\n Operations: \"Operations\",\n Engineer: \"Engineer\",\n Business: \"Business\",\n Management: \"Management\",\n RandD: \"Research & Development\",\n Training: \"Training\",\n Unassigned: \"Unassigned\",\n};\n","// Action Identifier enum\nexport const ActionTypes: {\n [key: string]: number;\n Idle: number;\n Contract: number;\n Operation: number;\n BlackOp: number;\n BlackOperation: number;\n Training: number;\n Recruitment: number;\n FieldAnalysis: number;\n \"Field Analysis\": number;\n Diplomacy: number;\n \"Hyperbolic Regeneration Chamber\": number;\n \"Incite Violence\": number;\n} = {\n Idle: 1,\n Contract: 2,\n Operation: 3,\n BlackOp: 4,\n BlackOperation: 4,\n Training: 5,\n Recruitment: 6,\n FieldAnalysis: 7,\n \"Field Analysis\": 7,\n Diplomacy: 8,\n \"Hyperbolic Regeneration Chamber\": 9,\n \"Incite Violence\": 10,\n};\n","import { Player } from \"./Player\";\n\nimport { LiteratureNames } from \"./Literature/data/LiteratureNames\";\n\nimport { ITutorialEvents } from \"./ui/InteractiveTutorial/ITutorialEvents\";\n\n// Ordered array of keys to Interactive Tutorial Steps\nenum iTutorialSteps {\n Start,\n NSSelection,\n GoToCharacterPage, // Click on 'Stats' page\n CharacterPage, // Introduction to 'Stats' page\n CharacterGoToTerminalPage, // Go back to Terminal\n TerminalIntro, // Introduction to Terminal\n TerminalHelp, // Using 'help' Terminal command\n TerminalLs, // Using 'ls' Terminal command\n TerminalScan, // Using 'scan' Terminal command\n TerminalScanAnalyze1, // Using 'scan-analyze' Terminal command\n TerminalScanAnalyze2, // Using 'scan-analyze 3' Terminal command\n TerminalConnect, // Connecting to n00dles\n TerminalAnalyze, // Analyzing n00dles\n TerminalNuke, // NUKE n00dles\n TerminalManualHack, // Hack n00dles\n TerminalHackingMechanics, // Explanation of hacking mechanics\n TerminalGoHome, // Go home before creating a script.\n TerminalCreateScript, // Create a script using 'nano'\n TerminalTypeScript, // Script Editor page - Type script and then save & close\n TerminalFree, // Using 'Free' Terminal command\n TerminalRunScript, // Running script using 'run' Terminal command\n TerminalGoToActiveScriptsPage,\n ActiveScriptsPage,\n ActiveScriptsToTerminal,\n TerminalTailScript,\n GoToHacknetNodesPage,\n HacknetNodesIntroduction,\n HacknetNodesGoToWorldPage,\n WorldDescription,\n TutorialPageInfo,\n End,\n}\n\nconst ITutorial: {\n currStep: iTutorialSteps;\n isRunning: boolean;\n stepIsDone: {\n [iTutorialSteps.Start]: boolean;\n [iTutorialSteps.NSSelection]: boolean;\n [iTutorialSteps.GoToCharacterPage]: boolean;\n [iTutorialSteps.CharacterPage]: boolean;\n [iTutorialSteps.CharacterGoToTerminalPage]: boolean;\n [iTutorialSteps.TerminalIntro]: boolean;\n [iTutorialSteps.TerminalHelp]: boolean;\n [iTutorialSteps.TerminalLs]: boolean;\n [iTutorialSteps.TerminalScan]: boolean;\n [iTutorialSteps.TerminalScanAnalyze1]: boolean;\n [iTutorialSteps.TerminalScanAnalyze2]: boolean;\n [iTutorialSteps.TerminalConnect]: boolean;\n [iTutorialSteps.TerminalAnalyze]: boolean;\n [iTutorialSteps.TerminalNuke]: boolean;\n [iTutorialSteps.TerminalManualHack]: boolean;\n [iTutorialSteps.TerminalHackingMechanics]: boolean;\n [iTutorialSteps.TerminalGoHome]: boolean;\n [iTutorialSteps.TerminalCreateScript]: boolean;\n [iTutorialSteps.TerminalTypeScript]: boolean;\n [iTutorialSteps.TerminalFree]: boolean;\n [iTutorialSteps.TerminalRunScript]: boolean;\n [iTutorialSteps.TerminalGoToActiveScriptsPage]: boolean;\n [iTutorialSteps.ActiveScriptsPage]: boolean;\n [iTutorialSteps.ActiveScriptsToTerminal]: boolean;\n [iTutorialSteps.TerminalTailScript]: boolean;\n [iTutorialSteps.GoToHacknetNodesPage]: boolean;\n [iTutorialSteps.HacknetNodesIntroduction]: boolean;\n [iTutorialSteps.HacknetNodesGoToWorldPage]: boolean;\n [iTutorialSteps.WorldDescription]: boolean;\n [iTutorialSteps.TutorialPageInfo]: boolean;\n [iTutorialSteps.End]: boolean;\n };\n} = {\n currStep: iTutorialSteps.Start,\n isRunning: false,\n\n // Keeps track of whether each step has been done\n stepIsDone: {\n [iTutorialSteps.Start]: false,\n [iTutorialSteps.NSSelection]: false,\n [iTutorialSteps.GoToCharacterPage]: false,\n [iTutorialSteps.CharacterPage]: false,\n [iTutorialSteps.CharacterGoToTerminalPage]: false,\n [iTutorialSteps.TerminalIntro]: false,\n [iTutorialSteps.TerminalHelp]: false,\n [iTutorialSteps.TerminalLs]: false,\n [iTutorialSteps.TerminalScan]: false,\n [iTutorialSteps.TerminalScanAnalyze1]: false,\n [iTutorialSteps.TerminalScanAnalyze2]: false,\n [iTutorialSteps.TerminalConnect]: false,\n [iTutorialSteps.TerminalAnalyze]: false,\n [iTutorialSteps.TerminalNuke]: false,\n [iTutorialSteps.TerminalManualHack]: false,\n [iTutorialSteps.TerminalHackingMechanics]: false,\n [iTutorialSteps.TerminalGoHome]: false,\n [iTutorialSteps.TerminalCreateScript]: false,\n [iTutorialSteps.TerminalTypeScript]: false,\n [iTutorialSteps.TerminalFree]: false,\n [iTutorialSteps.TerminalRunScript]: false,\n [iTutorialSteps.TerminalGoToActiveScriptsPage]: false,\n [iTutorialSteps.ActiveScriptsPage]: false,\n [iTutorialSteps.ActiveScriptsToTerminal]: false,\n [iTutorialSteps.TerminalTailScript]: false,\n [iTutorialSteps.GoToHacknetNodesPage]: false,\n [iTutorialSteps.HacknetNodesIntroduction]: false,\n [iTutorialSteps.HacknetNodesGoToWorldPage]: false,\n [iTutorialSteps.WorldDescription]: false,\n [iTutorialSteps.TutorialPageInfo]: false,\n [iTutorialSteps.End]: false,\n },\n};\n\nfunction iTutorialStart(): void {\n ITutorial.isRunning = true;\n ITutorial.currStep = iTutorialSteps.Start;\n}\n\n// Go to the next step and evaluate it\nfunction iTutorialNextStep(): void {\n ITutorial.stepIsDone[ITutorial.currStep] = true;\n if (ITutorial.currStep < iTutorialSteps.End) {\n ITutorial.currStep += 1;\n }\n if (ITutorial.currStep === iTutorialSteps.End) iTutorialEnd();\n ITutorialEvents.emit();\n}\n\n// Go to previous step and evaluate\nfunction iTutorialPrevStep(): void {\n if (ITutorial.currStep > iTutorialSteps.Start) {\n ITutorial.currStep -= 1;\n }\n ITutorialEvents.emit();\n}\n\nfunction iTutorialEnd(): void {\n ITutorial.isRunning = false;\n ITutorial.currStep = iTutorialSteps.Start;\n Player.getHomeComputer().messages.push(LiteratureNames.HackersStartingHandbook);\n ITutorialEvents.emit();\n}\n\nexport { iTutorialSteps, iTutorialEnd, iTutorialStart, iTutorialNextStep, ITutorial, iTutorialPrevStep };\n","// Class representing a single hackable Server\nimport { BaseServer } from \"./BaseServer\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\nimport { createRandomString } from \"../utils/helpers/createRandomString\";\nimport { createRandomIp } from \"../utils/IPAddress\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IConstructorParams {\n adminRights?: boolean;\n hackDifficulty?: number;\n hostname: string;\n ip?: string;\n isConnectedTo?: boolean;\n maxRam?: number;\n moneyAvailable?: number;\n numOpenPortsRequired?: number;\n organizationName?: string;\n purchasedByPlayer?: boolean;\n requiredHackingSkill?: number;\n serverGrowth?: number;\n}\n\nexport class Server extends BaseServer {\n // Flag indicating whether this server has a backdoor installed by a player\n backdoorInstalled = false;\n\n // Initial server security level\n // (i.e. security level when the server was created)\n baseDifficulty = 1;\n\n // Server Security Level\n hackDifficulty = 1;\n\n // Minimum server security level that this server can be weakened to\n minDifficulty = 1;\n\n // How much money currently resides on the server and can be hacked\n moneyAvailable = 0;\n\n // Maximum amount of money that this server can hold\n moneyMax = 0;\n\n // Number of open ports required in order to gain admin/root access\n numOpenPortsRequired = 5;\n\n // How many ports are currently opened on the server\n openPortCount = 0;\n\n // Hacking level required to hack this server\n requiredHackingSkill = 1;\n\n // Parameter that affects how effectively this server's money can\n // be increased using the grow() Netscript function\n serverGrowth = 1;\n\n constructor(params: IConstructorParams = { hostname: \"\", ip: createRandomIp() }) {\n super(params);\n\n // \"hacknet-node-X\" hostnames are reserved for Hacknet Servers\n if (this.hostname.startsWith(\"hacknet-node-\")) {\n this.hostname = createRandomString(10);\n }\n\n this.purchasedByPlayer = params.purchasedByPlayer != null ? params.purchasedByPlayer : false;\n\n //RAM, CPU speed and Scripts\n this.maxRam = params.maxRam != null ? params.maxRam : 0; //GB\n\n /* Hacking information (only valid for \"foreign\" aka non-purchased servers) */\n this.requiredHackingSkill = params.requiredHackingSkill != null ? params.requiredHackingSkill : 1;\n this.moneyAvailable =\n params.moneyAvailable != null ? params.moneyAvailable * BitNodeMultipliers.ServerStartingMoney : 0;\n this.moneyMax = 25 * this.moneyAvailable * BitNodeMultipliers.ServerMaxMoney;\n\n //Hack Difficulty is synonymous with server security. Base Difficulty = Starting difficulty\n this.hackDifficulty =\n params.hackDifficulty != null ? params.hackDifficulty * BitNodeMultipliers.ServerStartingSecurity : 1;\n this.baseDifficulty = this.hackDifficulty;\n this.minDifficulty = Math.max(1, Math.round(this.hackDifficulty / 3));\n this.serverGrowth = params.serverGrowth != null ? params.serverGrowth : 1; //Integer from 0 to 100. Affects money increase from grow()\n\n //Port information, required for porthacking servers to get admin rights\n this.numOpenPortsRequired = params.numOpenPortsRequired != null ? params.numOpenPortsRequired : 5;\n }\n\n /**\n * Ensures that the server's difficulty (server security) doesn't get too high\n */\n capDifficulty(): void {\n if (this.hackDifficulty < this.minDifficulty) {\n this.hackDifficulty = this.minDifficulty;\n }\n if (this.hackDifficulty < 1) {\n this.hackDifficulty = 1;\n }\n\n // Place some arbitrarily limit that realistically should never happen unless someone is\n // screwing around with the game\n if (this.hackDifficulty > 100) {\n this.hackDifficulty = 100;\n }\n }\n\n /**\n * Change this server's minimum security\n * @param n - Value by which to increase/decrease the server's minimum security\n * @param perc - Whether it should be changed by a percentage, or a flat value\n */\n changeMinimumSecurity(n: number, perc = false): void {\n if (perc) {\n this.minDifficulty *= n;\n } else {\n this.minDifficulty += n;\n }\n\n // Server security cannot go below 1\n this.minDifficulty = Math.max(1, this.minDifficulty);\n }\n\n /**\n * Change this server's maximum money\n * @param n - Value by which to change the server's maximum money\n */\n changeMaximumMoney(n: number): void {\n const softCap = 10e12;\n if (this.moneyMax > softCap) {\n const aboveCap = this.moneyMax - softCap;\n n = 1 + (n - 1) / Math.log(aboveCap) / Math.log(8);\n }\n\n this.moneyMax *= n;\n }\n\n /**\n * Strengthens a server's security level (difficulty) by the specified amount\n */\n fortify(amt: number): void {\n this.hackDifficulty += amt;\n this.capDifficulty();\n }\n\n /**\n * Lowers the server's security level (difficulty) by the specified amount)\n */\n weaken(amt: number): void {\n this.hackDifficulty -= amt * BitNodeMultipliers.ServerWeakenRate;\n this.capDifficulty();\n }\n\n /**\n * Serialize the current object to a JSON save state\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Server\", this);\n }\n\n // Initializes a Server Object from a JSON save state\n static fromJSON(value: IReviverValue): Server {\n return Generic_fromJSON(Server, value.data);\n }\n}\n\nReviver.constructors.Server = Server;\n","import React, { useContext } from \"react\";\nimport { ICorporation } from \"../ICorporation\";\nimport { IIndustry } from \"../IIndustry\";\n\nexport const Context: {\n Corporation: React.Context;\n Division: React.Context;\n} = {\n Corporation: React.createContext({} as ICorporation),\n Division: React.createContext({} as IIndustry),\n};\n\nexport const useCorporation = (): ICorporation => useContext(Context.Corporation);\nexport const useDivision = (): IIndustry => useContext(Context.Division);\n","import React from \"react\";\nimport { ResearchTree } from \"./ResearchTree\";\nimport { ICorporation } from \"./ICorporation\";\nimport { getBaseResearchTreeCopy, getProductIndustryResearchTreeCopy } from \"./data/BaseResearchTree\";\nimport { MoneyCost } from \"./ui/MoneyCost\";\n\ninterface IIndustryMap {\n [key: string]: T | undefined;\n Energy: T;\n Utilities: T;\n Agriculture: T;\n Fishing: T;\n Mining: T;\n Food: T;\n Tobacco: T;\n Chemical: T;\n Pharmaceutical: T;\n Computer: T;\n Robotics: T;\n Software: T;\n Healthcare: T;\n RealEstate: T;\n}\n\n// Map of official names for each Industry\nexport const Industries: IIndustryMap = {\n Energy: \"Energy\",\n Utilities: \"Water Utilities\",\n Agriculture: \"Agriculture\",\n Fishing: \"Fishing\",\n Mining: \"Mining\",\n Food: \"Food\",\n Tobacco: \"Tobacco\",\n Chemical: \"Chemical\",\n Pharmaceutical: \"Pharmaceutical\",\n Computer: \"Computer Hardware\",\n Robotics: \"Robotics\",\n Software: \"Software\",\n Healthcare: \"Healthcare\",\n RealEstate: \"RealEstate\",\n};\n\n// Map of how much money it takes to start each industry\nexport const IndustryStartingCosts: IIndustryMap = {\n Energy: 225e9,\n Utilities: 150e9,\n Agriculture: 40e9,\n Fishing: 80e9,\n Mining: 300e9,\n Food: 10e9,\n Tobacco: 20e9,\n Chemical: 70e9,\n Pharmaceutical: 200e9,\n Computer: 500e9,\n Robotics: 1e12,\n Software: 25e9,\n Healthcare: 750e9,\n RealEstate: 600e9,\n};\n\n// Map of description for each industry\nexport const IndustryDescriptions: IIndustryMap<(corp: ICorporation) => React.ReactElement> = {\n Energy: (corp: ICorporation) => (\n <>\n Engage in the production and distribution of energy.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Utilities: (corp: ICorporation) => (\n <>\n Distribute water and provide wastewater services.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Agriculture: (corp: ICorporation) => (\n <>\n Cultivate crops and breed livestock to produce food.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Fishing: (corp: ICorporation) => (\n <>\n Produce food through the breeding and processing of fish and fish products.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Mining: (corp: ICorporation) => (\n <>\n Extract and process metals from the earth.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Food: (corp: ICorporation) => (\n <>\n Create your own restaurants all around the world.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Tobacco: (corp: ICorporation) => (\n <>\n Create and distribute tobacco and tobacco-related products.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Chemical: (corp: ICorporation) => (\n <>\n Produce industrial chemicals.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Pharmaceutical: (corp: ICorporation) => (\n <>\n Discover, develop, and create new pharmaceutical drugs.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Computer: (corp: ICorporation) => (\n <>\n Develop and manufacture new computer hardware and networking infrastructures.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Robotics: (corp: ICorporation) => (\n <>\n Develop and create robots.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Software: (corp: ICorporation) => (\n <>\n Develop computer software and create AI Cores.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Healthcare: (corp: ICorporation) => (\n <>\n Create and manage hospitals.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n RealEstate: (corp: ICorporation) => (\n <>\n Develop and manage real estate properties.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n};\n\n// Map of available Research for each Industry. This data is held in a\n// ResearchTree object\nexport const IndustryResearchTrees: IIndustryMap = {\n Energy: getBaseResearchTreeCopy(),\n Utilities: getBaseResearchTreeCopy(),\n Agriculture: getBaseResearchTreeCopy(),\n Fishing: getBaseResearchTreeCopy(),\n Mining: getBaseResearchTreeCopy(),\n Food: getProductIndustryResearchTreeCopy(),\n Tobacco: getProductIndustryResearchTreeCopy(),\n Chemical: getBaseResearchTreeCopy(),\n Pharmaceutical: getProductIndustryResearchTreeCopy(),\n Computer: getProductIndustryResearchTreeCopy(),\n Robotics: getProductIndustryResearchTreeCopy(),\n Software: getProductIndustryResearchTreeCopy(),\n Healthcare: getProductIndustryResearchTreeCopy(),\n RealEstate: getProductIndustryResearchTreeCopy(),\n};\n\nexport function resetIndustryResearchTrees(): void {\n IndustryResearchTrees.Energy = getBaseResearchTreeCopy();\n IndustryResearchTrees.Utilities = getBaseResearchTreeCopy();\n IndustryResearchTrees.Agriculture = getBaseResearchTreeCopy();\n IndustryResearchTrees.Fishing = getBaseResearchTreeCopy();\n IndustryResearchTrees.Mining = getBaseResearchTreeCopy();\n IndustryResearchTrees.Food = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Tobacco = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Chemical = getBaseResearchTreeCopy();\n IndustryResearchTrees.Pharmaceutical = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Computer = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Robotics = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Software = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Healthcare = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.RealEstate = getProductIndustryResearchTreeCopy();\n}\n","/**\n * Enum defining the different types of possible locations\n */\nexport enum LocationType {\n Company,\n Gym,\n Hospital,\n Slums,\n Special, // This location has special options/activities (e.g. Bladeburner, Re-sleeving)\n StockMarket,\n TechVendor,\n TravelAgency,\n University,\n Casino,\n}\n","import React from \"react\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { CONSTANTS } from \"../Constants\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Money } from \"../ui/React/Money\";\nimport { convertTimeMsToTimeElapsedString } from \"../utils/StringHelperFunctions\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { calculateClassEarnings as calculateClassEarningsRate } from \"./formulas/Class\";\nimport { Work, WorkType } from \"./Work\";\nimport { applyWorkStats, newWorkStats, sumWorkStats, WorkStats } from \"./WorkStats\";\n\nexport enum ClassType {\n StudyComputerScience = \"STUDYCOMPUTERSCIENCE\",\n DataStructures = \"DATASTRUCTURES\",\n Networks = \"NETWORKS\",\n Algorithms = \"ALGORITHMS\",\n\n Management = \"MANAGEMENT\",\n Leadership = \"LEADERSHIP\",\n\n GymStrength = \"GYMSTRENGTH\",\n GymDefense = \"GYMDEFENSE\",\n GymDexterity = \"GYMDEXTERITY\",\n GymAgility = \"GYMAGILITY\",\n}\n\nexport interface Class {\n youAreCurrently: string;\n type: ClassType;\n earnings: WorkStats;\n}\n\nexport const Classes: Record = {\n [ClassType.StudyComputerScience]: {\n youAreCurrently: \"studying Computer Science\",\n type: ClassType.StudyComputerScience,\n earnings: newWorkStats({ hackExp: 0.5, intExp: 0.01 }),\n },\n [ClassType.DataStructures]: {\n youAreCurrently: \"taking a Data Structures course\",\n type: ClassType.DataStructures,\n earnings: newWorkStats({\n money: -40,\n hackExp: 1,\n intExp: 0.01,\n }),\n },\n [ClassType.Networks]: {\n youAreCurrently: \"taking a Networks course\",\n type: ClassType.Networks,\n earnings: newWorkStats({\n money: -80,\n hackExp: 2,\n intExp: 0.01,\n }),\n },\n [ClassType.Algorithms]: {\n youAreCurrently: \"taking an Algorithms course\",\n type: ClassType.Algorithms,\n earnings: newWorkStats({\n money: -320,\n hackExp: 4,\n intExp: 0.01,\n }),\n },\n [ClassType.Management]: {\n youAreCurrently: \"taking a Management course\",\n type: ClassType.Management,\n earnings: newWorkStats({\n money: -160,\n chaExp: 2,\n intExp: 0.01,\n }),\n },\n [ClassType.Leadership]: {\n youAreCurrently: \"taking a Leadership course\",\n type: ClassType.Leadership,\n earnings: newWorkStats({\n money: -320,\n chaExp: 4,\n intExp: 0.01,\n }),\n },\n [ClassType.GymStrength]: {\n youAreCurrently: \"training your strength at a gym\",\n type: ClassType.GymStrength,\n earnings: newWorkStats({\n money: -120,\n strExp: 1,\n }),\n },\n [ClassType.GymDefense]: {\n youAreCurrently: \"training your defense at a gym\",\n type: ClassType.GymDefense,\n earnings: newWorkStats({\n money: -120,\n defExp: 1,\n }),\n },\n [ClassType.GymDexterity]: {\n youAreCurrently: \"training your dexterity at a gym\",\n type: ClassType.GymDexterity,\n earnings: newWorkStats({\n money: -120,\n dexExp: 1,\n }),\n },\n [ClassType.GymAgility]: {\n youAreCurrently: \"training your agility at a gym\",\n type: ClassType.GymAgility,\n earnings: newWorkStats({\n money: -120,\n agiExp: 1,\n }),\n },\n};\n\ninterface ClassWorkParams {\n classType: ClassType;\n location: LocationName;\n singularity: boolean;\n}\n\nexport const isClassWork = (w: Work | null): w is ClassWork => w !== null && w.type === WorkType.CLASS;\n\nexport class ClassWork extends Work {\n classType: ClassType;\n location: LocationName;\n earnings = newWorkStats();\n\n constructor(params?: ClassWorkParams) {\n super(WorkType.CLASS, params?.singularity ?? true);\n this.classType = params?.classType ?? ClassType.StudyComputerScience;\n this.location = params?.location ?? LocationName.Sector12RothmanUniversity;\n }\n\n isGym(): boolean {\n return [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymDexterity, ClassType.GymStrength].includes(\n this.classType,\n );\n }\n\n getClass(): Class {\n return Classes[this.classType];\n }\n\n calculateRates(player: IPlayer): WorkStats {\n return calculateClassEarningsRate(player, player, this.classType, this.location);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n const rate = this.calculateRates(player);\n const earnings = applyWorkStats(player, player, rate, cycles, \"class\");\n this.earnings = sumWorkStats(this.earnings, earnings);\n return false;\n }\n\n finish(): void {\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n After {this.getClass().youAreCurrently} for{\" \"}\n {convertTimeMsToTimeElapsedString(this.cyclesWorked * CONSTANTS._idleSpeed)}, \n you spent a total of . \n \n You earned a total of: \n {numeralWrapper.formatExp(this.earnings.hackExp)} hacking exp \n {numeralWrapper.formatExp(this.earnings.strExp)} strength exp \n {numeralWrapper.formatExp(this.earnings.defExp)} defense exp \n {numeralWrapper.formatExp(this.earnings.dexExp)} dexterity exp \n {numeralWrapper.formatExp(this.earnings.agiExp)} agility exp \n {numeralWrapper.formatExp(this.earnings.chaExp)} charisma exp\n \n >,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n classType: this.classType,\n location: this.location,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ClassWork\", this);\n }\n\n /**\n * Initiatizes a ClassWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): ClassWork {\n return Generic_fromJSON(ClassWork, value.data);\n }\n}\n\nReviver.constructors.ClassWork = ClassWork;\n","/**\n * Generic helper/utility functions for the Hacknet mechanic:\n * - Purchase nodes/upgrades\n * - Calculating maximum number of upgrades\n * - Processing Hacknet earnings\n * - Updating Hash Manager capacity\n * - Purchasing hash upgrades\n *\n * TODO Should probably split the different types of functions into their own modules\n */\nimport { HacknetNode } from \"./HacknetNode\";\nimport { calculateNodeCost } from \"./formulas/HacknetNodes\";\nimport { calculateServerCost } from \"./formulas/HacknetServers\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"./data/Constants\";\nimport { HacknetServer } from \"./HacknetServer\";\nimport { HashManager } from \"./HashManager\";\nimport { HashUpgrades } from \"./HashUpgrades\";\n\nimport { generateRandomContract } from \"../CodingContractGenerator\";\nimport { iTutorialSteps, iTutorialNextStep, ITutorial } from \"../InteractiveTutorial\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { Server } from \"../Server/Server\";\n\n// Returns a boolean indicating whether the player has Hacknet Servers\n// (the upgraded form of Hacknet Nodes)\nexport function hasHacknetServers(player: IPlayer): boolean {\n return player.bitNodeN === 9 || player.sourceFileLvl(9) > 0;\n}\n\nexport function purchaseHacknet(player: IPlayer): number {\n /* INTERACTIVE TUTORIAL */\n if (ITutorial.isRunning) {\n if (ITutorial.currStep === iTutorialSteps.HacknetNodesIntroduction) {\n iTutorialNextStep();\n } else {\n return -1;\n }\n }\n /* END INTERACTIVE TUTORIAL */\n\n const numOwned = player.hacknetNodes.length;\n if (hasHacknetServers(player)) {\n const cost = getCostOfNextHacknetServer(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetServer is NaN`);\n }\n\n if (!player.canAfford(cost) || numOwned >= HacknetServerConstants.MaxServers) {\n return -1;\n }\n player.loseMoney(cost, \"hacknet_expenses\");\n player.createHacknetServer();\n updateHashManagerCapacity(player);\n\n return numOwned;\n } else {\n const cost = getCostOfNextHacknetNode(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetNode is NaN`);\n }\n\n if (!player.canAfford(cost)) {\n return -1;\n }\n\n // Auto generate a name for the Node\n const name = \"hacknet-node-\" + numOwned;\n const node = new HacknetNode(name, player.mults.hacknet_node_money);\n\n player.loseMoney(cost, \"hacknet_expenses\");\n player.hacknetNodes.push(node);\n\n return numOwned;\n }\n}\n\nexport function hasMaxNumberHacknetServers(player: IPlayer): boolean {\n return hasHacknetServers(player) && player.hacknetNodes.length >= HacknetServerConstants.MaxServers;\n}\n\nexport function getCostOfNextHacknetNode(player: IPlayer): number {\n return calculateNodeCost(player.hacknetNodes.length + 1, player.mults.hacknet_node_purchase_cost);\n}\n\nexport function getCostOfNextHacknetServer(player: IPlayer): number {\n return calculateServerCost(player.hacknetNodes.length + 1, player.mults.hacknet_node_purchase_cost);\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's level\nexport function getMaxNumberLevelUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberLevelUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateLevelUpgradeCost(1, player.mults.hacknet_node_level_cost)) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.level;\n if (player.money > nodeObj.calculateLevelUpgradeCost(levelsToMax, player.mults.hacknet_node_level_cost)) {\n return levelsToMax;\n }\n\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr !== maxLevel &&\n player.money > nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost) &&\n player.money < nodeObj.calculateLevelUpgradeCost(curr + 1, player.mults.hacknet_node_level_cost)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateLevelUpgradeCost(curr, player.mults.hacknet_node_level_cost)) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's RAM\nexport function getMaxNumberRamUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberRamUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateRamUpgradeCost(1, player.mults.hacknet_node_ram_cost)) {\n return 0;\n }\n\n let levelsToMax;\n if (nodeObj instanceof HacknetServer) {\n levelsToMax = Math.round(Math.log2(maxLevel / nodeObj.maxRam));\n } else {\n levelsToMax = Math.round(Math.log2(maxLevel / nodeObj.ram));\n }\n if (player.money > nodeObj.calculateRamUpgradeCost(levelsToMax, player.mults.hacknet_node_ram_cost)) {\n return levelsToMax;\n }\n\n //We'll just loop until we find the max\n for (let i = levelsToMax - 1; i >= 0; --i) {\n if (player.money > nodeObj.calculateRamUpgradeCost(i, player.mults.hacknet_node_ram_cost)) {\n return i;\n }\n }\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's cores\nexport function getMaxNumberCoreUpgrades(\n player: IPlayer,\n nodeObj: HacknetNode | HacknetServer,\n maxLevel: number,\n): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberCoreUpgrades() called without maxLevel arg`);\n }\n\n if (player.money < nodeObj.calculateCoreUpgradeCost(1, player.mults.hacknet_node_core_cost)) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.cores;\n if (player.money > nodeObj.calculateCoreUpgradeCost(levelsToMax, player.mults.hacknet_node_core_cost)) {\n return levelsToMax;\n }\n\n // Use a binary search to find the max possible number of upgrades\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr != maxLevel &&\n player.money > nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost) &&\n player.money < nodeObj.calculateCoreUpgradeCost(curr + 1, player.mults.hacknet_node_core_cost)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateCoreUpgradeCost(curr, player.mults.hacknet_node_core_cost)) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n\n return 0;\n}\n\n// Calculate the maximum number of times the Player can afford to upgrade a Hacknet Node's cache\nexport function getMaxNumberCacheUpgrades(player: IPlayer, nodeObj: HacknetServer, maxLevel: number): number {\n if (maxLevel == null) {\n throw new Error(`getMaxNumberCacheUpgrades() called without maxLevel arg`);\n }\n\n if (!player.canAfford(nodeObj.calculateCacheUpgradeCost(1))) {\n return 0;\n }\n\n let min = 1;\n let max = maxLevel - 1;\n const levelsToMax = maxLevel - nodeObj.cache;\n if (player.canAfford(nodeObj.calculateCacheUpgradeCost(levelsToMax))) {\n return levelsToMax;\n }\n\n // Use a binary search to find the max possible number of upgrades\n while (min <= max) {\n const curr = ((min + max) / 2) | 0;\n if (\n curr != maxLevel &&\n player.canAfford(nodeObj.calculateCacheUpgradeCost(curr)) &&\n !player.canAfford(nodeObj.calculateCacheUpgradeCost(curr + 1))\n ) {\n return Math.min(levelsToMax, curr);\n } else if (!player.canAfford(nodeObj.calculateCacheUpgradeCost(curr))) {\n max = curr - 1;\n } else if (player.canAfford(nodeObj.calculateCacheUpgradeCost(curr))) {\n min = curr + 1;\n } else {\n return Math.min(levelsToMax, curr);\n }\n }\n\n return 0;\n}\n\nexport function purchaseLevelUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateLevelUpgradeCost(sanitizedLevels, player.mults.hacknet_node_level_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n const isServer = node instanceof HacknetServer;\n\n // If we're at max level, return false\n if (node.level >= (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel)) {\n return false;\n }\n\n // If the number of specified upgrades would exceed the max level, calculate\n // the maximum number of upgrades and use that\n if (node.level + sanitizedLevels > (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel)) {\n const diff = Math.max(0, (isServer ? HacknetServerConstants.MaxLevel : HacknetNodeConstants.MaxLevel) - node.level);\n return purchaseLevelUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeLevel(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseRamUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateRamUpgradeCost(sanitizedLevels, player.mults.hacknet_node_ram_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n if (node instanceof HacknetServer && node.maxRam >= HacknetServerConstants.MaxRam) {\n return false;\n }\n\n if (node instanceof HacknetNode && node.ram >= HacknetNodeConstants.MaxRam) {\n return false;\n }\n\n // If the number of specified upgrades would exceed the max RAM, calculate the\n // max possible number of upgrades and use that\n if (node instanceof HacknetServer) {\n if (node.maxRam * Math.pow(2, sanitizedLevels) > HacknetServerConstants.MaxRam) {\n const diff = Math.max(0, Math.log2(Math.round(HacknetServerConstants.MaxRam / node.maxRam)));\n return purchaseRamUpgrade(player, node, diff);\n }\n } else if (node instanceof HacknetNode) {\n if (node.ram * Math.pow(2, sanitizedLevels) > HacknetNodeConstants.MaxRam) {\n const diff = Math.max(0, Math.log2(Math.round(HacknetNodeConstants.MaxRam / node.ram)));\n return purchaseRamUpgrade(player, node, diff);\n }\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeRam(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseCoreUpgrade(player: IPlayer, node: HacknetNode | HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateCoreUpgradeCost(sanitizedLevels, player.mults.hacknet_node_core_cost);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n const isServer = node instanceof HacknetServer;\n\n // Fail if we're already at max\n if (node.cores >= (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores)) {\n return false;\n }\n\n // If the specified number of upgrades would exceed the max Cores, calculate\n // the max possible number of upgrades and use that\n if (node.cores + sanitizedLevels > (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores)) {\n const diff = Math.max(0, (isServer ? HacknetServerConstants.MaxCores : HacknetNodeConstants.MaxCores) - node.cores);\n return purchaseCoreUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeCore(sanitizedLevels, player.mults.hacknet_node_money);\n\n return true;\n}\n\nexport function purchaseCacheUpgrade(player: IPlayer, node: HacknetServer, levels = 1): boolean {\n const sanitizedLevels = Math.round(levels);\n const cost = node.calculateCacheUpgradeCost(sanitizedLevels);\n if (isNaN(cost) || cost <= 0 || sanitizedLevels < 0) {\n return false;\n }\n\n if (!(node instanceof HacknetServer)) {\n console.warn(`purchaseCacheUpgrade() called for a non-HacknetNode`);\n return false;\n }\n\n // Fail if we're already at max\n if (node.cache + sanitizedLevels > HacknetServerConstants.MaxCache) {\n const diff = Math.max(0, HacknetServerConstants.MaxCache - node.cache);\n return purchaseCacheUpgrade(player, node, diff);\n }\n\n if (!player.canAfford(cost)) {\n return false;\n }\n\n player.loseMoney(cost, \"hacknet_expenses\");\n node.upgradeCache(sanitizedLevels);\n\n return true;\n}\n\nexport function processHacknetEarnings(player: IPlayer, numCycles: number): number {\n // Determine if player has Hacknet Nodes or Hacknet Servers, then\n // call the appropriate function\n if (player.hacknetNodes.length === 0) {\n return 0;\n }\n if (hasHacknetServers(player)) {\n return processAllHacknetServerEarnings(player, numCycles);\n } else if (player.hacknetNodes[0] instanceof HacknetNode) {\n return processAllHacknetNodeEarnings(player, numCycles);\n } else {\n return 0;\n }\n}\n\nfunction processAllHacknetNodeEarnings(player: IPlayer, numCycles: number): number {\n let total = 0;\n for (let i = 0; i < player.hacknetNodes.length; ++i) {\n const node = player.hacknetNodes[i];\n if (typeof node === \"string\") throw new Error(\"player node should not be ip string\");\n total += processSingleHacknetNodeEarnings(player, numCycles, node);\n }\n\n return total;\n}\n\nfunction processSingleHacknetNodeEarnings(player: IPlayer, numCycles: number, nodeObj: HacknetNode): number {\n const totalEarnings = nodeObj.process(numCycles);\n player.gainMoney(totalEarnings, \"hacknet\");\n\n return totalEarnings;\n}\n\nfunction processAllHacknetServerEarnings(player: IPlayer, numCycles: number): number {\n if (!(player.hashManager instanceof HashManager)) {\n throw new Error(`Player does not have a HashManager (should be in 'hashManager' prop)`);\n }\n\n let hashes = 0;\n for (let i = 0; i < player.hacknetNodes.length; ++i) {\n // hacknetNodes array only contains the IP addresses of the servers.\n // Also, update the hash rate before processing\n const ip = player.hacknetNodes[i];\n if (ip instanceof HacknetNode) throw new Error(`player nodes should not be HacketNode`);\n const hserver = GetServer(ip);\n if (!(hserver instanceof HacknetServer)) throw new Error(`player nodes shoud not be Server`);\n hserver.updateHashRate(player.mults.hacknet_node_money);\n const h = hserver.process(numCycles);\n hashes += h;\n }\n\n const wastedHashes = player.hashManager.storeHashes(hashes);\n if (wastedHashes > 0) {\n const upgrade = HashUpgrades[\"Sell for Money\"];\n if (upgrade === null) throw new Error(\"Could not get the hash upgrade\");\n if (!upgrade.cost) throw new Error(\"Upgrade is not properly configured\");\n\n const multiplier = wastedHashes / upgrade.cost;\n if (multiplier > 0) {\n player.gainMoney(upgrade.value * multiplier, \"hacknet\");\n }\n }\n\n return hashes;\n}\n\nexport function updateHashManagerCapacity(player: IPlayer): void {\n if (!(player.hashManager instanceof HashManager)) {\n console.error(`Player does not have a HashManager`);\n return;\n }\n\n const nodes = player.hacknetNodes;\n if (nodes.length === 0) {\n player.hashManager.updateCapacity(0);\n return;\n }\n\n let total = 0;\n for (let i = 0; i < nodes.length; ++i) {\n if (typeof nodes[i] !== \"string\") {\n player.hashManager.updateCapacity(0);\n return;\n }\n const ip = nodes[i];\n if (ip instanceof HacknetNode) throw new Error(`player nodes should be string but isn't`);\n const h = GetServer(ip);\n if (!(h instanceof HacknetServer)) {\n player.hashManager.updateCapacity(0);\n return;\n }\n\n total += h.hashCapacity;\n }\n\n player.hashManager.updateCapacity(total);\n}\n\nexport function purchaseHashUpgrade(player: IPlayer, upgName: string, upgTarget: string, count = 1): boolean {\n if (!(player.hashManager instanceof HashManager)) {\n console.error(`Player does not have a HashManager`);\n return false;\n }\n\n // HashManager handles the transaction. This just needs to actually implement\n // the effects of the upgrade\n if (player.hashManager.upgrade(upgName, count)) {\n const upg = HashUpgrades[upgName];\n\n switch (upgName) {\n case \"Sell for Money\": {\n player.gainMoney(upg.value * count, \"hacknet\");\n break;\n }\n case \"Sell for Corporation Funds\": {\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n corp.funds = corp.funds + upg.value * count;\n break;\n }\n case \"Reduce Minimum Security\": {\n try {\n const target = GetServer(upgTarget);\n if (target == null) {\n console.error(`Invalid target specified in purchaseHashUpgrade(): ${upgTarget}`);\n throw new Error(`'${upgTarget}' is not a server.`);\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n target.changeMinimumSecurity(upg.value ** count, true);\n } catch (e) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n break;\n }\n case \"Increase Maximum Money\": {\n try {\n const target = GetServer(upgTarget);\n if (target == null) {\n console.error(`Invalid target specified in purchaseHashUpgrade(): ${upgTarget}`);\n throw new Error(`'${upgTarget}' is not a server.`);\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n //Manually loop the change so as to properly handle the softcap\n for (let i = 0; i < count; i++) {\n target.changeMaximumMoney(upg.value);\n }\n } catch (e) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n break;\n }\n case \"Improve Studying\": {\n // Multiplier handled by HashManager\n break;\n }\n case \"Improve Gym Training\": {\n // Multiplier handled by HashManager\n break;\n }\n case \"Exchange for Corporation Research\": {\n // This will throw if player doesn't have a corporation\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n for (const division of corp.divisions) {\n division.sciResearch.qty += upg.value * count;\n }\n break;\n }\n case \"Exchange for Bladeburner Rank\": {\n // This will throw if player isnt in Bladeburner\n const bladeburner = player.bladeburner;\n if (bladeburner === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n bladeburner.changeRank(player, upg.value * count);\n break;\n }\n case \"Exchange for Bladeburner SP\": {\n // This will throw if player isnt in Bladeburner\n const bladeburner = player.bladeburner;\n if (bladeburner === null) {\n player.hashManager.refundUpgrade(upgName, count);\n return false;\n }\n\n bladeburner.skillPoints += upg.value * count;\n break;\n }\n case \"Generate Coding Contract\": {\n for (let i = 0; i < count; i++) {\n generateRandomContract();\n }\n break;\n }\n default:\n console.warn(`Unrecognized upgrade name ${upgName}. Upgrade has no effect`);\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n","import { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { IndustryStartingCosts, IndustryResearchTrees } from \"./IndustryData\";\nimport { Industry } from \"./Industry\";\nimport { CorporationConstants } from \"./data/Constants\";\nimport { OfficeSpace } from \"./OfficeSpace\";\nimport { Material } from \"./Material\";\nimport { Product } from \"./Product\";\nimport { Warehouse } from \"./Warehouse\";\nimport { CorporationUnlockUpgrade } from \"./data/CorporationUnlockUpgrades\";\nimport { CorporationUpgrade } from \"./data/CorporationUpgrades\";\nimport { Cities } from \"../Locations/Cities\";\nimport { EmployeePositions } from \"./EmployeePositions\";\nimport { ResearchMap } from \"./ResearchMap\";\nimport { isRelevantMaterial } from \"./ui/Helpers\";\n\nexport function NewIndustry(corporation: ICorporation, industry: string, name: string): void {\n if (corporation.divisions.find(({ type }) => industry == type))\n throw new Error(`You have already expanded into the ${industry} industry!`);\n\n for (let i = 0; i < corporation.divisions.length; ++i) {\n if (corporation.divisions[i].name === name) {\n throw new Error(\"This division name is already in use!\");\n }\n }\n\n const cost = IndustryStartingCosts[industry];\n if (cost === undefined) {\n throw new Error(`Invalid industry: '${industry}'`);\n }\n if (corporation.funds < cost) {\n throw new Error(\"Not enough money to create a new division in this industry\");\n } else if (name === \"\") {\n throw new Error(\"New division must have a name!\");\n } else {\n corporation.funds = corporation.funds - cost;\n corporation.divisions.push(\n new Industry({\n corp: corporation,\n name: name,\n type: industry,\n }),\n );\n }\n}\n\nexport function NewCity(corporation: ICorporation, division: IIndustry, city: string): void {\n if (corporation.funds < CorporationConstants.OfficeInitialCost) {\n throw new Error(\"You don't have enough company funds to open a new office!\");\n }\n if (division.offices[city]) {\n throw new Error(`You have already expanded into ${city} for ${division.name}`);\n }\n corporation.funds = corporation.funds - CorporationConstants.OfficeInitialCost;\n division.offices[city] = new OfficeSpace({\n loc: city,\n size: CorporationConstants.OfficeInitialSize,\n });\n}\n\nexport function UnlockUpgrade(corporation: ICorporation, upgrade: CorporationUnlockUpgrade): void {\n if (corporation.funds < upgrade.price) {\n throw new Error(\"Insufficient funds\");\n }\n if (corporation.unlockUpgrades[upgrade.index] === 1) {\n throw new Error(`You have already unlocked the ${upgrade.name} upgrade!`);\n }\n corporation.unlock(upgrade);\n}\n\nexport function LevelUpgrade(corporation: ICorporation, upgrade: CorporationUpgrade): void {\n const baseCost = upgrade.basePrice;\n const priceMult = upgrade.priceMult;\n const level = corporation.upgrades[upgrade.index];\n const cost = baseCost * Math.pow(priceMult, level);\n if (corporation.funds < cost) {\n throw new Error(\"Insufficient funds\");\n } else {\n corporation.upgrade(upgrade);\n }\n}\n\nexport function IssueDividends(corporation: ICorporation, rate: number): void {\n if (isNaN(rate) || rate < 0 || rate > CorporationConstants.DividendMaxRate) {\n throw new Error(`Invalid value. Must be an number between 0 and ${CorporationConstants.DividendMaxRate}`);\n }\n\n corporation.dividendRate = rate;\n}\n\nexport function SellMaterial(mat: Material, amt: string, price: string): void {\n if (price === \"\") price = \"0\";\n if (amt === \"\") amt = \"0\";\n let cost = price.replace(/\\s+/g, \"\");\n cost = cost.replace(/[^-()\\d/*+.MPe]/g, \"\"); //Sanitize cost\n let temp = cost.replace(/MP/g, mat.bCost + \"\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell price field: \" + e);\n }\n\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell price field\");\n }\n\n if (cost.includes(\"MP\")) {\n mat.sCost = cost; //Dynamically evaluated\n } else {\n mat.sCost = temp;\n }\n\n //Parse quantity\n amt = amt.toUpperCase();\n if (amt.includes(\"MAX\") || amt.includes(\"PROD\")) {\n let q = amt.replace(/\\s+/g, \"\");\n q = q.replace(/[^-()\\d/*+.MAXPROD]/g, \"\");\n let tempQty = q.replace(/MAX/g, mat.maxsll.toString());\n tempQty = tempQty.replace(/PROD/g, mat.prd.toString());\n try {\n tempQty = eval(tempQty);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell quantity field: \" + e);\n }\n\n if (tempQty == null || isNaN(parseFloat(tempQty)) || parseFloat(tempQty) < 0) {\n throw new Error(\"Invalid value or expression for sell quantity field\");\n }\n\n mat.sllman[0] = true;\n mat.sllman[1] = q; //Use sanitized input\n } else if (isNaN(parseFloat(amt)) || parseFloat(amt) < 0) {\n throw new Error(\"Invalid value for sell quantity field! Must be numeric or 'PROD' or 'MAX'\");\n } else {\n let q = parseFloat(amt);\n if (isNaN(q)) {\n q = 0;\n }\n if (q === 0) {\n mat.sllman[0] = false;\n mat.sllman[1] = 0;\n } else {\n mat.sllman[0] = true;\n mat.sllman[1] = q;\n }\n }\n}\n\nexport function SellProduct(product: Product, city: string, amt: string, price: string, all: boolean): void {\n //Parse price\n if (price.includes(\"MP\")) {\n //Dynamically evaluated quantity. First test to make sure its valid\n //Sanitize input, then replace dynamic variables with arbitrary numbers\n price = price.replace(/\\s+/g, \"\");\n price = price.replace(/[^-()\\d/*+.MP]/g, \"\");\n let temp = price.replace(/MP/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell price field: \" + e);\n }\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell price field.\");\n }\n product.sCost = price; //Use sanitized price\n } else {\n const cost = parseFloat(price);\n if (isNaN(cost)) {\n throw new Error(\"Invalid value for sell price field\");\n }\n product.sCost = cost;\n }\n\n // Array of all cities. Used later\n const cities = Object.keys(Cities);\n\n // Parse quantity\n amt = amt.toUpperCase();\n if (amt.includes(\"MAX\") || amt.includes(\"PROD\")) {\n //Dynamically evaluated quantity. First test to make sure its valid\n let qty = amt.replace(/\\s+/g, \"\");\n qty = qty.replace(/[^-()\\d/*+.MAXPROD]/g, \"\");\n let temp = qty.replace(/MAX/g, product.maxsll.toString());\n temp = temp.replace(/PROD/g, product.data[city][1].toString());\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid value or expression for sell quantity field: \" + e);\n }\n\n if (temp == null || isNaN(parseFloat(temp)) || parseFloat(temp) < 0) {\n throw new Error(\"Invalid value or expression for sell quantity field\");\n }\n if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = true;\n product.sllman[tempCity][1] = qty; //Use sanitized input\n }\n } else {\n product.sllman[city][0] = true;\n product.sllman[city][1] = qty; //Use sanitized input\n }\n } else if (isNaN(parseFloat(amt)) || parseFloat(amt) < 0) {\n throw new Error(\"Invalid value for sell quantity field! Must be numeric or 'PROD' or 'MAX'\");\n } else {\n let qty = parseFloat(amt);\n if (isNaN(qty)) {\n qty = 0;\n }\n if (qty === 0) {\n if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = false;\n product.sllman[tempCity][1] = \"\";\n }\n } else {\n product.sllman[city][0] = false;\n product.sllman[city][1] = \"\";\n }\n } else if (all) {\n for (let i = 0; i < cities.length; ++i) {\n const tempCity = cities[i];\n product.sllman[tempCity][0] = true;\n product.sllman[tempCity][1] = qty;\n }\n } else {\n product.sllman[city][0] = true;\n product.sllman[city][1] = qty;\n }\n }\n}\n\nexport function SetSmartSupply(warehouse: Warehouse, smartSupply: boolean): void {\n warehouse.smartSupplyEnabled = smartSupply;\n}\n\nexport function SetSmartSupplyUseLeftovers(warehouse: Warehouse, material: Material, useLeftover: boolean): void {\n if (!Object.keys(warehouse.smartSupplyUseLeftovers).includes(material.name.replace(/ /g, \"\")))\n throw new Error(`Invalid material '${material.name}'`);\n warehouse.smartSupplyUseLeftovers[material.name.replace(/ /g, \"\")] = useLeftover;\n}\n\nexport function BuyMaterial(material: Material, amt: number): void {\n if (isNaN(amt) || amt < 0) {\n throw new Error(`Invalid amount '${amt}' to buy material '${material.name}'`);\n }\n material.buy = amt;\n}\n\nexport function BulkPurchase(corp: ICorporation, warehouse: Warehouse, material: Material, amt: number): void {\n const matSize = MaterialSizes[material.name];\n const maxAmount = (warehouse.size - warehouse.sizeUsed) / matSize;\n if (isNaN(amt) || amt < 0) {\n throw new Error(`Invalid input amount`);\n }\n if (amt > maxAmount) {\n throw new Error(`You do not have enough warehouse size to fit this purchase`);\n }\n const cost = amt * material.bCost;\n if (corp.funds >= cost) {\n corp.funds = corp.funds - cost;\n material.qty += amt;\n } else {\n throw new Error(`You cannot afford this purchase.`);\n }\n}\n\nexport function SellShares(corporation: ICorporation, player: IPlayer, numShares: number): number {\n if (isNaN(numShares)) throw new Error(\"Invalid value for number of shares\");\n if (numShares < 0) throw new Error(\"Invalid value for number of shares\");\n if (numShares > corporation.numShares) throw new Error(\"You don't have that many shares to sell!\");\n if (!corporation.public) throw new Error(\"You haven't gone public!\");\n if (corporation.shareSaleCooldown) throw new Error(\"Share sale on cooldown!\");\n const stockSaleResults = corporation.calculateShareSale(numShares);\n const profit = stockSaleResults[0];\n const newSharePrice = stockSaleResults[1];\n const newSharesUntilUpdate = stockSaleResults[2];\n\n corporation.numShares -= numShares;\n corporation.issuedShares += numShares;\n corporation.sharePrice = newSharePrice;\n corporation.shareSalesUntilPriceUpdate = newSharesUntilUpdate;\n corporation.shareSaleCooldown = CorporationConstants.SellSharesCooldown;\n player.gainMoney(profit, \"corporation\");\n return profit;\n}\n\nexport function BuyBackShares(corporation: ICorporation, player: IPlayer, numShares: number): boolean {\n if (isNaN(numShares)) throw new Error(\"Invalid value for number of shares\");\n if (numShares < 0) throw new Error(\"Invalid value for number of shares\");\n if (numShares > corporation.issuedShares) throw new Error(\"You don't have that many shares to buy!\");\n if (!corporation.public) throw new Error(\"You haven't gone public!\");\n const buybackPrice = corporation.sharePrice * 1.1;\n if (player.money < numShares * buybackPrice) throw new Error(\"You cant afford that many shares!\");\n corporation.numShares += numShares;\n corporation.issuedShares -= numShares;\n player.loseMoney(numShares * buybackPrice, \"corporation\");\n return true;\n}\n\nexport function AssignJob(office: OfficeSpace, employeeName: string, job: string): void {\n const employee = office.employees.find((e) => e.name === employeeName);\n\n if (!employee) throw new Error(`Could not find employee '${name}'.`);\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n\n office.assignSingleJob(employee, job);\n}\n\nexport function AutoAssignJob(office: OfficeSpace, job: string, count: number): boolean {\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n\n return office.autoAssignJob(job, count);\n}\n\nexport function UpgradeOfficeSize(corp: ICorporation, office: OfficeSpace, size: number): void {\n const initialPriceMult = Math.round(office.size / CorporationConstants.OfficeInitialSize);\n const costMultiplier = 1.09;\n // Calculate cost to upgrade size by 15 employees\n let mult = 0;\n for (let i = 0; i < size / CorporationConstants.OfficeInitialSize; ++i) {\n mult += Math.pow(costMultiplier, initialPriceMult + i);\n }\n const cost = CorporationConstants.OfficeInitialCost * mult;\n if (corp.funds < cost) return;\n office.size += size;\n corp.funds = corp.funds - cost;\n}\n\nexport function BuyCoffee(corp: ICorporation, office: OfficeSpace): boolean {\n const cost = office.getCoffeeCost();\n if (corp.funds < cost) {\n return false;\n }\n\n if (!office.setCoffee()) {\n return false;\n }\n corp.funds -= cost;\n\n return true;\n}\n\nexport function ThrowParty(corp: ICorporation, office: OfficeSpace, costPerEmployee: number): number {\n const mult = 1 + costPerEmployee / 10e6;\n const cost = costPerEmployee * office.employees.length;\n if (corp.funds < cost) {\n return 0;\n }\n\n if (!office.setParty(mult)) {\n return 0;\n }\n corp.funds -= cost;\n\n return mult;\n}\n\nexport function PurchaseWarehouse(corp: ICorporation, division: IIndustry, city: string): void {\n if (corp.funds < CorporationConstants.WarehouseInitialCost) return;\n if (division.warehouses[city] instanceof Warehouse) return;\n division.warehouses[city] = new Warehouse({\n corp: corp,\n industry: division,\n loc: city,\n size: CorporationConstants.WarehouseInitialSize,\n });\n corp.funds = corp.funds - CorporationConstants.WarehouseInitialCost;\n}\n\nexport function UpgradeWarehouseCost(warehouse: Warehouse, amt: number): number {\n return Array.from(Array(amt).keys()).reduce(\n (acc, index) => acc + CorporationConstants.WarehouseUpgradeBaseCost * Math.pow(1.07, warehouse.level + 1 + index),\n 0,\n );\n}\n\nexport function UpgradeWarehouse(corp: ICorporation, division: IIndustry, warehouse: Warehouse, amt = 1): void {\n const sizeUpgradeCost = UpgradeWarehouseCost(warehouse, amt);\n if (corp.funds < sizeUpgradeCost) return;\n warehouse.level += amt;\n warehouse.updateSize(corp, division);\n corp.funds = corp.funds - sizeUpgradeCost;\n}\n\nexport function HireAdVert(corp: ICorporation, division: IIndustry): void {\n const cost = division.getAdVertCost();\n if (corp.funds < cost) return;\n corp.funds = corp.funds - cost;\n division.applyAdVert(corp);\n}\n\nexport function MakeProduct(\n corp: ICorporation,\n division: IIndustry,\n city: string,\n productName: string,\n designInvest: number,\n marketingInvest: number,\n): void {\n if (designInvest < 0) {\n designInvest = 0;\n }\n if (marketingInvest < 0) {\n marketingInvest = 0;\n }\n if (productName == null || productName === \"\") {\n throw new Error(\"You must specify a name for your product!\");\n }\n if (!division.makesProducts) {\n throw new Error(\"You cannot create products for this industry!\");\n }\n if (isNaN(designInvest)) {\n throw new Error(\"Invalid value for design investment\");\n }\n if (isNaN(marketingInvest)) {\n throw new Error(\"Invalid value for marketing investment\");\n }\n if (corp.funds < designInvest + marketingInvest) {\n throw new Error(\"You don't have enough company funds to make this large of an investment\");\n }\n let maxProducts = 3;\n if (division.hasResearch(\"uPgrade: Capacity.II\")) {\n maxProducts = 5;\n } else if (division.hasResearch(\"uPgrade: Capacity.I\")) {\n maxProducts = 4;\n }\n const products = division.products;\n if (Object.keys(products).length >= maxProducts) {\n throw new Error(`You are already at the max products (${maxProducts}) for division: ${division.name}!`);\n }\n\n const product = new Product({\n name: productName.replace(/[<>]/g, \"\").trim(), //Sanitize for HTMl elements\n createCity: city,\n designCost: designInvest,\n advCost: marketingInvest,\n });\n if (products[product.name] instanceof Product) {\n throw new Error(`You already have a product with this name!`);\n }\n\n corp.funds = corp.funds - (designInvest + marketingInvest);\n products[product.name] = product;\n}\n\nexport function Research(division: IIndustry, researchName: string): void {\n const researchTree = IndustryResearchTrees[division.type];\n if (researchTree === undefined) throw new Error(`No research tree for industry '${division.type}'`);\n const allResearch = researchTree.getAllNodes();\n if (!allResearch.includes(researchName)) throw new Error(`No research named '${researchName}'`);\n const research = ResearchMap[researchName];\n\n if (division.researched[researchName]) return;\n if (division.sciResearch.qty < research.cost)\n throw new Error(`You do not have enough Scientific Research for ${research.name}`);\n division.sciResearch.qty -= research.cost;\n\n // Get the Node from the Research Tree and set its 'researched' property\n researchTree.research(researchName);\n division.researched[researchName] = true;\n}\n\nexport function ExportMaterial(\n divisionName: string,\n cityName: string,\n material: Material,\n amt: string,\n division?: Industry,\n): void {\n // Sanitize amt\n let sanitizedAmt = amt.replace(/\\s+/g, \"\").toUpperCase();\n sanitizedAmt = sanitizedAmt.replace(/[^-()\\d/*+.MAX]/g, \"\");\n let temp = sanitizedAmt.replace(/MAX/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid expression entered for export amount: \" + e);\n }\n\n const n = parseFloat(temp);\n\n if (n == null || isNaN(n) || n < 0) {\n throw new Error(\"Invalid amount entered for export\");\n }\n\n if (!division || !isRelevantMaterial(material.name, division)) {\n throw new Error(`You cannot export material: ${material.name} to division: ${divisionName}!`);\n }\n\n const exportObj = { ind: divisionName, city: cityName, amt: sanitizedAmt };\n material.exp.push(exportObj);\n}\n\nexport function CancelExportMaterial(divisionName: string, cityName: string, material: Material, amt: string): void {\n for (let i = 0; i < material.exp.length; ++i) {\n if (material.exp[i].ind !== divisionName || material.exp[i].city !== cityName || material.exp[i].amt !== amt)\n continue;\n material.exp.splice(i, 1);\n break;\n }\n}\n\nexport function LimitProductProduction(product: Product, cityName: string, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n product.prdman[cityName][0] = false;\n product.prdman[cityName][1] = 0;\n } else {\n product.prdman[cityName][0] = true;\n product.prdman[cityName][1] = qty;\n }\n}\n\nexport function LimitMaterialProduction(material: Material, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n material.prdman[0] = false;\n material.prdman[1] = 0;\n } else {\n material.prdman[0] = true;\n material.prdman[1] = qty;\n }\n}\n\nexport function SetMaterialMarketTA1(material: Material, on: boolean): void {\n material.marketTa1 = on;\n}\n\nexport function SetMaterialMarketTA2(material: Material, on: boolean): void {\n material.marketTa2 = on;\n}\n\nexport function SetProductMarketTA1(product: Product, on: boolean): void {\n product.marketTa1 = on;\n}\n\nexport function SetProductMarketTA2(product: Product, on: boolean): void {\n product.marketTa2 = on;\n}\n","export enum BlackOperationNames {\n OperationTyphoon = \"Operation Typhoon\",\n OperationZero = \"Operation Zero\",\n OperationX = \"Operation X\",\n OperationTitan = \"Operation Titan\",\n OperationAres = \"Operation Ares\",\n OperationArchangel = \"Operation Archangel\",\n OperationJuggernaut = \"Operation Juggernaut\",\n OperationRedDragon = \"Operation Red Dragon\",\n OperationK = \"Operation K\",\n OperationDeckard = \"Operation Deckard\",\n OperationTyrell = \"Operation Tyrell\",\n OperationWallace = \"Operation Wallace\",\n OperationShoulderOfOrion = \"Operation Shoulder of Orion\",\n OperationHyron = \"Operation Hyron\",\n OperationMorpheus = \"Operation Morpheus\",\n OperationIonStorm = \"Operation Ion Storm\",\n OperationAnnihilus = \"Operation Annihilus\",\n OperationUltron = \"Operation Ultron\",\n OperationCenturion = \"Operation Centurion\",\n OperationVindictus = \"Operation Vindictus\",\n OperationDaedalus = \"Operation Daedalus\",\n}\n","import { IPlayer } from \"../IPlayer\";\nimport { PlayerObject } from \"./PlayerObject\";\nimport { applyAugmentation } from \"../../Augmentation/AugmentationHelpers\";\nimport { PlayerOwnedAugmentation } from \"../../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CodingContractRewardType, ICodingContractReward } from \"../../CodingContracts\";\nimport { Company } from \"../../Company/Company\";\nimport { Companies } from \"../../Company/Companies\";\nimport { getNextCompanyPositionHelper } from \"../../Company/GetNextCompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\nimport { CompanyPositions } from \"../../Company/CompanyPositions\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport * as posNames from \"../../Company/data/companypositionnames\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { Programs } from \"../../Programs/Programs\";\nimport { Exploit } from \"../../Exploits/Exploit\";\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\nimport { resetGangs } from \"../../Gang/AllGangs\";\nimport { Cities } from \"../../Locations/Cities\";\nimport { Locations } from \"../../Locations/Locations\";\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { Sleeve } from \"../Sleeve/Sleeve\";\nimport {\n calculateSkill as calculateSkillF,\n calculateSkillProgress as calculateSkillProgressF,\n ISkillProgress,\n} from \"../formulas/skill\";\nimport { calculateIntelligenceBonus } from \"../formulas/intelligence\";\nimport { GetServer, AddToAllServers, createUniqueRandomIp } from \"../../Server/AllServers\";\nimport { Server } from \"../../Server/Server\";\nimport { safetlyCreateUniqueServer } from \"../../Server/ServerHelpers\";\n\nimport { SpecialServers } from \"../../Server/data/SpecialServers\";\nimport { applySourceFile } from \"../../SourceFile/applySourceFile\";\nimport { applyExploit } from \"../../Exploits/applyExploits\";\nimport { SourceFiles } from \"../../SourceFile/SourceFiles\";\nimport { getHospitalizationCost } from \"../../Hospital/Hospital\";\nimport { HacknetServer } from \"../../Hacknet/HacknetServer\";\n\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { MoneySourceTracker } from \"../../utils/MoneySourceTracker\";\nimport { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\nimport { SnackbarEvents, ToastVariant } from \"../../ui/React/Snackbar\";\nimport { achievements } from \"../../Achievements/Achievements\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\nimport { ITaskTracker } from \"../ITaskTracker\";\nimport { IPerson } from \"../IPerson\";\nimport { Player } from \"../../Player\";\n\nimport { isCompanyWork } from \"../../Work/CompanyWork\";\nimport { defaultMultipliers } from \"../Multipliers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\n\nexport function init(this: IPlayer): void {\n /* Initialize Player's home computer */\n const t_homeComp = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: \"home\",\n ip: createUniqueRandomIp(),\n isConnectedTo: true,\n maxRam: 8,\n organizationName: \"Home PC\",\n purchasedByPlayer: true,\n });\n this.currentServer = SpecialServers.Home;\n AddToAllServers(t_homeComp);\n\n this.getHomeComputer().programs.push(Programs.NukeProgram.name);\n}\n\nexport function prestigeAugmentation(this: PlayerObject): void {\n this.currentServer = SpecialServers.Home;\n\n this.numPeopleKilled = 0;\n\n //Reset stats\n this.skills.hacking = 1;\n\n this.skills.strength = 1;\n this.skills.defense = 1;\n this.skills.dexterity = 1;\n this.skills.agility = 1;\n\n this.skills.charisma = 1;\n\n this.exp.hacking = 0;\n this.exp.strength = 0;\n this.exp.defense = 0;\n this.exp.dexterity = 0;\n this.exp.agility = 0;\n this.exp.charisma = 0;\n\n this.money = 1000 + CONSTANTS.Donations;\n\n this.city = CityName.Sector12;\n this.location = LocationName.TravelAgency;\n\n this.jobs = {};\n\n this.purchasedServers = [];\n\n this.factions = [];\n this.factionInvitations = [];\n\n this.queuedAugmentations = [];\n\n const numSleeves = Math.min(3, this.sourceFileLvl(10) + (this.bitNodeN === 10 ? 1 : 0)) + this.sleevesFromCovenant;\n if (this.sleeves.length > numSleeves) this.sleeves.length = numSleeves;\n for (let i = this.sleeves.length; i < numSleeves; i++) {\n this.sleeves.push(new Sleeve(this));\n }\n\n for (let i = 0; i < this.sleeves.length; ++i) {\n if (this.sleeves[i] instanceof Sleeve) {\n if (this.sleeves[i].shock >= 100) {\n this.sleeves[i].synchronize(this);\n } else {\n this.sleeves[i].shockRecovery(this);\n }\n }\n }\n\n this.lastUpdate = new Date().getTime();\n\n // Statistics Trackers\n this.playtimeSinceLastAug = 0;\n this.scriptProdSinceLastAug = 0;\n this.moneySourceA.reset();\n\n this.hacknetNodes.length = 0;\n this.hashManager.prestige();\n\n // Reapply augs, re-calculate skills and reset HP\n this.reapplyAllAugmentations(true);\n this.hp.current = this.hp.max;\n\n this.finishWork(true);\n}\n\nexport function prestigeSourceFile(this: IPlayer): void {\n this.entropy = 0;\n this.prestigeAugmentation();\n this.karma = 0;\n // Duplicate sleeves are reset to level 1 every Bit Node (but the number of sleeves you have persists)\n for (let i = 0; i < this.sleeves.length; ++i) {\n if (this.sleeves[i] instanceof Sleeve) {\n this.sleeves[i].prestige(this);\n } else {\n this.sleeves[i] = new Sleeve(this);\n }\n }\n\n if (this.bitNodeN === 10) {\n for (let i = 0; i < this.sleeves.length; i++) {\n this.sleeves[i].shock = Math.max(25, this.sleeves[i].shock);\n this.sleeves[i].sync = Math.max(25, this.sleeves[i].sync);\n }\n }\n\n // Gang\n this.gang = null;\n resetGangs();\n\n // Reset Stock market\n this.hasWseAccount = false;\n this.hasTixApiAccess = false;\n this.has4SData = false;\n this.has4SDataTixApi = false;\n\n // BitNode 3: Corporatocracy\n this.corporation = null;\n\n this.moneySourceB.reset();\n this.playtimeSinceLastBitnode = 0;\n this.augmentations = [];\n}\n\nexport function receiveInvite(this: IPlayer, factionName: string): void {\n if (this.factionInvitations.includes(factionName) || this.factions.includes(factionName)) {\n return;\n }\n this.factionInvitations.push(factionName);\n}\n\n//Calculates skill level based on experience. The same formula will be used for every skill\nexport function calculateSkill(this: IPerson, exp: number, mult = 1): number {\n return calculateSkillF(exp, mult);\n}\n\n//Calculates skill level progress based on experience. The same formula will be used for every skill\nexport function calculateSkillProgress(this: IPlayer, exp: number, mult = 1): ISkillProgress {\n return calculateSkillProgressF(exp, mult);\n}\n\nexport function updateSkillLevels(this: IPlayer): void {\n this.skills.hacking = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.hacking, this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier)),\n );\n this.skills.strength = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.strength, this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier),\n ),\n );\n this.skills.defense = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.defense, this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier)),\n );\n this.skills.dexterity = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.dexterity, this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier),\n ),\n );\n this.skills.agility = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.agility, this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier)),\n );\n this.skills.charisma = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.charisma, this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier),\n ),\n );\n\n if (this.skills.intelligence > 0) {\n this.skills.intelligence = Math.floor(this.calculateSkill(this.exp.intelligence));\n } else {\n this.skills.intelligence = 0;\n }\n\n const ratio = this.hp.current / this.hp.max;\n this.hp.max = Math.floor(10 + this.skills.defense / 10);\n this.hp.current = Math.round(this.hp.max * ratio);\n}\n\nexport function resetMultipliers(this: IPlayer): void {\n this.mults = defaultMultipliers();\n}\n\nexport function hasProgram(this: IPlayer, programName: string): boolean {\n const home = this.getHomeComputer();\n if (home == null) {\n return false;\n }\n\n for (let i = 0; i < home.programs.length; ++i) {\n if (programName.toLowerCase() == home.programs[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n}\n\nexport function setMoney(this: PlayerObject, money: number): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.setMoney()\");\n return;\n }\n this.money = money;\n}\n\nexport function gainMoney(this: PlayerObject, money: number, source: string): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.gainMoney()\");\n return;\n }\n\n this.money = this.money + money;\n this.recordMoneySource(money, source);\n}\n\nexport function loseMoney(this: PlayerObject, money: number, source: string): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.loseMoney()\");\n return;\n }\n if (this.money === Infinity && money === Infinity) return;\n this.money = this.money - money;\n this.recordMoneySource(-1 * money, source);\n}\n\nexport function canAfford(this: IPlayer, cost: number): boolean {\n if (isNaN(cost)) {\n console.error(`NaN passed into Player.canAfford()`);\n return false;\n }\n return this.money >= cost;\n}\n\nexport function recordMoneySource(this: PlayerObject, amt: number, source: string): void {\n if (!(this.moneySourceA instanceof MoneySourceTracker)) {\n console.warn(`Player.moneySourceA was not properly initialized. Resetting`);\n this.moneySourceA = new MoneySourceTracker();\n }\n if (!(this.moneySourceB instanceof MoneySourceTracker)) {\n console.warn(`Player.moneySourceB was not properly initialized. Resetting`);\n this.moneySourceB = new MoneySourceTracker();\n }\n this.moneySourceA.record(amt, source);\n this.moneySourceB.record(amt, source);\n}\n\nexport function gainHackingExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainHackingExp()\");\n return;\n }\n this.exp.hacking += exp;\n if (this.exp.hacking < 0) {\n this.exp.hacking = 0;\n }\n\n this.skills.hacking = calculateSkillF(\n this.exp.hacking,\n this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,\n );\n}\n\nexport function gainStrengthExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainStrengthExp()\");\n return;\n }\n this.exp.strength += exp;\n if (this.exp.strength < 0) {\n this.exp.strength = 0;\n }\n\n this.skills.strength = calculateSkillF(\n this.exp.strength,\n this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,\n );\n}\n\nexport function gainDefenseExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into player.gainDefenseExp()\");\n return;\n }\n this.exp.defense += exp;\n if (this.exp.defense < 0) {\n this.exp.defense = 0;\n }\n\n this.skills.defense = calculateSkillF(\n this.exp.defense,\n this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,\n );\n const ratio = this.hp.current / this.hp.max;\n this.hp.max = Math.floor(10 + this.skills.defense / 10);\n this.hp.current = Math.round(this.hp.max * ratio);\n}\n\nexport function gainDexterityExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainDexterityExp()\");\n return;\n }\n this.exp.dexterity += exp;\n if (this.exp.dexterity < 0) {\n this.exp.dexterity = 0;\n }\n\n this.skills.dexterity = calculateSkillF(\n this.exp.dexterity,\n this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,\n );\n}\n\nexport function gainAgilityExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainAgilityExp()\");\n return;\n }\n this.exp.agility += exp;\n if (this.exp.agility < 0) {\n this.exp.agility = 0;\n }\n\n this.skills.agility = calculateSkillF(\n this.exp.agility,\n this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,\n );\n}\n\nexport function gainCharismaExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainCharismaExp()\");\n return;\n }\n this.exp.charisma += exp;\n if (this.exp.charisma < 0) {\n this.exp.charisma = 0;\n }\n\n this.skills.charisma = calculateSkillF(\n this.exp.charisma,\n this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,\n );\n}\n\nexport function gainIntelligenceExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERROR: NaN passed into Player.gainIntelligenceExp()\");\n return;\n }\n if (Player.sourceFileLvl(5) > 0 || this.skills.intelligence > 0 || Player.bitNodeN === 5) {\n this.exp.intelligence += exp;\n this.skills.intelligence = Math.floor(this.calculateSkill(this.exp.intelligence, 1));\n }\n}\n\nexport function gainStats(this: IPerson, retValue: ITaskTracker): void {\n this.gainHackingExp(retValue.hack * this.mults.hacking_exp);\n this.gainStrengthExp(retValue.str * this.mults.strength_exp);\n this.gainDefenseExp(retValue.def * this.mults.defense_exp);\n this.gainDexterityExp(retValue.dex * this.mults.dexterity_exp);\n this.gainAgilityExp(retValue.agi * this.mults.agility_exp);\n this.gainCharismaExp(retValue.cha * this.mults.charisma_exp);\n this.gainIntelligenceExp(retValue.int);\n}\n\n//Given a string expression like \"str\" or \"strength\", returns the given stat\nexport function queryStatFromString(this: IPlayer, str: string): number {\n const tempStr = str.toLowerCase();\n if (tempStr.includes(\"hack\")) {\n return this.skills.hacking;\n }\n if (tempStr.includes(\"str\")) {\n return this.skills.strength;\n }\n if (tempStr.includes(\"def\")) {\n return this.skills.defense;\n }\n if (tempStr.includes(\"dex\")) {\n return this.skills.dexterity;\n }\n if (tempStr.includes(\"agi\")) {\n return this.skills.agility;\n }\n if (tempStr.includes(\"cha\")) {\n return this.skills.charisma;\n }\n if (tempStr.includes(\"int\")) {\n return this.skills.intelligence;\n }\n return 0;\n}\n\nexport function startFocusing(this: IPlayer): void {\n this.focus = true;\n}\n\nexport function stopFocusing(this: IPlayer): void {\n this.focus = false;\n}\n\n// Returns true if hospitalized, false otherwise\nexport function takeDamage(this: IPlayer, amt: number): boolean {\n if (typeof amt !== \"number\") {\n console.warn(`Player.takeDamage() called without a numeric argument: ${amt}`);\n return false;\n }\n\n this.hp.current -= amt;\n if (this.hp.current <= 0) {\n this.hospitalize();\n return true;\n } else {\n return false;\n }\n}\n\nexport function regenerateHp(this: IPerson, amt: number): void {\n if (typeof amt !== \"number\") {\n console.warn(`Player.regenerateHp() called without a numeric argument: ${amt}`);\n return;\n }\n this.hp.current += amt;\n if (this.hp.current > this.hp.max) {\n this.hp.current = this.hp.max;\n }\n}\n\nexport function hospitalize(this: IPlayer): number {\n const cost = getHospitalizationCost(this);\n SnackbarEvents.emit(`You've been Hospitalized for ${numeralWrapper.formatMoney(cost)}`, ToastVariant.WARNING, 2000);\n\n this.loseMoney(cost, \"hospitalization\");\n this.hp.current = this.hp.max;\n return cost;\n}\n\n/********* Company job application **********/\n//Determines the job that the Player should get (if any) at the current company\n//The 'sing' argument designates whether or not this is being called from\n//the applyToCompany() Netscript Singularity function\nexport function applyForJob(this: IPlayer, entryPosType: CompanyPosition, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (!(company instanceof Company)) {\n console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`);\n return false;\n }\n\n let pos = entryPosType;\n\n if (!this.isQualified(company, pos)) {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position \" + getJobRequirementText(company, pos));\n }\n return false;\n }\n\n if (!company.hasPosition(pos)) {\n console.error(`Company ${company.name} does not have position ${pos}. Player.applyToCompany() failed`);\n return false;\n }\n\n while (true) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null) break;\n if (company.hasPosition(nextPos) && this.isQualified(company, nextPos)) {\n pos = nextPos;\n } else break;\n }\n\n //Check if player already has the assigned job\n if (this.jobs[company.name] === pos.name) {\n if (!sing) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null || !company.hasPosition(nextPos)) {\n dialogBoxCreate(\"You are already at the highest position for your field! No promotion available\");\n } else {\n const reqText = getJobRequirementText(company, nextPos);\n dialogBoxCreate(\"Unfortunately, you do not qualify for a promotion \" + reqText);\n }\n }\n return false;\n }\n\n this.jobs[company.name] = pos.name;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations! You were offered a new job at \" + company.name + \" as a \" + pos.name + \"!\");\n }\n return true;\n}\n\n//Returns your next position at a company given the field (software, business, etc.)\nexport function getNextCompanyPosition(\n this: IPlayer,\n company: Company,\n entryPosType: CompanyPosition,\n): CompanyPosition | null {\n const currCompany = Companies[company.name];\n\n //Not employed at this company, so return the entry position\n if (currCompany == null || currCompany.name != company.name) {\n return entryPosType;\n }\n\n //If the entry pos type and the player's current position have the same type,\n //return the player's \"nextCompanyPosition\". Otherwise return the entryposType\n //Employed at this company, so just return the next position if it exists.\n const currentPositionName = this.jobs[company.name];\n if (!currentPositionName) return entryPosType;\n const currentPosition = CompanyPositions[currentPositionName];\n if (\n (currentPosition.isSoftwareJob() && entryPosType.isSoftwareJob()) ||\n (currentPosition.isITJob() && entryPosType.isITJob()) ||\n (currentPosition.isBusinessJob() && entryPosType.isBusinessJob()) ||\n (currentPosition.isSecurityEngineerJob() && entryPosType.isSecurityEngineerJob()) ||\n (currentPosition.isNetworkEngineerJob() && entryPosType.isNetworkEngineerJob()) ||\n (currentPosition.isSecurityJob() && entryPosType.isSecurityJob()) ||\n (currentPosition.isAgentJob() && entryPosType.isAgentJob()) ||\n (currentPosition.isSoftwareConsultantJob() && entryPosType.isSoftwareConsultantJob()) ||\n (currentPosition.isBusinessConsultantJob() && entryPosType.isBusinessConsultantJob()) ||\n (currentPosition.isPartTimeJob() && entryPosType.isPartTimeJob())\n ) {\n return getNextCompanyPositionHelper(currentPosition);\n }\n\n return entryPosType;\n}\n\nexport function quitJob(this: IPlayer, company: string): void {\n if (isCompanyWork(this.currentWork) && this.currentWork.companyName === company) {\n this.finishWork(true);\n }\n delete this.jobs[company];\n}\n\n/**\n * Method to see if the player has at least one job assigned to them\n * @param this The player instance\n * @returns Whether the user has at least one job\n */\nexport function hasJob(this: IPlayer): boolean {\n return Boolean(Object.keys(this.jobs).length);\n}\n\nexport function applyForSoftwareJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareCompanyPositions[0]], sing);\n}\n\nexport function applyForSoftwareConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForItJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.ITCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]])) {\n return this.applyForJob(CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]], sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForNetworkEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForBusinessJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessCompanyPositions[0]], sing);\n}\n\nexport function applyForBusinessConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityJob(this: IPlayer, sing = false): boolean {\n // TODO Police Jobs\n // Indexing starts at 2 because 0 is for police officer\n return this.applyForJob(CompanyPositions[posNames.SecurityCompanyPositions[2]], sing);\n}\n\nexport function applyForAgentJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.AgentCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.AgentCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForPartTimeEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed part-time at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForPartTimeWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a part-time waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\n//Checks if the Player is qualified for a certain position\nexport function isQualified(this: IPlayer, company: Company, position: CompanyPosition): boolean {\n const offset = company.jobStatReqOffset;\n const reqHacking = position.requiredHacking > 0 ? position.requiredHacking + offset : 0;\n const reqStrength = position.requiredStrength > 0 ? position.requiredStrength + offset : 0;\n const reqDefense = position.requiredDefense > 0 ? position.requiredDefense + offset : 0;\n const reqDexterity = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqAgility = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqCharisma = position.requiredCharisma > 0 ? position.requiredCharisma + offset : 0;\n\n return (\n this.skills.hacking >= reqHacking &&\n this.skills.strength >= reqStrength &&\n this.skills.defense >= reqDefense &&\n this.skills.dexterity >= reqDexterity &&\n this.skills.agility >= reqAgility &&\n this.skills.charisma >= reqCharisma &&\n company.playerReputation >= position.requiredReputation\n );\n}\n\n/********** Reapplying Augmentations and Source File ***********/\nexport function reapplyAllAugmentations(this: IPlayer, resetMultipliers = true): void {\n if (resetMultipliers) {\n this.resetMultipliers();\n }\n\n for (let i = 0; i < this.augmentations.length; ++i) {\n //Compatibility with new version\n if (this.augmentations[i].name === \"HacknetNode NIC Architecture Neural-Upload\") {\n this.augmentations[i].name = \"Hacknet Node NIC Architecture Neural-Upload\";\n }\n\n const playerAug = this.augmentations[i];\n const augName = playerAug.name;\n\n if (augName == AugmentationNames.NeuroFluxGovernor) {\n for (let j = 0; j < playerAug.level; ++j) {\n applyAugmentation(this.augmentations[i], true);\n }\n continue;\n }\n applyAugmentation(this.augmentations[i], true);\n }\n\n this.updateSkillLevels();\n}\n\nexport function reapplyAllSourceFiles(this: IPlayer): void {\n //Will always be called after reapplyAllAugmentations() so multipliers do not have to be reset\n //this.resetMultipliers();\n\n for (let i = 0; i < this.sourceFiles.length; ++i) {\n const srcFileKey = \"SourceFile\" + this.sourceFiles[i].n;\n const sourceFileObject = SourceFiles[srcFileKey];\n if (sourceFileObject == null) {\n console.error(`Invalid source file number: ${this.sourceFiles[i].n}`);\n continue;\n }\n applySourceFile(this.sourceFiles[i]);\n }\n applyExploit();\n this.updateSkillLevels();\n}\n\n/*************** Check for Faction Invitations *************/\n//This function sets the requirements to join a Faction. It checks whether the Player meets\n//those requirements and will return an array of all factions that the Player should\n//receive an invitation to\nexport function checkForFactionInvitations(this: IPlayer): Faction[] {\n const invitedFactions: Faction[] = []; //Array which will hold all Factions the player should be invited to\n\n const numAugmentations = this.augmentations.length;\n\n const allCompanies = Object.keys(this.jobs);\n const allPositions = Object.values(this.jobs);\n\n // Given a company name, safely returns the reputation (returns 0 if invalid company is specified)\n function getCompanyRep(companyName: string): number {\n const company = Companies[companyName];\n if (company == null) {\n return 0;\n } else {\n return company.playerReputation;\n }\n }\n\n // Helper function that returns a boolean indicating whether the Player meets\n // the requirements for the specified company. There are two requirements:\n // 1. High enough reputation\n // 2. Player is employed at the company\n function checkMegacorpRequirements(companyName: string): boolean {\n const serverMeta = serverMetadata.find((s) => s.specialName === companyName);\n const server = GetServer(serverMeta ? serverMeta.hostname : \"\");\n const bonus = (server as Server).backdoorInstalled ? -100e3 : 0;\n return (\n allCompanies.includes(companyName) && getCompanyRep(companyName) > CONSTANTS.CorpFactionRepRequirement + bonus\n );\n }\n\n //Illuminati\n const illuminatiFac = Factions[FactionNames.Illuminati];\n if (\n !illuminatiFac.isBanned &&\n !illuminatiFac.isMember &&\n !illuminatiFac.alreadyInvited &&\n numAugmentations >= 30 &&\n this.money >= 150000000000 &&\n this.skills.hacking >= 1500 &&\n this.skills.strength >= 1200 &&\n this.skills.defense >= 1200 &&\n this.skills.dexterity >= 1200 &&\n this.skills.agility >= 1200\n ) {\n invitedFactions.push(illuminatiFac);\n }\n\n //Daedalus\n const daedalusFac = Factions[FactionNames.Daedalus];\n if (\n !daedalusFac.isBanned &&\n !daedalusFac.isMember &&\n !daedalusFac.alreadyInvited &&\n numAugmentations >= BitNodeMultipliers.DaedalusAugsRequirement &&\n this.money >= 100000000000 &&\n (this.skills.hacking >= 2500 ||\n (this.skills.strength >= 1500 &&\n this.skills.defense >= 1500 &&\n this.skills.dexterity >= 1500 &&\n this.skills.agility >= 1500))\n ) {\n invitedFactions.push(daedalusFac);\n }\n\n //The Covenant\n const covenantFac = Factions[FactionNames.TheCovenant];\n if (\n !covenantFac.isBanned &&\n !covenantFac.isMember &&\n !covenantFac.alreadyInvited &&\n numAugmentations >= 20 &&\n this.money >= 75000000000 &&\n this.skills.hacking >= 850 &&\n this.skills.strength >= 850 &&\n this.skills.defense >= 850 &&\n this.skills.dexterity >= 850 &&\n this.skills.agility >= 850\n ) {\n invitedFactions.push(covenantFac);\n }\n\n //ECorp\n const ecorpFac = Factions[FactionNames.ECorp];\n if (\n !ecorpFac.isBanned &&\n !ecorpFac.isMember &&\n !ecorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumECorp)\n ) {\n invitedFactions.push(ecorpFac);\n }\n\n //MegaCorp\n const megacorpFac = Factions[FactionNames.MegaCorp];\n if (\n !megacorpFac.isBanned &&\n !megacorpFac.isMember &&\n !megacorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12MegaCorp)\n ) {\n invitedFactions.push(megacorpFac);\n }\n\n //Bachman & Associates\n const bachmanandassociatesFac = Factions[FactionNames.BachmanAssociates];\n if (\n !bachmanandassociatesFac.isBanned &&\n !bachmanandassociatesFac.isMember &&\n !bachmanandassociatesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumBachmanAndAssociates)\n ) {\n invitedFactions.push(bachmanandassociatesFac);\n }\n\n //Blade Industries\n const bladeindustriesFac = Factions[FactionNames.BladeIndustries];\n if (\n !bladeindustriesFac.isBanned &&\n !bladeindustriesFac.isMember &&\n !bladeindustriesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12BladeIndustries)\n ) {\n invitedFactions.push(bladeindustriesFac);\n }\n\n //NWO\n const nwoFac = Factions[FactionNames.NWO];\n if (\n !nwoFac.isBanned &&\n !nwoFac.isMember &&\n !nwoFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenNWO)\n ) {\n invitedFactions.push(nwoFac);\n }\n\n //Clarke Incorporated\n const clarkeincorporatedFac = Factions[FactionNames.ClarkeIncorporated];\n if (\n !clarkeincorporatedFac.isBanned &&\n !clarkeincorporatedFac.isMember &&\n !clarkeincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumClarkeIncorporated)\n ) {\n invitedFactions.push(clarkeincorporatedFac);\n }\n\n //OmniTek Incorporated\n const omnitekincorporatedFac = Factions[FactionNames.OmniTekIncorporated];\n if (\n !omnitekincorporatedFac.isBanned &&\n !omnitekincorporatedFac.isMember &&\n !omnitekincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenOmniTekIncorporated)\n ) {\n invitedFactions.push(omnitekincorporatedFac);\n }\n\n //Four Sigma\n const foursigmaFac = Factions[FactionNames.FourSigma];\n if (\n !foursigmaFac.isBanned &&\n !foursigmaFac.isMember &&\n !foursigmaFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12FourSigma)\n ) {\n invitedFactions.push(foursigmaFac);\n }\n\n //KuaiGong International\n const kuaigonginternationalFac = Factions[FactionNames.KuaiGongInternational];\n if (\n !kuaigonginternationalFac.isBanned &&\n !kuaigonginternationalFac.isMember &&\n !kuaigonginternationalFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.ChongqingKuaiGongInternational)\n ) {\n invitedFactions.push(kuaigonginternationalFac);\n }\n\n //Fulcrum Secret Technologies - If u've unlocked fulcrum secret technolgoies server and have a high rep with the company\n const fulcrumsecrettechonologiesFac = Factions[FactionNames.FulcrumSecretTechnologies];\n const fulcrumSecretServer = GetServer(SpecialServers.FulcrumSecretTechnologies);\n if (!(fulcrumSecretServer instanceof Server))\n throw new Error(`${FactionNames.FulcrumSecretTechnologies} should be normal server`);\n if (fulcrumSecretServer == null) {\n console.error(`Could not find ${FactionNames.FulcrumSecretTechnologies} Server`);\n } else if (\n !fulcrumsecrettechonologiesFac.isBanned &&\n !fulcrumsecrettechonologiesFac.isMember &&\n !fulcrumsecrettechonologiesFac.alreadyInvited &&\n fulcrumSecretServer.backdoorInstalled &&\n checkMegacorpRequirements(LocationName.AevumFulcrumTechnologies)\n ) {\n invitedFactions.push(fulcrumsecrettechonologiesFac);\n }\n\n //BitRunners\n const bitrunnersFac = Factions[FactionNames.BitRunners];\n const bitrunnersServer = GetServer(SpecialServers.BitRunnersServer);\n if (!(bitrunnersServer instanceof Server)) throw new Error(`${FactionNames.BitRunners} should be normal server`);\n if (bitrunnersServer == null) {\n console.error(`Could not find ${FactionNames.BitRunners} Server`);\n } else if (\n !bitrunnersFac.isBanned &&\n !bitrunnersFac.isMember &&\n bitrunnersServer.backdoorInstalled &&\n !bitrunnersFac.alreadyInvited\n ) {\n invitedFactions.push(bitrunnersFac);\n }\n\n //The Black Hand\n\n const theblackhandFac = Factions[FactionNames.TheBlackHand];\n const blackhandServer = GetServer(SpecialServers.TheBlackHandServer);\n if (!(blackhandServer instanceof Server)) throw new Error(`${FactionNames.TheBlackHand} should be normal server`);\n if (blackhandServer == null) {\n console.error(`Could not find ${FactionNames.TheBlackHand} Server`);\n } else if (\n !theblackhandFac.isBanned &&\n !theblackhandFac.isMember &&\n blackhandServer.backdoorInstalled &&\n !theblackhandFac.alreadyInvited\n ) {\n invitedFactions.push(theblackhandFac);\n }\n\n //NiteSec\n const nitesecFac = Factions[FactionNames.NiteSec];\n const nitesecServer = GetServer(SpecialServers.NiteSecServer);\n if (!(nitesecServer instanceof Server)) throw new Error(`${FactionNames.NiteSec} should be normal server`);\n if (nitesecServer == null) {\n console.error(`Could not find ${FactionNames.NiteSec} Server`);\n } else if (\n !nitesecFac.isBanned &&\n !nitesecFac.isMember &&\n nitesecServer.backdoorInstalled &&\n !nitesecFac.alreadyInvited\n ) {\n invitedFactions.push(nitesecFac);\n }\n\n //Chongqing\n const chongqingFac = Factions[FactionNames.Chongqing];\n if (\n !chongqingFac.isBanned &&\n !chongqingFac.isMember &&\n !chongqingFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.Chongqing\n ) {\n invitedFactions.push(chongqingFac);\n }\n\n //Sector-12\n const sector12Fac = Factions[FactionNames.Sector12];\n if (\n !sector12Fac.isBanned &&\n !sector12Fac.isMember &&\n !sector12Fac.alreadyInvited &&\n this.money >= 15000000 &&\n this.city == CityName.Sector12\n ) {\n invitedFactions.push(sector12Fac);\n }\n\n //New Tokyo\n const newtokyoFac = Factions[FactionNames.NewTokyo];\n if (\n !newtokyoFac.isBanned &&\n !newtokyoFac.isMember &&\n !newtokyoFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.NewTokyo\n ) {\n invitedFactions.push(newtokyoFac);\n }\n\n //Aevum\n const aevumFac = Factions[FactionNames.Aevum];\n if (\n !aevumFac.isBanned &&\n !aevumFac.isMember &&\n !aevumFac.alreadyInvited &&\n this.money >= 40000000 &&\n this.city == CityName.Aevum\n ) {\n invitedFactions.push(aevumFac);\n }\n\n //Ishima\n const ishimaFac = Factions[FactionNames.Ishima];\n if (\n !ishimaFac.isBanned &&\n !ishimaFac.isMember &&\n !ishimaFac.alreadyInvited &&\n this.money >= 30000000 &&\n this.city == CityName.Ishima\n ) {\n invitedFactions.push(ishimaFac);\n }\n\n //Volhaven\n const volhavenFac = Factions[FactionNames.Volhaven];\n if (\n !volhavenFac.isBanned &&\n !volhavenFac.isMember &&\n !volhavenFac.alreadyInvited &&\n this.money >= 50000000 &&\n this.city == CityName.Volhaven\n ) {\n invitedFactions.push(volhavenFac);\n }\n\n //Speakers for the Dead\n const speakersforthedeadFac = Factions[FactionNames.SpeakersForTheDead];\n if (\n !speakersforthedeadFac.isBanned &&\n !speakersforthedeadFac.isMember &&\n !speakersforthedeadFac.alreadyInvited &&\n this.skills.hacking >= 100 &&\n this.skills.strength >= 300 &&\n this.skills.defense >= 300 &&\n this.skills.dexterity >= 300 &&\n this.skills.agility >= 300 &&\n this.numPeopleKilled >= 30 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(speakersforthedeadFac);\n }\n\n //The Dark Army\n const thedarkarmyFac = Factions[FactionNames.TheDarkArmy];\n if (\n !thedarkarmyFac.isBanned &&\n !thedarkarmyFac.isMember &&\n !thedarkarmyFac.alreadyInvited &&\n this.skills.hacking >= 300 &&\n this.skills.strength >= 300 &&\n this.skills.defense >= 300 &&\n this.skills.dexterity >= 300 &&\n this.skills.agility >= 300 &&\n this.city == CityName.Chongqing &&\n this.numPeopleKilled >= 5 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thedarkarmyFac);\n }\n\n //The Syndicate\n const thesyndicateFac = Factions[FactionNames.TheSyndicate];\n if (\n !thesyndicateFac.isBanned &&\n !thesyndicateFac.isMember &&\n !thesyndicateFac.alreadyInvited &&\n this.skills.hacking >= 200 &&\n this.skills.strength >= 200 &&\n this.skills.defense >= 200 &&\n this.skills.dexterity >= 200 &&\n this.skills.agility >= 200 &&\n (this.city == CityName.Aevum || this.city == CityName.Sector12) &&\n this.money >= 10000000 &&\n this.karma <= -90 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thesyndicateFac);\n }\n\n //Silhouette\n const silhouetteFac = Factions[FactionNames.Silhouette];\n if (\n !silhouetteFac.isBanned &&\n !silhouetteFac.isMember &&\n !silhouetteFac.alreadyInvited &&\n (allPositions.includes(\"Chief Technology Officer\") ||\n allPositions.includes(\"Chief Financial Officer\") ||\n allPositions.includes(\"Chief Executive Officer\")) &&\n this.money >= 15000000 &&\n this.karma <= -22\n ) {\n invitedFactions.push(silhouetteFac);\n }\n\n //Tetrads\n const tetradsFac = Factions[FactionNames.Tetrads];\n if (\n !tetradsFac.isBanned &&\n !tetradsFac.isMember &&\n !tetradsFac.alreadyInvited &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima) &&\n this.skills.strength >= 75 &&\n this.skills.defense >= 75 &&\n this.skills.dexterity >= 75 &&\n this.skills.agility >= 75 &&\n this.karma <= -18\n ) {\n invitedFactions.push(tetradsFac);\n }\n\n //SlumSnakes\n const slumsnakesFac = Factions[FactionNames.SlumSnakes];\n if (\n !slumsnakesFac.isBanned &&\n !slumsnakesFac.isMember &&\n !slumsnakesFac.alreadyInvited &&\n this.skills.strength >= 30 &&\n this.skills.defense >= 30 &&\n this.skills.dexterity >= 30 &&\n this.skills.agility >= 30 &&\n this.karma <= -9 &&\n this.money >= 1000000\n ) {\n invitedFactions.push(slumsnakesFac);\n }\n\n //Netburners\n const netburnersFac = Factions[FactionNames.Netburners];\n let totalHacknetRam = 0;\n let totalHacknetCores = 0;\n let totalHacknetLevels = 0;\n for (let i = 0; i < this.hacknetNodes.length; ++i) {\n const v = this.hacknetNodes[i];\n if (typeof v === \"string\") {\n const hserver = GetServer(v);\n if (hserver === null || !(hserver instanceof HacknetServer))\n throw new Error(\"player hacknet server was not HacknetServer\");\n totalHacknetLevels += hserver.level;\n totalHacknetRam += hserver.maxRam;\n totalHacknetCores += hserver.cores;\n } else {\n totalHacknetLevels += v.level;\n totalHacknetRam += v.ram;\n totalHacknetCores += v.cores;\n }\n }\n if (\n !netburnersFac.isBanned &&\n !netburnersFac.isMember &&\n !netburnersFac.alreadyInvited &&\n this.skills.hacking >= 80 &&\n totalHacknetRam >= 8 &&\n totalHacknetCores >= 4 &&\n totalHacknetLevels >= 100\n ) {\n invitedFactions.push(netburnersFac);\n }\n\n //Tian Di Hui\n const tiandihuiFac = Factions[FactionNames.TianDiHui];\n if (\n !tiandihuiFac.isBanned &&\n !tiandihuiFac.isMember &&\n !tiandihuiFac.alreadyInvited &&\n this.money >= 1000000 &&\n this.skills.hacking >= 50 &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima)\n ) {\n invitedFactions.push(tiandihuiFac);\n }\n\n //CyberSec\n const cybersecFac = Factions[FactionNames.CyberSec];\n const cybersecServer = GetServer(SpecialServers.CyberSecServer);\n if (!(cybersecServer instanceof Server)) throw new Error(`${FactionNames.CyberSec} should be normal server`);\n if (cybersecServer == null) {\n console.error(`Could not find ${FactionNames.CyberSec} Server`);\n } else if (\n !cybersecFac.isBanned &&\n !cybersecFac.isMember &&\n cybersecServer.backdoorInstalled &&\n !cybersecFac.alreadyInvited\n ) {\n invitedFactions.push(cybersecFac);\n }\n\n return invitedFactions;\n}\n\n/************* BitNodes **************/\nexport function setBitNodeNumber(this: IPlayer, n: number): void {\n this.bitNodeN = n;\n}\n\nexport function queueAugmentation(this: IPlayer, name: string): void {\n for (const aug of this.queuedAugmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n for (const aug of this.augmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n this.queuedAugmentations.push(new PlayerOwnedAugmentation(name));\n}\n\n/************* Coding Contracts **************/\nexport function gainCodingContractReward(this: IPlayer, reward: ICodingContractReward, difficulty = 1): string {\n if (reward == null || reward.type == null) {\n return `No reward for this contract`;\n }\n\n /* eslint-disable no-case-declarations */\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation:\n if (reward.name == null || !(Factions[reward.name] instanceof Faction)) {\n // If no/invalid faction was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n Factions[reward.name].playerReputation += repGain;\n return `Gained ${repGain} faction reputation for ${reward.name}`;\n case CodingContractRewardType.FactionReputationAll:\n const totalGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n\n // Ignore Bladeburners and other special factions for this calculation\n const specialFactions = [FactionNames.Bladeburners as string];\n const factions = this.factions.slice().filter((f) => {\n return !specialFactions.includes(f);\n });\n\n // If the player was only part of the special factions, we'll just give money\n if (factions.length == 0) {\n reward.type = CodingContractRewardType.Money;\n return this.gainCodingContractReward(reward, difficulty);\n }\n\n const gainPerFaction = Math.floor(totalGain / factions.length);\n for (const facName of factions) {\n if (!(Factions[facName] instanceof Faction)) {\n continue;\n }\n Factions[facName].playerReputation += gainPerFaction;\n }\n return `Gained ${gainPerFaction} reputation for each of the following factions: ${factions.toString()}`;\n case CodingContractRewardType.CompanyReputation: {\n if (reward.name == null || !(Companies[reward.name] instanceof Company)) {\n //If no/invalid company was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseCompanyRepGain * difficulty;\n Companies[reward.name].playerReputation += repGain;\n return `Gained ${repGain} company reputation for ${reward.name}`;\n }\n case CodingContractRewardType.Money:\n default: {\n const moneyGain = CONSTANTS.CodingContractBaseMoneyGain * difficulty * BitNodeMultipliers.CodingContractMoney;\n this.gainMoney(moneyGain, \"codingcontract\");\n return `Gained ${numeralWrapper.formatMoney(moneyGain)}`;\n }\n }\n /* eslint-enable no-case-declarations */\n}\n\nexport function travel(this: IPlayer, to: CityName): boolean {\n if (Cities[to] == null) {\n console.warn(`Player.travel() called with invalid city: ${to}`);\n return false;\n }\n this.city = to;\n\n return true;\n}\n\nexport function gotoLocation(this: IPlayer, to: LocationName): boolean {\n if (Locations[to] == null) {\n console.warn(`Player.gotoLocation() called with invalid location: ${to}`);\n return false;\n }\n this.location = to;\n\n return true;\n}\n\nexport function canAccessGrafting(this: IPlayer): boolean {\n return this.bitNodeN === 10 || this.sourceFileLvl(10) > 0;\n}\n\nexport function giveExploit(this: IPlayer, exploit: Exploit): void {\n if (!this.exploits.includes(exploit)) {\n this.exploits.push(exploit);\n SnackbarEvents.emit(\"SF -1 acquired!\", ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function giveAchievement(this: IPlayer, achievementId: string): void {\n const achievement = achievements[achievementId];\n if (!achievement) return;\n if (!this.achievements.map((a) => a.ID).includes(achievementId)) {\n this.achievements.push({ ID: achievementId, unlockedOn: new Date().getTime() });\n SnackbarEvents.emit(`Unlocked Achievement: \"${achievement.Name}\"`, ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function getIntelligenceBonus(this: IPlayer, weight: number): number {\n return calculateIntelligenceBonus(this.skills.intelligence, weight);\n}\n\nexport function getCasinoWinnings(this: IPlayer): number {\n return this.moneySourceA.casino;\n}\n\nexport function canAccessCotMG(this: IPlayer): boolean {\n return this.bitNodeN === 13 || this.sourceFileLvl(13) > 0;\n}\n\nexport function sourceFileLvl(this: IPlayer, n: number): number {\n const sf = this.sourceFiles.find((sf) => sf.n === n);\n if (!sf) return 0;\n return sf.lvl;\n}\n\nexport function focusPenalty(this: IPlayer): number {\n let focus = 1;\n if (!this.hasAugmentation(AugmentationNames[\"NeuroreceptorManager\"])) {\n focus = this.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return focus;\n}\n","import { CityName } from \"./../../Locations/data/CityNames\";\nexport const BladeburnerConstants: {\n CityNames: string[];\n CyclesPerSecond: number;\n StaminaGainPerSecond: number;\n BaseStaminaLoss: number;\n MaxStaminaToGainFactor: number;\n DifficultyToTimeFactor: number;\n DiffMultExponentialFactor: number;\n DiffMultLinearFactor: number;\n EffAgiLinearFactor: number;\n EffDexLinearFactor: number;\n EffAgiExponentialFactor: number;\n EffDexExponentialFactor: number;\n BaseRecruitmentTimeNeeded: number;\n PopulationThreshold: number;\n PopulationExponent: number;\n ChaosThreshold: number;\n BaseStatGain: number;\n BaseIntGain: number;\n ActionCountGrowthPeriod: number;\n RankToFactionRepFactor: number;\n RankNeededForFaction: number;\n ContractSuccessesPerLevel: number;\n OperationSuccessesPerLevel: number;\n RanksPerSkillPoint: number;\n ContractBaseMoneyGain: number;\n HrcHpGain: number;\n HrcStaminaGain: number;\n} = {\n CityNames: [\n CityName.Aevum,\n CityName.Chongqing,\n CityName.Sector12,\n CityName.NewTokyo,\n CityName.Ishima,\n CityName.Volhaven,\n ],\n CyclesPerSecond: 5, // Game cycle is 200 ms\n\n StaminaGainPerSecond: 0.0085,\n BaseStaminaLoss: 0.285, // Base stamina loss per action. Increased based on difficulty\n MaxStaminaToGainFactor: 70000, // Max Stamina is divided by this to get bonus stamina gain\n\n DifficultyToTimeFactor: 10, // Action Difficulty divided by this to get base action time\n\n /**\n * The difficulty multiplier affects stamina loss and hp loss of an action. Also affects\n * experience gain. Its formula is:\n * difficulty ^ exponentialFactor + difficulty / linearFactor\n */\n DiffMultExponentialFactor: 0.28,\n DiffMultLinearFactor: 650,\n\n /**\n * These factors are used to calculate action time.\n * They affect how much action time is reduced based on your agility and dexterity\n */\n EffAgiLinearFactor: 10e3,\n EffDexLinearFactor: 10e3,\n EffAgiExponentialFactor: 0.04,\n EffDexExponentialFactor: 0.035,\n\n BaseRecruitmentTimeNeeded: 300, // Base time needed (s) to complete a Recruitment action\n\n PopulationThreshold: 1e9, // Population which determines baseline success rate\n PopulationExponent: 0.7, // Exponent that influences how different populations affect success rate\n ChaosThreshold: 50, // City chaos level after which it starts making tasks harder\n\n BaseStatGain: 1, // Base stat gain per second\n BaseIntGain: 0.003, // Base intelligence stat gain\n\n ActionCountGrowthPeriod: 480, // Time (s) it takes for action count to grow by its specified value\n\n RankToFactionRepFactor: 2, // Delta Faction Rep = this * Delta Rank\n RankNeededForFaction: 25,\n\n ContractSuccessesPerLevel: 3, // How many successes you need to level up a contract\n OperationSuccessesPerLevel: 2.5, // How many successes you need to level up an op\n\n RanksPerSkillPoint: 3, // How many ranks needed to get 1 Skill Point\n\n ContractBaseMoneyGain: 250e3, // Base Money Gained per contract\n\n HrcHpGain: 2, // HP Gained from Hyperbolic Regeneration chamber\n HrcStaminaGain: 1, // Percentage Stamina gained from Hyperbolic Regeneration Chamber\n};\n","import { Program } from \"./Program\";\nimport { programsMetadata } from \"./data/ProgramsMetadata\";\nimport { IMap } from \"../types\";\n\nexport const Programs: IMap = {};\n\nfor (const params of programsMetadata) {\n Programs[params.key] = new Program(params.name, params.create, params.run);\n}\n","export enum FragmentType {\n // Special fragments for the UI\n None,\n Delete,\n\n // Stats boosting fragments\n HackingChance,\n HackingSpeed,\n HackingMoney,\n HackingGrow,\n Hacking,\n Strength,\n Defense,\n Dexterity,\n Agility,\n Charisma,\n HacknetMoney,\n HacknetCost,\n Rep,\n WorkMoney,\n Crime,\n Bladeburner,\n\n // utility fragments.\n Booster,\n}\n\nexport function Effect(tpe: FragmentType): string {\n switch (tpe) {\n case FragmentType.HackingChance: {\n return \"+x% hack() success chance\";\n }\n case FragmentType.HackingSpeed: {\n return \"+x% faster hack(), grow(), and weaken()\";\n }\n case FragmentType.HackingMoney: {\n return \"+x% hack() power\";\n }\n case FragmentType.HackingGrow: {\n return \"+x% grow() power\";\n }\n case FragmentType.Hacking: {\n return \"+x% hacking skill\";\n }\n case FragmentType.Strength: {\n return \"+x% strength skill\";\n }\n case FragmentType.Defense: {\n return \"+x% defense skill\";\n }\n case FragmentType.Dexterity: {\n return \"+x% dexterity skill\";\n }\n case FragmentType.Agility: {\n return \"+x% agility skill\";\n }\n case FragmentType.Charisma: {\n return \"+x% charisma skill\";\n }\n case FragmentType.HacknetMoney: {\n return \"+x% hacknet production\";\n }\n case FragmentType.HacknetCost: {\n return \"-x% cheaper hacknet cost\";\n }\n case FragmentType.Rep: {\n return \"+x% reputation from factions and companies\";\n }\n case FragmentType.WorkMoney: {\n return \"+x% work money\";\n }\n case FragmentType.Crime: {\n return \"+x% crime money\";\n }\n case FragmentType.Bladeburner: {\n return \"+x% all bladeburner stats\";\n }\n }\n throw new Error(\"Calling effect for fragment type that doesn't have an effect \" + tpe);\n}\n","import { IMap } from \"../../types\";\n\nexport const LiteratureNames: IMap = {\n HackersStartingHandbook: \"hackers-starting-handbook.lit\",\n CorporationManagementHandbook: \"corporation-management-handbook.lit\",\n HistoryOfSynthoids: \"history-of-synthoids.lit\",\n AGreenTomorrow: \"A-Green-Tomorrow.lit\",\n AlphaOmega: \"alpha-omega.lit\",\n SimulatedReality: \"simulated-reality.lit\",\n BeyondMan: \"beyond-man.lit\",\n BrighterThanTheSun: \"brighter-than-the-sun.lit\",\n DemocracyIsDead: \"democracy-is-dead.lit\",\n Sector12Crime: \"sector-12-crime.lit\",\n ManAndMachine: \"man-and-machine.lit\",\n SecretSocieties: \"secret-societies.lit\",\n TheFailedFrontier: \"the-failed-frontier.lit\",\n CodedIntelligence: \"coded-intelligence.lit\",\n SyntheticMuscles: \"synthetic-muscles.lit\",\n TensionsInTechRace: \"tensions-in-tech-race.lit\",\n CostOfImmortality: \"cost-of-immortality.lit\",\n TheHiddenWorld: \"the-hidden-world.lit\",\n TheNewGod: \"the-new-god.lit\",\n NewTriads: \"new-triads.lit\",\n TheSecretWar: \"the-secret-war.lit\",\n};\n","import React from \"react\";\n\nimport { Typography, TableCell, TableRow } from \"@mui/material\";\n\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { formatNumber } from \"../../utils/StringHelperFunctions\";\nimport { characterOverviewStyles as useStyles } from \"./CharacterOverview\";\nimport { ClassNameMap } from \"@material-ui/core/styles/withStyles\";\n\ninterface ITableRowData {\n content?: string;\n level?: number;\n exp?: number;\n}\n\ninterface IProps {\n name: string;\n color: string;\n classes?: ClassNameMap;\n data?: ITableRowData;\n children?: React.ReactElement;\n}\n\nexport const StatsRow = ({ name, color, classes = useStyles(), children, data }: IProps): React.ReactElement => {\n let content = \"\";\n\n if (data) {\n if (data.content !== undefined) {\n content = data.content;\n } else if (data.level !== undefined && data.exp !== undefined) {\n content = `${formatNumber(data.level, 0)} (${numeralWrapper.formatExp(data.exp)} exp)`;\n } else if (data.level !== undefined && data.exp === undefined) {\n content = `${formatNumber(data.level, 0)}`;\n }\n }\n\n return (\n \n \n {name}\n \n \n {content ? {content} : <>>}\n {children}\n \n \n );\n};\n","import { Augmentation } from \"./Augmentation\";\nimport { IMap } from \"../types\";\n\nexport const StaticAugmentations: IMap = {};\n","export enum PositionTypes {\n Long = \"L\",\n Short = \"S\",\n}\n","import React from \"react\";\nimport { TableCell as MuiTableCell, TableCellProps, Table as MuiTable, TableProps } from \"@mui/material\";\n\nimport makeStyles from \"@mui/styles/makeStyles\";\n\nconst useStyles = makeStyles({\n root: {\n borderBottom: \"none\",\n },\n small: {\n width: \"1px\",\n },\n});\n\nexport const TableCell: React.FC = (props: TableCellProps) => {\n return (\n \n );\n};\n\nexport const Table: React.FC = (props: TableProps) => {\n return (\n \n );\n};\n","/**\n * Helper functions that implement \"directory\" functionality in the Terminal.\n * These aren't \"real\" directories, it's more of a pseudo-directory implementation\n * that uses mainly string manipulation.\n *\n * This file contains functions that deal only with that string manipulation.\n * Functions that need to access/process Server-related things can be\n * found in ./DirectoryServerHelpers.ts\n */\n\n/**\n * Removes leading forward slash (\"/\") from a string.\n */\nexport function removeLeadingSlash(s: string): string {\n if (s.startsWith(\"/\")) {\n return s.slice(1);\n }\n\n return s;\n}\n\n/**\n * Removes trailing forward slash (\"/\") from a string.\n * Note that this will also remove the slash if it is the leading slash (i.e. if s = \"/\")\n */\nexport function removeTrailingSlash(s: string): string {\n if (s.endsWith(\"/\")) {\n return s.slice(0, -1);\n }\n\n return s;\n}\n\n/**\n * Checks whether a string is a valid filename. Only used for the filename itself,\n * not the entire filepath\n */\nexport function isValidFilename(filename: string): boolean {\n // Allows alphanumerics, hyphens, underscores, and percentage signs\n // Must have a file extension\n const regex = /^[.&'a-zA-Z0-9_-]+\\.[a-zA-Z0-9]+(?:-\\d+(?:\\.\\d*)?%-INC)?$/;\n\n // match() returns null if no match is found\n return filename.match(regex) != null;\n}\n\n/**\n * Checks whether a string is a valid directory name. Only used for the directory itself,\n * not an entire path\n */\nexport function isValidDirectoryName(name: string): boolean {\n // A valid directory name:\n // Must be at least 1 character long\n // Can only include characters in the character set [-.%a-zA-Z0-9_]\n // Cannot end with a '.'\n const regex = /^.?[a-zA-Z0-9_-]+$/;\n\n // match() returns null if no match is found\n return name.match(regex) != null;\n}\n\n/**\n * Checks whether a string is a valid directory path.\n * This only checks if it has the proper formatting. It does NOT check\n * if the directories actually exist on Terminal\n */\nexport function isValidDirectoryPath(path: string): boolean {\n let t_path: string = path;\n\n if (t_path.length === 0) {\n return false;\n }\n if (t_path.length === 1) {\n return t_path === \"/\";\n }\n\n // A full path must have a leading slash, but we'll ignore it for the checks\n if (t_path.startsWith(\"/\")) {\n t_path = t_path.slice(1);\n } else {\n return false;\n }\n\n // Trailing slash does not matter\n t_path = removeTrailingSlash(t_path);\n\n // Check that every section of the path is a valid directory name\n const dirs = t_path.split(\"/\");\n for (const dir of dirs) {\n // Special case, \".\" and \"..\" are valid for path\n if (dir === \".\" || dir === \"..\") {\n continue;\n }\n if (!isValidDirectoryName(dir)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether a string is a valid file path. This only checks if it has the\n * proper formatting. It dose NOT check if the file actually exists on Terminal\n */\nexport function isValidFilePath(path: string): boolean {\n if (path == null || typeof path !== \"string\") {\n return false;\n }\n const t_path = path;\n\n // Impossible for filename to have less than length of 3\n if (t_path.length < 3) {\n return false;\n }\n\n // Full filepath can't end with trailing slash because it must be a file\n if (t_path.endsWith(\"/\")) {\n return false;\n }\n\n // Everything after the last forward slash is the filename. Everything before\n // it is the file path\n const fnSeparator = t_path.lastIndexOf(\"/\");\n if (fnSeparator === -1) {\n return isValidFilename(t_path);\n }\n\n const fn = t_path.slice(fnSeparator + 1);\n const dirPath = t_path.slice(0, fnSeparator + 1);\n\n return isValidDirectoryPath(dirPath) && isValidFilename(fn);\n}\n\n/**\n * Returns a formatted string for the first parent directory in a filepath. For example:\n * /home/var/test/ -> home/\n * If there is no first parent directory, then it returns \"/\" for root\n */\nexport function getFirstParentDirectory(path: string): string {\n let t_path = path;\n t_path = removeLeadingSlash(t_path);\n t_path = removeTrailingSlash(t_path);\n\n if (t_path.lastIndexOf(\"/\") === -1) {\n return \"/\";\n }\n\n const dirs = t_path.split(\"/\");\n if (dirs.length === 0) {\n return \"/\";\n }\n\n return dirs[0] + \"/\";\n}\n\n/**\n * Given a filepath, returns a formatted string for all of the parent directories\n * in that filepath. For example:\n * /home/var/tes -> home/var/\n * /home/var/test/ -> home/var/test/\n * If there are no parent directories, it returns the empty string\n */\nexport function getAllParentDirectories(path: string): string {\n const t_path = path;\n const lastSlash = t_path.lastIndexOf(\"/\");\n if (lastSlash === -1) {\n return \"\";\n }\n\n return t_path.slice(0, lastSlash + 1);\n}\n\n/**\n * Given a destination that only contains a directory part, returns the\n * path to the source filename inside the new destination directory.\n * Otherwise, returns the path to the destination file.\n * @param destination The destination path or file name\n * @param source The source path\n * @param cwd The current working directory\n * @returns A file path which may be absolute or relative\n */\nexport function getDestinationFilepath(destination: string, source: string, cwd: string): string {\n const dstDir = evaluateDirectoryPath(destination, cwd);\n // If evaluating the directory for this destination fails, we have a filename or full path.\n if (dstDir === null) {\n return destination;\n } else {\n // Append the filename to the directory provided.\n const t_path = removeTrailingSlash(dstDir);\n const fileName = getFileName(source);\n return t_path + \"/\" + fileName;\n }\n}\n\n/**\n * Given a filepath, returns the file name (e.g. without directory parts)\n * For example:\n * /home/var/test.js -> test.js\n * ./var/test.js -> test.js\n * test.js -> test.js\n */\nexport function getFileName(path: string): string {\n const t_path = path;\n const lastSlash = t_path.lastIndexOf(\"/\");\n if (lastSlash === -1) {\n return t_path;\n }\n\n return t_path.slice(lastSlash + 1);\n}\n\n/**\n * Checks if a file path refers to a file in the root directory.\n */\nexport function isInRootDirectory(path: string): boolean {\n if (!isValidFilePath(path)) {\n return false;\n }\n if (path == null || path.length === 0) {\n return false;\n }\n\n return path.lastIndexOf(\"/\") <= 0;\n}\n\n/**\n * Evaluates a directory path, including the processing of linux dots.\n * Returns the full, proper path, or null if an invalid path is passed in\n */\nexport function evaluateDirectoryPath(path: string, currPath?: string): string | null {\n let t_path = path;\n\n // If the path begins with a slash, then its an absolute path. Otherwise its relative\n // For relative paths, we need to prepend the current directory\n if (!t_path.startsWith(\"/\") && currPath) {\n t_path = currPath + (currPath.endsWith(\"/\") ? \"\" : \"/\") + t_path;\n }\n\n if (!isValidDirectoryPath(t_path)) {\n return null;\n }\n\n // Trim leading/trailing slashes\n t_path = removeLeadingSlash(t_path);\n t_path = removeTrailingSlash(t_path);\n\n const dirs = t_path.split(\"/\");\n const reconstructedPath: string[] = [];\n\n for (const dir of dirs) {\n if (dir === \".\") {\n // Current directory, do nothing\n continue;\n } else if (dir === \"..\") {\n // Parent directory\n const res = reconstructedPath.pop();\n if (res == null) {\n return null; // Array was empty, invalid path\n }\n } else {\n reconstructedPath.push(dir);\n }\n }\n\n return \"/\" + reconstructedPath.join(\"/\");\n}\n\n/**\n * Evaluates a file path, including the processing of linux dots.\n * Returns the full, proper path, or null if an invalid path is passed in\n */\nexport function evaluateFilePath(path: string, currPath?: string): string | null {\n let t_path = path;\n\n // If the path begins with a slash, then its an absolute path. Otherwise its relative\n // For relative paths, we need to prepend the current directory\n if (!t_path.startsWith(\"/\") && currPath != null) {\n t_path = currPath + (currPath.endsWith(\"/\") ? \"\" : \"/\") + t_path;\n }\n\n if (!isValidFilePath(t_path)) {\n return null;\n }\n\n // Trim leading/trailing slashes\n t_path = removeLeadingSlash(t_path);\n\n const dirs = t_path.split(\"/\");\n const reconstructedPath: string[] = [];\n\n for (const dir of dirs) {\n if (dir === \".\") {\n // Current directory, do nothing\n continue;\n } else if (dir === \"..\") {\n // Parent directory\n const res = reconstructedPath.pop();\n if (res == null) {\n return null; // Array was empty, invalid path\n }\n } else {\n reconstructedPath.push(dir);\n }\n }\n\n return \"/\" + reconstructedPath.join(\"/\");\n}\n\nexport function areFilesEqual(f0: string, f1: string): boolean {\n if (!f0.startsWith(\"/\")) f0 = \"/\" + f0;\n if (!f1.startsWith(\"/\")) f1 = \"/\" + f1;\n return f0 === f1;\n}\n\nexport function areImportsEquals(f0: string, f1: string): boolean {\n if (!f0.endsWith(\".js\")) f0 = f0 + \".js\";\n if (!f1.endsWith(\".js\")) f1 = f1 + \".js\";\n return areFilesEqual(f0, f1);\n}\n","// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts\nimport { companiesMetadata } from \"./data/CompaniesMetadata\";\nimport { Company, IConstructorParams } from \"./Company\";\nimport { IMap } from \"../types\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let Companies: IMap = {};\n\nfunction addCompany(params: IConstructorParams): void {\n if (Companies[params.name] != null) {\n console.warn(`Duplicate Company Position being defined: ${params.name}`);\n }\n Companies[params.name] = new Company(params);\n}\n\n// Used to initialize new Company objects for the Companies map\n// Called when creating new game or after a prestige/reset\nexport function initCompanies(): void {\n // Save Old Company data for 'favor'\n const oldCompanies = Companies;\n\n // Re-construct all Companies\n Companies = {};\n companiesMetadata.forEach((e) => {\n addCompany(e);\n });\n\n // Reset data\n for (const companyName of Object.keys(Companies)) {\n const company = Companies[companyName];\n const oldCompany = oldCompanies[companyName];\n if (!(oldCompany instanceof Company)) {\n // New game, so no OldCompanies data\n company.favor = 0;\n } else {\n company.favor = oldCompanies[companyName].favor;\n if (isNaN(company.favor)) {\n company.favor = 0;\n }\n }\n }\n}\n\n// Used to load Companies map from a save\nexport function loadCompanies(saveString: string): void {\n Companies = JSON.parse(saveString, Reviver);\n}\n","import { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\ninterface GangTerritory {\n power: number;\n territory: number;\n}\n\nexport let AllGangs: {\n [key: string]: GangTerritory;\n} = {\n [FactionNames.SlumSnakes]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.Tetrads]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheSyndicate]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheDarkArmy]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.SpeakersForTheDead]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.NiteSec]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheBlackHand]: {\n power: 1,\n territory: 1 / 7,\n },\n};\n\nexport function resetGangs(): void {\n AllGangs = {\n [FactionNames.SlumSnakes]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.Tetrads]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheSyndicate]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheDarkArmy]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.SpeakersForTheDead]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.NiteSec]: {\n power: 1,\n territory: 1 / 7,\n },\n [FactionNames.TheBlackHand]: {\n power: 1,\n territory: 1 / 7,\n },\n };\n}\n\nexport function loadAllGangs(saveString: string): void {\n AllGangs = JSON.parse(saveString, Reviver);\n}\n","import { Terminal as TTerminal } from \"./Terminal/Terminal\";\n\nexport const Terminal = new TTerminal();\n","import React, { useEffect } from \"react\";\nimport { useSnackbar, SnackbarProvider as SB } from \"notistack\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport Alert from \"@mui/material/Alert\";\nimport Paper from \"@mui/material/Paper\";\nimport { logBoxBaseZIndex } from \"./LogBoxManager\";\n\ninterface IProps {\n children: React.ReactNode | React.ReactNode[];\n}\n\nexport enum ToastVariant {\n SUCCESS = \"success\",\n WARNING = \"warning\",\n ERROR = \"error\",\n INFO = \"info\",\n}\n\nconst useStyles = makeStyles(() => ({\n snackbar: {\n // Log popup z-index increments, so let's add a padding to be well above them.\n zIndex: `${logBoxBaseZIndex + 1000} !important` as any,\n\n \"& .MuiAlert-icon\": {\n alignSelf: \"center\",\n },\n },\n}));\n\nexport function SnackbarProvider(props: IProps): React.ReactElement {\n const classes = useStyles();\n return (\n \n {props.children}\n \n );\n}\n\nexport const SnackbarEvents = new EventEmitter<[string | React.ReactNode, ToastVariant, number | null]>();\n\nexport function Snackbar(): React.ReactElement {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n useEffect(() =>\n SnackbarEvents.subscribe((s, variant, duration) => {\n const id = enqueueSnackbar({s}, {\n content: (k, m) => {m},\n variant: variant,\n autoHideDuration: duration,\n onClick: () => closeSnackbar(id),\n });\n }),\n );\n return <>>;\n}\n","import { Crime } from \"./Crime\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { IMap } from \"../types\";\n\nimport { CrimeType } from \"../utils/WorkType\";\n\nexport const Crimes: IMap = {\n Shoplift: new Crime(\"Shoplift\", \"to shoplift\", CrimeType.SHOPLIFT, 2e3, 15e3, 1 / 20, 0.1, {\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n dexterity_exp: 2,\n agility_exp: 2,\n }),\n\n RobStore: new Crime(\"Rob Store\", \"to rob a store\", CrimeType.ROB_STORE, 60e3, 400e3, 1 / 5, 0.5, {\n hacking_exp: 30,\n dexterity_exp: 45,\n agility_exp: 45,\n\n hacking_success_weight: 0.5,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n\n intelligence_exp: 7.5 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Mug: new Crime(\"Mug\", \"to mug\", CrimeType.MUG, 4e3, 36e3, 1 / 5, 0.25, {\n strength_exp: 3,\n defense_exp: 3,\n dexterity_exp: 3,\n agility_exp: 3,\n\n strength_success_weight: 1.5,\n defense_success_weight: 0.5,\n dexterity_success_weight: 1.5,\n agility_success_weight: 0.5,\n }),\n\n Larceny: new Crime(\"Larceny\", \"larceny\", CrimeType.LARCENY, 90e3, 800e3, 1 / 3, 1.5, {\n hacking_exp: 45,\n dexterity_exp: 60,\n agility_exp: 60,\n\n hacking_success_weight: 0.5,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n intelligence_exp: 15 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n DealDrugs: new Crime(\"Deal Drugs\", \"to deal drugs\", CrimeType.DRUGS, 10e3, 120e3, 1, 0.5, {\n dexterity_exp: 5,\n agility_exp: 5,\n charisma_exp: 10,\n\n charisma_success_weight: 3,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n }),\n\n BondForgery: new Crime(\"Bond Forgery\", \"to forge bonds\", CrimeType.BOND_FORGERY, 300e3, 4.5e6, 1 / 2, 0.1, {\n hacking_exp: 100,\n dexterity_exp: 150,\n charisma_exp: 15,\n\n hacking_success_weight: 0.05,\n dexterity_success_weight: 1.25,\n\n intelligence_exp: 60 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n TraffickArms: new Crime(\"Traffick Arms\", \"to traffic arms\", CrimeType.TRAFFIC_ARMS, 40e3, 600e3, 2, 1, {\n strength_exp: 20,\n defense_exp: 20,\n dexterity_exp: 20,\n agility_exp: 20,\n charisma_exp: 40,\n\n charisma_success_weight: 1,\n strength_success_weight: 1,\n defense_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n }),\n\n Homicide: new Crime(\"Homicide\", \"homicide\", CrimeType.HOMICIDE, 3e3, 45e3, 1, 3, {\n strength_exp: 2,\n defense_exp: 2,\n dexterity_exp: 2,\n agility_exp: 2,\n\n strength_success_weight: 2,\n defense_success_weight: 2,\n dexterity_success_weight: 0.5,\n agility_success_weight: 0.5,\n\n kills: 1,\n }),\n\n GrandTheftAuto: new Crime(\"Grand Theft Auto\", \"grand theft auto\", CrimeType.GRAND_THEFT_AUTO, 80e3, 1.6e6, 8, 5, {\n strength_exp: 20,\n defense_exp: 20,\n dexterity_exp: 20,\n agility_exp: 80,\n charisma_exp: 40,\n\n hacking_success_weight: 1,\n strength_success_weight: 1,\n dexterity_success_weight: 4,\n agility_success_weight: 2,\n charisma_success_weight: 2,\n\n intelligence_exp: 16 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Kidnap: new Crime(\"Kidnap\", \"to kidnap\", CrimeType.KIDNAP, 120e3, 3.6e6, 5, 6, {\n strength_exp: 80,\n defense_exp: 80,\n dexterity_exp: 80,\n agility_exp: 80,\n charisma_exp: 80,\n\n charisma_success_weight: 1,\n strength_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n\n intelligence_exp: 26 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n\n Assassination: new Crime(\"Assassination\", \"to assassinate\", CrimeType.ASSASSINATION, 300e3, 12e6, 8, 10, {\n strength_exp: 300,\n defense_exp: 300,\n dexterity_exp: 300,\n agility_exp: 300,\n\n strength_success_weight: 1,\n dexterity_success_weight: 2,\n agility_success_weight: 1,\n\n intelligence_exp: 65 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n\n kills: 1,\n }),\n\n Heist: new Crime(\"Heist\", \"a heist\", CrimeType.HEIST, 600e3, 120e6, 18, 15, {\n hacking_exp: 450,\n strength_exp: 450,\n defense_exp: 450,\n dexterity_exp: 450,\n agility_exp: 450,\n charisma_exp: 450,\n\n hacking_success_weight: 1,\n strength_success_weight: 1,\n defense_success_weight: 1,\n dexterity_success_weight: 1,\n agility_success_weight: 1,\n charisma_success_weight: 1,\n\n intelligence_exp: 130 * CONSTANTS.IntelligenceCrimeBaseExpGain,\n }),\n};\n","import * as React from \"react\";\n\nexport function trusted(f: () => void): (event: React.MouseEvent) => void {\n return function (event: React.MouseEvent): void {\n if (!event.isTrusted) return;\n f();\n };\n}\n","/* Holds IP of Special Servers */\nexport const SpecialServers: {\n [key: string]: string | undefined;\n\n Home: string;\n FulcrumSecretTechnologies: string;\n CyberSecServer: string;\n NiteSecServer: string;\n TheBlackHandServer: string;\n BitRunnersServer: string;\n TheDarkArmyServer: string;\n DaedalusServer: string;\n WorldDaemon: string;\n DarkWeb: string;\n} = {\n Home: \"home\",\n FulcrumSecretTechnologies: \"fulcrumassets\",\n CyberSecServer: \"CSEC\",\n NiteSecServer: \"avmnite-02h\",\n TheBlackHandServer: \"I.I.I.I\",\n BitRunnersServer: \"run4theh111z\",\n TheDarkArmyServer: \".\",\n DaedalusServer: \"The-Cave\",\n WorldDaemon: \"w0r1d_d43m0n\",\n DarkWeb: \"darkweb\",\n};\n","import { IPerson } from \"src/PersonObjects/IPerson\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\nexport interface WorkStats {\n money: number;\n reputation: number;\n hackExp: number;\n strExp: number;\n defExp: number;\n dexExp: number;\n agiExp: number;\n chaExp: number;\n intExp: number;\n}\n\ninterface newWorkStatsParams {\n money?: number;\n reputation?: number;\n hackExp?: number;\n strExp?: number;\n defExp?: number;\n dexExp?: number;\n agiExp?: number;\n chaExp?: number;\n intExp?: number;\n}\n\nexport const newWorkStats = (params?: newWorkStatsParams): WorkStats => {\n return {\n money: params?.money ?? 0,\n reputation: params?.reputation ?? 0,\n hackExp: params?.hackExp ?? 0,\n strExp: params?.strExp ?? 0,\n defExp: params?.defExp ?? 0,\n dexExp: params?.dexExp ?? 0,\n agiExp: params?.agiExp ?? 0,\n chaExp: params?.chaExp ?? 0,\n intExp: params?.intExp ?? 0,\n };\n};\n\nexport const sumWorkStats = (w0: WorkStats, w1: WorkStats): WorkStats => {\n return {\n money: w0.money + w1.money,\n reputation: w0.reputation + w1.reputation,\n hackExp: w0.hackExp + w1.hackExp,\n strExp: w0.strExp + w1.strExp,\n defExp: w0.defExp + w1.defExp,\n dexExp: w0.dexExp + w1.dexExp,\n agiExp: w0.agiExp + w1.agiExp,\n chaExp: w0.chaExp + w1.chaExp,\n intExp: w0.intExp + w1.intExp,\n };\n};\n\nexport const scaleWorkStats = (w: WorkStats, n: number, scaleMoney = true): WorkStats => {\n const m = scaleMoney ? n : 1;\n return {\n money: w.money * m,\n reputation: w.reputation * n,\n hackExp: w.hackExp * n,\n strExp: w.strExp * n,\n defExp: w.defExp * n,\n dexExp: w.dexExp * n,\n agiExp: w.agiExp * n,\n chaExp: w.chaExp * n,\n intExp: w.intExp * n,\n };\n};\n\nexport const applyWorkStats = (\n player: IPlayer,\n target: IPerson,\n workStats: WorkStats,\n cycles: number,\n source: string,\n): WorkStats => {\n const expStats = applyWorkStatsExp(target, workStats, cycles);\n const gains = {\n money: workStats.money * cycles,\n reputation: 0,\n hackExp: expStats.hackExp,\n strExp: expStats.strExp,\n defExp: expStats.defExp,\n dexExp: expStats.dexExp,\n agiExp: expStats.agiExp,\n chaExp: expStats.chaExp,\n intExp: expStats.intExp,\n };\n player.gainMoney(gains.money, source);\n\n return gains;\n};\n\nexport const applyWorkStatsExp = (target: IPerson, workStats: WorkStats, cycles: number): WorkStats => {\n const gains = {\n money: 0,\n reputation: 0,\n hackExp: workStats.hackExp * cycles,\n strExp: workStats.strExp * cycles,\n defExp: workStats.defExp * cycles,\n dexExp: workStats.dexExp * cycles,\n agiExp: workStats.agiExp * cycles,\n chaExp: workStats.chaExp * cycles,\n intExp: workStats.intExp * cycles,\n };\n target.gainHackingExp(gains.hackExp);\n target.gainStrengthExp(gains.strExp);\n target.gainDefenseExp(gains.defExp);\n target.gainDexterityExp(gains.dexExp);\n target.gainAgilityExp(gains.agiExp);\n target.gainCharismaExp(gains.chaExp);\n target.gainIntelligenceExp(gains.intExp);\n return gains;\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IEngine } from \"../IEngine\";\nimport { ITerminal } from \"../Terminal/ITerminal\";\nimport { installAugmentations } from \"../Augmentation/AugmentationHelpers\";\nimport { saveObject } from \"../SaveObject\";\nimport { onExport } from \"../ExportBonus\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { Location } from \"../Locations/Location\";\nimport { ITutorial, iTutorialStart } from \"../InteractiveTutorial\";\nimport { InteractiveTutorialRoot } from \"./InteractiveTutorial/InteractiveTutorialRoot\";\nimport { ITutorialEvents } from \"./InteractiveTutorial/ITutorialEvents\";\n\nimport { Faction } from \"../Faction/Faction\";\nimport { prestigeAugmentation } from \"../Prestige\";\nimport { dialogBoxCreate } from \"./React/DialogBox\";\nimport { GetAllServers } from \"../Server/AllServers\";\nimport { Factions } from \"../Faction/Factions\";\nimport { StockMarket } from \"../StockMarket/StockMarket\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\n\nimport { Page, IRouter, ScriptEditorRouteOptions } from \"./Router\";\nimport { Overview } from \"./React/Overview\";\nimport { SidebarRoot } from \"../Sidebar/ui/SidebarRoot\";\nimport { AugmentationsRoot } from \"../Augmentation/ui/AugmentationsRoot\";\nimport { DevMenuRoot } from \"../DevMenu\";\nimport { BladeburnerRoot } from \"../Bladeburner/ui/BladeburnerRoot\";\nimport { GangRoot } from \"../Gang/ui/GangRoot\";\nimport { CorporationRoot } from \"../Corporation/ui/CorporationRoot\";\nimport { InfiltrationRoot } from \"../Infiltration/ui/InfiltrationRoot\";\nimport { GraftingRoot } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { WorkInProgressRoot } from \"./WorkInProgressRoot\";\nimport { GameOptionsRoot } from \"../GameOptions/ui/GameOptionsRoot\";\nimport { SleeveRoot } from \"../PersonObjects/Sleeve/ui/SleeveRoot\";\nimport { HacknetRoot } from \"../Hacknet/ui/HacknetRoot\";\nimport { GenericLocation } from \"../Locations/ui/GenericLocation\";\nimport { LocationCity } from \"../Locations/ui/City\";\nimport { ProgramsRoot } from \"../Programs/ui/ProgramsRoot\";\nimport { Root as ScriptEditorRoot } from \"../ScriptEditor/ui/ScriptEditorRoot\";\nimport { MilestonesRoot } from \"../Milestones/ui/MilestonesRoot\";\nimport { TerminalRoot } from \"../Terminal/ui/TerminalRoot\";\nimport { TutorialRoot } from \"../Tutorial/ui/TutorialRoot\";\nimport { ActiveScriptsRoot } from \"./ActiveScripts/ActiveScriptsRoot\";\nimport { FactionsRoot } from \"../Faction/ui/FactionsRoot\";\nimport { FactionRoot } from \"../Faction/ui/FactionRoot\";\nimport { CharacterStats } from \"./CharacterStats\";\nimport { TravelAgencyRoot } from \"../Locations/ui/TravelAgencyRoot\";\nimport { StockMarketRoot } from \"../StockMarket/ui/StockMarketRoot\";\nimport { BitverseRoot } from \"../BitNode/ui/BitverseRoot\";\nimport { StaneksGiftRoot } from \"../CotMG/ui/StaneksGiftRoot\";\nimport { staneksGift } from \"../CotMG/Helper\";\nimport { CharacterOverview } from \"./React/CharacterOverview\";\nimport { BladeburnerCinematic } from \"../Bladeburner/ui/BladeburnerCinematic\";\nimport { workerScripts } from \"../Netscript/WorkerScripts\";\nimport { Unclickable } from \"../Exploits/Unclickable\";\nimport { Snackbar, SnackbarProvider } from \"./React/Snackbar\";\nimport { LogBoxManager } from \"./React/LogBoxManager\";\nimport { AlertManager } from \"./React/AlertManager\";\nimport { PromptManager } from \"./React/PromptManager\";\nimport { InvitationModal } from \"../Faction/ui/InvitationModal\";\nimport { calculateAchievements } from \"../Achievements/Achievements\";\n\nimport { enterBitNode } from \"../RedPill\";\nimport { Context } from \"./Context\";\nimport { RecoveryMode, RecoveryRoot } from \"./React/RecoveryRoot\";\nimport { AchievementsRoot } from \"../Achievements/AchievementsRoot\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { Settings } from \"../Settings/Settings\";\nimport { ThemeBrowser } from \"../Themes/ui/ThemeBrowser\";\nimport { ImportSaveRoot } from \"./React/ImportSaveRoot\";\nimport { BypassWrapper } from \"./React/BypassWrapper\";\n\nimport _wrap from \"lodash/wrap\";\nimport _functions from \"lodash/functions\";\nimport { Apr1 } from \"./Apr1\";\nimport { isFactionWork } from \"../Work/FactionWork\";\nimport { V2Modal } from \"../utils/V2Modal\";\n\nconst htmlLocation = location;\n\ninterface IProps {\n terminal: ITerminal;\n player: IPlayer;\n engine: IEngine;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"-ms-overflow-style\": \"none\" /* for Internet Explorer, Edge */,\n \"scrollbar-width\": \"none\" /* for Firefox */,\n margin: theme.spacing(0),\n flexGrow: 1,\n padding: \"8px\",\n minHeight: \"100vh\",\n boxSizing: \"border-box\",\n width: \"1px\",\n },\n }),\n);\n\nconst uninitialized = (): void => {\n throw new Error(\"Router called before initialization\");\n};\n\nexport let Router: IRouter = {\n isInitialized: false,\n page: () => {\n throw new Error(\"Router called before initialization\");\n },\n allowRouting: uninitialized,\n toActiveScripts: uninitialized,\n toAugmentations: uninitialized,\n toBitVerse: uninitialized,\n toBladeburner: uninitialized,\n toStats: uninitialized,\n toCity: uninitialized,\n toCorporation: uninitialized,\n toCreateProgram: uninitialized,\n toDevMenu: uninitialized,\n toFaction: uninitialized,\n toFactions: uninitialized,\n toGameOptions: uninitialized,\n toGang: uninitialized,\n toHacknetNodes: uninitialized,\n toInfiltration: uninitialized,\n toJob: uninitialized,\n toMilestones: uninitialized,\n toGrafting: uninitialized,\n toScriptEditor: uninitialized,\n toSleeves: uninitialized,\n toStockMarket: uninitialized,\n toTerminal: uninitialized,\n toTravel: uninitialized,\n toTutorial: uninitialized,\n toWork: uninitialized,\n toBladeburnerCinematic: uninitialized,\n toLocation: uninitialized,\n toStaneksGift: uninitialized,\n toAchievements: uninitialized,\n toThemeBrowser: uninitialized,\n toImportSave: uninitialized,\n};\n\nfunction determineStartPage(player: IPlayer): Page {\n if (RecoveryMode) return Page.Recovery;\n if (player.currentWork !== null) return Page.Work;\n return Page.Terminal;\n}\n\nexport function GameRoot({ player, engine, terminal }: IProps): React.ReactElement {\n const classes = useStyles();\n const [{ files, vim }, setEditorOptions] = useState({ files: {}, vim: false });\n const [page, setPage] = useState(determineStartPage(player));\n const setRerender = useState(0)[1];\n const [augPage, setAugPage] = useState(false);\n const [faction, setFaction] = useState(\n isFactionWork(player.currentWork) ? Factions[player.currentWork.factionName] : (undefined as unknown as Faction),\n );\n if (faction === undefined && page === Page.Faction)\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [flume, setFlume] = useState(false);\n const [quick, setQuick] = useState(false);\n const [location, setLocation] = useState(undefined as unknown as Location);\n if (location === undefined && (page === Page.Infiltration || page === Page.Location || page === Page.Job))\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [cinematicText, setCinematicText] = useState(\"\");\n const [errorBoundaryKey, setErrorBoundaryKey] = useState(0);\n const [sidebarOpened, setSideBarOpened] = useState(Settings.IsSidebarOpened);\n\n const [importString, setImportString] = useState(undefined as unknown as string);\n const [importAutomatic, setImportAutomatic] = useState(false);\n if (importString === undefined && page === Page.ImportSave)\n throw new Error(\"Trying to go to a page without the proper setup\");\n\n const [allowRoutingCalls, setAllowRoutingCalls] = useState(true);\n\n function resetErrorBoundary(): void {\n setErrorBoundaryKey(errorBoundaryKey + 1);\n }\n\n function rerender(): void {\n setRerender((old) => old + 1);\n }\n useEffect(() => {\n return ITutorialEvents.subscribe(rerender);\n }, []);\n\n function killAllScripts(): void {\n for (const server of GetAllServers()) {\n server.runningScripts = [];\n }\n saveObject.saveGame();\n setTimeout(() => htmlLocation.reload(), 2000);\n }\n\n Router = {\n isInitialized: true,\n page: () => page,\n allowRouting: (value: boolean) => setAllowRoutingCalls(value),\n toActiveScripts: () => setPage(Page.ActiveScripts),\n toAugmentations: () => setPage(Page.Augmentations),\n toBladeburner: () => setPage(Page.Bladeburner),\n toStats: () => setPage(Page.Stats),\n toCorporation: () => setPage(Page.Corporation),\n toCreateProgram: () => setPage(Page.CreateProgram),\n toDevMenu: () => setPage(Page.DevMenu),\n toFaction: (faction: Faction, augPage = false) => {\n setAugPage(augPage);\n setPage(Page.Faction);\n if (faction) setFaction(faction);\n },\n toFactions: () => setPage(Page.Factions),\n toGameOptions: () => setPage(Page.Options),\n toGang: () => setPage(Page.Gang),\n toHacknetNodes: () => setPage(Page.Hacknet),\n toMilestones: () => setPage(Page.Milestones),\n toGrafting: () => setPage(Page.Grafting),\n toScriptEditor: (files: Record, options?: ScriptEditorRouteOptions) => {\n setEditorOptions({\n files,\n vim: !!options?.vim,\n });\n setPage(Page.ScriptEditor);\n },\n toSleeves: () => setPage(Page.Sleeves),\n toStockMarket: () => setPage(Page.StockMarket),\n toTerminal: () => setPage(Page.Terminal),\n toTutorial: () => setPage(Page.Tutorial),\n toJob: (location: Location) => {\n setLocation(location);\n setPage(Page.Job);\n },\n toCity: () => {\n setPage(Page.City);\n },\n toTravel: () => {\n player.gotoLocation(LocationName.TravelAgency);\n setPage(Page.Travel);\n },\n toBitVerse: (flume: boolean, quick: boolean) => {\n setFlume(flume);\n setQuick(quick);\n calculateAchievements();\n setPage(Page.BitVerse);\n },\n toInfiltration: (location: Location) => {\n setLocation(location);\n setPage(Page.Infiltration);\n },\n toWork: () => setPage(Page.Work),\n toBladeburnerCinematic: () => {\n setPage(Page.BladeburnerCinematic);\n setCinematicText(cinematicText);\n },\n toLocation: (location: Location) => {\n setLocation(location);\n setPage(Page.Location);\n },\n toStaneksGift: () => {\n setPage(Page.StaneksGift);\n },\n toAchievements: () => {\n setPage(Page.Achievements);\n },\n toThemeBrowser: () => {\n setPage(Page.ThemeBrowser);\n },\n toImportSave: (base64save: string, automatic = false) => {\n setImportString(base64save);\n setImportAutomatic(automatic);\n setPage(Page.ImportSave);\n },\n };\n\n useEffect(() => {\n // Wrap Router navigate functions to be able to disable the execution\n _functions(Router)\n .filter((fnName) => fnName.startsWith(\"to\"))\n .forEach((fnName) => {\n // @ts-ignore - tslint does not like this, couldn't find a way to make it cooperate\n Router[fnName] = _wrap(Router[fnName], (func, ...args) => {\n if (!allowRoutingCalls) {\n // Let's just log to console.\n console.error(`Routing is currently disabled - Attempted router.${fnName}()`);\n return;\n }\n\n // Call the function normally\n return func(...args);\n });\n });\n });\n\n useEffect(() => {\n if (page !== Page.Terminal) window.scrollTo(0, 0);\n });\n\n function softReset(): void {\n dialogBoxCreate(\"Soft Reset!\");\n installAugmentations(true);\n resetErrorBoundary();\n Router.toTerminal();\n }\n\n let mainPage = Cannot load;\n let withSidebar = true;\n let withPopups = true;\n let bypassGame = false;\n switch (page) {\n case Page.Recovery: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n break;\n }\n case Page.BitVerse: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Infiltration: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.BladeburnerCinematic: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Work: {\n mainPage = ;\n withSidebar = false;\n break;\n }\n case Page.Terminal: {\n mainPage = ;\n break;\n }\n case Page.Sleeves: {\n mainPage = ;\n break;\n }\n case Page.StaneksGift: {\n mainPage = ;\n break;\n }\n case Page.Stats: {\n mainPage = ;\n break;\n }\n case Page.ScriptEditor: {\n mainPage = (\n \n );\n break;\n }\n case Page.ActiveScripts: {\n mainPage = ;\n break;\n }\n case Page.Hacknet: {\n mainPage = ;\n break;\n }\n case Page.CreateProgram: {\n mainPage = ;\n break;\n }\n case Page.Factions: {\n mainPage = ;\n break;\n }\n case Page.Faction: {\n mainPage = ;\n break;\n }\n case Page.Milestones: {\n mainPage = ;\n break;\n }\n case Page.Tutorial: {\n mainPage = (\n {\n prestigeAugmentation();\n Router.toTerminal();\n iTutorialStart();\n }}\n />\n );\n break;\n }\n case Page.DevMenu: {\n mainPage = ;\n break;\n }\n case Page.Gang: {\n mainPage = ;\n break;\n }\n case Page.Corporation: {\n mainPage = ;\n break;\n }\n case Page.Bladeburner: {\n mainPage = ;\n break;\n }\n case Page.Grafting: {\n mainPage = ;\n break;\n }\n case Page.Travel: {\n mainPage = ;\n break;\n }\n case Page.StockMarket: {\n mainPage = ;\n break;\n }\n case Page.City: {\n mainPage = ;\n break;\n }\n case Page.Job:\n case Page.Location: {\n mainPage = ;\n break;\n }\n case Page.Options: {\n mainPage = (\n saveObject.saveGame()}\n export={() => {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n forceKill={killAllScripts}\n softReset={softReset}\n />\n );\n break;\n }\n case Page.Augmentations: {\n mainPage = (\n {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n installAugmentationsFn={() => {\n installAugmentations();\n }}\n />\n );\n break;\n }\n case Page.Achievements: {\n mainPage = ;\n break;\n }\n case Page.ThemeBrowser: {\n mainPage = ;\n break;\n }\n case Page.ImportSave: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n }\n }\n\n return (\n \n \n \n \n \n \n {!ITutorial.isRunning ? (\n saveObject.saveGame()} killScripts={killAllScripts} />\n ) : (\n \n )}\n \n {withSidebar ? (\n \n {\n setSideBarOpened(isOpened);\n Settings.IsSidebarOpened = isOpened;\n }}\n />\n {mainPage}\n \n ) : (\n {mainPage}\n )}\n \n {withPopups && (\n <>\n \n \n \n \n \n >\n )}\n \n \n \n \n \n \n \n );\n}\n","/**\n * Hacknet Servers - Reworked Hacknet Node mechanic for BitNode-9\n */\nimport { CONSTANTS } from \"../Constants\";\n\nimport { IHacknetNode } from \"./IHacknetNode\";\n\nimport { BaseServer } from \"../Server/BaseServer\";\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { HacknetServerConstants } from \"./data/Constants\";\nimport {\n calculateHashGainRate,\n calculateLevelUpgradeCost,\n calculateRamUpgradeCost,\n calculateCoreUpgradeCost,\n calculateCacheUpgradeCost,\n} from \"./formulas/HacknetServers\";\n\nimport { createRandomIp } from \"../utils/IPAddress\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\ninterface IConstructorParams {\n adminRights?: boolean;\n hostname: string;\n ip?: string;\n isConnectedTo?: boolean;\n maxRam?: number;\n organizationName?: string;\n}\n\nexport class HacknetServer extends BaseServer implements IHacknetNode {\n // Cache level. Affects hash Capacity\n cache = 1;\n\n // Number of cores. Improves hash production\n cores = 1;\n\n // Number of hashes that can be stored by this Hacknet Server\n hashCapacity = 0;\n\n // Hashes produced per second\n hashRate = 0;\n\n // Similar to Node level. Improves hash production\n level = 1;\n\n // How long this HacknetServer has existed, in seconds\n onlineTimeSeconds = 0;\n\n // Total number of hashes earned by this server\n totalHashesGenerated = 0;\n\n // Flag indicating wehther this is a purchased server\n purchasedByPlayer = true;\n\n constructor(params: IConstructorParams = { hostname: \"\", ip: createRandomIp() }) {\n super(params);\n\n this.maxRam = 1;\n this.updateHashCapacity();\n }\n\n calculateCacheUpgradeCost(levels: number): number {\n return calculateCacheUpgradeCost(this.cache, levels);\n }\n\n calculateCoreUpgradeCost(levels: number, costMult: number): number {\n return calculateCoreUpgradeCost(this.cores, levels, costMult);\n }\n\n calculateLevelUpgradeCost(levels: number, costMult: number): number {\n return calculateLevelUpgradeCost(this.level, levels, costMult);\n }\n\n calculateRamUpgradeCost(levels: number, costMult: number): number {\n return calculateRamUpgradeCost(this.maxRam, levels, costMult);\n }\n\n // Process this Hacknet Server in the game loop. Returns the number of hashes generated\n process(numCycles = 1): number {\n const seconds = (numCycles * CONSTANTS.MilliPerCycle) / 1000;\n this.onlineTimeSeconds += seconds;\n\n const hashes = this.hashRate * seconds;\n this.totalHashesGenerated += hashes;\n\n return hashes;\n }\n\n upgradeCache(levels: number): void {\n this.cache = Math.min(HacknetServerConstants.MaxCache, Math.round(this.cache + levels));\n this.updateHashCapacity();\n }\n\n upgradeCore(levels: number, prodMult: number): void {\n this.cores = Math.min(HacknetServerConstants.MaxCores, Math.round(this.cores + levels));\n this.updateHashRate(prodMult);\n this.cpuCores = this.cores;\n }\n\n upgradeLevel(levels: number, prodMult: number): void {\n this.level = Math.min(HacknetServerConstants.MaxLevel, Math.round(this.level + levels));\n this.updateHashRate(prodMult);\n }\n\n upgradeRam(levels: number, prodMult: number): boolean {\n for (let i = 0; i < levels; ++i) {\n this.maxRam *= 2;\n }\n this.maxRam = Math.min(HacknetServerConstants.MaxRam, Math.round(this.maxRam));\n this.updateHashRate(prodMult);\n\n return true;\n }\n\n // Whenever a script is run, we must update this server's hash rate\n runScript(script: RunningScript, prodMult?: number): void {\n super.runScript(script);\n if (prodMult != null && typeof prodMult === \"number\") {\n this.updateHashRate(prodMult);\n }\n }\n\n updateRamUsed(ram: number, player: IPlayer): void {\n super.updateRamUsed(ram, player);\n this.updateHashRate(player.mults.hacknet_node_money);\n }\n\n updateHashCapacity(): void {\n this.hashCapacity = 32 * Math.pow(2, this.cache);\n }\n\n updateHashRate(prodMult: number): void {\n this.hashRate = calculateHashGainRate(this.level, this.ramUsed, this.maxRam, this.cores, prodMult);\n\n if (isNaN(this.hashRate)) {\n this.hashRate = 0;\n console.error(\n `Error calculating Hacknet Server hash production. This is a bug. Please report to game dev`,\n false,\n );\n }\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): IReviverValue {\n return Generic_toJSON(\"HacknetServer\", this);\n }\n\n // Initializes a HacknetServer Object from a JSON save state\n static fromJSON(value: IReviverValue): HacknetServer {\n return Generic_fromJSON(HacknetServer, value.data);\n }\n}\n\nReviver.constructors.HacknetServer = HacknetServer;\n","export const validScriptExtensions: Array = [`.js`, `.script`];\n\nexport function isScriptFilename(f: string): boolean {\n return validScriptExtensions.some((ext) => f.endsWith(ext));\n}\n","import { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { processOrders } from \"./OrderProcessing\";\nimport { Stock } from \"./Stock\";\nimport { TicksPerCycle } from \"./StockMarketConstants\";\nimport { InitStockMetadata } from \"./data/InitStockMetadata\";\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { StockSymbols } from \"./data/StockSymbols\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver } from \"../utils/JSONReviver\";\nimport { NetscriptContext } from \"../Netscript/APIWrapper\";\nimport { helpers } from \"../Netscript/NetscriptHelpers\";\n\nexport let StockMarket: IStockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n} as IStockMarket; // Maps full stock name -> Stock object\nexport const SymbolToStockMap: IMap = {}; // Maps symbol -> Stock object\n\nexport function placeOrder(\n stock: Stock,\n shares: number,\n price: number,\n type: OrderTypes,\n position: PositionTypes,\n ctx?: NetscriptContext,\n): boolean {\n if (!(stock instanceof Stock)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid stock: '${stock}'`);\n } else {\n dialogBoxCreate(`ERROR: Invalid stock passed to placeOrder() function`);\n }\n return false;\n }\n if (typeof shares !== \"number\" || typeof price !== \"number\") {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: shares='${shares}' price='${price}'`);\n } else {\n dialogBoxCreate(\"ERROR: Invalid numeric value provided for either 'shares' or 'price' argument\");\n }\n return false;\n }\n\n const order = new Order(stock.symbol, shares, price, type, position);\n if (StockMarket[\"Orders\"] == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stk = StockMarket[name];\n if (!(stk instanceof Stock)) {\n continue;\n }\n orders[stk.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n }\n StockMarket[\"Orders\"][stock.symbol].push(order);\n\n // Process to see if it should be executed immediately\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n processOrders(stock, order.type, order.pos, processOrderRefs);\n\n return true;\n}\n\n// Returns true if successfully cancels an order, false otherwise\nexport interface ICancelOrderParams {\n order?: Order;\n pos?: PositionTypes;\n price?: number;\n shares?: number;\n stock?: Stock;\n type?: OrderTypes;\n}\nexport function cancelOrder(params: ICancelOrderParams, ctx?: NetscriptContext): boolean {\n if (StockMarket[\"Orders\"] == null) return false;\n if (params.order && params.order instanceof Order) {\n const order = params.order;\n // An 'Order' object is passed in\n const stockOrders = StockMarket[\"Orders\"][order.stockSymbol];\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n return true;\n }\n }\n return false;\n } else if (\n params.stock &&\n params.shares &&\n params.price &&\n params.type &&\n params.pos &&\n params.stock instanceof Stock\n ) {\n // Order properties are passed in. Need to look for the order\n const stockOrders = StockMarket[\"Orders\"][params.stock.symbol];\n const orderTxt = params.stock.symbol + \" - \" + params.shares + \" @ \" + numeralWrapper.formatMoney(params.price);\n for (let i = 0; i < stockOrders.length; ++i) {\n const order = stockOrders[i];\n if (\n params.shares === order.shares &&\n params.price === order.price &&\n params.type === order.type &&\n params.pos === order.pos\n ) {\n stockOrders.splice(i, 1);\n if (ctx) helpers.log(ctx, () => \"Successfully cancelled order: \" + orderTxt);\n return true;\n }\n }\n if (ctx) helpers.log(ctx, () => \"Failed to cancel order: \" + orderTxt);\n return false;\n }\n return false;\n}\n\nexport function loadStockMarket(saveString: string): void {\n if (saveString === \"\") {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n } else StockMarket = JSON.parse(saveString, Reviver);\n}\n\nexport function deleteStockMarket(): void {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n}\n\nexport function initStockMarket(): void {\n for (const stk of Object.keys(StockMarket)) {\n if (StockMarket.hasOwnProperty(stk)) delete StockMarket[stk];\n }\n\n for (const metadata of InitStockMetadata) {\n const name = metadata.name;\n StockMarket[name] = new Stock(metadata);\n }\n\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) continue;\n orders[stock.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n\n StockMarket.storedCycles = 0;\n StockMarket.lastUpdate = 0;\n StockMarket.ticksUntilCycle = TicksPerCycle;\n}\n\nexport function initSymbolToStockMap(): void {\n for (const name of Object.keys(StockSymbols)) {\n if (StockSymbols.hasOwnProperty(name)) {\n const stock = StockMarket[name];\n if (stock == null) {\n console.error(`Could not find Stock for ${name}`);\n continue;\n }\n const symbol = StockSymbols[name];\n SymbolToStockMap[symbol] = stock;\n }\n }\n}\n\nfunction stockMarketCycle(): void {\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) continue;\n\n const roll = Math.random();\n if (roll < 0.45) {\n stock.b = !stock.b;\n stock.flipForecastForecast();\n }\n\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n}\n\n// Stock prices updated every 6 seconds\nconst msPerStockUpdate = 6e3;\nconst cyclesPerStockUpdate = msPerStockUpdate / CONSTANTS.MilliPerCycle;\nexport function processStockPrices(numCycles = 1): void {\n if (StockMarket.storedCycles == null || isNaN(StockMarket.storedCycles)) {\n StockMarket.storedCycles = 0;\n }\n StockMarket.storedCycles += numCycles;\n\n if (StockMarket.storedCycles < cyclesPerStockUpdate) {\n return;\n }\n\n // We can process the update every 4 seconds as long as there are enough\n // stored cycles. This lets us account for offline time\n const timeNow = new Date().getTime();\n if (timeNow - StockMarket.lastUpdate < 4e3) return;\n\n StockMarket.lastUpdate = timeNow;\n StockMarket.storedCycles -= cyclesPerStockUpdate;\n\n // Cycle\n if (StockMarket.ticksUntilCycle == null || typeof StockMarket.ticksUntilCycle !== \"number\") {\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n --StockMarket.ticksUntilCycle;\n if (StockMarket.ticksUntilCycle <= 0) stockMarketCycle();\n\n const v = Math.random();\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) continue;\n let av = (v * stock.mv) / 100;\n if (isNaN(av)) {\n av = 0.02;\n }\n\n let chc = 50;\n if (stock.b) {\n chc = (chc + stock.otlkMag) / 100;\n } else {\n chc = (chc - stock.otlkMag) / 100;\n }\n if (stock.price >= stock.cap) {\n chc = 0.1; // \"Soft Limit\" on stock price. It could still go up but its unlikely\n stock.b = false;\n }\n if (isNaN(chc)) {\n chc = 0.5;\n }\n\n const c = Math.random();\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n if (c < chc) {\n stock.changePrice(stock.price * (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Short, processOrderRefs);\n } else {\n stock.changePrice(stock.price / (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Long, processOrderRefs);\n }\n\n let otlkMagChange = stock.otlkMag * av;\n if (stock.otlkMag < 5) {\n if (stock.otlkMag <= 1) {\n otlkMagChange = 1;\n } else {\n otlkMagChange *= 10;\n }\n }\n stock.cycleForecast(otlkMagChange);\n stock.cycleForecastForecast(otlkMagChange / 2);\n\n // Shares required for price movement gradually approaches max over time\n stock.shareTxUntilMovement = Math.min(stock.shareTxUntilMovement + 10, stock.shareTxForMovement);\n }\n}\n\nexport function initStockMarketFn(): void {\n initStockMarket();\n initSymbolToStockMap();\n}\n","import { IMap } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nexport const StockSymbols: IMap = {};\n\n// Stocks for companies at which you can work\nStockSymbols[LocationName.AevumECorp] = \"ECP\";\nStockSymbols[LocationName.Sector12MegaCorp] = \"MGCP\";\nStockSymbols[LocationName.Sector12BladeIndustries] = \"BLD\";\nStockSymbols[LocationName.AevumClarkeIncorporated] = \"CLRK\";\nStockSymbols[LocationName.VolhavenOmniTekIncorporated] = \"OMTK\";\nStockSymbols[LocationName.Sector12FourSigma] = \"FSIG\";\nStockSymbols[LocationName.ChongqingKuaiGongInternational] = \"KGI\";\nStockSymbols[LocationName.AevumFulcrumTechnologies] = \"FLCM\";\nStockSymbols[LocationName.IshimaStormTechnologies] = \"STM\";\nStockSymbols[LocationName.NewTokyoDefComm] = \"DCOMM\";\nStockSymbols[LocationName.VolhavenHeliosLabs] = \"HLS\";\nStockSymbols[LocationName.NewTokyoVitaLife] = \"VITA\";\nStockSymbols[LocationName.Sector12IcarusMicrosystems] = \"ICRS\";\nStockSymbols[LocationName.Sector12UniversalEnergy] = \"UNV\";\nStockSymbols[LocationName.AevumAeroCorp] = \"AERO\";\nStockSymbols[LocationName.VolhavenOmniaCybersystems] = \"OMN\";\nStockSymbols[LocationName.ChongqingSolarisSpaceSystems] = \"SLRS\";\nStockSymbols[LocationName.NewTokyoGlobalPharmaceuticals] = \"GPH\";\nStockSymbols[LocationName.IshimaNovaMedical] = \"NVMD\";\nStockSymbols[LocationName.AevumWatchdogSecurity] = \"WDS\";\nStockSymbols[LocationName.VolhavenLexoCorp] = \"LXO\";\nStockSymbols[LocationName.AevumRhoConstruction] = \"RHOC\";\nStockSymbols[LocationName.Sector12AlphaEnterprises] = \"APHE\";\nStockSymbols[LocationName.VolhavenSysCoreSecurities] = \"SYSC\";\nStockSymbols[LocationName.VolhavenCompuTek] = \"CTK\";\nStockSymbols[LocationName.AevumNetLinkTechnologies] = \"NTLK\";\nStockSymbols[LocationName.IshimaOmegaSoftware] = \"OMGA\";\nStockSymbols[LocationName.Sector12FoodNStuff] = \"FNS\";\nStockSymbols[LocationName.Sector12JoesGuns] = \"JGN\";\n\n// Stocks for other companies\nStockSymbols[\"Sigma Cosmetics\"] = \"SGC\";\nStockSymbols[\"Catalyst Ventures\"] = \"CTYS\";\nStockSymbols[\"Microdyne Technologies\"] = \"MDYN\";\nStockSymbols[\"Titan Laboratories\"] = \"TITN\";\n","import { BitNodeMultipliers } from \"./BitNode/BitNodeMultipliers\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { calculateIntelligenceBonus } from \"./PersonObjects/formulas/intelligence\";\nimport { Server } from \"./Server/Server\";\n\n/**\n * Returns the chance the player has to successfully hack a server\n */\nexport function calculateHackingChance(server: Server, player: IPlayer): number {\n const hackFactor = 1.75;\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = hackFactor * player.skills.hacking;\n const skillChance = (skillMult - server.requiredHackingSkill) / skillMult;\n const chance =\n skillChance *\n difficultyMult *\n player.mults.hacking_chance *\n calculateIntelligenceBonus(player.skills.intelligence, 1);\n if (chance > 1) {\n return 1;\n }\n if (chance < 0) {\n return 0;\n }\n\n return chance;\n}\n\n/**\n * Returns the amount of hacking experience the player will gain upon\n * successfully hacking a server\n */\nexport function calculateHackingExpGain(server: Server, player: IPlayer): number {\n const baseExpGain = 3;\n const diffFactor = 0.3;\n if (server.baseDifficulty == null) {\n server.baseDifficulty = server.hackDifficulty;\n }\n let expGain = baseExpGain;\n expGain += server.baseDifficulty * diffFactor;\n\n return expGain * player.mults.hacking_exp * BitNodeMultipliers.HackExpGain;\n}\n\n/**\n * Returns the percentage of money that will be stolen from a server if\n * it is successfully hacked (returns the decimal form, not the actual percent value)\n */\nexport function calculatePercentMoneyHacked(server: Server, player: IPlayer): number {\n // Adjust if needed for balancing. This is the divisor for the final calculation\n const balanceFactor = 240;\n\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = (player.skills.hacking - (server.requiredHackingSkill - 1)) / player.skills.hacking;\n const percentMoneyHacked =\n (difficultyMult * skillMult * player.mults.hacking_money * BitNodeMultipliers.ScriptHackMoney) / balanceFactor;\n if (percentMoneyHacked < 0) {\n return 0;\n }\n if (percentMoneyHacked > 1) {\n return 1;\n }\n\n return percentMoneyHacked;\n}\n\n/**\n * Returns time it takes to complete a hack on a server, in seconds\n */\nexport function calculateHackingTime(server: Server, player: IPlayer): number {\n const difficultyMult = server.requiredHackingSkill * server.hackDifficulty;\n\n const baseDiff = 500;\n const baseSkill = 50;\n const diffFactor = 2.5;\n let skillFactor = diffFactor * difficultyMult + baseDiff;\n // tslint:disable-next-line\n skillFactor /= player.skills.hacking + baseSkill;\n\n const hackTimeMultiplier = 5;\n const hackingTime =\n (hackTimeMultiplier * skillFactor) /\n (player.mults.hacking_speed * calculateIntelligenceBonus(player.skills.intelligence, 1));\n\n return hackingTime;\n}\n\n/**\n * Returns time it takes to complete a grow operation on a server, in seconds\n */\nexport function calculateGrowTime(server: Server, player: IPlayer): number {\n const growTimeMultiplier = 3.2; // Relative to hacking time. 16/5 = 3.2\n\n return growTimeMultiplier * calculateHackingTime(server, player);\n}\n\n/**\n * Returns time it takes to complete a weaken operation on a server, in seconds\n */\nexport function calculateWeakenTime(server: Server, player: IPlayer): number {\n const weakenTimeMultiplier = 4; // Relative to hacking time\n\n return weakenTimeMultiplier * calculateHackingTime(server, player);\n}\n","import { IPlayer } from \"../../IPlayer\";\nimport { IReviverValue } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applyWorkStats, applyWorkStatsExp, scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\nexport const applySleeveGains = (player: IPlayer, sleeve: Sleeve, rawStats: WorkStats, cycles = 1): void => {\n const shockedStats = scaleWorkStats(rawStats, sleeve.shockBonus(), rawStats.money > 0);\n applyWorkStatsExp(sleeve, shockedStats, cycles);\n const syncStats = scaleWorkStats(shockedStats, sleeve.syncBonus(), rawStats.money > 0);\n applyWorkStats(player, player, syncStats, cycles, \"sleeves\");\n player.sleeves.filter((s) => s != sleeve).forEach((s) => applyWorkStatsExp(s, syncStats, cycles));\n};\n\nexport abstract class Work {\n type: WorkType;\n\n constructor(type: WorkType) {\n this.type = type;\n }\n\n abstract process(player: IPlayer, sleeve: Sleeve, cycles: number): number;\n abstract APICopy(): Record;\n abstract toJSON(): IReviverValue;\n finish(__player: IPlayer): void {\n /* left for children to implement */\n }\n}\n\nexport enum WorkType {\n COMPANY = \"COMPANY\",\n FACTION = \"FACTION\",\n CRIME = \"CRIME\",\n CLASS = \"CLASS\",\n RECOVERY = \"RECOVERY\",\n SYNCHRO = \"SYNCHRO\",\n BLADEBURNER = \"BLADEBURNER\",\n INFILTRATE = \"INFILTRATE\",\n SUPPORT = \"SUPPORT\",\n}\n","import { Reviver } from \"../utils/JSONReviver\";\n\nimport { IStaneksGift } from \"./IStaneksGift\";\nimport { StaneksGift } from \"./StaneksGift\";\n\nexport let staneksGift: IStaneksGift = new StaneksGift();\n\nexport function loadStaneksGift(saveString: string): void {\n if (saveString) {\n staneksGift = JSON.parse(saveString, Reviver);\n } else {\n staneksGift = new StaneksGift();\n }\n}\n\nexport function zeros(width: number, height: number): number[][] {\n const array = [];\n\n for (let i = 0; i < width; ++i) {\n array.push(Array(height).fill(0));\n }\n\n return array;\n}\n\nexport function calculateGrid(gift: IStaneksGift): number[][] {\n const newgrid = zeros(gift.width(), gift.height()) as unknown as number[][];\n for (let i = 0; i < gift.width(); i++) {\n for (let j = 0; j < gift.height(); j++) {\n const fragment = gift.fragmentAt(i, j);\n if (!fragment) continue;\n newgrid[i][j] = 1;\n }\n }\n\n return newgrid;\n}\n","import { StaticAugmentations } from \"../Augmentation/StaticAugmentations\";\nimport { Augmentation } from \"../Augmentation/Augmentation\";\nimport { PlayerOwnedAugmentation } from \"../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\nimport { Faction } from \"./Faction\";\nimport { Factions } from \"./Factions\";\nimport { Player } from \"../Player\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Settings } from \"../Settings/Settings\";\nimport {\n getHackingWorkRepGain,\n getFactionSecurityWorkRepGain,\n getFactionFieldWorkRepGain,\n} from \"../PersonObjects/formulas/reputation\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { InvitationEvent } from \"./ui/InvitationModal\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { SFC32RNG } from \"../Casino/RNG\";\nimport { isFactionWork } from \"../Work/FactionWork\";\n\nexport function inviteToFaction(faction: Faction): void {\n Player.receiveInvite(faction.name);\n faction.alreadyInvited = true;\n if (!Settings.SuppressFactionInvites) {\n InvitationEvent.emit(faction);\n }\n}\n\nexport function joinFaction(faction: Faction): void {\n if (faction.isMember) return;\n faction.isMember = true;\n Player.factions.push(faction.name);\n const allFactions = Object.values(FactionNames).map((faction) => faction as string);\n Player.factions.sort((a, b) => allFactions.indexOf(a) - allFactions.indexOf(b));\n const factionInfo = faction.getInfo();\n\n //Determine what factions you are banned from now that you have joined this faction\n for (const enemy of factionInfo.enemies) {\n if (Factions[enemy] instanceof Faction) {\n Factions[enemy].isBanned = true;\n }\n }\n for (let i = 0; i < Player.factionInvitations.length; ++i) {\n if (Player.factionInvitations[i] == faction.name || Factions[Player.factionInvitations[i]].isBanned) {\n Player.factionInvitations.splice(i, 1);\n i--;\n }\n }\n}\n\n//Returns a boolean indicating whether the player has the prerequisites for the\n//specified Augmentation\nexport function hasAugmentationPrereqs(aug: Augmentation): boolean {\n return aug.prereqs.every((aug) => Player.hasAugmentation(aug));\n}\n\nexport function purchaseAugmentation(aug: Augmentation, fac: Faction, sing = false): string {\n const hasPrereqs = hasAugmentationPrereqs(aug);\n const augCosts = aug.getCost(Player);\n if (!hasPrereqs) {\n const txt = `You must first purchase or install ${aug.prereqs\n .filter((req) => !Player.hasAugmentation(req))\n .join(\",\")} before you can purchase this one.`;\n if (sing) {\n return txt;\n } else {\n dialogBoxCreate(txt);\n }\n } else if (augCosts.moneyCost !== 0 && Player.money < augCosts.moneyCost) {\n const txt = \"You don't have enough money to purchase \" + aug.name;\n if (sing) {\n return txt;\n }\n dialogBoxCreate(txt);\n } else if (fac.playerReputation < augCosts.repCost) {\n const txt = \"You don't have enough faction reputation to purchase \" + aug.name;\n if (sing) {\n return txt;\n }\n dialogBoxCreate(txt);\n } else if (augCosts.moneyCost === 0 || Player.money >= augCosts.moneyCost) {\n const queuedAugmentation = new PlayerOwnedAugmentation(aug.name);\n if (aug.name == AugmentationNames.NeuroFluxGovernor) {\n queuedAugmentation.level = aug.getLevel(Player);\n }\n Player.queuedAugmentations.push(queuedAugmentation);\n\n Player.loseMoney(augCosts.moneyCost, \"augmentations\");\n\n if (sing) {\n return \"You purchased \" + aug.name;\n } else if (!Settings.SuppressBuyAugmentationConfirmation) {\n dialogBoxCreate(\n \"You purchased \" +\n aug.name +\n \". Its enhancements will not take \" +\n \"effect until they are installed. To install your augmentations, go to the \" +\n \"'Augmentations' tab on the left-hand navigation menu. Purchasing additional \" +\n \"augmentations will now be more expensive.\",\n );\n }\n } else {\n dialogBoxCreate(\n \"Hmm, something went wrong when trying to purchase an Augmentation. \" +\n \"Please report this to the game developer with an explanation of how to \" +\n \"reproduce this.\",\n );\n }\n return \"\";\n}\n\nexport function processPassiveFactionRepGain(numCycles: number): void {\n for (const name of Object.keys(Factions)) {\n if (isFactionWork(Player.currentWork) && name === Player.currentWork.factionName) continue;\n if (!Factions.hasOwnProperty(name)) continue;\n const faction = Factions[name];\n if (!faction.isMember) continue;\n // No passive rep for special factions\n const info = faction.getInfo();\n if (!info.offersWork()) continue;\n // No passive rep for gangs.\n if (Player.getGangName() === name) continue;\n // 0 favor = 1%/s\n // 50 favor = 6%/s\n // 100 favor = 11%/s\n const favorMult = Math.min(0.1, faction.favor / 1000 + 0.01);\n // Find the best of all possible favor gain, minimum 1 rep / 2 minute.\n const hRep = getHackingWorkRepGain(Player, faction.favor);\n const sRep = getFactionSecurityWorkRepGain(Player, faction.favor);\n const fRep = getFactionFieldWorkRepGain(Player, faction.favor);\n const rate = Math.max(hRep * favorMult, sRep * favorMult, fRep * favorMult, 1 / 120);\n\n faction.playerReputation += rate * numCycles * Player.mults.faction_rep * BitNodeMultipliers.FactionPassiveRepGain;\n }\n}\n\nexport const getFactionAugmentationsFiltered = (player: IPlayer, faction: Faction): string[] => {\n // If player has a gang with this faction, return (almost) all augmentations\n if (player.hasGangWith(faction.name)) {\n let augs = Object.values(StaticAugmentations);\n\n // Remove special augs\n augs = augs.filter((a) => !a.isSpecial && a.name !== AugmentationNames.CongruityImplant);\n\n if (player.bitNodeN === 2) {\n // TRP is not available outside of BN2 for Gangs\n augs.push(StaticAugmentations[AugmentationNames.TheRedPill]);\n }\n\n const rng = SFC32RNG(`BN${player.bitNodeN}.${player.sourceFileLvl(player.bitNodeN)}`);\n // Remove faction-unique augs that don't belong to this faction\n const uniqueFilter = (a: Augmentation): boolean => {\n // Keep all the non-unique one\n if (a.factions.length > 1) {\n return true;\n }\n // Keep all the ones that this faction has anyway.\n if (faction.augmentations.includes(a.name)) {\n return true;\n }\n\n return rng() >= 1 - BitNodeMultipliers.GangUniqueAugs;\n };\n augs = augs.filter(uniqueFilter);\n\n return augs.map((a) => a.name);\n }\n\n return faction.augmentations.slice();\n};\n","import { loadAliases, loadGlobalAliases, Aliases, GlobalAliases } from \"./Alias\";\nimport { Companies, loadCompanies } from \"./Company/Companies\";\nimport { CONSTANTS } from \"./Constants\";\nimport { Factions, loadFactions } from \"./Faction/Factions\";\nimport { loadAllGangs, AllGangs } from \"./Gang/AllGangs\";\nimport { Player, loadPlayer } from \"./Player\";\nimport {\n saveAllServers,\n loadAllServers,\n GetAllServers,\n createUniqueRandomIp,\n AddToAllServers,\n GetServer,\n} from \"./Server/AllServers\";\nimport { Settings } from \"./Settings/Settings\";\nimport { loadStockMarket, StockMarket } from \"./StockMarket/StockMarket\";\nimport { staneksGift, loadStaneksGift } from \"./CotMG/Helper\";\n\nimport { SnackbarEvents, ToastVariant } from \"./ui/React/Snackbar\";\n\nimport * as ExportBonus from \"./ExportBonus\";\n\nimport { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"./utils/JSONReviver\";\nimport { save } from \"./db\";\nimport { AwardNFG, v1APIBreak } from \"./utils/v1APIBreak\";\nimport { AugmentationNames } from \"./Augmentation/data/AugmentationNames\";\nimport { PlayerOwnedAugmentation } from \"./Augmentation/PlayerOwnedAugmentation\";\nimport { LocationName } from \"./Locations/data/LocationNames\";\nimport { SxProps } from \"@mui/system\";\nimport { PlayerObject } from \"./PersonObjects/Player/PlayerObject\";\nimport { pushGameSaved } from \"./Electron\";\nimport { defaultMonacoTheme } from \"./ScriptEditor/ui/themes\";\nimport { FactionNames } from \"./Faction/data/FactionNames\";\nimport { Faction } from \"./Faction/Faction\";\nimport { safetlyCreateUniqueServer } from \"./Server/ServerHelpers\";\nimport { SpecialServers } from \"./Server/data/SpecialServers\";\nimport { v2APIBreak } from \"./utils/v2APIBreak\";\n\n/* SaveObject.js\n * Defines the object used to save/load games\n */\n\nexport interface SaveData {\n playerIdentifier: string;\n fileName: string;\n save: string;\n savedOn: number;\n}\n\nexport interface ImportData {\n base64: string;\n playerData?: ImportPlayerData;\n}\n\nexport interface ImportPlayerData {\n identifier: string;\n lastSave: number;\n totalPlaytime: number;\n\n money: number;\n hacking: number;\n\n augmentations: number;\n factions: number;\n achievements: number;\n\n bitNode: number;\n bitNodeLevel: number;\n sourceFiles: number;\n}\n\nclass BitburnerSaveObject {\n PlayerSave = \"\";\n AllServersSave = \"\";\n CompaniesSave = \"\";\n FactionsSave = \"\";\n AliasesSave = \"\";\n GlobalAliasesSave = \"\";\n StockMarketSave = \"\";\n SettingsSave = \"\";\n VersionSave = \"\";\n AllGangsSave = \"\";\n LastExportBonus = \"\";\n StaneksGiftSave = \"\";\n\n getSaveString(excludeRunningScripts = false): string {\n this.PlayerSave = JSON.stringify(Player);\n\n this.AllServersSave = saveAllServers(excludeRunningScripts);\n this.CompaniesSave = JSON.stringify(Companies);\n this.FactionsSave = JSON.stringify(Factions);\n this.AliasesSave = JSON.stringify(Aliases);\n this.GlobalAliasesSave = JSON.stringify(GlobalAliases);\n this.StockMarketSave = JSON.stringify(StockMarket);\n this.SettingsSave = JSON.stringify(Settings);\n this.VersionSave = JSON.stringify(CONSTANTS.VersionNumber);\n this.LastExportBonus = JSON.stringify(ExportBonus.LastExportBonus);\n this.StaneksGiftSave = JSON.stringify(staneksGift);\n\n if (Player.inGang()) {\n this.AllGangsSave = JSON.stringify(AllGangs);\n }\n const saveString = btoa(unescape(encodeURIComponent(JSON.stringify(this))));\n\n return saveString;\n }\n\n saveGame(emitToastEvent = true): Promise {\n const savedOn = new Date().getTime();\n Player.lastSave = savedOn;\n const saveString = this.getSaveString(Settings.ExcludeRunningScriptsFromSave);\n return new Promise((resolve, reject) => {\n save(saveString)\n .then(() => {\n const saveData: SaveData = {\n playerIdentifier: Player.identifier,\n fileName: this.getSaveFileName(),\n save: saveString,\n savedOn,\n };\n pushGameSaved(saveData);\n\n if (emitToastEvent) {\n SnackbarEvents.emit(\"Game Saved!\", ToastVariant.INFO, 2000);\n }\n return resolve();\n })\n .catch((err) => {\n console.error(err);\n return reject();\n });\n });\n }\n\n getSaveFileName(isRecovery = false): string {\n // Save file name is based on current timestamp and BitNode\n const epochTime = Math.round(Date.now() / 1000);\n const bn = Player.bitNodeN;\n let filename = `bitburnerSave_${epochTime}_BN${bn}x${Player.sourceFileLvl(bn) + 1}.json`;\n if (isRecovery) filename = \"RECOVERY\" + filename;\n return filename;\n }\n\n exportGame(): void {\n const saveString = this.getSaveString(Settings.ExcludeRunningScriptsFromSave);\n const filename = this.getSaveFileName();\n download(filename, saveString);\n }\n\n importGame(base64Save: string, reload = true): Promise {\n if (!base64Save || base64Save === \"\") throw new Error(\"Invalid import string\");\n return save(base64Save).then(() => {\n if (reload) setTimeout(() => location.reload(), 1000);\n return Promise.resolve();\n });\n }\n\n getImportStringFromFile(files: FileList | null): Promise {\n if (files === null) return Promise.reject(new Error(\"No file selected\"));\n const file = files[0];\n if (!file) return Promise.reject(new Error(\"Invalid file selected\"));\n\n const reader = new FileReader();\n const promise: Promise = new Promise((resolve, reject) => {\n reader.onload = function (this: FileReader, e: ProgressEvent) {\n const target = e.target;\n if (target === null) {\n return reject(new Error(\"Error importing file\"));\n }\n const result = target.result;\n if (typeof result !== \"string\") {\n return reject(new Error(\"FileReader event was not type string\"));\n }\n const contents = result;\n resolve(contents);\n };\n });\n reader.readAsText(file);\n return promise;\n }\n\n async getImportDataFromString(base64Save: string): Promise {\n if (!base64Save || base64Save === \"\") throw new Error(\"Invalid import string\");\n\n let newSave;\n try {\n newSave = window.atob(base64Save);\n newSave = newSave.trim();\n } catch (error) {\n console.error(error); // We'll handle below\n }\n\n if (!newSave || newSave === \"\") {\n return Promise.reject(new Error(\"Save game had not content or was not base64 encoded\"));\n }\n\n let parsedSave;\n try {\n parsedSave = JSON.parse(newSave);\n } catch (error) {\n console.error(error); // We'll handle below\n }\n\n if (!parsedSave || parsedSave.ctor !== \"BitburnerSaveObject\" || !parsedSave.data) {\n return Promise.reject(new Error(\"Save game did not seem valid\"));\n }\n\n const data: ImportData = {\n base64: base64Save,\n };\n\n const importedPlayer = PlayerObject.fromJSON(JSON.parse(parsedSave.data.PlayerSave));\n\n const playerData: ImportPlayerData = {\n identifier: importedPlayer.identifier,\n lastSave: importedPlayer.lastSave,\n totalPlaytime: importedPlayer.totalPlaytime,\n\n money: importedPlayer.money,\n hacking: importedPlayer.skills.hacking,\n\n augmentations: importedPlayer.augmentations?.reduce((total, current) => (total += current.level), 0) ?? 0,\n factions: importedPlayer.factions?.length ?? 0,\n achievements: importedPlayer.achievements?.length ?? 0,\n\n bitNode: importedPlayer.bitNodeN,\n bitNodeLevel: importedPlayer.sourceFileLvl(Player.bitNodeN) + 1,\n sourceFiles: importedPlayer.sourceFiles?.reduce((total, current) => (total += current.lvl), 0) ?? 0,\n };\n\n data.playerData = playerData;\n return Promise.resolve(data);\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"BitburnerSaveObject\", this);\n }\n\n static fromJSON(value: IReviverValue): BitburnerSaveObject {\n return Generic_fromJSON(BitburnerSaveObject, value.data);\n }\n}\n\n// Makes necessary changes to the loaded/imported data to ensure\n// the game stills works with new versions\nfunction evaluateVersionCompatibility(ver: string | number): void {\n // We have to do this because ts won't let us otherwise\n const anyPlayer = Player as any;\n if (typeof ver === \"string\") {\n // This version refactored the Company/job-related code\n if (ver <= \"0.41.2\") {\n // Player's company position is now a string\n if (anyPlayer.companyPosition != null && typeof anyPlayer.companyPosition !== \"string\") {\n anyPlayer.companyPosition = anyPlayer.companyPosition.data.positionName;\n if (anyPlayer.companyPosition == null) {\n anyPlayer.companyPosition = \"\";\n }\n }\n\n // The \"companyName\" property of all Companies is renamed to \"name\"\n interface Company0_41_2 {\n name: string | number;\n companyName: string;\n companyPositions: Record;\n }\n for (const companyName of Object.keys(Companies)) {\n const company = Companies[companyName] as unknown as Company0_41_2;\n if (company.name == 0 && company.companyName != null) {\n company.name = company.companyName;\n }\n\n if (company.companyPositions instanceof Array) {\n const pos: Record = {};\n\n for (let i = 0; i < company.companyPositions.length; ++i) {\n pos[company.companyPositions[i]] = true;\n }\n company.companyPositions = pos;\n }\n }\n }\n\n // This version allowed players to hold multiple jobs\n if (ver < \"0.43.0\") {\n if (anyPlayer.companyName !== \"\" && anyPlayer.companyPosition != null && anyPlayer.companyPosition !== \"\") {\n anyPlayer.jobs[anyPlayer.companyName] = anyPlayer.companyPosition;\n }\n\n delete anyPlayer.companyPosition;\n }\n if (ver < \"0.56.0\") {\n for (const q of anyPlayer.queuedAugmentations) {\n if (q.name === \"Graphene BranchiBlades Upgrade\") {\n q.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n for (const q of anyPlayer.augmentations) {\n if (q.name === \"Graphene BranchiBlades Upgrade\") {\n q.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n }\n if (ver < \"0.56.1\") {\n if (anyPlayer.bladeburner === 0) {\n anyPlayer.bladeburner = null;\n }\n if (anyPlayer.gang === 0) {\n anyPlayer.gang = null;\n }\n if (anyPlayer.corporation === 0) {\n anyPlayer.corporation = null;\n }\n // convert all Messages to just filename to save space.\n const home = anyPlayer.getHomeComputer();\n for (let i = 0; i < home.messages.length; i++) {\n if (home.messages[i].filename) {\n home.messages[i] = home.messages[i].filename;\n }\n }\n }\n if (ver < \"0.58.0\") {\n const changes: [RegExp, string][] = [\n [/getStockSymbols/g, \"stock.getSymbols\"],\n [/getStockPrice/g, \"stock.getPrice\"],\n [/getStockAskPrice/g, \"stock.getAskPrice\"],\n [/getStockBidPrice/g, \"stock.getBidPrice\"],\n [/getStockPosition/g, \"stock.getPosition\"],\n [/getStockMaxShares/g, \"stock.getMaxShares\"],\n [/getStockPurchaseCost/g, \"stock.getPurchaseCost\"],\n [/getStockSaleGain/g, \"stock.getSaleGain\"],\n [/buyStock/g, \"stock.buy\"],\n [/sellStock/g, \"stock.sell\"],\n [/shortStock/g, \"stock.short\"],\n [/sellShort/g, \"stock.sellShort\"],\n [/placeOrder/g, \"stock.placeOrder\"],\n [/cancelOrder/g, \"stock.cancelOrder\"],\n [/getOrders/g, \"stock.getOrders\"],\n [/getStockVolatility/g, \"stock.getVolatility\"],\n [/getStockForecast/g, \"stock.getForecast\"],\n [/purchase4SMarketData/g, \"stock.purchase4SMarketData\"],\n [/purchase4SMarketDataTixApi/g, \"stock.purchase4SMarketDataTixApi\"],\n ];\n function convert(code: string): string {\n for (const change of changes) {\n code = code.replace(change[0], change[1]);\n }\n return code;\n }\n for (const server of GetAllServers()) {\n for (const script of server.scripts) {\n script.code = convert(script.code);\n }\n }\n }\n v1APIBreak();\n ver = 1;\n }\n if (typeof ver === \"number\") {\n if (ver < 2) {\n AwardNFG(10);\n Player.reapplyAllAugmentations(true);\n Player.reapplyAllSourceFiles();\n }\n if (ver < 3) {\n anyPlayer.money = parseFloat(anyPlayer.money);\n if (anyPlayer.corporation) {\n anyPlayer.corporation.funds = parseFloat(anyPlayer.corporation.funds);\n anyPlayer.corporation.revenue = parseFloat(anyPlayer.corporation.revenue);\n anyPlayer.corporation.expenses = parseFloat(anyPlayer.corporation.expenses);\n\n for (let i = 0; i < anyPlayer.corporation.divisions.length; ++i) {\n const ind = anyPlayer.corporation.divisions[i];\n ind.lastCycleRevenue = parseFloat(ind.lastCycleRevenue);\n ind.lastCycleExpenses = parseFloat(ind.lastCycleExpenses);\n ind.thisCycleRevenue = parseFloat(ind.thisCycleRevenue);\n ind.thisCycleExpenses = parseFloat(ind.thisCycleExpenses);\n }\n }\n }\n if (ver < 9) {\n if (StockMarket.hasOwnProperty(\"Joes Guns\")) {\n const s = StockMarket[\"Joes Guns\"];\n delete StockMarket[\"Joes Guns\"];\n StockMarket[LocationName.Sector12JoesGuns] = s;\n }\n }\n if (ver < 10) {\n // Augmentation name was changed in 0.56.0 but sleeves aug list was missed.\n if (anyPlayer.sleeves && anyPlayer.sleeves.length > 0) {\n for (const sleeve of anyPlayer.sleeves) {\n if (!sleeve.augmentations || sleeve.augmentations.length === 0) continue;\n for (const augmentation of sleeve.augmentations) {\n if (augmentation.name !== \"Graphene BranchiBlades Upgrade\") continue;\n augmentation.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n }\n }\n if (ver < 12) {\n if (anyPlayer.resleeves !== undefined) {\n delete anyPlayer.resleeves;\n }\n }\n\n if (ver < 15) {\n Settings.EditorTheme = { ...defaultMonacoTheme };\n }\n //Fix contract names\n if (ver < 16) {\n Factions[FactionNames.ShadowsOfAnarchy] = new Faction(FactionNames.ShadowsOfAnarchy);\n //Iterate over all contracts on all servers\n for (const server of GetAllServers()) {\n for (const contract of server.contracts) {\n //Rename old \"HammingCodes: Integer to encoded Binary\" contracts\n //to \"HammingCodes: Integer to Encoded Binary\"\n if (contract.type == \"HammingCodes: Integer to encoded Binary\") {\n contract.type = \"HammingCodes: Integer to Encoded Binary\";\n }\n }\n }\n }\n\n const v22PlayerBreak = () => {\n // reset HP correctly to avoid crash\n anyPlayer.hp = { current: 1, max: 1 };\n for (const sleeve of anyPlayer.sleeves) {\n sleeve.hp = { current: 1, max: 1 };\n }\n\n // transfer over old exp to new struct\n anyPlayer.exp.hacking = anyPlayer.hacking_exp;\n anyPlayer.exp.strength = anyPlayer.strength_exp;\n anyPlayer.exp.defense = anyPlayer.defense_exp;\n anyPlayer.exp.dexterity = anyPlayer.dexterity_exp;\n anyPlayer.exp.agility = anyPlayer.agility_exp;\n anyPlayer.exp.charisma = anyPlayer.charisma_exp;\n anyPlayer.exp.intelligence = anyPlayer.intelligence_exp;\n };\n\n // Fix bugged NFG accumulation in owned augmentations\n if (ver < 17) {\n let ownedNFGs = [...Player.augmentations];\n ownedNFGs = ownedNFGs.filter((aug) => aug.name === AugmentationNames.NeuroFluxGovernor);\n const newNFG = new PlayerOwnedAugmentation(AugmentationNames.NeuroFluxGovernor);\n newNFG.level = 0;\n\n for (const nfg of ownedNFGs) {\n newNFG.level += nfg.level;\n }\n\n Player.augmentations = [\n ...Player.augmentations.filter((aug) => aug.name !== AugmentationNames.NeuroFluxGovernor),\n newNFG,\n ];\n\n v22PlayerBreak();\n Player.reapplyAllAugmentations(true);\n Player.reapplyAllSourceFiles();\n }\n\n if (ver < 20) {\n // Create the darkweb for everyone but it won't be linked\n const dw = GetServer(SpecialServers.DarkWeb);\n if (!dw) {\n const darkweb = safetlyCreateUniqueServer({\n ip: createUniqueRandomIp(),\n hostname: SpecialServers.DarkWeb,\n organizationName: \"\",\n isConnectedTo: false,\n adminRights: false,\n purchasedByPlayer: false,\n maxRam: 1,\n });\n AddToAllServers(darkweb);\n }\n }\n if (ver < 21) {\n // 2.0.0 work rework\n AwardNFG(10);\n const create = anyPlayer[\"createProgramName\"];\n if (create) Player.getHomeComputer().pushProgram(create);\n const graft = anyPlayer[\"graftAugmentationName\"];\n if (graft) Player.augmentations.push({ name: graft, level: 1 });\n }\n if (ver < 22) {\n v22PlayerBreak();\n v2APIBreak();\n }\n if (ver < 23) {\n anyPlayer.currentWork = null;\n }\n if (ver < 24) {\n Player.getHomeComputer().scripts.forEach((s) => s.filename.endsWith(\".ns\") && (s.filename += \".js\"));\n }\n if (ver < 25) {\n const removePlayerFields = [\n \"hacking_chance_mult\",\n \"hacking_speed_mult\",\n \"hacking_money_mult\",\n \"hacking_grow_mult\",\n \"hacking_mult\",\n \"strength_mult\",\n \"defense_mult\",\n \"dexterity_mult\",\n \"agility_mult\",\n \"charisma_mult\",\n \"hacking_exp_mult\",\n \"strength_exp_mult\",\n \"defense_exp_mult\",\n \"dexterity_exp_mult\",\n \"agility_exp_mult\",\n \"charisma_exp_mult\",\n \"company_rep_mult\",\n \"faction_rep_mult\",\n \"crime_money_mult\",\n \"crime_success_mult\",\n \"work_money_mult\",\n \"hacknet_node_money_mult\",\n \"hacknet_node_purchase_cost_mult\",\n \"hacknet_node_ram_cost_mult\",\n \"hacknet_node_core_cost_mult\",\n \"hacknet_node_level_cost_mult\",\n \"bladeburner_max_stamina_mult\",\n \"bladeburner_stamina_gain_mult\",\n \"bladeburner_analysis_mult\",\n \"bladeburner_success_chance_mult\",\n \"hacking_exp\",\n \"strength_exp\",\n \"defense_exp\",\n \"dexterity_exp\",\n \"agility_exp\",\n \"charisma_exp\",\n \"intelligence_exp\",\n \"companyName\",\n \"isWorking\",\n \"workType\",\n \"workCostMult\",\n \"workExpMult\",\n \"currentWorkFactionName\",\n \"currentWorkFactionDescription\",\n \"workHackExpGainRate\",\n \"workStrExpGainRate\",\n \"workDefExpGainRate\",\n \"workDexExpGainRate\",\n \"workAgiExpGainRate\",\n \"workChaExpGainRate\",\n \"workRepGainRate\",\n \"workMoneyGainRate\",\n \"workMoneyLossRate\",\n \"workHackExpGained\",\n \"workStrExpGained\",\n \"workDefExpGained\",\n \"workDexExpGained\",\n \"workAgiExpGained\",\n \"workChaExpGained\",\n \"workRepGained\",\n \"workMoneyGained\",\n \"createProgramName\",\n \"createProgramReqLvl\",\n \"graftAugmentationName\",\n \"timeWorkedGraftAugmentation\",\n \"className\",\n \"crimeType\",\n \"timeWorked\",\n \"timeWorkedCreateProgram\",\n \"timeNeededToCompleteWork\",\n \"factionWorkType\",\n \"committingCrimeThruSingFn\",\n \"singFnCrimeWorkerScript\",\n \"hacking\",\n \"max_hp\",\n \"strength\",\n \"defense\",\n \"dexterity\",\n \"agility\",\n \"charisma\",\n \"intelligence\",\n ];\n const removeSleeveFields = [\n \"gymStatType\",\n \"bbAction\",\n \"bbContract\",\n \"hacking\",\n \"strength\",\n \"defense\",\n \"dexterity\",\n \"agility\",\n \"charisma\",\n \"intelligence\",\n \"max_hp\",\n \"hacking_exp\",\n \"strength_exp\",\n \"defense_exp\",\n \"dexterity_exp\",\n \"agility_exp\",\n \"charisma_exp\",\n \"intelligence_exp\",\n \"hacking_mult\",\n \"strength_mult\",\n \"defense_mult\",\n \"dexterity_mult\",\n \"agility_mult\",\n \"charisma_mult\",\n \"hacking_exp_mult\",\n \"strength_exp_mult\",\n \"defense_exp_mult\",\n \"dexterity_exp_mult\",\n \"agility_exp_mult\",\n \"charisma_exp_mult\",\n \"hacking_chance_mult\",\n \"hacking_speed_mult\",\n \"hacking_money_mult\",\n \"hacking_grow_mult\",\n \"company_rep_mult\",\n \"faction_rep_mult\",\n \"crime_money_mult\",\n \"crime_success_mult\",\n \"work_money_mult\",\n \"hacknet_node_money_mult\",\n \"hacknet_node_purchase_cost_mult\",\n \"hacknet_node_ram_cost_mult\",\n \"hacknet_node_core_cost_mult\",\n \"hacknet_node_level_cost_mult\",\n \"bladeburner_max_stamina_mult\",\n \"bladeburner_stamina_gain_mult\",\n \"bladeburner_analysis_mult\",\n \"bladeburner_success_chance_mult\",\n \"className\",\n \"crimeType\",\n \"currentTask\",\n \"currentTaskLocation\",\n \"currentTaskMaxTime\",\n \"currentTaskTime\",\n \"earningsForSleeves\",\n \"earningsForPlayer\",\n \"earningsForTask\",\n \"factionWorkType\",\n \"gainRatesForTask\",\n \"logs\",\n ];\n let intExp = Number(anyPlayer.intelligence_exp);\n if (isNaN(intExp)) intExp = 0;\n anyPlayer.exp.intelligence += intExp;\n for (const field of removePlayerFields) {\n delete anyPlayer[field];\n }\n for (const sleeve of anyPlayer.sleeves) {\n const anySleeve = sleeve as any;\n let intExp = Number(anySleeve.intelligence_exp);\n if (isNaN(intExp)) intExp = 0;\n anySleeve.exp.intelligence += intExp;\n for (const field of removeSleeveFields) {\n delete sleeve[field];\n }\n }\n }\n }\n}\n\nfunction loadGame(saveString: string): boolean {\n createScamUpdateText();\n if (!saveString) return false;\n saveString = decodeURIComponent(escape(atob(saveString)));\n\n const saveObj = JSON.parse(saveString, Reviver);\n\n loadPlayer(saveObj.PlayerSave);\n loadAllServers(saveObj.AllServersSave);\n loadCompanies(saveObj.CompaniesSave);\n loadFactions(saveObj.FactionsSave);\n\n if (saveObj.hasOwnProperty(\"StaneksGiftSave\")) {\n loadStaneksGift(saveObj.StaneksGiftSave);\n } else {\n console.warn(`Could not load Staneks Gift from save`);\n loadStaneksGift(\"\");\n }\n if (saveObj.hasOwnProperty(\"AliasesSave\")) {\n try {\n loadAliases(saveObj.AliasesSave);\n } catch (e) {\n console.warn(`Could not load Aliases from save`);\n loadAliases(\"\");\n }\n } else {\n console.warn(`Save file did not contain an Aliases property`);\n loadAliases(\"\");\n }\n if (saveObj.hasOwnProperty(\"GlobalAliasesSave\")) {\n try {\n loadGlobalAliases(saveObj.GlobalAliasesSave);\n } catch (e) {\n console.warn(`Could not load GlobalAliases from save`);\n loadGlobalAliases(\"\");\n }\n } else {\n console.warn(`Save file did not contain a GlobalAliases property`);\n loadGlobalAliases(\"\");\n }\n if (saveObj.hasOwnProperty(\"StockMarketSave\")) {\n try {\n loadStockMarket(saveObj.StockMarketSave);\n } catch (e) {\n loadStockMarket(\"\");\n }\n } else {\n loadStockMarket(\"\");\n }\n if (saveObj.hasOwnProperty(\"SettingsSave\")) {\n try {\n Settings.load(saveObj.SettingsSave);\n } catch (e) {\n console.error(\"ERROR: Failed to parse Settings. Re-initing default values\");\n Settings.init();\n }\n } else {\n Settings.init();\n }\n if (saveObj.hasOwnProperty(\"LastExportBonus\")) {\n try {\n ExportBonus.setLastExportBonus(JSON.parse(saveObj.LastExportBonus));\n } catch (err) {\n ExportBonus.setLastExportBonus(new Date().getTime());\n console.error(\"ERROR: Failed to parse last export bonus Settings \" + err);\n }\n }\n if (Player.inGang() && saveObj.hasOwnProperty(\"AllGangsSave\")) {\n try {\n loadAllGangs(saveObj.AllGangsSave);\n } catch (e) {\n console.error(\"ERROR: Failed to parse AllGangsSave: \" + e);\n }\n }\n if (saveObj.hasOwnProperty(\"VersionSave\")) {\n try {\n const ver = JSON.parse(saveObj.VersionSave, Reviver);\n evaluateVersionCompatibility(ver);\n if (window.location.href.toLowerCase().includes(\"bitburner-beta\")) {\n // Beta branch, always show changes\n createBetaUpdateText();\n } else if (ver !== CONSTANTS.VersionNumber) {\n createNewUpdateText();\n }\n } catch (e) {\n createNewUpdateText();\n }\n } else {\n createNewUpdateText();\n }\n return true;\n}\n\nfunction createScamUpdateText(): void {\n if (navigator.userAgent.indexOf(\"wv\") !== -1 && navigator.userAgent.indexOf(\"Chrome/\") !== -1) {\n setInterval(() => {\n dialogBoxCreate(\"SCAM ALERT. This app is not official and you should uninstall it.\");\n }, 1000);\n }\n}\n\nconst resets: SxProps = {\n \"& h1, & h2, & h3, & h4, & p, & a, & ul\": {\n margin: 0,\n color: Settings.theme.primary,\n whiteSpace: \"initial\",\n },\n \"& ul\": {\n paddingLeft: \"1.5em\",\n lineHeight: 1.5,\n },\n};\n\nfunction createNewUpdateText(): void {\n setTimeout(\n () =>\n dialogBoxCreate(\n \"New update! \" +\n \"Please report any bugs/issues through the GitHub repository \" +\n \"or the Bitburner subreddit (reddit.com/r/bitburner).
\" +\n CONSTANTS.LatestUpdate,\n resets,\n ),\n 1000,\n );\n}\n\nfunction createBetaUpdateText(): void {\n dialogBoxCreate(\n \"You are playing on the beta environment! This branch of the game \" +\n \"features the latest developments in the game. This version may be unstable. \" +\n \"Please report any bugs/issues through the github repository (https://github.com/danielyxie/bitburner/issues) \" +\n \"or the Bitburner subreddit (reddit.com/r/bitburner).
\" +\n CONSTANTS.LatestUpdate,\n resets,\n );\n}\n\nfunction download(filename: string, content: string): void {\n const file = new Blob([content], { type: \"text/plain\" });\n\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(function () {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n}\n\nReviver.constructors.BitburnerSaveObject = BitburnerSaveObject;\n\nexport { saveObject, loadGame, download };\n\nconst saveObject = new BitburnerSaveObject();\n","// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts\nimport { companyPositionMetadata } from \"./data/CompanyPositionsMetadata\";\nimport { CompanyPosition, IConstructorParams } from \"./CompanyPosition\";\nimport { IMap } from \"../types\";\n\nexport const CompanyPositions: IMap = {};\n\nfunction addCompanyPosition(params: IConstructorParams): void {\n if (CompanyPositions[params.name] != null) {\n console.warn(`Duplicate Company Position being defined: ${params.name}`);\n }\n CompanyPositions[params.name] = new CompanyPosition(params);\n}\n\ncompanyPositionMetadata.forEach((e) => {\n addCompanyPosition(e);\n});\n","export enum FactionWorkType {\n HACKING = \"HACKING\",\n FIELD = \"FIELD\",\n SECURITY = \"SECURITY\",\n}\n","/*\nThe game cannot block every possible exploits. Specially since one of them is\nthat you can just edit your save file and that's impragmatic to prevent.\n\nSo instead we have source file minus 1. It is not obtained by destroying a\nBitNode but instead it is awarded when the player finds innovative ways to break\nthe game, this serves 2 purpose, [one] the developpers don't have to spend time\ntrying to implement anti-cheat measures and [two] finding ways to break a\nhacking game is very much in the spirit of the game.\nSource-File minus 1 is extremely weak because it can be fully level up quickly.\n*/\n\nexport enum Exploit {\n Bypass = \"Bypass\",\n PrototypeTampering = \"PrototypeTampering\",\n Unclickable = \"Unclickable\",\n UndocumentedFunctionCall = \"UndocumentedFunctionCall\",\n TimeCompression = \"TimeCompression\",\n RealityAlteration = \"RealityAlteration\",\n N00dles = \"N00dles\",\n YoureNotMeantToAccessThis = \"YoureNotMeantToAccessThis\",\n TrueRecursion = \"TrueRecursion\",\n INeedARainbow = \"INeedARainbow\",\n // To the players reading this. Yes you're supposed to add EditSaveFile by\n // editing your save file, yes you could add them all, no we don't care\n // that's not the point.\n EditSaveFile = \"EditSaveFile\",\n}\n\nconst names: {\n [key: string]: string;\n} = {\n Bypass: \"by circumventing the ram cost of document.\",\n EditSaveFile: \"by editing your save file.\",\n PrototypeTampering: \"by tampering with Numbers prototype.\",\n TimeCompression: \"by compressing time.\",\n Unclickable: \"by clicking the unclickable.\",\n UndocumentedFunctionCall: \"by looking beyond the documentation.\",\n RealityAlteration: \"by altering reality to suit your whims.\",\n N00dles: \"by harnessing the power of the n00dles.\",\n YoureNotMeantToAccessThis: \"by accessing the dev menu.\",\n TrueRecursion: \"by truly recursing.\",\n INeedARainbow: \"by using the power of the rainbow.\",\n};\n\nexport function ExploitName(exploit: string): string {\n return names[exploit];\n}\n\nexport function sanitizeExploits(exploits: Exploit[]): Exploit[] {\n exploits = exploits.filter((e: Exploit) => Object.keys(Exploit).includes(e));\n return [...new Set(exploits)];\n}\n","import { Augmentation } from \"./Augmentation\";\nimport { StaticAugmentations } from \"./StaticAugmentations\";\nimport { PlayerOwnedAugmentation, IPlayerOwnedAugmentation } from \"./PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"./data/AugmentationNames\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { Factions, factionExists } from \"../Faction/Factions\";\nimport { Player } from \"../Player\";\nimport { prestigeAugmentation } from \"../Prestige\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { clearObject } from \"../utils/helpers/clearObject\";\n\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport {\n initBladeburnerAugmentations,\n initChurchOfTheMachineGodAugmentations,\n initGeneralAugmentations,\n initSoAAugmentations,\n initNeuroFluxGovernor,\n initUnstableCircadianModulator,\n} from \"./data/AugmentationCreator\";\nimport { Router } from \"../ui/GameRoot\";\nimport { mergeMultipliers } from \"../PersonObjects/Multipliers\";\n\nexport function AddToStaticAugmentations(aug: Augmentation): void {\n const name = aug.name;\n StaticAugmentations[name] = aug;\n}\n\nfunction createAugmentations(): void {\n [\n initNeuroFluxGovernor(),\n initUnstableCircadianModulator(),\n ...initGeneralAugmentations(),\n ...initSoAAugmentations(),\n ...(factionExists(FactionNames.Bladeburners) ? initBladeburnerAugmentations() : []),\n ...(factionExists(FactionNames.ChurchOfTheMachineGod) ? initChurchOfTheMachineGodAugmentations() : []),\n ].map(resetAugmentation);\n}\n\nfunction resetFactionAugmentations(): void {\n for (const name of Object.keys(Factions)) {\n if (Factions.hasOwnProperty(name)) {\n Factions[name].augmentations = [];\n }\n }\n}\n\nfunction initAugmentations(): void {\n resetFactionAugmentations();\n clearObject(StaticAugmentations);\n createAugmentations();\n Player.reapplyAllAugmentations();\n}\n\nexport function getBaseAugmentationPriceMultiplier(): number {\n return CONSTANTS.MultipleAugMultiplier * [1, 0.96, 0.94, 0.93][Player.sourceFileLvl(11)];\n}\nexport function getGenericAugmentationPriceMultiplier(): number {\n return Math.pow(getBaseAugmentationPriceMultiplier(), Player.queuedAugmentations.length);\n}\n\n//Resets an Augmentation during (re-initizliation)\nfunction resetAugmentation(aug: Augmentation): void {\n aug.addToFactions(aug.factions);\n const name = aug.name;\n if (augmentationExists(name)) {\n delete StaticAugmentations[name];\n }\n AddToStaticAugmentations(aug);\n}\n\nfunction applyAugmentation(aug: IPlayerOwnedAugmentation, reapply = false): void {\n const staticAugmentation = StaticAugmentations[aug.name];\n\n // Apply multipliers\n Player.mults = mergeMultipliers(Player.mults, staticAugmentation.mults);\n\n // Special logic for Congruity Implant\n if (aug.name === AugmentationNames.CongruityImplant && !reapply) {\n Player.entropy = 0;\n Player.applyEntropy(Player.entropy);\n }\n\n // Special logic for NeuroFlux Governor\n const ownedNfg = Player.augmentations.find((pAug) => pAug.name === AugmentationNames.NeuroFluxGovernor);\n if (aug.name === AugmentationNames.NeuroFluxGovernor && !reapply && ownedNfg) {\n ownedNfg.level = aug.level;\n return;\n }\n\n // Push onto Player's Augmentation list\n if (!reapply) {\n const ownedAug = new PlayerOwnedAugmentation(aug.name);\n\n Player.augmentations.push(ownedAug);\n }\n}\n\nfunction installAugmentations(force?: boolean): boolean {\n if (Player.queuedAugmentations.length == 0 && !force) {\n dialogBoxCreate(\"You have not purchased any Augmentations to install!\");\n return false;\n }\n let augmentationList = \"\";\n let nfgIndex = -1;\n for (let i = Player.queuedAugmentations.length - 1; i >= 0; i--) {\n if (Player.queuedAugmentations[i].name === AugmentationNames.NeuroFluxGovernor) {\n nfgIndex = i;\n break;\n }\n }\n for (let i = 0; i < Player.queuedAugmentations.length; ++i) {\n const ownedAug = Player.queuedAugmentations[i];\n const aug = StaticAugmentations[ownedAug.name];\n if (aug == null) {\n console.error(`Invalid augmentation: ${ownedAug.name}`);\n continue;\n }\n\n applyAugmentation(Player.queuedAugmentations[i]);\n if (ownedAug.name === AugmentationNames.NeuroFluxGovernor && i !== nfgIndex) continue;\n\n let level = \"\";\n if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {\n level = ` - ${ownedAug.level}`;\n }\n augmentationList += aug.name + level + \" \";\n }\n Player.queuedAugmentations = [];\n if (!force) {\n dialogBoxCreate(\n \"You slowly drift to sleep as scientists put you under in order \" +\n \"to install the following Augmentations: \" +\n augmentationList +\n \" You wake up in your home...you feel different...\",\n );\n }\n prestigeAugmentation();\n Router.toTerminal();\n return true;\n}\n\nfunction augmentationExists(name: string): boolean {\n return StaticAugmentations.hasOwnProperty(name);\n}\n\nexport function isRepeatableAug(aug: Augmentation): boolean {\n const augName = aug instanceof Augmentation ? aug.name : aug;\n return augName === AugmentationNames.NeuroFluxGovernor;\n}\n\nexport { installAugmentations, initAugmentations, applyAugmentation, augmentationExists };\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Money } from \"./Money\";\n\nexport function MoneyRate({ money }: { money: number }): JSX.Element {\n return ;\n}\n","import { codingContractTypesMetadata, DescriptionFunc, GeneratorFunc, SolverFunc } from \"./data/codingcontracttypes\";\n\nimport { IMap } from \"./types\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"./utils/JSONReviver\";\nimport { CodingContractEvent } from \"./ui/React/CodingContractModal\";\n\n/* tslint:disable:no-magic-numbers completed-docs max-classes-per-file no-console */\n\n/* Represents different types of problems that a Coding Contract can have */\nclass CodingContractType {\n /**\n * Function that generates a description of the problem\n */\n desc: DescriptionFunc;\n\n /**\n * Number that generally represents the problem's difficulty. Bigger numbers = harder\n */\n difficulty: number;\n\n /**\n * A function that randomly generates a valid 'data' for the problem\n */\n generate: GeneratorFunc;\n\n /**\n * Name of the type of problem\n */\n name: string;\n\n /**\n * The maximum number of tries the player gets on this kind of problem before it self-destructs\n */\n numTries: number;\n\n /**\n * Stores a function that checks if the provided answer is correct\n */\n solver: SolverFunc;\n\n constructor(\n name: string,\n desc: DescriptionFunc,\n gen: GeneratorFunc,\n solver: SolverFunc,\n diff: number,\n numTries: number,\n ) {\n this.name = name;\n this.desc = desc;\n this.generate = gen;\n this.solver = solver;\n this.difficulty = diff;\n this.numTries = numTries;\n }\n}\n\n/* Contract Types */\n// tslint:disable-next-line\nexport const CodingContractTypes: IMap = {};\n\nfor (const md of codingContractTypesMetadata) {\n // tslint:disable-next-line\n CodingContractTypes[md.name] = new CodingContractType(\n md.name,\n md.desc,\n md.gen,\n md.solver,\n md.difficulty,\n md.numTries,\n );\n}\n\n/**\n * Enum representing the different types of rewards a Coding Contract can give\n */\nexport enum CodingContractRewardType {\n FactionReputation,\n FactionReputationAll,\n CompanyReputation,\n Money, // This must always be the last reward type\n}\n\n/**\n * Enum representing the result when trying to solve the Contract\n */\nexport enum CodingContractResult {\n Success,\n Failure,\n Cancelled,\n}\n\n/**\n * A class that represents the type of reward a contract gives\n */\nexport interface ICodingContractReward {\n /* Name of Company/Faction name for reward, if applicable */\n name?: string;\n type: CodingContractRewardType;\n}\n\n/**\n * A Coding Contract is a file that poses a programming-related problem to the Player.\n * The player receives a reward if the problem is solved correctly\n */\nexport class CodingContract {\n /* Relevant data for the contract's problem */\n data: unknown;\n\n /* Contract's filename */\n fn: string;\n\n /* Describes the reward given if this Contract is solved. The reward is actually\n processed outside of this file */\n reward: ICodingContractReward | null;\n\n /* Number of times the Contract has been attempted */\n tries = 0;\n\n /* String representing the contract's type. Must match type in ContractTypes */\n type: string;\n\n constructor(fn = \"\", type = \"Find Largest Prime Factor\", reward: ICodingContractReward | null = null) {\n this.fn = fn;\n if (!this.fn.endsWith(\".cct\")) {\n this.fn += \".cct\";\n }\n\n // tslint:disable-next-line\n if (CodingContractTypes[type] == null) {\n throw new Error(`Error: invalid contract type: ${type} please contact developer`);\n }\n\n this.type = type;\n this.data = CodingContractTypes[type].generate();\n this.reward = reward;\n }\n\n getData(): unknown {\n return this.data;\n }\n\n getDescription(): string {\n return CodingContractTypes[this.type].desc(this.data);\n }\n\n getDifficulty(): number {\n return CodingContractTypes[this.type].difficulty;\n }\n\n getMaxNumTries(): number {\n return CodingContractTypes[this.type].numTries;\n }\n\n getType(): string {\n return CodingContractTypes[this.type].name;\n }\n\n isSolution(solution: string): boolean {\n return CodingContractTypes[this.type].solver(this.data, solution);\n }\n\n /**\n * Creates a popup to prompt the player to solve the problem\n */\n async prompt(): Promise {\n return new Promise((resolve) => {\n const props = {\n c: this,\n onClose: () => {\n resolve(CodingContractResult.Cancelled);\n },\n onAttempt: (val: string) => {\n if (this.isSolution(val)) {\n resolve(CodingContractResult.Success);\n } else {\n resolve(CodingContractResult.Failure);\n }\n },\n };\n CodingContractEvent.emit(props);\n });\n }\n\n /**\n * Serialize the current file to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CodingContract\", this);\n }\n\n /**\n * Initiatizes a CodingContract from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CodingContract {\n return Generic_fromJSON(CodingContract, value.data);\n }\n}\n\nReviver.constructors.CodingContract = CodingContract;\n","export enum OrderTypes {\n LimitBuy = \"Limit Buy Order\",\n LimitSell = \"Limit Sell Order\",\n StopBuy = \"Stop Buy Order\",\n StopSell = \"Stop Sell Order\",\n}\n","import { FragmentType } from \"./FragmentType\";\nimport { Shapes } from \"./data/Shapes\";\n\nexport const Fragments: Fragment[] = [];\n\nexport class Fragment {\n id: number;\n shape: boolean[][];\n type: FragmentType;\n power: number;\n limit: number;\n\n constructor(id: number, shape: boolean[][], type: FragmentType, power: number, limit: number) {\n this.id = id;\n this.shape = shape;\n this.type = type;\n this.power = power;\n this.limit = limit;\n }\n\n fullAt(x: number, y: number, rotation: number): boolean {\n if (y < 0) return false;\n if (y >= this.height(rotation)) return false;\n if (x < 0) return false;\n if (x >= this.width(rotation)) return false;\n // start xy, modifier xy\n let [sx, sy, mx, my] = [0, 0, 1, 1];\n if (rotation === 1) {\n [sx, sy, mx, my] = [this.width(rotation) - 1, 0, -1, 1];\n } else if (rotation === 2) {\n [sx, sy, mx, my] = [this.width(rotation) - 1, this.height(rotation) - 1, -1, -1];\n } else if (rotation === 3) {\n [sx, sy, mx, my] = [0, this.height(rotation) - 1, 1, -1];\n }\n let [qx, qy] = [sx + mx * x, sy + my * y];\n if (rotation % 2 === 1) [qx, qy] = [qy, qx];\n return this.shape[qy][qx];\n }\n\n width(rotation: number): number {\n if (rotation % 2 === 0) return this.shape[0].length;\n return this.shape.length;\n }\n\n height(rotation: number): number {\n if (rotation % 2 === 0) return this.shape.length;\n return this.shape[0].length;\n }\n\n // List of direct neighboors of this fragment.\n neighboors(rotation: number): number[][] {\n const candidates: number[][] = [];\n\n const add = (x: number, y: number): void => {\n if (this.fullAt(x, y, rotation)) return;\n if (candidates.some((coord) => coord[0] === x && coord[1] === y)) return;\n candidates.push([x, y]);\n };\n for (let y = 0; y < this.height(rotation); y++) {\n for (let x = 0; x < this.width(rotation); x++) {\n // This cell is full, add all it's neighboors.\n if (!this.fullAt(x, y, rotation)) continue;\n add(x - 1, y);\n add(x + 1, y);\n add(x, y - 1);\n add(x, y + 1);\n }\n }\n const cells: number[][] = [];\n for (const candidate of candidates) {\n if (cells.some((cell) => cell[0] === candidate[0] && cell[1] === candidate[1])) continue;\n cells.push(candidate);\n }\n\n return cells;\n }\n\n copy(): Fragment {\n return Object.assign({}, this);\n }\n}\n\nexport function FragmentById(id: number): Fragment | null {\n for (const fragment of Fragments) {\n if (fragment.id === id) return fragment;\n }\n return null;\n}\n\n(function () {\n const _ = false;\n const X = true;\n Fragments.push(\n new Fragment(\n 0, // id\n Shapes.S,\n FragmentType.Hacking, // type\n 1,\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 1, // id\n Shapes.Z,\n FragmentType.Hacking, // type\n 1,\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 5, // id\n Shapes.T,\n FragmentType.HackingSpeed, // type\n 1.3,\n 1, // limit\n ),\n );\n\n Fragments.push(\n new Fragment(\n 6, // id\n Shapes.I,\n FragmentType.HackingMoney, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 7, // id\n Shapes.J,\n FragmentType.HackingGrow, // type\n 0.5, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 10, // id\n Shapes.T,\n FragmentType.Strength, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 12, // id\n Shapes.L,\n FragmentType.Defense, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 14, // id\n Shapes.L,\n FragmentType.Dexterity, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 16, // id\n Shapes.S,\n FragmentType.Agility, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 18, // id\n Shapes.S,\n FragmentType.Charisma, // type\n 3, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 20, // id\n Shapes.I,\n FragmentType.HacknetMoney, // type\n 1, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 21, // id\n Shapes.O,\n FragmentType.HacknetCost, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 25, // id\n Shapes.J,\n FragmentType.Rep, // type\n 0.5, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 27, // id\n Shapes.J,\n FragmentType.WorkMoney, // type\n 10, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 28, // id\n Shapes.L,\n FragmentType.Crime, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 30, // id\n Shapes.S,\n FragmentType.Bladeburner, // type\n 0.4, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 100, // id\n [\n // shape\n [_, X, X],\n [X, X, _],\n [_, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 101, // id\n [\n // shape\n [X, X, X, X],\n [X, _, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 102, // id\n [\n // shape\n [_, X, X, X],\n [X, X, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 103, // id\n [\n // shape\n [X, X, X, _],\n [_, _, X, X],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 104, // id\n [\n // shape\n [_, X, X],\n [_, X, _],\n [X, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 105, // id\n [\n // shape\n [_, _, X],\n [_, X, X],\n [X, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 106, // id\n [\n // shape\n [X, _, _],\n [X, X, X],\n [X, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 107, // id\n [\n // shape\n [_, X, _],\n [X, X, X],\n [_, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n})();\n\nexport const NoneFragment = new Fragment(-2, [], FragmentType.None, 0, Infinity);\nexport const DeleteFragment = new Fragment(-2, [], FragmentType.Delete, 0, Infinity);\n","import * as monaco from \"monaco-editor\";\nimport type { Monaco } from \"@monaco-editor/react\";\n\nexport interface IScriptEditorTheme {\n base: \"vs\" | \"vs-dark\" | \"hc-black\";\n inherit: boolean;\n common: {\n accent: string;\n bg: string;\n fg: string;\n };\n syntax: {\n tag: string;\n entity: string;\n string: string;\n regexp: string;\n markup: string;\n keyword: string;\n comment: string;\n constant: string;\n error: string;\n };\n ui: {\n line: string;\n panel: {\n bg: string;\n selected: string;\n border: string;\n };\n selection: {\n bg: string;\n };\n };\n}\n\nexport const defaultMonacoTheme: IScriptEditorTheme = {\n base: \"vs-dark\",\n inherit: true,\n common: {\n accent: \"B5CEA8\",\n bg: \"1E1E1E\",\n fg: \"D4D4D4\",\n },\n syntax: {\n tag: \"569CD6\",\n entity: \"569CD6\",\n string: \"CE9178\",\n regexp: \"646695\",\n markup: \"569CD6\",\n keyword: \"569CD6\",\n comment: \"6A9955\",\n constant: \"569CD6\",\n error: \"F44747\",\n },\n ui: {\n line: \"1E1E1E\",\n panel: {\n bg: \"252526\",\n selected: \"252526\",\n border: \"1E1E1E\",\n },\n selection: {\n bg: \"ADD6FF26\",\n },\n },\n};\n\n// Regex used for token color validation\n// https://github.com/microsoft/vscode/blob/973684056e67153952f495fce93bf50d0ec0b892/src/vs/editor/common/languages/supports/tokenization.ts#L153\nconst colorRegExp = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\n\n// Recursively sanitize the theme data to prevent errors\n// Invalid data will be replaced with FF0000 (bright red)\nexport const sanitizeTheme = (theme: IScriptEditorTheme): void => {\n for (const [k, v] of Object.entries(theme)) {\n switch (k) {\n case \"base\":\n if (![\"vs-dark\", \"vs\"].includes(theme.base)) theme.base = \"vs-dark\";\n continue;\n case \"inherit\":\n if (typeof theme.inherit !== \"boolean\") theme.inherit = true;\n continue;\n }\n\n const repairBlock = (block: { [key: string]: object | string }): void => {\n for (const [k, v] of Object.entries(block)) {\n if (typeof v === \"object\") {\n repairBlock(v as { [key: string]: string });\n } else if (!v.match(colorRegExp)) block[k] = \"FF0000\";\n }\n };\n repairBlock(v);\n }\n};\n\nexport function makeTheme(theme: IScriptEditorTheme): monaco.editor.IStandaloneThemeData {\n const themeRules = [\n {\n token: \"\",\n background: theme.ui.line,\n foreground: theme.common.fg,\n },\n {\n token: \"identifier\",\n foreground: theme.common.accent,\n },\n {\n token: \"keyword\",\n foreground: theme.syntax.keyword,\n },\n {\n token: \"string\",\n foreground: theme.syntax.string,\n },\n {\n token: \"string.escape\",\n foreground: theme.syntax.regexp,\n },\n {\n token: \"comment\",\n foreground: theme.syntax.comment,\n },\n {\n token: \"constant\",\n foreground: theme.syntax.constant,\n },\n {\n token: \"entity\",\n foreground: theme.syntax.entity,\n },\n {\n token: \"type\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"tag\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"regexp\",\n foreground: theme.syntax.regexp,\n },\n {\n token: \"attribute\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"constructor\",\n foreground: theme.syntax.markup,\n },\n {\n token: \"invalid\",\n foreground: theme.syntax.error,\n },\n {\n token: \"number\",\n foreground: theme.common.accent,\n },\n {\n token: \"delimiter\",\n foreground: theme.common.fg,\n },\n // Custom tokens\n {\n token: \"ns\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"netscriptfunction\",\n foreground: theme.syntax.markup,\n },\n {\n token: \"otherkeywords\",\n foreground: theme.syntax.keyword,\n },\n {\n token: \"otherkeyvars\",\n foreground: theme.common.accent,\n },\n {\n token: \"this\",\n foreground: theme.syntax.tag,\n },\n ];\n\n const themeColors = Object.fromEntries(\n [\n [\"editor.background\", theme.common.bg],\n [\"editor.foreground\", theme.common.fg],\n [\"editor.lineHighlightBackground\", theme.ui.line],\n [\"editor.selectionBackground\", theme.ui.selection.bg],\n\n [\"editorSuggestWidget.background\", theme.ui.panel.bg],\n [\"editorSuggestWidget.border\", theme.ui.panel.border],\n [\"editorSuggestWidget.selectedBackground\", theme.ui.panel.selected],\n\n [\"editorHoverWidget.background\", theme.ui.panel.bg],\n [\"editorHoverWidget.border\", theme.ui.panel.border],\n\n [\"editorWidget.background\", theme.ui.panel.bg],\n [\"editorWidget.border\", theme.ui.panel.border],\n\n [\"input.background\", theme.ui.panel.bg],\n [\"input.border\", theme.ui.panel.border],\n ].map(([k, v]) => [k, \"#\" + v]),\n );\n\n return { base: theme.base, inherit: theme.inherit, rules: themeRules, colors: themeColors };\n}\n\nexport async function loadThemes(monaco: Monaco): Promise {\n monaco.editor.defineTheme(\"monokai\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"272822\",\n token: \"\",\n },\n {\n foreground: \"75715e\",\n token: \"comment\",\n },\n {\n foreground: \"e6db74\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"ae81ff\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"ae81ff\",\n },\n {\n foreground: \"ae81ff\",\n token: \"function\",\n },\n {\n foreground: \"f92672\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"ae81ff\",\n },\n {\n token: \"ns\",\n foreground: \"97d92b\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"53d3e4\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"53d3e4\",\n },\n {\n token: \"this\",\n foreground: \"fd971f\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#F8F8F2\",\n \"editor.background\": \"#272822\",\n \"editor.selectionBackground\": \"#49483E\",\n \"editor.lineHighlightBackground\": \"#3E3D32\",\n \"editorCursor.foreground\": \"#F8F8F0\",\n \"editorWhitespace.foreground\": \"#3B3A32\",\n \"editorIndentGuide.activeBackground\": \"#9D550FB0\",\n \"editor.selectionHighlightBorder\": \"#222218\",\n },\n });\n\n monaco.editor.defineTheme(\"solarized-dark\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"002b36\",\n token: \"\",\n },\n {\n foreground: \"586e75\",\n token: \"comment\",\n },\n {\n foreground: \"00afaf\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"00afaf\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"268bd2\",\n },\n {\n foreground: \"268bd2\",\n token: \"function\",\n },\n {\n foreground: \"859900\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"cb4b16\",\n },\n {\n token: \"ns\",\n foreground: \"cb4b16\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"268bd2\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"268bd2\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"b58900\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"this\",\n foreground: \"cb4b16\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#839496\",\n \"editor.background\": \"#002b36\",\n \"editor.selectionBackground\": \"#073642\",\n \"editor.lineHighlightBackground\": \"#073642\",\n \"editorCursor.foreground\": \"#819090\",\n \"editorWhitespace.foreground\": \"#073642\",\n \"editorIndentGuide.activeBackground\": \"#9D550FB0\",\n \"editor.selectionHighlightBorder\": \"#222218\",\n },\n });\n\n monaco.editor.defineTheme(\"solarized-light\", {\n base: \"vs\",\n inherit: true,\n rules: [\n {\n foreground: \"657b83\",\n background: \"fdf6e3\",\n token: \"\",\n },\n {\n foreground: \"586e75\",\n token: \"comment\",\n },\n {\n foreground: \"2aa198\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"2aa198\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"268bd2\",\n },\n {\n foreground: \"268bd2\",\n token: \"function\",\n },\n {\n foreground: \"859900\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"bc4b16\",\n },\n {\n token: \"ns\",\n foreground: \"cb4b16\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"268bd2\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"268bd2\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"b58900\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"this\",\n foreground: \"cb4b16\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#657b83\",\n \"editor.background\": \"#fdf6e3\",\n \"editor.selectionBackground\": \"#eee8d5\",\n \"editor.lineHighlightBackground\": \"#eee8d5\",\n \"editorCursor.foreground\": \"#657b83\",\n \"editorWhitespace.foreground\": \"#eee8d5\",\n \"editorIndentGuide.activeBackground\": \"#eee8d5\",\n \"editor.selectionHighlightBorder\": \"#073642\",\n },\n });\n\n monaco.editor.defineTheme(\"dracula\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"282A36\",\n foreground: \"F8F8F2\",\n token: \"\",\n },\n {\n foreground: \"6272A4\",\n token: \"comment\",\n },\n {\n foreground: \"F1FA8C\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"BD93F9\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"BD93F9\",\n },\n {\n foreground: \"FF79C6\",\n token: \"function\",\n },\n {\n foreground: \"FF79C6\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"FF79C6\",\n },\n {\n token: \"ns\",\n foreground: \"FFB86C\",\n fontStyle: \"italic\",\n },\n\n {\n token: \"netscriptfunction\",\n foreground: \"FF79C6\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"FF68A7\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"7EE9FD\",\n fontStyle: \"italic\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"delimiter.parenthesis.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"this\",\n foreground: \"BD93F9\",\n fontStyle: \"italic\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#F8F8F2\",\n \"editor.background\": \"#282A36\",\n \"editorLineNumber.foreground\": \"#6272A4\",\n \"editor.selectionBackground\": \"#44475A\",\n \"editor.selectionHighlightBackground\": \"#424450\",\n \"editor.foldBackground\": \"#21222C\",\n \"editor.wordHighlightBackground\": \"#8BE9FD50\",\n \"editor.wordHighlightStrongBackground\": \"#50FA7B50\",\n \"editor.findMatchBackground\": \"#FFB86C80\",\n \"editor.findMatchHighlightBackground\": \"#FFFFFF40\",\n \"editor.findRangeHighlightBackground\": \"#44475A75\",\n \"editor.hoverHighlightBackground\": \"#8BE9FD50\",\n \"editor.lineHighlightBorder\": \"#44475A\",\n \"editor.rangeHighlightBackground\": \"#BD93F915\",\n \"editor.snippetTabstopHighlightBackground\": \"#282A36\",\n \"editor.snippetTabstopHighlightBorder\": \"#6272A4\",\n \"editor.snippetFinalTabstopHighlightBackground\": \"#282A36\",\n \"editor.snippetFinalTabstopHighlightBorder\": \"#50FA7B\",\n },\n });\n\n monaco.editor.defineTheme(\"one-dark\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n token: \"\",\n background: \"333842\",\n foreground: \"ABB2BF\",\n },\n {\n token: \"comment\",\n foreground: \"5C6370\",\n },\n {\n token: \"string\",\n foreground: \"98C379\",\n },\n {\n token: \"number\",\n foreground: \"D19A66\",\n },\n {\n token: \"function\",\n foreground: \"C678DD\",\n },\n {\n token: \"keyword\",\n foreground: \"C678DD\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"D19A66\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"C678DD\",\n },\n {\n token: \"ns\",\n foreground: \"E06C75\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"61AFEF\",\n },\n {\n token: \"type.identifier\",\n foreground: \"E5C07B\",\n },\n {\n token: \"delimiter\",\n foreground: \"ABB2BF\",\n },\n {\n token: \"this\",\n foreground: \"E06C75\",\n },\n ],\n colors: {\n \"editor.background\": \"#282C34\",\n \"editor.foreground\": \"#ABB2BF\",\n \"editor.lineHighlightBackground\": \"#99BBFF0A\",\n \"editor.selectionBackground\": \"#3E4451\",\n \"editor.findMatchHighlightBackground\": \"#528BFF3D\",\n \"editorCursor.foreground\": \"#528BFF\",\n \"editorHoverWidget.background\": \"#21252B\",\n \"editorHoverWidget.border\": \"#181A1F\",\n \"editorIndentGuide.background\": \"#ABB2BF26\",\n \"editorIndentGuide.activeBackground\": \"#626772\",\n \"editorLineNumber.foreground\": \"#636D83\",\n \"editorLineNumber.activeForeground\": \"#ABB2BF\",\n \"editorSuggestWidget.background\": \"#21252B\",\n \"editorSuggestWidget.border\": \"#181A1F\",\n \"editorSuggestWidget.selectedBackground\": \"#2C313A\",\n \"editorWhitespace.foreground\": \"#ABB2BF26\",\n \"editorWidget.background\": \"#21252B\",\n \"editorWidget.border\": \"#3A3F4B\",\n \"input.background\": \"#1B1D23\",\n \"input.border\": \"#181A1F\",\n \"peekView.border\": \"#528BFF\",\n \"peekViewResult.background\": \"#21252B\",\n \"peekViewResult.selectionBackground\": \"#2C313A\",\n \"peekViewTitle.background\": \"#1B1D23\",\n \"peekViewEditor.background\": \"#1B1D23\",\n \"scrollbarSlider.background\": \"#4E566680\",\n \"scrollbarSlider.activeBackground\": \"#747D9180\",\n \"scrollbarSlider.hoverBackground\": \"#5A637580\",\n },\n });\n}\n","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","/**\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 { KEY } from \"../utils/helpers/keyCodes\";\n\nexport function random(min: number, max: number): number {\n return Math.random() * (max - min) + min;\n}\n\nexport const upArrowSymbol = \"↑\";\nexport const downArrowSymbol = \"↓\";\nexport const leftArrowSymbol = \"←\";\nexport const rightArrowSymbol = \"→\";\n\nexport function getArrow(event: KeyboardEvent): string {\n switch (event.key) {\n case KEY.UP_ARROW:\n case KEY.W:\n return upArrowSymbol;\n case KEY.LEFT_ARROW:\n case KEY.A:\n return leftArrowSymbol;\n case KEY.DOWN_ARROW:\n case KEY.S:\n return downArrowSymbol;\n case KEY.RIGHT_ARROW:\n case KEY.D:\n return rightArrowSymbol;\n }\n return \"\";\n}\n\nexport function getInverseArrow(event: KeyboardEvent): string {\n switch (event.key) {\n case KEY.DOWN_ARROW:\n case KEY.S:\n return upArrowSymbol;\n case KEY.RIGHT_ARROW:\n case KEY.D:\n return leftArrowSymbol;\n case KEY.UP_ARROW:\n case KEY.W:\n return downArrowSymbol;\n case KEY.LEFT_ARROW:\n case KEY.A:\n return rightArrowSymbol;\n }\n return \"\";\n}\n","import { Operation, IOperationParams } from \"./Operation\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport class BlackOperation extends Operation {\n constructor(params: IOperationParams | null = null) {\n super(params);\n this.count = 1;\n }\n\n // To be implemented by subtypes\n getActionTimePenalty(): number {\n return 1.5;\n }\n\n getChaosCompetencePenalty(/*inst: IBladeburner, params: ISuccessChanceParams*/): number {\n return 1;\n }\n\n getChaosDifficultyBonus(/*inst: IBladeburner, params: ISuccessChanceParams*/): number {\n return 1;\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"BlackOperation\", this);\n }\n\n static fromJSON(value: IReviverValue): Operation {\n return Generic_fromJSON(BlackOperation, value.data);\n }\n}\n\nReviver.constructors.BlackOperation = BlackOperation;\n","export enum CrimeType {\n None = \"\",\n SHOPLIFT = \"SHOPLIFT\", //\"shoplift\",\n ROB_STORE = \"ROBSTORE\", //\"rob a store\",\n MUG = \"MUG\", //\"mug someone\",\n LARCENY = \"LARCENY\", //\"commit larceny\",\n DRUGS = \"DRUGS\", //\"deal drugs\",\n BOND_FORGERY = \"BONDFORGERY\", //\"forge corporate bonds\",\n TRAFFIC_ARMS = \"TRAFFICKARMS\", //\"traffick illegal arms\",\n HOMICIDE = \"HOMICIDE\", //\"commit homicide\",\n GRAND_THEFT_AUTO = \"GRANDTHEFTAUTO\", //\"commit grand theft auto\",\n KIDNAP = \"KIDNAP\", //\"kidnap someone for ransom\",\n ASSASSINATION = \"ASSASSINATION\", //\"assassinate a high-profile target\",\n HEIST = \"HEIST\", //\"pull off the ultimate heist\",\n}\n","// Defines the ResearchTree that is common to all Corporation Industries\n// i.e. all Industries have these types of Research available to unlock\nimport { Research } from \"../Research\";\nimport { ResearchMap } from \"../ResearchMap\";\nimport { ResearchTree, Node } from \"../ResearchTree\";\n\nfunction makeNode(name: string): Node {\n const research: Research | null = ResearchMap[name];\n if (research == null) {\n throw new Error(`Invalid research name: ${name}`);\n }\n\n return new Node({ text: research.name, cost: research.cost });\n}\n\n// Creates the Nodes for the BaseResearchTree.\n// Return the Root Node\nfunction createBaseResearchTreeNodes(): Node {\n const rootNode: Node = makeNode(\"Hi-Tech R&D Laboratory\");\n const autoBrew: Node = makeNode(\"AutoBrew\");\n const autoParty: Node = makeNode(\"AutoPartyManager\");\n const autoDrugs: Node = makeNode(\"Automatic Drug Administration\");\n const bulkPurchasing: Node = makeNode(\"Bulk Purchasing\");\n const cph4: Node = makeNode(\"CPH4 Injections\");\n const drones: Node = makeNode(\"Drones\");\n const dronesAssembly: Node = makeNode(\"Drones - Assembly\");\n const dronesTransport: Node = makeNode(\"Drones - Transport\");\n const goJuice: Node = makeNode(\"Go-Juice\");\n const hrRecruitment: Node = makeNode(\"HRBuddy-Recruitment\");\n const hrTraining: Node = makeNode(\"HRBuddy-Training\");\n const joywire: Node = makeNode(\"JoyWire\");\n const marketta1: Node = makeNode(\"Market-TA.I\");\n const marketta2: Node = makeNode(\"Market-TA.II\");\n const overclock: Node = makeNode(\"Overclock\");\n const scAssemblers: Node = makeNode(\"Self-Correcting Assemblers\");\n const stimu: Node = makeNode(\"Sti.mu\");\n\n autoDrugs.addChild(goJuice);\n autoDrugs.addChild(cph4);\n\n drones.addChild(dronesAssembly);\n drones.addChild(dronesTransport);\n\n hrRecruitment.addChild(hrTraining);\n\n marketta1.addChild(marketta2);\n\n overclock.addChild(stimu);\n\n rootNode.addChild(autoBrew);\n rootNode.addChild(autoParty);\n rootNode.addChild(autoDrugs);\n rootNode.addChild(bulkPurchasing);\n rootNode.addChild(drones);\n rootNode.addChild(hrRecruitment);\n rootNode.addChild(joywire);\n rootNode.addChild(marketta1);\n rootNode.addChild(overclock);\n rootNode.addChild(scAssemblers);\n\n return rootNode;\n}\n\nexport function getBaseResearchTreeCopy(): ResearchTree {\n const baseResearchTree: ResearchTree = new ResearchTree();\n baseResearchTree.setRoot(createBaseResearchTreeNodes());\n\n return baseResearchTree;\n}\n\n// Base Research Tree for Industry's that make products\nexport function getProductIndustryResearchTreeCopy(): ResearchTree {\n const researchTree: ResearchTree = new ResearchTree();\n const root = createBaseResearchTreeNodes();\n\n const upgradeFulcrum = makeNode(\"uPgrade: Fulcrum\");\n const upgradeCapacity1 = makeNode(\"uPgrade: Capacity.I\");\n const upgradeCapacity2 = makeNode(\"uPgrade: Capacity.II\");\n const upgradeDashboard = makeNode(\"uPgrade: Dashboard\");\n\n upgradeCapacity1.addChild(upgradeCapacity2);\n upgradeFulcrum.addChild(upgradeCapacity1);\n upgradeFulcrum.addChild(upgradeDashboard);\n root.addChild(upgradeFulcrum);\n\n researchTree.setRoot(root);\n\n return researchTree;\n}\n","import { GetServer, createUniqueRandomIp, ipExists } from \"./AllServers\";\nimport { Server, IConstructorParams } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { calculateServerGrowth } from \"./formulas/grow\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { LiteratureNames } from \"../Literature/data/LiteratureNames\";\n\nimport { isValidNumber } from \"../utils/helpers/isValidNumber\";\n\n/**\n * Constructs a new server, while also ensuring that the new server\n * does not have a duplicate hostname/ip.\n */\nexport function safetlyCreateUniqueServer(params: IConstructorParams): Server {\n let hostname: string = params.hostname.replace(/ /g, `-`);\n\n if (params.ip != null && ipExists(params.ip)) {\n params.ip = createUniqueRandomIp();\n }\n\n if (GetServer(hostname) != null) {\n hostname = `${hostname}-0`;\n\n // Use a for loop to ensure that we don't get suck in an infinite loop somehow\n for (let i = 0; i < 200; ++i) {\n hostname = hostname.replace(/-[0-9]+$/, `-${i}`);\n if (GetServer(hostname) == null) {\n break;\n }\n }\n }\n\n params.hostname = hostname;\n return new Server(params);\n}\n\n/**\n * Returns the number of \"growth cycles\" needed to grow the specified server by the\n * specified amount.\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, in DECIMAL form (e.g. 1.5 rather than 50)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowth(server: Server, growth: number, p: IPlayer, cores = 1): number {\n let ajdGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n if (ajdGrowthRate > CONSTANTS.ServerMaxGrowthRate) {\n ajdGrowthRate = CONSTANTS.ServerMaxGrowthRate;\n }\n\n const serverGrowthPercentage = server.serverGrowth / 100;\n\n const coreBonus = 1 + (cores - 1) / 16;\n const cycles =\n Math.log(growth) /\n (Math.log(ajdGrowthRate) *\n p.mults.hacking_grow *\n serverGrowthPercentage *\n BitNodeMultipliers.ServerGrowthRate *\n coreBonus);\n\n return cycles;\n}\n\n/**\n * Replacement function for the above function that accounts for the +$1/thread functionality of grow\n * with parameters that are the same (for compatibility), but functionality is slightly different.\n * This function can ONLY be used to calculate the threads needed for a given server in its current state,\n * and so wouldn't be appropriate to use for formulas.exe or ns.growthAnalyze (as those are meant to\n * provide theoretical scenarios, or inverse hack respectively). Players COULD use this function with a\n * custom server object with the correct moneyAvailable and moneyMax amounts, combined with a multiplier\n * correctly calculated to bring the server to a new moneyAvailable (ie, passing in moneyAvailable 300 and x2\n * when you want the number of threads required to grow that particular server from 300 to 600), and this\n * function would pass back the correct number of threads. But the key thing is that it doesn't just\n * inverse/undo a hack (since the amount hacked from/to matters, not just the multiplier).\n * The above is also a rather unnecessarily obtuse way of thinking about it for a formulas.exe type of\n * application, so another function with different parameters is provided for that case below this one.\n * Instead this function is meant to hand-off from the old numCycleForGrowth function to the new one\n * where used internally for pro-rating or the like. Where you have applied a grow and want to determine\n * how many threads were needed for THAT SPECIFIC grow case using a multiplier.\n * Ideally, this function, and the original function above will be depreciated to use the methodology\n * and inputs of the new function below this one. Even for internal cases (it's actually easier to do so).\n * @param server - Server being grown\n * @param growth - How much the server money is expected to be multiplied by (e.g. 1.5 for *1.5 / +50%)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthTransition(server: Server, growth: number, p: IPlayer, cores = 1): number {\n return numCycleForGrowthCorrected(server, server.moneyAvailable * growth, server.moneyAvailable, p, cores);\n}\n\n/**\n * This function calculates the number of threads needed to grow a server from one $amount to a higher $amount\n * (ie, how many threads to grow this server from $200 to $600 for example). Used primarily for a formulas (or possibly growthAnalyze)\n * type of application. It lets you \"theorycraft\" and easily ask what-if type questions. It's also the one that implements the\n * main thread calculation algorithm, and so is the function all helper functions should call.\n * It protects the inputs (so putting in INFINITY for targetMoney will use moneyMax, putting in a negative for start will use 0, etc.)\n * @param server - Server being grown\n * @param targetMoney - How much you want the server grown TO (not by), for instance, to grow from 200 to 600, input 600\n * @param startMoney - How much you are growing the server from, for instance, to grow from 200 to 600, input 200\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthCorrected(\n server: Server,\n targetMoney: number,\n startMoney: number,\n p: IPlayer,\n cores = 1,\n): number {\n if (startMoney < 0) {\n startMoney = 0;\n } // servers \"can't\" have less than 0 dollars on them\n if (targetMoney > server.moneyMax) {\n targetMoney = server.moneyMax;\n } // can't grow a server to more than its moneyMax\n if (targetMoney <= startMoney) {\n return 0;\n } // no growth --> no threads\n\n // exponential base adjusted by security\n const adjGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n const exponentialBase = Math.min(adjGrowthRate, CONSTANTS.ServerMaxGrowthRate); // cap growth rate\n\n // total of all grow thread multipliers\n const serverGrowthPercentage = server.serverGrowth / 100.0;\n const coreMultiplier = 1 + (cores - 1) / 16;\n const threadMultiplier =\n serverGrowthPercentage * p.mults.hacking_grow * coreMultiplier * BitNodeMultipliers.ServerGrowthRate;\n\n /* To understand what is done below we need to do some math. I hope the explanation is clear enough.\n * First of, the names will be shortened for ease of manipulation:\n * n:= targetMoney (n for new), o:= startMoney (o for old), b:= exponentialBase, t:= threadMultiplier, c:= cycles/threads\n * c is what we are trying to compute.\n *\n * After growing, the money on a server is n = (o + c) * b^(c*t)\n * c appears in an exponent and outside it, this is usually solved using the productLog/lambert's W special function\n * this function will be noted W in the following\n * The idea behind lambert's W function is W(x)*exp(W(x)) = x, or in other words, solving for y, y*exp(y) = x, as a function of x\n * This function is provided in some advanced math library but we will compute it ourself here.\n *\n * Let's get back to solving the equation. It cannot be rewrote using W immediately because the base of the exponentiation is b\n * b^(c*t) = exp(ln(b)*c*t) (this is how a^b is defined on reals, it matches the definition on integers)\n * so n = (o + c) * exp(ln(b)*c*t) , W still cannot be used directly. We want to eliminate the other terms in 'o + c' and 'ln(b)*c*t'.\n *\n * A change of variable will do. The idea is to add an equation introducing a new variable (w here) in the form c = f(w) (for some f)\n * With this equation we will eliminate all references to c, then solve for w and plug the result in the new equation to get c.\n * The change of variable performed here should get rid of the unwanted terms mentionned above, c = w/(ln(b)*t) - o should help.\n * This change of variable is allowed because whatever the value of c is, there is a value of w such that this equation holds:\n * w = (c + o)*ln(b)*t (see how we used the terms we wanted to eliminate in order to build this variable change)\n *\n * We get n = (o + w/(ln(b)*t) - o) * exp(ln(b)*(w/(ln(b)*t) - o)*t) [ = w/(ln(b)*t) * exp(w - ln(b)*o*t) ]\n * The change of variable exposed exp(w - o*ln(b)*t), we can rewrite that with exp(a - b) = exp(a)/exp(b) to isolate 'w*exp(w)'\n * n = w/(ln(b)*t) * exp(w)/exp(ln(b)*o*t) [ = w*exp(w) / (ln(b) * t * b^(o*t)) ]\n * Almost there, we just need to cancel the denominator on the right side of the equation:\n * n * ln(b) * t * b^(o*t) = w*exp(w), Thus w = W(n * ln(b) * t * b^(o*t))\n * Finally we invert the variable change: c = W(n * ln(b) * t * b^(o*t))/(ln(b)*t) - o\n *\n * There is still an issue left: b^(o*t) doesn't fit inside a double precision float\n * because the typical amount of money on servers is arround 10^6~10^9\n * We need to get an approximation of W without computing the power when o is huge\n * Thankfully an approximation giving ~30% error uses log immediately so we will use\n * W(n * ln(b) * t * b^(o*t)) ~= log(n * ln(b) * t * b^(o*t)) = log(n * ln(b) * t) + log(exp(ln(b) * o * t))\n * = log(n * ln(b) * t) + ln(b) * o * t\n * (thanks to Drak for the grow formula, f4113nb34st and Wolfram Alpha for the rewrite, dwRchyngqxs for the explanation)\n */\n const x = threadMultiplier * Math.log(exponentialBase);\n const y = startMoney * x + Math.log(targetMoney * x);\n /* Code for the approximation of lambert's W function is adapted from\n * https://git.savannah.gnu.org/cgit/gsl.git/tree/specfunc/lambert.c\n * using the articles [1] https://doi.org/10.1007/BF02124750 (algorithm above)\n * and [2] https://doi.org/10.1145/361952.361970 (initial approximation when x < 2.5)\n */\n let w;\n if (y < Math.log(2.5)) {\n /* exp(y) can be safely computed without overflow.\n * The relative error on the result is better when exp(y) < 2.5\n * using Padé rational fraction approximation [2](5)\n */\n const ey = Math.exp(y);\n w = (ey + (4 / 3) * ey * ey) / (1 + (7 / 3) * ey + (5 / 6) * ey * ey);\n } else {\n /* obtain initial approximation from rough asymptotic [1](4.18)\n * w = y [- log y when 0 <= y]\n */\n w = y;\n if (y > 0) w -= Math.log(y);\n }\n let cycles = w / x - startMoney;\n\n /* Iterative refinement, the goal is to correct c until |(o + c) * b^(c*t) - n| < 1\n * or the correction on the approximation is less than 1\n * The Newton-Raphson method will be used, this method is a classic to find roots of functions\n * (given f, find c such that f(c) = 0).\n *\n * The idea of this method is to take the horizontal position at which the horizontal axis\n * intersects with of the tangent of the function's curve as the next approximation.\n * It is equivalent to treating the curve as a line (it is called a first order approximation)\n * If the current approximation is c then the new approximated value is c - f(c)/f'(c)\n * (where f' is the derivative of f).\n *\n * In our case f(c) = (o + c) * b^(c*t) - n, f'(c) = d((o + c) * b^(c*t) - n)/dc\n * = (ln(b)*t * (c + o) + 1) * b^(c*t)\n * And the update step is c[new] = c[old] - ((o + c) * b^(c*t) - n)/((ln(b)*t * (o + c) + 1) * b^(c*t))\n *\n * The main question to ask when using this method is \"does it converges?\"\n * (are the approximations getting better?), if it does then it does quickly.\n * DOES IT CONVERGES? In the present case it does. The reason why doesn't help explaining the algorithm.\n * If you are intrested then check out the wikipedia page.\n */\n const bt = exponentialBase ** threadMultiplier;\n let corr = Infinity;\n // Two sided error because we do not want to get stuck if the error stays on the wrong side\n do {\n // c should be above 0 so Halley's method can't be used, we have to stick to Newton-Raphson\n const bct = bt ** cycles;\n const opc = startMoney + cycles;\n const diff = opc * bct - targetMoney;\n corr = diff / (opc * x + 1.0) / bct;\n cycles -= corr;\n } while (Math.abs(corr) >= 1);\n /* c is now within +/- 1 of the exact result.\n * We want the ceiling of the exact result, so the floor if the approximation is above,\n * the ceiling if the approximation is in the same unit as the exact result,\n * and the ceiling + 1 if the approximation is below.\n */\n const fca = Math.floor(cycles);\n if (targetMoney <= (startMoney + fca) * Math.pow(exponentialBase, fca * threadMultiplier)) {\n return fca;\n }\n const cca = Math.ceil(cycles);\n if (targetMoney <= (startMoney + cca) * Math.pow(exponentialBase, cca * threadMultiplier)) {\n return cca;\n }\n return cca + 1;\n}\n\n/**\n * This function calculates the number of threads needed to grow a server based on a pre-hack money and hackAmt\n * (ie, if you're hacking a server with $1e6 moneyAvail for 60%, this function will tell you how many threads to regrow it\n * A good replacement for the current ns.growthAnalyze if you want players to have more control/responsibility\n * @param server - Server being grown\n * @param hackProp - the proportion of money hacked (total, not per thread, like 0.60 for hacking 60% of available money)\n * @param prehackMoney - how much money the server had before being hacked (like 200000 for hacking a server that had $200000 on it at time of hacking)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed to reverse the described hack\n */\nexport function numCycleForGrowthByHackAmt(\n server: Server,\n hackProp: number,\n prehackMoney: number,\n p: IPlayer,\n cores = 1,\n): number {\n if (prehackMoney > server.moneyMax) prehackMoney = server.moneyMax;\n const posthackMoney = Math.floor(prehackMoney * Math.min(1, Math.max(0, 1 - hackProp)));\n return numCycleForGrowthCorrected(server, prehackMoney, posthackMoney, p, cores);\n}\n\n/**\n * This function calculates the number of threads needed to grow a server based on an expected growth multiplier assuming it will max out\n * (ie, if you expect to grow a server by 60% to reach maxMoney, this function will tell you how many threads to grow it)\n * PROBABLY the best replacement for the current ns.growthAnalyze to maintain existing scripts\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, as a multiple in DECIMAL form (e.g. 1.5 rather than 50). Infinity is acceptable.\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowthByMultiplier(server: Server, growth: number, p: IPlayer, cores = 1): number {\n if (growth < 1.0) growth = 1.0;\n const targetMoney = server.moneyMax;\n const startingMoney = server.moneyMax / growth;\n return numCycleForGrowthCorrected(server, targetMoney, startingMoney, p, cores);\n}\n\n//Applied server growth for a single server. Returns the percentage growth\nexport function processSingleServerGrowth(server: Server, threads: number, p: IPlayer, cores = 1): number {\n let serverGrowth = calculateServerGrowth(server, threads, p, cores);\n if (serverGrowth < 1) {\n console.warn(\"serverGrowth calculated to be less than 1\");\n serverGrowth = 1;\n }\n\n const oldMoneyAvailable = server.moneyAvailable;\n server.moneyAvailable += 1 * threads; // It can be grown even if it has no money\n server.moneyAvailable *= serverGrowth;\n\n // in case of data corruption\n if (isValidNumber(server.moneyMax) && isNaN(server.moneyAvailable)) {\n server.moneyAvailable = server.moneyMax;\n }\n\n // cap at max\n if (isValidNumber(server.moneyMax) && server.moneyAvailable > server.moneyMax) {\n server.moneyAvailable = server.moneyMax;\n }\n\n // if there was any growth at all, increase security\n if (oldMoneyAvailable !== server.moneyAvailable) {\n let usedCycles = numCycleForGrowthCorrected(server, server.moneyAvailable, oldMoneyAvailable, p, cores);\n // Growing increases server security twice as much as hacking\n usedCycles = Math.min(Math.max(0, Math.ceil(usedCycles)), threads);\n server.fortify(2 * CONSTANTS.ServerFortifyAmount * usedCycles);\n }\n return server.moneyAvailable / oldMoneyAvailable;\n}\n\nexport function prestigeHomeComputer(player: IPlayer, homeComp: Server): void {\n const hasBitflume = homeComp.programs.includes(Programs.BitFlume.name);\n\n homeComp.programs.length = 0; //Remove programs\n homeComp.runningScripts = [];\n homeComp.serversOnNetwork = [];\n homeComp.isConnectedTo = true;\n homeComp.ramUsed = 0;\n homeComp.programs.push(Programs.NukeProgram.name);\n if (hasBitflume) {\n homeComp.programs.push(Programs.BitFlume.name);\n }\n\n //Update RAM usage on all scripts\n homeComp.scripts.forEach(function (script) {\n script.updateRamUsage(player, homeComp.scripts);\n });\n\n homeComp.messages.length = 0; //Remove .lit and .msg files\n homeComp.messages.push(LiteratureNames.HackersStartingHandbook);\n}\n\n// Returns the i-th server on the specified server's network\n// A Server's serverOnNetwork property holds only the IPs. This function returns\n// the actual Server object\nexport function getServerOnNetwork(server: BaseServer, i: number): BaseServer | null {\n if (i > server.serversOnNetwork.length) {\n console.error(\"Tried to get server on network that was out of range\");\n return null;\n }\n\n return GetServer(server.serversOnNetwork[i]);\n}\n\nexport function isBackdoorInstalled(server: BaseServer): boolean {\n if (server instanceof Server) {\n return server.backdoorInstalled;\n }\n return false;\n}\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { ICorporation } from \"../ICorporation\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number;\n corp: ICorporation;\n}\n\nexport function MoneyCost(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (!(props.corp.funds > props.money))\n return {numeralWrapper.formatMoney(props.money)};\n\n return {numeralWrapper.formatMoney(props.money)};\n}\n","export const SkillNames: {\n BladesIntuition: string;\n Cloak: string;\n Marksman: string;\n WeaponProficiency: string;\n ShortCircuit: string;\n DigitalObserver: string;\n Tracer: string;\n Overclock: string;\n Reaper: string;\n EvasiveSystem: string;\n Datamancer: string;\n CybersEdge: string;\n HandsOfMidas: string;\n Hyperdrive: string;\n} = {\n BladesIntuition: \"Blade's Intuition\",\n Cloak: \"Cloak\",\n Marksman: \"Marksman\",\n WeaponProficiency: \"Weapon Proficiency\",\n ShortCircuit: \"Short-Circuit\",\n DigitalObserver: \"Digital Observer\",\n Tracer: \"Tracer\",\n Overclock: \"Overclock\",\n Reaper: \"Reaper\",\n EvasiveSystem: \"Evasive System\",\n Datamancer: \"Datamancer\",\n CybersEdge: \"Cyber's Edge\",\n HandsOfMidas: \"Hands of Midas\",\n Hyperdrive: \"Hyperdrive\",\n};\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n reputation: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Reputation({ reputation }: { reputation: number | string }): React.ReactElement {\n const classes = useStyles();\n return (\n \n {typeof reputation === \"number\" ? numeralWrapper.formatReputation(reputation) : reputation}\n \n );\n}\n","import React, { useContext } from \"react\";\nimport { IGang } from \"../IGang\";\n\nexport const Context: {\n Gang: React.Context;\n} = {\n Gang: React.createContext({} as IGang),\n};\n\nexport const useGang = (): IGang => useContext(Context.Gang);\n","/**\n * Stops an actively-running script (represented by a WorkerScript object)\n * and removes it from the global pool of active scripts.\n */\nimport { ScriptDeath } from \"./ScriptDeath\";\nimport { WorkerScript } from \"./WorkerScript\";\nimport { workerScripts } from \"./WorkerScripts\";\nimport { WorkerScriptStartStopEventEmitter } from \"./WorkerScriptStartStopEventEmitter\";\n\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { GetServer } from \"../Server/AllServers\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { AddRecentScript } from \"./RecentScripts\";\nimport { Player } from \"../Player\";\n\nexport type killScriptParams = WorkerScript | number | { runningScript: RunningScript; hostname: string };\n\nexport function killWorkerScript(params: killScriptParams): boolean {\n if (params instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(params);\n\n return true;\n } else if (typeof params === \"number\") {\n return killWorkerScriptByPid(params);\n } else {\n // Try to kill by PID\n const res = killWorkerScriptByPid(params.runningScript.pid);\n if (res) {\n return res;\n }\n\n // If for some reason that doesn't work, we'll try the old way\n for (const ws of workerScripts.values()) {\n if (ws.scriptRef === params.runningScript) {\n stopAndCleanUpWorkerScript(ws);\n return true;\n }\n }\n\n return false;\n }\n}\n\nfunction killWorkerScriptByPid(pid: number): boolean {\n const ws = workerScripts.get(pid);\n if (ws instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(ws);\n return true;\n }\n\n return false;\n}\n\nfunction stopAndCleanUpWorkerScript(ws: WorkerScript): void {\n killNetscriptDelay(ws);\n if (typeof ws.atExit === \"function\") {\n try {\n ws.env.stopFlag = false;\n ws.atExit();\n } catch (e: unknown) {\n let message = e instanceof ScriptDeath ? e.errorMessage : String(e);\n message = message.replace(/.*\\|DELIMITER\\|/, \"\");\n dialogBoxCreate(\n `Error trying to call atExit for script ${[ws.name, ...ws.args].join(\" \")} on ${ws.hostname}\\n ${message}`,\n );\n console.error(e);\n }\n ws.atExit = undefined;\n }\n ws.env.stopFlag = true;\n removeWorkerScript(ws);\n}\n\n/**\n * Helper function that removes the script being killed from the global pool.\n * Also handles other cleanup-time operations\n *\n * @param {WorkerScript} - Identifier for WorkerScript. Either the object itself, or\n * its index in the global workerScripts array\n */\nfunction removeWorkerScript(workerScript: WorkerScript): void {\n const ip = workerScript.hostname;\n\n // Get the server on which the script runs\n const server = GetServer(ip);\n if (server == null) {\n console.error(`Could not find server on which this script is running: ${ip}`);\n return;\n }\n\n // Delete the RunningScript object from that server\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScript = server.runningScripts[i];\n if (runningScript === workerScript.scriptRef) {\n server.runningScripts.splice(i, 1);\n break;\n }\n }\n\n // Recalculate ram used on that server\n\n server.updateRamUsed(0, Player);\n for (const rs of server.runningScripts) server.updateRamUsed(server.ramUsed + rs.ramUsage * rs.threads, Player);\n\n // Delete script from global pool (workerScripts)\n workerScripts.delete(workerScript.pid);\n // const res = workerScripts.delete(workerScript.pid);\n // if (!res) {\n // console.warn(`removeWorkerScript() called with WorkerScript that wasn't in the global map:`);\n // console.warn(workerScript);\n // }\n AddRecentScript(workerScript);\n\n WorkerScriptStartStopEventEmitter.emit();\n}\n\n/**\n * Helper function that interrupts a script's delay if it is in the middle of a\n * timed, blocked operation (like hack(), sleep(), etc.). This allows scripts to\n * be killed immediately even if they're in the middle of one of those long operations\n */\nfunction killNetscriptDelay(workerScript: WorkerScript): void {\n if (workerScript instanceof WorkerScript) {\n if (workerScript.delay) {\n clearTimeout(workerScript.delay);\n if (workerScript.delayReject) {\n workerScript.delayReject(new ScriptDeath(workerScript));\n }\n }\n }\n}\n","import { 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","/**\n * Checks whether the value passed in can be considered a string.\n * @param value The value to check if it is a string.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === \"string\" || value instanceof String;\n}\n","import { IMap } from \"./types\";\nimport { Terminal } from \"./Terminal\";\n\nexport let Aliases: IMap = {};\nexport let GlobalAliases: IMap = {};\n\nexport function loadAliases(saveString: string): void {\n if (saveString === \"\") {\n Aliases = {};\n } else {\n Aliases = JSON.parse(saveString);\n }\n}\n\nexport function loadGlobalAliases(saveString: string): void {\n if (saveString === \"\") {\n GlobalAliases = {};\n } else {\n GlobalAliases = JSON.parse(saveString);\n }\n}\n\n// Prints all aliases to terminal\nexport function printAliases(): void {\n for (const name of Object.keys(Aliases)) {\n if (Aliases.hasOwnProperty(name)) {\n Terminal.print(\"alias \" + name + \"=\" + Aliases[name]);\n }\n }\n for (const name of Object.keys(GlobalAliases)) {\n if (GlobalAliases.hasOwnProperty(name)) {\n Terminal.print(\"global alias \" + name + \"=\" + GlobalAliases[name]);\n }\n }\n}\n\n// Returns true if successful, false otherwise\nexport function parseAliasDeclaration(dec: string, global = false): boolean {\n console.log(dec);\n const re = /^([\\w|!%,@-]+)=(.+)$/;\n const matches = dec.match(re);\n console.log(matches);\n if (matches == null || matches.length != 3) {\n return false;\n }\n\n if (global) {\n addGlobalAlias(matches[1], matches[2]);\n } else {\n addAlias(matches[1], matches[2]);\n }\n return true;\n}\n\nfunction addAlias(name: string, value: string): void {\n if (name in GlobalAliases) {\n delete GlobalAliases[name];\n }\n Aliases[name] = value.trim();\n}\n\nfunction addGlobalAlias(name: string, value: string): void {\n if (name in Aliases) {\n delete Aliases[name];\n }\n GlobalAliases[name] = value.trim();\n}\n\nfunction getAlias(name: string): string | null {\n if (Aliases.hasOwnProperty(name)) {\n return Aliases[name];\n }\n\n return null;\n}\n\nfunction getGlobalAlias(name: string): string | null {\n if (GlobalAliases.hasOwnProperty(name)) {\n return GlobalAliases[name];\n }\n return null;\n}\n\nexport function removeAlias(name: string): boolean {\n if (Aliases.hasOwnProperty(name)) {\n delete Aliases[name];\n return true;\n }\n\n if (GlobalAliases.hasOwnProperty(name)) {\n delete GlobalAliases[name];\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns the original string with any aliases substituted in.\n * Aliases are only applied to \"whole words\", one level deep\n */\nexport function substituteAliases(origCommand: string): string {\n const commandArray = origCommand.split(\" \");\n if (commandArray.length > 0) {\n // For the alias and unalias commands, dont substite\n if (commandArray[0] === \"unalias\" || commandArray[0] === \"alias\") {\n return commandArray.join(\" \");\n }\n\n let somethingSubstituted = true;\n let depth = 0;\n\n while (somethingSubstituted && depth < 10) {\n depth++;\n somethingSubstituted = false;\n const alias = getAlias(commandArray[0])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(0, 1, ...alias);\n //commandArray[0] = alias;\n }\n for (let i = 0; i < commandArray.length; ++i) {\n const alias = getGlobalAlias(commandArray[i])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(i, 1, ...alias);\n i += alias.length - 1;\n //commandArray[i] = alias;\n }\n }\n }\n }\n return commandArray.join(\" \");\n}\n","/**\n * Map of all Locations in the game\n * Key = Location name, value = Location object\n */\nimport { City } from \"./City\";\nimport { Cities } from \"./Cities\";\nimport { Location, IConstructorParams } from \"./Location\";\nimport { CityName } from \"./data/CityNames\";\nimport { LocationsMetadata } from \"./data/LocationsMetadata\";\n\nimport { IMap } from \"../types\";\n\nexport const Locations: IMap = {};\n\n/**\n * Here, we'll initialize both Locations and Cities data. These can both\n * be initialized from the `LocationsMetadata`\n */\nfunction constructLocation(p: IConstructorParams): Location {\n if (!p.name) {\n throw new Error(`Invalid constructor parameters for Location. No 'name' property`);\n }\n\n if (Locations[p.name] instanceof Location) {\n console.warn(`Property with name ${p.name} already exists and is being overwritten`);\n }\n\n Locations[p.name] = new Location(p);\n\n return Locations[p.name];\n}\n\n// First construct all cities\nCities[CityName.Aevum] = new City(CityName.Aevum);\nCities[CityName.Chongqing] = new City(CityName.Chongqing);\nCities[CityName.Ishima] = new City(CityName.Ishima);\nCities[CityName.NewTokyo] = new City(CityName.NewTokyo);\nCities[CityName.Sector12] = new City(CityName.Sector12);\nCities[CityName.Volhaven] = new City(CityName.Volhaven);\n\nCities[CityName.Aevum].asciiArt = `\n [aevum police headquarters] 26 \n o \n I \\\\ [bachman & associates] \n \\\\ 56 B \n x \\\\ [summit university] \n \\\\ \\\\ 28 \n \\\\ [snap fitness gym] x o--L-----------N \n K \\\\ / \n \\\\ \\\\ Q [casino] \n x 58 \\\\ / [travel agency] \n \\\\ 94 95 o \n 90 x 59 o------o | \n \\\\ / \\\\ | 98 102 103 \n o--------O------x----o 93 96 o-----+------------o o----o \n \\\\ | \\\\ / \n [hospital] \\\\ 61 [ecorp] x 31 99 o-F-o 101 \n o | \n | o---E-- | [fulcrum tech.] \n x 62 / A [aerocorp] \n [crush fitness gym] | / | \n | / | \n o--------D------+--o o \n | |\\\\ [rho construction] \n H [netlink tech.] | J \n | | \\\\ \n | 34 x \\\\ \n [clarke inc.] C | \\\\ [world stock exchange] \n | | \\\\ \n | | o-M-------R--------o \n[galactic cybersystems] G 35 x \n | [watchdog security] \n | \n 67 o \n \n [the slums] P `;\nCities[CityName.Chongqing].asciiArt = `\n | \n 75 o \n \\\\ \n o 76 \n 7 | | \n | + 77 \n [world stock exchange] F | \n \\\\ o 78 [kuaigong international] \n \\\\ / \n 38 o----x--x------x------A------G-- \n / 39 | 41 [church] \n 37 o + 79 o--x--x-C-0 \n / | / \n / x-----+-----x-----0 [hospital] \n[solaris space system] B | \n | + 80 \n | | \n 34 o E [travel agency] \n | \n | \n x 82 \n [the slums] D `;\nCities[CityName.Ishima].asciiArt = `\n o 59 \n o o | \n [storm tech.] | | G [world stock exchange] \n | | 28 | \n 23 o--C------o--------+----x----o | \n / / 25 | 27 \\\\ x 57 \n / / | \\\\ | \n / / | \\\\ | \n o 22 o | \\\\| 29/56 \n | | o \n | [hospital] D / \\\\ 3 2 1 \n o | / \\\\ o-------x------o \n / o / \\\\ / \n 48 o / 55 x \\\\ / \n \\\\ / / x [glitch] \n \\\\ / [nova medical] / 4/30 \\\\ \n 49 x A \\\\ H \n / \\\\ / \\\\ \n / \\\\ [travel agency] F o 31 \n / \\\\ 51 / \n / o----B------x-----o \n o 50 52 \n [omega soft.] \n [the slums] E `;\nCities[CityName.NewTokyo].asciiArt = `\n \n \n o \n \\\\ \n [arcade] E [defcomm] \n \\\\ \n o--x---A--x--o [travel agency] \n 7 8 10 H \n [vitalife] o 12 [global pharmaceuticals] \n | \n o--D-x----x-------x-C-+--------x--x-B-x---x-o \n 21 22 23 \\\\ 24 25 26 27 \n \\\\ \n [noodle bar] x 14 \n \\\\ \n \\\\ \n [hospital] o 15 [world stock exchange] \n | \n o--x--F--x-----x-----x---+---x----x--I--x-o \n | \n | \n o 17 \n \n \n \n G [the slums] \n `;\nCities[CityName.Sector12].asciiArt = `\n 78 o 97 \n o [icarus microsystems] / \n N [powerhouse gym] o I \n 1 | | / \n o-----+---x----o 4 A [alpha ent.] o-------o / \n | 3 \\\\ | \\\\ / \n | \\\\ | [iron gym] x 95 \n (79) x \\\\ | / \\\\ \n | o-E----+----x----J--o 10 / o----T--o \n | | 8 \\\\ 94 x \n 80 x [city hall] | x 11 / [world stock exchange]\n | | \\\\ / \n | C [cia] \\\\ / \n Q [hospital] | F P [universal energy] \n | o [deltaone] \\\\ / \n | 35 o---------x 13/92/36 \n L [megacorp] 33 / / \\\\ \n | o------------o 34 / \\\\ \n (29) | / [carmichael sec.] D \\\\ \n o-----+-----x------o / O [rothman university] \n | 31 32 [nsa] M \n | / \n B [blade industries] H \n | / [four sigma] \n | [joe's guns] / \n | / \n 85 o--G--------K--------S-------o 88 [the slums] R \n \n [foodnstuff] [travel agency] `;\nCities[CityName.Volhaven].asciiArt = `\n [omnia cybersystems] \n 17 66 68 \n o o------G-------o \n \\\\ / \\\\ \n \\\\ o 65 o 69 \n [syscore sec.] H | | \n \\\\ | | [millenium fitness gym] \n \\\\ | 21 22 23 24 | 26 \n o----+--x--x----x---x---+-----x-------D-----o \n 19 | | 28 \n | F [omnitek inc.] \n [hospital] J 63 o \n | / 72 \n 3 | 5 6 / 9 \n o--------+----x-----x----+----------M-------o \n / | | \n / 61 x [helios labs] B [world stock exchange] \n [travel agency] L | | \n / | o \n / E [nwo] / 75 \n / [computek] | / \n / A-------o------I-----o \n 1 o | | \n | [zb] o 77 \n [lexocorp] C \n | \n o \n 57 \n \n \n [the slums] K `;\n\n// Then construct all locations, and add them to the cities as we go.\nfor (const metadata of LocationsMetadata) {\n const loc = constructLocation(metadata);\n\n const cityName = loc.city;\n if (cityName === null) {\n // Generic location, add to all cities\n for (const city of Object.keys(Cities)) {\n Cities[city].addLocation(loc.name);\n }\n } else {\n Cities[cityName].addLocation(loc.name);\n }\n}\n","/**\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 { 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","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","/**\n * Functions for handling WorkerScripts, which are the underlying mechanism\n * that allows for scripts to run\n */\nimport { killWorkerScript } from \"./Netscript/killWorkerScript\";\nimport { ScriptDeath } from \"./Netscript/ScriptDeath\";\nimport { WorkerScript } from \"./Netscript/WorkerScript\";\nimport { workerScripts } from \"./Netscript/WorkerScripts\";\nimport { WorkerScriptStartStopEventEmitter } from \"./Netscript/WorkerScriptStartStopEventEmitter\";\nimport { generateNextPid } from \"./Netscript/Pid\";\n\nimport { CONSTANTS } from \"./Constants\";\nimport { Interpreter } from \"./ThirdParty/JSInterpreter\";\nimport { NetscriptFunctions } from \"./NetscriptFunctions\";\nimport { executeJSScript, Node } from \"./NetscriptJSEvaluator\";\nimport { NetscriptPort, IPort } from \"./NetscriptPort\";\nimport { RunningScript } from \"./Script/RunningScript\";\nimport { getRamUsageFromRunningScript } from \"./Script/RunningScriptHelpers\";\nimport { scriptCalculateOfflineProduction } from \"./Script/ScriptHelpers\";\nimport { Script } from \"./Script/Script\";\nimport { GetAllServers } from \"./Server/AllServers\";\nimport { BaseServer } from \"./Server/BaseServer\";\nimport { Settings } from \"./Settings/Settings\";\n\nimport { generate } from \"escodegen\";\n\nimport { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { arrayToString } from \"./utils/helpers/arrayToString\";\nimport { roundToTwo } from \"./utils/helpers/roundToTwo\";\nimport { isString } from \"./utils/helpers/isString\";\n\nimport { parse } from \"acorn\";\nimport { simple as walksimple } from \"acorn-walk\";\nimport { areFilesEqual } from \"./Terminal/DirectoryHelpers\";\nimport { Player } from \"./Player\";\nimport { Terminal } from \"./Terminal\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { ScriptArg } from \"./Netscript/ScriptArg\";\nimport { helpers } from \"./Netscript/NetscriptHelpers\";\nimport { NS } from \"./ScriptEditor/NetscriptDefinitions\";\n\n// Netscript Ports are instantiated here\nexport const NetscriptPorts: IPort[] = [];\nfor (let i = 0; i < CONSTANTS.NumNetscriptPorts; ++i) {\n NetscriptPorts.push(NetscriptPort());\n}\n\nexport function prestigeWorkerScripts(): void {\n for (const ws of workerScripts.values()) {\n ws.env.stopFlag = true;\n killWorkerScript(ws);\n }\n for (const port of NetscriptPorts) {\n port.clear();\n }\n\n WorkerScriptStartStopEventEmitter.emit();\n workerScripts.clear();\n}\n\n// JS script promises need a little massaging to have the same guarantees as netscript\n// promises. This does said massaging and kicks the script off. It returns a promise\n// that resolves or rejects when the corresponding worker script is done.\nfunction startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Promise {\n workerScript.running = true;\n return new Promise((resolve, reject) => {\n executeJSScript(player, workerScript.getServer().scripts, workerScript)\n .then(() => {\n resolve();\n })\n .catch((e) => reject(e));\n }).catch((e) => {\n if (e instanceof Error) {\n if (e instanceof SyntaxError) {\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(\n workerScript,\n e.message + \" (sorry we can't be more helpful)\",\n );\n } else {\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(\n workerScript,\n e.message + ((e.stack && \"\\nstack:\\n\" + e.stack.toString()) || \"\"),\n );\n }\n throw new ScriptDeath(workerScript);\n } else if (helpers.isScriptErrorMessage(e)) {\n workerScript.errorMessage = e;\n throw new ScriptDeath(workerScript);\n } else if (e instanceof ScriptDeath) {\n throw e;\n }\n\n // Don't know what to do with it, let's try making an error message out of it\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(workerScript, \"\" + e);\n throw new ScriptDeath(workerScript);\n });\n}\n\nfunction startNetscript1Script(workerScript: WorkerScript): Promise {\n const code = workerScript.code;\n workerScript.running = true;\n\n //Process imports\n let codeWithImports, codeLineOffset;\n try {\n const importProcessingRes = processNetscript1Imports(code, workerScript);\n codeWithImports = importProcessingRes.code;\n codeLineOffset = importProcessingRes.lineOffset;\n } catch (e: unknown) {\n dialogBoxCreate(\"Error processing Imports in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n const interpreterInitialization = function (int: Interpreter, scope: unknown): void {\n interface NS1 extends NS {\n [key: string]: any;\n }\n //Add the Netscript environment\n const ns = NetscriptFunctions(workerScript) as NS1;\n for (const name of Object.keys(ns)) {\n const entry = ns[name];\n if (typeof entry === \"function\") {\n //Async functions need to be wrapped. See JS-Interpreter documentation\n const asyncFuncs = [\"hack\", \"grow\", \"weaken\", \"sleep\", \"prompt\", \"manualHack\", \"share\", \"wget\"];\n\n if (asyncFuncs.includes(name)) {\n const tempWrapper = function (...args: unknown[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length - 1; ++i) {\n if (typeof args[i] === \"object\" || Array.isArray(args[i])) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n const callb = args[args.length - 1];\n const fnPromise = entry(...fnArgs);\n fnPromise\n .then(function (res: unknown) {\n if (typeof callb === \"function\") {\n callb(res);\n }\n })\n .catch(function (err: unknown) {\n if (typeof err === \"string\") {\n console.error(err);\n const errorTextArray = err.split(\"|DELIMITER|\");\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n let msg = `${scriptName}@${hostname} `;\n msg += \" \";\n msg += errorMsg;\n dialogBoxCreate(msg);\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n });\n };\n int.setProperty(scope, name, int.createAsyncFunction(tempWrapper));\n } else if (\n name === \"sprintf\" ||\n name === \"vsprintf\" ||\n name === \"scp\" ||\n name == \"write\" ||\n name === \"tryWritePort\" ||\n name === \"run\" ||\n name === \"exec\"\n ) {\n const tempWrapper = function (...args: unknown[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length; ++i) {\n if (typeof args[i] === \"object\" || Array.isArray(args[i])) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n\n return entry(...fnArgs);\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n } else {\n const tempWrapper = function (...args: unknown[]): unknown {\n const res = entry(...args);\n\n if (res == null) {\n return res;\n } else if (res.constructor === Array || res === Object(res)) {\n //Objects and Arrays must be converted to the interpreter's format\n return int.nativeToPseudo(res);\n } else {\n return res;\n }\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n }\n } else {\n //bladeburner, or anything else\n int.setProperty(scope, name, int.nativeToPseudo(entry));\n }\n }\n\n //Add the arguments\n int.setProperty(scope, \"args\", int.nativeToPseudo(workerScript.args));\n };\n\n let interpreter: Interpreter;\n try {\n interpreter = new Interpreter(codeWithImports, interpreterInitialization, codeLineOffset);\n } catch (e: unknown) {\n dialogBoxCreate(\"Syntax ERROR in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n function runInterpreter(): void {\n try {\n if (workerScript.env.stopFlag) {\n return reject(new ScriptDeath(workerScript));\n }\n\n let more = true;\n let i = 0;\n while (i < 3 && more) {\n more = more && interpreter.step();\n i++;\n }\n\n if (more) {\n setTimeout(runInterpreter, Settings.CodeInstructionRunTime);\n } else {\n resolve();\n }\n } catch (_e: unknown) {\n let e = String(_e);\n if (!helpers.isScriptErrorMessage(e)) {\n e = helpers.makeRuntimeRejectMsg(workerScript, e);\n }\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n }\n }\n\n try {\n runInterpreter();\n } catch (e: unknown) {\n if (isString(e)) {\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n } else if (e instanceof ScriptDeath) {\n return reject(e);\n } else {\n console.error(e);\n return reject(new ScriptDeath(workerScript));\n }\n }\n });\n}\n\n/* Since the JS Interpreter used for Netscript 1.0 only supports ES5, the keyword\n 'import' throws an error. However, since we want to support import funtionality\n we'll implement it ourselves by parsing the Nodes in the AST out.\n\n @param code - The script's code\n @returns {Object} {\n code: Newly-generated code with imported functions\n lineOffset: Net number of lines of code added/removed due to imported functions\n Should typically be positive\n }\n*/\nfunction processNetscript1Imports(code: string, workerScript: WorkerScript): { code: string; lineOffset: number } {\n //allowReserved prevents 'import' from throwing error in ES5\n const ast: Node = parse(code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n const server = workerScript.getServer();\n if (server == null) {\n throw new Error(\"Failed to find underlying Server object for script\");\n }\n\n function getScript(scriptName: string): Script | null {\n for (let i = 0; i < server.scripts.length; ++i) {\n if (server.scripts[i].filename === scriptName) {\n return server.scripts[i];\n }\n }\n return null;\n }\n\n let generatedCode = \"\"; // Generated Javascript Code\n let hasImports = false;\n\n // Walk over the tree and process ImportDeclaration nodes\n walksimple(ast, {\n ImportDeclaration: (node: Node) => {\n hasImports = true;\n let scriptName = node.source.value;\n if (scriptName.startsWith(\"./\")) {\n scriptName = scriptName.slice(2);\n }\n const script = getScript(scriptName);\n if (script == null) {\n throw new Error(\"'Import' failed due to invalid script: \" + scriptName);\n }\n const scriptAst = parse(script.code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n if (node.specifiers.length === 1 && node.specifiers[0].type === \"ImportNamespaceSpecifier\") {\n // import * as namespace from script\n const namespace = node.specifiers[0].local.name;\n const fnNames: string[] = []; //Names only\n const fnDeclarations: Node[] = []; //FunctionDeclaration Node objects\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n fnNames.push(node.id.name);\n fnDeclarations.push(node);\n },\n });\n\n //Now we have to generate the code that would create the namespace\n generatedCode += `var ${namespace};\\n(function (namespace) {\\n`;\n\n //Add the function declarations\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n\n //Add functions to namespace\n fnNames.forEach((fnName) => {\n generatedCode += \"namespace.\" + fnName + \" = \" + fnName;\n generatedCode += \"\\n\";\n });\n\n //Finish\n generatedCode += `})(${namespace} || (\" + namespace + \" = {}));\\n`;\n } else {\n //import {...} from script\n\n //Get array of all fns to import\n const fnsToImport: string[] = [];\n node.specifiers.forEach((e: Node) => {\n fnsToImport.push(e.local.name);\n });\n\n //Walk through script and get FunctionDeclaration code for all specified fns\n const fnDeclarations: Node[] = [];\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n if (fnsToImport.includes(node.id.name)) {\n fnDeclarations.push(node);\n }\n },\n });\n\n //Convert FunctionDeclarations into code\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n }\n },\n });\n\n //If there are no imports, just return the original code\n if (!hasImports) {\n return { code: code, lineOffset: 0 };\n }\n\n //Remove ImportDeclarations from AST. These ImportDeclarations must be in top-level\n let linesRemoved = 0;\n if (ast.type !== \"Program\" || ast.body == null) {\n throw new Error(\"Code could not be properly parsed\");\n }\n for (let i = ast.body.length - 1; i >= 0; --i) {\n if (ast.body[i].type === \"ImportDeclaration\") {\n ast.body.splice(i, 1);\n ++linesRemoved;\n }\n }\n\n //Calculated line offset\n const lineOffset = (generatedCode.match(/\\n/g) || []).length - linesRemoved;\n\n //Convert the AST back into code\n code = generate(ast);\n\n //Add the imported code and re-generate in ES5 (JS Interpreter for NS1 only supports ES5);\n code = generatedCode + code;\n\n const res = {\n code: code,\n lineOffset: lineOffset,\n };\n return res;\n}\n\n/**\n * Used to start a RunningScript (by creating and starting its\n * corresponding WorkerScript), and add the RunningScript to the server on which\n * it is active\n */\nexport function startWorkerScript(\n player: IPlayer,\n runningScript: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): number {\n if (createAndAddWorkerScript(player, runningScript, server, parent)) {\n // Push onto runningScripts.\n // This has to come after createAndAddWorkerScript() because that fn updates RAM usage\n server.runScript(runningScript);\n\n // Once the WorkerScript is constructed in createAndAddWorkerScript(), the RunningScript\n // object should have a PID assigned to it, so we return that\n return runningScript.pid;\n }\n\n return 0;\n}\n\n/**\n * Given a RunningScript object, constructs its corresponding WorkerScript,\n * adds it to the global 'workerScripts' pool, and begins executing it.\n * @param {RunningScript} runningScriptObj - Script that's being run\n * @param {Server} server - Server on which the script is to be run\n * returns {boolean} indicating whether or not the workerScript was successfully added\n */\nfunction createAndAddWorkerScript(\n player: IPlayer,\n runningScriptObj: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): boolean {\n // Update server's ram usage\n let threads = 1;\n if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) {\n threads = runningScriptObj.threads;\n } else {\n runningScriptObj.threads = 1;\n }\n const oneRamUsage = getRamUsageFromRunningScript(runningScriptObj);\n const ramUsage = roundToTwo(oneRamUsage * threads);\n const ramAvailable = server.maxRam - server.ramUsed;\n if (ramUsage > ramAvailable + 0.001) {\n dialogBoxCreate(\n `Not enough RAM to run script ${runningScriptObj.filename} with args ` +\n `${arrayToString(runningScriptObj.args)}. This likely occurred because you re-loaded ` +\n `the game and the script's RAM usage increased (either because of an update to the game or ` +\n `your changes to the script.)`,\n );\n return false;\n }\n\n server.updateRamUsed(roundToTwo(server.ramUsed + ramUsage), Player);\n\n // Get the pid\n const pid = generateNextPid();\n if (pid === -1) {\n throw new Error(\n `Failed to start script because could not find available PID. This is most ` +\n `because you have too many scripts running.`,\n );\n }\n\n // Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying\n // RunningScript's PID as well\n const workerScript = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);\n workerScript.ramUsage = oneRamUsage;\n\n // Add the WorkerScript to the global pool\n workerScripts.set(pid, workerScript);\n WorkerScriptStartStopEventEmitter.emit();\n\n // Start the script's execution\n let scriptExecution: Promise | null = null; // Script's resulting promise\n if (workerScript.name.endsWith(\".js\")) {\n scriptExecution = startNetscript2Script(player, workerScript);\n } else {\n scriptExecution = startNetscript1Script(workerScript);\n if (!(scriptExecution instanceof Promise)) {\n return false;\n }\n }\n\n // Once the code finishes (either resolved or rejected, doesnt matter), set its\n // running status to false\n scriptExecution\n .then(function () {\n workerScript.running = false;\n workerScript.env.stopFlag = true;\n // On natural death, the earnings are transfered to the parent if it still exists.\n if (parent !== undefined) {\n if (parent.running) {\n parent.scriptRef.onlineExpGained += runningScriptObj.onlineExpGained;\n parent.scriptRef.onlineMoneyMade += runningScriptObj.onlineMoneyMade;\n }\n }\n\n killWorkerScript(workerScript);\n workerScript.log(\"\", () => \"Script finished running\");\n })\n .catch(function (e) {\n if (e instanceof Error) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\"Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: \" + e.toString());\n return;\n } else if (e instanceof ScriptDeath) {\n if (helpers.isScriptErrorMessage(workerScript.errorMessage)) {\n const errorTextArray = workerScript.errorMessage.split(\"|DELIMITER|\");\n if (errorTextArray.length != 4) {\n console.error(\"ERROR: Something wrong with Error text in evaluator...\");\n console.error(\"Error text: \" + workerScript.errorMessage);\n return;\n }\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n\n let msg = `RUNTIME ERROR ${scriptName}@${hostname} (PID - ${workerScript.pid}) `;\n if (workerScript.args.length > 0) {\n msg += `Args: ${arrayToString(workerScript.args)} `;\n }\n msg += \" \";\n msg += errorMsg;\n\n dialogBoxCreate(msg);\n workerScript.log(\"\", () => \"Script crashed with runtime error\");\n } else {\n workerScript.log(\"\", () => \"Script killed\");\n return; // Already killed, so stop here\n }\n } else if (helpers.isScriptErrorMessage(e)) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\n \"ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: \" +\n e.toString(),\n );\n return;\n } else {\n dialogBoxCreate(\"An unknown script died for an unknown reason. This is a bug please contact game dev\");\n console.error(e);\n }\n\n killWorkerScript(workerScript);\n });\n\n return true;\n}\n\n/**\n * Updates the online running time stat of all running scripts\n */\nexport function updateOnlineScriptTimes(numCycles = 1): void {\n const time = (numCycles * CONSTANTS._idleSpeed) / 1000; //seconds\n for (const ws of workerScripts.values()) {\n ws.scriptRef.onlineRunningTime += time;\n }\n}\n\n/**\n * Called when the game is loaded. Loads all running scripts (from all servers)\n * into worker scripts so that they will start running\n */\nexport function loadAllRunningScripts(player: IPlayer): void {\n const skipScriptLoad = window.location.href.toLowerCase().indexOf(\"?noscripts\") !== -1;\n if (skipScriptLoad) {\n Terminal.warn(\"Skipped loading player scripts during startup\");\n console.info(\"Skipping the load of any scripts during startup\");\n }\n for (const server of GetAllServers()) {\n // Reset each server's RAM usage to 0\n server.ramUsed = 0;\n\n // Reset modules on all scripts\n for (let i = 0; i < server.scripts.length; ++i) {\n server.scripts[i].markUpdated();\n }\n\n if (skipScriptLoad) {\n // Start game with no scripts\n server.runningScripts.length = 0;\n } else {\n for (let j = 0; j < server.runningScripts.length; ++j) {\n const fileName = server.runningScripts[j].filename;\n createAndAddWorkerScript(player, server.runningScripts[j], server);\n\n if (!server.runningScripts[j]) {\n // createAndAddWorkerScript can modify the server.runningScripts array if a script is invalid\n console.error(`createAndAddWorkerScript removed ${fileName} from ${server}`);\n continue;\n }\n\n // Offline production\n scriptCalculateOfflineProduction(server.runningScripts[j]);\n }\n }\n }\n}\n\n/**\n * Run a script from inside another script (run(), exec(), spawn(), etc.)\n */\nexport function runScriptFromScript(\n player: IPlayer,\n caller: string,\n server: BaseServer,\n scriptname: string,\n args: ScriptArg[],\n workerScript: WorkerScript,\n threads = 1,\n): number {\n // Sanitize arguments\n if (!(workerScript instanceof WorkerScript)) {\n return 0;\n }\n\n if (typeof scriptname !== \"string\" || !Array.isArray(args)) {\n workerScript.log(caller, () => `Invalid arguments: scriptname='${scriptname} args='${args}'`);\n console.error(`runScriptFromScript() failed due to invalid arguments`);\n return 0;\n }\n\n args.forEach((arg, i) => {\n if (typeof arg !== \"string\" && typeof arg !== \"number\" && typeof arg !== \"boolean\")\n throw new Error(\n \"Only strings, numbers, and booleans can be passed as arguments to other scripts.\\n\" +\n `${scriptname} argument index ${i} is of type ${typeof arg} and value ${JSON.stringify(arg)}`,\n );\n });\n\n // Check if the script is already running\n const runningScriptObj = server.getRunningScript(scriptname, args);\n if (runningScriptObj != null) {\n workerScript.log(caller, () => `'${scriptname}' is already running on '${server.hostname}'`);\n return 0;\n }\n\n // 'null/undefined' arguments are not allowed\n for (let i = 0; i < args.length; ++i) {\n if (args[i] == null) {\n workerScript.log(caller, () => \"Cannot execute a script with null/undefined as an argument\");\n return 0;\n }\n }\n\n // Check if the script exists and if it does run it\n for (let i = 0; i < server.scripts.length; ++i) {\n if (!areFilesEqual(server.scripts[i].filename, scriptname)) continue;\n // Check for admin rights and that there is enough RAM availble to run\n const script = server.scripts[i];\n let ramUsage = script.ramUsage;\n threads = Math.floor(Number(threads));\n if (threads === 0) {\n return 0;\n }\n ramUsage = ramUsage * threads;\n const ramAvailable = server.maxRam - server.ramUsed;\n\n if (server.hasAdminRights == false) {\n workerScript.log(caller, () => `You do not have root access on '${server.hostname}'`);\n return 0;\n } else if (ramUsage > ramAvailable + 0.001) {\n workerScript.log(\n caller,\n () =>\n `Cannot run script '${scriptname}' (t=${threads}) on '${server.hostname}' because there is not enough available RAM!`,\n );\n return 0;\n }\n // Able to run script\n workerScript.log(\n caller,\n () => `'${scriptname}' on '${server.hostname}' with ${threads} threads and args: ${arrayToString(args)}.`,\n );\n const runningScriptObj = new RunningScript(script, args);\n runningScriptObj.threads = threads;\n runningScriptObj.server = server.hostname;\n\n return startWorkerScript(player, runningScriptObj, server, workerScript);\n }\n\n workerScript.log(caller, () => `Could not find script '${scriptname}' on '${server.hostname}'`);\n return 0;\n}\n","import { FactionNames } from \"../../Faction/data/FactionNames\";\n\nexport const GangConstants: {\n GangRespectToReputationRatio: number;\n MaximumGangMembers: number;\n CyclesPerTerritoryAndPowerUpdate: number;\n AscensionMultiplierRatio: number;\n Names: string[];\n GangKarmaRequirement: number;\n} = {\n // Respect is divided by this to get rep gain\n GangRespectToReputationRatio: 75,\n MaximumGangMembers: 12,\n CyclesPerTerritoryAndPowerUpdate: 100,\n // Portion of upgrade multiplier that is kept after ascending\n AscensionMultiplierRatio: 0.15,\n // Names of possible Gangs\n Names: [\n FactionNames.SlumSnakes,\n FactionNames.Tetrads,\n FactionNames.TheSyndicate,\n FactionNames.TheDarkArmy,\n FactionNames.SpeakersForTheDead,\n FactionNames.NiteSec,\n FactionNames.TheBlackHand,\n ],\n GangKarmaRequirement: -54000,\n};\n","/**\n * Functions for buying/selling stocks. There are four functions total, two for\n * long positions and two for short positions.\n */\nimport { Stock } from \"./Stock\";\nimport {\n getBuyTransactionCost,\n getSellTransactionGain,\n processTransactionForecastMovement,\n} from \"./StockMarketHelpers\";\n\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { Player } from \"../Player\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nimport * as React from \"react\";\nimport { NetscriptContext } from \"../Netscript/APIWrapper\";\nimport { helpers } from \"../Netscript/NetscriptHelpers\";\n\n/**\n * Each function takes an optional config object as its last argument\n */\ninterface IOptions {\n rerenderFn?: () => void;\n suppressDialog?: boolean;\n}\n\n/**\n * Attempt to buy a stock in the long position\n * @param {Stock} stock - Stock to buy\n * @param {number} shares - Number of shares to buy\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function buyStock(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\"Failed to buy stock. This may be a bug, contact developer\");\n }\n\n return false;\n }\n\n // Does player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Long);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n `You do not have enough money to purchase this position. You need ${numeralWrapper.formatMoney(totalPrice)}.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n `Purchasing '${shares + stock.playerShares + stock.playerShortShares}' shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${numeralWrapper.formatShares(\n stock.maxShares,\n )} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShares * stock.playerAvgPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShares = Math.round(stock.playerShares + shares);\n stock.playerAvgPx = newTotal / stock.playerShares;\n processTransactionForecastMovement(stock, shares);\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt = `Bought ${numeralWrapper.formatShares(shares)} shares of ${\n stock.symbol\n } for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} in commission fees.`;\n helpers.log(ctx, () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Bought {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for . Paid{\" \"}\n in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the long position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * returns {boolean} - true if successfully sells given number of shares OR MAX owned, false otherwise\n */\nexport function sellStock(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Sanitize/Validate arguments\n if (stock == null || shares < 0 || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShares) {\n shares = stock.playerShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const gains = getSellTransactionGain(stock, shares, PositionTypes.Long);\n if (gains == null) {\n return false;\n }\n let netProfit = gains - stock.playerAvgPx * shares;\n if (isNaN(netProfit)) {\n netProfit = 0;\n }\n Player.gainMoney(gains, \"stock\");\n if (ctx) {\n ctx.workerScript.scriptRef.onlineMoneyMade += netProfit;\n Player.scriptProdSinceLastAug += netProfit;\n }\n\n stock.playerShares = Math.round(stock.playerShares - shares);\n if (stock.playerShares === 0) {\n stock.playerAvgPx = 0;\n }\n\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt =\n `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`;\n helpers.log(ctx, () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Sold {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{\" \"}\n .\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to buy a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to short\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function shortStock(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to initiate a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n return false;\n }\n\n // Does the player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Short);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n \"You do not have enough \" +\n \"money to purchase this short position. You need \" +\n numeralWrapper.formatMoney(totalPrice),\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this short position. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n `This '${shares + stock.playerShares + stock.playerShortShares}' short shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${stock.maxShares} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShortShares * stock.playerAvgShortPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShortShares = Math.round(stock.playerShortShares + shares);\n stock.playerAvgShortPx = newTotal / stock.playerShortShares;\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt =\n `Bought a short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} ` +\n `for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} ` +\n `in commission fees.`;\n helpers.log(ctx, () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Bought a short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for{\" \"}\n . Paid in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} true if successfully sells given amount OR max owned, false otherwise\n */\nexport function sellShort(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n if (stock == null || isNaN(shares) || shares < 0) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n \"Failed to sell a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShortShares) {\n shares = stock.playerShortShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const origCost = shares * stock.playerAvgShortPx;\n const totalGain = getSellTransactionGain(stock, shares, PositionTypes.Short);\n if (totalGain == null || isNaN(totalGain) || origCost == null) {\n if (ctx) {\n helpers.log(\n ctx,\n () => `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n }\n\n return false;\n }\n let profit = totalGain - origCost;\n if (isNaN(profit)) {\n profit = 0;\n }\n Player.gainMoney(totalGain, \"stock\");\n if (ctx) {\n ctx.workerScript.scriptRef.onlineMoneyMade += profit;\n Player.scriptProdSinceLastAug += profit;\n }\n\n stock.playerShortShares = Math.round(stock.playerShortShares - shares);\n if (stock.playerShortShares === 0) {\n stock.playerAvgShortPx = 0;\n }\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt =\n `Sold your short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(totalGain)}`;\n helpers.log(ctx, () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Sold your short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions,\n you gained a total of \n >,\n );\n }\n\n return true;\n}\n","import { FactionInfo, FactionInfos } from \"./FactionInfo\";\nimport { favorToRep, repToFavor } from \"./formulas/favor\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport class Faction {\n /**\n * Flag signalling whether the player has already received an invitation\n * to this faction\n */\n alreadyInvited = false;\n\n /**\n * Holds names of all augmentations that this Faction offers\n */\n augmentations: string[] = [];\n\n /**\n * Amount of favor the player has with this faction.\n */\n favor = 0;\n\n /**\n * Flag signalling whether player has been banned from this faction\n */\n isBanned = false;\n\n /**\n * Flag signalling whether player is a member of this faction\n */\n isMember = false;\n\n /**\n * Name of faction\n */\n name = \"\";\n\n /**\n * Amount of reputation player has with this faction\n */\n playerReputation = 0;\n\n constructor(name = \"\") {\n this.name = name;\n }\n\n getInfo(): FactionInfo {\n const info = FactionInfos[this.name];\n if (info == null) {\n throw new Error(\n `Missing faction from FactionInfos: ${this.name} this probably means the faction got corrupted somehow`,\n );\n }\n\n return info;\n }\n\n gainFavor(): void {\n if (this.favor == null) {\n this.favor = 0;\n }\n this.favor += this.getFavorGain();\n }\n\n //Returns an array with [How much favor would be gained, how much rep would be left over]\n getFavorGain(): number {\n if (this.favor == null) {\n this.favor = 0;\n }\n const storedRep = Math.max(0, favorToRep(this.favor));\n const totalRep = storedRep + this.playerReputation;\n const newFavor = repToFavor(totalRep);\n return newFavor - this.favor;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Faction\", this);\n }\n\n /**\n * Initiatizes a Faction object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Faction {\n return Generic_fromJSON(Faction, value.data);\n }\n}\n\nReviver.constructors.Faction = Faction;\n","/**\n * Global pool of all active scripts (scripts that are currently running)\n */\nimport { WorkerScript } from \"./WorkerScript\";\n\nexport const workerScripts: Map = new Map();\n","import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { Export } from \"./Export\";\n\ninterface IConstructorParams {\n name?: string;\n}\n\nexport class Material {\n // Name of material\n name = \"InitName\";\n\n // Amount of material owned\n qty = 0;\n\n // Material's \"quality\". Unbounded\n qlt = 0;\n\n // How much demand the Material has in the market, and the range of possible\n // values for this \"demand\"\n dmd = 0;\n dmdR: number[] = [0, 0];\n\n // How much competition there is for this Material in the market, and the range\n // of possible values for this \"competition\"\n cmp = 0;\n cmpR: number[] = [0, 0];\n\n // Maximum volatility of this Materials stats\n mv = 0;\n\n // Markup. Determines how high of a price you can charge on the material\n // compared to the market price without suffering loss in # of sales\n // Quality is divided by this to determine markup limits\n // e,g, If mku is 10 and quality is 100 then you can markup prices by 100/10 = 10\n mku = 0;\n\n // How much of this material is being bought, sold, imported and produced every second\n buy = 0;\n sll = 0;\n prd = 0;\n imp = 0;\n\n // Exports of this material to another warehouse/industry\n exp: Export[] = [];\n\n // Total amount of this material exported in the last cycle\n totalExp = 0;\n\n // Cost / sec to buy this material. AKA Market Price\n bCost = 0;\n\n // Cost / sec to sell this material\n sCost: string | number = 0;\n\n // Flags to keep track of whether production and/or sale of this material is limited\n // [Whether production/sale is limited, limit amount]\n prdman: [boolean, number] = [false, 0]; // Production\n sllman: [boolean, string | number] = [false, 0]; // Sale\n\n // Flags that signal whether automatic sale pricing through Market TA is enabled\n marketTa1 = false;\n marketTa2 = false;\n marketTa2Price = 0;\n\n // Determines the maximum amount of this material that can be sold in one market cycle\n maxsll = 0;\n\n constructor(params: IConstructorParams = {}) {\n if (params.name) {\n this.name = params.name;\n }\n this.init();\n }\n\n getMarkupLimit(): number {\n return this.qlt / this.mku;\n }\n\n init(): void {\n switch (this.name) {\n case \"Water\":\n this.dmd = 75;\n this.dmdR = [65, 85];\n this.cmp = 50;\n this.cmpR = [40, 60];\n this.bCost = 1500;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Energy\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 2000;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Food\":\n this.dmd = 80;\n this.dmdR = [70, 90];\n this.cmp = 60;\n this.cmpR = [35, 85];\n this.bCost = 5000;\n this.mv = 1;\n this.mku = 3;\n break;\n case \"Plants\":\n this.dmd = 70;\n this.dmdR = [20, 90];\n this.cmp = 50;\n this.cmpR = [30, 70];\n this.bCost = 3000;\n this.mv = 0.6;\n this.mku = 3.75;\n break;\n case \"Metal\":\n this.dmd = 80;\n this.dmdR = [75, 85];\n this.cmp = 70;\n this.cmpR = [60, 80];\n this.bCost = 2650;\n this.mv = 1;\n this.mku = 6;\n break;\n case \"Hardware\":\n this.dmd = 85;\n this.dmdR = [80, 90];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 8e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"Chemicals\":\n this.dmd = 55;\n this.dmdR = [40, 70];\n this.cmp = 60;\n this.cmpR = [40, 80];\n this.bCost = 9e3;\n this.mv = 1.2;\n this.mku = 2;\n break;\n case \"Real Estate\":\n this.dmd = 50;\n this.dmdR = [5, 99];\n this.cmp = 50;\n this.cmpR = [25, 75];\n this.bCost = 80e3;\n this.mv = 1.5; //Less mv bc its processed twice\n this.mku = 1.5;\n break;\n case \"Drugs\":\n this.dmd = 60;\n this.dmdR = [45, 75];\n this.cmp = 70;\n this.cmpR = [40, 99];\n this.bCost = 40e3;\n this.mv = 1.6;\n this.mku = 1;\n break;\n case \"Robots\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 75e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"AI Cores\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 15e3;\n this.mv = 0.8; //Less mv bc its processed twice\n this.mku = 0.5;\n break;\n case \"Scientific Research\":\n case \"InitName\":\n break;\n default:\n console.error(`Invalid material type in init(): ${this.name}`);\n break;\n }\n }\n\n // Process change in demand, competition, and buy cost of this material\n processMarket(): void {\n // The price will change in accordance with demand and competition.\n // e.g. If demand goes up, then so does price. If competition goes up, price goes down\n const priceVolatility: number = (Math.random() * this.mv) / 300;\n const priceChange: number = 1 + priceVolatility;\n\n //This 1st random check determines whether competition increases or decreases\n const compVolatility: number = (Math.random() * this.mv) / 100;\n const compChange: number = 1 + compVolatility;\n if (Math.random() < 0.5) {\n this.cmp *= compChange;\n if (this.cmp > this.cmpR[1]) {\n this.cmp = this.cmpR[1];\n }\n this.bCost *= 1 / priceChange; // Competition increases, so price goes down\n } else {\n this.cmp *= 1 / compChange;\n if (this.cmp < this.cmpR[0]) {\n this.cmp = this.cmpR[0];\n }\n this.bCost *= priceChange; // Competition decreases, so price goes up\n }\n\n // This 2nd random check determines whether demand increases or decreases\n const dmdVolatility: number = (Math.random() * this.mv) / 100;\n const dmdChange: number = 1 + dmdVolatility;\n if (Math.random() < 0.5) {\n this.dmd *= dmdChange;\n if (this.dmd > this.dmdR[1]) {\n this.dmd = this.dmdR[1];\n }\n this.bCost *= priceChange; // Demand increases, so price goes up\n } else {\n this.dmd *= 1 / dmdChange;\n if (this.dmd < this.dmdR[0]) {\n this.dmd = this.dmdR[0];\n }\n this.bCost *= 1 / priceChange;\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Material\", this);\n }\n\n // Initiatizes a Material object from a JSON save state.\n static fromJSON(value: IReviverValue): Material {\n return Generic_fromJSON(Material, value.data);\n }\n}\n\nReviver.constructors.Material = Material;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { GangMember } from \"../GangMember\";\nimport { GangMemberTask } from \"../GangMemberTask\";\n\nexport interface FormulaGang {\n respect: number;\n territory: number;\n wantedLevel: number;\n}\n\nexport function calculateWantedPenalty(gang: FormulaGang): number {\n return gang.respect / (gang.respect + gang.wantedLevel);\n}\n\nexport function calculateRespectGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseRespect === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 4 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.respect) / 100);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n return Math.pow(11 * task.baseRespect * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateWantedLevelGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseWanted === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 3.5 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.wanted) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n if (task.baseWanted < 0) {\n return 0.4 * task.baseWanted * statWeight * territoryMult;\n }\n const calc = (7 * task.baseWanted) / Math.pow(3 * statWeight * territoryMult, 0.8);\n\n // Put an arbitrary cap on this to prevent wanted level from rising too fast if the\n // denominator is very small. Might want to rethink formula later\n return Math.min(100, calc);\n}\n\nexport function calculateMoneyGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseMoney === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n\n statWeight -= 3.2 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.money) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n return Math.pow(5 * task.baseMoney * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateAscensionPointsGain(exp: number): number {\n return Math.max(exp - 1000, 0);\n}\n\nexport function calculateAscensionMult(points: number): number {\n return Math.max(Math.pow(points / 2000, 0.5), 1);\n}\n","export class RFAMessage {\n jsonrpc = \"2.0\"; // Transmits version of JSON-RPC. Compliance maybe allows some funky interaction with external tools?\n public method?: string; // Is defined when it's a request/notification, otherwise undefined\n public result?: ResultType; // Is defined when it's a response, otherwise undefined\n public params?: FileMetadata; // Optional parameters to method\n public error?: string; // Only defined on error\n public id?: number; // ID to keep track of request -> response interaction, undefined with notifications, defined with request/response\n\n constructor(obj: { method?: string; result?: ResultType; params?: FileMetadata; error?: string; id?: number } = {}) {\n this.method = obj.method;\n this.result = obj.result;\n this.params = obj.params;\n this.error = obj.error;\n this.id = obj.id;\n }\n}\n\ntype ResultType = string | number | Array | Array;\ntype FileMetadata = FileData | FileContent | FileLocation | FileServer;\n\nexport interface FileData {\n filename: string;\n content: string;\n server: string;\n}\n\nexport interface FileContent {\n filename: string;\n content: string;\n}\n\nexport interface FileLocation {\n filename: string;\n server: string;\n}\n\nexport interface FileServer {\n server: string;\n}\n\nexport function isFileData(p: unknown): p is FileData {\n const pf = p as FileData;\n return typeof pf.server === \"string\" && typeof pf.filename === \"string\" && typeof pf.content === \"string\";\n}\n\nexport function isFileLocation(p: unknown): p is FileLocation {\n const pf = p as FileLocation;\n return typeof pf.server === \"string\" && typeof pf.filename === \"string\";\n}\n\nexport function isFileContent(p: unknown): p is FileContent {\n const pf = p as FileContent;\n return typeof pf.filename === \"string\" && typeof pf.content === \"string\";\n}\n\nexport function isFileServer(p: unknown): p is FileServer {\n const pf = p as FileServer;\n return typeof pf.server === \"string\";\n}\n","import { Paper } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { use } from \"../../ui/Context\";\nimport { ProgressBar } from \"../../ui/React/Progress\";\n\ninterface IProps {\n millis: number;\n onExpire: () => void;\n noPaper?: boolean;\n}\n\nexport function GameTimer(props: IProps): React.ReactElement {\n const player = use.Player();\n const [v, setV] = useState(100);\n const totalMillis = (player.hasAugmentation(AugmentationNames.WKSharmonizer, true) ? 1.3 : 1) * props.millis;\n\n const tick = 200;\n useEffect(() => {\n const intervalId = setInterval(() => {\n setV((old) => {\n if (old <= 0) props.onExpire();\n return old - (tick / totalMillis) * 100;\n });\n }, tick);\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n\n // https://stackoverflow.com/questions/55593367/disable-material-uis-linearprogress-animation\n // TODO(hydroflame): there's like a bug where it triggers the end before the\n // bar physically reaches the end\n return props.noPaper ? (\n \n ) : (\n \n \n \n );\n}\n","import { AugmentationStats } from \"../ScriptEditor/NetscriptDefinitions\";\n\nexport interface Multipliers {\n hacking_chance: number;\n hacking_speed: number;\n hacking_money: number;\n hacking_grow: number;\n hacking: number;\n hacking_exp: number;\n strength: number;\n strength_exp: number;\n defense: number;\n defense_exp: number;\n dexterity: number;\n dexterity_exp: number;\n agility: number;\n agility_exp: number;\n charisma: number;\n charisma_exp: number;\n hacknet_node_money: number;\n hacknet_node_purchase_cost: number;\n hacknet_node_ram_cost: number;\n hacknet_node_core_cost: number;\n hacknet_node_level_cost: number;\n company_rep: number;\n faction_rep: number;\n work_money: number;\n crime_success: number;\n crime_money: number;\n bladeburner_max_stamina: number;\n bladeburner_stamina_gain: number;\n bladeburner_analysis: number;\n bladeburner_success_chance: number;\n}\n\nexport const defaultMultipliers = (): Multipliers => {\n return {\n hacking_chance: 1,\n hacking_speed: 1,\n hacking_money: 1,\n hacking_grow: 1,\n hacking: 1,\n hacking_exp: 1,\n strength: 1,\n strength_exp: 1,\n defense: 1,\n defense_exp: 1,\n dexterity: 1,\n dexterity_exp: 1,\n agility: 1,\n agility_exp: 1,\n charisma: 1,\n charisma_exp: 1,\n hacknet_node_money: 1,\n hacknet_node_purchase_cost: 1,\n hacknet_node_ram_cost: 1,\n hacknet_node_core_cost: 1,\n hacknet_node_level_cost: 1,\n company_rep: 1,\n faction_rep: 1,\n work_money: 1,\n crime_success: 1,\n crime_money: 1,\n bladeburner_max_stamina: 1,\n bladeburner_stamina_gain: 1,\n bladeburner_analysis: 1,\n bladeburner_success_chance: 1,\n };\n};\n\nexport const mergeMultipliers = (m0: Multipliers, m1: AugmentationStats): Multipliers => {\n return {\n hacking_chance: m0.hacking_chance * (m1.hacking_chance ?? 1),\n hacking_speed: m0.hacking_speed * (m1.hacking_speed ?? 1),\n hacking_money: m0.hacking_money * (m1.hacking_money ?? 1),\n hacking_grow: m0.hacking_grow * (m1.hacking_grow ?? 1),\n hacking: m0.hacking * (m1.hacking ?? 1),\n hacking_exp: m0.hacking_exp * (m1.hacking_exp ?? 1),\n strength: m0.strength * (m1.strength ?? 1),\n strength_exp: m0.strength_exp * (m1.strength_exp ?? 1),\n defense: m0.defense * (m1.defense ?? 1),\n defense_exp: m0.defense_exp * (m1.defense_exp ?? 1),\n dexterity: m0.dexterity * (m1.dexterity ?? 1),\n dexterity_exp: m0.dexterity_exp * (m1.dexterity_exp ?? 1),\n agility: m0.agility * (m1.agility ?? 1),\n agility_exp: m0.agility_exp * (m1.agility_exp ?? 1),\n charisma: m0.charisma * (m1.charisma ?? 1),\n charisma_exp: m0.charisma_exp * (m1.charisma_exp ?? 1),\n hacknet_node_money: m0.hacknet_node_money * (m1.hacknet_node_money ?? 1),\n hacknet_node_purchase_cost: m0.hacknet_node_purchase_cost * (m1.hacknet_node_purchase_cost ?? 1),\n hacknet_node_ram_cost: m0.hacknet_node_ram_cost * (m1.hacknet_node_ram_cost ?? 1),\n hacknet_node_core_cost: m0.hacknet_node_core_cost * (m1.hacknet_node_core_cost ?? 1),\n hacknet_node_level_cost: m0.hacknet_node_level_cost * (m1.hacknet_node_level_cost ?? 1),\n company_rep: m0.company_rep * (m1.company_rep ?? 1),\n faction_rep: m0.faction_rep * (m1.faction_rep ?? 1),\n work_money: m0.work_money * (m1.work_money ?? 1),\n crime_success: m0.crime_success * (m1.crime_success ?? 1),\n crime_money: m0.crime_money * (m1.crime_money ?? 1),\n bladeburner_max_stamina: m0.bladeburner_max_stamina * (m1.bladeburner_max_stamina ?? 1),\n bladeburner_stamina_gain: m0.bladeburner_stamina_gain * (m1.bladeburner_stamina_gain ?? 1),\n bladeburner_analysis: m0.bladeburner_analysis * (m1.bladeburner_analysis ?? 1),\n bladeburner_success_chance: m0.bladeburner_success_chance * (m1.bladeburner_success_chance ?? 1),\n };\n};\n","import { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IBladeburner } from \"./IBladeburner\";\nimport { IActionIdentifier } from \"./IActionIdentifier\";\nimport { ActionIdentifier } from \"./ActionIdentifier\";\nimport { ActionTypes } from \"./data/ActionTypes\";\nimport { Growths } from \"./data/Growths\";\nimport { BlackOperations } from \"./BlackOperations\";\nimport { BlackOperation } from \"./BlackOperation\";\nimport { Operation } from \"./Operation\";\nimport { Contract } from \"./Contract\";\nimport { GeneralActions } from \"./GeneralActions\";\nimport { formatNumber } from \"../utils/StringHelperFunctions\";\nimport { Skills } from \"./Skills\";\nimport { Skill } from \"./Skill\";\nimport { City } from \"./City\";\nimport { IAction } from \"./IAction\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { createTaskTracker, ITaskTracker } from \"../PersonObjects/ITaskTracker\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { IRouter } from \"../ui/Router\";\nimport { ConsoleHelpText } from \"./data/Help\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { addOffset } from \"../utils/helpers/addOffset\";\nimport { Faction } from \"../Faction/Faction\";\nimport { Factions, factionExists } from \"../Faction/Factions\";\nimport { calculateHospitalizationCost } from \"../Hospital/Hospital\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { getTimestamp } from \"../utils/helpers/getTimestamp\";\nimport { joinFaction } from \"../Faction/FactionHelpers\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { KEY } from \"../utils/helpers/keyCodes\";\nimport { isSleeveInfiltrateWork } from \"../PersonObjects/Sleeve/Work/SleeveInfiltrateWork\";\nimport { isSleeveSupportWork } from \"../PersonObjects/Sleeve/Work/SleeveSupportWork\";\n\ninterface BlackOpsAttempt {\n error?: string;\n isAvailable?: boolean;\n action?: BlackOperation;\n}\n\nexport class Bladeburner implements IBladeburner {\n numHosp = 0;\n moneyLost = 0;\n rank = 0;\n maxRank = 0;\n\n skillPoints = 0;\n totalSkillPoints = 0;\n\n teamSize = 0;\n sleeveSize = 0;\n teamLost = 0;\n hpLost = 0;\n\n storedCycles = 0;\n\n randomEventCounter: number = getRandomInt(240, 600);\n\n actionTimeToComplete = 0;\n actionTimeCurrent = 0;\n actionTimeOverflow = 0;\n\n action: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n\n cities: Record = {};\n city: string = BladeburnerConstants.CityNames[2];\n skills: Record = {};\n skillMultipliers: Record = {};\n staminaBonus = 0;\n maxStamina = 0;\n stamina = 0;\n contracts: Record = {};\n operations: Record = {};\n blackops: Record = {};\n logging = {\n general: true,\n contracts: true,\n ops: true,\n blackops: true,\n events: true,\n };\n automateEnabled = false;\n automateActionHigh: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshHigh = 0;\n automateActionLow: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshLow = 0;\n consoleHistory: string[] = [];\n consoleLogs: string[] = [\"Bladeburner Console\", \"Type 'help' to see console commands\"];\n\n constructor(player?: IPlayer) {\n for (let i = 0; i < BladeburnerConstants.CityNames.length; ++i) {\n this.cities[BladeburnerConstants.CityNames[i]] = new City(BladeburnerConstants.CityNames[i]);\n }\n\n this.updateSkillMultipliers(); // Calls resetSkillMultipliers()\n\n // Max Stamina is based on stats and Bladeburner-specific bonuses\n if (player) this.calculateMaxStamina(player);\n this.stamina = this.maxStamina;\n this.create();\n }\n\n getCurrentCity(): City {\n const city = this.cities[this.city];\n if (!(city instanceof City)) {\n throw new Error(\"Bladeburner.getCurrentCity() did not properly return a City object\");\n }\n return city;\n }\n\n calculateStaminaPenalty(): number {\n return Math.min(1, this.stamina / (0.5 * this.maxStamina));\n }\n\n canAttemptBlackOp(actionId: IActionIdentifier): BlackOpsAttempt {\n // Safety measure - don't repeat BlackOps that are already done\n if (this.blackops[actionId.name] != null) {\n return { error: \"Tried to start a Black Operation that had already been completed\" };\n }\n\n const action = this.getActionObject(actionId);\n if (!(action instanceof BlackOperation)) throw new Error(`Action should be BlackOperation but isn't`);\n if (action == null) throw new Error(\"Failed to get BlackOperation object for: \" + actionId.name);\n\n if (action.reqdRank > this.rank) {\n return { error: \"Tried to start a Black Operation without the rank requirement\" };\n }\n\n // Can't start a BlackOp if you haven't done the one before it\n const blackops = [];\n for (const nm of Object.keys(BlackOperations)) {\n if (BlackOperations.hasOwnProperty(nm)) {\n blackops.push(nm);\n }\n }\n blackops.sort(function (a, b) {\n return BlackOperations[a].reqdRank - BlackOperations[b].reqdRank; // Sort black ops in intended order\n });\n\n const i = blackops.indexOf(actionId.name);\n if (i === -1) {\n return { error: `Invalid Black Op: '${name}'` };\n }\n\n if (i > 0 && this.blackops[blackops[i - 1]] == null) {\n return { error: `Preceding Black Op must be completed before starting '${actionId.name}'.` };\n }\n\n return { isAvailable: true, action };\n }\n\n startAction(person: IPerson, actionId: IActionIdentifier): void {\n if (actionId == null) return;\n this.action = actionId;\n this.actionTimeCurrent = 0;\n switch (actionId.type) {\n case ActionTypes[\"Idle\"]:\n this.actionTimeToComplete = 0;\n break;\n case ActionTypes[\"Contract\"]:\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Contract Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n case ActionTypes[\"Operation\"]: {\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n if (actionId.name === \"Raid\" && this.getCurrentCity().comms === 0) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const testBlackOp = this.canAttemptBlackOp(actionId);\n if (!testBlackOp.isAvailable) {\n this.resetAction();\n this.log(`Error: ${testBlackOp.error}`);\n break;\n }\n if (testBlackOp.action === undefined) {\n throw new Error(\"action should not be null\");\n }\n this.actionTimeToComplete = testBlackOp.action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]:\n this.actionTimeToComplete = this.getRecruitmentTime(person);\n break;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]:\n this.actionTimeToComplete = 30;\n break;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n this.actionTimeToComplete = 60;\n break;\n default:\n throw new Error(\"Invalid Action Type in startAction(Bladeburner,player, ): \" + actionId.type);\n }\n }\n\n upgradeSkill(skill: Skill, count = 1): void {\n // This does NOT handle deduction of skill points\n const skillName = skill.name;\n if (this.skills[skillName]) {\n this.skills[skillName] += count;\n } else {\n this.skills[skillName] = count;\n }\n if (isNaN(this.skills[skillName]) || this.skills[skillName] < 0) {\n throw new Error(\"Level of Skill \" + skillName + \" is invalid: \" + this.skills[skillName]);\n }\n this.updateSkillMultipliers();\n }\n\n executeConsoleCommands(player: IPlayer, commands: string): void {\n try {\n // Console History\n if (this.consoleHistory[this.consoleHistory.length - 1] != commands) {\n this.consoleHistory.push(commands);\n if (this.consoleHistory.length > 50) {\n this.consoleHistory.splice(0, 1);\n }\n }\n\n const arrayOfCommands = commands.split(\";\");\n for (let i = 0; i < arrayOfCommands.length; ++i) {\n this.executeConsoleCommand(player, arrayOfCommands[i]);\n }\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n postToConsole(input: string, saveToLogs = true): void {\n const MaxConsoleEntries = 100;\n if (saveToLogs) {\n this.consoleLogs.push(input);\n if (this.consoleLogs.length > MaxConsoleEntries) {\n this.consoleLogs.shift();\n }\n }\n }\n\n log(input: string): void {\n // Adds a timestamp and then just calls postToConsole\n this.postToConsole(`[${getTimestamp()}] ${input}`);\n }\n\n resetAction(): void {\n this.action = new ActionIdentifier({ type: ActionTypes.Idle });\n this.actionTimeCurrent = 0;\n this.actionTimeToComplete = 0;\n }\n\n clearConsole(): void {\n this.consoleLogs.length = 0;\n }\n\n prestige(): void {\n this.resetAction();\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n }\n }\n\n storeCycles(numCycles = 0): void {\n this.storedCycles += numCycles;\n }\n\n // working on\n getActionIdFromTypeAndName(type = \"\", name = \"\"): IActionIdentifier | null {\n if (type === \"\" || name === \"\") {\n return null;\n }\n const action = new ActionIdentifier();\n const convertedType = type.toLowerCase().trim();\n const convertedName = name.toLowerCase().trim();\n switch (convertedType) {\n case \"contract\":\n case \"contracts\":\n case \"contr\":\n action.type = ActionTypes[\"Contract\"];\n if (this.contracts.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"operation\":\n case \"operations\":\n case \"op\":\n case \"ops\":\n action.type = ActionTypes[\"Operation\"];\n if (this.operations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"blackoperation\":\n case \"black operation\":\n case \"black operations\":\n case \"black op\":\n case \"black ops\":\n case \"blackop\":\n case \"blackops\":\n action.type = ActionTypes[\"BlackOp\"];\n if (BlackOperations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"general\":\n case \"general action\":\n case \"gen\":\n break;\n default:\n return null;\n }\n\n if (convertedType.startsWith(\"gen\")) {\n switch (convertedName) {\n case \"training\":\n action.type = ActionTypes[\"Training\"];\n action.name = \"Training\";\n break;\n case \"recruitment\":\n case \"recruit\":\n action.type = ActionTypes[\"Recruitment\"];\n action.name = \"Recruitment\";\n break;\n case \"field analysis\":\n case \"fieldanalysis\":\n action.type = ActionTypes[\"Field Analysis\"];\n action.name = \"Field Analysis\";\n break;\n case \"diplomacy\":\n action.type = ActionTypes[\"Diplomacy\"];\n action.name = \"Diplomacy\";\n break;\n case \"hyperbolic regeneration chamber\":\n action.type = ActionTypes[\"Hyperbolic Regeneration Chamber\"];\n action.name = \"Hyperbolic Regeneration Chamber\";\n break;\n case \"incite violence\":\n action.type = ActionTypes[\"Incite Violence\"];\n action.name = \"Incite Violence\";\n break;\n default:\n return null;\n }\n return action;\n }\n\n return null;\n }\n\n executeStartConsoleCommand(player: IPlayer, args: string[]): void {\n if (args.length !== 3) {\n this.postToConsole(\"Invalid usage of 'start' console command: start [type] [name]\");\n this.postToConsole(\"Use 'help start' for more info\");\n return;\n }\n const name = args[2];\n switch (args[1].toLowerCase()) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[name] != null) {\n this.action.type = ActionTypes[name];\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + args[2]);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[name] != null) {\n this.action.type = ActionTypes.Contract;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + args[2]);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[name] != null) {\n this.action.type = ActionTypes.Operation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + args[2]);\n }\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n if (BlackOperations[name] != null) {\n this.action.type = ActionTypes.BlackOperation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid BlackOp name specified: \" + args[2]);\n }\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[1]);\n this.postToConsole(\"Examples of valid action/event identifiers are: [general, contract, op, blackop]\");\n break;\n }\n }\n\n executeSkillConsoleCommand(args: string[]): void {\n switch (args.length) {\n case 1: {\n // Display Skill Help Command\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n case 2: {\n if (args[1].toLowerCase() === \"list\") {\n // List all skills and their level\n this.postToConsole(\"Skills: \");\n const skillNames = Object.keys(Skills);\n for (let i = 0; i < skillNames.length; ++i) {\n const skill = Skills[skillNames[i]];\n let level = 0;\n if (this.skills[skill.name] != null) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level, 0));\n }\n this.postToConsole(\" \");\n this.postToConsole(\"Effects: \");\n const multKeys = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multKeys.length; ++i) {\n const mult = this.skillMultipliers[multKeys[i]];\n if (mult && mult !== 1) {\n const mults = formatNumber(mult, 3);\n switch (multKeys[i]) {\n case \"successChanceAll\":\n this.postToConsole(\"Total Success Chance: x\" + mults);\n break;\n case \"successChanceStealth\":\n this.postToConsole(\"Stealth Success Chance: x\" + mults);\n break;\n case \"successChanceKill\":\n this.postToConsole(\"Retirement Success Chance: x\" + mults);\n break;\n case \"successChanceContract\":\n this.postToConsole(\"Contract Success Chance: x\" + mults);\n break;\n case \"successChanceOperation\":\n this.postToConsole(\"Operation Success Chance: x\" + mults);\n break;\n case \"successChanceEstimate\":\n this.postToConsole(\"Synthoid Data Estimate: x\" + mults);\n break;\n case \"actionTime\":\n this.postToConsole(\"Action Time: x\" + mults);\n break;\n case \"effHack\":\n this.postToConsole(\"Hacking Skill: x\" + mults);\n break;\n case \"effStr\":\n this.postToConsole(\"Strength: x\" + mults);\n break;\n case \"effDef\":\n this.postToConsole(\"Defense: x\" + mults);\n break;\n case \"effDex\":\n this.postToConsole(\"Dexterity: x\" + mults);\n break;\n case \"effAgi\":\n this.postToConsole(\"Agility: x\" + mults);\n break;\n case \"effCha\":\n this.postToConsole(\"Charisma: x\" + mults);\n break;\n case \"effInt\":\n this.postToConsole(\"Intelligence: x\" + mults);\n break;\n case \"stamina\":\n this.postToConsole(\"Stamina: x\" + mults);\n break;\n default:\n console.warn(`Unrecognized SkillMult Key: ${multKeys[i]}`);\n break;\n }\n }\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n case 3: {\n const skillName = args[2];\n const skill = Skills[skillName];\n if (skill == null || !(skill instanceof Skill)) {\n this.postToConsole(\"Invalid skill name (Note that it is case-sensitive): \" + skillName);\n break;\n }\n if (args[1].toLowerCase() === \"list\") {\n let level = 0;\n if (this.skills[skill.name] !== undefined) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level));\n } else if (args[1].toLowerCase() === \"level\") {\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const pointCost = skill.calculateCost(currentLevel);\n if (skill.maxLvl !== 0 && currentLevel >= skill.maxLvl) {\n this.postToConsole(`This skill ${skill.name} is already at max level (${currentLevel}/${skill.maxLvl}).`);\n } else if (this.skillPoints >= pointCost) {\n this.skillPoints -= pointCost;\n this.upgradeSkill(skill);\n this.log(skill.name + \" upgraded to Level \" + this.skills[skillName]);\n } else {\n this.postToConsole(\n \"You do not have enough Skill Points to upgrade this. You need \" + formatNumber(pointCost, 0),\n );\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n default: {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n }\n }\n\n executeLogConsoleCommand(args: string[]): void {\n if (args.length < 3) {\n this.postToConsole(\"Invalid usage of log command: log [enable/disable] [action/event]\");\n this.postToConsole(\"Use 'help log' for more details and examples\");\n return;\n }\n\n let flag = true;\n if (args[1].toLowerCase().includes(\"d\")) {\n flag = false;\n } // d for disable\n\n switch (args[2].toLowerCase()) {\n case \"general\":\n case \"gen\":\n this.logging.general = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for general actions\");\n break;\n case \"contract\":\n case \"contracts\":\n this.logging.contracts = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Contracts\");\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n this.logging.ops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Operations\");\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n this.logging.blackops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for BlackOps\");\n break;\n case \"event\":\n case \"events\":\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for events\");\n break;\n case \"all\":\n this.logging.general = flag;\n this.logging.contracts = flag;\n this.logging.ops = flag;\n this.logging.blackops = flag;\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for everything\");\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[2]);\n this.postToConsole(\n \"Examples of valid action/event identifiers are: [general, contracts, ops, blackops, events]\",\n );\n break;\n }\n }\n\n executeHelpConsoleCommand(args: string[]): void {\n if (args.length === 1) {\n for (const line of ConsoleHelpText.helpList) {\n this.postToConsole(line);\n }\n } else {\n for (let i = 1; i < args.length; ++i) {\n if (!(args[i] in ConsoleHelpText)) continue;\n const helpText = ConsoleHelpText[args[i]];\n for (const line of helpText) {\n this.postToConsole(line);\n }\n }\n }\n }\n\n executeAutomateConsoleCommand(args: string[]): void {\n if (args.length !== 2 && args.length !== 4) {\n this.postToConsole(\n \"Invalid use of 'automate' command: automate [var] [val] [hi/low]. Use 'help automate' for more info\",\n );\n return;\n }\n\n // Enable/Disable\n if (args.length === 2) {\n const flag = args[1];\n if (flag.toLowerCase() === \"status\") {\n this.postToConsole(\"Automation: \" + (this.automateEnabled ? \"enabled\" : \"disabled\"));\n this.postToConsole(\n \"When your stamina drops to \" +\n formatNumber(this.automateThreshLow, 0) +\n \", you will automatically switch to \" +\n this.automateActionLow.name +\n \". When your stamina recovers to \" +\n formatNumber(this.automateThreshHigh, 0) +\n \", you will automatically \" +\n \"switch to \" +\n this.automateActionHigh.name +\n \".\",\n );\n } else if (flag.toLowerCase().includes(\"en\")) {\n if (\n !(this.automateActionLow instanceof ActionIdentifier) ||\n !(this.automateActionHigh instanceof ActionIdentifier)\n ) {\n return this.log(\"Failed to enable automation. Actions were not set\");\n }\n this.automateEnabled = true;\n this.log(\"Bladeburner automation enabled\");\n } else if (flag.toLowerCase().includes(\"d\")) {\n this.automateEnabled = false;\n this.log(\"Bladeburner automation disabled\");\n } else {\n this.log(\"Invalid argument for 'automate' console command: \" + args[1]);\n }\n return;\n }\n\n // Set variables\n if (args.length === 4) {\n const variable = args[1].toLowerCase(); // allows Action Type to be with or without capitalisation.\n const val = args[2];\n\n let highLow = false; // True for high, false for low\n if (args[3].toLowerCase().includes(\"hi\")) {\n highLow = true;\n }\n\n switch (variable) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes[val],\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + val);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Contract,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + val);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Operation,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + val);\n }\n break;\n case \"stamina\":\n if (isNaN(parseFloat(val))) {\n this.postToConsole(\"Invalid value specified for stamina threshold (must be numeric): \" + val);\n } else {\n if (highLow) {\n this.automateThreshHigh = Number(val);\n } else {\n this.automateThreshLow = Number(val);\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") stamina threshold set to \" + val);\n }\n break;\n default:\n break;\n }\n\n return;\n }\n }\n\n parseCommandArguments(command: string): string[] {\n /**\n * Returns an array with command and its arguments in each index.\n * e.g. skill \"blade's intuition\" foo returns [skill, blade's intuition, foo]\n * The input to the fn will be trimmed and will have all whitespace replaced w/ a single space\n */\n const args = [];\n let start = 0;\n let i = 0;\n while (i < command.length) {\n const c = command.charAt(i);\n if (c === '\"' || c === \"'\") {\n // Double quotes or Single quotes\n const endQuote = command.indexOf(c, i + 1);\n if (endQuote !== -1 && (endQuote === command.length - 1 || command.charAt(endQuote + 1) === KEY.SPACE)) {\n args.push(command.substr(i + 1, endQuote - i - 1));\n if (endQuote === command.length - 1) {\n start = i = endQuote + 1;\n } else {\n start = i = endQuote + 2; // Skip the space\n }\n continue;\n }\n } else if (c === KEY.SPACE) {\n args.push(command.substr(start, i - start));\n start = i + 1;\n }\n ++i;\n }\n if (start !== i) {\n args.push(command.substr(start, i - start));\n }\n return args;\n }\n\n executeConsoleCommand(player: IPlayer, command: string): void {\n command = command.trim();\n command = command.replace(/\\s\\s+/g, \" \"); // Replace all whitespace w/ a single space\n\n const args = this.parseCommandArguments(command);\n if (args.length <= 0) return; // Log an error?\n\n switch (args[0].toLowerCase()) {\n case \"automate\":\n this.executeAutomateConsoleCommand(args);\n break;\n case \"clear\":\n case \"cls\":\n this.clearConsole();\n break;\n case \"help\":\n this.executeHelpConsoleCommand(args);\n break;\n case \"log\":\n this.executeLogConsoleCommand(args);\n break;\n case \"skill\":\n this.executeSkillConsoleCommand(args);\n break;\n case \"start\":\n this.executeStartConsoleCommand(player, args);\n break;\n case \"stop\":\n this.resetAction();\n break;\n default:\n this.postToConsole(\"Invalid console command\");\n break;\n }\n }\n\n triggerMigration(sourceCityName: string): void {\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n const sourceCity = this.cities[sourceCityName];\n if (destCity == null || sourceCity == null) {\n throw new Error(\"Failed to find City with name: \" + destCityName);\n }\n const rand = Math.random();\n let percentage = getRandomInt(3, 15) / 100;\n\n if (rand < 0.05 && sourceCity.comms > 0) {\n // 5% chance for community migration\n percentage *= getRandomInt(2, 4); // Migration increases population change\n --sourceCity.comms;\n ++destCity.comms;\n }\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n }\n\n triggerPotentialMigration(sourceCityName: string, chance: number): void {\n if (chance == null || isNaN(chance)) {\n console.error(\"Invalid 'chance' parameter passed into Bladeburner.triggerPotentialMigration()\");\n }\n if (chance > 1) {\n chance /= 100;\n }\n if (Math.random() < chance) {\n this.triggerMigration(sourceCityName);\n }\n }\n\n randomEvent(): void {\n const chance = Math.random();\n\n // Choose random source/destination city for events\n const sourceCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n const sourceCity = this.cities[sourceCityName];\n if (!(sourceCity instanceof City)) {\n throw new Error(\"sourceCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n\n if (!(sourceCity instanceof City) || !(destCity instanceof City)) {\n throw new Error(\"sourceCity/destCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n if (chance <= 0.05) {\n // New Synthoid Community, 5%\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else if (chance <= 0.1) {\n // Synthoid Community Migration, 5%\n if (sourceCity.comms <= 0) {\n // If no comms in source city, then instead trigger a new Synthoid community event\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else {\n --sourceCity.comms;\n ++destCity.comms;\n\n // Change pop\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a Synthoid community migrated from \" + sourceCityName + \" to some other city\",\n );\n }\n }\n } else if (chance <= 0.3) {\n // New Synthoids (non community), 20%\n const percentage = getRandomInt(8, 24) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n } else if (chance <= 0.5) {\n // Synthoid migration (non community) 20%\n this.triggerMigration(sourceCityName);\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a large number of Synthoids migrated from \" +\n sourceCityName +\n \" to some other city\",\n );\n }\n } else if (chance <= 0.7) {\n // Synthoid Riots (+chaos), 20%\n sourceCity.chaos += 1;\n sourceCity.chaos *= 1 + getRandomInt(5, 20) / 100;\n if (this.logging.events) {\n this.log(\"Tensions between Synthoids and humans lead to riots in \" + sourceCityName + \"! Chaos increased\");\n }\n } else if (chance <= 0.9) {\n // Less Synthoids, 20%\n const percentage = getRandomInt(8, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n }\n // 10% chance of nothing happening\n }\n\n /**\n * Return stat to be gained from Contracts, Operations, and Black Operations\n * @param action(Action obj) - Derived action class\n * @param success(bool) - Whether action was successful\n */\n getActionStats(action: IAction, success: boolean): ITaskTracker {\n const difficulty = action.getDifficulty();\n\n /**\n * Gain multiplier based on difficulty. If it changes then the\n * same variable calculated in completeAction() needs to change too\n */\n const difficultyMult =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n const time = this.actionTimeToComplete;\n const successMult = success ? 1 : 0.5;\n\n const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult;\n const unweightedIntGain = time * BladeburnerConstants.BaseIntGain * successMult * difficultyMult;\n const skillMult = this.skillMultipliers.expGain;\n\n return {\n hack: unweightedGain * action.weights.hack * skillMult,\n str: unweightedGain * action.weights.str * skillMult,\n def: unweightedGain * action.weights.def * skillMult,\n dex: unweightedGain * action.weights.dex * skillMult,\n agi: unweightedGain * action.weights.agi * skillMult,\n cha: unweightedGain * action.weights.cha * skillMult,\n int: unweightedIntGain * action.weights.int * skillMult,\n money: 0,\n };\n }\n\n getDiplomacyEffectiveness(person: IPerson): number {\n // Returns a decimal by which the city's chaos level should be multiplied (e.g. 0.98)\n const CharismaLinearFactor = 1e3;\n const CharismaExponentialFactor = 0.045;\n\n const charismaEff =\n Math.pow(person.skills.charisma, CharismaExponentialFactor) + person.skills.charisma / CharismaLinearFactor;\n return (100 - charismaEff) / 100;\n }\n\n getRecruitmentSuccessChance(person: IPerson): number {\n return Math.pow(person.skills.charisma, 0.45) / (this.teamSize - this.sleeveSize + 1);\n }\n\n getRecruitmentTime(person: IPerson): number {\n const effCharisma = person.skills.charisma * this.skillMultipliers.effCha;\n const charismaFactor = Math.pow(effCharisma, 0.81) + effCharisma / 90;\n return Math.max(10, Math.round(BladeburnerConstants.BaseRecruitmentTimeNeeded - charismaFactor));\n }\n\n sleeveSupport(joining: boolean): void {\n if (joining) {\n this.sleeveSize += 1;\n this.teamSize += 1;\n } else {\n this.sleeveSize -= 1;\n this.teamSize -= 1;\n }\n }\n\n resetSkillMultipliers(): void {\n this.skillMultipliers = {\n successChanceAll: 1,\n successChanceStealth: 1,\n successChanceKill: 1,\n successChanceContract: 1,\n successChanceOperation: 1,\n successChanceEstimate: 1,\n actionTime: 1,\n effHack: 1,\n effStr: 1,\n effDef: 1,\n effDex: 1,\n effAgi: 1,\n effCha: 1,\n effInt: 1,\n stamina: 1,\n money: 1,\n expGain: 1,\n };\n }\n\n updateSkillMultipliers(): void {\n this.resetSkillMultipliers();\n for (const skillName of Object.keys(this.skills)) {\n if (this.skills.hasOwnProperty(skillName)) {\n const skill = Skills[skillName];\n if (skill == null) {\n throw new Error(\"Could not find Skill Object for: \" + skillName);\n }\n const level = this.skills[skillName];\n if (level == null || level <= 0) {\n continue;\n } //Not upgraded\n\n const multiplierNames = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multiplierNames.length; ++i) {\n const multiplierName = multiplierNames[i];\n if (skill.getMultiplier(multiplierName) != null && !isNaN(skill.getMultiplier(multiplierName))) {\n const value = skill.getMultiplier(multiplierName) * level;\n let multiplierValue = 1 + value / 100;\n if (multiplierName === \"actionTime\") {\n multiplierValue = 1 - value / 100;\n }\n this.skillMultipliers[multiplierName] *= multiplierValue;\n }\n }\n }\n }\n }\n\n completeOperation(success: boolean, player: IPlayer): void {\n if (this.action.type !== ActionTypes.Operation) {\n throw new Error(\"completeOperation() called even though current action is not an Operation\");\n }\n const action = this.getActionObject(this.action);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + this.action.name);\n }\n\n // Calculate team losses\n const teamCount = action.teamCount;\n if (teamCount >= 1) {\n let max;\n if (success) {\n max = Math.ceil(teamCount / 2);\n } else {\n max = Math.floor(teamCount);\n }\n const losses = getRandomInt(0, max);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => isSleeveSupportWork(x.currentWork));\n for (let i = 0; i > this.teamSize - this.sleeveSize; i--) {\n const r = Math.floor(Math.random() * sup.length);\n sup[r].takeDamage(sup[r].hp.max);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.ops && losses > 0) {\n this.log(\"Lost \" + formatNumber(losses, 0) + \" team members during this \" + action.name);\n }\n }\n\n const city = this.getCurrentCity();\n switch (action.name) {\n case \"Investigation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.4 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.1);\n }\n break;\n case \"Undercover Operation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.8 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.15);\n }\n break;\n case \"Sting Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.1, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByCount(0.1);\n break;\n case \"Raid\":\n if (success) {\n city.changePopulationByPercentage(-1, {\n changeEstEqually: true,\n nonZero: true,\n });\n --city.comms;\n } else {\n const change = getRandomInt(-10, -5) / 10;\n city.changePopulationByPercentage(change, {\n nonZero: true,\n changeEstEqually: false,\n });\n }\n city.changeChaosByPercentage(getRandomInt(1, 5));\n break;\n case \"Stealth Retirement Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.5, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByPercentage(getRandomInt(-3, -1));\n break;\n case \"Assassination\":\n if (success) {\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n }\n city.changeChaosByPercentage(getRandomInt(-5, 5));\n break;\n default:\n throw new Error(\"Invalid Action name in completeOperation: \" + this.action.name);\n }\n }\n\n getActionObject(actionId: IActionIdentifier): IAction | null {\n /**\n * Given an ActionIdentifier object, returns the corresponding\n * GeneralAction, Contract, Operation, or BlackOperation object\n */\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n return this.contracts[actionId.name];\n case ActionTypes[\"Operation\"]:\n return this.operations[actionId.name];\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return BlackOperations[actionId.name];\n case ActionTypes[\"Training\"]:\n return GeneralActions[\"Training\"];\n case ActionTypes[\"Field Analysis\"]:\n return GeneralActions[\"Field Analysis\"];\n case ActionTypes[\"Recruitment\"]:\n return GeneralActions[\"Recruitment\"];\n case ActionTypes[\"Diplomacy\"]:\n return GeneralActions[\"Diplomacy\"];\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n return GeneralActions[\"Hyperbolic Regeneration Chamber\"];\n case ActionTypes[\"Incite Violence\"]:\n return GeneralActions[\"Incite Violence\"];\n default:\n return null;\n }\n }\n\n completeContract(success: boolean, actionIdent: IActionIdentifier): void {\n if (actionIdent.type !== ActionTypes.Contract) {\n throw new Error(\"completeContract() called even though current action is not a Contract\");\n }\n const city = this.getCurrentCity();\n if (success) {\n switch (actionIdent.name) {\n case \"Tracking\":\n // Increase estimate accuracy by a relatively small amount\n city.improvePopulationEstimateByCount(getRandomInt(100, 1e3));\n break;\n case \"Bounty Hunter\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.02);\n break;\n case \"Retirement\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.04);\n break;\n default:\n throw new Error(\"Invalid Action name in completeContract: \" + actionIdent.name);\n }\n }\n }\n\n completeAction(player: IPlayer, person: IPerson, actionIdent: IActionIdentifier, isPlayer = true): ITaskTracker {\n let retValue = createTaskTracker();\n switch (actionIdent.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]: {\n try {\n const isOperation = actionIdent.type === ActionTypes[\"Operation\"];\n const action = this.getActionObject(actionIdent);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n const rewardMultiplier = Math.pow(action.rewardFac, action.level - 1);\n\n if (isPlayer) {\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n }\n\n // Process Contract/Operation success/failure\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, true);\n ++action.successes;\n --action.count;\n\n // Earn money for contracts\n let moneyGain = 0;\n if (!isOperation) {\n moneyGain = BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * this.skillMultipliers.money;\n retValue.money = moneyGain;\n }\n\n if (isOperation) {\n action.setMaxLevel(BladeburnerConstants.OperationSuccessesPerLevel);\n } else {\n action.setMaxLevel(BladeburnerConstants.ContractSuccessesPerLevel);\n }\n if (action.rankGain) {\n const gain = addOffset(action.rankGain * rewardMultiplier * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, gain);\n if (isOperation && this.logging.ops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank\",\n );\n } else if (!isOperation && this.logging.contracts) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" contract successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank and \" +\n numeralWrapper.formatMoney(moneyGain),\n );\n }\n }\n isOperation ? this.completeOperation(true, player) : this.completeContract(true, actionIdent);\n } else {\n retValue = this.getActionStats(action, false);\n ++action.failures;\n let loss = 0,\n damage = 0;\n if (action.rankLoss) {\n loss = addOffset(action.rankLoss * rewardMultiplier, 10);\n this.changeRank(person, -1 * loss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n this.hpLost += damage;\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n let logLossText = \"\";\n if (loss > 0) {\n logLossText += \"Lost \" + formatNumber(loss, 3) + \" rank. \";\n }\n if (damage > 0) {\n logLossText += \"Took \" + formatNumber(damage, 0) + \" damage.\";\n }\n if (isOperation && this.logging.ops) {\n this.log(`${person.whoAmI()}: ` + action.name + \" failed! \" + logLossText);\n } else if (!isOperation && this.logging.contracts) {\n this.log(`${person.whoAmI()}: ` + action.name + \" contract failed! \" + logLossText);\n }\n isOperation ? this.completeOperation(false, player) : this.completeContract(false, actionIdent);\n }\n if (action.autoLevel) {\n action.level = action.maxLevel;\n } // Autolevel\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const action = this.getActionObject(actionIdent);\n if (action == null || !(action instanceof BlackOperation)) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n\n // Team loss variables\n const teamCount = action.teamCount;\n let teamLossMax;\n\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, true);\n action.count = 0;\n this.blackops[action.name] = true;\n let rankGain = 0;\n if (action.rankGain) {\n rankGain = addOffset(action.rankGain * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, rankGain);\n }\n teamLossMax = Math.ceil(teamCount / 2);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` + action.name + \" successful! Gained \" + formatNumber(rankGain, 1) + \" rank\",\n );\n }\n } else {\n retValue = this.getActionStats(action, false);\n let rankLoss = 0;\n let damage = 0;\n if (action.rankLoss) {\n rankLoss = addOffset(action.rankLoss, 10);\n this.changeRank(person, -1 * rankLoss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n teamLossMax = Math.floor(teamCount);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" failed! Lost \" +\n formatNumber(rankLoss, 1) +\n \" rank and took \" +\n formatNumber(damage, 0) +\n \" damage\",\n );\n }\n }\n\n this.resetAction(); // Stop regardless of success or fail\n\n // Calculate team lossses\n if (teamCount >= 1) {\n const losses = getRandomInt(1, teamLossMax);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => isSleeveSupportWork(x.currentWork));\n for (let i = 0; i > this.teamSize - this.sleeveSize; i--) {\n const r = Math.floor(Math.random() * sup.length);\n sup[r].takeDamage(sup[r].hp.max);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.blackops) {\n this.log(`${person.whoAmI()}: You lost ${formatNumber(losses, 0)} team members during ${action.name}`);\n }\n }\n } catch (e: unknown) {\n exceptionAlert(String(e));\n }\n break;\n }\n case ActionTypes[\"Training\"]: {\n this.stamina -= 0.5 * BladeburnerConstants.BaseStaminaLoss;\n const strExpGain = 30 * person.mults.strength_exp,\n defExpGain = 30 * person.mults.defense_exp,\n dexExpGain = 30 * person.mults.dexterity_exp,\n agiExpGain = 30 * person.mults.agility_exp,\n staminaGain = 0.04 * this.skillMultipliers.stamina;\n retValue.str = strExpGain;\n retValue.def = defExpGain;\n retValue.dex = dexExpGain;\n retValue.agi = agiExpGain;\n this.staminaBonus += staminaGain;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Training completed. Gained: \" +\n formatNumber(strExpGain, 1) +\n \" str exp, \" +\n formatNumber(defExpGain, 1) +\n \" def exp, \" +\n formatNumber(dexExpGain, 1) +\n \" dex exp, \" +\n formatNumber(agiExpGain, 1) +\n \" agi exp, \" +\n formatNumber(staminaGain, 3) +\n \" max stamina\",\n );\n }\n break;\n }\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]: {\n // Does not use stamina. Effectiveness depends on hacking, int, and cha\n let eff =\n 0.04 * Math.pow(person.skills.hacking, 0.3) +\n 0.04 * Math.pow(person.skills.intelligence, 0.9) +\n 0.02 * Math.pow(person.skills.charisma, 0.3);\n eff *= person.mults.bladeburner_analysis;\n if (isNaN(eff) || eff < 0) {\n throw new Error(\"Field Analysis Effectiveness calculated to be NaN or negative\");\n }\n const hackingExpGain = 20 * person.mults.hacking_exp;\n const charismaExpGain = 20 * person.mults.charisma_exp;\n const rankGain = 0.1 * BitNodeMultipliers.BladeburnerRank;\n retValue.hack = hackingExpGain;\n retValue.cha = charismaExpGain;\n retValue.int = BladeburnerConstants.BaseIntGain;\n this.changeRank(person, rankGain);\n this.getCurrentCity().improvePopulationEstimateByPercentage(eff * this.skillMultipliers.successChanceEstimate);\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n `Field analysis completed. Gained ${formatNumber(rankGain, 2)} rank, ` +\n `${formatNumber(hackingExpGain, 1)} hacking exp, and ` +\n `${formatNumber(charismaExpGain, 1)} charisma exp`,\n );\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]: {\n const successChance = this.getRecruitmentSuccessChance(person);\n const recruitTime = this.getRecruitmentTime(person) * 1000;\n if (Math.random() < successChance) {\n const expGain = 2 * BladeburnerConstants.BaseStatGain * recruitTime;\n retValue.cha = expGain;\n ++this.teamSize;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Successfully recruited a team member! Gained \" +\n formatNumber(expGain, 1) +\n \" charisma exp\",\n );\n }\n } else {\n const expGain = BladeburnerConstants.BaseStatGain * recruitTime;\n retValue.cha = expGain;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Failed to recruit a team member. Gained \" +\n formatNumber(expGain, 1) +\n \" charisma exp\",\n );\n }\n }\n break;\n }\n case ActionTypes[\"Diplomacy\"]: {\n const eff = this.getDiplomacyEffectiveness(person);\n this.getCurrentCity().chaos *= eff;\n if (this.getCurrentCity().chaos < 0) {\n this.getCurrentCity().chaos = 0;\n }\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: Diplomacy completed. Chaos levels in the current city fell by ${numeralWrapper.formatPercentage(\n 1 - eff,\n )}`,\n );\n }\n break;\n }\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]: {\n person.regenerateHp(BladeburnerConstants.HrcHpGain);\n\n const staminaGain = this.maxStamina * (BladeburnerConstants.HrcStaminaGain / 100);\n this.stamina = Math.min(this.maxStamina, this.stamina + staminaGain);\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: Rested in Hyperbolic Regeneration Chamber. Restored ${\n BladeburnerConstants.HrcHpGain\n } HP and gained ${numeralWrapper.formatStamina(staminaGain)} stamina`,\n );\n }\n break;\n }\n case ActionTypes[\"Incite Violence\"]: {\n for (const contract of Object.keys(this.contracts)) {\n const growthF = Growths[contract];\n if (!growthF) throw new Error(\"trying to generate count for action that doesn't exist? \" + contract);\n this.contracts[contract].count += (60 * 3 * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n for (const operation of Object.keys(this.operations)) {\n const growthF = Growths[operation];\n if (!growthF) throw new Error(\"trying to generate count for action that doesn't exist? \" + operation);\n this.operations[operation].count += (60 * 3 * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n if (this.logging.general) {\n this.log(`${person.whoAmI()}: Incited violence in the synthoid communities.`);\n }\n for (const cityName of Object.keys(this.cities)) {\n const city = this.cities[cityName];\n city.chaos += 10;\n city.chaos += city.chaos / (Math.log(city.chaos) / Math.log(10));\n }\n break;\n }\n default:\n console.error(`Bladeburner.completeAction() called for invalid action: ${actionIdent.type}`);\n break;\n }\n return retValue;\n }\n\n infiltrateSynthoidCommunities(p: IPlayer): void {\n const infilSleeves = p.sleeves.filter((s) => isSleeveInfiltrateWork(s.currentWork)).length;\n const amt = Math.pow(infilSleeves, -0.5) / 2;\n for (const contract of Object.keys(this.contracts)) {\n this.contracts[contract].count += amt;\n }\n for (const operation of Object.keys(this.operations)) {\n this.operations[operation].count += amt;\n }\n if (this.logging.general) {\n this.log(`Sleeve: Infiltrate the synthoid communities.`);\n }\n }\n\n changeRank(person: IPerson, change: number): void {\n if (isNaN(change)) {\n throw new Error(\"NaN passed into Bladeburner.changeRank()\");\n }\n this.rank += change;\n if (this.rank < 0) {\n this.rank = 0;\n }\n this.maxRank = Math.max(this.rank, this.maxRank);\n\n const bladeburnersFactionName = FactionNames.Bladeburners;\n if (factionExists(bladeburnersFactionName)) {\n const bladeburnerFac = Factions[bladeburnersFactionName];\n if (!(bladeburnerFac instanceof Faction)) {\n throw new Error(\n `Could not properly get ${FactionNames.Bladeburners} Faction object in ${FactionNames.Bladeburners} UI Overview Faction button`,\n );\n }\n if (bladeburnerFac.isMember) {\n const favorBonus = 1 + bladeburnerFac.favor / 100;\n bladeburnerFac.playerReputation +=\n BladeburnerConstants.RankToFactionRepFactor * change * person.mults.faction_rep * favorBonus;\n }\n }\n\n // Gain skill points\n const rankNeededForSp = (this.totalSkillPoints + 1) * BladeburnerConstants.RanksPerSkillPoint;\n if (this.maxRank >= rankNeededForSp) {\n // Calculate how many skill points to gain\n const gainedSkillPoints = Math.floor(\n (this.maxRank - rankNeededForSp) / BladeburnerConstants.RanksPerSkillPoint + 1,\n );\n this.skillPoints += gainedSkillPoints;\n this.totalSkillPoints += gainedSkillPoints;\n }\n }\n\n processAction(router: IRouter, player: IPlayer, seconds: number): void {\n if (this.action.type === ActionTypes[\"Idle\"]) return;\n if (this.actionTimeToComplete <= 0) {\n throw new Error(`Invalid actionTimeToComplete value: ${this.actionTimeToComplete}, type; ${this.action.type}`);\n }\n if (!(this.action instanceof ActionIdentifier)) {\n throw new Error(\"Bladeburner.action is not an ActionIdentifier Object\");\n }\n\n // If the previous action went past its completion time, add to the next action\n // This is not added inmediatly in case the automation changes the action\n this.actionTimeCurrent += seconds + this.actionTimeOverflow;\n this.actionTimeOverflow = 0;\n if (this.actionTimeCurrent >= this.actionTimeToComplete) {\n this.actionTimeOverflow = this.actionTimeCurrent - this.actionTimeToComplete;\n const action = this.getActionObject(this.action);\n const retValue = this.completeAction(player, player, this.action);\n player.gainMoney(retValue.money, \"bladeburner\");\n player.gainStats(retValue);\n // Operation Daedalus\n if (action == null) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + this.action.name);\n } else if (this.action.type != ActionTypes[\"BlackOperation\"] && this.action.type != ActionTypes[\"BlackOp\"]) {\n this.startAction(player, this.action); // Repeat action\n }\n }\n }\n\n calculateStaminaGainPerSecond(player: IPlayer): number {\n const effAgility = player.skills.agility * this.skillMultipliers.effAgi;\n const maxStaminaBonus = this.maxStamina / BladeburnerConstants.MaxStaminaToGainFactor;\n const gain = (BladeburnerConstants.StaminaGainPerSecond + maxStaminaBonus) * Math.pow(effAgility, 0.17);\n return gain * (this.skillMultipliers.stamina * player.mults.bladeburner_stamina_gain);\n }\n\n calculateMaxStamina(player: IPlayer): void {\n const effAgility = player.skills.agility * this.skillMultipliers.effAgi;\n const maxStamina =\n (Math.pow(effAgility, 0.8) + this.staminaBonus) *\n this.skillMultipliers.stamina *\n player.mults.bladeburner_max_stamina;\n if (this.maxStamina !== maxStamina) {\n const oldMax = this.maxStamina;\n this.maxStamina = maxStamina;\n this.stamina = (this.maxStamina * this.stamina) / oldMax;\n }\n if (isNaN(maxStamina)) {\n throw new Error(\"Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()\");\n }\n }\n\n create(): void {\n this.contracts[\"Tracking\"] = new Contract({\n name: \"Tracking\",\n baseDifficulty: 125,\n difficultyFac: 1.02,\n rewardFac: 1.041,\n rankGain: 0.3,\n hpLoss: 0.5,\n count: getRandomInt(25, 150),\n weights: {\n hack: 0,\n str: 0.05,\n def: 0.05,\n dex: 0.35,\n agi: 0.35,\n cha: 0.1,\n int: 0.05,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.9,\n int: 1,\n },\n isStealth: true,\n });\n this.contracts[\"Bounty Hunter\"] = new Contract({\n name: \"Bounty Hunter\",\n baseDifficulty: 250,\n difficultyFac: 1.04,\n rewardFac: 1.085,\n rankGain: 0.9,\n hpLoss: 1,\n count: getRandomInt(5, 150),\n weights: {\n hack: 0,\n str: 0.15,\n def: 0.15,\n dex: 0.25,\n agi: 0.25,\n cha: 0.1,\n int: 0.1,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.8,\n int: 0.9,\n },\n isKill: true,\n });\n this.contracts[\"Retirement\"] = new Contract({\n name: \"Retirement\",\n baseDifficulty: 200,\n difficultyFac: 1.03,\n rewardFac: 1.065,\n rankGain: 0.6,\n hpLoss: 1,\n count: getRandomInt(5, 150),\n weights: {\n hack: 0,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0.1,\n int: 0.1,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.8,\n int: 0.9,\n },\n isKill: true,\n });\n\n this.operations[\"Investigation\"] = new Operation({\n name: \"Investigation\",\n baseDifficulty: 400,\n difficultyFac: 1.03,\n rewardFac: 1.07,\n reqdRank: 25,\n rankGain: 2.2,\n rankLoss: 0.2,\n count: getRandomInt(1, 100),\n weights: {\n hack: 0.25,\n str: 0.05,\n def: 0.05,\n dex: 0.2,\n agi: 0.1,\n cha: 0.25,\n int: 0.1,\n },\n decays: {\n hack: 0.85,\n str: 0.9,\n def: 0.9,\n dex: 0.9,\n agi: 0.9,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Undercover Operation\"] = new Operation({\n name: \"Undercover Operation\",\n baseDifficulty: 500,\n difficultyFac: 1.04,\n rewardFac: 1.09,\n reqdRank: 100,\n rankGain: 4.4,\n rankLoss: 0.4,\n hpLoss: 2,\n count: getRandomInt(1, 100),\n weights: {\n hack: 0.2,\n str: 0.05,\n def: 0.05,\n dex: 0.2,\n agi: 0.2,\n cha: 0.2,\n int: 0.1,\n },\n decays: {\n hack: 0.8,\n str: 0.9,\n def: 0.9,\n dex: 0.9,\n agi: 0.9,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Sting Operation\"] = new Operation({\n name: \"Sting Operation\",\n baseDifficulty: 650,\n difficultyFac: 1.04,\n rewardFac: 1.095,\n reqdRank: 500,\n rankGain: 5.5,\n rankLoss: 0.5,\n hpLoss: 2.5,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.25,\n str: 0.05,\n def: 0.05,\n dex: 0.25,\n agi: 0.1,\n cha: 0.2,\n int: 0.1,\n },\n decays: {\n hack: 0.8,\n str: 0.85,\n def: 0.85,\n dex: 0.85,\n agi: 0.85,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Raid\"] = new Operation({\n name: \"Raid\",\n baseDifficulty: 800,\n difficultyFac: 1.045,\n rewardFac: 1.1,\n reqdRank: 3000,\n rankGain: 55,\n rankLoss: 2.5,\n hpLoss: 50,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.7,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.9,\n },\n isKill: true,\n });\n this.operations[\"Stealth Retirement Operation\"] = new Operation({\n name: \"Stealth Retirement Operation\",\n baseDifficulty: 1000,\n difficultyFac: 1.05,\n rewardFac: 1.11,\n reqdRank: 20e3,\n rankGain: 22,\n rankLoss: 2,\n hpLoss: 10,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.1,\n def: 0.1,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.7,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.9,\n },\n isStealth: true,\n isKill: true,\n });\n this.operations[\"Assassination\"] = new Operation({\n name: \"Assassination\",\n baseDifficulty: 1500,\n difficultyFac: 1.06,\n rewardFac: 1.14,\n reqdRank: 50e3,\n rankGain: 44,\n rankLoss: 4,\n hpLoss: 5,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.1,\n def: 0.1,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.8,\n },\n isStealth: true,\n isKill: true,\n });\n }\n\n process(router: IRouter, player: IPlayer): void {\n // Edge race condition when the engine checks the processing counters and attempts to route before the router is initialized.\n if (!router.isInitialized) return;\n\n // If the Player starts doing some other actions, set action to idle and alert\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true) && player.currentWork) {\n if (this.action.type !== ActionTypes[\"Idle\"]) {\n let msg = \"Your Bladeburner action was cancelled because you started doing something else.\";\n if (this.automateEnabled) {\n msg += `
Your automation was disabled as well. You will have to re-enable it through the Bladeburner console`;\n this.automateEnabled = false;\n }\n if (!Settings.SuppressBladeburnerPopup) {\n dialogBoxCreate(msg);\n }\n }\n this.resetAction();\n }\n\n // If the Player has no Stamina, set action to idle\n if (this.stamina <= 0) {\n this.log(\"Your Bladeburner action was cancelled because your stamina hit 0\");\n this.resetAction();\n }\n\n // A 'tick' for this mechanic is one second (= 5 game cycles)\n if (this.storedCycles >= BladeburnerConstants.CyclesPerSecond) {\n let seconds = Math.floor(this.storedCycles / BladeburnerConstants.CyclesPerSecond);\n seconds = Math.min(seconds, 5); // Max of 5 'ticks'\n this.storedCycles -= seconds * BladeburnerConstants.CyclesPerSecond;\n\n // Stamina\n this.calculateMaxStamina(player);\n this.stamina += this.calculateStaminaGainPerSecond(player) * seconds;\n this.stamina = Math.min(this.maxStamina, this.stamina);\n\n // Count increase for contracts/operations\n for (const contract of Object.values(this.contracts)) {\n const growthF = Growths[contract.name];\n if (growthF === undefined) throw new Error(`growth formula for action '${contract.name}' is undefined`);\n contract.count += (seconds * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n for (const op of Object.values(this.operations)) {\n const growthF = Growths[op.name];\n if (growthF === undefined) throw new Error(`growth formula for action '${op.name}' is undefined`);\n if (growthF !== undefined) {\n op.count += (seconds * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n }\n\n // Chaos goes down very slowly\n for (const cityName of BladeburnerConstants.CityNames) {\n const city = this.cities[cityName];\n if (!(city instanceof City)) {\n throw new Error(\"Invalid City object when processing passive chaos reduction in Bladeburner.process\");\n }\n city.chaos -= 0.0001 * seconds;\n city.chaos = Math.max(0, city.chaos);\n }\n\n // Random Events\n this.randomEventCounter -= seconds;\n if (this.randomEventCounter <= 0) {\n this.randomEvent();\n // Add instead of setting because we might have gone over the required time for the event\n this.randomEventCounter += getRandomInt(240, 600);\n }\n\n this.processAction(router, player, seconds);\n\n // Automation\n if (this.automateEnabled) {\n // Note: Do NOT set this.action = this.automateActionHigh/Low since it creates a reference\n if (this.stamina <= this.automateThreshLow) {\n if (this.action.name !== this.automateActionLow.name || this.action.type !== this.automateActionLow.type) {\n this.action = new ActionIdentifier({\n type: this.automateActionLow.type,\n name: this.automateActionLow.name,\n });\n this.startAction(player, this.action);\n }\n } else if (this.stamina >= this.automateThreshHigh) {\n if (this.action.name !== this.automateActionHigh.name || this.action.type !== this.automateActionHigh.type) {\n this.action = new ActionIdentifier({\n type: this.automateActionHigh.type,\n name: this.automateActionHigh.name,\n });\n this.startAction(player, this.action);\n }\n }\n }\n }\n }\n\n getTypeAndNameFromActionId(actionId: IActionIdentifier): {\n type: string;\n name: string;\n } {\n const res = { type: \"\", name: \"\" };\n const types = Object.keys(ActionTypes);\n for (let i = 0; i < types.length; ++i) {\n if (actionId.type === ActionTypes[types[i]]) {\n res.type = types[i];\n break;\n }\n }\n const gen = [\n \"Training\",\n \"Recruitment\",\n \"FieldAnalysis\",\n \"Field Analysis\",\n \"Diplomacy\",\n \"Hyperbolic Regeneration Chamber\",\n \"Incite Violence\",\n ];\n if (gen.includes(res.type)) {\n res.type = \"General\";\n }\n\n if (res.type == null) {\n res.type = \"Idle\";\n }\n\n res.name = actionId.name != null ? actionId.name : \"Idle\";\n return res;\n }\n\n getContractNamesNetscriptFn(): string[] {\n return Object.keys(this.contracts);\n }\n\n getOperationNamesNetscriptFn(): string[] {\n return Object.keys(this.operations);\n }\n\n getBlackOpNamesNetscriptFn(): string[] {\n return Object.keys(BlackOperations);\n }\n\n getGeneralActionNamesNetscriptFn(): string[] {\n return Object.keys(GeneralActions);\n }\n\n getSkillNamesNetscriptFn(): string[] {\n return Object.keys(Skills);\n }\n\n startActionNetscriptFn(player: IPlayer, type: string, name: string, workerScript: WorkerScript): boolean {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n\n // Special logic for Black Ops\n if (actionId.type === ActionTypes[\"BlackOp\"]) {\n const canRunOp = this.canAttemptBlackOp(actionId);\n if (!canRunOp.isAvailable) {\n workerScript.log(\"bladeburner.startAction\", () => canRunOp.error + \"\");\n return false;\n }\n }\n\n try {\n this.startAction(player, actionId);\n workerScript.log(\n \"bladeburner.startAction\",\n () => `Starting bladeburner action with type '${type}' and name '${name}'`,\n );\n return true;\n } catch (e: unknown) {\n console.error(e);\n this.resetAction();\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n }\n\n getActionTimeNetscriptFn(person: IPerson, type: string, name: string): number | string {\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n return \"bladeburner.getActionTime\";\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n return \"bladeburner.getActionTime\";\n }\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return actionObj.getActionTime(this, person) * 1000;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n return 30000;\n case ActionTypes[\"Recruitment\"]:\n return this.getRecruitmentTime(person) * 1000;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return 60000;\n default:\n return \"bladeburner.getActionTime\";\n }\n }\n\n getActionEstimatedSuccessChanceNetscriptFn(person: IPerson, type: string, name: string): [number, number] | string {\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return actionObj.getEstSuccessChance(this, person);\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return [1, 1];\n case ActionTypes[\"Recruitment\"]: {\n const recChance = this.getRecruitmentSuccessChance(person);\n return [recChance, recChance];\n }\n default:\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n }\n\n getActionCountRemainingNetscriptFn(type: string, name: string, workerScript: WorkerScript): number {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n return Math.floor(actionObj.count);\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n if (this.blackops[name] != null) {\n return 0;\n } else {\n return 1;\n }\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Recruitment\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return Infinity;\n default:\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n }\n\n getSkillLevelNetscriptFn(skillName: string, workerScript: WorkerScript): number {\n if (skillName === \"\" || !Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.getSkillLevel\", () => `Invalid skill: '${skillName}'`);\n return -1;\n }\n\n if (this.skills[skillName] == null) {\n return 0;\n } else {\n return this.skills[skillName];\n }\n }\n\n getSkillUpgradeCostNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): number {\n if (skillName === \"\" || !Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.getSkillUpgradeCost\", () => `Invalid skill: '${skillName}'`);\n return -1;\n }\n\n const skill = Skills[skillName];\n if (this.skills[skillName] == null) {\n return skill.calculateCost(0, count);\n } else {\n return skill.calculateCost(this.skills[skillName], count);\n }\n }\n\n upgradeSkillNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): boolean {\n const errorLogText = `Invalid skill: '${skillName}'`;\n if (!Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => errorLogText);\n return false;\n }\n\n const skill = Skills[skillName];\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const cost = skill.calculateCost(currentLevel, count);\n\n if (skill.maxLvl && currentLevel + count > skill.maxLvl) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => `Skill '${skillName}' cannot be upgraded ${count} time(s).`);\n return false;\n }\n\n if (this.skillPoints < cost) {\n workerScript.log(\n \"bladeburner.upgradeSkill\",\n () =>\n `You do not have enough skill points to upgrade ${skillName} ${count} time(s). (You have ${this.skillPoints}, you need ${cost})`,\n );\n return false;\n }\n\n this.skillPoints -= cost;\n this.upgradeSkill(skill, count);\n workerScript.log(\"bladeburner.upgradeSkill\", () => `'${skillName}' upgraded to level ${this.skills[skillName]}`);\n return true;\n }\n\n getTeamSizeNetscriptFn(type: string, name: string, workerScript: WorkerScript): number {\n if (type === \"\" && name === \"\") {\n return this.teamSize;\n }\n\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.getTeamSize\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getTeamSize\", () => errorLogText);\n return -1;\n }\n\n if (\n actionId.type === ActionTypes[\"Operation\"] ||\n actionId.type === ActionTypes[\"BlackOp\"] ||\n actionId.type === ActionTypes[\"BlackOperation\"]\n ) {\n return actionObj.teamCount;\n } else {\n return 0;\n }\n }\n\n setTeamSizeNetscriptFn(type: string, name: string, size: number, workerScript: WorkerScript): number {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.setTeamSize\", () => errorLogText);\n return -1;\n }\n\n if (\n actionId.type !== ActionTypes[\"Operation\"] &&\n actionId.type !== ActionTypes[\"BlackOp\"] &&\n actionId.type !== ActionTypes[\"BlackOperation\"]\n ) {\n workerScript.log(\"bladeburner.setTeamSize\", () => \"Only valid for 'Operations' and 'BlackOps'\");\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.setTeamSize\", () => errorLogText);\n return -1;\n }\n\n let sanitizedSize = Math.round(size);\n if (isNaN(sanitizedSize) || sanitizedSize < 0) {\n workerScript.log(\"bladeburner.setTeamSize\", () => `Invalid size: ${size}`);\n return -1;\n }\n if (this.teamSize < sanitizedSize) {\n sanitizedSize = this.teamSize;\n }\n actionObj.teamCount = sanitizedSize;\n workerScript.log(\"bladeburner.setTeamSize\", () => `Team size for '${name}' set to ${sanitizedSize}.`);\n return sanitizedSize;\n }\n\n joinBladeburnerFactionNetscriptFn(workerScript: WorkerScript): boolean {\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (bladeburnerFac.isMember) {\n return true;\n } else if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n workerScript.log(\"bladeburner.joinBladeburnerFaction\", () => `Joined ${FactionNames.Bladeburners} faction.`);\n return true;\n } else {\n workerScript.log(\n \"bladeburner.joinBladeburnerFaction\",\n () => `You do not have the required rank (${this.rank}/${BladeburnerConstants.RankNeededForFaction}).`,\n );\n return false;\n }\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Bladeburner\", this);\n }\n\n /**\n * Initiatizes a Bladeburner object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Bladeburner {\n return Generic_fromJSON(Bladeburner, value.data);\n }\n}\n\nReviver.constructors.Bladeburner = Bladeburner;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { HacknetNodeConstants } from \"../data/Constants\";\n\nexport function calculateMoneyGainRate(level: number, ram: number, cores: number, mult: number): number {\n const gainPerLevel = HacknetNodeConstants.MoneyGainPerLevel;\n\n const levelMult = level * gainPerLevel;\n const ramMult = Math.pow(1.035, ram - 1);\n const coresMult = (cores + 5) / 6;\n return levelMult * ramMult * coresMult * mult * BitNodeMultipliers.HacknetNodeMoney;\n}\n\nexport function calculateLevelUpgradeCost(startingLevel: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingLevel >= HacknetNodeConstants.MaxLevel) {\n return Infinity;\n }\n\n const mult = HacknetNodeConstants.UpgradeLevelMult;\n let totalMultiplier = 0;\n let currLevel = startingLevel;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalMultiplier += HacknetNodeConstants.LevelBaseCost * Math.pow(mult, currLevel);\n ++currLevel;\n }\n\n return (HacknetNodeConstants.BaseCost / 2) * totalMultiplier * costMult;\n}\n\nexport function calculateRamUpgradeCost(startingRam: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingRam >= HacknetNodeConstants.MaxRam) {\n return Infinity;\n }\n\n let totalCost = 0;\n let numUpgrades = Math.round(Math.log2(startingRam));\n let currentRam = startingRam;\n\n for (let i = 0; i < sanitizedLevels; ++i) {\n const baseCost = currentRam * HacknetNodeConstants.RamBaseCost;\n const mult = Math.pow(HacknetNodeConstants.UpgradeRamMult, numUpgrades);\n\n totalCost += baseCost * mult;\n\n currentRam *= 2;\n ++numUpgrades;\n }\n\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCoreUpgradeCost(startingCore: number, extraLevels = 1, costMult = 1): number {\n const sanitizedCores = Math.round(extraLevels);\n if (isNaN(sanitizedCores) || sanitizedCores < 1) {\n return 0;\n }\n\n if (startingCore >= HacknetNodeConstants.MaxCores) {\n return Infinity;\n }\n\n const coreBaseCost = HacknetNodeConstants.CoreBaseCost;\n const mult = HacknetNodeConstants.UpgradeCoreMult;\n let totalCost = 0;\n let currentCores = startingCore;\n for (let i = 0; i < sanitizedCores; ++i) {\n totalCost += coreBaseCost * Math.pow(mult, currentCores - 1);\n ++currentCores;\n }\n\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateNodeCost(n: number, mult = 1): number {\n if (n <= 0) {\n return 0;\n }\n return HacknetNodeConstants.BaseCost * Math.pow(HacknetNodeConstants.PurchaseNextMult, n - 1) * mult;\n}\n","import * as React from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nconst gainLimit = 10e9;\n\nexport function win(p: IPlayer, n: number): void {\n p.gainMoney(n, \"casino\");\n}\n\nexport function reachedLimit(p: IPlayer): boolean {\n const reached = p.getCasinoWinnings() > gainLimit;\n if (reached) {\n dialogBoxCreate(<>Alright cheater get out of here. You're not allowed here anymore.>);\n }\n return reached;\n}\n\nexport class Game extends React.Component {\n win(p: IPlayer, n: number): void {\n p.gainMoney(n, \"casino\");\n }\n\n reachedLimit(p: IPlayer): boolean {\n const reached = p.getCasinoWinnings() > gainLimit;\n if (reached) {\n dialogBoxCreate(<>Alright cheater get out of here. You're not allowed here anymore.>);\n }\n return reached;\n }\n}\n","const _ = false;\nconst X = true;\nexport const Shapes: {\n O: boolean[][];\n I: boolean[][];\n L: boolean[][];\n J: boolean[][];\n S: boolean[][];\n Z: boolean[][];\n T: boolean[][];\n} = {\n O: [\n [X, X],\n [X, X],\n ],\n I: [[X, X, X, X]],\n L: [\n [_, _, X],\n [X, X, X],\n ],\n J: [\n [X, _, _],\n [X, X, X],\n ],\n S: [\n [_, X, X],\n [X, X, _],\n ],\n Z: [\n [X, X, _],\n [_, X, X],\n ],\n T: [\n [X, X, X],\n [_, X, _],\n ],\n};\n","interface DifficultySetting {\n [key: string]: number;\n}\n\ninterface DifficultySettings {\n Trivial: DifficultySetting;\n Normal: DifficultySetting;\n Hard: DifficultySetting;\n Impossible: DifficultySetting;\n}\n\n// I could use `any` to simply some of this but I also want to take advantage\n// of the type safety that typescript provides. I'm just not sure how in this\n// case.\nexport function interpolate(settings: DifficultySettings, n: number, out: DifficultySetting): DifficultySetting {\n // interpolates between 2 difficulties.\n function lerpD(a: DifficultySetting, b: DifficultySetting, t: number): DifficultySetting {\n // interpolates between 2 numbers.\n function lerp(x: number, y: number, t: number): number {\n return (1 - t) * x + t * y;\n }\n for (const key of Object.keys(a)) {\n out[key] = lerp(a[key], b[key], t);\n }\n return a;\n }\n if (n < 0) return lerpD(settings.Trivial, settings.Trivial, 0);\n if (n >= 0 && n < 1) return lerpD(settings.Trivial, settings.Normal, n);\n if (n >= 1 && n < 2) return lerpD(settings.Normal, settings.Hard, n - 1);\n if (n >= 2 && n < 3) return lerpD(settings.Hard, settings.Impossible, n - 2);\n return lerpD(settings.Impossible, settings.Impossible, 0);\n}\n","import React, { useEffect } from \"react\";\n\ninterface IProps {\n onKeyDown: (this: Document, event: KeyboardEvent) => void;\n onFailure: (options?: { automated: boolean }) => void;\n}\n\nexport function KeyHandler(props: IProps): React.ReactElement {\n useEffect(() => {\n function press(this: Document, event: KeyboardEvent): void {\n if (!event.isTrusted) return;\n const f = props.onKeyDown.bind(this);\n f(event);\n }\n document.addEventListener(\"keydown\", press);\n return () => document.removeEventListener(\"keydown\", press);\n });\n\n // invisible autofocused element that eats all the keypress for the minigames.\n return <>>;\n}\n","import React from \"react\";\nimport { Work, WorkType } from \"./Work\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Factions } from \"../Faction/Factions\";\nimport { Faction } from \"../Faction/Faction\";\nimport { applyWorkStats, scaleWorkStats, WorkStats } from \"./WorkStats\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { calculateFactionExp, calculateFactionRep } from \"./formulas/Faction\";\nimport { FactionWorkType } from \"./data/FactionWorkType\";\n\ninterface FactionWorkParams {\n singularity: boolean;\n factionWorkType: FactionWorkType;\n faction: string;\n}\n\nexport const isFactionWork = (w: Work | null): w is FactionWork => w !== null && w.type === WorkType.FACTION;\n\nexport class FactionWork extends Work {\n factionWorkType: FactionWorkType;\n factionName: string;\n\n constructor(params?: FactionWorkParams) {\n super(WorkType.FACTION, params?.singularity ?? true);\n this.factionWorkType = params?.factionWorkType ?? FactionWorkType.HACKING;\n this.factionName = params?.faction ?? FactionNames.Sector12;\n }\n\n getFaction(): Faction {\n const f = Factions[this.factionName];\n if (!f) throw new Error(`Faction work started with invalid / unknown faction: '${this.factionName}'`);\n return f;\n }\n\n getReputationRate(player: IPlayer): number {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return calculateFactionRep(player, this.factionWorkType, this.getFaction().favor) * focusBonus;\n }\n\n getExpRates(player: IPlayer): WorkStats {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n const rate = calculateFactionExp(player, this.factionWorkType);\n return scaleWorkStats(rate, focusBonus, false);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n this.getFaction().playerReputation += this.getReputationRate(player) * cycles;\n\n const rate = this.getExpRates(player);\n applyWorkStats(player, player, rate, cycles, \"class\");\n\n return false;\n }\n\n finish(): void {\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You worked for {this.getFaction().name}.\n \n They now have a total of reputation.\n >,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n factionWorkType: this.factionWorkType,\n factionName: this.factionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"FactionWork\", this);\n }\n\n /**\n * Initiatizes a FactionWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): FactionWork {\n return Generic_fromJSON(FactionWork, value.data);\n }\n}\n\nReviver.constructors.FactionWork = FactionWork;\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\nexport function Hashes({ hashes }: { hashes: number | string }): React.ReactElement {\n const classes = useStyles();\n return (\n {typeof hashes === \"number\" ? numeralWrapper.formatHashes(hashes) : hashes}\n );\n}\n","/**\n * Hacknet Node Class\n *\n * Hacknet Nodes are specialized machines that passively earn the player money over time.\n * They can be upgraded to increase their production\n */\nimport { IHacknetNode } from \"./IHacknetNode\";\n\nimport { CONSTANTS } from \"../Constants\";\n\nimport {\n calculateMoneyGainRate,\n calculateLevelUpgradeCost,\n calculateCoreUpgradeCost,\n calculateRamUpgradeCost,\n} from \"./formulas/HacknetNodes\";\nimport { HacknetNodeConstants } from \"./data/Constants\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { ObjectValidator, minMax } from \"../utils/Validator\";\n\nexport class HacknetNode implements IHacknetNode {\n static validationData: ObjectValidator = {\n cores: minMax(1, 1, HacknetNodeConstants.MaxCores),\n level: minMax(1, 1, HacknetNodeConstants.MaxLevel),\n ram: minMax(1, 1, HacknetNodeConstants.MaxRam),\n onlineTimeSeconds: minMax(0, 0, Infinity),\n totalMoneyGenerated: minMax(0, 0, Infinity),\n };\n\n // Node's number of cores\n cores = 1;\n\n // Node's Level\n level = 1;\n\n // Node's production per second\n moneyGainRatePerSecond = 0;\n\n // Identifier for Node. Includes the full \"name\" (hacknet-node-N)\n name: string;\n\n // How long this Node has existed, in seconds\n onlineTimeSeconds = 0;\n\n // Node's RAM (GB)\n ram = 1;\n\n // Total money earned by this Node\n totalMoneyGenerated = 0;\n\n constructor(name = \"\", prodMult = 1) {\n this.name = name;\n\n this.updateMoneyGainRate(prodMult);\n }\n\n // Get the cost to upgrade this Node's number of cores\n calculateCoreUpgradeCost(levels = 1, costMult: number): number {\n return calculateCoreUpgradeCost(this.cores, levels, costMult);\n }\n\n // Get the cost to upgrade this Node's level\n calculateLevelUpgradeCost(levels = 1, costMult: number): number {\n return calculateLevelUpgradeCost(this.level, levels, costMult);\n }\n\n // Get the cost to upgrade this Node's RAM\n calculateRamUpgradeCost(levels = 1, costMult: number): number {\n return calculateRamUpgradeCost(this.ram, levels, costMult);\n }\n\n // Process this Hacknet Node in the game loop.\n // Returns the amount of money generated\n process(numCycles = 1): number {\n const seconds = (numCycles * CONSTANTS.MilliPerCycle) / 1000;\n let gain = this.moneyGainRatePerSecond * seconds;\n if (isNaN(gain)) {\n console.error(`Hacknet Node ${this.name} calculated earnings of NaN`);\n gain = 0;\n }\n\n this.totalMoneyGenerated += gain;\n this.onlineTimeSeconds += seconds;\n\n return gain;\n }\n\n // Upgrade this Node's number of cores, if possible\n // Returns a boolean indicating whether new cores were successfully bought\n upgradeCore(levels = 1, prodMult: number): void {\n this.cores = Math.min(HacknetNodeConstants.MaxCores, Math.round(this.cores + levels));\n this.updateMoneyGainRate(prodMult);\n }\n\n // Upgrade this Node's level, if possible\n // Returns a boolean indicating whether the level was successfully updated\n upgradeLevel(levels = 1, prodMult: number): void {\n this.level = Math.min(HacknetNodeConstants.MaxLevel, Math.round(this.level + levels));\n this.updateMoneyGainRate(prodMult);\n }\n\n // Upgrade this Node's RAM, if possible\n // Returns a boolean indicating whether the RAM was successfully upgraded\n upgradeRam(levels = 1, prodMult: number): void {\n for (let i = 0; i < levels; ++i) {\n this.ram *= 2; // Ram is always doubled\n }\n this.ram = Math.round(this.ram); // Handle any floating point precision issues\n this.updateMoneyGainRate(prodMult);\n }\n\n // Re-calculate this Node's production and update the moneyGainRatePerSecond prop\n updateMoneyGainRate(prodMult: number): void {\n this.moneyGainRatePerSecond = calculateMoneyGainRate(this.level, this.ram, this.cores, prodMult);\n if (isNaN(this.moneyGainRatePerSecond)) {\n this.moneyGainRatePerSecond = 0;\n dialogBoxCreate(\"Error in calculating Hacknet Node production. Please report to game developer\");\n }\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"HacknetNode\", this);\n }\n\n /**\n * Initiatizes a HacknetNode object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): HacknetNode {\n return Generic_fromJSON(HacknetNode, value.data);\n }\n}\n\nReviver.constructors.HacknetNode = HacknetNode;\n","/**\n * Implements functions for purchasing servers or purchasing more RAM for\n * the home computer\n */\nimport { AddToAllServers, createUniqueRandomIp } from \"./AllServers\";\nimport { safetlyCreateUniqueServer } from \"./ServerHelpers\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { isPowerOfTwo } from \"../utils/helpers/isPowerOfTwo\";\n\n// Returns the cost of purchasing a server with the given RAM\n// Returns Infinity for invalid 'ram' arguments\n/**\n * @param ram Amount of RAM on purchased server (GB)\n * @returns Cost of purchasing the given server. Returns infinity for invalid arguments\n */\nexport function getPurchaseServerCost(ram: number): number {\n const sanitizedRam = Math.round(ram);\n if (isNaN(sanitizedRam) || !isPowerOfTwo(sanitizedRam) || !(Math.sign(sanitizedRam) === 1)) {\n return Infinity;\n }\n\n if (sanitizedRam > getPurchaseServerMaxRam()) {\n return Infinity;\n }\n\n const upg = Math.max(0, Math.log(sanitizedRam) / Math.log(2) - 6);\n\n return (\n sanitizedRam *\n CONSTANTS.BaseCostFor1GBOfRamServer *\n BitNodeMultipliers.PurchasedServerCost *\n Math.pow(BitNodeMultipliers.PurchasedServerSoftcap, upg)\n );\n}\n\nexport function getPurchaseServerLimit(): number {\n return Math.round(CONSTANTS.PurchasedServerLimit * BitNodeMultipliers.PurchasedServerLimit);\n}\n\nexport function getPurchaseServerMaxRam(): number {\n const ram = Math.round(CONSTANTS.PurchasedServerMaxRam * BitNodeMultipliers.PurchasedServerMaxRam);\n\n // Round this to the nearest power of 2\n return 1 << (31 - Math.clz32(ram));\n}\n\n// Manually purchase a server (NOT through Netscript)\nexport function purchaseServer(hostname: string, ram: number, cost: number, p: IPlayer): void {\n //Check if player has enough money\n if (!p.canAfford(cost)) {\n dialogBoxCreate(\"You don't have enough money to purchase this server!\");\n return;\n }\n\n //Maximum server limit\n if (p.purchasedServers.length >= getPurchaseServerLimit()) {\n dialogBoxCreate(\n \"You have reached the maximum limit of \" +\n getPurchaseServerLimit() +\n \" servers. \" +\n \"You cannot purchase any more. You can \" +\n \"delete some of your purchased servers using the deleteServer() Netscript function in a script\",\n );\n return;\n }\n\n if (hostname == \"\") {\n dialogBoxCreate(\"You must enter a hostname for your new server!\");\n return;\n }\n\n // Create server\n const newServ = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: hostname,\n ip: createUniqueRandomIp(),\n isConnectedTo: false,\n maxRam: ram,\n organizationName: \"\",\n purchasedByPlayer: true,\n });\n AddToAllServers(newServ);\n\n // Add to Player's purchasedServers array\n p.purchasedServers.push(newServ.hostname);\n\n // Connect new server to home computer\n const homeComputer = p.getHomeComputer();\n homeComputer.serversOnNetwork.push(newServ.hostname);\n newServ.serversOnNetwork.push(homeComputer.hostname);\n\n p.loseMoney(cost, \"servers\");\n\n dialogBoxCreate(\"Server successfully purchased with hostname \" + newServ.hostname);\n}\n\n// Manually upgrade RAM on home computer (NOT through Netscript)\nexport function purchaseRamForHomeComputer(p: IPlayer): void {\n const cost = p.getUpgradeHomeRamCost();\n if (!p.canAfford(cost)) {\n dialogBoxCreate(\"You do not have enough money to purchase additional RAM for your home computer\");\n return;\n }\n\n const homeComputer = p.getHomeComputer();\n if (homeComputer.maxRam >= CONSTANTS.HomeComputerMaxRam) {\n dialogBoxCreate(`You cannot upgrade your home computer RAM because it is at its maximum possible value`);\n return;\n }\n\n homeComputer.maxRam *= 2;\n p.loseMoney(cost, \"servers\");\n}\n","import { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { BaseServer } from \"./Server/BaseServer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"./utils/JSONReviver\";\nimport { removeLeadingSlash, isInRootDirectory } from \"./Terminal/DirectoryHelpers\";\n\n/**\n * Represents a plain text file that is typically stored on a server.\n */\nexport class TextFile {\n /**\n * The full file name.\n */\n fn: string;\n\n /**\n * The content of the file.\n */\n text: string;\n\n /**\n * The full file name.\n */\n get filename(): string {\n return this.fn;\n }\n\n /**\n * The full file name.\n */\n set filename(value: string) {\n this.fn = value;\n }\n\n constructor(fn = \"\", txt = \"\") {\n this.fn = (fn.endsWith(\".txt\") ? fn : `${fn}.txt`).replace(/\\s+/g, \"\");\n this.text = txt;\n }\n\n /**\n * Concatenates the raw values to the end of current content.\n */\n append(txt: string): void {\n this.text += txt;\n }\n\n /**\n * Serves the file to the user as a downloadable resource through the browser.\n */\n download(): void {\n const file: Blob = new Blob([this.text], { type: \"text/plain\" });\n const a: HTMLAnchorElement = document.createElement(\"a\");\n const url: string = URL.createObjectURL(file);\n a.href = url;\n a.download = this.fn;\n document.body.appendChild(a);\n a.click();\n setTimeout(() => {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n\n /**\n * Retrieve the content of the file.\n */\n read(): string {\n return this.text;\n }\n\n /**\n * Shows the content to the user via the game's dialog box.\n */\n show(): void {\n dialogBoxCreate(`${this.fn}
${this.text}`);\n }\n\n /**\n * Serialize the current file to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"TextFile\", this);\n }\n\n /**\n * Replaces the current content with the text provided.\n */\n write(txt: string): void {\n this.text = txt;\n }\n\n /**\n * Initiatizes a TextFile from a JSON save state.\n */\n static fromJSON(value: IReviverValue): TextFile {\n return Generic_fromJSON(TextFile, value.data);\n }\n}\n\nReviver.constructors.TextFile = TextFile;\n\n/**\n * Retrieve the file object for the filename on the specified server.\n * @param fn The file name to look for\n * @param server The server object to look in\n * @returns The file object, or null if it couldn't find it.\n */\nexport function getTextFile(fn: string, server: BaseServer): TextFile | null {\n let filename: string = !fn.endsWith(\".txt\") ? `${fn}.txt` : fn;\n\n if (isInRootDirectory(filename)) {\n filename = removeLeadingSlash(filename);\n }\n\n for (const file of server.textFiles) {\n if (file.fn === filename) {\n return file;\n }\n }\n\n return null;\n}\n\n/**\n * Creates a TextFile on the target server.\n * @param fn The file name to create.\n * @param txt The contents of the file.\n * @param server The server that the file should be created on.\n * @returns The instance of the file.\n */\nexport function createTextFile(fn: string, txt: string, server: BaseServer): TextFile | undefined {\n if (getTextFile(fn, server) !== null) {\n // This should probably be a `throw`...\n /* tslint:disable-next-line:no-console */\n console.error(`A file named \"${fn}\" already exists on server ${server.hostname}.`);\n\n return undefined;\n }\n const file: TextFile = new TextFile(fn, txt);\n server.textFiles.push(file);\n\n return file;\n}\n","import { CONSTANTS } from \"../../Constants\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CalculateShareMult } from \"../../NetworkShare/Share\";\nimport { IPerson } from \"../IPerson\";\nimport { calculateIntelligenceBonus } from \"./intelligence\";\n\nfunction mult(favor: number): number {\n let favorMult = 1 + favor / 100;\n if (isNaN(favorMult)) {\n favorMult = 1;\n }\n return favorMult * BitNodeMultipliers.FactionWorkRepGain;\n}\n\nexport function getHackingWorkRepGain(p: IPerson, favor: number): number {\n return (\n ((p.skills.hacking + p.skills.intelligence / 3) / CONSTANTS.MaxSkillLevel) *\n p.mults.faction_rep *\n calculateIntelligenceBonus(p.skills.intelligence, 1) *\n mult(favor) *\n CalculateShareMult()\n );\n}\n\nexport function getFactionSecurityWorkRepGain(p: IPerson, favor: number): number {\n const t =\n (0.9 *\n (p.skills.strength +\n p.skills.defense +\n p.skills.dexterity +\n p.skills.agility +\n (p.skills.hacking + p.skills.intelligence) * CalculateShareMult())) /\n CONSTANTS.MaxSkillLevel /\n 4.5;\n return t * p.mults.faction_rep * mult(favor) * calculateIntelligenceBonus(p.skills.intelligence, 1);\n}\n\nexport function getFactionFieldWorkRepGain(p: IPerson, favor: number): number {\n const t =\n (0.9 *\n (p.skills.strength +\n p.skills.defense +\n p.skills.dexterity +\n p.skills.agility +\n p.skills.charisma +\n (p.skills.hacking + p.skills.intelligence) * CalculateShareMult())) /\n CONSTANTS.MaxSkillLevel /\n 5.5;\n return t * p.mults.faction_rep * mult(favor) * calculateIntelligenceBonus(p.skills.intelligence, 1);\n}\n","import { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\n\nimport { NS as INS } from \"../ScriptEditor/NetscriptDefinitions\";\n\nimport { INetscriptExtra } from \"../NetscriptFunctions/Extra\";\n\ntype RamCostTree = {\n [Property in keyof API]: API[Property] extends () => void\n ? number | ((p: IPlayer) => void)\n : API[Property] extends object\n ? RamCostTree\n : never;\n};\n\n// TODO remember to update RamCalculations.js and WorkerScript.js\n\n// RAM costs for Netscript functions\nexport const RamCostConstants: IMap = {\n ScriptBaseRamCost: 1.6,\n ScriptDomRamCost: 25,\n ScriptCorporationRamCost: 1024 - 1.6,\n ScriptHackRamCost: 0.1,\n ScriptHackAnalyzeRamCost: 1,\n ScriptGrowRamCost: 0.15,\n ScriptGrowthAnalyzeRamCost: 1,\n ScriptWeakenRamCost: 0.15,\n ScriptWeakenAnalyzeRamCost: 1,\n ScriptScanRamCost: 0.2,\n ScriptRecentScriptsRamCost: 0.2,\n ScriptPortProgramRamCost: 0.05,\n ScriptRunRamCost: 1.0,\n ScriptExecRamCost: 1.3,\n ScriptSpawnRamCost: 2.0,\n ScriptScpRamCost: 0.6,\n ScriptKillRamCost: 0.5,\n ScriptHasRootAccessRamCost: 0.05,\n ScriptGetHostnameRamCost: 0.05,\n ScriptGetHackingLevelRamCost: 0.05,\n ScriptGetMultipliersRamCost: 4.0,\n ScriptGetServerRamCost: 0.1,\n ScriptGetServerMaxRam: 0.05,\n ScriptGetServerUsedRam: 0.05,\n ScriptFileExistsRamCost: 0.1,\n ScriptIsRunningRamCost: 0.1,\n ScriptHacknetNodesRamCost: 4.0,\n ScriptHNUpgLevelRamCost: 0.4,\n ScriptHNUpgRamRamCost: 0.6,\n ScriptHNUpgCoreRamCost: 0.8,\n ScriptGetStockRamCost: 2.0,\n ScriptBuySellStockRamCost: 2.5,\n ScriptGetPurchaseServerRamCost: 0.25,\n ScriptPurchaseServerRamCost: 2.25,\n ScriptGetPurchasedServerLimit: 0.05,\n ScriptGetPurchasedServerMaxRam: 0.05,\n ScriptRoundRamCost: 0.05,\n ScriptReadWriteRamCost: 1.0,\n ScriptArbScriptRamCost: 1.0,\n ScriptGetScriptRamCost: 0.1,\n ScriptGetRunningScriptRamCost: 0.3,\n ScriptGetHackTimeRamCost: 0.05,\n ScriptGetFavorToDonate: 0.1,\n ScriptCodingContractBaseRamCost: 10,\n ScriptSleeveBaseRamCost: 4,\n ScriptClearTerminalCost: 0.2,\n\n ScriptSingularityFn1RamCost: 2,\n ScriptSingularityFn2RamCost: 3,\n ScriptSingularityFn3RamCost: 5,\n\n ScriptGangApiBaseRamCost: 4,\n\n ScriptBladeburnerApiBaseRamCost: 4,\n\n ScriptStanekWidth: 0.4,\n ScriptStanekHeight: 0.4,\n ScriptStanekCharge: 0.4,\n ScriptStanekFragmentDefinitions: 0,\n ScriptStanekPlacedFragments: 5,\n ScriptStanekClear: 0,\n ScriptStanekCanPlace: 0.5,\n ScriptStanekPlace: 5,\n ScriptStanekFragmentAt: 2,\n ScriptStanekDeleteAt: 0.15,\n ScriptInfiltrationCalculateDifficulty: 2.5,\n ScriptInfiltrationCalculateRewards: 2.5,\n ScriptInfiltrationGetLocations: 5,\n ScriptInfiltrationGetInfiltrations: 15,\n ScriptStanekAcceptGift: 2,\n};\n\nfunction SF4Cost(cost: number): (player: IPlayer) => number {\n return (player: IPlayer): number => {\n if (player.bitNodeN === 4) return cost;\n const sf4 = player.sourceFileLvl(4);\n if (sf4 <= 1) return cost * 16;\n if (sf4 === 2) return cost * 4;\n return cost;\n };\n}\n\n// Hacknet API\nconst hacknet = {\n numNodes: 0,\n purchaseNode: 0,\n getPurchaseNodeCost: 0,\n getNodeStats: 0,\n upgradeLevel: 0,\n upgradeRam: 0,\n upgradeCore: 0,\n upgradeCache: 0,\n getLevelUpgradeCost: 0,\n getRamUpgradeCost: 0,\n getCoreUpgradeCost: 0,\n getCacheUpgradeCost: 0,\n numHashes: 0,\n hashCost: 0,\n spendHashes: 0,\n maxNumNodes: 0,\n hashCapacity: 0,\n getHashUpgrades: 0,\n getHashUpgradeLevel: 0,\n getStudyMult: 0,\n getTrainingMult: 0,\n};\n\n// Stock API\nconst stock = {\n hasWSEAccount: 0.05,\n hasTIXAPIAccess: 0.05,\n has4SData: 0.05,\n has4SDataTIXAPI: 0.05,\n getSymbols: RamCostConstants.ScriptGetStockRamCost,\n getPrice: RamCostConstants.ScriptGetStockRamCost,\n getAskPrice: RamCostConstants.ScriptGetStockRamCost,\n getBidPrice: RamCostConstants.ScriptGetStockRamCost,\n getPosition: RamCostConstants.ScriptGetStockRamCost,\n getMaxShares: RamCostConstants.ScriptGetStockRamCost,\n getPurchaseCost: RamCostConstants.ScriptGetStockRamCost,\n getSaleGain: RamCostConstants.ScriptGetStockRamCost,\n buyStock: RamCostConstants.ScriptBuySellStockRamCost,\n sellStock: RamCostConstants.ScriptBuySellStockRamCost,\n buyShort: RamCostConstants.ScriptBuySellStockRamCost,\n sellShort: RamCostConstants.ScriptBuySellStockRamCost,\n placeOrder: RamCostConstants.ScriptBuySellStockRamCost,\n cancelOrder: RamCostConstants.ScriptBuySellStockRamCost,\n getOrders: RamCostConstants.ScriptBuySellStockRamCost,\n getVolatility: RamCostConstants.ScriptBuySellStockRamCost,\n getForecast: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketData: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketDataTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseWseAccount: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n};\n\n// Singularity API\nconst singularity = {\n universityCourse: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n gymWorkout: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n travelToCity: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n goToLocation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseTor: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n purchaseProgram: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n getCurrentServer: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n connect: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n manualHack: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n installBackdoor: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost),\n getDarkwebProgramCost: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n getDarkwebPrograms: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n hospitalize: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n isBusy: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n stopAction: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 2),\n upgradeHomeRam: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n upgradeHomeCores: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getUpgradeHomeRamCost: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 2),\n getUpgradeHomeCoresCost: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 2),\n workForCompany: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n applyToCompany: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n quitJob: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getCompanyRep: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getCompanyFavor: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getCompanyFavorGain: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 4),\n checkFactionInvitations: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n joinFaction: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n workForFaction: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost),\n getFactionRep: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getFactionFavor: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 3),\n getFactionFavorGain: SF4Cost(RamCostConstants.ScriptSingularityFn2RamCost / 4),\n donateToFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n createProgram: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n commitCrime: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getCrimeChance: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getCrimeStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getOwnedAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getOwnedSourceFiles: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationsFromFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationCost: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrereq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationBasePrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationRepReq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseAugmentation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n softReset: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n installAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n isFocused: SF4Cost(0.1),\n setFocus: SF4Cost(0.1),\n b1tflum3: SF4Cost(16),\n destroyW0r1dD43m0n: SF4Cost(32),\n getCurrentWork: SF4Cost(0.5),\n};\n\n// Gang API\nconst gang = {\n createGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n inGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getMemberNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getOtherGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getMemberInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n canRecruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n recruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getTaskNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getTaskStats: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n setMemberTask: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getEquipmentCost: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentType: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentStats: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n purchaseEquipment: RamCostConstants.ScriptGangApiBaseRamCost,\n ascendMember: RamCostConstants.ScriptGangApiBaseRamCost,\n getAscensionResult: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n setTerritoryWarfare: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getChanceToWinClash: RamCostConstants.ScriptGangApiBaseRamCost,\n getBonusTime: 0,\n};\n\n// Bladeburner API\nconst bladeburner = {\n getContractNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getOperationNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getGeneralActionNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getSkillNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n startAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n stopBladeburnerAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getCurrentAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 4,\n getActionTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionEstimatedSuccessChance: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionRepGain: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCountRemaining: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionMaxLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillPoints: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillUpgradeCost: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n upgradeSkill: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityEstimatedPopulation: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityCommunities: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityChaos: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n switchCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getStamina: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerFaction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerDivision: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getBonusTime: 0,\n};\n\nconst infiltration = {\n getPossibleLocations: RamCostConstants.ScriptInfiltrationGetLocations,\n getInfiltration: RamCostConstants.ScriptInfiltrationGetInfiltrations,\n};\n\n// Coding Contract API\nconst codingcontract = {\n attempt: RamCostConstants.ScriptCodingContractBaseRamCost,\n getContractType: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getData: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getDescription: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getNumTriesRemaining: RamCostConstants.ScriptCodingContractBaseRamCost / 5,\n};\n\n// Duplicate Sleeve API\nconst sleeve = {\n getNumSleeves: RamCostConstants.ScriptSleeveBaseRamCost,\n setToShockRecovery: RamCostConstants.ScriptSleeveBaseRamCost,\n setToSynchronize: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCommitCrime: RamCostConstants.ScriptSleeveBaseRamCost,\n setToUniversityCourse: RamCostConstants.ScriptSleeveBaseRamCost,\n travel: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCompanyWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToFactionWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToGymWorkout: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveStats: RamCostConstants.ScriptSleeveBaseRamCost,\n getTask: RamCostConstants.ScriptSleeveBaseRamCost,\n getInformation: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentations: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleevePurchasableAugs: RamCostConstants.ScriptSleeveBaseRamCost,\n purchaseSleeveAug: RamCostConstants.ScriptSleeveBaseRamCost,\n setToBladeburnerAction: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationPrice: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationRepReq: RamCostConstants.ScriptSleeveBaseRamCost,\n};\n\n// Stanek API\nconst stanek = {\n giftWidth: RamCostConstants.ScriptStanekWidth,\n giftHeight: RamCostConstants.ScriptStanekHeight,\n chargeFragment: RamCostConstants.ScriptStanekCharge,\n fragmentDefinitions: RamCostConstants.ScriptStanekFragmentDefinitions,\n activeFragments: RamCostConstants.ScriptStanekPlacedFragments,\n clearGift: RamCostConstants.ScriptStanekClear,\n canPlaceFragment: RamCostConstants.ScriptStanekCanPlace,\n placeFragment: RamCostConstants.ScriptStanekPlace,\n getFragment: RamCostConstants.ScriptStanekFragmentAt,\n removeFragment: RamCostConstants.ScriptStanekDeleteAt,\n acceptGift: RamCostConstants.ScriptStanekAcceptGift,\n};\n\n// UI API\nconst ui = {\n getTheme: 0,\n setTheme: 0,\n resetTheme: 0,\n getStyles: 0,\n setStyles: 0,\n resetStyles: 0,\n getGameInfo: 0,\n clearTerminal: 0,\n};\n\n// Grafting API\nconst grafting = {\n getAugmentationGraftPrice: 3.75,\n getAugmentationGraftTime: 3.75,\n getGraftableAugmentations: 5,\n graftAugmentation: 7.5,\n};\n\nconst corporation = {\n getMaterialNames: 0,\n getIndustryTypes: 0,\n getUnlockables: 0,\n getUpgradeNames: 0,\n getResearchNames: 0,\n createCorporation: 0,\n hasUnlockUpgrade: 0,\n getUnlockUpgradeCost: 0,\n getUpgradeLevel: 0,\n getUpgradeLevelCost: 0,\n getExpandIndustryCost: 0,\n getExpandCityCost: 0,\n getInvestmentOffer: 0,\n acceptInvestmentOffer: 0,\n goPublic: 0,\n bribe: 0,\n getCorporation: 0,\n getDivision: 0,\n expandIndustry: 0,\n expandCity: 0,\n unlockUpgrade: 0,\n levelUpgrade: 0,\n issueDividends: 0,\n buyBackShares: 0,\n sellShares: 0,\n getBonusTime: 0,\n sellMaterial: 0,\n sellProduct: 0,\n discontinueProduct: 0,\n setSmartSupply: 0,\n setSmartSupplyUseLeftovers: 0,\n buyMaterial: 0,\n bulkPurchase: 0,\n getWarehouse: 0,\n getProduct: 0,\n getMaterial: 0,\n setMaterialMarketTA1: 0,\n setMaterialMarketTA2: 0,\n setProductMarketTA1: 0,\n setProductMarketTA2: 0,\n exportMaterial: 0,\n cancelExportMaterial: 0,\n purchaseWarehouse: 0,\n upgradeWarehouse: 0,\n makeProduct: 0,\n limitMaterialProduction: 0,\n limitProductProduction: 0,\n getPurchaseWarehouseCost: 0,\n getUpgradeWarehouseCost: 0,\n hasWarehouse: 0,\n assignJob: 0,\n hireEmployee: 0,\n upgradeOfficeSize: 0,\n throwParty: 0,\n buyCoffee: 0,\n hireAdVert: 0,\n research: 0,\n getOffice: 0,\n getEmployee: 0,\n getHireAdVertCost: 0,\n getHireAdVertCount: 0,\n getResearchCost: 0,\n hasResearched: 0,\n setAutoJobAssignment: 0,\n getOfficeSizeUpgradeCost: 0,\n};\n\nconst SourceRamCosts = {\n args: undefined as unknown as never[], // special use case\n enums: undefined as unknown as never,\n corporation,\n hacknet,\n stock,\n singularity,\n ...singularity, // singularity is in namespace & toplevel\n gang,\n bladeburner,\n infiltration,\n codingcontract,\n sleeve,\n stanek,\n ui,\n grafting,\n\n sprintf: 0,\n vsprintf: 0,\n scan: RamCostConstants.ScriptScanRamCost,\n hack: RamCostConstants.ScriptHackRamCost,\n hackAnalyzeThreads: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyze: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeSecurity: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeChance: RamCostConstants.ScriptHackAnalyzeRamCost,\n sleep: 0,\n asleep: 0,\n share: 2.4,\n getSharePower: 0.2,\n grow: RamCostConstants.ScriptGrowRamCost,\n growthAnalyze: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n growthAnalyzeSecurity: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n weaken: RamCostConstants.ScriptWeakenRamCost,\n weakenAnalyze: RamCostConstants.ScriptWeakenAnalyzeRamCost,\n print: 0,\n printf: 0,\n tprint: 0,\n tprintf: 0,\n clearLog: 0,\n disableLog: 0,\n enableLog: 0,\n isLogEnabled: 0,\n getScriptLogs: 0,\n nuke: RamCostConstants.ScriptPortProgramRamCost,\n brutessh: RamCostConstants.ScriptPortProgramRamCost,\n ftpcrack: RamCostConstants.ScriptPortProgramRamCost,\n relaysmtp: RamCostConstants.ScriptPortProgramRamCost,\n httpworm: RamCostConstants.ScriptPortProgramRamCost,\n sqlinject: RamCostConstants.ScriptPortProgramRamCost,\n run: RamCostConstants.ScriptRunRamCost,\n exec: RamCostConstants.ScriptExecRamCost,\n spawn: RamCostConstants.ScriptSpawnRamCost,\n kill: RamCostConstants.ScriptKillRamCost,\n killall: RamCostConstants.ScriptKillRamCost,\n exit: 0,\n atExit: 0,\n scp: RamCostConstants.ScriptScpRamCost,\n ls: RamCostConstants.ScriptScanRamCost,\n ps: RamCostConstants.ScriptScanRamCost,\n getRecentScripts: RamCostConstants.ScriptRecentScriptsRamCost,\n hasRootAccess: RamCostConstants.ScriptHasRootAccessRamCost,\n getHostname: RamCostConstants.ScriptGetHostnameRamCost,\n getHackingLevel: RamCostConstants.ScriptGetHackingLevelRamCost,\n getHackingMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getHacknetMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getBitNodeMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getServer: RamCostConstants.ScriptGetMultipliersRamCost / 2,\n getServerMoneyAvailable: RamCostConstants.ScriptGetServerRamCost,\n getServerSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerBaseSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMinSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerRequiredHackingLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxMoney: RamCostConstants.ScriptGetServerRamCost,\n getServerGrowth: RamCostConstants.ScriptGetServerRamCost,\n getServerNumPortsRequired: RamCostConstants.ScriptGetServerRamCost,\n getServerRam: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxRam: RamCostConstants.ScriptGetServerMaxRam,\n getServerUsedRam: RamCostConstants.ScriptGetServerUsedRam,\n serverExists: RamCostConstants.ScriptGetServerRamCost,\n fileExists: RamCostConstants.ScriptFileExistsRamCost,\n isRunning: RamCostConstants.ScriptIsRunningRamCost,\n getPurchasedServerLimit: RamCostConstants.ScriptGetPurchasedServerLimit,\n getPurchasedServerMaxRam: RamCostConstants.ScriptGetPurchasedServerMaxRam,\n getPurchasedServerCost: RamCostConstants.ScriptGetPurchaseServerRamCost,\n purchaseServer: RamCostConstants.ScriptPurchaseServerRamCost,\n deleteServer: RamCostConstants.ScriptPurchaseServerRamCost,\n getPurchasedServers: RamCostConstants.ScriptPurchaseServerRamCost,\n write: 0,\n tryWritePort: 0,\n read: 0,\n peek: 0,\n clear: 0,\n writePort: 0,\n readPort: 0,\n getPortHandle: 0,\n rm: RamCostConstants.ScriptReadWriteRamCost,\n scriptRunning: RamCostConstants.ScriptArbScriptRamCost,\n scriptKill: RamCostConstants.ScriptArbScriptRamCost,\n getScriptName: 0,\n getScriptRam: RamCostConstants.ScriptGetScriptRamCost,\n getHackTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getGrowTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getWeakenTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getTotalScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getTotalScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getRunningScript: RamCostConstants.ScriptGetRunningScriptRamCost,\n nFormat: 0,\n tFormat: 0,\n getTimeSinceLastAug: RamCostConstants.ScriptGetHackTimeRamCost,\n prompt: 0,\n wget: 0,\n getFavorToDonate: RamCostConstants.ScriptGetFavorToDonate,\n getPlayer: RamCostConstants.ScriptSingularityFn1RamCost / 4,\n mv: 0,\n tail: 0,\n toast: 0,\n closeTail: 0,\n clearPort: 0,\n openDevMenu: 0,\n alert: 0,\n flags: 0,\n exploit: 0,\n bypass: 0,\n alterReality: 0,\n rainbow: 0,\n heart: {\n // Easter egg function\n break: 0,\n },\n\n formulas: {\n mockServer: 0,\n mockPlayer: 0,\n reputation: {\n calculateFavorToRep: 0,\n calculateRepToFavor: 0,\n repFromDonation: 0,\n },\n skills: {\n calculateSkill: 0,\n calculateExp: 0,\n },\n hacking: {\n hackChance: 0,\n hackExp: 0,\n hackPercent: 0,\n growPercent: 0,\n hackTime: 0,\n growTime: 0,\n weakenTime: 0,\n },\n hacknetNodes: {\n moneyGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n hacknetNodeCost: 0,\n constants: 0,\n },\n hacknetServers: {\n hashGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n cacheUpgradeCost: 0,\n hashUpgradeCost: 0,\n hacknetServerCost: 0,\n constants: 0,\n },\n gang: {\n wantedPenalty: 0,\n respectGain: 0,\n wantedLevelGain: 0,\n moneyGain: 0,\n ascensionPointsGain: 0,\n ascensionMultiplier: 0,\n },\n work: {\n crimeGains: 0,\n classGains: 0,\n factionGains: 0,\n },\n },\n};\n\nexport const RamCosts: IMap = SourceRamCosts;\n\n// This line in particular is there so typescript typechecks that we are not missing any static ram cost.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _typecheck: RamCostTree = SourceRamCosts;\n\nexport function getRamCost(player: IPlayer, ...args: string[]): number {\n if (args.length === 0) {\n console.warn(`No arguments passed to getRamCost()`);\n return 0;\n }\n\n let curr = RamCosts[args[0]];\n for (let i = 1; i < args.length; ++i) {\n if (curr == null) {\n console.warn(`Invalid function passed to getRamCost: ${args}`);\n return 0;\n }\n\n const currType = typeof curr;\n if (currType === \"function\" || currType === \"number\") {\n break;\n }\n\n curr = curr[args[i]];\n }\n\n if (typeof curr === \"number\") {\n return curr;\n }\n\n if (typeof curr === \"function\") {\n return curr(player);\n }\n\n console.warn(`Unexpected type (${curr}) for value [${args}]`);\n return 0;\n}\n","import { Skill } from \"./Skill\";\nimport { SkillNames } from \"./data/SkillNames\";\nimport { IMap } from \"../types\";\n\nexport const Skills: IMap = {};\n\n(function () {\n Skills[SkillNames.BladesIntuition] = new Skill({\n name: SkillNames.BladesIntuition,\n desc: \"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%\",\n baseCost: 3,\n costInc: 2.1,\n successChanceAll: 3,\n });\n Skills[SkillNames.Cloak] = new Skill({\n name: SkillNames.Cloak,\n desc:\n \"Each level of this skill increases your \" +\n \"success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%\",\n baseCost: 2,\n costInc: 1.1,\n successChanceStealth: 5.5,\n });\n Skills[SkillNames.ShortCircuit] = new Skill({\n name: SkillNames.ShortCircuit,\n desc:\n \"Each level of this skill increases your success chance \" +\n \"in Contracts, Operations, and BlackOps that involve retirement by 5.5%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceKill: 5.5,\n });\n Skills[SkillNames.DigitalObserver] = new Skill({\n name: SkillNames.DigitalObserver,\n desc: \"Each level of this skill increases your success chance in all Operations and BlackOps by 4%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceOperation: 4,\n });\n Skills[SkillNames.Tracer] = new Skill({\n name: SkillNames.Tracer,\n desc: \"Each level of this skill increases your success chance in all Contracts by 4%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceContract: 4,\n });\n Skills[SkillNames.Overclock] = new Skill({\n name: SkillNames.Overclock,\n desc:\n \"Each level of this skill decreases the time it takes \" +\n \"to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)\",\n baseCost: 3,\n costInc: 1.4,\n maxLvl: 90,\n actionTime: 1,\n });\n Skills[SkillNames.Reaper] = new Skill({\n name: SkillNames.Reaper,\n desc: \"Each level of this skill increases your effective combat stats for Bladeburner actions by 2%\",\n baseCost: 2,\n costInc: 2.1,\n effStr: 2,\n effDef: 2,\n effDex: 2,\n effAgi: 2,\n });\n Skills[SkillNames.EvasiveSystem] = new Skill({\n name: SkillNames.EvasiveSystem,\n desc: \"Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%\",\n baseCost: 2,\n costInc: 2.1,\n effDex: 4,\n effAgi: 4,\n });\n Skills[SkillNames.Datamancer] = new Skill({\n name: SkillNames.Datamancer,\n desc:\n \"Each level of this skill increases your effectiveness in \" +\n \"synthoid population analysis and investigation by 5%. \" +\n \"This affects all actions that can potentially increase \" +\n \"the accuracy of your synthoid population/community estimates.\",\n baseCost: 3,\n costInc: 1,\n successChanceEstimate: 5,\n });\n Skills[SkillNames.CybersEdge] = new Skill({\n name: SkillNames.CybersEdge,\n desc: \"Each level of this skill increases your max stamina by 2%\",\n baseCost: 1,\n costInc: 3,\n stamina: 2,\n });\n Skills[SkillNames.HandsOfMidas] = new Skill({\n name: SkillNames.HandsOfMidas,\n desc: \"Each level of this skill increases the amount of money you receive from Contracts by 10%\",\n baseCost: 2,\n costInc: 2.5,\n money: 10,\n });\n Skills[SkillNames.Hyperdrive] = new Skill({\n name: SkillNames.Hyperdrive,\n desc: \"Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%\",\n baseCost: 1,\n costInc: 2.5,\n expGain: 10,\n });\n})();\n","/**\n * Stock Market Helper Functions\n */\nimport { Stock } from \"./Stock\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { CONSTANTS } from \"../Constants\";\n\n// Amount by which a stock's forecast changes during each price movement\nexport const forecastChangePerPriceMovement = 0.006;\n\n/**\n * Calculate the total cost of a \"buy\" transaction. This accounts for spread and commission.\n * @param {Stock} stock - Stock being purchased\n * @param {number} shares - Number of shares being transacted\n * @param {PositionTypes} posType - Long or short position\n * @returns {number | null} Total transaction cost. Returns null for an invalid transaction\n */\nexport function getBuyTransactionCost(stock: Stock, shares: number, posType: PositionTypes): number | null {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return null;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n const isLong = posType === PositionTypes.Long;\n\n // If the number of shares doesn't trigger a price movement, its a simple calculation\n if (isLong) {\n return shares * stock.getAskPrice() + CONSTANTS.StockMarketCommission;\n } else {\n return shares * stock.getBidPrice() + CONSTANTS.StockMarketCommission;\n }\n}\n\n/**\n * Calculate the TOTAL amount of money gained from a sale (NOT net profit). This accounts\n * for spread and commission.\n * @param {Stock} stock - Stock being sold\n * @param {number} shares - Number of sharse being transacted\n * @param {PositionTypes} posType - Long or short position\n * @returns {number | null} Amount of money gained from transaction. Returns null for an invalid transaction\n */\nexport function getSellTransactionGain(stock: Stock, shares: number, posType: PositionTypes): number | null {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return null;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n const isLong = posType === PositionTypes.Long;\n if (isLong) {\n return shares * stock.getBidPrice() - CONSTANTS.StockMarketCommission;\n } else {\n // Calculating gains for a short position requires calculating the profit made\n const origCost = shares * stock.playerAvgShortPx;\n const profit = (stock.playerAvgShortPx - stock.getAskPrice()) * shares - CONSTANTS.StockMarketCommission;\n\n return origCost + profit;\n }\n}\n\n/**\n * Processes a stock's change in forecast & second-order forecast\n * whenever it is transacted\n * @param {Stock} stock - Stock being sold\n * @param {number} shares - Number of sharse being transacted\n * @param {PositionTypes} posType - Long or short position\n */\nexport function processTransactionForecastMovement(stock: Stock, shares: number): void {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n // If there's only going to be one iteration at most\n const firstShares = stock.shareTxUntilMovement;\n if (shares <= firstShares) {\n stock.shareTxUntilMovement -= shares;\n if (stock.shareTxUntilMovement <= 0) {\n stock.shareTxUntilMovement = stock.shareTxForMovement;\n stock.influenceForecast(forecastChangePerPriceMovement);\n stock.influenceForecastForecast(forecastChangePerPriceMovement * (stock.mv / 100));\n }\n\n return;\n }\n\n // Calculate how many iterations of price changes we need to account for\n const remainingShares = shares - firstShares;\n let numIterations = 1 + Math.ceil(remainingShares / stock.shareTxForMovement);\n\n // If on the offchance we end up perfectly at the next price movement\n stock.shareTxUntilMovement =\n stock.shareTxForMovement - ((shares - stock.shareTxUntilMovement) % stock.shareTxForMovement);\n if (stock.shareTxUntilMovement === stock.shareTxForMovement || stock.shareTxUntilMovement <= 0) {\n ++numIterations;\n stock.shareTxUntilMovement = stock.shareTxForMovement;\n }\n\n // Forecast always decreases in magnitude\n const forecastChange = forecastChangePerPriceMovement * (numIterations - 1);\n const forecastForecastChange = forecastChange * (stock.mv / 100);\n stock.influenceForecast(forecastChange);\n stock.influenceForecastForecast(forecastForecastChange);\n}\n\n/**\n * Calculate the maximum number of shares of a stock that can be purchased.\n * Handles mid-transaction price movements, both L and S positions, etc.\n * Used for the \"Buy Max\" button in the UI\n * @param {Stock} stock - Stock being purchased\n * @param {PositionTypes} posType - Long or short position\n * @param {number} money - Amount of money player has\n * @returns maximum number of shares that the player can purchase\n */\nexport function calculateBuyMaxAmount(stock: Stock, posType: PositionTypes, money: number): number {\n if (!(stock instanceof Stock)) {\n return 0;\n }\n\n const isLong = posType === PositionTypes.Long;\n\n const remainingMoney = money - CONSTANTS.StockMarketCommission;\n const currPrice = isLong ? stock.getAskPrice() : stock.getBidPrice();\n\n return Math.floor(remainingMoney / currPrice);\n}\n","import { gangMemberUpgradesMetadata } from \"./data/upgrades\";\nimport { GangMemberUpgrade } from \"./GangMemberUpgrade\";\n\nexport const GangMemberUpgrades: {\n [key: string]: GangMemberUpgrade;\n} = {};\n\n(function () {\n gangMemberUpgradesMetadata.forEach((e) => {\n GangMemberUpgrades[e.name] = new GangMemberUpgrade(e.name, e.cost, e.upgType, e.mults);\n });\n})();\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\n\nexport function getStockMarket4SDataCost(): number {\n return CONSTANTS.MarketData4SCost * BitNodeMultipliers.FourSigmaMarketDataCost;\n}\n\nexport function getStockMarket4STixApiCost(): number {\n return CONSTANTS.MarketDataTixApi4SCost * BitNodeMultipliers.FourSigmaMarketDataApiCost;\n}\n\nexport function getStockMarketWseCost(): number {\n return CONSTANTS.WSEAccountCost;\n}\n\nexport function getStockMarketTixApiCost(): number {\n return CONSTANTS.TIXAPICost;\n}\n","import { TextField, StandardTextFieldProps } from \"@mui/material\";\nimport React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\n\ninterface IProps extends Omit {\n onChange: (v: number) => void;\n}\n\nexport function NumberInput(props: IProps): React.ReactElement {\n const textProps = {\n ...props,\n onChange: (event: React.ChangeEvent) => {\n const amt = numeralWrapper.parseMoney(event.target.value);\n if (event.target.value === \"\" || isNaN(amt)) props.onChange(NaN);\n else props.onChange(amt);\n },\n };\n return ;\n}\n","/**\n * Map of all Hash Upgrades\n * Key = Hash name, Value = HashUpgrade object\n */\nimport { HashUpgrade, IConstructorParams } from \"./HashUpgrade\";\nimport { HashUpgradesMetadata } from \"./data/HashUpgradesMetadata\";\nimport { IMap } from \"../types\";\n\nexport const HashUpgrades: IMap = {};\n\nfunction createHashUpgrade(p: IConstructorParams): void {\n HashUpgrades[p.name] = new HashUpgrade(p);\n}\n\nfor (const metadata of HashUpgradesMetadata) {\n createHashUpgrade(metadata);\n}\n","import { gangMemberTasksMetadata } from \"./data/tasks\";\nimport { GangMemberTask } from \"./GangMemberTask\";\n\nexport const GangMemberTasks: {\n [key: string]: GangMemberTask;\n} = {};\n\n(function () {\n gangMemberTasksMetadata.forEach((e) => {\n GangMemberTasks[e.name] = new GangMemberTask(e.name, e.desc, e.isHacking, e.isCombat, e.params);\n });\n})();\n","import { Material } from \"./Material\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { IMap } from \"../types\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\n\ninterface IConstructorParams {\n corp?: ICorporation;\n industry?: IIndustry;\n loc?: string;\n size?: number;\n}\n\nexport class Warehouse {\n // Warehouse's level, which affects its maximum size\n level = 1;\n\n // City that this Warehouse is in\n loc: string;\n\n // Map of Materials held by this Warehouse\n materials: IMap;\n\n // Maximum amount warehouse can hold\n size: number;\n\n // Amount of space currently used by warehouse\n sizeUsed = 0;\n\n // Whether Smart Supply is enabled for this Industry (the Industry that this Warehouse is for)\n smartSupplyEnabled = false;\n\n // Decide if smart supply should use the materials already in the warehouse when deciding on the amount to buy.\n smartSupplyUseLeftovers: { [key: string]: boolean | undefined } = {};\n\n // Stores the amount of product to be produced. Used for Smart Supply unlock.\n // The production tracked by smart supply is always based on the previous cycle,\n // so it will always trail the \"true\" production by 1 cycle\n smartSupplyStore = 0;\n\n constructor(params: IConstructorParams = {}) {\n this.loc = params.loc ? params.loc : \"\";\n this.size = params.size ? params.size : 0;\n\n this.materials = {\n Water: new Material({ name: \"Water\" }),\n Energy: new Material({ name: \"Energy\" }),\n Food: new Material({ name: \"Food\" }),\n Plants: new Material({ name: \"Plants\" }),\n Metal: new Material({ name: \"Metal\" }),\n Hardware: new Material({ name: \"Hardware\" }),\n Chemicals: new Material({ name: \"Chemicals\" }),\n Drugs: new Material({ name: \"Drugs\" }),\n Robots: new Material({ name: \"Robots\" }),\n AICores: new Material({ name: \"AI Cores\" }),\n RealEstate: new Material({ name: \"Real Estate\" }),\n };\n\n this.smartSupplyUseLeftovers = {\n Water: true,\n Energy: true,\n Food: true,\n Plants: true,\n Metal: true,\n Hardware: true,\n Chemicals: true,\n Drugs: true,\n Robots: true,\n AICores: true,\n RealEstate: true,\n };\n\n if (params.corp && params.industry) {\n this.updateSize(params.corp, params.industry);\n }\n\n // Default smart supply to being enabled if the upgrade is unlocked\n if (params.corp?.unlockUpgrades[1]) {\n this.smartSupplyEnabled = true;\n }\n }\n\n // Re-calculate how much space is being used by this Warehouse\n updateMaterialSizeUsed(): void {\n this.sizeUsed = 0;\n for (const matName of Object.keys(this.materials)) {\n const mat = this.materials[matName];\n if (MaterialSizes.hasOwnProperty(matName)) {\n this.sizeUsed += mat.qty * MaterialSizes[matName];\n }\n }\n if (this.sizeUsed > this.size) {\n console.warn(\"Warehouse size used greater than capacity, something went wrong\");\n }\n }\n\n updateSize(corporation: ICorporation, industry: IIndustry): void {\n try {\n this.size = this.level * 100 * corporation.getStorageMultiplier() * industry.getStorageMultiplier();\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Warehouse\", this);\n }\n\n // Initiatizes a Warehouse object from a JSON save state.\n static fromJSON(value: IReviverValue): Warehouse {\n return Generic_fromJSON(Warehouse, value.data);\n }\n}\n\nReviver.constructors.Warehouse = Warehouse;\n","import React from \"react\";\nimport { TextFile } from \"../TextFile\";\nimport { Script } from \"../Script/Script\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"../ui/Router\";\nimport { Settings } from \"../Settings/Settings\";\nimport { formatTime } from \"../utils/helpers/formatTime\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport class Output {\n text: string;\n color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\";\n constructor(text: string, color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\") {\n if (Settings.TimestampsFormat) text = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + text;\n this.text = text;\n this.color = color;\n }\n}\n\nexport class RawOutput {\n raw: React.ReactNode;\n constructor(node: React.ReactNode) {\n if (Settings.TimestampsFormat)\n node = (\n <>\n [{formatTime(Settings.TimestampsFormat)}] {node}\n >\n );\n this.raw = node;\n }\n}\n\nexport class Link {\n hostname: string;\n dashes: string;\n constructor(dashes: string, hostname: string) {\n if (Settings.TimestampsFormat) dashes = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + dashes;\n this.hostname = hostname;\n this.dashes = dashes;\n }\n}\n\nexport class TTimer {\n time: number;\n timeLeft: number;\n action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\";\n server?: BaseServer;\n\n constructor(time: number, action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\", server?: BaseServer) {\n this.time = time;\n this.timeLeft = time;\n this.action = action;\n this.server = server;\n }\n}\n\nexport interface ITerminal {\n action: TTimer | null;\n\n commandHistory: string[];\n commandHistoryIndex: number;\n\n outputHistory: (Output | Link | RawOutput)[];\n\n // True if a Coding Contract prompt is opened\n contractOpen: boolean;\n\n // Full Path of current directory\n // Excludes the trailing forward slash\n currDir: string;\n\n print(s: string): void;\n printRaw(node: React.ReactNode): void;\n error(s: string): void;\n success(s: string): void;\n info(s: string): void;\n warn(s: string): void;\n\n clear(): void;\n startAnalyze(player: IPlayer): void;\n startBackdoor(player: IPlayer): void;\n startHack(player: IPlayer): void;\n startGrow(player: IPlayer): void;\n startWeaken(player: IPlayer): void;\n finishHack(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishGrow(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishWeaken(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishBackdoor(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAnalyze(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAction(router: IRouter, player: IPlayer, cancelled?: boolean): void;\n getFilepath(filename: string): string;\n getFile(player: IPlayer, filename: string): Script | TextFile | string | null;\n getScript(player: IPlayer, filename: string): Script | null;\n getTextFile(player: IPlayer, filename: string): TextFile | null;\n getLitFile(player: IPlayer, filename: string): string | null;\n cwd(): string;\n setcwd(dir: string): void;\n runContract(player: IPlayer, name: string): void;\n executeScanAnalyzeCommand(player: IPlayer, depth?: number, all?: boolean): void;\n connectToServer(player: IPlayer, server: string): void;\n executeCommand(router: IRouter, player: IPlayer, command: string): void;\n executeCommands(router: IRouter, player: IPlayer, commands: string): void;\n // If there was any changes, will return true, once.\n process(router: IRouter, player: IPlayer, cycles: number): void;\n prestige(): void;\n getProgressText(): string;\n}\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\ninterface ISkillParams {\n name: string;\n desc: string;\n\n baseCost?: number;\n costInc?: number;\n maxLvl?: number;\n\n successChanceAll?: number;\n successChanceStealth?: number;\n successChanceKill?: number;\n successChanceContract?: number;\n successChanceOperation?: number;\n successChanceEstimate?: number;\n\n actionTime?: number;\n\n effHack?: number;\n effStr?: number;\n effDef?: number;\n effDex?: number;\n effAgi?: number;\n effCha?: number;\n\n stamina?: number;\n money?: number;\n expGain?: number;\n}\n\nexport class Skill {\n name: string;\n desc: string;\n // Cost is in Skill Points\n baseCost = 1;\n // Additive cost increase per level\n costInc = 1;\n maxLvl = 0;\n\n /**\n * These benefits are additive. So total multiplier will be level (handled externally) times the\n * effects below\n */\n successChanceAll = 0;\n successChanceStealth = 0;\n successChanceKill = 0;\n successChanceContract = 0;\n successChanceOperation = 0;\n\n /**\n * This multiplier affects everything that increases synthoid population/community estimate\n * e.g. Field analysis, Investigation Op, Undercover Op\n */\n successChanceEstimate = 0;\n actionTime = 0;\n effHack = 0;\n effStr = 0;\n effDef = 0;\n effDex = 0;\n effAgi = 0;\n effCha = 0;\n stamina = 0;\n money = 0;\n expGain = 0;\n\n constructor(params: ISkillParams = { name: \"foo\", desc: \"foo\" }) {\n if (!params.name) {\n throw new Error(\"Failed to initialize Bladeburner Skill. No name was specified in ctor\");\n }\n if (!params.desc) {\n throw new Error(\"Failed to initialize Bladeburner Skills. No desc was specified in ctor\");\n }\n this.name = params.name;\n this.desc = params.desc;\n this.baseCost = params.baseCost ? params.baseCost : 1;\n this.costInc = params.costInc ? params.costInc : 1;\n\n if (params.maxLvl) {\n this.maxLvl = params.maxLvl;\n }\n\n if (params.successChanceAll) {\n this.successChanceAll = params.successChanceAll;\n }\n if (params.successChanceStealth) {\n this.successChanceStealth = params.successChanceStealth;\n }\n if (params.successChanceKill) {\n this.successChanceKill = params.successChanceKill;\n }\n if (params.successChanceContract) {\n this.successChanceContract = params.successChanceContract;\n }\n if (params.successChanceOperation) {\n this.successChanceOperation = params.successChanceOperation;\n }\n\n if (params.successChanceEstimate) {\n this.successChanceEstimate = params.successChanceEstimate;\n }\n\n if (params.actionTime) {\n this.actionTime = params.actionTime;\n }\n if (params.effHack) {\n this.effHack = params.effHack;\n }\n if (params.effStr) {\n this.effStr = params.effStr;\n }\n if (params.effDef) {\n this.effDef = params.effDef;\n }\n if (params.effDex) {\n this.effDex = params.effDex;\n }\n if (params.effAgi) {\n this.effAgi = params.effAgi;\n }\n if (params.effCha) {\n this.effCha = params.effCha;\n }\n\n if (params.stamina) {\n this.stamina = params.stamina;\n }\n if (params.money) {\n this.money = params.money;\n }\n if (params.expGain) {\n this.expGain = params.expGain;\n }\n }\n\n calculateCost(currentLevel: number, count = 1): number {\n //Recursive mode does not handle invalid inputs properly, but it should never\n //be possible for it to run with them. For the sake of not crashing the game,\n const recursiveMode = (currentLevel: number, count: number): number => {\n if (count <= 1) {\n return Math.floor((this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost);\n } else {\n const thisUpgrade = Math.floor(\n (this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost,\n );\n return this.calculateCost(currentLevel + 1, count - 1) + thisUpgrade;\n }\n };\n\n //Count must be a positive integer.\n if (count < 0 || count % 1 != 0) {\n throw new Error(`${count} is an invalid number of upgrades`);\n }\n //Use recursive mode if count is small\n if (count <= 100) {\n return recursiveMode(currentLevel, count);\n }\n //Use optimized mode if count is large\n else {\n //unFloored is roughly equivalent to\n //(this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost\n //being repeated for increasing currentLevel\n const preMult = (count * (2 * this.baseCost + this.costInc * (2 * currentLevel + count + 1))) / 2;\n const unFloored = preMult * BitNodeMultipliers.BladeburnerSkillCost - count / 2;\n return Math.floor(unFloored);\n }\n }\n\n getMultiplier(name: string): number {\n if (name === \"successChanceAll\") return this.successChanceAll;\n if (name === \"successChanceStealth\") return this.successChanceStealth;\n if (name === \"successChanceKill\") return this.successChanceKill;\n if (name === \"successChanceContract\") return this.successChanceContract;\n if (name === \"successChanceOperation\") return this.successChanceOperation;\n if (name === \"successChanceEstimate\") return this.successChanceEstimate;\n\n if (name === \"actionTime\") return this.actionTime;\n\n if (name === \"effHack\") return this.effHack;\n if (name === \"effStr\") return this.effStr;\n if (name === \"effDef\") return this.effDef;\n if (name === \"effDex\") return this.effDex;\n if (name === \"effAgi\") return this.effAgi;\n if (name === \"effCha\") return this.effCha;\n\n if (name === \"stamina\") return this.stamina;\n if (name === \"money\") return this.money;\n if (name === \"expGain\") return this.expGain;\n return 0;\n }\n}\n","import React from \"react\";\nimport { Modal } from \"./Modal\";\n\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface IProps {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n confirmationText: string | React.ReactNode;\n additionalButton?: React.ReactNode;\n}\n\nexport function ConfirmationModal(props: IProps): React.ReactElement {\n return (\n \n <>\n {props.confirmationText}\n \n {props.additionalButton && <>{props.additionalButton}>}\n >\n \n );\n}\n","/**\n * Represents the possible configuration values that can be provided when creating the progress bar text.\n */\ninterface IProgressBarConfiguration {\n /**\n * Current progress, taken as a decimal (i.e. '0.6' to represent '60%')\n */\n progress?: number;\n\n /**\n * Total number of ticks in progress bar. Preferably a factor of 100.\n */\n totalTicks?: number;\n}\n\n/**\n * Represents concrete configuration values when creating the progress bar text.\n */\ninterface IProgressBarConfigurationMaterialized extends IProgressBarConfiguration {\n progress: number;\n totalTicks: number;\n}\n\n/**\n * Creates a graphical \"progress bar\"\n * e.g.: [||||---------------]\n * @param params The configuration parameters for the progress bar\n */\nexport function createProgressBarText(params: IProgressBarConfiguration): string {\n // Default values\n const defaultParams: IProgressBarConfigurationMaterialized = {\n progress: 0,\n totalTicks: 20,\n };\n\n // tslint:disable-next-line:prefer-object-spread\n const derived: IProgressBarConfigurationMaterialized = Object.assign({}, defaultParams, params);\n // Ensure it is 0..1\n derived.progress = Math.max(Math.min(derived.progress, 1), 0);\n\n // This way there is always at least one bar filled in...\n const bars: number = Math.max(Math.floor(derived.progress / (1 / derived.totalTicks)), 1);\n const dashes: number = Math.max(derived.totalTicks - bars, 0);\n\n // String.prototype.repeat isn't completley supported, but good enough for our purposes\n return `[${\"|\".repeat(bars)}${\"-\".repeat(dashes)}]`;\n}\n","export function hash(): string {\n try {\n if (__COMMIT_HASH__) {\n return __COMMIT_HASH__;\n }\n } catch (err) {}\n return \"DEV\";\n}\n","import { Locations } from \"../../Locations/Locations\";\nimport { Location } from \"../../Locations/Location\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { IPlayer } from \"../../PersonObjects/IPlayer\";\nimport { Class, Classes, ClassType } from \"../ClassWork\";\nimport { WorkStats } from \"../WorkStats\";\nimport { Server } from \"../../Server/Server\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\nimport { IPerson } from \"../../PersonObjects/IPerson\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nconst gameCPS = 1000 / CONSTANTS._idleSpeed; // 5 cycles per second\n\nexport function calculateCost(classs: Class, location: Location): number {\n const serverMeta = serverMetadata.find((s) => s.specialName === location.name);\n const server = GetServer(serverMeta ? serverMeta.hostname : \"\");\n const discount = (server as Server).backdoorInstalled ? 0.9 : 1;\n return classs.earnings.money * location.costMult * discount;\n}\n\nexport function calculateClassEarnings(\n player: IPlayer,\n target: IPerson,\n type: ClassType,\n locationName: LocationName,\n): WorkStats {\n //Find cost and exp gain per game cycle\n const hashManager = player.hashManager;\n const classs = Classes[type];\n const location = Locations[locationName];\n\n const hashMult = [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymStrength, ClassType.GymDexterity].includes(\n type,\n )\n ? hashManager.getTrainingMult()\n : hashManager.getStudyMult();\n\n const cost = calculateCost(classs, location) / gameCPS;\n const hackExp = ((classs.earnings.hackExp * location.expMult) / gameCPS) * hashMult;\n const strExp = ((classs.earnings.strExp * location.expMult) / gameCPS) * hashMult;\n const defExp = ((classs.earnings.defExp * location.expMult) / gameCPS) * hashMult;\n const dexExp = ((classs.earnings.dexExp * location.expMult) / gameCPS) * hashMult;\n const agiExp = ((classs.earnings.agiExp * location.expMult) / gameCPS) * hashMult;\n const chaExp = ((classs.earnings.chaExp * location.expMult) / gameCPS) * hashMult;\n return {\n money: cost,\n reputation: 0,\n hackExp: hackExp * target.mults.hacking_exp * BitNodeMultipliers.ClassGymExpGain,\n strExp: strExp * target.mults.strength_exp * BitNodeMultipliers.ClassGymExpGain,\n defExp: defExp * target.mults.defense_exp * BitNodeMultipliers.ClassGymExpGain,\n dexExp: dexExp * target.mults.dexterity_exp * BitNodeMultipliers.ClassGymExpGain,\n agiExp: agiExp * target.mults.agility_exp * BitNodeMultipliers.ClassGymExpGain,\n chaExp: chaExp * target.mults.charisma_exp * BitNodeMultipliers.ClassGymExpGain,\n intExp: 0,\n };\n}\n","/**\n * Class representing a script file.\n *\n * This does NOT represent a script that is actively running and\n * being evaluated. See RunningScript for that\n */\nimport { calculateRamUsage, RamUsageEntry } from \"./RamCalculations\";\nimport { ScriptUrl } from \"./ScriptUrl\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { roundToTwo } from \"../utils/helpers/roundToTwo\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { ScriptModule } from \"./ScriptModule\";\n\nlet globalModuleSequenceNumber = 0;\n\ninterface ScriptReference {\n filename: string;\n server: string;\n}\n\nexport class Script {\n // Code for this script\n code = \"\";\n\n // Filename for the script file\n filename = \"\";\n\n // url of the script if any, only for NS2.\n url = \"\";\n\n // The dynamic module generated for this script when it is run.\n // This is only applicable for NetscriptJS\n module: Promise | null = null;\n\n // The timestamp when when the script was last updated.\n moduleSequenceNumber: number;\n\n // Only used with NS2 scripts; the list of dependency script filenames. This is constructed\n // whenever the script is first evaluated, and therefore may be out of date if the script\n // has been updated since it was last run.\n dependencies: ScriptUrl[] = [];\n dependents: ScriptReference[] = [];\n\n // Amount of RAM this Script requres to run\n ramUsage = 0;\n ramUsageEntries?: RamUsageEntry[];\n\n // Used to deconflict multiple simultaneous compilations.\n queueCompile = false;\n\n // hostname of server that this script is on.\n server = \"\";\n\n constructor(player: IPlayer | null = null, fn = \"\", code = \"\", server = \"\", otherScripts: Script[] = []) {\n this.filename = fn;\n this.code = code;\n this.server = server; // hostname of server this script is on\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n if (this.code !== \"\" && player !== null) {\n this.updateRamUsage(player, otherScripts);\n }\n }\n\n /**\n * Download the script as a file\n */\n download(): void {\n const filename = this.filename;\n const file = new Blob([this.code], { type: \"text/plain\" });\n const a = document.createElement(\"a\"),\n url = URL.createObjectURL(file);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n setTimeout(function () {\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }, 0);\n }\n\n /**\n * Marks this script as having been updated. It will be recompiled next time something tries\n * to exec it.\n */\n markUpdated(): void {\n this.module = null;\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n }\n\n /**\n * Save a script from the script editor\n * @param {string} code - The new contents of the script\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n saveScript(player: IPlayer, filename: string, code: string, hostname: string, otherScripts: Script[]): void {\n // Update code and filename\n this.code = Script.formatCode(code);\n\n this.filename = filename;\n this.server = hostname;\n this.updateRamUsage(player, otherScripts);\n this.markUpdated();\n for (const dependent of this.dependents) {\n const [dependentScript] = otherScripts.filter(\n (s) => s.filename === dependent.filename && s.server == dependent.server,\n );\n dependentScript?.markUpdated();\n }\n }\n\n /**\n * Calculates and updates the script's RAM usage based on its code\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n updateRamUsage(player: IPlayer, otherScripts: Script[]): void {\n const res = calculateRamUsage(player, this.code, otherScripts);\n if (res.cost > 0) {\n this.ramUsage = roundToTwo(res.cost);\n this.ramUsageEntries = res.entries;\n }\n this.markUpdated();\n }\n\n imports(): string[] {\n return [];\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Script\", this);\n }\n\n // Initializes a Script Object from a JSON save state\n static fromJSON(value: IReviverValue): Script {\n const s = Generic_fromJSON(Script, value.data);\n // Force the url to blank from the save data. Urls are not valid outside the current browser page load.\n s.url = \"\";\n s.dependents = [];\n return s;\n }\n\n /**\n * Formats code: Removes the starting & trailing whitespace\n * @param {string} code - The code to format\n * @returns The formatted code\n */\n static formatCode(code: string): string {\n return code.replace(/^\\s+|\\s+$/g, \"\");\n }\n}\n\nReviver.constructors.Script = Script;\n","import React from \"react\";\n\nimport { Table, TableCell } from \"./Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport { Table as MuiTable } from \"@mui/material\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface IProps {\n rows: React.ReactNode[][];\n title?: string;\n wide?: boolean;\n}\n\nexport function StatsTable({ rows, title, wide }: IProps): React.ReactElement {\n const T = wide ? MuiTable : Table;\n return (\n <>\n {title && {title}}\n \n \n {rows.map((row: React.ReactNode[], i: number) => (\n \n {row.map((elem: React.ReactNode, i: number) => (\n \n {elem}\n \n ))}\n \n ))}\n \n \n >\n );\n}\n","import { DarkWebItem } from \"./DarkWebItem\";\nimport { IMap } from \"../types\";\nimport { Programs } from \"../Programs/Programs\";\n\nexport const DarkWebItems: IMap = {\n BruteSSHProgram: new DarkWebItem(Programs.BruteSSHProgram.name, 500e3, \"Opens up SSH Ports.\"),\n FTPCrackProgram: new DarkWebItem(Programs.FTPCrackProgram.name, 1500e3, \"Opens up FTP Ports.\"),\n RelaySMTPProgram: new DarkWebItem(Programs.RelaySMTPProgram.name, 5e6, \"Opens up SMTP Ports.\"),\n HTTPWormProgram: new DarkWebItem(Programs.HTTPWormProgram.name, 30e6, \"Opens up HTTP Ports.\"),\n SQLInjectProgram: new DarkWebItem(Programs.SQLInjectProgram.name, 250e6, \"Opens up SQL Ports.\"),\n ServerProfiler: new DarkWebItem(\n Programs.ServerProfiler.name,\n 500000,\n \"Displays detailed information about a server.\",\n ),\n DeepscanV1: new DarkWebItem(Programs.DeepscanV1.name, 500000, \"Enables 'scan-analyze' with a depth up to 5.\"),\n DeepscanV2: new DarkWebItem(Programs.DeepscanV2.name, 25e6, \"Enables 'scan-analyze' with a depth up to 10.\"),\n AutolinkProgram: new DarkWebItem(Programs.AutoLink.name, 1e6, \"Enables direct connect via 'scan-analyze'.\"),\n FormulasProgram: new DarkWebItem(Programs.Formulas.name, 5e9, \"Unlock access to the formulas API.\"),\n};\n","export enum GameOptionsTab {\n SYSTEM,\n INTERFACE,\n GAMEPLAY,\n MISC,\n REMOTE_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 { PlayerObject } from \"src/PersonObjects/Player/PlayerObject\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { SkillNames } from \"../Bladeburner/data/SkillNames\";\nimport { Skills } from \"../Bladeburner/Skills\";\nimport { CONSTANTS } from \"../Constants\";\nimport { Industries } from \"../Corporation/IndustryData\";\nimport { Exploit } from \"../Exploits/Exploit\";\nimport { Factions } from \"../Faction/Factions\";\nimport { AllGangs } from \"../Gang/AllGangs\";\nimport { GangConstants } from \"../Gang/data/Constants\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"../Hacknet/data/Constants\";\nimport { hasHacknetServers } from \"../Hacknet/HacknetHelpers\";\nimport { HacknetNode } from \"../Hacknet/HacknetNode\";\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { Player } from \"../Player\";\nimport { Programs } from \"../Programs/Programs\";\nimport { GetAllServers, GetServer } from \"../Server/AllServers\";\nimport { SpecialServers } from \"../Server/data/SpecialServers\";\nimport { Server } from \"../Server/Server\";\nimport { Router } from \"../ui/GameRoot\";\nimport { Page } from \"../ui/Router\";\nimport { IMap } from \"../types\";\nimport * as data from \"./AchievementData.json\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { BlackOperationNames } from \"../Bladeburner/data/BlackOperationNames\";\nimport { isClassWork } from \"../Work/ClassWork\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\n// Unable to correctly cast the JSON data into AchievementDataJson type otherwise...\nconst achievementData = ((data)).achievements;\n\nexport interface Achievement {\n ID: string;\n Icon?: string;\n Name?: string;\n Description?: string;\n Secret?: boolean;\n Condition: () => boolean;\n Visible?: () => boolean;\n AdditionalUnlock?: string[]; // IDs of achievements that should be awarded when awarding this one\n}\n\nexport interface PlayerAchievement {\n ID: string;\n unlockedOn?: number;\n}\n\nexport interface AchievementDataJson {\n achievements: IMap;\n}\n\nexport interface AchievementData {\n ID: string;\n Name: string;\n Description: string;\n}\n\nfunction bitNodeFinishedState(): boolean {\n const wd = GetServer(SpecialServers.WorldDaemon);\n if (!(wd instanceof Server)) return false;\n if (wd.backdoorInstalled) return true;\n return (\n Player.bladeburner !== null && Player.bladeburner.blackops.hasOwnProperty(BlackOperationNames.OperationDaedalus)\n );\n}\n\nfunction hasAccessToSF(player: PlayerObject, bn: number): boolean {\n return player.bitNodeN === bn || player.sourceFiles.some((a) => a.n === bn);\n}\n\nfunction knowsAboutBitverse(player: PlayerObject): boolean {\n return player.sourceFiles.some((a) => a.n === 1);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction sfAchievement(): Achievement[] {\n const achs: Achievement[] = [];\n for (let i = 0; i <= 11; i++) {\n for (let j = 1; j <= 3; j++) {\n achs.push({\n ID: `SF${i}.${j}`,\n Condition: () => Player.sourceFileLvl(i) >= j,\n });\n }\n }\n return achs;\n}\n\nexport const achievements: IMap = {\n [FactionNames.CyberSec.toUpperCase()]: {\n ...achievementData[FactionNames.CyberSec.toUpperCase()],\n Icon: \"CSEC\",\n Condition: () => Player.factions.includes(FactionNames.CyberSec),\n },\n [FactionNames.NiteSec.toUpperCase()]: {\n ...achievementData[FactionNames.NiteSec.toUpperCase()],\n Icon: FactionNames.NiteSec,\n Condition: () => Player.factions.includes(FactionNames.NiteSec),\n },\n THE_BLACK_HAND: {\n ...achievementData[\"THE_BLACK_HAND\"],\n Icon: \"TBH\",\n Condition: () => Player.factions.includes(FactionNames.TheBlackHand),\n },\n [FactionNames.BitRunners.toUpperCase()]: {\n ...achievementData[FactionNames.BitRunners.toUpperCase()],\n Icon: FactionNames.BitRunners.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.BitRunners),\n },\n [FactionNames.Daedalus.toUpperCase()]: {\n ...achievementData[FactionNames.Daedalus.toUpperCase()],\n Icon: FactionNames.Daedalus.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.Daedalus),\n },\n THE_COVENANT: {\n ...achievementData[\"THE_COVENANT\"],\n Icon: FactionNames.TheCovenant.toLowerCase().replace(/ /g, \"\"),\n Condition: () => Player.factions.includes(FactionNames.TheCovenant),\n },\n [FactionNames.Illuminati.toUpperCase()]: {\n ...achievementData[FactionNames.Illuminati.toUpperCase()],\n Icon: FactionNames.Illuminati.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.Illuminati),\n },\n \"BRUTESSH.EXE\": {\n ...achievementData[\"BRUTESSH.EXE\"],\n Icon: \"p0\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.BruteSSHProgram.name),\n },\n \"FTPCRACK.EXE\": {\n ...achievementData[\"FTPCRACK.EXE\"],\n Icon: \"p1\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.FTPCrackProgram.name),\n },\n //-----------------------------------------------------\n \"RELAYSMTP.EXE\": {\n ...achievementData[\"RELAYSMTP.EXE\"],\n Icon: \"p2\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.RelaySMTPProgram.name),\n },\n \"HTTPWORM.EXE\": {\n ...achievementData[\"HTTPWORM.EXE\"],\n Icon: \"p3\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.HTTPWormProgram.name),\n },\n \"SQLINJECT.EXE\": {\n ...achievementData[\"SQLINJECT.EXE\"],\n Icon: \"p4\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.SQLInjectProgram.name),\n },\n \"FORMULAS.EXE\": {\n ...achievementData[\"FORMULAS.EXE\"],\n Icon: \"formulas\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.Formulas.name),\n },\n \"SF1.1\": {\n ...achievementData[\"SF1.1\"],\n Icon: \"SF1.1\",\n Visible: () => hasAccessToSF(Player, 1),\n Condition: () => Player.sourceFileLvl(1) >= 1,\n },\n \"SF2.1\": {\n ...achievementData[\"SF2.1\"],\n Icon: \"SF2.1\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.sourceFileLvl(2) >= 1,\n },\n \"SF3.1\": {\n ...achievementData[\"SF3.1\"],\n Icon: \"SF3.1\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.sourceFileLvl(3) >= 1,\n },\n \"SF4.1\": {\n ...achievementData[\"SF4.1\"],\n Icon: \"SF4.1\",\n Visible: () => hasAccessToSF(Player, 4),\n Condition: () => Player.sourceFileLvl(4) >= 1,\n },\n \"SF5.1\": {\n ...achievementData[\"SF5.1\"],\n Icon: \"SF5.1\",\n Visible: () => hasAccessToSF(Player, 5),\n Condition: () => Player.sourceFileLvl(5) >= 1,\n },\n \"SF6.1\": {\n ...achievementData[\"SF6.1\"],\n Icon: \"SF6.1\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.sourceFileLvl(6) >= 1,\n },\n \"SF7.1\": {\n ...achievementData[\"SF7.1\"],\n Icon: \"SF7.1\",\n Visible: () => hasAccessToSF(Player, 7),\n Condition: () => Player.sourceFileLvl(7) >= 1,\n },\n \"SF8.1\": {\n ...achievementData[\"SF8.1\"],\n Icon: \"SF8.1\",\n Visible: () => hasAccessToSF(Player, 8),\n Condition: () => Player.sourceFileLvl(8) >= 1,\n },\n \"SF9.1\": {\n ...achievementData[\"SF9.1\"],\n Icon: \"SF9.1\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => Player.sourceFileLvl(9) >= 1,\n },\n \"SF10.1\": {\n ...achievementData[\"SF10.1\"],\n Icon: \"SF10.1\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () => Player.sourceFileLvl(10) >= 1,\n },\n \"SF11.1\": {\n ...achievementData[\"SF11.1\"],\n Icon: \"SF11.1\",\n Visible: () => hasAccessToSF(Player, 11),\n Condition: () => Player.sourceFileLvl(11) >= 1,\n },\n \"SF12.1\": {\n ...achievementData[\"SF12.1\"],\n Icon: \"SF12.1\",\n Visible: () => hasAccessToSF(Player, 12),\n Condition: () => Player.sourceFileLvl(12) >= 1,\n },\n MONEY_1Q: {\n ...achievementData[\"MONEY_1Q\"],\n Icon: \"$1Q\",\n Condition: () => Player.money >= 1e18,\n },\n MONEY_M1B: {\n ...achievementData[\"MONEY_M1B\"],\n Icon: \"-1b\",\n Secret: true,\n Condition: () => Player.money <= -1e9,\n },\n INSTALL_1: {\n ...achievementData[\"INSTALL_1\"],\n Icon: \"install\",\n Condition: () => Player.augmentations.length >= 1,\n },\n INSTALL_100: {\n ...achievementData[\"INSTALL_100\"],\n Icon: \"install_100\",\n Condition: () => Player.augmentations.length >= 100,\n },\n QUEUE_40: {\n ...achievementData[\"QUEUE_40\"],\n Icon: \"queue40\",\n Condition: () => Player.queuedAugmentations.length >= 40,\n },\n HACKING_100000: {\n ...achievementData[\"HACKING_100000\"],\n Icon: \"hack100000\",\n Condition: () => Player.skills.hacking >= 100000,\n },\n COMBAT_3000: {\n ...achievementData[\"COMBAT_3000\"],\n Icon: \"combat3000\",\n Condition: () =>\n Player.skills.strength >= 3000 &&\n Player.skills.defense >= 3000 &&\n Player.skills.dexterity >= 3000 &&\n Player.skills.agility >= 3000,\n },\n NEUROFLUX_255: {\n ...achievementData[\"NEUROFLUX_255\"],\n Icon: \"nf255\",\n Condition: () => Player.augmentations.some((a) => a.name === AugmentationNames.NeuroFluxGovernor && a.level >= 255),\n },\n NS2: {\n ...achievementData[\"NS2\"],\n Icon: \"ns2\",\n Condition: () => Player.getHomeComputer().scripts.some((s) => s.filename.endsWith(\".js\")),\n },\n FROZE: {\n ...achievementData[\"FROZE\"],\n Icon: \"forze\",\n Condition: () => location.href.includes(\"noScripts\"),\n },\n RUNNING_SCRIPTS_1000: {\n ...achievementData[\"RUNNING_SCRIPTS_1000\"],\n Icon: \"run1000\",\n Condition: (): boolean => {\n let running = 0;\n for (const s of GetAllServers()) {\n running += s.runningScripts.length;\n }\n return running >= 1000;\n },\n },\n DRAIN_SERVER: {\n ...achievementData[\"DRAIN_SERVER\"],\n Icon: \"drain\",\n Condition: (): boolean => {\n for (const s of GetAllServers()) {\n if (s instanceof Server) {\n if (s.moneyMax > 0 && s.moneyAvailable === 0) return true;\n }\n }\n return false;\n },\n },\n MAX_RAM: {\n ...achievementData[\"MAX_RAM\"],\n Icon: \"maxram\",\n Condition: () => Player.getHomeComputer().maxRam === CONSTANTS.HomeComputerMaxRam,\n },\n MAX_CORES: {\n ...achievementData[\"MAX_CORES\"],\n Icon: \"maxcores\",\n Condition: () => Player.getHomeComputer().cpuCores === 8,\n },\n SCRIPTS_30: {\n ...achievementData[\"SCRIPTS_30\"],\n Icon: \"folders\",\n Condition: () => Player.getHomeComputer().scripts.length >= 30,\n },\n KARMA_1000000: {\n ...achievementData[\"KARMA_1000000\"],\n Icon: \"karma\",\n Secret: true,\n Condition: () => Player.karma <= -1e6,\n },\n STOCK_1q: {\n ...achievementData[\"STOCK_1q\"],\n Icon: \"$1Q\",\n Condition: () => Player.moneySourceB.stock >= 1e15,\n },\n DISCOUNT: {\n ...achievementData[\"DISCOUNT\"],\n Icon: \"discount\",\n Condition: (): boolean => {\n const p = GetServer(\"powerhouse-fitness\");\n if (!(p instanceof Server)) return false;\n return p.backdoorInstalled;\n },\n },\n SCRIPT_32GB: {\n ...achievementData[\"SCRIPT_32GB\"],\n Icon: \"bigcost\",\n Condition: () => Player.getHomeComputer().scripts.some((s) => s.ramUsage >= 32),\n },\n FIRST_HACKNET_NODE: {\n ...achievementData[\"FIRST_HACKNET_NODE\"],\n Icon: \"node\",\n Condition: () => !hasHacknetServers(Player) && Player.hacknetNodes.length > 0,\n },\n \"30_HACKNET_NODE\": {\n ...achievementData[\"30_HACKNET_NODE\"],\n Icon: \"hacknet-all\",\n Condition: () => !hasHacknetServers(Player) && Player.hacknetNodes.length >= 30,\n },\n MAX_HACKNET_NODE: {\n ...achievementData[\"MAX_HACKNET_NODE\"],\n Icon: \"hacknet-max\",\n Condition: (): boolean => {\n if (hasHacknetServers(Player)) return false;\n for (const h of Player.hacknetNodes) {\n if (!(h instanceof HacknetNode)) return false;\n if (\n h.ram === HacknetNodeConstants.MaxRam &&\n h.cores === HacknetNodeConstants.MaxCores &&\n h.level === HacknetNodeConstants.MaxLevel\n )\n return true;\n }\n return false;\n },\n },\n HACKNET_NODE_10M: {\n ...achievementData[\"HACKNET_NODE_10M\"],\n Icon: \"hacknet-10m\",\n Condition: () => !hasHacknetServers(Player) && Player.moneySourceB.hacknet >= 10e6,\n },\n REPUTATION_10M: {\n ...achievementData[\"REPUTATION_10M\"],\n Icon: \"reputation\",\n Condition: () => Object.values(Factions).some((f) => f.playerReputation >= 10e6),\n },\n DONATION: {\n ...achievementData[\"DONATION\"],\n Icon: \"donation\",\n Condition: () =>\n Object.values(Factions).some(\n (f) => f.favor >= Math.floor(CONSTANTS.BaseFavorToDonate * BitNodeMultipliers.RepToDonateToFaction),\n ),\n },\n TRAVEL: {\n ...achievementData[\"TRAVEL\"],\n Icon: \"TRAVEL\",\n Condition: () => Player.city !== CityName.Sector12,\n },\n WORKOUT: {\n ...achievementData[\"WORKOUT\"],\n Icon: \"WORKOUT\",\n Condition: () => isClassWork(Player.currentWork),\n },\n TOR: {\n ...achievementData[\"TOR\"],\n Icon: \"TOR\",\n Condition: () => Player.hasTorRouter(),\n },\n HOSPITALIZED: {\n ...achievementData[\"HOSPITALIZED\"],\n Icon: \"OUCH\",\n Condition: () => Player.moneySourceB.hospitalization !== 0,\n },\n GANG: {\n ...achievementData[\"GANG\"],\n Icon: \"GANG\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null,\n },\n FULL_GANG: {\n ...achievementData[\"FULL_GANG\"],\n Icon: \"GANGMAX\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null && Player.gang.members.length === GangConstants.MaximumGangMembers,\n },\n GANG_TERRITORY: {\n ...achievementData[\"GANG_TERRITORY\"],\n Icon: \"GANG100%\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null && AllGangs[Player.gang.facName].territory >= 0.999,\n },\n GANG_MEMBER_POWER: {\n ...achievementData[\"GANG_MEMBER_POWER\"],\n Icon: \"GANG10000\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () =>\n Player.gang !== null &&\n Player.gang.members.some(\n (m) =>\n m.hack >= 10000 || m.str >= 10000 || m.def >= 10000 || m.dex >= 10000 || m.agi >= 10000 || m.cha >= 10000,\n ),\n },\n CORPORATION: {\n ...achievementData[\"CORPORATION\"],\n Icon: \"CORP\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null,\n },\n CORPORATION_BRIBE: {\n ...achievementData[\"CORPORATION_BRIBE\"],\n Icon: \"CORPLOBBY\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null && Player.corporation.unlockUpgrades[6] === 1,\n },\n CORPORATION_PROD_1000: {\n ...achievementData[\"CORPORATION_PROD_1000\"],\n Icon: \"CORP1000\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null && Player.corporation.divisions.some((d) => d.prodMult >= 1000),\n },\n CORPORATION_EMPLOYEE_3000: {\n ...achievementData[\"CORPORATION_EMPLOYEE_3000\"],\n Icon: \"CORPCITY\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: (): boolean => {\n if (Player.corporation === null) return false;\n for (const d of Player.corporation.divisions) {\n for (const o of Object.values(d.offices)) {\n if (o === 0) continue;\n if (o.employees.length >= 3000) return true;\n }\n }\n return false;\n },\n },\n CORPORATION_REAL_ESTATE: {\n ...achievementData[\"CORPORATION_REAL_ESTATE\"],\n Icon: \"CORPRE\",\n Name: \"Own the land\",\n Description: \"Expand to the Real Estate division.\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () =>\n Player.corporation !== null && Player.corporation.divisions.some((d) => d.type === Industries.RealEstate),\n },\n INTELLIGENCE_255: {\n ...achievementData[\"INTELLIGENCE_255\"],\n Icon: \"INT255\",\n Visible: () => hasAccessToSF(Player, 5),\n Condition: () => Player.skills.intelligence >= 255,\n },\n BLADEBURNER_DIVISION: {\n ...achievementData[\"BLADEBURNER_DIVISION\"],\n Icon: \"BLADE\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bladeburner !== null,\n },\n BLADEBURNER_OVERCLOCK: {\n ...achievementData[\"BLADEBURNER_OVERCLOCK\"],\n Icon: \"BLADEOVERCLOCK\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () =>\n Player.bladeburner !== null &&\n Player.bladeburner.skills[SkillNames.Overclock] === Skills[SkillNames.Overclock].maxLvl,\n },\n BLADEBURNER_UNSPENT_100000: {\n ...achievementData[\"BLADEBURNER_UNSPENT_100000\"],\n Icon: \"BLADE100K\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bladeburner !== null && Player.bladeburner.skillPoints >= 100000,\n },\n \"4S\": {\n ...achievementData[\"4S\"],\n Icon: \"4S\",\n Condition: () => Player.has4SData,\n },\n FIRST_HACKNET_SERVER: {\n ...achievementData[\"FIRST_HACKNET_SERVER\"],\n Icon: \"HASHNET\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.hacknetNodes.length > 0,\n AdditionalUnlock: [achievementData.FIRST_HACKNET_NODE.ID],\n },\n ALL_HACKNET_SERVER: {\n ...achievementData[\"ALL_HACKNET_SERVER\"],\n Icon: \"HASHNETALL\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.hacknetNodes.length === HacknetServerConstants.MaxServers,\n AdditionalUnlock: [achievementData[\"30_HACKNET_NODE\"].ID],\n },\n MAX_HACKNET_SERVER: {\n ...achievementData[\"MAX_HACKNET_SERVER\"],\n Icon: \"HASHNETALL\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: (): boolean => {\n if (!hasHacknetServers(Player)) return false;\n for (const h of Player.hacknetNodes) {\n if (typeof h !== \"string\") return false;\n const hs = GetServer(h);\n if (!(hs instanceof HacknetServer)) return false;\n if (\n hs.maxRam === HacknetServerConstants.MaxRam &&\n hs.cores === HacknetServerConstants.MaxCores &&\n hs.level === HacknetServerConstants.MaxLevel &&\n hs.cache === HacknetServerConstants.MaxCache\n )\n return true;\n }\n return false;\n },\n AdditionalUnlock: [achievementData.MAX_HACKNET_NODE.ID],\n },\n HACKNET_SERVER_1B: {\n ...achievementData[\"HACKNET_SERVER_1B\"],\n Icon: \"HASHNETMONEY\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.moneySourceB.hacknet >= 1e9,\n AdditionalUnlock: [achievementData.HACKNET_NODE_10M.ID],\n },\n MAX_CACHE: {\n ...achievementData[\"MAX_CACHE\"],\n Icon: \"HASHNETCAP\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () =>\n hasHacknetServers(Player) &&\n Player.hashManager.hashes === Player.hashManager.capacity &&\n Player.hashManager.capacity > 0,\n },\n SLEEVE_8: {\n ...achievementData[\"SLEEVE_8\"],\n Icon: \"SLEEVE8\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () => Player.sleeves.length === 8 && Player.sourceFileLvl(10) === 3,\n },\n INDECISIVE: {\n ...achievementData[\"INDECISIVE\"],\n Icon: \"1H\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: (function () {\n let c = 0;\n setInterval(() => {\n if (Router.page() === Page.BitVerse) {\n c++;\n } else {\n c = 0;\n }\n }, 60 * 1000);\n return () => c > 60;\n })(),\n },\n FAST_BN: {\n ...achievementData[\"FAST_BN\"],\n Icon: \"2DAYS\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: () => bitNodeFinishedState() && Player.playtimeSinceLastBitnode < 1000 * 60 * 60 * 24 * 2,\n },\n CHALLENGE_BN1: {\n ...achievementData[\"CHALLENGE_BN1\"],\n Icon: \"BN1+\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: () =>\n Player.bitNodeN === 1 &&\n bitNodeFinishedState() &&\n Player.getHomeComputer().maxRam <= 128 &&\n Player.getHomeComputer().cpuCores === 1,\n },\n CHALLENGE_BN2: {\n ...achievementData[\"CHALLENGE_BN2\"],\n Icon: \"BN2+\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.bitNodeN === 2 && bitNodeFinishedState() && Player.gang === null,\n },\n CHALLENGE_BN3: {\n ...achievementData[\"CHALLENGE_BN3\"],\n Icon: \"BN3+\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.bitNodeN === 3 && bitNodeFinishedState() && Player.corporation === null,\n },\n CHALLENGE_BN6: {\n ...achievementData[\"CHALLENGE_BN6\"],\n Icon: \"BN6+\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bitNodeN === 6 && bitNodeFinishedState() && Player.bladeburner === null,\n },\n CHALLENGE_BN7: {\n ...achievementData[\"CHALLENGE_BN7\"],\n Icon: \"BN7+\",\n Visible: () => hasAccessToSF(Player, 7),\n Condition: () => Player.bitNodeN === 7 && bitNodeFinishedState() && Player.bladeburner === null,\n },\n CHALLENGE_BN8: {\n ...achievementData[\"CHALLENGE_BN8\"],\n Icon: \"BN8+\",\n Visible: () => hasAccessToSF(Player, 8),\n Condition: () => Player.bitNodeN === 8 && bitNodeFinishedState() && !Player.has4SData && !Player.has4SDataTixApi,\n },\n CHALLENGE_BN9: {\n ...achievementData[\"CHALLENGE_BN9\"],\n Icon: \"BN9+\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () =>\n Player.bitNodeN === 9 &&\n bitNodeFinishedState() &&\n Player.moneySourceB.hacknet === 0 &&\n Player.moneySourceB.hacknet_expenses === 0,\n },\n CHALLENGE_BN10: {\n ...achievementData[\"CHALLENGE_BN10\"],\n Icon: \"BN10+\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () =>\n Player.bitNodeN === 10 &&\n bitNodeFinishedState() &&\n !Player.sleeves.some(\n (s) =>\n s.augmentations.length > 0 ||\n s.exp.hacking > 0 ||\n s.exp.strength > 0 ||\n s.exp.defense > 0 ||\n s.exp.agility > 0 ||\n s.exp.dexterity > 0 ||\n s.exp.charisma > 0,\n ),\n },\n CHALLENGE_BN12: {\n ...achievementData[\"CHALLENGE_BN12\"],\n Icon: \"BN12+\",\n Visible: () => hasAccessToSF(Player, 12),\n Condition: () => Player.sourceFileLvl(12) >= 50,\n },\n BYPASS: {\n ...achievementData[\"BYPASS\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.Bypass),\n },\n PROTOTYPETAMPERING: {\n ...achievementData[\"PROTOTYPETAMPERING\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.PrototypeTampering),\n },\n UNCLICKABLE: {\n ...achievementData[\"UNCLICKABLE\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.Unclickable),\n },\n UNDOCUMENTEDFUNCTIONCALL: {\n ...achievementData[\"UNDOCUMENTEDFUNCTIONCALL\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.UndocumentedFunctionCall),\n },\n TIMECOMPRESSION: {\n ...achievementData[\"TIMECOMPRESSION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.TimeCompression),\n },\n REALITYALTERATION: {\n ...achievementData[\"REALITYALTERATION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.RealityAlteration),\n },\n N00DLES: {\n ...achievementData[\"N00DLES\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.N00dles),\n },\n EDITSAVEFILE: {\n ...achievementData[\"EDITSAVEFILE\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.EditSaveFile),\n },\n UNACHIEVABLE: {\n ...achievementData[\"UNACHIEVABLE\"],\n Icon: \"SF-1\",\n Secret: true,\n // Hey Players! Yes, you're supposed to modify this to get the achievement!\n Condition: () => false,\n },\n CHALLENGE_BN13: {\n ...achievementData[\"CHALLENGE_BN13\"],\n Icon: \"BN13+\",\n Visible: () => hasAccessToSF(Player, 13),\n Condition: () =>\n Player.bitNodeN === 13 &&\n bitNodeFinishedState() &&\n !Player.augmentations.some((a) => a.name === AugmentationNames.StaneksGift1),\n },\n DEVMENU: {\n ...achievementData[\"DEVMENU\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.YoureNotMeantToAccessThis),\n },\n RAINBOW: {\n ...achievementData[\"RAINBOW\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.INeedARainbow),\n },\n TRUE_RECURSION: {\n ...achievementData[\"TRUE_RECURSION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.TrueRecursion),\n },\n};\n\n// Steam has a limit of 100 achievement. So these were planned but commented for now.\n// { ID: FactionNames.ECorp.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.ECorp) },\n// { ID: FactionNames.MegaCorp.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.MegaCorp) },\n// { ID: \"BACHMAN_&_ASSOCIATES\", Condition: () => Player.factions.includes(FactionNames.BachmanAssociates) },\n// { ID: \"BLADE_INDUSTRIES\", Condition: () => Player.factions.includes(FactionNames.BladeIndustries) },\n// { ID: FactionNames.NWO.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.NWO) },\n// { ID: \"CLARKE_INCORPORATED\", Condition: () => Player.factions.includes(FactionNames.ClarkeIncorporated) },\n// { ID: \"OMNITEK_INCORPORATED\", Condition: () => Player.factions.includes(FactionNames.OmniTekIncorporated) },\n// { ID: \"FOUR_SIGMA\", Condition: () => Player.factions.includes(FactionNames.FourSigma) },\n// { ID: \"KUAIGONG_INTERNATIONAL\", Condition: () => Player.factions.includes(FactionNames.KuaiGongInternational) },\n// { ID: \"FULCRUM_SECRET_TECHNOLOGIES\", Condition: () => Player.factions.includes(FactionNames.FulcrumSecretTechnologies) },\n// { ID: FactionNames.Aevum.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Aevum) },\n// { ID: FactionNames.Chongqing.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Chongqing) },\n// { ID: FactionNames.Ishima.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Ishima) },\n// { ID: \"NEW_TOKYO\", Condition: () => Player.factions.includes(FactionNames.NewTokyo) },\n// { ID: \"SECTOR-12\", Condition: () => Player.factions.includes(FactionNames.Sector12) },\n// { ID: FactionNames.Volhaven.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Volhaven) },\n// { ID: \"SPEAKERS_FOR_THE_DEAD\", Condition: () => Player.factions.includes(FactionNames.SpeakersForTheDead) },\n// { ID: \"THE_DARK_ARMY\", Condition: () => Player.factions.includes(FactionNames.TheDarkArmy) },\n// { ID: \"THE_SYNDICATE\", Condition: () => Player.factions.includes(FactionNames.TheSyndicate) },\n// { ID: FactionNames.Silhouette.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Silhouette) },\n// { ID: FactionNames.Tetrads.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Tetrads) },\n// { ID: \"SLUM_SNAKES\", Condition: () => Player.factions.includes(FactionNames.SlumSnakes) },\n// { ID: FactionNames.Netburners.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Netburners) },\n// { ID: \"TIAN_DI_HUI\", Condition: () => Player.factions.includes(FactionNames.TianDiHui) },\n// { ID: FactionNames.Bladeburners.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Bladeburners) },\n// { ID: \"DEEPSCANV1.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.DeepscanV1.name) },\n// { ID: \"DEEPSCANV2.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.DeepscanV2.name) },\n// { ID: \"INFILTRATORS\", Condition: () => Player.factions.includes(FactionNames.Infiltrators) },\n// {\n// ID: \"SERVERPROFILER.EXE\",\n// Condition: () => Player.getHomeComputer().programs.includes(Programs.ServerProfiler.name),\n// },\n// { ID: \"AUTOLINK.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.AutoLink.name) },\n// { ID: \"FLIGHT.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.Flight.name) },\n\nexport function calculateAchievements(): void {\n const playerAchievements = Player.achievements.map((a) => a.ID);\n\n const missingAchievements = Object.values(achievements)\n .filter((a) => !playerAchievements.includes(a.ID) && a.Condition())\n // callback returns array of achievement id and id of any in the additional list, flatmap means we have only a 1D array\n .flatMap((a) => [a.ID, ...(a.AdditionalUnlock || [])]);\n\n for (const id of missingAchievements) {\n Player.giveAchievement(id);\n }\n\n // Write all player's achievements to document for Steam/Electron\n // This could be replaced by \"availableAchievements\"\n // if we don't want to grant the save game achievements to steam but only currently available\n document.achievements = [...Player.achievements.map((a) => a.ID)];\n}\n","export function calculateIntelligenceBonus(intelligence: number, weight = 1): number {\n return 1 + (weight * Math.pow(intelligence, 0.8)) / 600;\n}\n","import { CompanyPosition } from \"./CompanyPosition\";\nimport * as posNames from \"./data/companypositionnames\";\nimport { favorToRep, repToFavor } from \"../Faction/formulas/favor\";\n\nimport { IMap } from \"../types\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IConstructorParams {\n name: string;\n info: string;\n companyPositions: IMap;\n expMultiplier: number;\n salaryMultiplier: number;\n jobStatReqOffset: number;\n isMegacorp?: boolean;\n}\n\nconst DefaultConstructorParams: IConstructorParams = {\n name: \"\",\n info: \"\",\n companyPositions: {},\n expMultiplier: 1,\n salaryMultiplier: 1,\n jobStatReqOffset: 0,\n};\n\nexport class Company {\n /**\n * Company name\n */\n name: string;\n\n /**\n * Description and general information about company\n */\n info: string;\n\n /**\n * Has faction associated.\n */\n isMegacorp: boolean;\n\n /**\n * Object that holds all available positions in this Company.\n * Position names are held in keys.\n * The values for the keys don't matter, but we'll make them booleans\n *\n * Must match names of Company Positions, defined in data/companypositionnames.ts\n */\n companyPositions: IMap;\n\n /**\n * Company-specific multiplier for earnings\n */\n expMultiplier: number;\n salaryMultiplier: number;\n\n /**\n * The additional levels of stats you need to quality for a job\n * in this company.\n *\n * For example, the base stat requirement for an intern position is 1.\n * But if a company has a offset of 200, then you would need stat(s) of 201\n */\n jobStatReqOffset: number;\n\n /**\n * Properties to track the player's progress in this company\n */\n isPlayerEmployed: boolean;\n playerReputation: number;\n favor: number;\n\n constructor(p: IConstructorParams = DefaultConstructorParams) {\n this.name = p.name;\n this.info = p.info;\n this.companyPositions = p.companyPositions;\n this.expMultiplier = p.expMultiplier;\n this.salaryMultiplier = p.salaryMultiplier;\n this.jobStatReqOffset = p.jobStatReqOffset;\n\n this.isPlayerEmployed = false;\n this.playerReputation = 1;\n this.favor = 0;\n this.isMegacorp = false;\n if (p.isMegacorp) this.isMegacorp = true;\n }\n\n hasPosition(pos: CompanyPosition | string): boolean {\n if (pos instanceof CompanyPosition) {\n return this.companyPositions[pos.name] != null;\n } else {\n return this.companyPositions[pos] != null;\n }\n }\n\n hasAgentPositions(): boolean {\n return this.companyPositions[posNames.AgentCompanyPositions[0]] != null;\n }\n\n hasBusinessConsultantPositions(): boolean {\n return this.companyPositions[posNames.BusinessConsultantCompanyPositions[0]] != null;\n }\n\n hasBusinessPositions(): boolean {\n return this.companyPositions[posNames.BusinessCompanyPositions[0]] != null;\n }\n\n hasEmployeePositions(): boolean {\n return this.companyPositions[posNames.MiscCompanyPositions[1]] != null;\n }\n\n hasITPositions(): boolean {\n return this.companyPositions[posNames.ITCompanyPositions[0]] != null;\n }\n\n hasSecurityPositions(): boolean {\n return this.companyPositions[posNames.SecurityCompanyPositions[2]] != null;\n }\n\n hasSoftwareConsultantPositions(): boolean {\n return this.companyPositions[posNames.SoftwareConsultantCompanyPositions[0]] != null;\n }\n\n hasSoftwarePositions(): boolean {\n return this.companyPositions[posNames.SoftwareCompanyPositions[0]] != null;\n }\n\n hasWaiterPositions(): boolean {\n return this.companyPositions[posNames.MiscCompanyPositions[0]] != null;\n }\n\n gainFavor(): void {\n if (this.favor == null) {\n this.favor = 0;\n }\n this.favor += this.getFavorGain();\n }\n\n getFavorGain(): number {\n if (this.favor == null) {\n this.favor = 0;\n }\n const storedRep = Math.max(0, favorToRep(this.favor));\n const totalRep = storedRep + this.playerReputation;\n const newFavor = repToFavor(totalRep);\n return newFavor - this.favor;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Company\", this);\n }\n\n /**\n * Initiatizes a Company from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Company {\n return Generic_fromJSON(Company, value.data);\n }\n}\n\nReviver.constructors.Company = Company;\n","/**\n * Returns the input array as a comma separated string.\n *\n * Does several things that Array.toString() doesn't do\n * - Adds brackets around the array\n * - Adds quotation marks around strings\n */\nexport function arrayToString(a: unknown[]): string {\n const vals: unknown[] = [];\n for (let i = 0; i < a.length; ++i) {\n let elem: unknown = a[i];\n if (Array.isArray(elem)) {\n elem = arrayToString(elem);\n } else if (typeof elem === \"string\") {\n elem = `\"${elem}\"`;\n }\n vals.push(elem);\n }\n\n return `[${vals.join(\", \")}]`;\n}\n","import React from \"react\";\nimport { MathJax, MathJaxContext } from \"better-react-mathjax\";\n\ninterface IProps {\n children: React.ReactNode;\n}\n\nexport function MathJaxWrapper({ children }: IProps): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n","import { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\ninterface IError {\n fileName?: string;\n lineNumber?: number;\n}\n\nexport const isIError = (v: unknown): v is IError => {\n if (typeof v !== \"object\" || v == null) return false;\n return v.hasOwnProperty(\"fileName\") && v.hasOwnProperty(\"lineNumber\");\n};\n\nexport function exceptionAlert(e: unknown): void {\n console.error(e);\n let msg = \"\";\n let file = \"UNKNOWN FILE NAME\";\n let line = \"UNKNOWN LINE NUMBER\";\n if (isIError(e)) {\n file = e.fileName ?? file;\n line = e.lineNumber?.toString() ?? line;\n } else {\n msg = String(e);\n }\n dialogBoxCreate(\n \"Caught an exception: \" +\n msg +\n \"
\" +\n \"Filename: \" +\n file +\n \"
\" +\n \"Line Number: \" +\n line +\n \"
\" +\n \"This is a bug, please report to game developer with this \" +\n \"message as well as details about how to reproduce the bug.
\" +\n \"If you want to be safe, I suggest refreshing the game WITHOUT saving so that your \" +\n \"save doesn't get corrupted\",\n );\n}\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { CONSTANTS } from \"../../../Constants\";\nimport { GeneralActions } from \"../../../Bladeburner/data/GeneralActions\";\nimport { WorkStats } from \"../../../Work/WorkStats\";\n\ninterface SleeveBladeburnerWorkParams {\n type: string;\n name: string;\n}\n\nexport const isSleeveBladeburnerWork = (w: Work | null): w is SleeveBladeburnerWork =>\n w !== null && w.type === WorkType.BLADEBURNER;\n\nexport class SleeveBladeburnerWork extends Work {\n cyclesWorked = 0;\n actionType: string;\n actionName: string;\n\n constructor(params?: SleeveBladeburnerWorkParams) {\n super(WorkType.BLADEBURNER);\n this.actionType = params?.type ?? \"General\";\n this.actionName = params?.name ?? \"Field analysis\";\n }\n\n cyclesNeeded(player: IPlayer, sleeve: Sleeve): number {\n const ret = player.bladeburner?.getActionTimeNetscriptFn(sleeve, this.actionType, this.actionName);\n if (!ret || typeof ret === \"string\") throw new Error(`Error querying ${this.actionName} time`);\n return ret / CONSTANTS._idleSpeed;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (!player.bladeburner) throw new Error(\"sleeve doing blade work without being a member\");\n this.cyclesWorked += cycles;\n while (this.cyclesWorked > this.cyclesNeeded(player, sleeve)) {\n const actionIdent = player.bladeburner.getActionIdFromTypeAndName(this.actionType, this.actionName);\n if (!actionIdent) throw new Error(`Error getting ${this.actionName} action`);\n player.bladeburner.completeAction(player, sleeve, actionIdent, false);\n let exp: WorkStats | undefined;\n if (this.actionType === \"General\") {\n exp = GeneralActions[this.actionName]?.exp;\n if (!exp) throw new Error(`Somehow there was no exp for action ${this.actionType} ${this.actionName}`);\n applySleeveGains(player, sleeve, exp, 1);\n }\n this.cyclesWorked -= this.cyclesNeeded(player, sleeve);\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n actionType: this.actionType,\n actionName: this.actionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveBladeburnerWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveBladeburnerWork {\n return Generic_fromJSON(SleeveBladeburnerWork, value.data);\n }\n}\n\nReviver.constructors.SleeveBladeburnerWork = SleeveBladeburnerWork;\n","export interface CorporationUnlockUpgrade {\n index: number;\n price: number;\n name: string;\n desc: string;\n}\n\nexport enum CorporationUnlockUpgradeIndex {\n Export = 0,\n SmartSupply = 1,\n MarketResearchDemand = 2,\n MarketDataCompetition = 3,\n VeChain = 4,\n ShadyAccounting = 5,\n GovernmentPartnership = 6,\n WarehouseAPI = 7,\n OfficeAPI = 8,\n}\n\n// Corporation Unlock Upgrades\n// Upgrades for entire corporation, unlocks features, either you have it or you dont\nexport const CorporationUnlockUpgrades: Record = {\n //Lets you export goods\n [CorporationUnlockUpgradeIndex.Export]: {\n index: 0,\n price: 20e9,\n name: \"Export\",\n desc:\n \"Develop infrastructure to export your materials to your other facilities. \" +\n \"This allows you to move materials around between different divisions and cities.\",\n },\n\n //Lets you buy exactly however many required materials you need for production\n [CorporationUnlockUpgradeIndex.SmartSupply]: {\n index: 1,\n price: 25e9,\n name: \"Smart Supply\",\n desc:\n \"Use advanced AI to anticipate your supply needs. \" +\n \"This allows you to purchase exactly however many materials you need for production.\",\n },\n\n //Displays each material/product's demand\n [CorporationUnlockUpgradeIndex.MarketResearchDemand]: {\n index: 2,\n price: 5e9,\n name: \"Market Research - Demand\",\n desc:\n \"Mine and analyze market data to determine the demand of all resources. \" +\n \"The demand attribute, which affects sales, will be displayed for every material and product.\",\n },\n\n //Display's each material/product's competition\n [CorporationUnlockUpgradeIndex.MarketDataCompetition]: {\n index: 3,\n price: 5e9,\n name: \"Market Data - Competition\",\n desc:\n \"Mine and analyze market data to determine how much competition there is on the market \" +\n \"for all resources. The competition attribute, which affects sales, will be displayed for \" +\n \"every material and product.\",\n },\n [CorporationUnlockUpgradeIndex.VeChain]: {\n index: 4,\n price: 10e9,\n name: \"VeChain\",\n desc:\n \"Use AI and blockchain technology to identify where you can improve your supply chain systems. \" +\n \"This upgrade will allow you to view a wide array of useful statistics about your \" +\n \"Corporation.\",\n },\n [CorporationUnlockUpgradeIndex.ShadyAccounting]: {\n index: 5,\n price: 500e12,\n name: \"Shady Accounting\",\n desc:\n \"Utilize unscrupulous accounting practices and pay off government officials to save money \" +\n \"on taxes. This reduces the dividend tax rate by 5%.\",\n },\n [CorporationUnlockUpgradeIndex.GovernmentPartnership]: {\n index: 6,\n price: 2e15,\n name: \"Government Partnership\",\n desc:\n \"Help national governments further their agendas in exchange for lowered taxes. \" +\n \"This reduces the dividend tax rate by 10%\",\n },\n [CorporationUnlockUpgradeIndex.WarehouseAPI]: {\n index: 7,\n price: 50e9,\n name: \"Warehouse API\",\n desc: \"Enables the warehouse API.\",\n },\n [CorporationUnlockUpgradeIndex.OfficeAPI]: {\n index: 8,\n price: 50e9,\n name: \"Office API\",\n desc: \"Enables the office API.\",\n },\n};\n","import { StaticAugmentations } from \"../../Augmentation/StaticAugmentations\";\nimport { GraftableAugmentation } from \"./GraftableAugmentation\";\nimport { IPlayer } from \"../IPlayer\";\n\nexport const getGraftingAvailableAugs = (player: IPlayer): string[] => {\n const augs: string[] = [];\n\n for (const [augName, aug] of Object.entries(StaticAugmentations)) {\n if (aug.isSpecial) continue;\n augs.push(augName);\n }\n\n return augs.filter((augmentation: string) => !player.hasAugmentation(augmentation));\n};\n\nexport const graftingIntBonus = (player: IPlayer): number => {\n return 1 + (player.getIntelligenceBonus(3) - 1) / 3;\n};\n\nexport const calculateGraftingTimeWithBonus = (player: IPlayer, aug: GraftableAugmentation): number => {\n const baseTime = aug.time;\n return baseTime / graftingIntBonus(player);\n};\n","import { BlackOperation } from \"./BlackOperation\";\nimport { IMap } from \"../types\";\nimport { BlackOperationNames } from \"./data/BlackOperationNames\";\n\nexport const BlackOperations: IMap = {};\n\n(function () {\n BlackOperations[BlackOperationNames.OperationTyphoon] = new BlackOperation({\n name: BlackOperationNames.OperationTyphoon,\n baseDifficulty: 2000,\n reqdRank: 2.5e3,\n rankGain: 50,\n rankLoss: 10,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationZero] = new BlackOperation({\n name: BlackOperationNames.OperationZero,\n baseDifficulty: 2500,\n reqdRank: 5e3,\n rankGain: 60,\n rankLoss: 15,\n hpLoss: 50,\n weights: {\n hack: 0.2,\n str: 0.15,\n def: 0.15,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationX] = new BlackOperation({\n name: BlackOperationNames.OperationX,\n baseDifficulty: 3000,\n reqdRank: 7.5e3,\n rankGain: 75,\n rankLoss: 15,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationTitan] = new BlackOperation({\n name: BlackOperationNames.OperationTitan,\n baseDifficulty: 4000,\n reqdRank: 10e3,\n rankGain: 100,\n rankLoss: 20,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationAres] = new BlackOperation({\n name: BlackOperationNames.OperationAres,\n baseDifficulty: 5000,\n reqdRank: 12.5e3,\n rankGain: 125,\n rankLoss: 20,\n hpLoss: 200,\n weights: {\n hack: 0,\n str: 0.25,\n def: 0.25,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationArchangel] = new BlackOperation({\n name: BlackOperationNames.OperationArchangel,\n baseDifficulty: 7500,\n reqdRank: 15e3,\n rankGain: 200,\n rankLoss: 20,\n hpLoss: 25,\n weights: {\n hack: 0,\n str: 0.2,\n def: 0.2,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationJuggernaut] = new BlackOperation({\n name: BlackOperationNames.OperationJuggernaut,\n baseDifficulty: 10e3,\n reqdRank: 20e3,\n rankGain: 300,\n rankLoss: 40,\n hpLoss: 300,\n weights: {\n hack: 0,\n str: 0.25,\n def: 0.25,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationRedDragon] = new BlackOperation({\n name: BlackOperationNames.OperationRedDragon,\n baseDifficulty: 12.5e3,\n reqdRank: 25e3,\n rankGain: 500,\n rankLoss: 50,\n hpLoss: 500,\n weights: {\n hack: 0.05,\n str: 0.2,\n def: 0.2,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationK] = new BlackOperation({\n name: BlackOperationNames.OperationK,\n baseDifficulty: 15e3,\n reqdRank: 30e3,\n rankGain: 750,\n rankLoss: 60,\n hpLoss: 1000,\n weights: {\n hack: 0.05,\n str: 0.2,\n def: 0.2,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationDeckard] = new BlackOperation({\n name: BlackOperationNames.OperationDeckard,\n baseDifficulty: 20e3,\n reqdRank: 40e3,\n rankGain: 1e3,\n rankLoss: 75,\n hpLoss: 200,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationTyrell] = new BlackOperation({\n name: BlackOperationNames.OperationTyrell,\n baseDifficulty: 25e3,\n reqdRank: 50e3,\n rankGain: 1.5e3,\n rankLoss: 100,\n hpLoss: 500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationWallace] = new BlackOperation({\n name: BlackOperationNames.OperationWallace,\n baseDifficulty: 30e3,\n reqdRank: 75e3,\n rankGain: 2e3,\n rankLoss: 150,\n hpLoss: 1500,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationShoulderOfOrion] = new BlackOperation({\n name: BlackOperationNames.OperationShoulderOfOrion,\n baseDifficulty: 35e3,\n reqdRank: 100e3,\n rankGain: 2.5e3,\n rankLoss: 500,\n hpLoss: 1500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationHyron] = new BlackOperation({\n name: BlackOperationNames.OperationHyron,\n baseDifficulty: 40e3,\n reqdRank: 125e3,\n rankGain: 3e3,\n rankLoss: 1e3,\n hpLoss: 500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationMorpheus] = new BlackOperation({\n name: BlackOperationNames.OperationMorpheus,\n baseDifficulty: 45e3,\n reqdRank: 150e3,\n rankGain: 4e3,\n rankLoss: 1e3,\n hpLoss: 100,\n weights: {\n hack: 0.05,\n str: 0.15,\n def: 0.15,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationIonStorm] = new BlackOperation({\n name: BlackOperationNames.OperationIonStorm,\n baseDifficulty: 50e3,\n reqdRank: 175e3,\n rankGain: 5e3,\n rankLoss: 1e3,\n hpLoss: 5000,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationAnnihilus] = new BlackOperation({\n name: BlackOperationNames.OperationAnnihilus,\n baseDifficulty: 55e3,\n reqdRank: 200e3,\n rankGain: 7.5e3,\n rankLoss: 1e3,\n hpLoss: 10e3,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationUltron] = new BlackOperation({\n name: BlackOperationNames.OperationUltron,\n baseDifficulty: 60e3,\n reqdRank: 250e3,\n rankGain: 10e3,\n rankLoss: 2e3,\n hpLoss: 10e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationCenturion] = new BlackOperation({\n name: BlackOperationNames.OperationCenturion,\n baseDifficulty: 70e3,\n reqdRank: 300e3,\n rankGain: 15e3,\n rankLoss: 5e3,\n hpLoss: 10e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n BlackOperations[BlackOperationNames.OperationVindictus] = new BlackOperation({\n name: BlackOperationNames.OperationVindictus,\n baseDifficulty: 75e3,\n reqdRank: 350e3,\n rankGain: 20e3,\n rankLoss: 20e3,\n hpLoss: 20e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n BlackOperations[BlackOperationNames.OperationDaedalus] = new BlackOperation({\n name: BlackOperationNames.OperationDaedalus,\n baseDifficulty: 80e3,\n reqdRank: 400e3,\n rankGain: 40e3,\n rankLoss: 10e3,\n hpLoss: 100e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n})();\n","import { Fragment, FragmentById } from \"./Fragment\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IActiveFragmentParams {\n x: number;\n y: number;\n rotation: number;\n fragment: Fragment;\n}\n\nexport class ActiveFragment {\n id: number;\n highestCharge: number;\n numCharge: number;\n rotation: number;\n x: number;\n y: number;\n\n constructor(params?: IActiveFragmentParams) {\n if (params) {\n this.id = params.fragment.id;\n this.x = params.x;\n this.y = params.y;\n this.highestCharge = 0;\n this.numCharge = 0;\n this.rotation = params.rotation;\n } else {\n this.id = -1;\n this.x = -1;\n this.y = -1;\n this.highestCharge = 0;\n this.numCharge = 0;\n this.rotation = 0;\n }\n }\n\n collide(other: ActiveFragment): boolean {\n const thisFragment = this.fragment();\n const otherFragment = other.fragment();\n // These 2 variables converts 'this' local coordinates to world to other local.\n const dx: number = other.x - this.x;\n const dy: number = other.y - this.y;\n const fragSize = Math.max(thisFragment.shape.length, thisFragment.shape[0].length);\n for (let j = 0; j < fragSize; j++) {\n for (let i = 0; i < fragSize; i++) {\n if (thisFragment.fullAt(i, j, this.rotation) && otherFragment.fullAt(i - dx, j - dy, other.rotation))\n return true;\n }\n }\n\n return false;\n }\n\n fragment(): Fragment {\n const fragment = FragmentById(this.id);\n if (fragment === null) throw new Error(\"ActiveFragment id refers to unknown Fragment.\");\n return fragment;\n }\n\n fullAt(worldX: number, worldY: number): boolean {\n return this.fragment().fullAt(worldX - this.x, worldY - this.y, this.rotation);\n }\n\n neighboors(): number[][] {\n return this.fragment()\n .neighboors(this.rotation)\n .map((cell) => [this.x + cell[0], this.y + cell[1]]);\n }\n\n copy(): ActiveFragment {\n return Object.assign({}, this);\n }\n\n /**\n * Serialize an active fragment to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ActiveFragment\", this);\n }\n\n /**\n * Initializes an acive fragment from a JSON save state\n */\n static fromJSON(value: IReviverValue): ActiveFragment {\n return Generic_fromJSON(ActiveFragment, value.data);\n }\n}\n\nReviver.constructors.ActiveFragment = ActiveFragment;\n","import { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { CrimeType } from \"../utils/WorkType\";\nimport { CrimeWork } from \"../Work/CrimeWork\";\n\ninterface IConstructorParams {\n hacking_success_weight?: number;\n strength_success_weight?: number;\n defense_success_weight?: number;\n dexterity_success_weight?: number;\n agility_success_weight?: number;\n charisma_success_weight?: number;\n hacking_exp?: number;\n strength_exp?: number;\n defense_exp?: number;\n dexterity_exp?: number;\n agility_exp?: number;\n charisma_exp?: number;\n intelligence_exp?: number;\n\n kills?: number;\n}\n\nexport class Crime {\n // Number representing the difficulty of the crime. Used for success chance calculations\n difficulty = 0;\n\n // Amount of karma lost for SUCCESSFULLY committing this crime\n karma = 0;\n\n // How many people die as a result of this crime\n kills = 0;\n\n // How much money is given by the\n money = 0;\n\n // Name of crime\n name = \"\";\n\n // Name of crime as it appears on work screen: \"You are attempting...\"\n workName = \"\";\n\n // Milliseconds it takes to attempt the crime\n time = 0;\n\n // Corresponding type in CONSTANTS. Contains a description for the crime activity\n type: CrimeType;\n\n // Weighting factors that determine how stats affect the success rate of this crime\n hacking_success_weight = 0;\n strength_success_weight = 0;\n defense_success_weight = 0;\n dexterity_success_weight = 0;\n agility_success_weight = 0;\n charisma_success_weight = 0;\n\n // How much stat experience is granted by this crime\n hacking_exp = 0;\n strength_exp = 0;\n defense_exp = 0;\n dexterity_exp = 0;\n agility_exp = 0;\n charisma_exp = 0;\n intelligence_exp = 0;\n\n constructor(\n name = \"\",\n workName = \"\",\n type: CrimeType,\n time = 0,\n money = 0,\n difficulty = 0,\n karma = 0,\n params: IConstructorParams = {},\n ) {\n this.name = name;\n this.workName = workName;\n this.type = type;\n this.time = time;\n this.money = money;\n this.difficulty = difficulty;\n this.karma = karma;\n\n this.hacking_success_weight = params.hacking_success_weight ? params.hacking_success_weight : 0;\n this.strength_success_weight = params.strength_success_weight ? params.strength_success_weight : 0;\n this.defense_success_weight = params.defense_success_weight ? params.defense_success_weight : 0;\n this.dexterity_success_weight = params.dexterity_success_weight ? params.dexterity_success_weight : 0;\n this.agility_success_weight = params.agility_success_weight ? params.agility_success_weight : 0;\n this.charisma_success_weight = params.charisma_success_weight ? params.charisma_success_weight : 0;\n\n this.hacking_exp = params.hacking_exp ? params.hacking_exp : 0;\n this.strength_exp = params.strength_exp ? params.strength_exp : 0;\n this.defense_exp = params.defense_exp ? params.defense_exp : 0;\n this.dexterity_exp = params.dexterity_exp ? params.dexterity_exp : 0;\n this.agility_exp = params.agility_exp ? params.agility_exp : 0;\n this.charisma_exp = params.charisma_exp ? params.charisma_exp : 0;\n this.intelligence_exp = params.intelligence_exp ? params.intelligence_exp : 0;\n\n this.kills = params.kills ? params.kills : 0;\n }\n\n commit(p: IPlayer, div = 1, workerScript: WorkerScript | null = null): number {\n if (div <= 0) {\n div = 1;\n }\n p.startWork(\n new CrimeWork({\n crimeType: this.type,\n singularity: workerScript !== null,\n }),\n );\n\n return this.time;\n }\n\n successRate(p: IPerson): number {\n let chance: number =\n this.hacking_success_weight * p.skills.hacking +\n this.strength_success_weight * p.skills.strength +\n this.defense_success_weight * p.skills.defense +\n this.dexterity_success_weight * p.skills.dexterity +\n this.agility_success_weight * p.skills.agility +\n this.charisma_success_weight * p.skills.charisma +\n CONSTANTS.IntelligenceCrimeWeight * p.skills.intelligence;\n chance /= CONSTANTS.MaxSkillLevel;\n chance /= this.difficulty;\n chance *= p.mults.crime_success;\n chance *= p.getIntelligenceBonus(1);\n\n return Math.min(chance, 1);\n }\n}\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Hashes } from \"./Hashes\";\n\nexport function HashRate({ hashes }: { hashes: number }): React.ReactElement {\n return ;\n}\n","import { MessageFilenames } from \"./MessageHelpers\";\n\nexport class Message {\n // Name of Message file\n filename: MessageFilenames;\n\n // The text contains in the Message\n msg: string;\n\n constructor(filename: MessageFilenames, msg: string) {\n this.filename = filename;\n this.msg = msg;\n }\n}\n","/**\n * React Component for a button that's used to apply for a job\n */\nimport * as React from \"react\";\n\nimport { Company } from \"../../Company/Company\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\n\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ntype IProps = {\n company: Company;\n entryPosType: CompanyPosition;\n onClick: (e: React.MouseEvent) => void;\n text: string;\n};\n\nexport function ApplyToJobButton(props: IProps): React.ReactElement {\n const player = use.Player();\n\n function getJobRequirementTooltip(): string {\n const pos = player.getNextCompanyPosition(props.company, props.entryPosType);\n if (pos == null) {\n return \"\";\n }\n\n if (!props.company.hasPosition(pos)) {\n return \"\";\n }\n\n return getJobRequirementText(props.company, pos, true);\n }\n\n return (\n <>\n }>\n \n \n >\n );\n}\n","// The Research Map is an object that holds all Corporation Research objects\n// as values. They are identified by their names\nimport { Research, IConstructorParams } from \"./Research\";\nimport { researchMetadata } from \"./data/ResearchMetadata\";\nimport { IMap } from \"../types\";\n\nexport const ResearchMap: IMap = {};\n\nfunction addResearch(p: IConstructorParams): void {\n if (ResearchMap[p.name] != null) {\n console.warn(`Duplicate Research being defined: ${p.name}`);\n }\n ResearchMap[p.name] = new Research(p);\n}\n\nfor (const metadata of researchMetadata) {\n addResearch(metadata);\n}\n","/**\n * Event emitter that triggers when scripts are started/stopped\n */\nimport { EventEmitter } from \"../utils/EventEmitter\";\n\nexport const WorkerScriptStartStopEventEmitter = new EventEmitter<[]>();\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { FactionWorkType } from \"../../../Work/data/FactionWorkType\";\nimport { FactionNames } from \"../../../Faction/data/FactionNames\";\nimport { Factions } from \"../../../Faction/Factions\";\nimport { calculateFactionExp } from \"../../../Work/formulas/Faction\";\nimport { Faction } from \"../../../Faction/Faction\";\nimport {\n getFactionFieldWorkRepGain,\n getFactionSecurityWorkRepGain,\n getHackingWorkRepGain,\n} from \"../../../PersonObjects/formulas/reputation\";\nimport { scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\ninterface SleeveFactionWorkParams {\n factionWorkType: FactionWorkType;\n factionName: string;\n}\n\nexport const isSleeveFactionWork = (w: Work | null): w is SleeveFactionWork =>\n w !== null && w.type === WorkType.FACTION;\n\nexport class SleeveFactionWork extends Work {\n factionWorkType: FactionWorkType;\n factionName: string;\n\n constructor(params?: SleeveFactionWorkParams) {\n super(WorkType.FACTION);\n this.factionWorkType = params?.factionWorkType ?? FactionWorkType.HACKING;\n this.factionName = params?.factionName ?? FactionNames.Sector12;\n }\n\n getExpRates(sleeve: Sleeve): WorkStats {\n return scaleWorkStats(calculateFactionExp(sleeve, this.factionWorkType), sleeve.shockBonus());\n }\n\n getReputationRate(sleeve: Sleeve): number {\n const faction = this.getFaction();\n const repFormulas = {\n [FactionWorkType.HACKING]: getHackingWorkRepGain,\n [FactionWorkType.FIELD]: getFactionFieldWorkRepGain,\n [FactionWorkType.SECURITY]: getFactionSecurityWorkRepGain,\n };\n return repFormulas[this.factionWorkType](sleeve, faction.favor) * sleeve.shockBonus();\n }\n\n getFaction(): Faction {\n const f = Factions[this.factionName];\n if (!f) throw new Error(`Faction work started with invalid / unknown faction: '${this.factionName}'`);\n return f;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (player.gang) {\n if (this.factionName === player.gang.facName) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n\n const exp = this.getExpRates(sleeve);\n applySleeveGains(player, sleeve, exp, cycles);\n const rep = this.getReputationRate(sleeve);\n this.getFaction().playerReputation += rep;\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n factionWorkType: this.factionWorkType,\n factionName: this.factionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveFactionWork\", this);\n }\n\n /**\n * Initiatizes a FactionWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveFactionWork {\n return Generic_fromJSON(SleeveFactionWork, value.data);\n }\n}\n\nReviver.constructors.SleeveFactionWork = SleeveFactionWork;\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { LocationName } from \"../../../Locations/data/LocationNames\";\nimport { Companies } from \"../../../Company/Companies\";\nimport { Company } from \"../../../Company/Company\";\nimport { calculateCompanyWorkStats } from \"../../../Work/formulas/Company\";\nimport { WorkStats } from \"../../../Work/WorkStats\";\nimport { influenceStockThroughCompanyWork } from \"../../../StockMarket/PlayerInfluencing\";\n\ninterface SleeveCompanyWorkParams {\n companyName: string;\n}\n\nexport const isSleeveCompanyWork = (w: Work | null): w is SleeveCompanyWork =>\n w !== null && w.type === WorkType.COMPANY;\n\nexport class SleeveCompanyWork extends Work {\n companyName: string;\n\n constructor(params?: SleeveCompanyWorkParams) {\n super(WorkType.COMPANY);\n this.companyName = params?.companyName ?? LocationName.NewTokyoNoodleBar;\n }\n\n getCompany(): Company {\n const c = Companies[this.companyName];\n if (!c) throw new Error(`Company not found: '${this.companyName}'`);\n return c;\n }\n\n getGainRates(player: IPlayer, sleeve: Sleeve): WorkStats {\n return calculateCompanyWorkStats(player, sleeve, this.getCompany());\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n const company = this.getCompany();\n const gains = this.getGainRates(player, sleeve);\n applySleeveGains(player, sleeve, gains, cycles);\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveCompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveCompanyWork {\n return Generic_fromJSON(SleeveCompanyWork, value.data);\n }\n}\n\nReviver.constructors.SleeveCompanyWork = SleeveCompanyWork;\n","import { Player } from \"./Player\";\nimport { Router } from \"./ui/GameRoot\";\nimport { removeLeadingSlash } from \"./Terminal/DirectoryHelpers\";\nimport { Terminal } from \"./Terminal\";\nimport { SnackbarEvents, ToastVariant } from \"./ui/React/Snackbar\";\nimport { IMap, IReturnStatus } from \"./types\";\nimport { GetServer } from \"./Server/AllServers\";\nimport { ImportPlayerData, SaveData, saveObject } from \"./SaveObject\";\nimport { Settings } from \"./Settings/Settings\";\nimport { exportScripts } from \"./Terminal/commands/download\";\nimport { CONSTANTS } from \"./Constants\";\nimport { hash } from \"./hash/hash\";\n\ninterface IReturnWebStatus extends IReturnStatus {\n data?: Record;\n}\n\ndeclare global {\n interface Window {\n appNotifier: {\n terminal: (message: string, type?: string) => void;\n toast: (message: string, type: ToastVariant, duration?: number) => void;\n };\n appSaveFns: {\n triggerSave: () => Promise;\n triggerGameExport: () => void;\n triggerScriptsExport: () => void;\n getSaveData: () => { save: string; fileName: string };\n getSaveInfo: (base64save: string) => Promise;\n pushSaveData: (base64save: string, automatic?: boolean) => void;\n };\n electronBridge: {\n send: (channel: string, data?: unknown) => void;\n receive: (channel: string, func: (...args: unknown[]) => void) => void;\n };\n }\n interface Document {\n getFiles: () => IReturnWebStatus;\n deleteFile: (filename: string) => IReturnWebStatus;\n saveFile: (filename: string, code: string) => IReturnWebStatus;\n }\n}\n\nexport function initElectron(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(\" electron/\") > -1) {\n // Electron-specific code\n document.achievements = [];\n initWebserver();\n initAppNotifier();\n initSaveFunctions();\n initElectronBridge();\n }\n}\n\nfunction initWebserver(): void {\n function normalizeFileName(filename: string): string {\n filename = filename.replace(/\\/\\/+/g, \"/\");\n filename = removeLeadingSlash(filename);\n if (filename.includes(\"/\")) {\n filename = \"/\" + removeLeadingSlash(filename);\n }\n return filename;\n }\n\n document.getFiles = function (): IReturnWebStatus {\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n return {\n res: true,\n data: {\n files: home.scripts.map((script) => ({\n filename: script.filename,\n code: script.code,\n ramUsage: script.ramUsage,\n })),\n },\n };\n };\n\n document.deleteFile = function (filename: string): IReturnWebStatus {\n filename = normalizeFileName(filename);\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n return home.removeFile(filename);\n };\n\n document.saveFile = function (filename: string, code: string): IReturnWebStatus {\n filename = normalizeFileName(filename);\n\n code = Buffer.from(code, \"base64\").toString();\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n const { success, overwritten } = home.writeToScriptFile(Player, filename, code);\n let script;\n if (success) {\n script = home.getScript(filename);\n }\n return {\n res: success,\n data: {\n overwritten,\n ramUsage: script?.ramUsage,\n },\n };\n };\n}\n\n// Expose certain alert functions to allow the wrapper to sends message to the game\nfunction initAppNotifier(): void {\n const funcs = {\n terminal: (message: string, type?: string) => {\n const typesFn: IMap<(s: string) => void> = {\n info: Terminal.info,\n warn: Terminal.warn,\n error: Terminal.error,\n success: Terminal.success,\n };\n let fn;\n if (type) fn = typesFn[type];\n if (!fn) fn = Terminal.print;\n fn.bind(Terminal)(message);\n },\n toast: (message: string, type: ToastVariant, duration = 2000) => SnackbarEvents.emit(message, type, duration),\n };\n\n // Will be consumed by the electron wrapper.\n window.appNotifier = funcs;\n}\n\nfunction initSaveFunctions(): void {\n const funcs = {\n triggerSave: (): Promise => saveObject.saveGame(true),\n triggerGameExport: (): void => {\n try {\n saveObject.exportGame();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export game.\", ToastVariant.ERROR, 2000);\n }\n },\n triggerScriptsExport: (): void => exportScripts(\"*\", Player.getHomeComputer()),\n getSaveData: (): { save: string; fileName: string } => {\n return {\n save: saveObject.getSaveString(Settings.ExcludeRunningScriptsFromSave),\n fileName: saveObject.getSaveFileName(),\n };\n },\n getSaveInfo: async (base64save: string): Promise => {\n try {\n const data = await saveObject.getImportDataFromString(base64save);\n return data.playerData;\n } catch (error) {\n console.error(error);\n return;\n }\n },\n pushSaveData: (base64save: string, automatic = false): void => Router.toImportSave(base64save, automatic),\n };\n\n // Will be consumed by the electron wrapper.\n window.appSaveFns = funcs;\n}\n\nfunction initElectronBridge(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.receive(\"get-save-data-request\", () => {\n const data = window.appSaveFns.getSaveData();\n bridge.send(\"get-save-data-response\", data);\n });\n bridge.receive(\"get-save-info-request\", async (save: unknown) => {\n if (typeof save !== \"string\") throw new Error(\"Error while trying to get save info\");\n const data = await window.appSaveFns.getSaveInfo(save);\n bridge.send(\"get-save-info-response\", data);\n });\n bridge.receive(\"push-save-request\", (params: unknown) => {\n if (typeof params !== \"object\") throw new Error(\"Error trying to push save request\");\n const { save, automatic = false } = params as { save: string; automatic: boolean };\n window.appSaveFns.pushSaveData(save, automatic);\n });\n bridge.receive(\"trigger-save\", () => {\n return window.appSaveFns\n .triggerSave()\n .then(() => {\n bridge.send(\"save-completed\");\n })\n .catch((error: unknown) => {\n console.error(error);\n SnackbarEvents.emit(\"Could not save game.\", ToastVariant.ERROR, 2000);\n });\n });\n bridge.receive(\"trigger-game-export\", () => {\n try {\n window.appSaveFns.triggerGameExport();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export game.\", ToastVariant.ERROR, 2000);\n }\n });\n bridge.receive(\"trigger-scripts-export\", () => {\n try {\n window.appSaveFns.triggerScriptsExport();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export scripts.\", ToastVariant.ERROR, 2000);\n }\n });\n}\n\nexport function pushGameSaved(data: SaveData): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-game-saved\", data);\n}\n\nexport function pushGameReady(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n // Send basic information to the electron wrapper\n bridge.send(\"push-game-ready\", {\n player: {\n identifier: Player.identifier,\n playtime: Player.totalPlaytime,\n lastSave: Player.lastSave,\n },\n game: {\n version: CONSTANTS.VersionString,\n hash: hash(),\n },\n });\n}\n\nexport function pushImportResult(wasImported: boolean): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-import-result\", { wasImported });\n pushDisableRestore();\n}\n\nexport function pushDisableRestore(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-disable-restore\", { duration: 1000 * 60 });\n}\n","import { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { Work, WorkType } from \"./Work\";\nimport { Program } from \"../Programs/Program\";\n\nexport const isCreateProgramWork = (w: Work | null): w is CreateProgramWork =>\n w !== null && w.type === WorkType.CREATE_PROGRAM;\n\ninterface CreateProgramWorkParams {\n programName: string;\n singularity: boolean;\n player: IPlayer;\n}\n\nexport class CreateProgramWork extends Work {\n programName: string;\n // amount of effective work completed on the program (time boosted by skills).\n unitCompleted: number;\n\n constructor(params?: CreateProgramWorkParams) {\n super(WorkType.CREATE_PROGRAM, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.programName = params?.programName ?? \"\";\n\n if (params?.player) {\n const player = params.player;\n for (let i = 0; i < player.getHomeComputer().programs.length; ++i) {\n const programFile = player.getHomeComputer().programs[i];\n if (programFile.startsWith(this.programName) && programFile.endsWith(\"%-INC\")) {\n const res = programFile.split(\"-\");\n if (res.length != 3) {\n break;\n }\n const percComplete = Number(res[1].slice(0, -1));\n if (isNaN(percComplete) || percComplete < 0 || percComplete >= 100) {\n break;\n }\n this.unitCompleted = (percComplete / 100) * this.unitNeeded();\n player.getHomeComputer().programs.splice(i, 1);\n }\n }\n }\n }\n\n unitNeeded(): number {\n return this.getProgram().create?.time ?? 0;\n }\n\n getProgram(): Program {\n const p = Object.values(Programs).find((p) => p.name.toLowerCase() === this.programName.toLowerCase());\n if (!p) throw new Error(\"Create program work started with invalid program \" + this.programName);\n return p;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames[\"NeuroreceptorManager\"])) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n //Higher hacking skill will allow you to create programs faster\n const reqLvl = this.getProgram().create?.level ?? 0;\n let skillMult = (player.skills.hacking / reqLvl) * player.getIntelligenceBonus(3); //This should always be greater than 1;\n skillMult = 1 + (skillMult - 1) / 5; //The divider constant can be adjusted as necessary\n skillMult *= focusBonus;\n //Skill multiplier directly applied to \"time worked\"\n this.cyclesWorked += cycles;\n this.unitCompleted += CONSTANTS._idleSpeed * cycles * skillMult;\n\n if (this.unitCompleted >= this.unitNeeded()) {\n return true;\n }\n return false;\n }\n finish(player: IPlayer, cancelled: boolean): void {\n const programName = this.programName;\n if (!cancelled) {\n //Complete case\n player.gainIntelligenceExp(\n (CONSTANTS.IntelligenceProgramBaseExpGain * this.cyclesWorked * CONSTANTS._idleSpeed) / 1000,\n );\n if (!this.singularity) {\n const lines = [\n `You've finished creating ${programName}!`,\n \"The new program can be found on your home computer.\",\n ];\n dialogBoxCreate(lines.join(\" \"));\n }\n\n if (!player.getHomeComputer().programs.includes(programName)) {\n player.getHomeComputer().programs.push(programName);\n }\n } else if (!player.getHomeComputer().programs.includes(programName)) {\n //Incomplete case\n const perc = ((100 * this.unitCompleted) / this.unitNeeded()).toFixed(2);\n const incompleteName = programName + \"-\" + perc + \"%-INC\";\n player.getHomeComputer().programs.push(incompleteName);\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n programName: this.programName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CreateProgramWork\", this);\n }\n\n /**\n * Initiatizes a CreateProgramWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CreateProgramWork {\n return Generic_fromJSON(CreateProgramWork, value.data);\n }\n}\n\nReviver.constructors.CreateProgramWork = CreateProgramWork;\n","// Root React Component for the Corporation UI\nimport React, { useState, useEffect } from \"react\";\n\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Reputation } from \"./Reputation\";\nimport { KillScriptsModal } from \"./KillScriptsModal\";\nimport { convertTimeMsToTimeElapsedString } from \"../../utils/StringHelperFunctions\";\n\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"@mui/material/IconButton\";\nimport SaveIcon from \"@mui/icons-material/Save\";\nimport ClearAllIcon from \"@mui/icons-material/ClearAll\";\n\nimport { Settings } from \"../../Settings/Settings\";\nimport { use } from \"../Context\";\nimport { StatsProgressOverviewCell } from \"./StatsProgressBar\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\n\nimport { Box, Tooltip } from \"@mui/material\";\n\nimport { isClassWork } from \"../../Work/ClassWork\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { isCreateProgramWork } from \"../../Work/CreateProgramWork\";\nimport { isGraftingWork } from \"../../Work/GraftingWork\";\nimport { isFactionWork } from \"../../Work/FactionWork\";\nimport { ReputationRate } from \"./ReputationRate\";\nimport { isCompanyWork } from \"../../Work/CompanyWork\";\nimport { isCrimeWork } from \"../../Work/CrimeWork\";\n\ninterface IProps {\n save: () => void;\n killScripts: () => void;\n}\n\nfunction Intelligence(): React.ReactElement {\n const theme = useTheme();\n const player = use.Player();\n const classes = useStyles();\n if (player.skills.intelligence === 0) return <>>;\n const progress = player.calculateSkillProgress(player.exp.intelligence);\n\n return (\n <>\n \n \n Int \n \n \n \n {numeralWrapper.formatSkill(player.skills.intelligence)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n >\n );\n}\n\nfunction Bladeburner(): React.ReactElement {\n const player = use.Player();\n const classes = useStyles();\n const bladeburner = player.bladeburner;\n if (bladeburner === null) return <>>;\n const action = bladeburner.getTypeAndNameFromActionId(bladeburner.action);\n if (action.type === \"Idle\") return <>>;\n return (\n <>\n \n \n Bladeburner:\n \n \n \n \n \n {action.type}: {action.name}\n \n \n \n >\n );\n}\n\ninterface WorkInProgressOverviewProps {\n tooltip: React.ReactNode;\n header: React.ReactNode;\n children: React.ReactNode;\n onClickFocus: () => void;\n}\n\nfunction WorkInProgressOverview({\n tooltip,\n children,\n onClickFocus,\n header,\n}: WorkInProgressOverviewProps): React.ReactElement {\n const classes = useStyles();\n return (\n <>\n \n \n {tooltip}>}>\n \n {header}\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n >\n );\n}\n\nfunction Work(): React.ReactElement {\n const player = use.Player();\n const router = use.Router();\n const onClickFocus = (): void => {\n player.startFocusing();\n router.toWork();\n };\n if (player.currentWork === null || player.focus) return <>>;\n\n let details = <>>;\n let header = <>>;\n let innerText = <>>;\n if (isCrimeWork(player.currentWork)) {\n const crime = player.currentWork.getCrime();\n const perc = (player.currentWork.unitCompleted / crime.time) * 100;\n\n details = <>{player.currentWork.crimeType}>;\n header = <>You are attempting to {player.currentWork.crimeType}>;\n innerText = <>{perc.toFixed(2)}%>;\n }\n if (isClassWork(player.currentWork)) {\n details = <>{player.currentWork.getClass().youAreCurrently}>;\n header = <>You are {player.currentWork.getClass().youAreCurrently}>;\n innerText = <>{convertTimeMsToTimeElapsedString(player.currentWork.cyclesWorked * CONSTANTS._idleSpeed)}>;\n }\n if (isCreateProgramWork(player.currentWork)) {\n const create = player.currentWork;\n details = <>Coding {create.programName}>;\n header = <>Creating a program>;\n innerText = (\n <>\n {create.programName} {((create.unitCompleted / create.unitNeeded()) * 100).toFixed(2)}%\n >\n );\n }\n if (isGraftingWork(player.currentWork)) {\n const graft = player.currentWork;\n details = <>Grafting {graft.augmentation}>;\n header = <>Grafting an Augmentation>;\n innerText = (\n <>\n {((graft.unitCompleted / graft.unitNeeded()) * 100).toFixed(2)}% done\n >\n );\n }\n\n if (isFactionWork(player.currentWork)) {\n const factionWork = player.currentWork;\n header = (\n <>\n Working for {factionWork.factionName}\n >\n );\n innerText = (\n <>\n rep\n (\n )\n >\n );\n }\n if (isCompanyWork(player.currentWork)) {\n const companyWork = player.currentWork;\n details = (\n <>\n {player.jobs[companyWork.companyName]} at {companyWork.companyName}\n >\n );\n header = (\n <>\n Working at {companyWork.companyName}\n >\n );\n innerText = (\n <>\n rep\n (\n )\n >\n );\n }\n\n return (\n \n {innerText}\n \n );\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n workCell: {\n textAlign: \"center\",\n maxWidth: \"200px\",\n borderBottom: \"none\",\n padding: 0,\n margin: 0,\n },\n\n workHeader: {\n fontSize: \"0.9rem\",\n },\n\n workSubtitles: {\n fontSize: \"0.8rem\",\n },\n\n cellNone: {\n borderBottom: \"none\",\n padding: 0,\n margin: 0,\n },\n cell: {\n padding: 0,\n margin: 0,\n },\n hp: {\n color: theme.colors.hp,\n },\n money: {\n color: theme.colors.money,\n },\n hack: {\n color: theme.colors.hack,\n },\n combat: {\n color: theme.colors.combat,\n },\n cha: {\n color: theme.colors.cha,\n },\n int: {\n color: theme.colors.int,\n },\n }),\n);\n\nexport { useStyles as characterOverviewStyles };\n\nexport function CharacterOverview({ save, killScripts }: IProps): React.ReactElement {\n const [killOpen, setKillOpen] = useState(false);\n const player = use.Player();\n\n const setRerender = useState(false)[1];\n\n useEffect(() => {\n const id = setInterval(() => setRerender((old) => !old), 600);\n return () => clearInterval(id);\n }, []);\n\n const classes = useStyles();\n const theme = useTheme();\n\n const hackingProgress = player.calculateSkillProgress(\n player.exp.hacking,\n player.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,\n );\n const strengthProgress = player.calculateSkillProgress(\n player.exp.strength,\n player.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,\n );\n const defenseProgress = player.calculateSkillProgress(\n player.exp.defense,\n player.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,\n );\n const dexterityProgress = player.calculateSkillProgress(\n player.exp.dexterity,\n player.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,\n );\n const agilityProgress = player.calculateSkillProgress(\n player.exp.agility,\n player.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,\n );\n const charismaProgress = player.calculateSkillProgress(\n player.exp.charisma,\n player.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,\n );\n\n return (\n <>\n
\n \n \n \n HP \n \n \n \n {numeralWrapper.formatHp(player.hp.current)} / {numeralWrapper.formatHp(player.hp.max)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Money \n \n \n {numeralWrapper.formatMoney(player.money)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Hack \n \n \n \n {numeralWrapper.formatSkill(player.skills.hacking)}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n \n \n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Str \n \n \n \n {numeralWrapper.formatSkill(player.skills.strength)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Def \n \n \n \n {numeralWrapper.formatSkill(player.skills.defense)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Dex \n \n \n \n {numeralWrapper.formatSkill(player.skills.dexterity)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Agi \n \n \n \n {numeralWrapper.formatSkill(player.skills.agility)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Cha \n \n \n \n {numeralWrapper.formatSkill(player.skills.charisma)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n setKillOpen(true)}>\n \n \n \n \n \n \n setKillOpen(false)} killScripts={killScripts} />\n >\n );\n}\n","/**\n * Adds a random offset to a number within a certain percentage\n * @example\n * // Returns between 95-105\n * addOffset(100, 5);\n * @example\n * // Returns between 63-77\n * addOffSet(70, 10);\n * @param midpoint The number to be the midpoint of the offset range\n * @param percentage The percentage (in a range of 0-100) to offset\n */\nexport function addOffset(midpoint: number, percentage: number): number {\n const maxPercent = 100;\n if (percentage < 0 || percentage > maxPercent) {\n return midpoint;\n }\n\n const offset: number = midpoint * (percentage / maxPercent);\n\n // Double the range to account for both sides of the midpoint.\n // tslint:disable-next-line:no-magic-numbers\n return midpoint + (Math.random() * (offset * 2) - offset);\n}\n","export class DarkWebItem {\n program: string;\n price: number;\n description: string;\n\n constructor(program: string, price: number, description: string) {\n this.program = program;\n this.price = price;\n this.description = description;\n }\n}\n","export class PlayerOwnedAugmentation {\n level = 1;\n name = \"\";\n\n constructor(name = \"\") {\n this.name = name;\n }\n}\n\nexport interface IPlayerOwnedAugmentation {\n level: number;\n name: string;\n}\n","interface RNG {\n random(): number;\n}\n\n/*\n * very bad RNG, meant to be used as introduction to RNG manipulation. It has a\n * period of 1024.\n */\nclass RNG0 implements RNG {\n x: number;\n m = 1024;\n a = 341;\n c = 1;\n\n constructor() {\n this.x = 0;\n this.reset();\n }\n\n step(): void {\n this.x = (this.a * this.x + this.c) % this.m;\n }\n\n random(): number {\n this.step();\n return this.x / this.m;\n }\n\n reset(): void {\n this.x = new Date().getTime() % this.m;\n }\n}\n\nexport const BadRNG: RNG0 = new RNG0();\n\n/*\n * Wichmann–Hill PRNG\n * The period is 6e12.\n */\nexport class WHRNG implements RNG {\n s1 = 0;\n s2 = 0;\n s3 = 0;\n\n constructor(totalPlaytime: number) {\n // This one is seeded by the players total play time.\n const v: number = (totalPlaytime / 1000) % 30000;\n this.s1 = v;\n this.s2 = v;\n this.s3 = v;\n }\n\n step(): void {\n this.s1 = (171 * this.s1) % 30269;\n this.s2 = (172 * this.s2) % 30307;\n this.s3 = (170 * this.s3) % 30323;\n }\n\n random(): number {\n this.step();\n return (this.s1 / 30269.0 + this.s2 / 30307.0 + this.s3 / 30323.0) % 1.0;\n }\n}\n\nexport function SFC32RNG(seed: string): () => number {\n let h = 1779033703 ^ seed.length;\n for (let i = 0; i < seed.length; i++) {\n h = Math.imul(h ^ seed.charCodeAt(i), 3432918353);\n h = (h << 13) | (h >>> 19);\n }\n const genSeed = (): number => {\n h = Math.imul(h ^ (h >>> 16), 2246822507);\n h = Math.imul(h ^ (h >>> 13), 3266489909);\n return (h ^= h >>> 16) >>> 0;\n };\n\n let a = genSeed();\n let b = genSeed();\n let c = genSeed();\n let d = genSeed();\n return (): number => {\n a >>>= 0;\n b >>>= 0;\n c >>>= 0;\n d >>>= 0;\n let t = (a + b) | 0;\n a = b ^ (b >>> 9);\n b = (c + (c << 3)) | 0;\n c = (c << 21) | (c >>> 11);\n d = (d + 1) | 0;\n t = (t + d) | 0;\n c = (c + t) | 0;\n return (t >>> 0) / 4294967296;\n };\n}\n","import React from \"react\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { Work, WorkType } from \"./Work\";\nimport { influenceStockThroughCompanyWork } from \"../StockMarket/PlayerInfluencing\";\nimport { LocationName } from \"../Locations/data/LocationNames\";\nimport { calculateCompanyWorkStats } from \"./formulas/Company\";\nimport { Companies } from \"../Company/Companies\";\nimport { applyWorkStats, scaleWorkStats, WorkStats } from \"./WorkStats\";\nimport { Company } from \"../Company/Company\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\n\ninterface CompanyWorkParams {\n companyName: string;\n singularity: boolean;\n}\n\nexport const isCompanyWork = (w: Work | null): w is CompanyWork => w !== null && w.type === WorkType.COMPANY;\n\nexport class CompanyWork extends Work {\n companyName: string;\n constructor(params?: CompanyWorkParams) {\n super(WorkType.COMPANY, params?.singularity ?? false);\n this.companyName = params?.companyName ?? LocationName.NewTokyoNoodleBar;\n }\n\n getCompany(): Company {\n const c = Companies[this.companyName];\n if (!c) throw new Error(`Company not found: '${this.companyName}'`);\n return c;\n }\n\n getGainRates(player: IPlayer): WorkStats {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return scaleWorkStats(calculateCompanyWorkStats(player, player, this.getCompany()), focusBonus);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n const company = this.getCompany();\n const gains = this.getGainRates(player);\n applyWorkStats(player, player, gains, cycles, \"work\");\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return false;\n }\n finish(): void {\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You finished working for {this.companyName}\n \n You have reputation with them.\n >,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CompanyWork {\n return Generic_fromJSON(CompanyWork, value.data);\n }\n}\n\nReviver.constructors.CompanyWork = CompanyWork;\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n favor: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Favor({ favor }: { favor: number | string }): React.ReactElement {\n const classes = useStyles();\n return {typeof favor === \"number\" ? numeralWrapper.formatFavor(favor) : favor};\n}\n","import { EventEmitter } from \"../utils/EventEmitter\";\nexport const TerminalEvents = new EventEmitter<[]>();\nexport const TerminalClearEvents = new EventEmitter<[]>();\n","/**\n * Helper functions for determine whether Limit and Stop orders should\n * be executed (and executing them)\n */\nimport { buyStock, sellStock, shortStock, sellShort } from \"./BuyingAndSelling\";\nimport { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { Stock } from \"./Stock\";\n\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\n\nimport * as React from \"react\";\n\nexport interface IProcessOrderRefs {\n stockMarket: IStockMarket;\n symbolToStockMap: IMap;\n}\n\n/**\n * Search for all orders of a specific type and execute them if appropriate\n * @param {Stock} stock - Stock for which orders should be processed\n * @param {OrderTypes} orderType - Type of order to check (Limit/Stop buy/sell)\n * @param {PositionTypes} posType - Long or short\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nexport function processOrders(\n stock: Stock,\n orderType: OrderTypes,\n posType: PositionTypes,\n refs: IProcessOrderRefs,\n): void {\n const orderBook = refs.stockMarket[\"Orders\"];\n if (orderBook == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(refs.stockMarket)) {\n const stock = refs.stockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n refs.stockMarket[\"Orders\"] = orders;\n return; // Newly created, so no orders to process\n }\n let stockOrders = orderBook[stock.symbol];\n if (stockOrders == null || !(stockOrders.constructor === Array)) {\n console.error(`Invalid Order book for ${stock.symbol} in processOrders(): ${stockOrders}`);\n stockOrders = [];\n return;\n }\n\n for (const order of stockOrders) {\n if (order.type === orderType && order.pos === posType) {\n switch (order.type) {\n case OrderTypes.LimitBuy:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.LimitSell:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopBuy:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n }\n }\n}\n\n/**\n * Execute a Stop or Limit Order.\n * @param {Order} order - Order being executed\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nfunction executeOrder(order: Order, refs: IProcessOrderRefs): void {\n const stock = refs.symbolToStockMap[order.stockSymbol];\n if (!(stock instanceof Stock)) {\n console.error(`Could not find stock for this order: ${order.stockSymbol}`);\n return;\n }\n const stockMarket = refs.stockMarket;\n const orderBook = stockMarket[\"Orders\"];\n const stockOrders = orderBook[stock.symbol];\n\n // When orders are executed, the buying and selling functions shouldn't\n // emit popup dialog boxes. This options object configures the functions for that\n const opts = {\n suppressDialog: true,\n };\n\n let res = true;\n let isBuy = false;\n switch (order.type) {\n case OrderTypes.LimitBuy:\n case OrderTypes.StopBuy:\n isBuy = true;\n if (order.pos === PositionTypes.Long) {\n res = buyStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = shortStock(stock, order.shares, null, opts) && res;\n }\n break;\n case OrderTypes.LimitSell:\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long) {\n res = sellStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = sellShort(stock, order.shares, null, opts) && res;\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n\n // Position type, for logging/message purposes\n const pos = order.pos === PositionTypes.Long ? \"Long\" : \"Short\";\n\n if (res) {\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n if (!Settings.SuppressTIXPopup) {\n dialogBoxCreate(\n <>\n {order.type} for {stock.symbol} @ ({pos}) was filled (\n {numeralWrapper.formatShares(Math.round(order.shares))} shares)\n >,\n );\n }\n return;\n }\n }\n\n console.error(\"Could not find the following Order in Order Book: \");\n console.error(order);\n } else if (isBuy) {\n dialogBoxCreate(\n <>\n Failed to execute {order.type} for {stock.symbol} @ ({pos}). This is most likely\n because you do not have enough money or the order would exceed the stock's maximum number of shares\n >,\n );\n }\n}\n","import { IMap } from \"../types\";\nimport * as predefined from \"./data\";\n\nexport interface ITheme {\n [key: string]: string | undefined;\n primarylight: string;\n primary: string;\n primarydark: string;\n successlight: string;\n success: string;\n successdark: string;\n errorlight: string;\n error: string;\n errordark: string;\n secondarylight: string;\n secondary: string;\n secondarydark: string;\n warninglight: string;\n warning: string;\n warningdark: string;\n infolight: string;\n info: string;\n infodark: string;\n welllight: string;\n well: string;\n white: string;\n black: string;\n hp: string;\n money: string;\n hack: string;\n combat: string;\n cha: string;\n int: string;\n rep: string;\n disabled: string;\n backgroundprimary: string;\n backgroundsecondary: string;\n button: string;\n}\n\nexport interface IPredefinedTheme {\n colors: ITheme;\n name: string;\n credit: string;\n screenshot: string;\n description: string;\n reference?: string;\n}\n\nexport const defaultTheme: ITheme = {\n ...predefined.Default.colors,\n};\n\nexport const getPredefinedThemes = (): IMap => ({\n ...predefined,\n});\n","import React, { useState, useEffect } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { Modal } from \"./Modal\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport { sha256 } from \"js-sha256\";\n\nexport const AlertEvents = new EventEmitter<[string | JSX.Element]>();\n\ninterface Alert {\n id: string;\n text: string | JSX.Element;\n hash: string;\n}\n\nlet i = 0;\nexport function AlertManager(): React.ReactElement {\n const [alerts, setAlerts] = useState([]);\n useEffect(\n () =>\n AlertEvents.subscribe((text: string | JSX.Element) => {\n const id = i + \"\";\n i++;\n setAlerts((old) => {\n const hash = getMessageHash(text);\n if (old.some((a) => a.hash === hash)) {\n return old;\n }\n return [\n ...old,\n {\n id: id,\n text: text,\n hash: hash,\n },\n ];\n });\n }),\n [],\n );\n\n useEffect(() => {\n function handle(this: Document, event: KeyboardEvent): void {\n if (event.code === \"Escape\") {\n setAlerts([]);\n }\n }\n document.addEventListener(\"keydown\", handle);\n return () => document.removeEventListener(\"keydown\", handle);\n }, []);\n\n function getMessageHash(text: string | JSX.Element): string {\n if (typeof text === \"string\") return sha256(text);\n return sha256(JSON.stringify(text.props));\n }\n\n function close(): void {\n setAlerts((old) => {\n return old.slice(1, 1e99);\n });\n }\n\n return (\n <>\n {alerts.length > 0 && (\n \n \n {alerts[0].text}\n \n \n )}\n >\n );\n}\n","import { getRandomByte } from \"./helpers/getRandomByte\";\n\n/**\n * Generate a random IP address\n * Does not check to see if the IP already exists in the game\n */\nexport const createRandomIp = (): string =>\n `${getRandomByte(99)}.${getRandomByte(9)}.${getRandomByte(9)}.${getRandomByte(9)}`;\n","import { IPlayer } from \"../../../PersonObjects/IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Work, WorkType } from \"./Work\";\n\nexport const isSleeveSupportWork = (w: Work | null): w is SleeveSupportWork =>\n w !== null && w.type === WorkType.SUPPORT;\n\nexport class SleeveSupportWork extends Work {\n constructor(player?: IPlayer) {\n super(WorkType.SUPPORT);\n if (player) player.bladeburner?.sleeveSupport(true);\n }\n\n process(): number {\n return 0;\n }\n\n finish(player: IPlayer): void {\n player.bladeburner?.sleeveSupport(false);\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveSupportWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveSupportWork {\n return Generic_fromJSON(SleeveSupportWork, value.data);\n }\n}\n\nReviver.constructors.SleeveSupportWork = SleeveSupportWork;\n","import { RunningScript } from \"src/Script/RunningScript\";\nimport { Settings } from \"../Settings/Settings\";\nimport { WorkerScript } from \"./WorkerScript\";\n\nexport const recentScripts: RecentScript[] = [];\n\nexport function AddRecentScript(workerScript: WorkerScript): void {\n if (recentScripts.find((r) => r.runningScript.pid === workerScript.pid)) return;\n\n const killedTime = new Date();\n recentScripts.unshift({\n timeOfDeath: killedTime,\n runningScript: workerScript.scriptRef,\n });\n\n while (recentScripts.length > Settings.MaxRecentScriptsCapacity) {\n recentScripts.pop();\n }\n}\n\nexport interface RecentScript {\n timeOfDeath: Date;\n runningScript: RunningScript;\n}\n","function getDB(): Promise {\n return new Promise((resolve, reject) => {\n if (!window.indexedDB) {\n reject(\"Indexed DB does not exists\");\n }\n /**\n * DB is called bitburnerSave\n * Object store is called savestring\n * key for the Object store is called save\n * Version `1` is important\n */\n const indexedDbRequest: IDBOpenDBRequest = window.indexedDB.open(\"bitburnerSave\", 1);\n\n // This is called when there's no db to begin with. It's important, don't remove it.\n indexedDbRequest.onupgradeneeded = function (this: IDBRequest) {\n const db = this.result;\n db.createObjectStore(\"savestring\");\n };\n\n indexedDbRequest.onerror = function (this: IDBRequest, ev: Event) {\n reject(`Failed to get IDB ${ev}`);\n };\n\n indexedDbRequest.onsuccess = function (this: IDBRequest) {\n const db = this.result;\n if (!db) {\n reject(\"database loading result was undefined\");\n return;\n }\n resolve(db.transaction([\"savestring\"], \"readwrite\").objectStore(\"savestring\"));\n };\n });\n}\n\nexport function load(): Promise {\n return new Promise((resolve, reject) => {\n getDB()\n .then((db) => {\n return new Promise((resolve, reject) => {\n const request: IDBRequest = db.get(\"save\");\n request.onerror = function (this: IDBRequest, ev: Event) {\n reject(\"Error in Database request to get savestring: \" + ev);\n };\n\n request.onsuccess = function (this: IDBRequest) {\n resolve(this.result);\n };\n }).then((saveString) => resolve(saveString));\n })\n .catch((r) => reject(r));\n });\n}\n\nexport function save(saveString: string): Promise {\n return getDB().then((db) => {\n return new Promise((resolve, reject) => {\n // We'll save to both localstorage and indexedDb\n const request = db.put(saveString, \"save\");\n\n request.onerror = function (e) {\n reject(\"Error saving game to IndexedDB: \" + e);\n };\n\n request.onsuccess = () => resolve();\n });\n });\n}\n\nexport function deleteGame(): Promise {\n return getDB().then((db) => {\n db.delete(\"save\");\n });\n}\n","import { Message } from \"./Message\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { Router } from \"../ui/GameRoot\";\nimport { Programs } from \"../Programs/Programs\";\nimport { Player } from \"../Player\";\nimport { Page } from \"../ui/Router\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { SpecialServers } from \"../Server/data/SpecialServers\";\nimport { Settings } from \"../Settings/Settings\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Server } from \"../Server/Server\";\n\n//Sends message to player, including a pop up\nfunction sendMessage(msg: Message, forced = false): void {\n if (forced || !Settings.SuppressMessages) {\n showMessage(msg.filename);\n }\n addMessageToServer(msg);\n}\n\nfunction showMessage(name: MessageFilenames): void {\n const msg = Messages[name];\n if (!(msg instanceof Message)) throw new Error(\"trying to display unexistent message\");\n const txt =\n \"Message received from unknown sender:
\" +\n \"\" +\n msg.msg +\n \"
\" +\n \"This message was saved as \" +\n msg.filename +\n \" onto your home computer.\";\n dialogBoxCreate(txt);\n}\n\n//Adds a message to a server\nfunction addMessageToServer(msg: Message): void {\n //Short-circuit if the message has already been saved\n if (recvd(msg)) {\n return;\n }\n const server = GetServer(\"home\");\n if (server == null) {\n throw new Error(\"The home server doesn't exist. You done goofed.\");\n }\n server.messages.push(msg.filename);\n}\n\n//Returns whether the given message has already been received\nfunction recvd(msg: Message): boolean {\n const server = GetServer(\"home\");\n if (server == null) {\n throw new Error(\"The home server doesn't exist. You done goofed.\");\n }\n return server.messages.includes(msg.filename);\n}\n\n//Checks if any of the 'timed' messages should be sent\nfunction checkForMessagesToSend(): void {\n if (Router.page() === Page.BitVerse) return;\n const jumper0 = Messages[MessageFilenames.Jumper0];\n const jumper1 = Messages[MessageFilenames.Jumper1];\n const jumper2 = Messages[MessageFilenames.Jumper2];\n const jumper3 = Messages[MessageFilenames.Jumper3];\n const jumper4 = Messages[MessageFilenames.Jumper4];\n const cybersecTest = Messages[MessageFilenames.CyberSecTest];\n const nitesecTest = Messages[MessageFilenames.NiteSecTest];\n const bitrunnersTest = Messages[MessageFilenames.BitRunnersTest];\n const truthGazer = Messages[MessageFilenames.TruthGazer];\n const redpill = Messages[MessageFilenames.RedPill];\n\n if (Player.hasAugmentation(AugmentationNames.TheRedPill)) {\n //Get the world daemon required hacking level\n const worldDaemon = GetServer(SpecialServers.WorldDaemon);\n if (!(worldDaemon instanceof Server)) {\n throw new Error(\"The world daemon is not a server???? Please un-break reality\");\n }\n //If the daemon can be hacked, send the player icarus.msg\n if (Player.skills.hacking >= worldDaemon.requiredHackingSkill) {\n sendMessage(redpill, Player.sourceFiles.length === 0);\n }\n //If the daemon cannot be hacked, send the player truthgazer.msg a single time.\n else if (!recvd(truthGazer)) {\n sendMessage(truthGazer);\n }\n } else if (!recvd(jumper0) && Player.skills.hacking >= 25) {\n sendMessage(jumper0);\n const flightName = Programs.Flight.name;\n const homeComp = Player.getHomeComputer();\n if (!homeComp.programs.includes(flightName)) {\n homeComp.programs.push(flightName);\n }\n } else if (!recvd(jumper1) && Player.skills.hacking >= 40) {\n sendMessage(jumper1);\n } else if (!recvd(cybersecTest) && Player.skills.hacking >= 50) {\n sendMessage(cybersecTest);\n } else if (!recvd(jumper2) && Player.skills.hacking >= 175) {\n sendMessage(jumper2);\n } else if (!recvd(nitesecTest) && Player.skills.hacking >= 200) {\n sendMessage(nitesecTest);\n } else if (!recvd(jumper3) && Player.skills.hacking >= 350) {\n sendMessage(jumper3);\n } else if (!recvd(jumper4) && Player.skills.hacking >= 490) {\n sendMessage(jumper4);\n } else if (!recvd(bitrunnersTest) && Player.skills.hacking >= 500) {\n sendMessage(bitrunnersTest);\n }\n}\n\nexport enum MessageFilenames {\n Jumper0 = \"j0.msg\",\n Jumper1 = \"j1.msg\",\n Jumper2 = \"j2.msg\",\n Jumper3 = \"j3.msg\",\n Jumper4 = \"j4.msg\",\n CyberSecTest = \"csec-test.msg\",\n NiteSecTest = \"nitesec-test.msg\",\n BitRunnersTest = \"19dfj3l1nd.msg\",\n TruthGazer = \"truthgazer.msg\",\n RedPill = \"icarus.msg\",\n}\n\n//Reset\nconst Messages: Record = {\n //jump3R Messages\n [MessageFilenames.Jumper0]: new Message(\n MessageFilenames.Jumper0,\n \"I know you can sense it. I know you're searching for it. \" +\n \"It's why you spend night after \" +\n \"night at your computer.
It's real, I've seen it. And I can \" +\n \"help you find it. But not right now. You're not ready yet.
\" +\n \"Use this program to track your progress
\" +\n \"The fl1ght.exe program was added to your home computer
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper1]: new Message(\n MessageFilenames.Jumper1,\n `Soon you will be contacted by a hacking group known as ${FactionNames.NiteSec}. ` +\n \"They can help you with your search.
\" +\n \"You should join them, garner their favor, and \" +\n \"exploit them for their Augmentations. But do not trust them. \" +\n \"They are not what they seem. No one is.
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper2]: new Message(\n MessageFilenames.Jumper2,\n \"Do not try to save the world. There is no world to save. If \" +\n \"you want to find the truth, worry only about yourself. Ethics and \" +\n `morals will get you killed.
Watch out for a hacking group known as ${FactionNames.NiteSec}.` +\n \"
-jump3R\",\n ),\n\n [MessageFilenames.Jumper3]: new Message(\n MessageFilenames.Jumper3,\n \"You must learn to walk before you can run. And you must \" +\n `run before you can fly. Look for ${FactionNames.TheBlackHand}.
` +\n \"I.I.I.I
-jump3R\",\n ),\n\n [MessageFilenames.Jumper4]: new Message(\n MessageFilenames.Jumper4,\n \"To find what you are searching for, you must understand the bits. \" +\n \"The bits are all around us. The runners will help you.
\" +\n \"-jump3R\",\n ),\n\n //Messages from hacking factions\n [MessageFilenames.CyberSecTest]: new Message(\n MessageFilenames.CyberSecTest,\n \"We've been watching you. Your skills are very impressive. But you're wasting \" +\n \"your talents. If you join us, you can put your skills to good use and change \" +\n \"the world for the better. If you join us, we can unlock your full potential.
\" +\n \"But first, you must pass our test. Find and install the backdoor on our server.
\" +\n `-${FactionNames.CyberSec}`,\n ),\n\n [MessageFilenames.NiteSecTest]: new Message(\n MessageFilenames.NiteSecTest,\n \"People say that the corrupted governments and corporations rule the world. \" +\n \"Yes, maybe they do. But do you know who everyone really fears? People \" +\n \"like us. Because they can't hide from us. Because they can't fight shadows \" +\n \"and ideas with bullets.
\" +\n \"Join us, and people will fear you, too.
\" +\n \"Find and install the backdoor on our server, avmnite-02h. Then, we will contact you again.\" +\n `
-${FactionNames.NiteSec}`,\n ),\n\n [MessageFilenames.BitRunnersTest]: new Message(\n MessageFilenames.BitRunnersTest,\n \"We know what you are doing. We know what drives you. We know \" +\n \"what you are looking for.
\" +\n \"We can help you find the answers.
\" +\n \"run4theh111z\",\n ),\n\n //Messages to guide players to the daemon\n [MessageFilenames.TruthGazer]: new Message(\n MessageFilenames.TruthGazer,\n //\"THE TRUTH CAN NO LONGER ESCAPE YOUR GAZE\"\n \"@&*($#@&__TH3__#@A@*)__TRU1H__(*)&*)($#@&()E&R)W& \" +\n \"%@*$^$()@&$)$*@__CAN__()(@^#)@&@)#__N0__(#@)@&@&( \" +\n \"*(__LON6ER__^#)@)(()*#@)@__ESCAP3__)#(@(#@*@()@(#*$ \" +\n \"()@)#$*%)$#()$#__Y0UR__(*)$#()%(&(%)*!)($__GAZ3__#(\",\n ),\n\n [MessageFilenames.RedPill]: new Message(\n MessageFilenames.RedPill,\n //\"FIND THE-CAVE\"\n \"@)(#V%*N)@(#*)*C)@#%*)*V)@#(*%V@)(#VN%*)@#(*% \" +\n \")@B(*#%)@)M#B*%V)____FIND___#$@)#%(B*)@#(*%B) \" +\n \"@_#(%_@#M(BDSPOMB__THE-CAVE_#)$(*@#$)@#BNBEGB \" +\n \"DFLSMFVMV)#@($*)@#*$MV)@#(*$V)M#(*$)M@(#*VM$)\",\n ),\n};\n\nexport { Messages, checkForMessagesToSend, showMessage };\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { ClassType } from \"../../../Work/ClassWork\";\nimport { LocationName } from \"../../../Locations/data/LocationNames\";\nimport { calculateClassEarnings } from \"../../../Work/formulas/Class\";\nimport { Sleeve } from \"../Sleeve\";\nimport { scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\nexport const isSleeveClassWork = (w: Work | null): w is SleeveClassWork => w !== null && w.type === WorkType.CLASS;\n\ninterface ClassWorkParams {\n classType: ClassType;\n location: LocationName;\n}\n\nexport class SleeveClassWork extends Work {\n classType: ClassType;\n location: LocationName;\n\n constructor(params?: ClassWorkParams) {\n super(WorkType.CLASS);\n this.classType = params?.classType ?? ClassType.StudyComputerScience;\n this.location = params?.location ?? LocationName.Sector12RothmanUniversity;\n }\n\n calculateRates(player: IPlayer, sleeve: Sleeve): WorkStats {\n return scaleWorkStats(\n calculateClassEarnings(player, sleeve, this.classType, this.location),\n sleeve.shockBonus(),\n false,\n );\n }\n\n isGym(): boolean {\n return [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymDexterity, ClassType.GymStrength].includes(\n this.classType,\n );\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n const rate = this.calculateRates(player, sleeve);\n applySleeveGains(player, sleeve, rate, cycles);\n return 0;\n }\n APICopy(): Record {\n return {\n type: this.type,\n classType: this.classType,\n location: this.location,\n };\n }\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveClassWork\", this);\n }\n\n /**\n * Initiatizes a ClassWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveClassWork {\n return Generic_fromJSON(SleeveClassWork, value.data);\n }\n}\n\nReviver.constructors.SleeveClassWork = SleeveClassWork;\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { CrimeType } from \"../../../utils/WorkType\";\nimport { Crimes } from \"../../../Crime/Crimes\";\nimport { Crime } from \"../../../Crime/Crime\";\nimport { newWorkStats, scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\nimport { CONSTANTS } from \"../../../Constants\";\nimport { BitNodeMultipliers } from \"../../../BitNode/BitNodeMultipliers\";\n\nexport const isSleeveCrimeWork = (w: Work | null): w is SleeveCrimeWork => w !== null && w.type === WorkType.CRIME;\n\nexport class SleeveCrimeWork extends Work {\n crimeType: CrimeType;\n cyclesWorked = 0;\n constructor(crimeType?: CrimeType) {\n super(WorkType.CRIME);\n this.crimeType = crimeType ?? CrimeType.SHOPLIFT;\n }\n\n getCrime(): Crime {\n const crime = Object.values(Crimes).find((crime) => crime.type === this.crimeType);\n if (!crime) throw new Error(\"crime should not be undefined\");\n return crime;\n }\n\n getExp(): WorkStats {\n const crime = this.getCrime();\n return newWorkStats({\n money: crime.money * BitNodeMultipliers.CrimeMoney,\n hackExp: crime.hacking_exp * BitNodeMultipliers.CrimeExpGain,\n strExp: crime.strength_exp * BitNodeMultipliers.CrimeExpGain,\n defExp: crime.defense_exp * BitNodeMultipliers.CrimeExpGain,\n dexExp: crime.dexterity_exp * BitNodeMultipliers.CrimeExpGain,\n agiExp: crime.agility_exp * BitNodeMultipliers.CrimeExpGain,\n chaExp: crime.charisma_exp * BitNodeMultipliers.CrimeExpGain,\n intExp: crime.intelligence_exp * BitNodeMultipliers.CrimeExpGain,\n });\n }\n\n cyclesNeeded(): number {\n return this.getCrime().time / CONSTANTS._idleSpeed;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n this.cyclesWorked += cycles;\n\n const crime = this.getCrime();\n let gains = this.getExp();\n if (this.cyclesWorked >= this.cyclesNeeded()) {\n if (Math.random() < crime.successRate(sleeve)) {\n player.karma -= crime.karma * sleeve.syncBonus();\n } else {\n gains.money = 0;\n gains = scaleWorkStats(gains, 0.25);\n }\n applySleeveGains(player, sleeve, gains, cycles);\n this.cyclesWorked -= this.cyclesNeeded();\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveCrimeWork\", this);\n }\n\n /**\n * Initiatizes a RecoveryWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveCrimeWork {\n return Generic_fromJSON(SleeveCrimeWork, value.data);\n }\n}\n\nReviver.constructors.SleeveCrimeWork = SleeveCrimeWork;\n","// The initial formulas was sum 0 to f of 500*1.02^f.\n// see https://en.wikipedia.org/wiki/Geometric_series#Closed-form_formula\n// for information on how to calculate this\n\nexport function favorToRep(f: number): number {\n const raw = 25000 * (Math.pow(1.02, f) - 1);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n\nexport function repToFavor(r: number): number {\n const raw = Math.log(r / 25000 + 1) / Math.log(1.02);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n","import {\n CodingContract,\n CodingContractRewardType,\n CodingContractTypes,\n ICodingContractReward,\n} from \"./CodingContracts\";\nimport { Factions } from \"./Faction/Factions\";\nimport { Player } from \"./Player\";\nimport { GetServer, GetAllServers } from \"./Server/AllServers\";\nimport { SpecialServers } from \"./Server/data/SpecialServers\";\nimport { Server } from \"./Server/Server\";\nimport { BaseServer } from \"./Server/BaseServer\";\n\nimport { getRandomInt } from \"./utils/helpers/getRandomInt\";\n\nexport function generateRandomContract(): void {\n // First select a random problem type\n const problemType = getRandomProblemType();\n\n // Then select a random reward type. 'Money' will always be the last reward type\n const reward = getRandomReward();\n\n // Choose random server\n const randServer = getRandomServer();\n\n const contractFn = getRandomFilename(randServer, reward);\n const contract = new CodingContract(contractFn, problemType, reward);\n\n randServer.addContract(contract);\n}\n\nexport function generateRandomContractOnHome(): void {\n // First select a random problem type\n const problemType = getRandomProblemType();\n\n // Then select a random reward type. 'Money' will always be the last reward type\n const reward = getRandomReward();\n\n // Choose random server\n const serv = Player.getHomeComputer();\n\n const contractFn = getRandomFilename(serv, reward);\n const contract = new CodingContract(contractFn, problemType, reward);\n\n serv.addContract(contract);\n}\n\ninterface IGenerateContractParams {\n problemType?: string;\n server?: string;\n fn?: string;\n}\n\nexport function generateContract(params: IGenerateContractParams): void {\n // Problem Type\n let problemType;\n const problemTypes = Object.keys(CodingContractTypes);\n if (params.problemType != null && problemTypes.includes(params.problemType)) {\n problemType = params.problemType;\n } else {\n problemType = getRandomProblemType();\n }\n\n // Reward Type - This is always random for now\n const reward = getRandomReward();\n\n // Server\n let server;\n if (params.server != null) {\n server = GetServer(params.server);\n if (server == null) {\n server = getRandomServer();\n }\n } else {\n server = getRandomServer();\n }\n\n // Filename\n let fn;\n if (params.fn != null) {\n fn = params.fn;\n } else {\n fn = getRandomFilename(server, reward);\n }\n\n const contract = new CodingContract(fn, problemType, reward);\n server.addContract(contract);\n}\n\n// Ensures that a contract's reward type is valid\nfunction sanitizeRewardType(rewardType: CodingContractRewardType): CodingContractRewardType {\n let type = rewardType; // Create copy\n\n const factionsThatAllowHacking = Player.factions.filter((fac) => {\n try {\n return Factions[fac].getInfo().offerHackingWork;\n } catch (e) {\n console.error(`Error when trying to filter Hacking Factions for Coding Contract Generation: ${e}`);\n return false;\n }\n });\n if (type === CodingContractRewardType.FactionReputation && factionsThatAllowHacking.length === 0) {\n type = CodingContractRewardType.CompanyReputation;\n }\n if (type === CodingContractRewardType.FactionReputationAll && factionsThatAllowHacking.length === 0) {\n type = CodingContractRewardType.CompanyReputation;\n }\n if (type === CodingContractRewardType.CompanyReputation && Object.keys(Player.jobs).length === 0) {\n type = CodingContractRewardType.Money;\n }\n\n return type;\n}\n\nfunction getRandomProblemType(): string {\n const problemTypes = Object.keys(CodingContractTypes);\n const randIndex = getRandomInt(0, problemTypes.length - 1);\n\n return problemTypes[randIndex];\n}\n\nfunction getRandomReward(): ICodingContractReward {\n const reward: ICodingContractReward = {\n name: \"\",\n type: getRandomInt(0, CodingContractRewardType.Money),\n };\n reward.type = sanitizeRewardType(reward.type);\n\n // Add additional information based on the reward type\n const factionsThatAllowHacking = Player.factions.filter((fac) => Factions[fac].getInfo().offerHackingWork);\n\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation: {\n // Get a random faction that player is a part of. That\n // faction must allow hacking contracts\n const numFactions = factionsThatAllowHacking.length;\n const randFaction = factionsThatAllowHacking[getRandomInt(0, numFactions - 1)];\n reward.name = randFaction;\n break;\n }\n case CodingContractRewardType.CompanyReputation: {\n const allJobs = Object.keys(Player.jobs);\n if (allJobs.length > 0) {\n reward.name = allJobs[getRandomInt(0, allJobs.length - 1)];\n } else {\n reward.type = CodingContractRewardType.Money;\n }\n break;\n }\n default:\n break;\n }\n\n return reward;\n}\n\nfunction getRandomServer(): BaseServer {\n const servers = GetAllServers().filter((server: BaseServer) => server.serversOnNetwork.length !== 0);\n let randIndex = getRandomInt(0, servers.length - 1);\n let randServer = servers[randIndex];\n\n // An infinite loop shouldn't ever happen, but to be safe we'll use\n // a for loop with a limited number of tries\n for (let i = 0; i < 200; ++i) {\n if (\n randServer instanceof Server &&\n !randServer.purchasedByPlayer &&\n randServer.hostname !== SpecialServers.WorldDaemon\n ) {\n break;\n }\n randIndex = getRandomInt(0, servers.length - 1);\n randServer = servers[randIndex];\n }\n\n return randServer;\n}\n\nfunction getRandomFilename(server: BaseServer, reward: ICodingContractReward): string {\n let contractFn = `contract-${getRandomInt(0, 1e6)}`;\n\n for (let i = 0; i < 1000; ++i) {\n if (\n server.contracts.filter((c: CodingContract) => {\n return c.fn === contractFn;\n }).length <= 0\n ) {\n break;\n }\n contractFn = `contract-${getRandomInt(0, 1e6)}`;\n }\n\n if (reward.name) {\n contractFn += `-${reward.name.replace(/\\s/g, \"\")}`;\n }\n\n return contractFn;\n}\n","import { Factions } from \"./Faction/Factions\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\n\nexport let LastExportBonus = 0;\n\nconst bonusTimer = 24 * 60 * 60 * 1000; // 24h\nexport function canGetBonus(): boolean {\n const now = new Date().getTime();\n return now - LastExportBonus > bonusTimer;\n}\n\nexport function onExport(p: IPlayer): void {\n if (!canGetBonus()) return;\n for (const facName of p.factions) {\n Factions[facName].favor++;\n }\n LastExportBonus = new Date().getTime();\n}\n\nexport function setLastExportBonus(unixTime: number): void {\n LastExportBonus = unixTime;\n}\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Reputation } from \"./Reputation\";\n\nexport function ReputationRate({ reputation }: { reputation: number }): React.ReactElement {\n return ;\n}\n","/**\n * React component for a selectable option on the Faction UI. These\n * options including working for the faction, hacking missions, purchasing\n * augmentations, etc.\n */\nimport * as React from \"react\";\n\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\n\ntype IProps = {\n buttonText: string;\n infoText: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nexport function Option(props: IProps): React.ReactElement {\n return (\n \n \n \n {props.infoText}\n \n \n );\n}\n","import { IBladeburner } from \"./IBladeburner\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { Action, IActionParams } from \"./Action\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IOperationParams extends IActionParams {\n reqdRank?: number;\n teamCount?: number;\n}\n\nexport class Operation extends Action {\n reqdRank = 100;\n teamCount = 0;\n\n constructor(params: IOperationParams | null = null) {\n super(params);\n if (params && params.reqdRank) this.reqdRank = params.reqdRank;\n if (params && params.teamCount) this.teamCount = params.teamCount;\n }\n\n // For actions that have teams. To be implemented by subtypes.\n getTeamSuccessBonus(inst: IBladeburner): number {\n if (this.teamCount && this.teamCount > 0) {\n this.teamCount = Math.min(this.teamCount, inst.teamSize);\n const teamMultiplier = Math.pow(this.teamCount, 0.05);\n return teamMultiplier;\n }\n\n return 1;\n }\n\n getActionTypeSkillSuccessBonus(inst: IBladeburner): number {\n return inst.skillMultipliers.successChanceOperation;\n }\n\n getChaosDifficultyBonus(inst: IBladeburner /*, params: ISuccessChanceParams*/): number {\n const city = inst.getCurrentCity();\n if (city.chaos > BladeburnerConstants.ChaosThreshold) {\n const diff = 1 + (city.chaos - BladeburnerConstants.ChaosThreshold);\n const mult = Math.pow(diff, 0.5);\n return mult;\n }\n\n return 1;\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Operation\", this);\n }\n\n static fromJSON(value: IReviverValue): Operation {\n return Generic_fromJSON(Operation, value.data);\n }\n}\n\nReviver.constructors.Operation = Operation;\n","import { Augmentation, IConstructorParams } from \"../Augmentation\";\nimport { AugmentationNames } from \"./AugmentationNames\";\nimport { Player } from \"../../Player\";\nimport { Programs } from \"../../Programs/Programs\";\nimport { WHRNG } from \"../../Casino/RNG\";\nimport React from \"react\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\nimport { CONSTANTS } from \"../../Constants\";\n\ninterface CircadianBonus {\n bonuses: {\n [key: string]: number | undefined;\n agility?: number;\n agility_exp?: number;\n charisma?: number;\n charisma_exp?: number;\n company_rep?: number;\n crime_money?: number;\n crime_success?: number;\n defense?: number;\n defense_exp?: number;\n dexterity?: number;\n dexterity_exp?: number;\n faction_rep?: number;\n hacking?: number;\n hacking_chance?: number;\n hacking_exp?: number;\n hacking_grow?: number;\n hacking_money?: number;\n hacking_speed?: number;\n hacknet_node_core_cost?: number;\n hacknet_node_level_cost?: number;\n hacknet_node_money?: number;\n hacknet_node_purchase_cost?: number;\n hacknet_node_ram_cost?: number;\n strength?: number;\n strength_exp?: number;\n work_money?: number;\n };\n description: string;\n}\n\nfunction getRandomBonus(): CircadianBonus {\n const bonuses = [\n {\n bonuses: {\n hacking_chance: 1.25,\n hacking_speed: 1.1,\n hacking_money: 1.25,\n hacking_grow: 1.1,\n },\n description:\n \"Increases the player's hacking chance by 25%. \" +\n \"Increases the player's hacking speed by 10%. \" +\n \"Increases the amount of money the player's gains from hacking by 25%. \" +\n \"Improves grow() by 10%.\",\n },\n {\n bonuses: {\n hacking: 1.15,\n hacking_exp: 2,\n },\n description:\n \"Increases the player's hacking skill by 15%. \" +\n \"Increases the player's hacking experience gain rate by 100%.\",\n },\n {\n bonuses: {\n strength: 1.25,\n strength_exp: 2,\n defense: 1.25,\n defense_exp: 2,\n dexterity: 1.25,\n dexterity_exp: 2,\n agility: 1.25,\n agility_exp: 2,\n },\n description:\n \"Increases all of the player's combat stats by 25%. \" +\n \"Increases all of the player's combat stat experience gain rate by 100%.\",\n },\n {\n bonuses: {\n charisma: 1.5,\n charisma_exp: 2,\n },\n description:\n \"This augmentation increases the player's charisma by 50%. \" +\n \"Increases the player's charisma experience gain rate by 100%.\",\n },\n {\n bonuses: {\n hacknet_node_money: 1.2,\n hacknet_node_purchase_cost: 0.85,\n hacknet_node_ram_cost: 0.85,\n hacknet_node_core_cost: 0.85,\n hacknet_node_level_cost: 0.85,\n },\n description:\n \"Increases the amount of money produced by Hacknet Nodes by 20%. \" +\n \"Decreases all costs related to Hacknet Node by 15%.\",\n },\n {\n bonuses: {\n company_rep: 1.25,\n faction_rep: 1.15,\n work_money: 1.7,\n },\n description:\n \"Increases the amount of money the player gains from working by 70%. \" +\n \"Increases the amount of reputation the player gains when working for a company by 25%. \" +\n \"Increases the amount of reputation the player gains for a faction by 15%.\",\n },\n {\n bonuses: {\n crime_success: 2,\n crime_money: 2,\n },\n description:\n \"Increases the player's crime success rate by 100%. \" +\n \"Increases the amount of money the player gains from crimes by 100%.\",\n },\n ];\n\n const randomNumber = new WHRNG(Math.floor(Player.lastUpdate / 3600000));\n for (let i = 0; i < 5; i++) randomNumber.step();\n\n return bonuses[Math.floor(bonuses.length * randomNumber.random())];\n}\n\nexport const initSoAAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.WKSharmonizer,\n repCost: 1e4,\n moneyCost: 1e6,\n info:\n `A copy of the WKS harmonizer from the MIA leader of the ${FactionNames.ShadowsOfAnarchy} ` +\n \"injects *Γ-based cells that provides general enhancement to the body.\",\n stats: (\n <>\n This augmentation makes many aspects of infiltration easier and more productive. Such as increased timer,\n rewards, reduced damage taken, etc.\n >\n ),\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.MightOfAres,\n repCost: 1e4,\n moneyCost: 1e6,\n info:\n \"Extra-occular neurons taken from old martial art master. Injecting them gives the user the ability to \" +\n \"predict the enemy's attack before they even know it themself.\",\n stats: (\n <>This augmentation makes the Slash minigame easier by showing you via an indicator when the slash in coming.>\n ),\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.WisdomOfAthena,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"A connective brain implant to SASHA that focuses on pattern recognition and predictive templating.\",\n stats: <>This augmentation makes the Bracket minigame easier by removing all '[' ']'.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.ChaosOfDionysus,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Opto-occipito implant to process visual signals before brain interpretation.\",\n stats: <>This augmentation makes the Backwards minigame easier by flipping the words.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.BeautyOfAphrodite,\n repCost: 1e4,\n moneyCost: 1e6,\n info:\n \"Pheromone extruder injected in the thoracodorsal nerve. Emits pleasing scent guaranteed to \" +\n \"make conversational partners more agreeable.\",\n stats: <>This augmentation makes the Bribe minigame easier by indicating the incorrect paths.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.TrickeryOfHermes,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Penta-dynamo-neurovascular-valve inserted in the carpal ligament, enhances dexterity.\",\n stats: <>This augmentation makes the Cheat Code minigame easier by allowing the opposite character.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.FloodOfPoseidon,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Transtinatium VVD reticulator used in optico-sterbing recognition.\",\n stats: <>This augmentation makes the Symbol matching minigame easier by indicating the correct choice.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.HuntOfArtemis,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"magneto-turboencabulator based on technology by Micha Eike Siemon, increases the user's electro-magnetic sensitivity.\",\n stats: (\n <>\n This augmentation makes the Minesweeper minigame easier by showing the location of all mines and keeping their\n position.\n >\n ),\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n new Augmentation({\n name: AugmentationNames.KnowledgeOfApollo,\n repCost: 1e4,\n moneyCost: 1e6,\n info: \"Neodynic retention fjengeln spoofer using -φ karmions, net positive effect on implantee's delta wave.\",\n stats: <>This augmentation makes the Wire Cutting minigame easier by indicating the incorrect wires.>,\n isSpecial: true,\n factions: [FactionNames.ShadowsOfAnarchy],\n }),\n];\n\nexport const initGeneralAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.HemoRecirculator,\n moneyCost: 4.5e7,\n repCost: 1e4,\n info: \"A heart implant that greatly increases the body's ability to effectively use and pump blood.\",\n strength: 1.08,\n defense: 1.08,\n agility: 1.08,\n dexterity: 1.08,\n factions: [FactionNames.Tetrads, FactionNames.TheDarkArmy, FactionNames.TheSyndicate],\n }),\n new Augmentation({\n name: AugmentationNames.Targeting1,\n moneyCost: 1.5e7,\n repCost: 5e3,\n info:\n \"A cranial implant that is embedded within the inner ear structures and optic nerves. It regulates \" +\n \"and enhances balance and hand-eye coordination.\",\n dexterity: 1.1,\n factions: [\n FactionNames.SlumSnakes,\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Sector12,\n FactionNames.Ishima,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.Targeting2,\n moneyCost: 4.25e7,\n repCost: 8.75e3,\n info:\n \"This upgraded version of the 'Augmented Targeting' implant is capable of augmenting \" +\n \"reality by digitally displaying weaknesses and vital signs of threats.\",\n prereqs: [AugmentationNames.Targeting1],\n dexterity: 1.2,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Sector12,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.Targeting3,\n moneyCost: 1.15e8,\n repCost: 2.75e4,\n info: \"The latest version of the 'Augmented Targeting' implant adds the ability to lock-on and track threats.\",\n prereqs: [AugmentationNames.Targeting2, AugmentationNames.Targeting1],\n dexterity: 1.3,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n FactionNames.TheCovenant,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SyntheticHeart,\n moneyCost: 2.875e9,\n repCost: 7.5e5,\n info:\n \"This advanced artificial heart, created from plasteel and graphene, is capable of pumping blood \" +\n \"more efficiently than an organic heart.\",\n agility: 1.5,\n strength: 1.5,\n factions: [\n FactionNames.KuaiGongInternational,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.SpeakersForTheDead,\n FactionNames.NWO,\n FactionNames.TheCovenant,\n FactionNames.Daedalus,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SynfibrilMuscle,\n repCost: 4.375e5,\n moneyCost: 1.125e9,\n info:\n \"The myofibrils in human muscles are injected with special chemicals that react with the proteins inside \" +\n \"the myofibrils, altering their underlying structure. The end result is muscles that are stronger and more elastic. \" +\n \"Scientists have named these artificially enhanced units 'synfibrils'.\",\n strength: 1.3,\n defense: 1.3,\n factions: [\n FactionNames.KuaiGongInternational,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.SpeakersForTheDead,\n FactionNames.NWO,\n FactionNames.TheCovenant,\n FactionNames.Daedalus,\n FactionNames.Illuminati,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.CombatRib1,\n repCost: 7.5e3,\n moneyCost: 2.375e7,\n info:\n \"The rib cage is augmented to continuously release boosters into the bloodstream \" +\n \"which increase the oxygen-carrying capacity of blood.\",\n strength: 1.1,\n defense: 1.1,\n factions: [\n FactionNames.SlumSnakes,\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Volhaven,\n FactionNames.Ishima,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.CombatRib2,\n repCost: 1.875e4,\n moneyCost: 6.5e7,\n info:\n \"An upgraded version of the 'Combat Rib' augmentation that adds potent stimulants which \" +\n \"improve focus and endurance while decreasing reaction time and fatigue.\",\n prereqs: [AugmentationNames.CombatRib1],\n strength: 1.14,\n defense: 1.14,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.Volhaven,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.CombatRib3,\n repCost: 3.5e4,\n moneyCost: 1.2e8,\n info:\n \"The latest version of the 'Combat Rib' augmentation releases advanced anabolic steroids that \" +\n \"improve muscle mass and physical performance while being safe and free of side effects.\",\n prereqs: [AugmentationNames.CombatRib2, AugmentationNames.CombatRib1],\n strength: 1.18,\n defense: 1.18,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n FactionNames.BladeIndustries,\n FactionNames.TheCovenant,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.NanofiberWeave,\n repCost: 3.75e4,\n moneyCost: 1.25e8,\n info:\n \"Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning, \" +\n \"which improves its regenerative and extracellular homeostasis abilities.\",\n strength: 1.2,\n defense: 1.2,\n factions: [\n FactionNames.TheDarkArmy,\n FactionNames.TheSyndicate,\n FactionNames.OmniTekIncorporated,\n FactionNames.BladeIndustries,\n FactionNames.TianDiHui,\n FactionNames.SpeakersForTheDead,\n FactionNames.FulcrumSecretTechnologies,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SubdermalArmor,\n repCost: 8.75e5,\n moneyCost: 3.25e9,\n info:\n \"The NEMEAN Subdermal Weave is a thin, light-weight, graphene plating that houses a dilatant fluid. \" +\n \"The material is implanted underneath the skin, and is the most advanced form of defensive enhancement \" +\n \"that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective \" +\n \"at stopping piercing blows and reducing blunt trauma. The properties of graphene allow the plating to \" +\n \"mitigate damage from any fire or electrical traumas.\",\n defense: 2.2,\n factions: [\n FactionNames.TheSyndicate,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.Illuminati,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.WiredReflexes,\n repCost: 1.25e3,\n moneyCost: 2.5e6,\n info:\n \"Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, \" +\n \"supercharging the spread of neural signals and increasing reflex speed.\",\n agility: 1.05,\n dexterity: 1.05,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.SlumSnakes,\n FactionNames.Sector12,\n FactionNames.Volhaven,\n FactionNames.Aevum,\n FactionNames.Ishima,\n FactionNames.TheSyndicate,\n FactionNames.TheDarkArmy,\n FactionNames.SpeakersForTheDead,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBoneLacings,\n repCost: 1.125e6,\n moneyCost: 4.25e9,\n info: \"Graphene is grafted and fused into the skeletal structure, enhancing bone density and tensile strength.\",\n strength: 1.7,\n defense: 1.7,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.TheCovenant],\n }),\n new Augmentation({\n name: AugmentationNames.BionicSpine,\n repCost: 4.5e4,\n moneyCost: 1.25e8,\n info:\n \"The spine is reconstructed using plasteel and carbon fibers. \" +\n \"It is now capable of stimulating and regulating neural signals \" +\n \"passing through the spinal cord, improving senses and reaction speed. \" +\n \"The 'Bionic Spine' also interfaces with all other 'Bionic' implants.\",\n strength: 1.15,\n defense: 1.15,\n agility: 1.15,\n dexterity: 1.15,\n factions: [\n FactionNames.SpeakersForTheDead,\n FactionNames.TheSyndicate,\n FactionNames.KuaiGongInternational,\n FactionNames.OmniTekIncorporated,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBionicSpine,\n repCost: 1.625e6,\n moneyCost: 6e9,\n info:\n \"An upgrade to the 'Bionic Spine' augmentation. The spine is fused with graphene \" +\n \"which enhances durability and supercharges all body functions.\",\n prereqs: [AugmentationNames.BionicSpine],\n strength: 1.6,\n defense: 1.6,\n agility: 1.6,\n dexterity: 1.6,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.ECorp],\n }),\n new Augmentation({\n name: AugmentationNames.BionicLegs,\n repCost: 1.5e5,\n moneyCost: 3.75e8,\n info: \"Cybernetic legs, created from plasteel and carbon fibers, enhance running speed.\",\n agility: 1.6,\n factions: [\n FactionNames.SpeakersForTheDead,\n FactionNames.TheSyndicate,\n FactionNames.KuaiGongInternational,\n FactionNames.OmniTekIncorporated,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBionicLegs,\n repCost: 7.5e5,\n moneyCost: 4.5e9,\n info:\n \"An upgrade to the 'Bionic Legs' augmentation. The legs are fused \" +\n \"with graphene, greatly enhancing jumping ability.\",\n prereqs: [AugmentationNames.BionicLegs],\n agility: 2.5,\n factions: [FactionNames.MegaCorp, FactionNames.ECorp, FactionNames.FulcrumSecretTechnologies],\n }),\n new Augmentation({\n name: AugmentationNames.SpeechProcessor,\n repCost: 7.5e3,\n moneyCost: 5e7,\n info:\n \"A cochlear implant with an embedded computer that analyzes incoming speech. \" +\n \"The embedded computer processes characteristics of incoming speech, such as tone \" +\n \"and inflection, to pick up on subtle cues and aid in social interactions.\",\n charisma: 1.2,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n FactionNames.Volhaven,\n FactionNames.Silhouette,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.TITN41Injection,\n repCost: 2.5e4,\n moneyCost: 1.9e8,\n info:\n \"TITN is a series of viruses that targets and alters the sequences of human DNA in genes that \" +\n \"control personality. The TITN-41 strain alters these genes so that the subject becomes more \" +\n \"outgoing and sociable.\",\n charisma: 1.15,\n charisma_exp: 1.15,\n factions: [FactionNames.Silhouette],\n }),\n new Augmentation({\n name: AugmentationNames.EnhancedSocialInteractionImplant,\n repCost: 3.75e5,\n moneyCost: 1.375e9,\n info:\n \"A cranial implant that greatly assists in the user's ability to analyze social situations \" +\n \"and interactions. The system uses a wide variety of factors such as facial expression, body \" +\n \"language, voice tone, and inflection to determine the best course of action during social \" +\n \"situations. The implant also uses deep learning software to continuously learn new behavior \" +\n \"patterns and how to best respond.\",\n charisma: 1.6,\n charisma_exp: 1.6,\n factions: [\n FactionNames.BachmanAssociates,\n FactionNames.NWO,\n FactionNames.ClarkeIncorporated,\n FactionNames.OmniTekIncorporated,\n FactionNames.FourSigma,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.BitWire,\n repCost: 3.75e3,\n moneyCost: 1e7,\n info:\n \"A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing \" +\n \"capabilities.\",\n hacking: 1.05,\n factions: [FactionNames.CyberSec, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.ArtificialBioNeuralNetwork,\n repCost: 2.75e5,\n moneyCost: 3e9,\n info:\n \"A network consisting of millions of nanoprocessors is embedded into the brain. \" +\n \"The network is meant to mimic the way a biological brain solves a problem, with each \" +\n \"nanoprocessor acting similar to the way a neuron would in a neural network. However, these \" +\n \"nanoprocessors are programmed to perform computations much faster than organic neurons, \" +\n \"allowing the user to solve much more complex problems at a much faster rate.\",\n hacking_speed: 1.03,\n hacking_money: 1.15,\n hacking: 1.12,\n factions: [FactionNames.BitRunners, FactionNames.FulcrumSecretTechnologies],\n }),\n new Augmentation({\n name: AugmentationNames.ArtificialSynapticPotentiation,\n repCost: 6.25e3,\n moneyCost: 8e7,\n info:\n \"The body is injected with a chemical that artificially induces synaptic potentiation, \" +\n \"otherwise known as the strengthening of synapses. This results in enhanced cognitive abilities.\",\n hacking_speed: 1.02,\n hacking_chance: 1.05,\n hacking_exp: 1.05,\n factions: [FactionNames.TheBlackHand, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.EnhancedMyelinSheathing,\n repCost: 1e5,\n moneyCost: 1.375e9,\n info:\n \"Electrical signals are used to induce a new, artificial form of myelinogenesis in the human body. \" +\n \"This process results in the proliferation of new, synthetic myelin sheaths in the nervous \" +\n \"system. These myelin sheaths can propogate neuro-signals much faster than their organic \" +\n \"counterparts, leading to greater processing speeds and better brain function.\",\n hacking_speed: 1.03,\n hacking_exp: 1.1,\n hacking: 1.08,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.BitRunners, FactionNames.TheBlackHand],\n }),\n new Augmentation({\n name: AugmentationNames.SynapticEnhancement,\n repCost: 2e3,\n moneyCost: 7.5e6,\n info:\n \"A small cranial implant that continuously uses weak electrical signals to stimulate the brain and \" +\n \"induce stronger synaptic activity. This improves the user's cognitive abilities.\",\n hacking_speed: 1.03,\n factions: [FactionNames.CyberSec, FactionNames.Aevum],\n }),\n new Augmentation({\n name: AugmentationNames.NeuralRetentionEnhancement,\n repCost: 2e4,\n moneyCost: 2.5e8,\n info:\n \"Chemical injections are used to permanently alter and strengthen the brain's neuronal \" +\n \"circuits, strengthening the ability to retain information.\",\n hacking_exp: 1.25,\n factions: [FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.DataJack,\n repCost: 1.125e5,\n moneyCost: 4.5e8,\n info:\n \"A brain implant that provides an interface for direct, wireless communication between a computer's main \" +\n \"memory and the mind. This implant allows the user to not only access a computer's memory, but also alter \" +\n \"and delete it.\",\n hacking_money: 1.25,\n factions: [\n FactionNames.BitRunners,\n FactionNames.TheBlackHand,\n FactionNames.NiteSec,\n FactionNames.Chongqing,\n FactionNames.NewTokyo,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENM,\n repCost: 1.5e4,\n moneyCost: 2.5e8,\n info:\n \"A thin device embedded inside the arm containing a wireless module capable of connecting \" +\n \"to nearby networks. Once connected, the Netburner Module is capable of capturing and \" +\n \"processing all of the traffic on that network. By itself, the Embedded Netburner Module does \" +\n \"not do much, but a variety of very powerful upgrades can be installed that allow you to fully \" +\n \"control the traffic on a network.\",\n hacking: 1.08,\n factions: [\n FactionNames.BitRunners,\n FactionNames.TheBlackHand,\n FactionNames.NiteSec,\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMCore,\n repCost: 175e3,\n moneyCost: 2.5e9,\n info:\n \"The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. \" +\n \"This upgrade allows the Embedded Netburner Module to generate its own data on a network.\",\n prereqs: [AugmentationNames.ENM],\n hacking_speed: 1.03,\n hacking_money: 1.1,\n hacking_chance: 1.03,\n hacking_exp: 1.07,\n hacking: 1.07,\n factions: [\n FactionNames.BitRunners,\n FactionNames.TheBlackHand,\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMCoreV2,\n repCost: 1e6,\n moneyCost: 4.5e9,\n info:\n \"The Core V2 library is an implant that upgrades the firmware of the Embedded Netburner Module. \" +\n \"This upgraded firmware allows the Embedded Netburner Module to control information on \" +\n \"a network by re-routing traffic, spoofing IP addresses, and altering the data inside network \" +\n \"packets.\",\n prereqs: [AugmentationNames.ENMCore, AugmentationNames.ENM],\n hacking_speed: 1.05,\n hacking_money: 1.3,\n hacking_chance: 1.05,\n hacking_exp: 1.15,\n hacking: 1.08,\n factions: [\n FactionNames.BitRunners,\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.BladeIndustries,\n FactionNames.OmniTekIncorporated,\n FactionNames.KuaiGongInternational,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMCoreV3,\n repCost: 1.75e6,\n moneyCost: 7.5e9,\n info:\n \"The Core V3 library is an implant that upgrades the firmware of the Embedded Netburner Module. \" +\n \"This upgraded firmware allows the Embedded Netburner Module to seamlessly inject code into \" +\n \"any device on a network.\",\n prereqs: [AugmentationNames.ENMCoreV2, AugmentationNames.ENMCore, AugmentationNames.ENM],\n hacking_speed: 1.05,\n hacking_money: 1.4,\n hacking_chance: 1.1,\n hacking_exp: 1.25,\n hacking: 1.1,\n factions: [\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMAnalyzeEngine,\n repCost: 6.25e5,\n moneyCost: 6e9,\n info:\n \"Installs the Analyze Engine for the Embedded Netburner Module, which is a CPU cluster \" +\n \"that vastly outperforms the Netburner Module's native single-core processor.\",\n prereqs: [AugmentationNames.ENM],\n hacking_speed: 1.1,\n factions: [\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ENMDMA,\n repCost: 1e6,\n moneyCost: 7e9,\n info:\n \"This implant installs a Direct Memory Access (DMA) controller into the \" +\n \"Embedded Netburner Module. This allows the Module to send and receive data \" +\n \"directly to and from the main memory of devices on a network.\",\n prereqs: [AugmentationNames.ENM],\n hacking_money: 1.4,\n hacking_chance: 1.2,\n factions: [\n FactionNames.ECorp,\n FactionNames.MegaCorp,\n FactionNames.FulcrumSecretTechnologies,\n FactionNames.NWO,\n FactionNames.Daedalus,\n FactionNames.TheCovenant,\n FactionNames.Illuminati,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.Neuralstimulator,\n repCost: 5e4,\n moneyCost: 3e9,\n info:\n \"A cranial implant that intelligently stimulates certain areas of the brain \" +\n \"in order to improve cognitive functions.\",\n hacking_speed: 1.02,\n hacking_chance: 1.1,\n hacking_exp: 1.12,\n factions: [\n FactionNames.TheBlackHand,\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n FactionNames.Volhaven,\n FactionNames.BachmanAssociates,\n FactionNames.ClarkeIncorporated,\n FactionNames.FourSigma,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.NeuralAccelerator,\n repCost: 2e5,\n moneyCost: 1.75e9,\n info:\n \"A microprocessor that accelerates the processing \" +\n \"speed of biological neural networks. This is a cranial implant that is embedded inside the brain.\",\n hacking: 1.1,\n hacking_exp: 1.15,\n hacking_money: 1.2,\n factions: [FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG1,\n repCost: 1e4,\n moneyCost: 7e7,\n info:\n \"The first generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n hacking_speed: 1.01,\n hacking: 1.05,\n factions: [FactionNames.CyberSec, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG2,\n repCost: 1.875e4,\n moneyCost: 1.25e8,\n info:\n \"The second generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [AugmentationNames.CranialSignalProcessorsG1],\n hacking_speed: 1.02,\n hacking_chance: 1.05,\n hacking: 1.07,\n factions: [FactionNames.CyberSec, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG3,\n repCost: 5e4,\n moneyCost: 5.5e8,\n info:\n \"The third generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [AugmentationNames.CranialSignalProcessorsG2, AugmentationNames.CranialSignalProcessorsG1],\n hacking_speed: 1.02,\n hacking_money: 1.15,\n hacking: 1.09,\n factions: [FactionNames.NiteSec, FactionNames.TheBlackHand, FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG4,\n repCost: 1.25e5,\n moneyCost: 1.1e9,\n info:\n \"The fourth generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [\n AugmentationNames.CranialSignalProcessorsG3,\n AugmentationNames.CranialSignalProcessorsG2,\n AugmentationNames.CranialSignalProcessorsG1,\n ],\n hacking_speed: 1.02,\n hacking_money: 1.2,\n hacking_grow: 1.25,\n factions: [FactionNames.TheBlackHand, FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.CranialSignalProcessorsG5,\n repCost: 2.5e5,\n moneyCost: 2.25e9,\n info:\n \"The fifth generation of Cranial Signal Processors. Cranial Signal Processors \" +\n \"are a set of specialized microprocessors that are attached to \" +\n \"neurons in the brain. These chips process neural signals to quickly and automatically perform specific computations \" +\n \"so that the brain doesn't have to.\",\n prereqs: [\n AugmentationNames.CranialSignalProcessorsG4,\n AugmentationNames.CranialSignalProcessorsG3,\n AugmentationNames.CranialSignalProcessorsG2,\n AugmentationNames.CranialSignalProcessorsG1,\n ],\n hacking: 1.3,\n hacking_money: 1.25,\n hacking_grow: 1.75,\n factions: [FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.NeuronalDensification,\n repCost: 1.875e5,\n moneyCost: 1.375e9,\n info:\n \"The brain is surgically re-engineered to have increased neuronal density \" +\n \"by decreasing the neuron gap junction. Then, the body is genetically modified \" +\n \"to enhance the production and capabilities of its neural stem cells.\",\n hacking: 1.15,\n hacking_exp: 1.1,\n hacking_speed: 1.03,\n factions: [FactionNames.ClarkeIncorporated],\n }),\n new Augmentation({\n name: AugmentationNames.NuoptimalInjectorImplant,\n repCost: 5e3,\n moneyCost: 2e7,\n info:\n \"This torso implant automatically injects nootropic supplements into \" +\n \"the bloodstream to improve memory, increase focus, and provide other \" +\n \"cognitive enhancements.\",\n company_rep: 1.2,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.Volhaven,\n FactionNames.NewTokyo,\n FactionNames.Chongqing,\n FactionNames.ClarkeIncorporated,\n FactionNames.FourSigma,\n FactionNames.BachmanAssociates,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.SpeechEnhancement,\n repCost: 2.5e3,\n moneyCost: 1.25e7,\n info:\n \"An advanced neural implant that improves your speaking abilities, making \" +\n \"you more convincing and likable in conversations and overall improving your \" +\n \"social interactions.\",\n company_rep: 1.1,\n charisma: 1.1,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.SpeakersForTheDead,\n FactionNames.FourSigma,\n FactionNames.KuaiGongInternational,\n FactionNames.ClarkeIncorporated,\n FactionNames.BachmanAssociates,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.FocusWire,\n repCost: 7.5e4,\n moneyCost: 9e8,\n info: \"A cranial implant that stops procrastination by blocking specific neural pathways in the brain.\",\n hacking_exp: 1.05,\n strength_exp: 1.05,\n defense_exp: 1.05,\n dexterity_exp: 1.05,\n agility_exp: 1.05,\n charisma_exp: 1.05,\n company_rep: 1.1,\n work_money: 1.2,\n factions: [\n FactionNames.BachmanAssociates,\n FactionNames.ClarkeIncorporated,\n FactionNames.FourSigma,\n FactionNames.KuaiGongInternational,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.PCDNI,\n repCost: 3.75e5,\n moneyCost: 3.75e9,\n info:\n \"Installs a Direct-Neural Interface jack into your arm that is compatible with most \" +\n \"computers. Connecting to a computer through this jack allows you to interface with \" +\n \"it using the brain's electrochemical signals.\",\n company_rep: 1.3,\n hacking: 1.08,\n factions: [\n FactionNames.FourSigma,\n FactionNames.OmniTekIncorporated,\n FactionNames.ECorp,\n FactionNames.BladeIndustries,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.PCDNIOptimizer,\n repCost: 5e5,\n moneyCost: 4.5e9,\n info:\n \"This is a submodule upgrade to the PC Direct-Neural Interface augmentation. It \" +\n \"improves the performance of the interface and gives the user more control options \" +\n \"to a connected computer.\",\n prereqs: [AugmentationNames.PCDNI],\n company_rep: 1.75,\n hacking: 1.1,\n factions: [FactionNames.FulcrumSecretTechnologies, FactionNames.ECorp, FactionNames.BladeIndustries],\n }),\n new Augmentation({\n name: AugmentationNames.PCDNINeuralNetwork,\n repCost: 1.5e6,\n moneyCost: 7.5e9,\n info:\n \"This is an additional installation that upgrades the functionality of the \" +\n \"PC Direct-Neural Interface augmentation. When connected to a computer, \" +\n \"the Neural Network upgrade allows the user to use their own brain's \" +\n \"processing power to aid the computer in computational tasks.\",\n prereqs: [AugmentationNames.PCDNI],\n company_rep: 2,\n hacking: 1.1,\n hacking_speed: 1.05,\n factions: [FactionNames.FulcrumSecretTechnologies],\n }),\n new Augmentation({\n name: AugmentationNames.ADRPheromone1,\n repCost: 3.75e3,\n moneyCost: 1.75e7,\n info:\n \"The body is genetically re-engineered so that it produces the ADR-V1 pheromone, \" +\n \"an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, \" +\n \"triggers feelings of admiration and approval in other people.\",\n company_rep: 1.1,\n faction_rep: 1.1,\n factions: [\n FactionNames.TianDiHui,\n FactionNames.TheSyndicate,\n FactionNames.NWO,\n FactionNames.MegaCorp,\n FactionNames.FourSigma,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ADRPheromone2,\n repCost: 6.25e4,\n moneyCost: 5.5e8,\n info:\n \"The body is genetically re-engineered so that it produces the ADR-V2 pheromone, \" +\n \"which is similar to but more potent than ADR-V1. This pheromone, when excreted, \" +\n \"triggers feelings of admiration, approval, and respect in others.\",\n company_rep: 1.2,\n faction_rep: 1.2,\n factions: [\n FactionNames.Silhouette,\n FactionNames.FourSigma,\n FactionNames.BachmanAssociates,\n FactionNames.ClarkeIncorporated,\n ],\n }),\n new Augmentation({\n name: AugmentationNames.ShadowsSimulacrum,\n repCost: 3.75e4,\n moneyCost: 4e8,\n info:\n \"A crude but functional matter phase-shifter module that is embedded \" +\n \"in the brainstem and cerebellum. This augmentation was developed by \" +\n \"criminal organizations and allows the user to project and control holographic \" +\n \"simulacrums within a large radius. These simulacrums are commonly used for \" +\n \"espionage and surveillance work.\",\n company_rep: 1.15,\n faction_rep: 1.15,\n factions: [FactionNames.TheSyndicate, FactionNames.TheDarkArmy, FactionNames.SpeakersForTheDead],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeCPUUpload,\n repCost: 3.75e3,\n moneyCost: 1.1e7,\n info:\n \"Uploads the architecture and design details of a Hacknet Node's CPU into \" +\n \"the brain. This allows the user to engineer custom hardware and software \" +\n \"for the Hacknet Node that provides better performance.\",\n hacknet_node_money: 1.15,\n hacknet_node_purchase_cost: 0.85,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeCacheUpload,\n repCost: 2.5e3,\n moneyCost: 5.5e6,\n info:\n \"Uploads the architecture and design details of a Hacknet Node's main-memory cache \" +\n \"into the brain. This allows the user to engineer custom cache hardware for the \" +\n \"Hacknet Node that offers better performance.\",\n hacknet_node_money: 1.1,\n hacknet_node_level_cost: 0.85,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeNICUpload,\n repCost: 1.875e3,\n moneyCost: 4.5e6,\n info:\n \"Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) \" +\n \"into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that \" +\n \"offers better performance.\",\n hacknet_node_money: 1.1,\n hacknet_node_purchase_cost: 0.9,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeKernelDNI,\n repCost: 7.5e3,\n moneyCost: 4e7,\n info:\n \"Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a \" +\n \"Hacknet Node. This lets the user access and manipulate the Node's kernel using \" +\n \"electrochemical signals.\",\n hacknet_node_money: 1.25,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.HacknetNodeCoreDNI,\n repCost: 1.25e4,\n moneyCost: 6e7,\n info:\n \"Installs a Direct-Neural Interface jack into the arm that is capable of connecting \" +\n \"to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using \" +\n \"electrochemical signals.\",\n hacknet_node_money: 1.45,\n factions: [FactionNames.Netburners],\n }),\n new Augmentation({\n name: AugmentationNames.Neurotrainer1,\n repCost: 1e3,\n moneyCost: 4e6,\n info:\n \"A decentralized cranial implant that improves the brain's ability to learn. It is \" +\n \"installed by releasing millions of nanobots into the human brain, each of which \" +\n \"attaches to a different neural pathway to enhance the brain's ability to retain \" +\n \"and retrieve information.\",\n hacking_exp: 1.1,\n strength_exp: 1.1,\n defense_exp: 1.1,\n dexterity_exp: 1.1,\n agility_exp: 1.1,\n charisma_exp: 1.1,\n factions: [FactionNames.CyberSec, FactionNames.Aevum],\n }),\n new Augmentation({\n name: AugmentationNames.Neurotrainer2,\n repCost: 1e4,\n moneyCost: 4.5e7,\n info:\n \"A decentralized cranial implant that improves the brain's ability to learn. This \" +\n \"is a more powerful version of the Neurotrainer I augmentation, but it does not \" +\n \"require Neurotrainer I to be installed as a prerequisite.\",\n hacking_exp: 1.15,\n strength_exp: 1.15,\n defense_exp: 1.15,\n dexterity_exp: 1.15,\n agility_exp: 1.15,\n charisma_exp: 1.15,\n factions: [FactionNames.BitRunners, FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.Neurotrainer3,\n repCost: 2.5e4,\n moneyCost: 1.3e8,\n info:\n \"A decentralized cranial implant that improves the brain's ability to learn. This \" +\n \"is a more powerful version of the Neurotrainer I and Neurotrainer II augmentation, \" +\n \"but it does not require either of them to be installed as a prerequisite.\",\n hacking_exp: 1.2,\n strength_exp: 1.2,\n defense_exp: 1.2,\n dexterity_exp: 1.2,\n agility_exp: 1.2,\n charisma_exp: 1.2,\n factions: [FactionNames.NWO, FactionNames.FourSigma],\n }),\n new Augmentation({\n name: AugmentationNames.Hypersight,\n repCost: 1.5e5,\n moneyCost: 2.75e9,\n info:\n \"A bionic eye implant that grants sight capabilities far beyond those of a natural human. \" +\n \"Embedded circuitry within the implant provides the ability to detect heat and movement \" +\n \"through solid objects such as walls, thus providing 'x-ray vision'-like capabilities.\",\n dexterity: 1.4,\n hacking_speed: 1.03,\n hacking_money: 1.1,\n factions: [FactionNames.BladeIndustries, FactionNames.KuaiGongInternational],\n }),\n new Augmentation({\n name: AugmentationNames.LuminCloaking1,\n repCost: 1.5e3,\n moneyCost: 5e6,\n info:\n \"A skin implant that reinforces the skin with highly-advanced synthetic cells. These \" +\n \"cells, when powered, have a negative refractive index. As a result, they bend light \" +\n \"around the skin, making the user much harder to see with the naked eye.\",\n agility: 1.05,\n crime_money: 1.1,\n factions: [FactionNames.SlumSnakes, FactionNames.Tetrads],\n }),\n new Augmentation({\n name: AugmentationNames.LuminCloaking2,\n repCost: 5e3,\n moneyCost: 3e7,\n info:\n \"This is a more advanced version of the LuminCloaking-V1 augmentation. This skin implant \" +\n \"reinforces the skin with highly-advanced synthetic cells. These \" +\n \"cells, when powered, are capable of not only bending light but also of bending heat, \" +\n \"making the user more resilient as well as stealthy.\",\n prereqs: [AugmentationNames.LuminCloaking1],\n agility: 1.1,\n defense: 1.1,\n crime_money: 1.25,\n factions: [FactionNames.SlumSnakes, FactionNames.Tetrads],\n }),\n new Augmentation({\n name: AugmentationNames.SmartSonar,\n repCost: 2.25e4,\n moneyCost: 7.5e7,\n info: \"A cochlear implant that helps the player detect and locate enemies using sound propagation.\",\n dexterity: 1.1,\n dexterity_exp: 1.15,\n crime_money: 1.25,\n factions: [FactionNames.SlumSnakes],\n }),\n new Augmentation({\n name: AugmentationNames.PowerRecirculator,\n repCost: 2.5e4,\n moneyCost: 1.8e8,\n info:\n \"The body's nerves are attached with polypyrrole nanocircuits that \" +\n \"are capable of capturing wasted energy, in the form of heat, \" +\n \"and converting it back into usable power.\",\n hacking: 1.05,\n strength: 1.05,\n defense: 1.05,\n dexterity: 1.05,\n agility: 1.05,\n charisma: 1.05,\n hacking_exp: 1.1,\n strength_exp: 1.1,\n defense_exp: 1.1,\n dexterity_exp: 1.1,\n agility_exp: 1.1,\n charisma_exp: 1.1,\n factions: [FactionNames.Tetrads, FactionNames.TheDarkArmy, FactionNames.TheSyndicate, FactionNames.NWO],\n }),\n new Augmentation({\n name: AugmentationNames.QLink,\n repCost: 1.875e6,\n moneyCost: 2.5e13,\n info:\n `A brain implant that wirelessly connects you to the ${FactionNames.Illuminati}'s ` +\n \"quantum supercomputer, allowing you to access and use its incredible \" +\n \"computing power.\",\n hacking: 1.75,\n hacking_speed: 2,\n hacking_chance: 2.5,\n hacking_money: 4,\n factions: [FactionNames.Illuminati],\n }),\n new Augmentation({\n name: AugmentationNames.SPTN97,\n repCost: 1.25e6,\n moneyCost: 4.875e9,\n info:\n \"The SPTN-97 gene is injected into the genome. The SPTN-97 gene is an \" +\n \"artificially-synthesized gene that was developed by DARPA to create \" +\n \"super-soldiers through genetic modification. The gene was outlawed in \" +\n \"2056.\",\n strength: 1.75,\n defense: 1.75,\n dexterity: 1.75,\n agility: 1.75,\n hacking: 1.15,\n factions: [FactionNames.TheCovenant],\n }),\n new Augmentation({\n name: AugmentationNames.HiveMind,\n repCost: 1.5e6,\n moneyCost: 5.5e9,\n info:\n `A brain implant developed by ${FactionNames.ECorp}. They do not reveal what ` +\n \"exactly the implant does, but they promise that it will greatly \" +\n \"enhance your abilities.\",\n hacking_grow: 3,\n stats: null,\n factions: [FactionNames.ECorp],\n }),\n new Augmentation({\n name: AugmentationNames.TheRedPill,\n repCost: 2.5e6,\n moneyCost: 0,\n info: \"It's time to leave the cave.\",\n stats: null,\n isSpecial: true,\n factions: [FactionNames.Daedalus],\n }),\n new Augmentation({\n name: AugmentationNames.CordiARCReactor,\n repCost: 1.125e6,\n moneyCost: 5e9,\n info:\n \"The thoracic cavity is equipped with a small chamber designed \" +\n \"to hold and sustain hydrogen plasma. The plasma is used to generate \" +\n \"fusion power through nuclear fusion, providing limitless amounts of clean \" +\n \"energy for the body.\",\n strength: 1.35,\n defense: 1.35,\n dexterity: 1.35,\n agility: 1.35,\n strength_exp: 1.35,\n defense_exp: 1.35,\n dexterity_exp: 1.35,\n agility_exp: 1.35,\n factions: [FactionNames.MegaCorp],\n }),\n new Augmentation({\n name: AugmentationNames.SmartJaw,\n repCost: 3.75e5,\n moneyCost: 2.75e9,\n info:\n \"A bionic jaw that contains advanced hardware and software \" +\n \"capable of psychoanalyzing and profiling the personality of \" +\n \"others using optical imaging software.\",\n charisma: 1.5,\n charisma_exp: 1.5,\n company_rep: 1.25,\n faction_rep: 1.25,\n factions: [FactionNames.BachmanAssociates],\n }),\n new Augmentation({\n name: AugmentationNames.Neotra,\n repCost: 5.625e5,\n moneyCost: 2.875e9,\n info:\n \"A highly-advanced techno-organic drug that is injected into the skeletal \" +\n \"and integumentary system. The drug permanently modifies the DNA of the \" +\n \"body's skin and bone cells, granting them the ability to repair \" +\n \"and restructure themselves.\",\n strength: 1.55,\n defense: 1.55,\n factions: [FactionNames.BladeIndustries],\n }),\n new Augmentation({\n name: AugmentationNames.Xanipher,\n repCost: 8.75e5,\n moneyCost: 4.25e9,\n info:\n \"A concoction of advanced nanobots that is orally ingested into the \" +\n \"body. These nanobots induce physiological changes and significantly \" +\n \"improve the body's functioning in all aspects.\",\n hacking: 1.2,\n strength: 1.2,\n defense: 1.2,\n dexterity: 1.2,\n agility: 1.2,\n charisma: 1.2,\n hacking_exp: 1.15,\n strength_exp: 1.15,\n defense_exp: 1.15,\n dexterity_exp: 1.15,\n agility_exp: 1.15,\n charisma_exp: 1.15,\n factions: [FactionNames.NWO],\n }),\n new Augmentation({\n name: AugmentationNames.HydroflameLeftArm,\n repCost: 1.25e6,\n moneyCost: 2.5e12,\n info:\n \"The left arm of a legendary BitRunner who ascended beyond this world. \" +\n \"It projects a light blue energy shield that protects the exposed inner parts. \" +\n \"Even though it contains no weapons, the advanced tungsten titanium \" +\n \"alloy increases the user's strength to unbelievable levels. The augmentation \" +\n \"gets more powerful over time for seemingly no reason.\",\n strength: 2.7,\n factions: [FactionNames.NWO],\n }),\n new Augmentation({\n name: AugmentationNames.nextSENS,\n repCost: 4.375e5,\n moneyCost: 1.925e9,\n info:\n \"The body is genetically re-engineered to maintain a state \" +\n \"of negligible senescence, preventing the body from \" +\n \"deteriorating with age.\",\n hacking: 1.2,\n strength: 1.2,\n defense: 1.2,\n dexterity: 1.2,\n agility: 1.2,\n charisma: 1.2,\n factions: [FactionNames.ClarkeIncorporated],\n }),\n new Augmentation({\n name: AugmentationNames.OmniTekInfoLoad,\n repCost: 6.25e5,\n moneyCost: 2.875e9,\n info:\n \"OmniTek's data and information repository is uploaded \" +\n \"into your brain, enhancing your programming and \" +\n \"hacking abilities.\",\n hacking: 1.2,\n hacking_exp: 1.25,\n factions: [FactionNames.OmniTekIncorporated],\n }),\n new Augmentation({\n name: AugmentationNames.PhotosyntheticCells,\n repCost: 5.625e5,\n moneyCost: 2.75e9,\n info:\n \"Chloroplasts are added to epidermal stem cells and are applied \" +\n \"to the body using a skin graft. The result is photosynthetic \" +\n \"skin cells, allowing users to generate their own energy \" +\n \"and nutrition using solar power.\",\n strength: 1.4,\n defense: 1.4,\n agility: 1.4,\n factions: [FactionNames.KuaiGongInternational],\n }),\n new Augmentation({\n name: AugmentationNames.Neurolink,\n repCost: 8.75e5,\n moneyCost: 4.375e9,\n info:\n \"A brain implant that provides a high-bandwidth, direct neural link between your \" +\n `mind and the ${FactionNames.BitRunners}' data servers, which reportedly contain ` +\n \"the largest database of hacking tools and information in the world.\",\n hacking: 1.15,\n hacking_exp: 1.2,\n hacking_chance: 1.1,\n hacking_speed: 1.05,\n programs: [Programs.FTPCrackProgram.name, Programs.RelaySMTPProgram.name],\n factions: [FactionNames.BitRunners],\n }),\n new Augmentation({\n name: AugmentationNames.TheBlackHand,\n repCost: 1e5,\n moneyCost: 5.5e8,\n info:\n \"A highly advanced bionic hand. This prosthetic not only \" +\n \"enhances strength and dexterity but it is also embedded \" +\n \"with hardware and firmware that lets the user connect to, access, and hack \" +\n \"devices and machines by just touching them.\",\n strength: 1.15,\n dexterity: 1.15,\n hacking: 1.1,\n hacking_speed: 1.02,\n hacking_money: 1.1,\n factions: [FactionNames.TheBlackHand],\n }),\n new Augmentation({\n name: AugmentationNames.CRTX42AA,\n repCost: 4.5e4,\n moneyCost: 2.25e8,\n info:\n \"The CRTX42-AA gene is injected into the genome. \" +\n \"The CRTX42-AA is an artificially-synthesized gene that targets the visual and prefrontal \" +\n \"cortex and improves cognitive abilities.\",\n hacking: 1.08,\n hacking_exp: 1.15,\n factions: [FactionNames.NiteSec],\n }),\n new Augmentation({\n name: AugmentationNames.Neuregen,\n repCost: 3.75e4,\n moneyCost: 3.75e8,\n info:\n \"A drug that genetically modifies the neurons in the brain \" +\n \"resulting in neurons that never die, continuously \" +\n \"regenerate, and strengthen themselves.\",\n hacking_exp: 1.4,\n factions: [FactionNames.Chongqing],\n }),\n new Augmentation({\n name: AugmentationNames.CashRoot,\n repCost: 1.25e4,\n moneyCost: 1.25e8,\n info: (\n <>\n A collection of digital assets saved on a small chip. The chip is implanted into your wrist. A small jack in the\n chip allows you to connect it to a computer and upload the assets.\n >\n ),\n startingMoney: 1e6,\n programs: [Programs.BruteSSHProgram.name],\n factions: [FactionNames.Sector12],\n }),\n new Augmentation({\n name: AugmentationNames.NutriGen,\n repCost: 6.25e3,\n moneyCost: 2.5e6,\n info:\n \"A thermo-powered artificial nutrition generator. Endogenously \" +\n \"synthesizes glucose, amino acids, and vitamins and redistributes them \" +\n \"across the body. The device is powered by the body's naturally wasted \" +\n \"energy in the form of heat.\",\n strength_exp: 1.2,\n defense_exp: 1.2,\n dexterity_exp: 1.2,\n agility_exp: 1.2,\n factions: [FactionNames.NewTokyo],\n }),\n new Augmentation({\n name: AugmentationNames.PCMatrix,\n repCost: 100e3,\n moneyCost: 2e9,\n info:\n \"A 'Probability Computation Matrix' is installed in the frontal cortex. This implant \" +\n \"uses advanced mathematical algorithims to rapidly identify and compute statistical \" +\n \"outcomes of nearly every situation.\",\n charisma: 1.0777,\n charisma_exp: 1.0777,\n work_money: 1.777,\n faction_rep: 1.0777,\n company_rep: 1.0777,\n crime_success: 1.0777,\n crime_money: 1.0777,\n programs: [Programs.DeepscanV1.name, Programs.AutoLink.name],\n factions: [FactionNames.Aevum],\n }),\n new Augmentation({\n name: AugmentationNames.INFRARet,\n repCost: 7.5e3,\n moneyCost: 3e7,\n info: \"A tiny chip that sits behind the retinae. This implant lets the user visually detect infrared radiation.\",\n crime_success: 1.25,\n crime_money: 1.1,\n dexterity: 1.1,\n factions: [FactionNames.Ishima],\n }),\n new Augmentation({\n name: AugmentationNames.DermaForce,\n repCost: 1.5e4,\n moneyCost: 5e7,\n info:\n \"Synthetic skin that is grafted onto the body. This skin consists of \" +\n \"millions of nanobots capable of projecting high-density muon beams, \" +\n \"creating an energy barrier around the user.\",\n defense: 1.4,\n factions: [FactionNames.Volhaven],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBrachiBlades,\n repCost: 2.25e5,\n moneyCost: 2.5e9,\n info:\n \"An upgrade to the BrachiBlades augmentation. It infuses \" +\n \"the retractable blades with an advanced graphene material \" +\n \"making them stronger and lighter.\",\n prereqs: [AugmentationNames.BrachiBlades],\n strength: 1.4,\n defense: 1.4,\n crime_success: 1.1,\n crime_money: 1.3,\n factions: [FactionNames.SpeakersForTheDead],\n }),\n new Augmentation({\n name: AugmentationNames.GrapheneBionicArms,\n repCost: 5e5,\n moneyCost: 3.75e9,\n info:\n \"An upgrade to the Bionic Arms augmentation. It infuses the \" +\n \"prosthetic arms with an advanced graphene material \" +\n \"to make them stronger and lighter.\",\n prereqs: [AugmentationNames.BionicArms],\n strength: 1.85,\n dexterity: 1.85,\n factions: [FactionNames.TheDarkArmy],\n }),\n new Augmentation({\n name: AugmentationNames.BrachiBlades,\n repCost: 1.25e4,\n moneyCost: 9e7,\n info: \"A set of retractable plasteel blades that are implanted in the arm, underneath the skin.\",\n strength: 1.15,\n defense: 1.15,\n crime_success: 1.1,\n crime_money: 1.15,\n factions: [FactionNames.TheSyndicate],\n }),\n new Augmentation({\n name: AugmentationNames.BionicArms,\n repCost: 6.25e4,\n moneyCost: 2.75e8,\n info: \"Cybernetic arms created from plasteel and carbon fibers that completely replace the user's organic arms.\",\n strength: 1.3,\n dexterity: 1.3,\n factions: [FactionNames.Tetrads],\n }),\n new Augmentation({\n name: AugmentationNames.SNA,\n repCost: 6.25e3,\n moneyCost: 3e7,\n info:\n \"A cranial implant that affects the user's personality, making them better \" +\n \"at negotiation in social situations.\",\n work_money: 1.1,\n company_rep: 1.15,\n faction_rep: 1.15,\n factions: [FactionNames.TianDiHui],\n }),\n new Augmentation({\n name: AugmentationNames.NeuroreceptorManager,\n repCost: 0.75e5,\n moneyCost: 5.5e8,\n info:\n \"A brain implant carefully assembled around the synapses, which \" +\n \"micromanages the activity and levels of various neuroreceptor \" +\n \"chemicals and modulates electrical activity to optimize concentration, \" +\n \"allowing the user to multitask much more effectively.\",\n stats: (\n <>\n This augmentation removes the penalty for not focusing on actions such as working in a job or working for a\n faction.\n >\n ),\n factions: [FactionNames.TianDiHui],\n }),\n\n // Grafting-exclusive Augmentation\n new Augmentation({\n name: AugmentationNames.CongruityImplant,\n repCost: Infinity,\n moneyCost: 50e12,\n info: (\n <>\n Developed by a pioneer in Grafting research, this implant generates pulses of stability which seem to have a\n nullifying effect versus the Entropy virus.\n \n \n Note: For unknown reasons, the lowercase n appears to be an integral component to its\n functionality.\n >\n ),\n stats: <>This Augmentation removes the Entropy virus, and prevents it from affecting you again.>,\n factions: [],\n }),\n];\n\nexport const initBladeburnerAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.EsperEyewear,\n repCost: 1.25e3,\n moneyCost: 1.65e8,\n info:\n \"Ballistic-grade protective and retractable eyewear that was designed specifically \" +\n \"for Bladeburner units. This \" +\n \"is implanted by installing a mechanical frame in the skull's orbit. \" +\n \"This frame interfaces with the brain and allows the user to \" +\n \"automatically extrude and extract the eyewear. The eyewear protects \" +\n \"against debris, shrapnel, lasers, blinding flashes, and gas. It is also \" +\n \"embedded with a data processing chip that can be programmed to display an \" +\n \"AR HUD to assist the user in field missions.\",\n bladeburner_success_chance: 1.03,\n dexterity: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.EMS4Recombination,\n repCost: 2.5e3,\n moneyCost: 2.75e8,\n info:\n \"A DNA recombination of the EMS-4 Gene. This genetic engineering \" +\n \"technique was originally used on Bladeburners during the Synthoid uprising \" +\n \"to induce wakefulness and concentration, suppress fear, reduce empathy, \" +\n \"improve reflexes, and improve memory among other things.\",\n bladeburner_success_chance: 1.03,\n bladeburner_analysis: 1.05,\n bladeburner_stamina_gain: 1.02,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.OrionShoulder,\n repCost: 6.25e3,\n moneyCost: 5.5e8,\n info:\n \"A bionic shoulder augmentation for the right shoulder. Using cybernetics, \" +\n \"the ORION-MKIV shoulder enhances the strength and dexterity \" +\n \"of the user's right arm. It also provides protection due to its \" +\n \"crystallized graphene plating.\",\n defense: 1.05,\n strength: 1.05,\n dexterity: 1.05,\n bladeburner_success_chance: 1.04,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.HyperionV1,\n repCost: 1.25e4,\n moneyCost: 2.75e9,\n info:\n \"A pair of mini plasma cannons embedded into the hands. The Hyperion is capable \" +\n \"of rapidly firing bolts of high-density plasma. The weapon is meant to \" +\n \"be used against augmented enemies as the ionized \" +\n \"nature of the plasma disrupts the electrical systems of Augmentations. However, \" +\n \"it can also be effective against non-augmented enemies due to its high temperature \" +\n \"and concussive force.\",\n bladeburner_success_chance: 1.06,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.HyperionV2,\n repCost: 2.5e4,\n moneyCost: 5.5e9,\n info:\n \"A pair of mini plasma cannons embedded into the hands. This augmentation \" +\n \"is more advanced and powerful than the original V1 model. This V2 model is \" +\n \"more power-efficient, more accurate, and can fire plasma bolts at a much \" +\n \"higher velocity than the V1 model.\",\n prereqs: [AugmentationNames.HyperionV1],\n bladeburner_success_chance: 1.08,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.GolemSerum,\n repCost: 3.125e4,\n moneyCost: 1.1e10,\n info:\n \"A serum that permanently enhances many aspects of human capabilities, \" +\n \"including strength, speed, immune system enhancements, and mitochondrial efficiency. The \" +\n \"serum was originally developed by the Chinese military in an attempt to \" +\n \"create super soldiers.\",\n strength: 1.07,\n defense: 1.07,\n dexterity: 1.07,\n agility: 1.07,\n bladeburner_stamina_gain: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.VangelisVirus,\n repCost: 1.875e4,\n moneyCost: 2.75e9,\n info:\n \"A synthetic symbiotic virus that is injected into human brain tissue. The Vangelis virus \" +\n \"heightens the senses and focus of its host, and also enhances its intuition.\",\n dexterity_exp: 1.1,\n bladeburner_analysis: 1.1,\n bladeburner_success_chance: 1.04,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.VangelisVirus3,\n repCost: 3.75e4,\n moneyCost: 1.1e10,\n info:\n \"An improved version of Vangelis, a synthetic symbiotic virus that is \" +\n \"injected into human brain tissue. On top of the benefits of the original \" +\n \"virus, this also grants accelerated healing and enhanced \" +\n \"reflexes.\",\n prereqs: [AugmentationNames.VangelisVirus],\n defense_exp: 1.1,\n dexterity_exp: 1.1,\n bladeburner_analysis: 1.15,\n bladeburner_success_chance: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.INTERLINKED,\n repCost: 2.5e4,\n moneyCost: 5.5e9,\n info:\n \"The DNA is genetically modified to enhance the human's body \" +\n \"extracellular matrix (ECM). This improves the ECM's ability to \" +\n \"structurally support the body and grants heightened strength and \" +\n \"durability.\",\n strength_exp: 1.05,\n defense_exp: 1.05,\n dexterity_exp: 1.05,\n agility_exp: 1.05,\n bladeburner_max_stamina: 1.1,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeRunner,\n repCost: 2e4,\n moneyCost: 8.25e9,\n info:\n `A cybernetic foot augmentation that was specifically created for ${FactionNames.Bladeburners} ` +\n \"during the Synthoid Uprising. The organic musculature of the human foot \" +\n \"is enhanced with flexible carbon nanotube matrices that are controlled by \" +\n \"intelligent servo-motors.\",\n agility: 1.05,\n bladeburner_max_stamina: 1.05,\n bladeburner_stamina_gain: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmor,\n repCost: 1.25e4,\n moneyCost: 1.375e9,\n info:\n `A powered exoskeleton suit designed as armor for ${FactionNames.Bladeburners} units. This ` +\n \"exoskeleton is incredibly adaptable and can protect the wearer from blunt, piercing, \" +\n \"concussive, thermal, chemical, and electric trauma. It also enhances the user's \" +\n \"physical abilities.\",\n strength: 1.04,\n defense: 1.04,\n dexterity: 1.04,\n agility: 1.04,\n bladeburner_stamina_gain: 1.02,\n bladeburner_success_chance: 1.03,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorPowerCells,\n repCost: 1.875e4,\n moneyCost: 2.75e9,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with Ion Power Cells, which are capable of \" +\n \"more efficiently storing and using power.\",\n prereqs: [AugmentationNames.BladeArmor],\n bladeburner_success_chance: 1.05,\n bladeburner_stamina_gain: 1.02,\n bladeburner_max_stamina: 1.05,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorEnergyShielding,\n repCost: 2.125e4,\n moneyCost: 5.5e9,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with a plasma energy propulsion system \" +\n \"that is capable of projecting an energy shielding force field.\",\n prereqs: [AugmentationNames.BladeArmor],\n defense: 1.05,\n bladeburner_success_chance: 1.06,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorUnibeam,\n repCost: 3.125e4,\n moneyCost: 1.65e10,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with a concentrated deuterium-fluoride laser \" +\n \"weapon. It's precision and accuracy makes it useful for quickly neutralizing \" +\n \"threats while keeping casualties to a minimum.\",\n prereqs: [AugmentationNames.BladeArmor],\n bladeburner_success_chance: 1.08,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorOmnibeam,\n repCost: 6.25e4,\n moneyCost: 2.75e10,\n info:\n \"Upgrades the BLADE-51b Tesla Armor Unibeam augmentation to use a \" +\n \"multiple-fiber system. This upgraded weapon uses multiple fiber laser \" +\n \"modules that combine together to form a single, more powerful beam of up to \" +\n \"2000MW.\",\n prereqs: [AugmentationNames.BladeArmorUnibeam],\n bladeburner_success_chance: 1.1,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladeArmorIPU,\n repCost: 1.5e4,\n moneyCost: 1.1e9,\n info:\n \"Upgrades the BLADE-51b Tesla Armor with an AI Information Processing \" +\n \"Unit that was specially designed to analyze Synthoid related data and \" +\n \"information.\",\n prereqs: [AugmentationNames.BladeArmor],\n bladeburner_analysis: 1.15,\n bladeburner_success_chance: 1.02,\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n new Augmentation({\n name: AugmentationNames.BladesSimulacrum,\n repCost: 1.25e3,\n moneyCost: 1.5e11,\n info:\n \"A highly-advanced matter phase-shifter module that is embedded \" +\n \"in the brainstem and cerebellum. This augmentation allows \" +\n \"the user to project and control a holographic simulacrum within an \" +\n \"extremely large radius. These specially-modified holograms were specifically \" +\n \"weaponized by Bladeburner units to be used against Synthoids.\",\n stats: (\n <>\n This augmentation allows you to perform Bladeburner actions and other actions (such as working, commiting\n crimes, etc.) at the same time.\n >\n ),\n isSpecial: true,\n factions: [FactionNames.Bladeburners],\n }),\n];\n\nexport const initChurchOfTheMachineGodAugmentations = (): Augmentation[] => [\n new Augmentation({\n name: AugmentationNames.StaneksGift1,\n repCost: 0,\n moneyCost: 0,\n info:\n 'Allison \"Mother\" Stanek imparts you with her gift. An ' +\n \"experimental Augmentation implanted at the base of the neck. \" +\n \"It allows you to overclock your entire system by carefully \" +\n \"changing the configuration.\",\n isSpecial: true,\n hacking_chance: 0.9,\n hacking_speed: 0.9,\n hacking_money: 0.9,\n hacking_grow: 0.9,\n hacking: 0.9,\n strength: 0.9,\n defense: 0.9,\n dexterity: 0.9,\n agility: 0.9,\n charisma: 0.9,\n hacking_exp: 0.9,\n strength_exp: 0.9,\n defense_exp: 0.9,\n dexterity_exp: 0.9,\n agility_exp: 0.9,\n charisma_exp: 0.9,\n company_rep: 0.9,\n faction_rep: 0.9,\n crime_money: 0.9,\n crime_success: 0.9,\n hacknet_node_money: 0.9,\n hacknet_node_purchase_cost: 1.1,\n hacknet_node_ram_cost: 1.1,\n hacknet_node_core_cost: 1.1,\n hacknet_node_level_cost: 1.1,\n work_money: 0.9,\n stats: <>Its unstable nature decreases all your stats by 10%>,\n factions: [FactionNames.ChurchOfTheMachineGod],\n }),\n new Augmentation({\n name: AugmentationNames.StaneksGift2,\n repCost: 1e6,\n moneyCost: 0,\n info:\n \"The next evolution is near, a coming together of man and machine. A synthesis greater than the birth of the human \" +\n \"organism. Time spent with the gift has allowed for acclimatization of the invasive augment and the toll it takes upon \" +\n \"your frame granting a 5% reduced penalty to all stats.\",\n prereqs: [AugmentationNames.StaneksGift1],\n isSpecial: true,\n hacking_chance: 0.95 / 0.9,\n hacking_speed: 0.95 / 0.9,\n hacking_money: 0.95 / 0.9,\n hacking_grow: 0.95 / 0.9,\n hacking: 0.95 / 0.9,\n strength: 0.95 / 0.9,\n defense: 0.95 / 0.9,\n dexterity: 0.95 / 0.9,\n agility: 0.95 / 0.9,\n charisma: 0.95 / 0.9,\n hacking_exp: 0.95 / 0.9,\n strength_exp: 0.95 / 0.9,\n defense_exp: 0.95 / 0.9,\n dexterity_exp: 0.95 / 0.9,\n agility_exp: 0.95 / 0.9,\n charisma_exp: 0.95 / 0.9,\n company_rep: 0.95 / 0.9,\n faction_rep: 0.95 / 0.9,\n crime_money: 0.95 / 0.9,\n crime_success: 0.95 / 0.9,\n hacknet_node_money: 0.95 / 0.9,\n hacknet_node_purchase_cost: 1.05 / 1.1,\n hacknet_node_ram_cost: 1.05 / 1.1,\n hacknet_node_core_cost: 1.05 / 1.1,\n hacknet_node_level_cost: 1.05 / 1.1,\n work_money: 0.95 / 0.9,\n stats: <>The penalty for the gift is reduced to 5%>,\n factions: [FactionNames.ChurchOfTheMachineGod],\n }),\n new Augmentation({\n name: AugmentationNames.StaneksGift3,\n repCost: 1e8,\n moneyCost: 0,\n info:\n \"The synthesis of human and machine is nothing to fear. It is our destiny. \" +\n \"You will become greater than the sum of our parts. As One. Embrace your gift \" +\n \"fully and wholly free of it's accursed toll. Serenity brings tranquility in the form \" +\n \"of no longer suffering a stat penalty. \",\n prereqs: [AugmentationNames.StaneksGift2, AugmentationNames.StaneksGift1],\n isSpecial: true,\n hacking_chance: 1 / 0.95,\n hacking_speed: 1 / 0.95,\n hacking_money: 1 / 0.95,\n hacking_grow: 1 / 0.95,\n hacking: 1 / 0.95,\n strength: 1 / 0.95,\n defense: 1 / 0.95,\n dexterity: 1 / 0.95,\n agility: 1 / 0.95,\n charisma: 1 / 0.95,\n hacking_exp: 1 / 0.95,\n strength_exp: 1 / 0.95,\n defense_exp: 1 / 0.95,\n dexterity_exp: 1 / 0.95,\n agility_exp: 1 / 0.95,\n charisma_exp: 1 / 0.95,\n company_rep: 1 / 0.95,\n faction_rep: 1 / 0.95,\n crime_money: 1 / 0.95,\n crime_success: 1 / 0.95,\n hacknet_node_money: 1 / 0.95,\n hacknet_node_purchase_cost: 1 / 1.05,\n hacknet_node_ram_cost: 1 / 1.05,\n hacknet_node_core_cost: 1 / 1.05,\n hacknet_node_level_cost: 1 / 1.05,\n work_money: 1 / 0.95,\n stats: <>Stanek's Gift has no penalty.>,\n factions: [FactionNames.ChurchOfTheMachineGod],\n }),\n];\n\nexport function initNeuroFluxGovernor(): Augmentation {\n const donationBonus = CONSTANTS.Donations / 1e6 / 100; // 1 millionth of a percent per donation\n return new Augmentation({\n name: AugmentationNames.NeuroFluxGovernor,\n repCost: 500,\n moneyCost: 750e3,\n info:\n \"A device that is embedded in the back of the neck. The NeuroFlux Governor \" +\n \"monitors and regulates nervous impulses coming to and from the spinal column, \" +\n \"essentially 'governing' the body. By doing so, it improves the functionality of the \" +\n \"body's nervous system.\",\n stats: (\n <>\n This special augmentation can be leveled up infinitely. Each level of this augmentation increases MOST\n multipliers by 1% (+{(donationBonus * 100).toFixed(6)}% boosted by real life blood donations), stacking\n multiplicatively.\n >\n ),\n isSpecial: true,\n hacking_chance: 1.01 + donationBonus,\n hacking_speed: 1.01 + donationBonus,\n hacking_money: 1.01 + donationBonus,\n hacking_grow: 1.01 + donationBonus,\n hacking: 1.01 + donationBonus,\n strength: 1.01 + donationBonus,\n defense: 1.01 + donationBonus,\n dexterity: 1.01 + donationBonus,\n agility: 1.01 + donationBonus,\n charisma: 1.01 + donationBonus,\n hacking_exp: 1.01 + donationBonus,\n strength_exp: 1.01 + donationBonus,\n defense_exp: 1.01 + donationBonus,\n dexterity_exp: 1.01 + donationBonus,\n agility_exp: 1.01 + donationBonus,\n charisma_exp: 1.01 + donationBonus,\n company_rep: 1.01 + donationBonus,\n faction_rep: 1.01 + donationBonus,\n crime_money: 1.01 + donationBonus,\n crime_success: 1.01 + donationBonus,\n hacknet_node_money: 1.01 + donationBonus,\n hacknet_node_purchase_cost: 1 / (1.01 + donationBonus),\n hacknet_node_ram_cost: 1 / (1.01 + donationBonus),\n hacknet_node_core_cost: 1 / (1.01 + donationBonus),\n hacknet_node_level_cost: 1 / (1.01 + donationBonus),\n work_money: 1.01 + donationBonus,\n factions: Object.values(FactionNames).filter(\n (factionName) =>\n ![FactionNames.ShadowsOfAnarchy, FactionNames.Bladeburners, FactionNames.ChurchOfTheMachineGod].includes(\n factionName,\n ),\n ),\n });\n}\n\nexport function initUnstableCircadianModulator(): Augmentation {\n //Time-Based Augment Test\n const randomBonuses = getRandomBonus();\n\n const UnstableCircadianModulatorParams: IConstructorParams = {\n name: AugmentationNames.UnstableCircadianModulator,\n moneyCost: 5e9,\n repCost: 3.625e5,\n info:\n \"An experimental nanobot injection. Its unstable nature leads to \" +\n \"unpredictable results based on your circadian rhythm.\",\n factions: [FactionNames.SpeakersForTheDead],\n };\n Object.keys(randomBonuses.bonuses).forEach(\n (key) => ((UnstableCircadianModulatorParams as any)[key] = randomBonuses.bonuses[key]),\n );\n\n return new Augmentation(UnstableCircadianModulatorParams);\n}\n","import { FactionNames } from \"../../Faction/data/FactionNames\";\n// tslint:disable:max-file-line-count\n\n// This could actually be a JSON file as it should be constant metadata to be imported...\nimport { IMinMaxRange } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { LiteratureNames } from \"../../Literature/data/LiteratureNames\";\nimport { SpecialServers } from \"./SpecialServers\";\n\n/**\n * The metadata describing the base state of servers on the network.\n * These values will be adjusted based on Bitnode multipliers when the Server objects are built out.\n */\ninterface IServerMetadata {\n /**\n * When populated, the base security level of the server.\n */\n hackDifficulty?: number | IMinMaxRange;\n\n /**\n * The DNS name of the server.\n */\n hostname: string;\n\n /**\n * When populated, the files will be added to the server when created.\n */\n literature?: string[];\n\n /**\n * When populated, the exponent of 2^x amount of RAM the server has.\n * This should be in the range of 1-20, to match the Player's max RAM.\n */\n maxRamExponent?: number | IMinMaxRange;\n\n /**\n * How much money the server starts out with.\n */\n moneyAvailable: number | IMinMaxRange;\n\n /**\n * The number of network layers away from the `home` server.\n * This value is between 1 and 15.\n * If this is not populated, @specialName should be.\n */\n networkLayer?: number | IMinMaxRange;\n\n /**\n * The number of ports that must be opened before the player can execute NUKE.\n */\n numOpenPortsRequired: number;\n\n /**\n * The organization that the server belongs to.\n */\n organizationName: string;\n\n /**\n * The minimum hacking level before the player can run NUKE.\n */\n requiredHackingSkill: number | IMinMaxRange;\n\n /**\n * The growth factor for the server.\n */\n serverGrowth?: number | IMinMaxRange;\n\n /**\n * A \"unique\" server that has special implications when the player manually hacks it.\n */\n specialName?: string;\n}\n\n/**\n * The metadata for building up the servers on the network.\n */\nexport const serverMetadata: IServerMetadata[] = [\n {\n hackDifficulty: 99,\n hostname: LocationName.AevumECorp.toLowerCase(),\n moneyAvailable: {\n max: 70e9,\n min: 30e9,\n },\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumECorp,\n requiredHackingSkill: {\n max: 1400,\n min: 1050,\n },\n serverGrowth: 99,\n specialName: LocationName.AevumECorp,\n },\n {\n hackDifficulty: 99,\n hostname: LocationName.Sector12MegaCorp.toLowerCase(),\n moneyAvailable: {\n max: 60e9,\n min: 40e9,\n },\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12MegaCorp,\n requiredHackingSkill: {\n max: 1350,\n min: 1100,\n },\n serverGrowth: 99,\n specialName: LocationName.Sector12MegaCorp,\n },\n {\n hackDifficulty: {\n max: 88,\n min: 72,\n },\n hostname: \"b-and-a\",\n moneyAvailable: {\n max: 30e9,\n min: 15e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumBachmanAndAssociates,\n requiredHackingSkill: {\n max: 1150,\n min: 900,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n specialName: LocationName.AevumBachmanAndAssociates,\n },\n {\n hackDifficulty: {\n max: 97,\n min: 88,\n },\n hostname: \"blade\",\n literature: [LiteratureNames.BeyondMan],\n maxRamExponent: {\n max: 9,\n min: 5,\n },\n moneyAvailable: {\n max: 40e9,\n min: 10e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12BladeIndustries,\n requiredHackingSkill: {\n max: 1200,\n min: 900,\n },\n serverGrowth: {\n max: 85,\n min: 55,\n },\n specialName: LocationName.Sector12BladeIndustries,\n },\n {\n hackDifficulty: 99,\n hostname: LocationName.VolhavenNWO.toLowerCase(),\n literature: [LiteratureNames.TheHiddenWorld],\n moneyAvailable: {\n max: 40e9,\n min: 20e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenNWO,\n requiredHackingSkill: {\n max: 1300,\n min: 950,\n },\n serverGrowth: {\n max: 95,\n min: 65,\n },\n specialName: LocationName.VolhavenNWO,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 45,\n },\n hostname: \"clarkinc\",\n literature: [LiteratureNames.BeyondMan, LiteratureNames.CostOfImmortality],\n moneyAvailable: {\n max: 25e9,\n min: 15e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumClarkeIncorporated,\n requiredHackingSkill: {\n max: 1250,\n min: 950,\n },\n serverGrowth: {\n max: 75,\n min: 45,\n },\n specialName: LocationName.AevumClarkeIncorporated,\n },\n {\n hackDifficulty: {\n max: 99,\n min: 90,\n },\n hostname: \"omnitek\",\n literature: [LiteratureNames.CodedIntelligence, LiteratureNames.HistoryOfSynthoids],\n maxRamExponent: {\n max: 9,\n min: 7,\n },\n moneyAvailable: {\n max: 22e9,\n min: 13e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenOmniTekIncorporated,\n requiredHackingSkill: {\n max: 1100,\n min: 900,\n },\n serverGrowth: {\n max: 99,\n min: 95,\n },\n specialName: LocationName.VolhavenOmniTekIncorporated,\n },\n {\n hackDifficulty: {\n max: 75,\n min: 55,\n },\n hostname: \"4sigma\",\n moneyAvailable: {\n max: 25e9,\n min: 15e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12FourSigma,\n requiredHackingSkill: {\n max: 1250,\n min: 900,\n },\n serverGrowth: {\n max: 99,\n min: 75,\n },\n specialName: LocationName.Sector12FourSigma,\n },\n {\n hackDifficulty: {\n max: 99,\n min: 95,\n },\n hostname: \"kuai-gong\",\n moneyAvailable: {\n max: 30e9,\n min: 20e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.ChongqingKuaiGongInternational,\n requiredHackingSkill: {\n max: 1300,\n min: 950,\n },\n serverGrowth: {\n max: 99,\n min: 90,\n },\n specialName: LocationName.ChongqingKuaiGongInternational,\n },\n {\n hackDifficulty: {\n max: 97,\n min: 83,\n },\n hostname: \"fulcrumtech\",\n literature: [LiteratureNames.SimulatedReality],\n maxRamExponent: {\n max: 11,\n min: 7,\n },\n moneyAvailable: {\n max: 1800e6,\n min: 1400e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumFulcrumTechnologies,\n requiredHackingSkill: {\n max: 1250,\n min: 950,\n },\n serverGrowth: {\n max: 99,\n min: 80,\n },\n specialName: LocationName.AevumFulcrumTechnologies,\n },\n {\n hackDifficulty: 99,\n hostname: \"fulcrumassets\",\n moneyAvailable: 1e6,\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumFulcrumTechnologies,\n requiredHackingSkill: {\n max: 1600,\n min: 1100,\n },\n serverGrowth: 1,\n specialName: SpecialServers.FulcrumSecretTechnologies,\n },\n {\n hackDifficulty: {\n max: 92,\n min: 78,\n },\n hostname: \"stormtech\",\n moneyAvailable: {\n max: 1200e6,\n min: 1000e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.IshimaStormTechnologies,\n requiredHackingSkill: {\n max: 1075,\n min: 875,\n },\n serverGrowth: {\n max: 92,\n min: 68,\n },\n specialName: LocationName.IshimaStormTechnologies,\n },\n {\n hackDifficulty: {\n max: 96,\n min: 84,\n },\n hostname: \"defcomm\",\n moneyAvailable: {\n max: 950e6,\n min: 800e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.NewTokyoDefComm,\n requiredHackingSkill: {\n max: 1050,\n min: 850,\n },\n serverGrowth: {\n max: 73,\n min: 47,\n },\n specialName: LocationName.NewTokyoDefComm,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 70,\n },\n hostname: \"infocomm\",\n moneyAvailable: {\n max: 900e6,\n min: 600e6,\n },\n networkLayer: 10,\n numOpenPortsRequired: 5,\n organizationName: \"InfoComm\",\n requiredHackingSkill: {\n max: 950,\n min: 875,\n },\n serverGrowth: {\n max: 75,\n min: 35,\n },\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"helios\",\n literature: [LiteratureNames.BeyondMan],\n maxRamExponent: {\n max: 8,\n min: 5,\n },\n moneyAvailable: {\n max: 750e6,\n min: 550e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenHeliosLabs,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n specialName: LocationName.VolhavenHeliosLabs,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: LocationName.NewTokyoVitaLife.toLowerCase(),\n literature: [LiteratureNames.AGreenTomorrow],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 800e6,\n min: 700e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.NewTokyoVitaLife,\n requiredHackingSkill: {\n max: 900,\n min: 775,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n specialName: LocationName.NewTokyoVitaLife,\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"icarus\",\n moneyAvailable: {\n max: 1000e6,\n min: 900e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12IcarusMicrosystems,\n requiredHackingSkill: {\n max: 925,\n min: 850,\n },\n serverGrowth: {\n max: 95,\n min: 85,\n },\n specialName: LocationName.Sector12IcarusMicrosystems,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: \"univ-energy\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 1200e6,\n min: 1100e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 4,\n organizationName: LocationName.Sector12UniversalEnergy,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 90,\n min: 80,\n },\n specialName: LocationName.Sector12UniversalEnergy,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"titan-labs\",\n literature: [LiteratureNames.CodedIntelligence],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 900000000,\n min: 750000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 5,\n organizationName: \"Titan Laboratories\",\n requiredHackingSkill: {\n max: 875,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n },\n {\n hackDifficulty: {\n max: 75,\n min: 65,\n },\n hostname: \"microdyne\",\n literature: [LiteratureNames.SyntheticMuscles],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 700000000,\n min: 500000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 5,\n organizationName: \"Microdyne Technologies\",\n requiredHackingSkill: {\n max: 875,\n min: 800,\n },\n serverGrowth: {\n max: 90,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"taiyang-digital\",\n literature: [LiteratureNames.AGreenTomorrow, LiteratureNames.BrighterThanTheSun],\n moneyAvailable: {\n max: 900000000,\n min: 800000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 5,\n organizationName: \"Taiyang Digital\",\n requiredHackingSkill: {\n max: 950,\n min: 850,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"galactic-cyber\",\n moneyAvailable: {\n max: 850000000,\n min: 750000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumGalacticCybersystems,\n requiredHackingSkill: {\n max: 875,\n min: 825,\n },\n serverGrowth: {\n max: 90,\n min: 70,\n },\n specialName: LocationName.AevumGalacticCybersystems,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: LocationName.AevumAeroCorp.toLowerCase(),\n literature: [LiteratureNames.ManAndMachine],\n moneyAvailable: {\n max: 1200000000,\n min: 1000000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumAeroCorp,\n requiredHackingSkill: {\n max: 925,\n min: 850,\n },\n serverGrowth: {\n max: 65,\n min: 55,\n },\n specialName: LocationName.AevumAeroCorp,\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"omnia\",\n literature: [LiteratureNames.HistoryOfSynthoids],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 1000000000,\n min: 900000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenOmniaCybersystems,\n requiredHackingSkill: {\n max: 950,\n min: 850,\n },\n serverGrowth: {\n max: 70,\n min: 60,\n },\n specialName: LocationName.VolhavenOmniaCybersystems,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"zb-def\",\n literature: [LiteratureNames.SyntheticMuscles],\n moneyAvailable: {\n max: 1100000000,\n min: 900000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 4,\n organizationName: \"ZB Defense Industries\",\n requiredHackingSkill: {\n max: 825,\n min: 775,\n },\n serverGrowth: {\n max: 75,\n min: 65,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"applied-energetics\",\n moneyAvailable: {\n max: 1000000000,\n min: 700000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 4,\n organizationName: \"Applied Energetics\",\n requiredHackingSkill: {\n max: 850,\n min: 775,\n },\n serverGrowth: {\n max: 75,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"solaris\",\n literature: [LiteratureNames.AGreenTomorrow, LiteratureNames.TheFailedFrontier],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 900000000,\n min: 700000000,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.ChongqingSolarisSpaceSystems,\n requiredHackingSkill: {\n max: 850,\n min: 750,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n specialName: LocationName.ChongqingSolarisSpaceSystems,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 75,\n },\n hostname: LocationName.Sector12DeltaOne.toLowerCase(),\n moneyAvailable: {\n max: 1700000000,\n min: 1300000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12DeltaOne,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 70,\n min: 50,\n },\n specialName: LocationName.Sector12DeltaOne,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 75,\n },\n hostname: \"global-pharm\",\n literature: [LiteratureNames.AGreenTomorrow],\n maxRamExponent: {\n max: 6,\n min: 3,\n },\n moneyAvailable: {\n max: 1750000000,\n min: 1500000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 4,\n organizationName: LocationName.NewTokyoGlobalPharmaceuticals,\n requiredHackingSkill: {\n max: 850,\n min: 750,\n },\n serverGrowth: {\n max: 90,\n min: 80,\n },\n specialName: LocationName.NewTokyoGlobalPharmaceuticals,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"nova-med\",\n moneyAvailable: {\n max: 1250000000,\n min: 1100000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 4,\n organizationName: LocationName.IshimaNovaMedical,\n requiredHackingSkill: {\n max: 850,\n min: 775,\n },\n serverGrowth: {\n max: 85,\n min: 65,\n },\n specialName: LocationName.IshimaNovaMedical,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 70,\n },\n hostname: \"zeus-med\",\n moneyAvailable: {\n max: 1500000000,\n min: 1300000000,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: \"Zeus Medical\",\n requiredHackingSkill: {\n max: 850,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"unitalife\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 1100000000,\n min: 1000000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 4,\n organizationName: \"UnitaLife Group\",\n requiredHackingSkill: {\n max: 825,\n min: 775,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"lexo-corp\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 800000000,\n min: 700000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.VolhavenLexoCorp,\n requiredHackingSkill: {\n max: 750,\n min: 650,\n },\n serverGrowth: {\n max: 65,\n min: 55,\n },\n specialName: LocationName.VolhavenLexoCorp,\n },\n {\n hackDifficulty: {\n max: 60,\n min: 40,\n },\n hostname: \"rho-construction\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 700000000,\n min: 500000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumRhoConstruction,\n requiredHackingSkill: {\n max: 525,\n min: 475,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumRhoConstruction,\n },\n {\n hackDifficulty: {\n max: 70,\n min: 50,\n },\n hostname: \"alpha-ent\",\n literature: [LiteratureNames.Sector12Crime],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 750000000,\n min: 600000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.Sector12AlphaEnterprises,\n requiredHackingSkill: {\n max: 600,\n min: 500,\n },\n serverGrowth: {\n max: 60,\n min: 50,\n },\n specialName: LocationName.Sector12AlphaEnterprises,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"aevum-police\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 400000000,\n min: 200000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.AevumPolice,\n requiredHackingSkill: {\n max: 450,\n min: 400,\n },\n serverGrowth: {\n max: 50,\n min: 30,\n },\n specialName: LocationName.AevumPolice,\n },\n {\n hackDifficulty: {\n max: 55,\n min: 45,\n },\n hostname: \"rothman-uni\",\n literature: [\n LiteratureNames.SecretSocieties,\n LiteratureNames.TheFailedFrontier,\n LiteratureNames.TensionsInTechRace,\n ],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 250000000,\n min: 175000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: LocationName.Sector12RothmanUniversity,\n requiredHackingSkill: {\n max: 430,\n min: 370,\n },\n serverGrowth: {\n max: 45,\n min: 35,\n },\n specialName: LocationName.Sector12RothmanUniversity,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 65,\n },\n hostname: \"zb-institute\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 1100000000,\n min: 800000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenZBInstituteOfTechnology,\n requiredHackingSkill: {\n max: 775,\n min: 725,\n },\n serverGrowth: {\n max: 85,\n min: 75,\n },\n specialName: LocationName.VolhavenZBInstituteOfTechnology,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 45,\n },\n hostname: \"summit-uni\",\n literature: [LiteratureNames.SecretSocieties, LiteratureNames.TheFailedFrontier, LiteratureNames.SyntheticMuscles],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 350000000,\n min: 200000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumSummitUniversity,\n requiredHackingSkill: {\n max: 475,\n min: 425,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumSummitUniversity,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"syscore\",\n moneyAvailable: {\n max: 600000000,\n min: 400000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 4,\n organizationName: LocationName.VolhavenSysCoreSecurities,\n requiredHackingSkill: {\n max: 650,\n min: 550,\n },\n serverGrowth: {\n max: 70,\n min: 60,\n },\n specialName: LocationName.VolhavenSysCoreSecurities,\n },\n {\n hackDifficulty: {\n max: 70,\n min: 60,\n },\n hostname: \"catalyst\",\n literature: [LiteratureNames.TensionsInTechRace],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 550000000,\n min: 300000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: \"Catalyst Ventures\",\n requiredHackingSkill: {\n max: 450,\n min: 400,\n },\n serverGrowth: {\n max: 55,\n min: 25,\n },\n },\n {\n hackDifficulty: {\n max: 45,\n min: 35,\n },\n hostname: \"the-hub\",\n maxRamExponent: {\n max: 6,\n min: 3,\n },\n moneyAvailable: {\n max: 200000000,\n min: 150000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"The Hub\",\n requiredHackingSkill: {\n max: 325,\n min: 275,\n },\n serverGrowth: {\n max: 55,\n min: 45,\n },\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: LocationName.VolhavenCompuTek.toLowerCase(),\n literature: [LiteratureNames.ManAndMachine],\n moneyAvailable: {\n max: 250000000,\n min: 220000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 3,\n organizationName: LocationName.VolhavenCompuTek,\n requiredHackingSkill: {\n max: 400,\n min: 300,\n },\n serverGrowth: {\n max: 65,\n min: 45,\n },\n specialName: LocationName.VolhavenCompuTek,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"netlink\",\n literature: [LiteratureNames.SimulatedReality],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: 275000000,\n networkLayer: 4,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumNetLinkTechnologies,\n requiredHackingSkill: {\n max: 425,\n min: 375,\n },\n serverGrowth: {\n max: 75,\n min: 45,\n },\n specialName: LocationName.AevumNetLinkTechnologies,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 35,\n },\n hostname: \"johnson-ortho\",\n moneyAvailable: {\n max: 85000000,\n min: 70000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"Johnson Orthopedics\",\n requiredHackingSkill: {\n max: 300,\n min: 250,\n },\n serverGrowth: {\n max: 65,\n min: 35,\n },\n },\n {\n hackDifficulty: 1,\n hostname: \"n00dles\",\n literature: [],\n maxRamExponent: 2,\n moneyAvailable: 70000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.NewTokyoNoodleBar,\n requiredHackingSkill: 1,\n serverGrowth: 3000,\n specialName: LocationName.NewTokyoNoodleBar,\n },\n {\n hackDifficulty: 10,\n hostname: LocationName.Sector12FoodNStuff.toLowerCase(),\n literature: [LiteratureNames.Sector12Crime],\n maxRamExponent: 4,\n moneyAvailable: 2000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.Sector12FoodNStuff,\n requiredHackingSkill: 1,\n serverGrowth: 5,\n specialName: LocationName.Sector12FoodNStuff,\n },\n {\n hackDifficulty: 10,\n hostname: \"sigma-cosmetics\",\n maxRamExponent: 4,\n moneyAvailable: 2300000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"Sigma Cosmetics\",\n requiredHackingSkill: 5,\n serverGrowth: 10,\n },\n {\n hackDifficulty: 15,\n hostname: \"joesguns\",\n maxRamExponent: 4,\n moneyAvailable: 2500000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.Sector12JoesGuns,\n requiredHackingSkill: 10,\n serverGrowth: 20,\n specialName: LocationName.Sector12JoesGuns,\n },\n {\n hackDifficulty: 25,\n hostname: \"zer0\",\n maxRamExponent: 5,\n moneyAvailable: 7500000,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: \"ZER0 Nightclub\",\n requiredHackingSkill: 75,\n serverGrowth: 40,\n },\n {\n hackDifficulty: 20,\n hostname: \"nectar-net\",\n maxRamExponent: 4,\n moneyAvailable: 2750000,\n networkLayer: 2,\n numOpenPortsRequired: 0,\n organizationName: \"Nectar Nightclub Network\",\n requiredHackingSkill: 20,\n serverGrowth: 25,\n },\n {\n hackDifficulty: 25,\n hostname: \"neo-net\",\n literature: [LiteratureNames.TheHiddenWorld],\n maxRamExponent: 5,\n moneyAvailable: 5000000,\n networkLayer: 3,\n numOpenPortsRequired: 1,\n organizationName: \"Neo Nightclub Network\",\n requiredHackingSkill: 50,\n serverGrowth: 25,\n },\n {\n hackDifficulty: 30,\n hostname: \"silver-helix\",\n literature: [LiteratureNames.NewTriads],\n maxRamExponent: 6,\n moneyAvailable: 45000000,\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: \"Silver Helix\",\n requiredHackingSkill: 150,\n serverGrowth: 30,\n },\n {\n hackDifficulty: 15,\n hostname: \"hong-fang-tea\",\n literature: [LiteratureNames.BrighterThanTheSun],\n maxRamExponent: 4,\n moneyAvailable: 3000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"HongFang Teahouse\",\n requiredHackingSkill: 30,\n serverGrowth: 20,\n },\n {\n hackDifficulty: 15,\n hostname: \"harakiri-sushi\",\n maxRamExponent: 4,\n moneyAvailable: 4000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"HaraKiri Sushi Bar Network\",\n requiredHackingSkill: 40,\n serverGrowth: 40,\n },\n {\n hackDifficulty: 20,\n hostname: \"phantasy\",\n maxRamExponent: 5,\n moneyAvailable: 24000000,\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: \"Phantasy Club\",\n requiredHackingSkill: 100,\n serverGrowth: 35,\n },\n {\n hackDifficulty: 15,\n hostname: \"max-hardware\",\n maxRamExponent: 5,\n moneyAvailable: 10000000,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: \"Max Hardware Store\",\n requiredHackingSkill: 80,\n serverGrowth: 30,\n },\n {\n hackDifficulty: {\n max: 35,\n min: 25,\n },\n hostname: \"omega-net\",\n literature: [LiteratureNames.TheNewGod],\n maxRamExponent: 5,\n moneyAvailable: {\n max: 70000000,\n min: 60000000,\n },\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: LocationName.IshimaOmegaSoftware,\n requiredHackingSkill: {\n max: 220,\n min: 180,\n },\n serverGrowth: {\n max: 40,\n min: 30,\n },\n specialName: LocationName.IshimaOmegaSoftware,\n },\n {\n hackDifficulty: {\n max: 45,\n min: 35,\n },\n hostname: \"crush-fitness\",\n moneyAvailable: {\n max: 60000000,\n min: 40000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"Crush Fitness\",\n requiredHackingSkill: {\n max: 275,\n min: 225,\n },\n serverGrowth: {\n max: 33,\n min: 27,\n },\n specialName: LocationName.AevumCrushFitnessGym,\n },\n {\n hackDifficulty: 30,\n hostname: \"iron-gym\",\n maxRamExponent: 5,\n moneyAvailable: 20000000,\n networkLayer: 1,\n numOpenPortsRequired: 1,\n organizationName: `${LocationName.Sector12IronGym} Network`,\n requiredHackingSkill: 100,\n serverGrowth: 20,\n specialName: LocationName.Sector12IronGym,\n },\n {\n hackDifficulty: {\n max: 55,\n min: 45,\n },\n hostname: \"millenium-fitness\",\n maxRamExponent: {\n max: 8,\n min: 4,\n },\n moneyAvailable: 250000000,\n networkLayer: 6,\n numOpenPortsRequired: 3,\n organizationName: \"Millenium Fitness Network\",\n requiredHackingSkill: {\n max: 525,\n min: 475,\n },\n serverGrowth: {\n max: 45,\n min: 25,\n },\n specialName: LocationName.VolhavenMilleniumFitnessGym,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"powerhouse-fitness\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: 900000000,\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: \"Powerhouse Fitness\",\n requiredHackingSkill: {\n max: 1100,\n min: 950,\n },\n serverGrowth: {\n max: 60,\n min: 50,\n },\n specialName: LocationName.Sector12PowerhouseGym,\n },\n {\n hackDifficulty: {\n max: 60,\n min: 40,\n },\n hostname: \"snap-fitness\",\n moneyAvailable: 450000000,\n networkLayer: 7,\n numOpenPortsRequired: 4,\n organizationName: \"Snap Fitness\",\n requiredHackingSkill: {\n max: 800,\n min: 675,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumSnapFitnessGym,\n },\n {\n hackDifficulty: 0,\n hostname: \"run4theh111z\",\n literature: [LiteratureNames.SimulatedReality, LiteratureNames.TheNewGod],\n maxRamExponent: {\n max: 9,\n min: 5,\n },\n moneyAvailable: 0,\n networkLayer: 11,\n numOpenPortsRequired: 4,\n organizationName: \"The Runners\",\n requiredHackingSkill: {\n max: 550,\n min: 505,\n },\n serverGrowth: 0,\n specialName: SpecialServers.BitRunnersServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"I.I.I.I\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: {\n max: 8,\n min: 4,\n },\n moneyAvailable: 0,\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: \"I.I.I.I\",\n requiredHackingSkill: {\n max: 365,\n min: 340,\n },\n serverGrowth: 0,\n specialName: SpecialServers.TheBlackHandServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"avmnite-02h\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: 0,\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: FactionNames.NiteSec,\n requiredHackingSkill: {\n max: 220,\n min: 202,\n },\n serverGrowth: 0,\n specialName: SpecialServers.NiteSecServer,\n },\n {\n hackDifficulty: 0,\n hostname: \".\",\n maxRamExponent: 4,\n moneyAvailable: 0,\n networkLayer: 13,\n numOpenPortsRequired: 4,\n organizationName: \".\",\n requiredHackingSkill: {\n max: 550,\n min: 505,\n },\n serverGrowth: 0,\n specialName: SpecialServers.TheDarkArmyServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"CSEC\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: 3,\n moneyAvailable: 0,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: FactionNames.CyberSec,\n requiredHackingSkill: {\n max: 60,\n min: 51,\n },\n serverGrowth: 0,\n specialName: SpecialServers.CyberSecServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"The-Cave\",\n literature: [LiteratureNames.AlphaOmega],\n moneyAvailable: 0,\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: \"Helios\",\n requiredHackingSkill: 925,\n serverGrowth: 0,\n specialName: SpecialServers.DaedalusServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"w0r1d_d43m0n\",\n moneyAvailable: 0,\n numOpenPortsRequired: 5,\n organizationName: \"w0r1d_d43m0n\",\n requiredHackingSkill: 3000,\n serverGrowth: 0,\n specialName: SpecialServers.WorldDaemon,\n },\n {\n hostname: SpecialServers.DarkWeb,\n moneyAvailable: 0,\n numOpenPortsRequired: 5,\n organizationName: SpecialServers.DarkWeb,\n requiredHackingSkill: 1,\n specialName: SpecialServers.DarkWeb,\n },\n];\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { Work, WorkType } from \"./Work\";\nimport { CONSTANTS } from \"../../../Constants\";\n\nconst infiltrateCycles = 60000 / CONSTANTS._idleSpeed;\n\nexport const isSleeveInfiltrateWork = (w: Work | null): w is SleeveInfiltrateWork =>\n w !== null && w.type === WorkType.INFILTRATE;\n\nexport class SleeveInfiltrateWork extends Work {\n cyclesWorked = 0;\n\n constructor() {\n super(WorkType.INFILTRATE);\n }\n\n cyclesNeeded(): number {\n return infiltrateCycles;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (!player.bladeburner) throw new Error(\"sleeve doing blade work without being a member\");\n this.cyclesWorked += cycles;\n if (this.cyclesWorked > this.cyclesNeeded()) {\n this.cyclesWorked -= this.cyclesNeeded();\n player.bladeburner.infiltrateSynthoidCommunities(player);\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveInfiltrateWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveInfiltrateWork {\n return Generic_fromJSON(SleeveInfiltrateWork, value.data);\n }\n}\n\nReviver.constructors.SleeveInfiltrateWork = SleeveInfiltrateWork;\n","import { CONSTANTS } from \"../Constants\";\nimport * as names from \"./data/companypositionnames\";\n\n/* tslint:disable:completed-docs */\n\nexport interface IConstructorParams {\n name: string;\n nextPosition: string | null;\n baseSalary: number;\n repMultiplier: number;\n\n reqdHacking?: number;\n reqdStrength?: number;\n reqdDefense?: number;\n reqdDexterity?: number;\n reqdAgility?: number;\n reqdCharisma?: number;\n reqdReputation?: number;\n\n hackingEffectiveness?: number;\n strengthEffectiveness?: number;\n defenseEffectiveness?: number;\n dexterityEffectiveness?: number;\n agilityEffectiveness?: number;\n charismaEffectiveness?: number;\n\n hackingExpGain?: number;\n strengthExpGain?: number;\n defenseExpGain?: number;\n dexterityExpGain?: number;\n agilityExpGain?: number;\n charismaExpGain?: number;\n}\n\nexport class CompanyPosition {\n /**\n * Position title\n */\n name: string;\n\n /**\n * Title of next position to be promoted to\n */\n nextPosition: string | null;\n\n /**\n * Base salary for this position ($ per 200ms game cycle)\n * Will be multiplier by a company-specific multiplier for final salary\n */\n baseSalary: number;\n\n /**\n * Reputation multiplier\n */\n repMultiplier: number;\n\n /**\n * Required stats to earn this position\n */\n requiredAgility: number;\n requiredCharisma: number;\n requiredDefense: number;\n requiredDexterity: number;\n requiredHacking: number;\n requiredStrength: number;\n\n /**\n * Required company reputation to earn this position\n */\n requiredReputation: number;\n\n /**\n * Effectiveness of each stat time for job performance\n */\n hackingEffectiveness: number;\n strengthEffectiveness: number;\n defenseEffectiveness: number;\n dexterityEffectiveness: number;\n agilityEffectiveness: number;\n charismaEffectiveness: number;\n\n /**\n * Experience gain for performing job (per 200ms game cycle)\n */\n hackingExpGain: number;\n strengthExpGain: number;\n defenseExpGain: number;\n dexterityExpGain: number;\n agilityExpGain: number;\n charismaExpGain: number;\n\n constructor(p: IConstructorParams) {\n this.name = p.name;\n this.nextPosition = p.nextPosition;\n this.baseSalary = p.baseSalary;\n this.repMultiplier = p.repMultiplier;\n\n this.requiredHacking = p.reqdHacking != null ? p.reqdHacking : 0;\n this.requiredStrength = p.reqdStrength != null ? p.reqdStrength : 0;\n this.requiredDefense = p.reqdDefense != null ? p.reqdDefense : 0;\n this.requiredDexterity = p.reqdDexterity != null ? p.reqdDexterity : 0;\n this.requiredAgility = p.reqdAgility != null ? p.reqdAgility : 0;\n this.requiredCharisma = p.reqdCharisma != null ? p.reqdCharisma : 0;\n this.requiredReputation = p.reqdReputation != null ? p.reqdReputation : 0;\n\n this.hackingEffectiveness = p.hackingEffectiveness != null ? p.hackingEffectiveness : 0;\n this.strengthEffectiveness = p.strengthEffectiveness != null ? p.strengthEffectiveness : 0;\n this.defenseEffectiveness = p.defenseEffectiveness != null ? p.defenseEffectiveness : 0;\n this.dexterityEffectiveness = p.dexterityEffectiveness != null ? p.dexterityEffectiveness : 0;\n this.agilityEffectiveness = p.agilityEffectiveness != null ? p.agilityEffectiveness : 0;\n this.charismaEffectiveness = p.charismaEffectiveness != null ? p.charismaEffectiveness : 0;\n\n if (\n Math.round(\n this.hackingEffectiveness +\n this.strengthEffectiveness +\n this.defenseEffectiveness +\n this.dexterityEffectiveness +\n this.agilityEffectiveness +\n this.charismaEffectiveness,\n ) !== 100\n ) {\n console.error(`CompanyPosition ${this.name} parameters do not sum to 100`);\n }\n\n this.hackingExpGain = p.hackingExpGain != null ? p.hackingExpGain : 0;\n this.strengthExpGain = p.strengthExpGain != null ? p.strengthExpGain : 0;\n this.defenseExpGain = p.defenseExpGain != null ? p.defenseExpGain : 0;\n this.dexterityExpGain = p.dexterityExpGain != null ? p.dexterityExpGain : 0;\n this.agilityExpGain = p.agilityExpGain != null ? p.agilityExpGain : 0;\n this.charismaExpGain = p.charismaExpGain != null ? p.charismaExpGain : 0;\n }\n\n calculateJobPerformance(hack: number, str: number, def: number, dex: number, agi: number, cha: number): number {\n const hackRatio: number = (this.hackingEffectiveness * hack) / CONSTANTS.MaxSkillLevel;\n const strRatio: number = (this.strengthEffectiveness * str) / CONSTANTS.MaxSkillLevel;\n const defRatio: number = (this.defenseEffectiveness * def) / CONSTANTS.MaxSkillLevel;\n const dexRatio: number = (this.dexterityEffectiveness * dex) / CONSTANTS.MaxSkillLevel;\n const agiRatio: number = (this.agilityEffectiveness * agi) / CONSTANTS.MaxSkillLevel;\n const chaRatio: number = (this.charismaEffectiveness * cha) / CONSTANTS.MaxSkillLevel;\n\n let reputationGain: number =\n (this.repMultiplier * (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio)) / 100;\n if (isNaN(reputationGain)) {\n console.error(\"Company reputation gain calculated to be NaN\");\n reputationGain = 0;\n }\n\n return reputationGain;\n }\n\n isSoftwareJob(): boolean {\n return names.SoftwareCompanyPositions.includes(this.name);\n }\n\n isITJob(): boolean {\n return names.ITCompanyPositions.includes(this.name);\n }\n\n isSecurityEngineerJob(): boolean {\n return names.SecurityEngineerCompanyPositions.includes(this.name);\n }\n\n isNetworkEngineerJob(): boolean {\n return names.NetworkEngineerCompanyPositions.includes(this.name);\n }\n\n isBusinessJob(): boolean {\n return names.BusinessCompanyPositions.includes(this.name);\n }\n\n isSecurityJob(): boolean {\n return names.SecurityCompanyPositions.includes(this.name);\n }\n\n isAgentJob(): boolean {\n return names.AgentCompanyPositions.includes(this.name);\n }\n\n isSoftwareConsultantJob(): boolean {\n return names.SoftwareConsultantCompanyPositions.includes(this.name);\n }\n\n isBusinessConsultantJob(): boolean {\n return names.BusinessConsultantCompanyPositions.includes(this.name);\n }\n\n isPartTimeJob(): boolean {\n return names.PartTimeCompanyPositions.includes(this.name);\n }\n}\n","/**\n * Implementation of the mechanisms that allow the player to affect the\n * Stock Market\n */\nimport { Stock } from \"./Stock\";\nimport { StockMarket } from \"./StockMarket\";\n\nimport { Company } from \"../Company/Company\";\nimport { Server } from \"../Server/Server\";\n\n// Change in second-order forecast due to hacks/grows\nexport const forecastForecastChangeFromHack = 0.1;\n\n// Change in second-order forecast due to company work\nexport const forecastForecastChangeFromCompanyWork = 0.001;\n\n/**\n * Potentially decreases a stock's second-order forecast when its corresponding\n * server is hacked. The chance of the hack decreasing the stock's second-order\n * forecast is dependent on what percentage of the server's money is hacked\n * @param {Server} server - Server being hack()ed\n * @param {number} moneyHacked - Amount of money stolen from the server\n */\nexport function influenceStockThroughServerHack(server: Server, moneyHacked: number): void {\n const orgName = server.organizationName;\n let stock: Stock | null = null;\n if (typeof orgName === \"string\" && orgName !== \"\") {\n stock = StockMarket[orgName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n const percTotalMoneyHacked = moneyHacked / server.moneyMax;\n if (Math.random() < percTotalMoneyHacked) {\n stock.changeForecastForecast(stock.otlkMagForecast - forecastForecastChangeFromHack);\n }\n}\n\n/**\n * Potentially increases a stock's second-order forecast when its corresponding\n * server is grown (grow()). The chance of the grow() to increase the stock's\n * second-order forecast is dependent on how much money is added to the server\n * @param {Server} server - Server being grow()n\n * @param {number} moneyHacked - Amount of money added to the server\n */\nexport function influenceStockThroughServerGrow(server: Server, moneyGrown: number): void {\n const orgName = server.organizationName;\n let stock: Stock | null = null;\n if (typeof orgName === \"string\" && orgName !== \"\") {\n stock = StockMarket[orgName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n const percTotalMoneyGrown = moneyGrown / server.moneyMax;\n if (Math.random() < percTotalMoneyGrown) {\n stock.changeForecastForecast(stock.otlkMagForecast + forecastForecastChangeFromHack);\n }\n}\n\n/**\n * Potentially increases a stock's second-order forecast when the player works for\n * its corresponding company.\n * @param {Company} company - Company being worked for\n * @param {number} performanceMult - Effectiveness of player's work. Affects influence\n * @param {number} cyclesOfWork - # game cycles of work being processed\n */\nexport function influenceStockThroughCompanyWork(\n company: Company,\n performanceMult: number,\n cyclesOfWork: number,\n): void {\n const compName = company.name;\n let stock: Stock | null = null;\n if (typeof compName === \"string\" && compName !== \"\") {\n stock = StockMarket[compName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n if (Math.random() < 0.002 * cyclesOfWork) {\n const change = forecastForecastChangeFromCompanyWork * performanceMult;\n stock.changeForecastForecast(stock.otlkMagForecast + change);\n }\n}\n","export function checkEnum(\n enumVariable: { [key in T]: TEnumValue },\n value: string,\n): value is TEnumValue {\n return Object.values(enumVariable).includes(value);\n}\n","import React from \"react\";\nimport { SourceFile } from \"./SourceFile\";\nimport { IMap } from \"../types\";\n\nexport const SourceFiles: IMap = {};\n\nSourceFiles[\"SourceFile1\"] = new SourceFile(\n 1,\n (\n <>\n This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the\n player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nSourceFiles[\"SourceFile2\"] = new SourceFile(\n 2,\n (\n <>\n This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also\n increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nSourceFiles[\"SourceFile3\"] = new SourceFile(\n 3,\n (\n <>\n This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this\n mechanic). This Source-File also increases your charisma and company salary multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile4\"] = new SourceFile(\n 4,\n (\n <>\n This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this\n Source-File reduces the RAM cost of Singularity functions.\n >\n ),\n);\nSourceFiles[\"SourceFile5\"] = new SourceFile(\n 5,\n (\n <>\n This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent and\n persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other\n stats. Higher Intelligence levels will boost your production for many actions in the game. In addition, this\n Source-File will unlock:\n \n
\n
\n The getBitNodeMultipliers() Netscript function\n
\n
Permanent access to Formulas.exe
\n
\n Access to BitNode multiplier information on the Stats page\n
\n
\n It will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile6\"] = new SourceFile(\n 6,\n (\n <>\n This Source-File allows you to access the NSA's Bladeburner Division in other BitNodes. In addition, this\n Source-File will raise both the level and experience gain rate of all your combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile7\"] = new SourceFile(\n 7,\n (\n <>\n This Source-File allows you to access the Bladeburner Netscript API in other BitNodes. In addition, this\n Source-File will increase all of your Bladeburner multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile8\"] = new SourceFile(\n 8,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nSourceFiles[\"SourceFile9\"] = new SourceFile(\n 9,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile10\"] = new SourceFile(\n 10,\n (\n <>\n This Source-File unlocks Sleeve technology, and the Grafting API in other BitNodes. Each level of this Source-File\n also grants you a Duplicate Sleeve\n >\n ),\n);\nSourceFiles[\"SourceFile11\"] = new SourceFile(\n 11,\n (\n <>\n This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at\n that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the player's\n company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nSourceFiles[\"SourceFile12\"] = new SourceFile(\n 12,\n <>This Source-File lets the player start with Neuroflux Governor equal to the level of this Source-File.>,\n);\nSourceFiles[\"SourceFile13\"] = new SourceFile(\n 13,\n <>Each level of this Source-File increases the size of Stanek's Gift.>,\n);\n","import React from \"react\";\n\nimport { IBladeburner } from \"../IBladeburner\";\nimport { BlackOperation } from \"../BlackOperation\";\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\n\ninterface IProps {\n bladeburner: IBladeburner;\n type: number;\n name: string;\n rerender: () => void;\n}\nexport function StartButton(props: IProps): React.ReactElement {\n const player = use.Player();\n const action = props.bladeburner.getActionObject({ name: props.name, type: props.type });\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + props.name);\n }\n let disabled = false;\n if (action.count < 1) {\n disabled = true;\n }\n if (props.name === \"Raid\" && props.bladeburner.getCurrentCity().comms === 0) {\n disabled = true;\n }\n\n if (action instanceof BlackOperation && props.bladeburner.rank < action.reqdRank) {\n disabled = true;\n }\n function onStart(): void {\n if (disabled) return;\n props.bladeburner.action.type = props.type;\n props.bladeburner.action.name = props.name;\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true)) player.finishWork(true);\n props.bladeburner.startAction(player, props.bladeburner.action);\n props.rerender();\n }\n\n return (\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\n\nfunction replace(str: string, i: number, char: string): string {\n return str.substring(0, i) + char + str.substring(i + 1);\n}\n\ninterface IProps {\n content: string;\n}\n\nfunction randomize(char: string): string {\n const randFrom = (str: string): string => str[Math.floor(Math.random() * str.length)];\n const classes = [\"abcdefghijklmnopqrstuvwxyz\", \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", \"1234567890\", \" _\", \"()[]{}<>\"];\n const other = `!@#$%^&*()_+|\\\\';\"/.,?\\`~`;\n\n for (const c of classes) {\n if (c.includes(char)) return randFrom(c);\n }\n\n return randFrom(other);\n}\n\nexport function CorruptableText(props: IProps): JSX.Element {\n const [content, setContent] = useState(props.content);\n\n useEffect(() => {\n let counter = 5;\n const timers: number[] = [];\n const intervalId = setInterval(() => {\n counter--;\n if (counter > 0) return;\n counter = Math.random() * 5;\n const index = Math.random() * content.length;\n const letter = content.charAt(index);\n setContent((content) => replace(content, index, randomize(letter)));\n timers.push(\n window.setTimeout(() => {\n setContent((content) => replace(content, index, letter));\n }, 500),\n );\n }, 20);\n\n return () => {\n clearInterval(intervalId);\n timers.forEach((timerId) => clearTimeout(timerId));\n };\n }, []);\n\n return {content};\n}\n","import React from \"react\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { GraftableAugmentations } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Work, WorkType } from \"./Work\";\nimport { graftingIntBonus } from \"../PersonObjects/Grafting/GraftingHelpers\";\nimport { applyAugmentation } from \"../Augmentation/AugmentationHelpers\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { GraftableAugmentation } from \"../PersonObjects/Grafting/GraftableAugmentation\";\nimport { StaticAugmentations } from \"../Augmentation/StaticAugmentations\";\n\nexport const isGraftingWork = (w: Work | null): w is GraftingWork => w !== null && w.type === WorkType.GRAFTING;\n\ninterface GraftingWorkParams {\n augmentation: string;\n player: IPlayer;\n singularity: boolean;\n}\n\nexport class GraftingWork extends Work {\n augmentation: string;\n unitCompleted: number;\n\n constructor(params?: GraftingWorkParams) {\n super(WorkType.GRAFTING, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.augmentation = params?.augmentation ?? AugmentationNames.Targeting1;\n const gAugs = GraftableAugmentations();\n if (params?.player) params.player.loseMoney(gAugs[this.augmentation].cost, \"augmentations\");\n }\n\n unitNeeded(): number {\n return new GraftableAugmentation(StaticAugmentations[this.augmentation]).time;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n\n this.cyclesWorked += cycles;\n this.unitCompleted += CONSTANTS._idleSpeed * cycles * graftingIntBonus(player) * focusBonus;\n\n return this.unitCompleted >= this.unitNeeded();\n }\n\n finish(player: IPlayer, cancelled: boolean): void {\n const augName = this.augmentation;\n if (!cancelled) {\n applyAugmentation({ name: augName, level: 1 });\n\n if (!player.hasAugmentation(AugmentationNames.CongruityImplant)) {\n player.entropy += 1;\n player.applyEntropy(player.entropy);\n }\n\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You've finished grafting {augName}. \n The augmentation has been applied to your body{\" \"}\n {player.hasAugmentation(AugmentationNames.CongruityImplant) ? \".\" : \", but you feel a bit off.\"}\n >,\n );\n }\n } else if (cancelled && !this.singularity) {\n dialogBoxCreate(\n <>\n You cancelled the grafting of {augName}.\n \n Your money was not returned to you.\n >,\n );\n }\n\n // Intelligence gain\n if (!cancelled) {\n player.gainIntelligenceExp(\n (CONSTANTS.IntelligenceGraftBaseExpGain * this.cyclesWorked * CONSTANTS._idleSpeed) / 10000,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n augmentation: this.augmentation,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"GraftingWork\", this);\n }\n\n /**\n * Initiatizes a GraftingWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): GraftingWork {\n return Generic_fromJSON(GraftingWork, value.data);\n }\n}\n\nReviver.constructors.GraftingWork = GraftingWork;\n","import { format } from \"date-fns\";\n\nexport function formatTime(fmt: string): string {\n try {\n return format(new Date(), fmt);\n } catch (e: unknown) {\n return \"format error\";\n }\n}\n","import React from \"react\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { use } from \"../ui/Context\";\nimport { Option } from \"./ui/Option\";\nimport { Typography } from \"@mui/material\";\n\ninterface FactionInfoParams {\n infoText?: JSX.Element;\n enemies?: string[];\n offerHackingWork?: boolean;\n offerFieldWork?: boolean;\n offerSecurityWork?: boolean;\n special?: boolean;\n keepOnInstall?: boolean;\n assignment?: () => React.ReactElement;\n}\n\n/**\n * Contains the \"information\" property for all the Factions, which is just a description of each faction\n */\nexport class FactionInfo {\n /**\n * The names of all other factions considered to be enemies to this faction.\n */\n enemies: string[];\n\n /**\n * The descriptive text to show on the faction's page.\n */\n infoText: JSX.Element;\n\n /**\n * A flag indicating if the faction supports field work to earn reputation.\n */\n offerFieldWork: boolean;\n\n /**\n * A flag indicating if the faction supports hacking work to earn reputation.\n */\n offerHackingWork: boolean;\n\n /**\n * A flag indicating if the faction supports security work to earn reputation.\n */\n offerSecurityWork: boolean;\n\n /**\n * Keep faction on install.\n */\n keep: boolean;\n\n /**\n * Special faction\n */\n special: boolean;\n\n /**\n * The data to display on the faction screen.\n */\n assignment?: () => React.ReactElement;\n\n constructor(params: FactionInfoParams) {\n this.infoText = params.infoText ?? <>>;\n this.enemies = params.enemies ?? [];\n this.offerHackingWork = params.offerHackingWork ?? false;\n this.offerFieldWork = params.offerFieldWork ?? false;\n this.offerSecurityWork = params.offerSecurityWork ?? false;\n\n this.keep = params.keepOnInstall ?? false;\n this.special = params.special ?? false;\n this.assignment = params.assignment;\n }\n\n offersWork(): boolean {\n return this.offerFieldWork || this.offerHackingWork || this.offerSecurityWork;\n }\n}\n\n/**\n * A map of all factions and associated info to them.\n */\n// tslint:disable-next-line:variable-name\nexport const FactionInfos: IMap = {\n // Endgame\n [FactionNames.Illuminati]: new FactionInfo({\n infoText: (\n <>\n Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. And\n from this chaos, we are the invisible hand that guides them to order.{\" \"}\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Daedalus]: new FactionInfo({\n infoText: <>Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheCovenant]: new FactionInfo({\n infoText: (\n <>\n Surrender yourself. Give up your empty individuality to become part of something great, something eternal.\n Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.\n \n \n Only then can you discover immortality.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // Megacorporations, each forms its own faction\n [FactionNames.ECorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.ECorp}'s mission is simple: to connect the world of today with the technology of tomorrow. With\n our wide range of Internet-related software and commercial hardware, {FactionNames.ECorp} makes the world's\n information universally accessible.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.MegaCorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.MegaCorp} does what no other dares to do. We imagine. We create. We invent. We create what others\n have never even dreamed of. Our work fills the world's needs for food, water, power, and transportation on an\n unprecedented scale, in ways that no other company can.\n \n \n In our labs and factories and on the ground with customers, {FactionNames.MegaCorp} is ushering in a new era for\n the world.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BachmanAssociates]: new FactionInfo({\n infoText: (\n <>\n Where Law and Business meet - that's where we are.\n \n \n Legal Insight - Business Instinct - Innovative Experience.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BladeIndustries]: new FactionInfo({\n infoText: <>Augmentation is Salvation.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.NWO]: new FactionInfo({\n infoText: (\n <>\n Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given\n purpose and direction in life. That is why they created God. And that is why they created civilization - not\n because of willingness, but because of a need to be incorporated into higher orders of structure and meaning.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.ClarkeIncorporated]: new FactionInfo({\n infoText: <>The Power of the Genome - Unlocked.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.OmniTekIncorporated]: new FactionInfo({\n infoText: <>Simply put, our mission is to design and build robots that make a difference.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.FourSigma]: new FactionInfo({\n infoText: (\n <>\n The scientific method is the best way to approach investing. Big strategies backed up with big data. Driven by\n deep learning and innovative ideas. And improved by iteration. That's {FactionNames.FourSigma}.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.KuaiGongInternational]: new FactionInfo({\n infoText: <>Dream big. Work hard. Make history.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Other Corporations\n [FactionNames.FulcrumSecretTechnologies]: new FactionInfo({\n infoText: (\n <>\n The human organism has an innate desire to worship. That is why they created gods. If there were no gods, it\n would be necessary to create them. And now we can.\n >\n ),\n offerHackingWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Hacker groups\n [FactionNames.BitRunners]: new FactionInfo({\n infoText: (\n <>\n Our entire lives are controlled by bits. All of our actions, our thoughts, our personal information. It's all\n transformed into bits, stored in bits, communicated through bits. It’s impossible for any person to move, to\n live, to operate at any level without the use of bits. And when a person moves, lives, and operates, they leave\n behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be\n reconstructed. Transformed. Used.\n \n \n Those who run the bits, run the world.\n >\n ),\n offerHackingWork: true,\n }),\n\n [FactionNames.TheBlackHand]: new FactionInfo({\n infoText: (\n <>\n The world, so afraid of strong government, now has no government. Only power - Digital power. Financial power.\n Technological power. And those at the top rule with an invisible hand. They built a society where the rich get\n richer, and everyone else suffers.\n \n \n So much pain. So many lives. Their darkness must end.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // prettier-ignore\n [FactionNames.NiteSec]: new FactionInfo({\n infoText:(<>\n {\" __..__ \"} \n {\" _.nITESECNIt. \"} \n {\" .-'NITESECNITESEc. \"} \n {\" .' NITESECNITESECn \"} \n {\" / NITESECNITESEC; \"} \n {\" : :NITESECNITESEC; \"} \n {\" ; $ NITESECNITESECN \"} \n {\" : _, ,N'ITESECNITESEC \"} \n {\" : .+^^`, : `NITESECNIT \"} \n {\" ) /), `-,-=,NITESECNI \"} \n {\" / ^ ,-;|NITESECN; \"} \n {\" / _.' '-';NITESECN \"} \n {\" ( , ,-''`^NITE' \"} \n {\" )` :`. .' \"} \n {\" )-- ; `- / \"} \n {\" ' _.-' : \"} \n {\" ( _.-' . \"} \n {\" ------. \"} \n {\" . \"} \n {\" _.nIt \"} \n {\" _.nITESECNi \"} \n {\" nITESECNIT^' \"} \n {\" NITE^' ___ \"} \n {\" / .gP''''Tp. \"} \n {\" : d' . `b \"} \n {\" ; d' o `b ; \"} \n {\" / d; `b| \"} \n {\" /, $; @ `: \"} \n {\" /' $/ ; \"} \n {\" .' $/b o | \"} \n {\" .' d$/$; : \"} \n {\" / .d/$/$; , ; \"} \n {\" d .dNITESEC $ | \"} \n {\" :bp.__.gNITESEC/$ :$ ; \"} \n {\" NITESECNITESECNIT /$b : \"} >),\n offerHackingWork: true,\n offerFieldWork: false,\n offerSecurityWork: false,\n special: false,\n keepOnInstall: false,\n }),\n\n // City factions, essentially governments\n [FactionNames.Aevum]: new FactionInfo({\n infoText: <>The Silicon City.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Chongqing]: new FactionInfo({\n infoText: <>Serve the People.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Ishima]: new FactionInfo({\n infoText: <>The East Asian Order of the Future.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.NewTokyo]: new FactionInfo({\n infoText: <>Asia's World City.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Sector12]: new FactionInfo({\n infoText: <>The City of the Future.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Volhaven]: new FactionInfo({\n infoText: <>Benefit, Honor, and Glory.>,\n enemies: [\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n ],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Criminal Organizations/Gangs\n [FactionNames.SpeakersForTheDead]: new FactionInfo({\n infoText: <>It is better to reign in Hell than to serve in Heaven.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.TheDarkArmy]: new FactionInfo({\n infoText: <>The World doesn't care about right or wrong. It only cares about power.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheSyndicate]: new FactionInfo({\n infoText: <>Honor holds you back.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.Silhouette]: new FactionInfo({\n infoText: (\n <>\n Corporations have filled the void of power left behind by the collapse of Western government. The issue is\n they've become so big that you don't know who they're working for. And if you're employed at one of these\n corporations, you don't even know who you're working for.\n \n \n That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Tetrads]: new FactionInfo({\n infoText: <>Following the mandate of Heaven and carrying out the way.>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.SlumSnakes]: new FactionInfo({\n infoText: <>{FactionNames.SlumSnakes} rule!>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Earlygame factions - factions the player will prestige with early on that don't belong in other categories.\n [FactionNames.Netburners]: new FactionInfo({\n infoText: <>{\"~~//*>H4CK||3T 8URN3R5**>?>\\\\~~\"}>,\n offerHackingWork: true,\n }),\n\n [FactionNames.TianDiHui]: new FactionInfo({\n infoText: <>Obey Heaven and work righteously.>,\n offerHackingWork: true,\n\n offerSecurityWork: true,\n }),\n\n [FactionNames.CyberSec]: new FactionInfo({\n infoText: (\n <>\n The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy\n that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of\n total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse.\n >\n ),\n offerHackingWork: true,\n }),\n\n // Special Factions\n [FactionNames.Bladeburners]: new FactionInfo({\n infoText: (\n <>\n It's too bad they won't live. But then again, who does?\n \n \n Note that for this faction, reputation can only be gained through {FactionNames.Bladeburners} actions.{\" \"}\n Completing {FactionNames.Bladeburners} contracts/operations will increase your reputation.\n >\n ),\n\n special: true,\n assignment: (): React.ReactElement => {\n const router = use.Router();\n return (\n