{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Player.ts","webpack:///./src/Netscript/NetscriptHelpers.ts","webpack:///./src/Faction/data/FactionNames.ts","webpack:///./src/Settings/Settings.ts","webpack:///./src/ui/numeralFormat.ts","webpack:///./src/Locations/data/LocationNames.ts","webpack:///./src/Augmentation/data/AugmentationNames.ts","webpack:///./src/Constants.ts","webpack:///./src/utils/JSONReviver.ts","webpack:///./src/ui/React/DialogBox.tsx","webpack:///./src/Locations/data/CityNames.ts","webpack:///./src/BitNode/BitNodeMultipliers.ts","webpack:///./src/ui/React/Money.tsx","webpack:///./src/Server/AllServers.ts","webpack:///./src/ui/Context.ts","webpack:///./src/ui/Router.ts","webpack:///./src/utils/StringHelperFunctions.ts","webpack:///./src/Faction/Factions.ts","webpack:///./src/utils/helpers/keyCodes.ts","webpack:///./src/Company/data/companypositionnames.ts","webpack:///./src/utils/helpers/getRandomInt.ts","webpack:///./src/Corporation/data/Constants.ts","webpack:///./src/Augmentation/Augmentation.tsx","webpack:///./src/ui/React/Modal.tsx","webpack:///./src/Hacknet/data/Constants.ts","webpack:///./src/InteractiveTutorial.ts","webpack:///./src/Corporation/EmployeePositions.ts","webpack:///./src/Bladeburner/data/ActionTypes.ts","webpack:///./src/Server/Server.ts","webpack:///./src/Corporation/ui/Context.ts","webpack:///./src/Corporation/IndustryData.tsx","webpack:///./src/Locations/LocationTypeEnum.ts","webpack:///./src/Programs/Programs.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/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/Faction/FactionHelpers.tsx","webpack:///./src/SaveObject.tsx","webpack:///./src/PersonObjects/Sleeve/Work/Work.ts","webpack:///./src/CotMG/Helper.tsx","webpack:///./src/Company/CompanyPositions.ts","webpack:///./src/Work/data/FactionWorkType.ts","webpack:///./src/Exploits/Exploit.ts","webpack:///./src/Augmentation/AugmentationHelpers.tsx","webpack:///./src/ui/React/MoneyRate.tsx","webpack:///./src/CodingContracts.ts","webpack:///./src/StockMarket/data/OrderTypes.ts","webpack:///./src/CotMG/Fragment.ts","webpack:///./src/ScriptEditor/ui/themes.ts","webpack:///./src/utils/EventEmitter.ts","webpack:///./src/DevMenu/ui/Adjuster.tsx","webpack:///./src/ui/React/OptionSwitch.tsx","webpack:///./src/Infiltration/utils.ts","webpack:///./src/Bladeburner/BlackOperation.ts","webpack:///./src/utils/WorkType.ts","webpack:///./src/Corporation/data/BaseResearchTree.ts","webpack:///./src/Server/ServerHelpers.ts","webpack:///./src/Corporation/ui/MoneyCost.tsx","webpack:///./src/Bladeburner/data/SkillNames.ts","webpack:///./src/ui/React/Reputation.tsx","webpack:///./src/Gang/ui/Context.ts","webpack:///./src/Netscript/killWorkerScript.ts","webpack:///./src/BitNode/BitNode.tsx","webpack:///./src/Work/Work.ts","webpack:///./src/StockMarket/Stock.ts","webpack:///./src/Netscript/ScriptDeath.ts","webpack:///./src/Locations/Cities.ts","webpack:///./src/Hacknet/formulas/HacknetServers.ts","webpack:///./src/utils/helpers/isString.ts","webpack:///./src/Alias.ts","webpack:///./src/Locations/Locations.ts","webpack:///./src/ui/React/LogBoxManager.tsx","webpack:///./src/PersonObjects/Multipliers.ts","webpack:///./src/Literature/Literature.ts","webpack:///./src/ui/React/CopyableText.tsx","webpack:///./src/Themes/ui/Theme.tsx","webpack:///./src/Settings/SettingEnums.ts","webpack:///./src/Corporation/MaterialSizes.ts","webpack:///./src/PersonObjects/formulas/skill.ts","webpack:///./src/Gang/data/upgrades.ts","webpack:///./src/NetscriptWorker.ts","webpack:///./src/Gang/data/Constants.ts","webpack:///./src/StockMarket/BuyingAndSelling.tsx","webpack:///./src/Faction/Faction.ts","webpack:///./src/Netscript/WorkerScripts.ts","webpack:///./src/Corporation/Material.ts","webpack:///./src/Gang/formulas/formulas.ts","webpack:///./src/RemoteFileAPI/MessageDefinitions.ts","webpack:///./src/Infiltration/ui/GameTimer.tsx","webpack:///./src/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/Corporation/Warehouse.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/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/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts","webpack:///./src/ui/React/StatsTable.tsx","webpack:///./src/DarkWeb/DarkWebItems.ts","webpack:///./src/Bladeburner/GeneralActions.tsx","webpack:///./src/Casino/CardDeck/Card.ts","webpack:///./src/Bladeburner/ActionIdentifier.ts","webpack:///./src/SourceFile/SourceFile.ts","webpack:///./src/ui/React/AlertManager.tsx","webpack:///./src/Script/ScriptHelpers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveCompanyWork.ts","webpack:///./src/Achievements/Achievements.ts","webpack:///./src/PersonObjects/formulas/intelligence.ts","webpack:///./src/Company/Company.ts","webpack:///./src/utils/helpers/arrayToString.ts","webpack:///./src/MathJaxWrapper.tsx","webpack:///./src/utils/helpers/exceptionAlert.ts","webpack:///./src/Corporation/data/CorporationUnlockUpgrades.ts","webpack:///./src/PersonObjects/Grafting/GraftingHelpers.ts","webpack:///./src/Bladeburner/BlackOperations.tsx","webpack:///./src/CotMG/ActiveFragment.ts","webpack:///./src/GameOptions/GameOptionsTab.ts","webpack:///./src/Crime/Crime.ts","webpack:///./src/ExportBonus.tsx","webpack:///./src/ui/React/HashRate.tsx","webpack:///./src/Message/Message.ts","webpack:///./src/Locations/ui/ApplyToJobButton.tsx","webpack:///./src/Corporation/ResearchMap.ts","webpack:///./src/Netscript/WorkerScriptStartStopEventEmitter.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts","webpack:///./src/Electron.tsx","webpack:///./src/Work/CreateProgramWork.ts","webpack:///./src/ui/React/CharacterOverview.tsx","webpack:///./src/utils/helpers/addOffset.ts","webpack:///./src/DarkWeb/DarkWebItem.ts","webpack:///./src/Augmentation/PlayerOwnedAugmentation.ts","webpack:///./src/Casino/RNG.ts","webpack:///./src/Work/CompanyWork.tsx","webpack:///./src/GameOptions/ui/GameOptionsPage.tsx","webpack:///./src/ui/React/Favor.tsx","webpack:///./src/Terminal/TerminalEvents.ts","webpack:///./src/StockMarket/OrderProcessing.tsx","webpack:///./src/Themes/Themes.ts","webpack:///./src/utils/IPAddress.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveSupportWork.ts","webpack:///./src/Netscript/RecentScripts.ts","webpack:///./src/db.tsx","webpack:///./src/Message/MessageHelpers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveClassWork.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts","webpack:///./src/utils/helpers/formatTime.ts","webpack:///./src/Faction/formulas/favor.ts","webpack:///./src/CodingContractGenerator.ts","webpack:///./src/Corporation/Corporation.tsx","webpack:///./src/ui/React/ReputationRate.tsx","webpack:///./src/Faction/ui/Option.tsx","webpack:///./src/Bladeburner/Operation.ts","webpack:///./src/Augmentation/data/AugmentationCreator.tsx","webpack:///./src/Server/data/servers.ts","webpack:///./src/PersonObjects/Sleeve/Work/SleeveInfiltrateWork.ts","webpack:///./src/Company/CompanyPosition.ts","webpack:///./src/StockMarket/PlayerInfluencing.ts","webpack:///./src/utils/helpers/checkEnum.ts","webpack:///./src/SourceFile/SourceFiles.tsx","webpack:///./src/Bladeburner/ui/StartButton.tsx","webpack:///./src/ui/React/CorruptableText.tsx","webpack:///./src/Work/GraftingWork.tsx","webpack:///./src/Faction/FactionInfo.tsx","webpack:///./src/Work/formulas/Faction.ts","webpack:///./src/Hacknet/HashManager.ts","webpack:///./src/ui/InteractiveTutorial/ITutorialEvents.ts","webpack:///./src/Crime/CrimeHelpers.ts","webpack:///./src/Corporation/data/CorporationUpgrades.ts","webpack:///./src/Corporation/OfficeSpace.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/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/Work/formulas/Crime.ts","webpack:///./src/ui/Apr1.tsx","webpack:///./src/Literature/LiteratureHelpers.ts","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/DarkWeb/DarkWeb.tsx","webpack:///./src/Infiltration/formulas/game.ts","webpack:///./src/Terminal/Parser.ts","webpack:///./src/ui/React/CinematicText.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveCovenantPurchases.tsx","webpack:///./src/Script/RamCalculations.ts","webpack:///./src/utils/helpers/roundToTwo.ts","webpack:///./src/Netscript/Pid.ts","webpack:///./src/Gang/Gang.ts","webpack:///./src/Faction/formulas/donation.ts","webpack:///./src/RemoteFileAPI/RemoteFileAPI.ts","webpack:///./src/Company/GetJobRequirementText.ts","webpack:///./src/Terminal/HelpText.ts","webpack:///./src/utils/ErrorHelper.ts","webpack:///./src/utils/helpers/getRandomByte.ts","webpack:///./src/Bladeburner/data/Growths.ts","webpack:///./src/Locations/createCityMap.ts","webpack:///./src/Casino/CardDeck/Hand.ts","webpack:///./src/StockMarket/ui/StockTickerTxButton.tsx","webpack:///./src/CotMG/ui/DummyGrid.tsx","webpack:///./src/Server/BaseServer.ts","webpack:///./src/ui/React/CodingContractModal.tsx","webpack:///./src/BitNode/ui/BitFlumeModal.tsx","webpack:///./src/PersonObjects/Player/PlayerObject.ts","webpack:///./src/Faction/ui/InvitationModal.tsx","webpack:///./src/ThirdParty/JSInterpreter.js","webpack:///./src/NetscriptFunctions.ts","webpack:///./src/Server/formulas/grow.ts","webpack:///./src/Gang/GangMember.ts","webpack:///./src/NetscriptFunctions/toNative.ts","webpack:///./src/ui/React/ANSIITypography.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveHelpers.ts","webpack:///./src/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/Contracts.tsx","webpack:///./src/Bladeburner/data/Icons.tsx","webpack:///./src/Bladeburner/ui/ActionLevel.tsx","webpack:///./src/Bladeburner/ui/Autolevel.tsx","webpack:///./src/Bladeburner/ui/TeamSizeButton.tsx","webpack:///./src/PersonObjects/Grafting/ui/GraftingRoot.tsx","webpack:///./src/Infiltration/ui/BlinkingCursor.tsx","webpack:///./src/Themes/ui/StyleEditorButton.tsx","webpack:///./src/Themes/ui/ThemeEditorButton.tsx","webpack:///./src/Themes/ui/ThemeCollaborate.tsx","webpack:///./src/ui/React/DeleteGameButton.tsx","webpack:///./src/ui/React/SoftResetButton.tsx","webpack:///./src/ScriptEditor/NetscriptDefinitions.d.ts","webpack:///./src/Augmentation/ui/PurchasableAugmentations.tsx","webpack:///./src/Locations/ui/TravelAgencyRoot.tsx","webpack:///./src/ScriptEditor/ui/ScriptEditorRoot.tsx","webpack:///./src/Terminal/DirectoryServerHelpers.ts","webpack:///./src/NetscriptJSEvaluator.ts","webpack:///./src/NetscriptFunctions/Flags.ts","webpack:///./src/ui/React/TablePaginationActionsAll.tsx","webpack:///./src/BitNode/ui/BitnodeMultipliersDescription.tsx","webpack:///./src/CotMG/ui/Cell.tsx","webpack:///./src/CotMG/ui/Grid.tsx","webpack:///./src/Script/RunningScriptHelpers.ts","webpack:///./src/Terminal/commands/common/editor.ts","webpack:///./src/utils/HammingCodeTools.ts","webpack:///./src/Bladeburner/Contract.ts","webpack:///./src/Bladeburner/data/Help.ts","webpack:///./src/Corporation/ResearchTree.ts","webpack:///./src/StockMarket/StockMarketConstants.ts","webpack:///./src/CotMG/data/Constants.ts","webpack:///./src/utils/v1APIBreak.ts","webpack:///./src/Company/GetNextCompanyPosition.ts","webpack:///./src/PersonObjects/Player/PlayerObjectBladeburnerMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectCorporationMethods.ts","webpack:///./src/PersonObjects/Player/PlayerObjectWorkMethods.ts","webpack:///./src/engine.tsx","webpack:///./src/Themes/data/index.ts","webpack:///./src/ui/LoadingScreen.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectAugmentationMethods.ts","webpack:///./src/utils/helpers/isValidNumber.ts","webpack:///./src/StockMarket/Order.ts","webpack:///./src/CotMG/StaneksGift.ts","webpack:///./src/Locations/Location.ts","webpack:///./src/RemoteFileAPI/MessageHandlers.ts","webpack:///./src/PersonObjects/Sleeve/ui/StatsElement.tsx","webpack:///./src/ui/React/ServerDropdown.tsx","webpack:///./src/Casino/Blackjack.tsx","webpack:///./src/Casino/CardDeck/ReactCard.tsx","webpack:///./src/Milestones/Milestones.ts","webpack:///./src/StockMarket/data/TickerHeaderFormatData.ts","webpack:///./src/Achievements/AchievementEntry.tsx","webpack:///./src/ThirdParty/colorUtils.ts","webpack:///./src/Themes/data/default/index.ts","webpack:///./src/Themes/data/default-lite/index.ts","webpack:///./src/Themes/data/monokai-ish/index.ts","webpack:///./src/Themes/data/warmer/index.ts","webpack:///./src/Themes/data/dark-plus/index.ts","webpack:///./src/Themes/data/mayukai-dark/index.ts","webpack:///./src/Themes/data/purple/index.ts","webpack:///./src/Themes/data/smooth-green/index.ts","webpack:///./src/Themes/data/dracula/index.ts","webpack:///./src/Themes/data/dark-blue/index.ts","webpack:///./src/Themes/data/discord-like/index.ts","webpack:///./src/Themes/data/one-dark/index.ts","webpack:///./src/Themes/data/muted-gold-blue/index.ts","webpack:///./src/Themes/data/light/index.ts","webpack:///./src/Themes/data/default/screenshot.png","webpack:///./src/Themes/data/default-lite/screenshot.png","webpack:///./src/Themes/data/monokai-ish/screenshot.png","webpack:///./src/Themes/data/warmer/screenshot.png","webpack:///./src/Themes/data/dark-plus/screenshot.png","webpack:///./src/Themes/data/mayukai-dark/screenshot.png","webpack:///./src/Themes/data/purple/screenshot.png","webpack:///./src/Themes/data/smooth-green/screenshot.png","webpack:///./src/Themes/data/dracula/screenshot.png","webpack:///./src/Themes/data/dark-blue/screenshot.png","webpack:///./src/Themes/data/discord-like/screenshot.png","webpack:///./src/Themes/data/one-dark/screenshot.png","webpack:///./src/Themes/data/muted-gold-blue/screenshot.png","webpack:///./src/Themes/data/light/screenshot.png","webpack:///./src/Terminal/Terminal.ts","webpack:///./src/data/codingcontracttypes.ts","webpack:///./src/utils/Heap.ts","webpack:///./src/utils/helpers/createRandomString.ts","webpack:///./src/Programs/Program.ts","webpack:///./src/Programs/data/ProgramsMetadata.ts","webpack:///./src/utils/helpers/isValidIPAddress.ts","webpack:///./src/PersonObjects/ITaskTracker.ts","webpack:///./src/utils/helpers/getTimestamp.ts","webpack:///./src/NetworkShare/formulas/share.tsx","webpack:///./src/Company/data/CompaniesMetadata.ts","webpack:///./src/Corporation/Research.ts","webpack:///./src/Corporation/data/ResearchMetadata.ts","webpack:///./src/Hacknet/HashUpgrade.ts","webpack:///./src/Hacknet/data/HashUpgradesMetadata.tsx","webpack:///./src/Netscript/Environment.ts","webpack:///./src/utils/helpers/isPowerOfTwo.ts","webpack:///./src/NetscriptPort.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/CorporationState.ts","webpack:///./src/Literature/Literatures.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/ui/StealthIcon.tsx","webpack:///./src/Bladeburner/ui/KillIcon.tsx","webpack:///./src/Bladeburner/ui/OperationPage.tsx","webpack:///./src/Bladeburner/ui/OperationList.tsx","webpack:///./src/Bladeburner/ui/OperationElem.tsx","webpack:///./src/Bladeburner/ui/TeamSizeModal.tsx","webpack:///./src/Bladeburner/data/Operations.tsx","webpack:///./src/Bladeburner/ui/BlackOpPage.tsx","webpack:///./src/Bladeburner/ui/BlackOpList.tsx","webpack:///./src/Bladeburner/ui/BlackOpElem.tsx","webpack:///./src/Bladeburner/data/BlackOperations.tsx","webpack:///./src/Bladeburner/ui/SkillPage.tsx","webpack:///./src/Bladeburner/ui/SkillList.tsx","webpack:///./src/Bladeburner/ui/SkillElem.tsx","webpack:///./src/Gang/ui/GangRoot.tsx","webpack:///./src/Gang/ui/ManagementSubpage.tsx","webpack:///./src/Gang/ui/GangStats.tsx","webpack:///./src/Gang/ui/BonusTime.tsx","webpack:///./src/Gang/ui/GangMemberList.tsx","webpack:///./src/Gang/ui/GangMemberCard.tsx","webpack:///./src/Gang/ui/GangMemberCardContent.tsx","webpack:///./src/Gang/ui/GangMemberStats.tsx","webpack:///./src/ui/React/KillScriptsModal.tsx","webpack:///./src/Gang/ui/TaskSelector.tsx","webpack:///./src/Gang/ui/TaskDescription.tsx","webpack:///./src/Gang/ui/AscensionModal.tsx","webpack:///./src/Gang/ui/RecruitButton.tsx","webpack:///./src/Gang/ui/RecruitModal.tsx","webpack:///./src/Gang/ui/TerritorySubpage.tsx","webpack:///./src/Gang/ui/TerritoryInfoModal.tsx","webpack:///./src/Gang/ui/EquipmentsSubpage.tsx","webpack:///./src/Corporation/ui/CorporationRoot.tsx","webpack:///./src/Corporation/ui/MainPanel.tsx","webpack:///./src/Corporation/ui/CityTabs.tsx","webpack:///./src/Corporation/ui/Industry.tsx","webpack:///./src/Corporation/ui/IndustryOffice.tsx","webpack:///./src/Corporation/ui/modals/UpgradeOfficeSizeModal.tsx","webpack:///./src/Corporation/ui/modals/ThrowPartyModal.tsx","webpack:///./src/Corporation/ui/IndustryOverview.tsx","webpack:///./src/Corporation/ui/modals/MakeProductModal.tsx","webpack:///./src/Corporation/ui/modals/ResearchModal.tsx","webpack:///./src/Corporation/ui/IndustryWarehouse.tsx","webpack:///./src/Corporation/ui/modals/SmartSupplyModal.tsx","webpack:///./src/Corporation/ui/ProductElem.tsx","webpack:///./src/Corporation/ui/modals/DiscontinueProductModal.tsx","webpack:///./src/Corporation/ui/modals/LimitProductProductionModal.tsx","webpack:///./src/Corporation/ui/modals/SellProductModal.tsx","webpack:///./src/Corporation/ui/modals/ProductMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/CancelProductModal.tsx","webpack:///./src/Corporation/ui/MaterialElem.tsx","webpack:///./src/Corporation/ui/modals/ExportModal.tsx","webpack:///./src/Corporation/ui/modals/MaterialMarketTaModal.tsx","webpack:///./src/Corporation/ui/modals/SellMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/PurchaseMaterialModal.tsx","webpack:///./src/Corporation/ui/modals/LimitMaterialProductionModal.tsx","webpack:///./src/Corporation/ui/IndustryProductEquation.tsx","webpack:///./src/Corporation/ui/ExpandNewCity.tsx","webpack:///./src/Corporation/ui/ExpandIndustryTab.tsx","webpack:///./src/Corporation/ui/Overview.tsx","webpack:///./src/Corporation/ui/LevelableUpgrade.tsx","webpack:///./src/Corporation/ui/UnlockUpgrade.tsx","webpack:///./src/Corporation/ui/modals/BribeFactionModal.tsx","webpack:///./src/Corporation/ui/modals/SellSharesModal.tsx","webpack:///./src/Corporation/ui/modals/BuybackSharesModal.tsx","webpack:///./src/Corporation/ui/modals/IssueDividendsModal.tsx","webpack:///./src/Corporation/ui/modals/IssueNewSharesModal.tsx","webpack:///./src/Corporation/ui/modals/FindInvestorsModal.tsx","webpack:///./src/Corporation/ui/modals/GoPublicModal.tsx","webpack:///./src/Infiltration/ui/InfiltrationRoot.tsx","webpack:///./src/Infiltration/ui/Game.tsx","webpack:///./src/Infiltration/ui/BackwardGame.tsx","webpack:///./src/Infiltration/ui/BracketGame.tsx","webpack:///./src/Infiltration/ui/BribeGame.tsx","webpack:///./src/Infiltration/ui/CheatCodeGame.tsx","webpack:///./src/Infiltration/ui/Countdown.tsx","webpack:///./src/Infiltration/ui/Cyberpunk2077Game.tsx","webpack:///./src/Infiltration/ui/MinesweeperGame.tsx","webpack:///./src/Infiltration/ui/SlashGame.tsx","webpack:///./src/Infiltration/ui/Victory.tsx","webpack:///./src/Infiltration/ui/WireCuttingGame.tsx","webpack:///./src/Infiltration/ui/Intro.tsx","webpack:///./src/ui/WorkInProgressRoot.tsx","webpack:///./src/GameOptions/ui/GameOptionsRoot.tsx","webpack:///./src/GameOptions/ui/GameOptionsSidebar.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/GameOptions/ui/GameplayPage.tsx","webpack:///./src/GameOptions/ui/InterfacePage.tsx","webpack:///./src/GameOptions/ui/MiscPage.tsx","webpack:///./src/GameOptions/ui/RemoteAPIPage.tsx","webpack:///./src/GameOptions/ui/ConnectionBauble.tsx","webpack:///./src/RemoteFileAPI/Remote.ts","webpack:///./src/GameOptions/ui/SystemPage.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveElem.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveAugmentationsModal.tsx","webpack:///./src/Augmentation/ui/PurchaseAugmentationModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TaskSelector.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TravelModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/FAQModal.tsx","webpack:///./src/Hacknet/ui/HacknetRoot.tsx","webpack:///./src/Hacknet/ui/GeneralInfo.tsx","webpack:///./src/Hacknet/ui/HacknetNodeElem.tsx","webpack:///./src/Hacknet/ui/HacknetServerElem.tsx","webpack:///./src/Hacknet/ui/HashUpgradeModal.tsx","webpack:///./src/Hacknet/ui/HacknetUpgradeElem.tsx","webpack:///./src/Hacknet/ui/MultiplierButtons.tsx","webpack:///./src/Hacknet/ui/PlayerInfo.tsx","webpack:///./src/Hacknet/ui/PurchaseButton.tsx","webpack:///./src/Locations/ui/GenericLocation.tsx","webpack:///./src/Locations/ui/CompanyLocation.tsx","webpack:///./src/Company/ui/QuitJobModal.tsx","webpack:///./src/Locations/ui/GymLocation.tsx","webpack:///./src/Locations/ui/HospitalLocation.tsx","webpack:///./src/Locations/ui/SlumsLocation.tsx","webpack:///./src/Locations/ui/SpecialLocation.tsx","webpack:///./src/Corporation/ui/modals/CreateCorporationModal.tsx","webpack:///./src/utils/helpers/N00dles.ts","webpack:///./src/Arcade/ui/ArcadeRoot.tsx","webpack:///./src/Arcade/ui/BBCabinet.tsx","webpack:///./src/Locations/ui/TechVendorLocation.tsx","webpack:///./src/Locations/ui/RamButton.tsx","webpack:///./src/Locations/ui/TorButton.tsx","webpack:///./src/Locations/LocationsHelpers.tsx","webpack:///./src/Locations/ui/CoresButton.tsx","webpack:///./src/Locations/ui/PurchaseServerModal.tsx","webpack:///./src/Locations/ui/TravelConfirmationModal.tsx","webpack:///./src/Locations/ui/UniversityLocation.tsx","webpack:///./src/Locations/ui/CasinoLocation.tsx","webpack:///./src/Casino/CardDeck/Deck.ts","webpack:///./src/Casino/CoinFlip.tsx","webpack:///./src/Casino/Roulette.tsx","webpack:///./src/Casino/SlotMachine.tsx","webpack:///./src/Locations/ui/City.tsx","webpack:///./src/ScriptEditor/ui/OptionsModal.tsx","webpack:///./src/ScriptEditor/ui/ThemeEditorModal.tsx","webpack:///./src/Milestones/ui/MilestonesRoot.tsx","webpack:///./src/Terminal/ui/TerminalRoot.tsx","webpack:///./src/Terminal/ui/TerminalInput.tsx","webpack:///./src/Terminal/determineAllPossibilitiesForTabCompletion.ts","webpack:///./src/Script/ScriptUrl.ts","webpack:///./src/Terminal/tabCompletion.ts","webpack:///./src/Tutorial/ui/TutorialRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/ScriptProduction.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordions.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordion.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordionContent.tsx","webpack:///./src/ui/ActiveScripts/WorkerScriptAccordion.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptAccordion.tsx","webpack:///./src/Faction/ui/FactionRoot.tsx","webpack:///./src/Faction/ui/AugmentationsPage.tsx","webpack:///./src/Faction/ui/DonateOption.tsx","webpack:///./src/Faction/ui/Info.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantPurchasesRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.tsx","webpack:///./src/PersonObjects/Person.ts","webpack:///./src/SourceFile/applySourceFile.ts","webpack:///./src/Exploits/applyExploits.ts","webpack:///./src/Faction/ui/GangButton.tsx","webpack:///./src/Faction/ui/CreateGangModal.tsx","webpack:///./src/ui/CharacterStats.tsx","webpack:///./src/StockMarket/ui/StockMarketRoot.tsx","webpack:///./src/StockMarket/ui/InfoAndPurchases.tsx","webpack:///./src/StockMarket/ui/StockTickers.tsx","webpack:///./src/StockMarket/ui/StockTicker.tsx","webpack:///./src/StockMarket/ui/StockTickerHeaderText.tsx","webpack:///./src/StockMarket/ui/StockTickerOrderList.tsx","webpack:///./src/StockMarket/ui/StockTickerOrder.tsx","webpack:///./src/StockMarket/ui/StockTickerPositionText.tsx","webpack:///./src/StockMarket/ui/PlaceOrderModal.tsx","webpack:///./src/BitNode/ui/BitverseRoot.tsx","webpack:///./src/BitNode/ui/PortalModal.tsx","webpack:///./src/ui/React/CinematicLine.tsx","webpack:///./src/CotMG/ui/StaneksGiftRoot.tsx","webpack:///./src/CotMG/ui/MainBoard.tsx","webpack:///./src/CotMG/ui/FragmentInspector.tsx","webpack:///./src/CotMG/ui/FragmentSelector.tsx","webpack:///./src/CotMG/ui/FragmentPreview.tsx","webpack:///./src/CotMG/ui/ActiveFragmentSummary.tsx","webpack:///./src/CotMG/DummyGift.ts","webpack:///./src/Bladeburner/ui/BladeburnerCinematic.tsx","webpack:///./src/Exploits/Unclickable.tsx","webpack:///./src/Achievements/AchievementsRoot.tsx","webpack:///./src/Achievements/AchievementList.tsx","webpack:///./src/Achievements/AchievementIcon.tsx","webpack:///./src/ui/ErrorBoundary.tsx","webpack:///./src/Themes/ui/ThemeBrowser.tsx","webpack:///./src/Themes/ui/ThemeEntry.tsx","webpack:///./src/ui/React/ImportSaveRoot.tsx","webpack:///./src/ui/React/BypassWrapper.tsx","webpack:///./src/NetscriptFunctions/Singularity.ts","webpack:///./src/Netscript/APIWrapper.ts","webpack:///./src/utils/helpers/clearObject.ts","webpack:///./src/PersonObjects/Grafting/EntropyAccumulation.ts","webpack:///./src/Terminal/commands/alias.ts","webpack:///./src/Terminal/commands/analyze.ts","webpack:///./src/Terminal/commands/backdoor.ts","webpack:///./src/Terminal/commands/buy.ts","webpack:///./src/Terminal/commands/cat.ts","webpack:///./src/Terminal/commands/cd.ts","webpack:///./src/Terminal/commands/check.ts","webpack:///./src/Terminal/commands/connect.ts","webpack:///./src/Terminal/commands/cp.ts","webpack:///./src/Terminal/commands/expr.ts","webpack:///./src/Terminal/commands/free.ts","webpack:///./src/Terminal/commands/grow.ts","webpack:///./src/Terminal/commands/hack.ts","webpack:///./src/Terminal/commands/help.ts","webpack:///./src/Terminal/commands/history.ts","webpack:///./src/Terminal/commands/home.ts","webpack:///./src/Terminal/commands/hostname.ts","webpack:///./src/Terminal/commands/kill.ts","webpack:///./src/Terminal/commands/killall.ts","webpack:///./src/Terminal/commands/ls.tsx","webpack:///./src/Terminal/commands/lscpu.ts","webpack:///./src/Terminal/commands/mem.ts","webpack:///./src/Terminal/commands/mv.ts","webpack:///./src/Terminal/commands/nano.ts","webpack:///./src/ScriptEditor/CursorPositions.ts","webpack:///./src/Terminal/commands/ps.ts","webpack:///./src/Terminal/commands/rm.ts","webpack:///./src/Terminal/commands/run.ts","webpack:///./src/Terminal/commands/runScript.ts","webpack:///./src/Terminal/commands/runProgram.ts","webpack:///./src/Terminal/commands/scan.ts","webpack:///./src/Terminal/commands/scananalyze.ts","webpack:///./src/Terminal/commands/scp.ts","webpack:///./src/Terminal/commands/sudov.ts","webpack:///./src/Terminal/commands/tail.ts","webpack:///./src/Terminal/commands/top.ts","webpack:///./src/Terminal/commands/unalias.ts","webpack:///./src/Terminal/commands/vim.ts","webpack:///./src/Terminal/commands/weaken.ts","webpack:///./src/Terminal/commands/wget.ts","webpack:///./src/Terminal/commands/apr1.ts","webpack:///./src/Exploits/loops.ts","webpack:///./src/UncaughtPromiseHandler.ts","webpack:///./src/index.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Player","PlayerObject","loadPlayer","saveString","JSON","parse","Reviver","money","parseFloat","exploits","sanitizeExploits","helpers","string","number","ctx","argName","v","x","isNaN","makeRuntimeErrorMsg","debugType","scriptArgs","argsToString","args","out","arg","undefined","toNative","stringify","isScriptErrorMessage","msg","isString","split","makeRuntimeRejectMsg","resolveNetscriptRequestedThreads","requestedThreads","threads","workerScript","scriptRef","requestedThreadsAsInt","function","checkEnvFlags","ws","env","stopFlag","ScriptDeath","runningFn","errorMessage","delayReject","checkSingularityAccess","bitNodeN","sourceFileLvl","netscriptDelay","time","Promise","resolve","reject","delay","setTimeout","updateDynamicRam","ramCost","fnName","dynamicLoadedFns","console","warn","hostname","dynamicRamUsage","ramUsage","numeralWrapper","formatRAM","city","values","CityName","includes","getServer","scriptIdentifier","scriptID","_hostname","_args","pid","scriptname","Error","hack","async","manual","stock","server","Server","hackingTime","calculateHackingTime","canHack","netscriptCanHack","res","log","convertTimeMsToTimeElapsedString","formatThreads","then","hackChance","calculateHackingChance","rand","Math","random","expGainedOnSuccess","calculateHackingExpGain","expGainedOnFailure","percentHacked","calculatePercentMoneyHacked","maxThreadNeeded","ceil","moneyDrained","floor","moneyAvailable","moneyGained","BitNodeMultipliers","ScriptHackMoneyGain","ManualHackMoney","gainMoney","onlineMoneyMade","scriptProdSinceLastAug","recordHack","gainHackingExp","gainIntelligenceExp","onlineExpGained","formatMoney","formatExp","fortify","CONSTANTS","ServerFortifyAmount","min","influenceStockThroughServerHack","backdoorInstalled","getValidPort","port","NumNetscriptPorts","round","iport","NetscriptPorts","NetscriptPort","set","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","hackWeight","getFunctionNames","obj","prefix","functionNames","entries","getRunningScript","ident","GetAllServers","runningScript","findRunningScriptByPid","getRunningScriptByPid","getRunningScriptByArgs","getCannotFindRunningScriptErrorMessage","arrayToString","createPublicRunningScript","filename","logs","offlineExpGained","offlineMoneyMade","offlineRunningTime","onlineRunningTime","failOnHacknetServer","callingFn","HacknetServer","clip","String","json","userFriendlyString","Array","isArray","every","isScriptArgs","scriptUrl","dependencies","replace","RegExp","url","errstack","stack","caller","scripts","userstack","stackline","script","dependency","parseChromeStackline","line","lineMatch","match","funcMatch","func","chromeCall","parseFirefoxStackline","lio","lastIndexOf","firefoxCall","rejectMsg","join","GetServer","expect","actual","expects","keys","actuals","message","functionPath","fn","findRunningScript","FactionNames","defaultSettings","ActiveScriptsServerPageSize","ActiveScriptsScriptPageSize","AutosaveInterval","CodeInstructionRunTime","DisableASCIIArt","DisableHotkeys","DisableTextEffects","DisableOverviewProgressBars","EnableBashHotkeys","TimestampsFormat","Locale","MaxRecentScriptsCapacity","MaxLogCapacity","MaxPortCapacity","MaxTerminalCapacity","RemoteFileApiPort","SaveGameOnFileSave","SuppressBuyAugmentationConfirmation","SuppressFactionInvites","SuppressMessages","SuppressTravelConfirmation","SuppressBladeburnerPopup","SuppressTIXPopup","SuppressSavedGameToast","SuppressAutosaveDisabledWarnings","UseIEC60027_2","ShowMiddleNullTimeUnit","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","Number","MAX_SAFE_INTEGER","HomeComputerMaxRam","ServerBaseGrowthRate","ServerMaxGrowthRate","ServerWeakenAmount","PurchasedServerLimit","PurchasedServerMaxRam","MultipleAugMultiplier","TorRouterCost","WSEAccountCost","TIXAPICost","MarketData4SCost","MarketDataTixApi4SCost","StockMarketCommission","HospitalCostPerHp","IntelligenceCrimeWeight","IntelligenceInfiltrationWeight","IntelligenceCrimeBaseExpGain","IntelligenceProgramBaseExpGain","IntelligenceGraftBaseExpGain","IntelligenceTerminalHackBaseExpGain","IntelligenceSingFnBaseExpGain","IntelligenceClassBaseExpGain","MillisecondsPer20Hours","GameCyclesPer20Hours","MillisecondsPer10Hours","GameCyclesPer10Hours","MillisecondsPer8Hours","GameCyclesPer8Hours","MillisecondsPer4Hours","GameCyclesPer4Hours","MillisecondsPer2Hours","GameCyclesPer2Hours","MillisecondsPerHour","GameCyclesPerHour","MillisecondsPerHalfHour","GameCyclesPerHalfHour","MillisecondsPerQuarterHour","GameCyclesPerQuarterHour","MillisecondsPerFiveMinutes","GameCyclesPerFiveMinutes","BaseFocusBonus","ClassDataStructuresBaseCost","ClassNetworksBaseCost","ClassAlgorithmsBaseCost","ClassManagementBaseCost","ClassLeadershipBaseCost","ClassGymBaseCost","ClassStudyComputerScienceBaseExp","ClassDataStructuresBaseExp","ClassNetworksBaseExp","ClassAlgorithmsBaseExp","ClassManagementBaseExp","ClassLeadershipBaseExp","CodingContractBaseFactionRepGain","CodingContractBaseCompanyRepGain","CodingContractBaseMoneyGain","AugmentationGraftingCostMult","AugmentationGraftingTimeBase","SoACostMult","SoARepMult","EntropyEffect","TotalNumBitNodes","InfiniteLoopLimit","Donations","LatestUpdate","ctor","constructors","fromJSON","validationData","validateObject","Generic_toJSON","ctorName","index","Generic_fromJSON","dialogBoxCreate","txt","AlertEvents","emit","component","sx","dangerouslySetInnerHTML","__html","defaultMultipliers","useStyles","makeStyles","createStyles","unbuyable","color","palette","action","disabled","colors","Money","props","classes","canAfford","className","AllServers","isValidIPAddress","GetServerByHostname","ipserver","GetServerByIP","servers","DeleteServer","serverkey","ipExists","hostName","createUniqueRandomIp","createRandomIp","AddToAllServers","initForeignServers","homeComputer","networkLayers","toNumber","getRandomInt","metadata","serverMetadata","serverParams","maxRamExponent","pow","literature","messages","SpecialServers","WorldDaemon","WorldDaemonDifficulty","networkLayer","linkNetworkLayers","network1","selectServer","server1","server2","serversOnNetwork","getRandomArrayItem","arr","prestigeAllServers","member","loadAllServers","saveAllServers","excludeRunningScripts","TempAllServers","runningScripts","runningScriptObj","Context","React","createContext","Router","use","useContext","Page","showMilli","totalSeconds","days","secondPerHours","secTruncDays","hours","secondPerMinute","secTruncHours","minutes","secTruncMinutes","milliTruncSec","seconds","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","ValuationLength","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","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","EmployeePositions","Operations","Engineer","Business","Management","RandD","Training","Unassigned","ActionTypes","Idle","Contract","Operation","BlackOp","BlackOperation","Recruitment","FieldAnalysis","Diplomacy","BaseServer","super","startsWith","createRandomString","ServerStartingMoney","ServerMaxMoney","realDifficulty","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","Programs","programsMetadata","Program","run","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","NukeProgram","prestigeAugmentation","skills","TravelAgency","purchasedServers","factionInvitations","numSleeves","sleevesFromCovenant","sleeves","Sleeve","shock","synchronize","shockRecovery","lastUpdate","Date","getTime","moneySourceA","reset","prestige","reapplyAllAugmentations","current","finishWork","prestigeSourceFile","karma","sync","resetGangs","hasWseAccount","hasTixApiAccess","has4SData","has4SDataTixApi","moneySourceB","receiveInvite","calculateSkill","calculateSkillF","calculateSkillProgress","calculateSkillProgressF","updateSkillLevels","HackingLevelMultiplier","StrengthLevelMultiplier","DefenseLevelMultiplier","DexterityLevelMultiplier","AgilityLevelMultiplier","CharismaLevelMultiplier","intelligence","ratio","resetMultipliers","hasProgram","programName","home","toLowerCase","setMoney","source","recordMoneySource","MoneySourceTracker","record","gainStrengthExp","gainDefenseExp","gainDexterityExp","gainAgilityExp","gainCharismaExp","gainStats","retValue","def","dex","agi","cha","int","queryStatFromString","tempStr","startFocusing","focus","stopFocusing","takeDamage","hospitalize","regenerateHp","getHospitalizationCost","SnackbarEvents","ToastVariant","WARNING","applyForJob","entryPosType","sing","company","Companies","Company","pos","isQualified","getJobRequirementText","hasPosition","nextPos","getNextCompanyPositionHelper","reqText","getNextCompanyPosition","currCompany","currentPositionName","currentPosition","CompanyPositions","isSoftwareJob","isITJob","isBusinessJob","isSecurityEngineerJob","isNetworkEngineerJob","isSecurityJob","isAgentJob","isSoftwareConsultantJob","isBusinessConsultantJob","isPartTimeJob","quitJob","isCompanyWork","currentWork","companyName","sleeve","isSleeveCompanyWork","stopWork","hasJob","Boolean","applyForSoftwareJob","posNames","applyForSoftwareConsultantJob","applyForItJob","applyForSecurityEngineerJob","applyForNetworkEngineerJob","applyForBusinessJob","applyForBusinessConsultantJob","applyForSecurityJob","applyForAgentJob","applyForEmployeeJob","position","applyForPartTimeEmployeeJob","applyForWaiterJob","applyForPartTimeWaiterJob","offset","jobStatReqOffset","reqHacking","requiredHacking","reqStrength","requiredStrength","reqDefense","requiredDefense","reqDexterity","requiredDexterity","reqAgility","reqCharisma","requiredCharisma","playerReputation","requiredReputation","playerAug","applyAugmentation","reapplyAllSourceFiles","sourceFiles","srcFileKey","SourceFiles","applySourceFile","applyExploit","checkForFactionInvitations","invitedFactions","numAugmentations","allCompanies","allPositions","checkMegacorpRequirements","serverMeta","specialName","bonus","getCompanyRep","illuminatiFac","Illuminati","isBanned","isMember","alreadyInvited","daedalusFac","Daedalus","DaedalusAugsRequirement","covenantFac","TheCovenant","ecorpFac","ECorp","AevumECorp","megacorpFac","MegaCorp","Sector12MegaCorp","bachmanandassociatesFac","BachmanAssociates","AevumBachmanAndAssociates","bladeindustriesFac","BladeIndustries","Sector12BladeIndustries","nwoFac","NWO","VolhavenNWO","clarkeincorporatedFac","ClarkeIncorporated","AevumClarkeIncorporated","omnitekincorporatedFac","OmniTekIncorporated","VolhavenOmniTekIncorporated","foursigmaFac","FourSigma","Sector12FourSigma","kuaigonginternationalFac","KuaiGongInternational","ChongqingKuaiGongInternational","fulcrumsecrettechonologiesFac","FulcrumSecretTechnologies","fulcrumSecretServer","AevumFulcrumTechnologies","bitrunnersFac","BitRunners","bitrunnersServer","BitRunnersServer","theblackhandFac","TheBlackHand","blackhandServer","TheBlackHandServer","nitesecFac","NiteSec","nitesecServer","NiteSecServer","chongqingFac","sector12Fac","newtokyoFac","aevumFac","ishimaFac","volhavenFac","speakersforthedeadFac","SpeakersForTheDead","Sector12CIA","Sector12NSA","thedarkarmyFac","TheDarkArmy","thesyndicateFac","TheSyndicate","silhouetteFac","Silhouette","tetradsFac","Tetrads","slumsnakesFac","SlumSnakes","netburnersFac","Netburners","totalHacknetRam","totalHacknetCores","totalHacknetLevels","tiandihuiFac","TianDiHui","cybersecFac","CyberSec","cybersecServer","CyberSecServer","setBitNodeNumber","queueAugmentation","aug","PlayerOwnedAugmentation","gainCodingContractReward","reward","difficulty","CodingContractRewardType","FactionReputation","FactionReputationAll","repGain","totalGain","specialFactions","Bladeburners","gainPerFaction","facName","CompanyReputation","moneyGain","CodingContractMoney","travel","to","gotoLocation","Locations","canAccessGrafting","giveExploit","exploit","SUCCESS","giveAchievement","achievementId","achievement","achievements","ID","unlockedOn","Name","getIntelligenceBonus","weight","calculateIntelligenceBonus","getCasinoWinnings","casino","canAccessCotMG","sf","lvl","focusPenalty","NeuroreceptorManager","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","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","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","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","loadStaneksGift","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","field","anySleeve","evaluateVersionCompatibility","href","resets","createNewUpdateText","whiteSpace","paddingLeft","lineHeight","Blob","document","createElement","URL","createObjectURL","body","appendChild","click","removeChild","revokeObjectURL","applySleeveGains","rawStats","shockedStats","shockBonus","syncStats","syncBonus","__player","zeros","height","array","fill","calculateGrid","gift","newgrid","fragmentAt","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","mergeAugmentation","applyEntropy","ownedNfg","pAug","ownedAug","force","augmentationList","nfgIndex","isRepeatableAug","MoneyRate","CodingContractType","gen","solver","diff","numTries","generate","CodingContractTypes","md","codingContractTypesMetadata","CodingContractResult","CodingContract","getData","getDescription","getDifficulty","getMaxNumTries","getType","isSolution","solution","Cancelled","onAttempt","val","Success","Failure","CodingContractEvent","Fragments","Fragment","shape","limit","fullAt","rotation","sy","mx","my","qx","qy","neighboors","candidates","add","coord","cells","candidate","cell","copy","FragmentById","fragment","_","X","Shapes","S","Z","T","I","J","O","Booster","NoneFragment","None","DeleteFragment","Delete","base","inherit","common","accent","bg","fg","syntax","tag","entity","regexp","markup","keyword","comment","constant","ui","panel","selected","selection","colorRegExp","sanitizeTheme","repairBlock","block","makeTheme","themeRules","token","foreground","themeColors","fromEntries","rules","loadThemes","monaco","editor","defineTheme","fontStyle","uuidv4","uuid","subscribers","sub","Adjuster","setValue","label","placeholder","subtract","tons","onChange","InputProps","startAdornment","title","transform","endAdornment","OptionSwitch","checked","text","tooltip","control","upArrowSymbol","downArrowSymbol","leftArrowSymbol","rightArrowSymbol","getArrow","UP_ARROW","W","LEFT_ARROW","DOWN_ARROW","RIGHT_ARROW","D","getInverseArrow","getActionTimePenalty","getChaosCompetencePenalty","getChaosDifficultyBonus","makeNode","Node","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","rs","delete","AddRecentScript","WorkerScriptStartStopEventEmitter","removeWorkerScript","BitNode","BitNodes","HomeComputerRamCost","PurchasedServerCost","PurchasedServerSoftcap","CompanyWorkMoney","CrimeMoney","HacknetNodeMoney","ClassGymExpGain","CompanyWorkExpGain","CrimeExpGain","FactionWorkExpGain","FactionWorkRepGain","RepToDonateToFaction","InfiltrationMoney","InfiltrationRep","FourSigmaMarketDataCost","FourSigmaMarketDataApiCost","CorporationValuation","CorporationSoftcap","BladeburnerRank","BladeburnerSkillCost","GangSoftcap","StaneksGiftPowerMultiplier","StaneksGiftExtraSize","getBitNodeMultipliers","inc","dec","initBitNodeMultipliers","defaultConstructorParams","initPrice","marketCap","spreadPerc","range","divisor","lastPrice","playerShares","playerAvgPx","playerShortShares","playerAvgShortPx","otlkMagForecast","getAbsoluteForecast","totalSharesUnrounded","totalShares","maxShares","changeForecastForecast","newff","newPrice","changeAmt","increaseChance","getForecastIncreaseChance","getAskPrice","getBidPrice","influenceForecast","influenceForecastForecast","startingLevel","extraLevels","totalMultiplier","startingRam","totalCost","numUpgrades","currentRam","startingCores","currentCores","startingCache","currentCache","printAliases","print","parseAliasDeclaration","global","matches","addGlobalAlias","addAlias","getAlias","getGlobalAlias","removeAlias","substituteAliases","origCommand","commandArray","somethingSubstituted","depth","alias","constructLocation","asciiArt","LocationsMetadata","addLocation","layerCounter","LogBoxEvents","LogBoxCloserEvents","LogBoxClearEvents","LogBoxPositionEvents","LogBoxSizeEvents","LogBoxManager","closePid","LogWindow","close","overflowY","overflowX","wordWrap","titleButton","draggableRef","useRef","rootRef","setScript","container","setSize","minimized","setMinimized","setPosition","state","kill","startWorkerScript","updateLayer","full","maxLength","minimize","innerWidth","innerHeight","clearInterval","addEventListener","onWindowResize","removeEventListener","debounce","isOnScreen","bounds","getBoundingClientRect","right","bottom","left","top","outerWidth","minConstraints","handle","onDrag","MouseEvent","clientX","clientY","ref","onMouseDown","flexFlow","minWidth","welllight","onResize","cursor","fontSize","marginRight","textOverflow","has","onTouchEnd","m0","m1","mergeMultipliers","scaleMultipliers","Literature","CopyableText","setOpen","copyText","select","setSelectionRange","execCommand","ThemeEvents","refreshTheme","createTheme","combat","backgroundprimary","backgroundsecondary","button","successlight","success","successdark","white","black","light","primarylight","primarydark","secondary","secondarylight","secondarydark","errorlight","errordark","infolight","infodark","warning","warninglight","warningdark","well","typography","fontFamily","textTransform","components","MuiInputBase","styleOverrides","input","userSelect","MuiInput","borderBottomColor","underline","MuiInputLabel","MuiButtonGroup","MuiButton","borderRadius","MuiSelect","icon","defaultProps","MuiTextField","MuiTypography","MuiMenu","list","MuiMenuItem","MuiAccordionSummary","MuiAccordionDetails","MuiIconButton","MuiTooltip","disableInteractive","MuiSlider","valueLabel","MuiDrawer","paperAnchorDockedLeft","borderRight","MuiDivider","MuiFormControlLabel","MuiSwitch","switchBase","track","MuiPaper","MuiTablePagination","selectLabel","displayedRows","MuiTab","textColorPrimary","MuiTabs","scrollButtons","opacity","TabIndicatorProps","MuiAlert","standardSuccess","standardError","standardWarning","standardInfo","TTheme","injectFirst","Water","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AICores","calculateExp","skill","currentSkill","nextSkill","baseExperience","nextExperience","progress","currentExperience","remainingExperience","experience","UpgradeType","gangMemberUpgradesMetadata","upgType","Weapon","Armor","Vehicle","Rootkit","Map","prestigeWorkerScripts","clear","startNetscript1Script","codeWithImports","codeLineOffset","interpreter","importProcessingRes","ast","ecmaVersion","allowReserved","sourceType","generatedCode","hasImports","walksimple","ImportDeclaration","scriptName","getScript","scriptAst","specifiers","namespace","local","fnNames","fnDeclarations","FunctionDeclaration","fnsToImport","lineOffset","linesRemoved","processNetscript1Imports","Interpreter","wrapNS1Layer","intLayer","nsLayer","prev","newPath","vars","entry","wrapper","callback","pseudoToNative","nativeToPseudo","errorTextArray","errorMsg","setProperty","createAsyncFunction","properties","runInterpreter","more","step","_e","parent","createAndAddWorkerScript","oneRamUsage","getRamUsageFromRunningScript","roundToTwo","generateNextPid","NetscriptFunctions","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","Material","getMarkupLimit","qlt","mku","dmd","dmdR","cmp","cmpR","processMarket","priceChange","compChange","dmdChange","calculateWantedPenalty","calculateRespectGain","task","baseRespect","statWeight","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","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","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","materials","updateMaterialSizeUsed","matName","getStorageMultiplier","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","exportGameBonus","b1tflum3","destroyW0r1dD43m0n","getCurrentWork","createGang","getMemberNames","getGangInformation","getOtherGangInformation","getMemberInformation","canRecruitMember","recruitMember","getTaskNames","getTaskStats","setMemberTask","getEquipmentNames","getEquipmentCost","getEquipmentType","getEquipmentStats","purchaseEquipment","ascendMember","getAscensionResult","setTerritoryWarfare","getChanceToWinClash","getBonusTime","getContractNames","getOperationNames","getBlackOpNames","getBlackOpRank","getGeneralActionNames","getSkillNames","stopBladeburnerAction","getCurrentAction","getActionCurrentTime","getActionEstimatedSuccessChance","getActionRepGain","getActionCountRemaining","getActionMaxLevel","getActionCurrentLevel","getActionAutolevel","setActionAutolevel","setActionLevel","getRank","getSkillPoints","getSkillLevel","getSkillUpgradeCost","getTeamSize","setTeamSize","getCityEstimatedPopulation","getCityCommunities","getCityChaos","getCity","switchCity","getStamina","joinBladeburnerFaction","joinBladeburnerDivision","infiltration","getPossibleLocations","getInfiltration","codingcontract","getContractType","getNumTriesRemaining","getNumSleeves","setToShockRecovery","setToSynchronize","setToCommitCrime","setToUniversityCourse","setToCompanyWork","setToFactionWork","setToGymWorkout","getSleeveStats","getTask","getInformation","getSleeveAugmentations","getSleevePurchasableAugs","purchaseSleeveAug","setToBladeburnerAction","getSleeveAugmentationPrice","getSleeveAugmentationRepReq","stanek","giftWidth","giftHeight","chargeFragment","fragmentDefinitions","activeFragments","clearGift","canPlaceFragment","placeFragment","getFragment","removeFragment","acceptGift","SourceRamCosts","enums","getMaterialNames","getIndustryTypes","getUnlockables","getUpgradeNames","getResearchNames","createCorporation","hasUnlockUpgrade","getUnlockUpgradeCost","getUpgradeLevel","getUpgradeLevelCost","getExpandIndustryCost","getExpandCityCost","getInvestmentOffer","acceptInvestmentOffer","goPublic","bribe","getCorporation","getDivision","expandIndustry","expandCity","unlockUpgrade","levelUpgrade","issueDividends","buyBackShares","sellShares","sellMaterial","sellProduct","discontinueProduct","setSmartSupply","setSmartSupplyUseLeftovers","buyMaterial","bulkPurchase","getWarehouse","getProduct","getMaterial","setMaterialMarketTA1","setMaterialMarketTA2","setProductMarketTA1","setProductMarketTA2","exportMaterial","cancelExportMaterial","purchaseWarehouse","upgradeWarehouse","makeProduct","limitMaterialProduction","limitProductProduction","getPurchaseWarehouseCost","getUpgradeWarehouseCost","hasWarehouse","assignJob","hireEmployee","upgradeOfficeSize","throwParty","buyCoffee","hireAdVert","getOffice","getEmployee","getHireAdVertCost","getHireAdVertCount","getResearchCost","hasResearched","setAutoJobAssignment","getOfficeSizeUpgradeCost","hacknet","numNodes","purchaseNode","getPurchaseNodeCost","getNodeStats","getLevelUpgradeCost","getRamUpgradeCost","getCoreUpgradeCost","getCacheUpgradeCost","numHashes","hashCost","spendHashes","maxNumNodes","getHashUpgrades","getHashUpgradeLevel","getStudyMult","getTrainingMult","getTheme","setTheme","resetTheme","getStyles","setStyles","resetStyles","getGameInfo","clearTerminal","windowSize","grafting","getAugmentationGraftPrice","getAugmentationGraftTime","getGraftableAugmentations","graftAugmentation","sprintf","vsprintf","scan","hackAnalyzeThreads","hackAnalyze","hackAnalyzeSecurity","hackAnalyzeChance","sleep","asleep","share","getSharePower","grow","growthAnalyze","growthAnalyzeSecurity","weakenAnalyze","printf","tprint","tprintf","clearLog","disableLog","enableLog","isLogEnabled","getScriptLogs","nuke","brutessh","ftpcrack","relaysmtp","httpworm","sqlinject","exec","spawn","killall","exit","scp","ls","ps","getRecentScripts","hasRootAccess","getHostname","getHackingLevel","getHackingMultipliers","getHacknetMultipliers","getServerMoneyAvailable","getServerSecurityLevel","getServerBaseSecurityLevel","getServerMinSecurityLevel","getServerRequiredHackingLevel","getServerMaxMoney","getServerGrowth","getServerNumPortsRequired","getServerRam","getServerMaxRam","getServerUsedRam","serverExists","fileExists","getPurchasedServerLimit","getPurchasedServerMaxRam","getPurchasedServerCost","deleteServer","getPurchasedServers","tryWritePort","peek","writePort","readPort","getPortHandle","rm","scriptRunning","scriptKill","getScriptName","getScriptRam","getHackTime","getGrowTime","getWeakenTime","getTotalScriptIncome","getScriptIncome","getTotalScriptExpGain","getScriptExpGain","nFormat","tFormat","getTimeSinceLastAug","prompt","wget","getFavorToDonate","getPlayer","tail","toast","moveTail","resizeTail","closeTail","clearPort","openDevMenu","alert","flags","bypass","alterReality","rainbow","heart","break","formulas","mockServer","mockPlayer","calculateFavorToRep","calculateRepToFavor","repFromDonation","hackPercent","growPercent","hackTime","growTime","weakenTime","moneyGainRate","levelUpgradeCost","ramUpgradeCost","coreUpgradeCost","hacknetNodeCost","constants","hacknetServers","hashGainRate","cacheUpgradeCost","hashUpgradeCost","hacknetServerCost","wantedPenalty","respectGain","wantedLevelGain","ascensionPointsGain","ascensionMultiplier","work","crimeGains","classGains","factionGains","RamCosts","getRamCost","currType","costInc","posType","firstShares","remainingShares","numIterations","forecastChange","forecastForecastChange","calculateBuyMaxAmount","isLong","remainingMoney","currPrice","GangMemberUpgrades","GangMemberUpgrade","getStockMarket4SDataCost","getStockMarket4STixApiCost","getStockMarketWseCost","getStockMarketTixApiCost","NumberInput","textProps","HashUpgradesMetadata","HashUpgrade","GangMemberTasks","gangMemberTasksMetadata","isHacking","isCombat","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","isSleeveBladeburnerWork","BLADEBURNER","SleeveBladeburnerWork","actionType","actionName","cyclesNeeded","ret","StatsTable","rows","wide","MuiTable","row","elem","noWrap","DarkWebItems","BruteSSHProgram","DarkWebItem","FTPCrackProgram","RelaySMTPProgram","HTTPWormProgram","SQLInjectProgram","ServerProfiler","DeepscanV1","DeepscanV2","AutolinkProgram","AutoLink","FormulasProgram","Formulas","actionNames","Action","Suit","Card","suit","formatValue","isRedSuit","Hearts","Diamonds","getStringRepresentation","SourceFile","bitnodeKey","bitnode","AlertManager","alerts","setAlerts","sha256","getMessageHash","overflowWrap","timePassed","confidence","dataMap","serv","timesGrown","host","timesWeakened","compareArrays","COMPANY","SleeveCompanyWork","NewTokyoNoodleBar","getCompany","getGainRates","calculateCompanyWorkStats","influenceStockThroughCompanyWork","achievementData","bitNodeFinishedState","wd","OperationDaedalus","hasAccessToSF","knowsAboutBitverse","Icon","Condition","THE_BLACK_HAND","THE_COVENANT","Visible","MONEY_1Q","MONEY_M1B","Secret","INSTALL_1","INSTALL_100","QUEUE_40","HACKING_100000","COMBAT_3000","NEUROFLUX_255","NS2","FROZE","RUNNING_SCRIPTS_1000","running","DRAIN_SERVER","MAX_RAM","MAX_CORES","SCRIPTS_30","KARMA_1000000","STOCK_1q","DISCOUNT","SCRIPT_32GB","FIRST_HACKNET_NODE","MAX_HACKNET_NODE","HACKNET_NODE_10M","REPUTATION_10M","DONATION","TRAVEL","WORKOUT","TOR","hasTorRouter","HOSPITALIZED","hospitalization","GANG","FULL_GANG","members","GANG_TERRITORY","GANG_MEMBER_POWER","CORPORATION","CORPORATION_BRIBE","CORPORATION_PROD_1000","CORPORATION_EMPLOYEE_3000","CORPORATION_REAL_ESTATE","Description","INTELLIGENCE_255","BLADEBURNER_DIVISION","BLADEBURNER_OVERCLOCK","BLADEBURNER_UNSPENT_100000","FIRST_HACKNET_SERVER","AdditionalUnlock","ALL_HACKNET_SERVER","MAX_HACKNET_SERVER","hs","HACKNET_SERVER_1B","MAX_CACHE","capacity","SLEEVE_8","INDECISIVE","FAST_BN","CHALLENGE_BN1","CHALLENGE_BN2","CHALLENGE_BN3","CHALLENGE_BN6","CHALLENGE_BN7","CHALLENGE_BN8","CHALLENGE_BN9","hacknet_expenses","CHALLENGE_BN10","CHALLENGE_BN12","BYPASS","PROTOTYPETAMPERING","UNCLICKABLE","UNDOCUMENTEDFUNCTIONCALL","TIMECOMPRESSION","REALITYALTERATION","N00DLES","EDITSAVEFILE","UNACHIEVABLE","CHALLENGE_BN13","StaneksGift1","DEVMENU","RAINBOW","TRUE_RECURSION","playerAchievements","missingAchievements","flatMap","DefaultConstructorParams","expMultiplier","salaryMultiplier","isPlayerEmployed","isMegacorp","hasAgentPositions","hasBusinessConsultantPositions","hasBusinessPositions","hasEmployeePositions","hasITPositions","hasSecurityPositions","hasSoftwareConsultantPositions","hasSoftwarePositions","hasWaiterPositions","vals","MathJaxWrapper","version","src","lineNumber","CorporationUnlockUpgradeIndex","CorporationUnlockUpgrades","Export","SmartSupply","MarketResearchDemand","MarketDataCompetition","VeChain","ShadyAccounting","GovernmentPartnership","WarehouseAPI","OfficeAPI","getGraftingAvailableAugs","augName","graftingIntBonus","calculateGraftingTimeWithBonus","OperationTyphoon","OperationZero","OperationX","OperationTitan","OperationAres","OperationArchangel","OperationJuggernaut","OperationRedDragon","OperationK","OperationDeckard","OperationTyrell","OperationWallace","OperationShoulderOfOrion","OperationHyron","OperationMorpheus","OperationIonStorm","OperationAnnihilus","OperationUltron","OperationCenturion","OperationVindictus","ActiveFragment","highestCharge","numCharge","collide","other","thisFragment","otherFragment","dx","dy","fragSize","worldX","worldY","GameOptionsTab","workName","commit","div","startWork","CrimeWork","crimeType","successRate","canGetBonus","setLastExportBonus","unixTime","HashRate","Message","ApplyToJobButton","getJobRequirementTooltip","researchMetadata","isSleeveFactionWork","SleeveFactionWork","FIELD","SECURITY","initElectron","normalizeFileName","getFiles","deleteFile","removeFile","saveFile","Buffer","overwritten","writeToScriptFile","initWebserver","funcs","typesFn","appNotifier","initAppNotifier","triggerSave","triggerGameExport","ERROR","triggerScriptsExport","exportScripts","getSaveData","getSaveInfo","getImportDataFromString","pushSaveData","appSaveFns","initSaveFunctions","bridge","electronBridge","receive","send","initElectronBridge","pushGameReady","playtime","game","pushImportResult","wasImported","pushDisableRestore","isCreateProgramWork","CREATE_PROGRAM","CreateProgramWork","unitCompleted","programFile","percComplete","unitNeeded","getProgram","reqLvl","cancelled","incompleteName","lines","Intelligence","useTheme","scope","colSpan","WorkInProgressOverview","onClickFocus","header","workCell","workHeader","pt","pb","workSubtitles","mt","details","innerText","isCrimeWork","crime","getCrime","isGraftingWork","factionWork","companyWork","textAlign","CharacterOverview","killOpen","setKillOpen","hackingProgress","strengthProgress","defenseProgress","dexterityProgress","agilityProgress","charismaProgress","borderTop","flex","aria-label","midpoint","program","description","BadRNG","WHRNG","s1","s2","s3","genSeed","CompanyWork","GameOptionsPage","Favor","TerminalEvents","TerminalClearEvents","orderType","refs","orderBook","executeOrder","isBuy","predefined","getPredefinedThemes","getRandomByte","SUPPORT","SleeveSupportWork","recentScripts","killedTime","unshift","timeOfDeath","getDB","indexedDB","indexedDbRequest","onupgradeneeded","createObjectStore","onerror","ev","onsuccess","db","transaction","objectStore","request","put","deleteGame","sendMessage","forced","showMessage","recvd","addMessageToServer","Messages","checkForMessagesToSend","jumper0","MessageFilenames","Jumper0","jumper1","Jumper1","jumper2","Jumper2","jumper3","Jumper3","jumper4","Jumper4","cybersecTest","CyberSecTest","nitesecTest","NiteSecTest","bitrunnersTest","BitRunnersTest","truthGazer","TruthGazer","redpill","RedPill","worldDaemon","flightName","Flight","isSleeveClassWork","SleeveClassWork","isSleeveCrimeWork","CRIME","SleeveCrimeWork","getExp","fmt","problemType","getRandomProblemType","getRandomReward","randServer","getRandomServer","contractFn","getRandomFilename","addContract","generateRandomContractOnHome","generateContract","problemTypes","rewardType","factionsThatAllowHacking","offerHackingWork","sanitizeRewardType","numFactions","randFaction","allJobs","randIndex","CorporationState","numUnlockUpgrades","CorporationUpgrades","upgradeMultipliers","addFunds","isFinite","getState","marketCycles","gameCycles","resetImports","issueNewSharesCooldown","cycleValuation","determineCycleValuation","determineValuation","cycleProfit","updateDividendTax","retainedEarnings","getCycleDividends","updateSharePrice","nextState","dividendTax","dividendsPerShare","dividends","valuationsList","valuation","getTargetSharePrice","targetPrice","immediatelyUpdateSharePrice","sharesTracker","sharesUntilUpdate","sharesSold","maxIterations","convertCooldownToString","cd","upgN","upgradeAmt","benefit","getProductionMultiplier","getDreamSenseGain","getAdvertisingMultiplier","getEmployeeCreMultiplier","getEmployeeChaMultiplier","getEmployeeIntMultiplier","getEmployeeEffMultiplier","getSalesMultiplier","getScientificResearchMultiplier","getStarterGuide","hasHandbook","handbookFn","showLiterature","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","ZOE","EsperEyewear","EMS4Recombination","OrionShoulder","HyperionV1","HyperionV2","GolemSerum","VangelisVirus","VangelisVirus3","INTERLINKED","BladeRunner","BladeArmor","BladeArmorPowerCells","BladeArmorEnergyShielding","BladeArmorUnibeam","BladeArmorOmnibeam","BladeArmorIPU","StaneksGift2","StaneksGift3","BigDsBigBrain","donationBonus","randomBonuses","bonuses","randomNumber","getRandomBonus","UnstableCircadianModulatorParams","UnstableCircadianModulator","AevumGalacticCybersystems","Sector12DeltaOne","AevumPolice","VolhavenZBInstituteOfTechnology","AevumSummitUniversity","AevumCrushFitnessGym","Sector12IronGym","VolhavenMilleniumFitnessGym","Sector12PowerhouseGym","AevumSnapFitnessGym","infiltrateCycles","INFILTRATE","SleeveInfiltrateWork","nextPosition","baseSalary","repMultiplier","reqdHacking","reqdStrength","reqdDefense","reqdDexterity","requiredAgility","reqdAgility","reqdCharisma","reqdReputation","hackingEffectiveness","strengthEffectiveness","defenseEffectiveness","dexterityEffectiveness","agilityEffectiveness","charismaEffectiveness","strengthExpGain","defenseExpGain","dexterityExpGain","agilityExpGain","calculateJobPerformance","hackRatio","strRatio","defRatio","dexRatio","agiRatio","chaRatio","reputationGain","moneyHacked","orgName","percTotalMoneyHacked","influenceStockThroughServerGrow","moneyGrown","percTotalMoneyGrown","performanceMult","cyclesOfWork","compName","checkEnum","enumVariable","StartButton","char","CorruptableText","setContent","counter","timers","letter","randFrom","randomize","timerId","GRAFTING","GraftingWork","gAugs","GraftableAugmentations","GraftableAugmentation","FactionInfo","offerFieldWork","offerSecurityWork","keep","keepOnInstall","assignment","FactionWorkStats","baseStats","getMult","getUpgrade","getUpgradeCost","newCap","determineCrimeSuccess","found","findCrime","roughName","CorporationUpgradeIndex","SmartFactories","SmartStorage","DreamSense","WilsonAnalytics","NuoptimalNootropicInjectorImplants","SpeechProcessorImplants","NeuralAccelerators","FocusWires","ABCSalesBots","ProjectInsight","atCapacity","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","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","awareness","popularity","reqMat","ProductRatingWeights","rat","Quality","Performance","Durability","Reliability","Aesthetics","Features","prodMats","ProgramsSeen","ProgramsRoot","getHackingLevelRemaining","disableGutters","gridTemplateColumns","curCompletion","getProgCompletion","Paper","flexWrap","mr","InvitationsSeen","WorkTypesOffered","FactionElement","facInfo","joined","gap","openFaction","openFactionAugPage","acceptInvitation","ml","justifyItems","gridAutoFlow","FactionsRoot","allJoinedFactions","invitations","breakpoints","down","gridTemplateRows","gridAutoRows","destroyedBitNode","newBitNode","bitNodeNumber","sourceFileKey","sourceFile","alreadyOwned","ownedSourceFile","playerSrcFile","PlayerOwnedSourceFile","giveSourceFile","ActivateRecoveryMode","RecoveryRoot","errorData","resetError","issueUrl","newIssueUrl","startIcon","onTriggered","px","multiline","fullWidth","RamCalculationErrorCode","sharePower","StartSharing","CSM","nsFuncsGenerator","sanitizedPid","Environment","getScriptOnServer","shouldLog","disableLogs","Person","crimeKey","getMemoryUpgradeCost","memory","currCost","currMemory","installAugmentation","updateStatLevels","cyclesUsed","SleeveRecoveryWork","SleeveSynchroWork","takeUniversityCourse","universityName","newCity","tryBuyAugmentation","upgradeMemory","workType","sanitizedWorkType","workoutAtGym","gymName","stat","sanitizedStat","Contracts","recruitmentSuccessChance","contractSuccessChance","bb","chances","popEst","locations","OptionsSlider","initialValue","_evt","newValue","onChangeCommitted","valueLabelDisplay","marks","TickerDisplayMode","DisplayModeButton","tickerDisplayMode","Portfolio","changeDisplayMode","StockTickersConfig","changeWatchlistFilter","maintainMembership","finishAction","penalty","hack_asc_points","str_asc_points","def_asc_points","dex_asc_points","agi_asc_points","cha_asc_points","resetPidCounter","setMaxRam","EPSILON","decay","getSuccessChance","baseTime","skillFac","effDexterity","statFac","est","clamp","real","low","high","competence","playerStatLvl","effMultiplier","getSuccessesNeededForNextLevel","baseSuccessesPerLevel","newCrimeType","convertCrimeType","ROBSTORE","BONDFORGERY","TRAFFICKARMS","GRANDTHEFTAUTO","calculateCrimeWorkStats","frames","Apr1Events","Apr1","getMonth","getDate","isApr1","setN","allow","litObj","Literatures","currentCity","onTravel","WorldMap","SuccessChance","estimatedSuccessChance","StaticModal","isSleeveRecoveryWork","RECOVERY","isSleeveSynchroWork","SYNCHRO","logEntry","logUpd","displayLog","recordGrow","recordWeaken","checkIfConnectedToDarkweb","listAllDarkwebItems","item","printRaw","buyDarkwebItem","itemName","buyAllDarkwebItems","itemsToBuy","calculateRawDiff","startingDifficulty","calculateDifficulty","calculateReward","parseArg","asNumber","ParseCommands","allCommands","flat","ParseCommand","idx","lastQuote","DOUBLE_QUOTE","QUOTE","CinematicText","setI","done","setDone","onDone","newI","auto","MaxSleevesFromCovenant","BaseCostPerSleeve","parseOnlyRamCalculate","dependencyMap","completedParses","parseQueue","parseCode","moduleName","currentModule","globalKey","internalToExternal","additionalModules","addRef","external","objectPrototypeProperties","getOwnPropertyNames","commonVisitors","Identifier","st","WhileStatement","walkDeeper","test","DoWhileStatement","ForStatement","update","IfStatement","consequent","alternate","MemberExpression","walk","importModuleName","spec","imported","parseOnlyCalculateDeps","initialModule","nextModule","ImportError","detailedCosts","unresolvedRefs","resolvedRefs","loadedFns","dep","findFunc","refDetail","fnRam","checkInfiniteLoop","missingAwaitLine","nodeHasTrueTest","hasAwait","AwaitExpression","codeCopy","decimal","pidCounter","tempCounter","isHackingGang","respectGainRate","wantedGainRate","storedTerritoryAndPowerCycles","territoryClashChance","territoryWarfareEngaged","notifyMemberDeath","getPower","getTerritory","processGains","processExperienceGains","processTerritoryAndPowerGains","moneyGains","respectGains","wantedLevelGains","justice","recordEarnedRespect","oldWanted","newWanted","gangName","calculatePower","gainRoll","multiplicativeGain","powerMult","PowerMultiplier","additiveGain","gangs","others","thisGang","otherGang","thisPwr","thisChance","calculateTerritoryGain","winGang","loseGang","powerBonus","territoryGain","clash","gainExperience","won","baseDeathChance","modifiedDeathChance","killMember","getRespectNeededToRecruitMember","getWantedPenalty","memberTotal","totalRespect","lostRespect","earnedRespect","ascend","getDiscount","getAllTaskNames","taskName","newRemoteFileApiConnection","stopConnection","Remote","startConnection","isRemoteFileApiConnectionLive","connection","readyState","tooltiptext","reqRep","TerminalHelpText","TemplatedHelpTexts","HelpTexts","analyze","backdoor","cat","check","cls","cp","expr","free","help","history","lscpu","mem","nano","sudov","unalias","GameEnv","Platform","getErrorForDisplay","errorInfo","isElectron","Production","toDisplay","language","cookiesEnabled","cookieEnabled","doNotTrack","indexedDb","platform","Steam","Browser","environment","getErrorMetadata","Development","componentStack","Tracking","Retirement","Investigation","Raid","initValue","Hand","cards","addCards","removeByIndex","StockTickerTxButton","DummyGrid","DummyGift","fragments","ghostGrid","getContract","contractName","removeContract","existingPartialExeIndex","findIndex","newScript","writeToTextFile","newFile","CodingContractModal","setProps","setAnswer","contractType","tries","BitFlumeEvent","BitFlumeModal","terminalCommandHistory","generalMethods","workMethods","processWork","augmentationMethods","canAccessBladeburner","bladeburnerMethods","startBladeburner","canAccessCorporation","corporationMethods","startCorporation","gangMethods","serverMethods","InvitationModal","opt_initFunc","sourceCode","sourceCodeLineOffset","acorn","PARSE_OPTIONS","initFunc_","paused_","polyfills_","functionCounter_","stepFunctions_","stepMatch","methodName","createScope","stripLocations_","State","stateStack","nodeConstructor","READONLY_DESCRIPTOR","configurable","writable","NONENUMERABLE_DESCRIPTOR","READONLY_NONENUMERABLE_DESCRIPTOR","VARIABLE_DESCRIPTOR","STEP_ERROR","SCOPE_REFERENCE","VALUE_IN_DESCRIPTOR","toStringCycles_","getErrorLineNumber","getErrorLineNumberMessage","appendCode","populateScope_","initGlobalScope","OBJECT_PROTO","FUNCTION_PROTO","initFunction","initObject","proto","OBJECT","initArray","initString","initBoolean","initNumber","initDate","initRegExp","initError","initMath","initJSON","thisInterpreter","createNativeFunction","EvalError","parseInt","strFunctions","decodeURI","encodeURI","nativeFunc","throwException","URI_ERROR","FUNCTION","ARRAY","ARRAY_PROTO","REGEXP","REGEXP_PROTO","DATE","DATE_PROTO","identifierRegexp","var_args","calledWithNew","newFunc","createObjectProto","arguments","argsStr","SYNTAX_ERROR","parentScope","boxThis","isObject","getScope","strict","box","getPrototype","thisArg","func_","funcThis_","arguments_","arrayPseudoToNative","TYPE_ERROR","doneExec_","setNativeFunctionPrototype","valueOf","throwIfNullUndefined","arrayNativeToPseudo","descriptor","preventExtensions","getOwnPropertyDescriptor","setter","hasValue","pseudoDescriptor","propertyIsEnumerable","newArray","first","legalArrayLength","RANGE_ERROR","class","reverse","howmany","opt_begin","opt_end","opt_separator","iLength","getProperty","hasProperty","element","isa","jLength","searchElement","opt_fromIndex","STRING","fromCharCode","functions","compareString","locales","localeCompare","separator","jsList","search","newSubstr","BOOLEAN","NUMBER","numConsts","fractionDigits","toExponential","digits","precision","toPrecision","radix","Function","UTC","pattern","rgx","populateRegExp","lastIndex","opt_message","newError","createObject","createErrorSubclass","EVAL_ERROR","REFERENCE_ERROR","myMath","mathConsts","numFunctions","myJSON","nativeObj","child","legalArrayIndex","Value","strs","pseudoRegexp","nativeRegexp","ignoreCase","createFunction","opt_constructor","illegalConstructor","asyncFunc","pseudoDate","pseudoObj","opt_cycles","pseudo","native","nativeArray","pseudoArray","lineNum","isGetter","TypeError","opt_descriptor","ReferenceError","defObj","firstNode","expression","createSpecialScope","opt_scope","getValueFromScope","prevNode","setValueToScope","nodeClass","end","isConstructor","getValue","Completion","NORMAL","BREAK","CONTINUE","RETURN","THROW","errorClass","lineNumErrorMsg","unwind","lineNumberMsg","cv","labels","isLoop","isSwitch","realError","errorTable","RangeError","URIError","createGetter_","funcThis","doneCallee_","doneArgs_","createSetter_","elements","n_","array_","doneLeft_","doneRight_","leftReference_","doneGetter_","leftValue_","leftValue","doneSetter_","setterValue_","rightValue","directEval_","funcNode","paramName","paramValue","argsList","evalNode","argsWithCallback","done_","throwValue","mode_","test_","doneInit_","doneObject_","variable_","object_","visited_","name_","gotPropName","props_","doneVariable_","propName","doneProperty_","properties_","kinds","switchValue_","defaultCase_","index_","switchCase","matched_","tested_","doneBlock_","doneHandler_","doneFinalizer_","leftSide_","changeValue","returnValue","declarations","declarationNode","init_","doneBody_","wrapAPI","NetscriptSingularity","NetscriptGang","NetscriptBladeburner","NetscriptCodingContract","NetscriptSleeve","NetscriptCorporation","NetscriptStanek","NetscriptInfiltration","NetscriptUserInterface","NetscriptFormulas","NetscriptStockMarket","NetscriptGrafting","NetscriptHacknet","_hackAmount","hackAmount","_threads","_time","moneyBefore","moneyAfter","logGrowPercent","_growth","_cores","maxThreadsNeeded","finally","_format","_fn","possibleLogs","_x","_y","_pid","_w","_h","_scriptname","scriptServer","spawnDelay","killByPid","_safetyguard","safetyguard","scriptsKilled","_files","_destination","_source","destServer","sourceServ","noFailures","sourceTextFile","textFile","destTextFile","sourceScript","destScript","_grep","grep","allFiles","processes","speed","production","purchaseCost","coreCost","levelCost","_filename","_ram","_name","hostnameStr","_port","_data","_mode","txtFile","tryWrite","_file","status","suc","_n","_milliseconds","_milliPrecision","milliseconds","milliPrecision","_message","_variant","_duration","_txt","_url","_target","$","fail","_host","source_is_txt","dest_is_txt","source_file","dest_file","Flags","NetscriptExtra","numServerGrowthCycles","numServerGrowthCyclesAdjusted","hack_exp","hack_mult","str_exp","str_mult","def_exp","def_mult","dex_exp","dex_mult","agi_exp","agi_mult","cha_exp","cha_mult","assignToTask","unassignFromTask","difficultyPerCycles","getGainedAscensionPoints","canAscend","getCurrentAscensionMults","getAscensionMultsAfterAscend","getAscensionResults","postAscend","preAscend","applyUpgrade","respectToDeduct","buyUpgrade","defaultInterpreter","ANSI_ESCAPE","lineClass","ANSIITypography","memo","parts","groups","matchAll","startIndex","stopIndex","partText","paragraph","part","ansiCodeStyle","COLOR_MAP_BRIGHT","1","2","3","4","5","6","7","COLOR_MAP_DARK","8","9","10","11","12","13","14","15","codeParts","nextStyleKey","codePart","ir","ig","ib","grey","ansi2rgb","fontWeight","textDecoration","findSleevePurchasableAugs","ownedAugNames","availableAugs","isAvailableForSleeve","validMults","gangAugs","worker","companyPositionName","bn11Mult","jobPerformance","StaneksGiftEvents","maxClearanceLevel","Gym","TechVendor","techVendorMaxRam","techVendorMinRam","University","AevumCasino","Casino","Special","NewTokyoArcade","Sector12CarmichaelSecurity","Sector12CityHall","Hospital","Slums","WorldStockExchange","ChongqingChurchOfTheMachineGod","IshimaGlitch","matchEnding","zip","JSZip","zipFiles","fileNames","fileContents","zipFn","generateAsync","FileSaver","saveAs","v2ModalOpen","openV2Modal","V2Modal","stealthIcon","xmlns","viewBox","killIcon","ActionLevel","isActive","canIncrease","canDecrease","Autolevel","TeamSizeButton","graftableAug","canGraft","AugPreReqsChecklist","preAug","GraftingRoot","graftableAugmentations","selectedAug","setSelectedAug","graftOpen","setGraftOpen","selectedAugmentation","switchSortOrder","newOrder","Cost","getAugsSorted","BlinkingCursor","setOn","StyleEditorButton","styleEditorOpen","setStyleEditorOpen","ThemeEditorButton","themeEditorOpen","setThemeEditorOpen","ThemeCollaborate","DeleteGameButton","modalOpened","setModalOpened","SoftResetButton","noConfirmation","PreReqs","ownedPreReqs","hasPreReqs","Requirement","gridArea","Exclusive","PurchasableAugmentations","augNames","PurchasableAugmentation","owned","sleeveAugs","canPurchase","float","gridTemplateAreas","TravelAgencyRoot","setDestination","startTravel","symbolsLoaded","symbols","SetupTextEditor","populate","exclude","OpenScript","lastPosition","model","isTxt","openScripts","currentScript","Root","editorRef","monacoRef","vimStatusRef","vimEditor","setVimEditor","setEditor","setFilter","searchExpanded","setSearchExpanded","setRAM","ramEntries","setRamEntries","updatingRam","setUpdatingRam","decorations","setDecorations","optionsOpen","setOptionsOpen","setOptions","insertSpaces","ramInfoOpen","setRamInfoOpen","regenerateModel","createModel","updateRAM","keydown","ctrlKey","metaKey","require","initVimMode","VimMode","Vim","defineEx","saveNQuit","defineAction","_cm","nTabs","currIndex","currentTabIndex","onTabClick","nextIndex","mapCommand","context","dispose","debouncedUpdateRAM","newCode","entriesDisp","RAM","scriptToSave","cleanCode","ns1","ns2","curIndex","isDisposed","setModel","revealLineInCenter","onTabClose","closingScript","savedScriptCode","wasCurrentScript","dirty","indexOffset","openScript","serverData","getServerCode","handleFilterChange","handleExpandSearch","filteredOpenScripts","tabMaxWidth","tabTextWidth","tabIconWidth","onDragEnd","endIndex","removed","reorder","droppableId","direction","provided","snapshot","innerRef","droppableProps","isDraggingOver","spellCheck","externalScript","colorProps","borderColor","iconButtonStyle","scriptTabText","draggableId","disableInteractiveElementBlocking","draggableProps","dragHandleProps","flexShrink","serverScriptCode","onTabUpdate","beforeMount","languages","registerCompletionItemProvider","provideCompletionItems","suggestions","kind","CompletionItemKind","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","getLanguages","loader","tokenizer","libSource","typescript","javascriptDefaults","addExtraLib","typescriptDefaults","onMount","Position","loading","defaultLanguage","defaultValue","newPos","awaitWarning","newDecorations","deltaDecorations","startLineNumber","startColumn","endLineNumber","endColumn","isWholeLine","glyphMarginClassName","glyphMarginHoverMessage","infLoop","glyphMargin","getAction","getSubdirectories","t_dir","processFile","subdir","containsFiles","dirWithTrailingSlash","makeScriptBlob","compile","shouldCompile","queueCompile","uurls","_getScriptUrls","loadedModule","isDependencyOutOfDate","scriptModuleSequenceNumber","depScript","seen","urlStack","ranges","importNodes","ExportNamedDeclaration","ExportAllDeclaration","transformedCode","matchingScripts","importedScript","urls","blob","ScriptUrl","vargs","schema","numDashes","libarg","argv","TablePaginationActionsAll","rowsPerPage","onPageChange","BitnodeMultiplierDescription","BitNodeMultipliersDisplay","maxSfLevel","columnCount","columnGap","GeneralMults","SkillMults","FactionMults","AugmentationMults","HackingMults","PurchasedServersMults","StockMults","CrimeMults","InfiltrationMults","CompanyMults","GangMults","CorporationMults","BladeburnerMults","StanekMults","BNMultTable","rowsArray","rowData","uniqueId","marginBottom","sectionName","extraSize","StnakesGiftPowerMultiplier","Cell","cellProps","onMouseEnter","Grid","activeGrid","randomColor","elems","newNs2Template","detectSimpleScriptGlob","globString","globDatabase","parsedGlob","glob","preGlob","postGlob","globError","globMatches","globAgainst","parseSimpleScriptGlob","commonEditor","scriptEditorRouteOptions","filesToLoadOrCreate","globSearch","isEmpty","filepath","getFilepath","fileIsNs2","isNs2","CursorPositions","saveCursor","column","HammingEncode","enc","data_bits","parity","HammingEncodeProperly","HammingDecode","bits","bit","ans","automate","stop","findNode","setParent","queue","getMultiplierHelper","getProductProductionMultiplier","advertisingMult","employeeChaMult","employeeCreMult","employeeEffMult","employeeIntMult","productionMult","productProductionMult","salesMult","sciResearchMult","storageMult","StanekConstants","RAMBonus","BaseSize","MaxSize","detect","hasChanges","orig","nf","fl","backups","currPos","nextPosName","corpName","additionalShares","warehouseApi","OfficeApi","Engine","_lastUpdate","updateGame","decrementAllCounters","checkCounters","Counters","autoSaveCounter","updateSkillLevelsCounter","updateDisplays","updateDisplaysLong","updateActiveScriptsDisplay","createProgramNotifications","augmentationsNotifications","passiveFactionGrowth","mechanicProcess","contractGeneration","achievementsCounter","counterName","warningToast","warnAutosaveDisabled","adjustedCycles","startExploits","setupUncaughtPromiseHandler","timeOffline","numCyclesOffline","numContracts","offlineReputation","offlineHackingIncome","offlineProductionFromHacknetNodes","hacknetProdInfo","timeOfflineString","_thisUpdate","requestAnimationFrame","LoadingScreen","setShow","loaded","setLoaded","reason","doLoad","ignoreQueued","stacks","calculateEntropy","typ","invalidArgs","baseSize","charge","af","cotmg","inBonus","updateMults","effect","boost","neighboor","CalculateEffect","canPlace","rootX","rootY","newFrag","aFrag","place","findFragment","clearCharge","calculateMults","zoeAmt","scaling","sleeveMults","Void","RFARequestHandler","pushFile","fileData","at","getFile","scriptContent","getFileNames","fileNameList","scr","getAllFiles","fileList","calculateRam","getDefinitionFile","StatsElement","EarningsElement","rates","ServerType","All","Foreign","Owned","Purchased","ServerDropdown","isValidServer","purchased","serverType","purchase","DECK_COUNT","Result","Blackjack","bet","canStartGame","playerHand","deck","safeDrawCard","dealerHand","setState","gameInProgress","Pending","getTrueHandValue","finishGame","Tie","PlayerWonByBlackjack","DealerWon","hand","handValues","getHandValue","valuesUnder21","isHandBusted","newHand","newDealerHand","PlayerWon","dealerHandValue","playerHandValue","betInput","wager","wagerInvalid","wagerInvalidHelperText","startGame","Deck","render","playerHandValues","getHandDisplayValues","dealerHandValues","wagerOnChange","helperText","playerHit","playerStay","startOnClick","elevation","card","hidden","red","ReactCard","Clubs","Spades","allFactionAugs","factionAugs","factionAug","TickerHeaderFormatData","longestName","longestSymbol","AchievementEntry","cssFiltersUnlocked","cssFiltersLocked","isUnlocked","mainColor","achievedOn","unlocked","colorFilters","Color","hueRotate","angle","PI","sin","cos","multiply","grayscale","sepia","saturate","matrix","newR","newG","newB","brightness","linear","contrast","slope","intercept","invert","hsl","Solver","targetHSL","reusedColor","solve","solveNarrow","solveWide","css","best","initial","spsa","A1","iters","bestLoss","deltas","highArgs","lowArgs","ck","lossDiff","ak","fix","filters","colorHSL","getFiltersFromHex","hex","rgb","hexToRgb","Theme","credit","screenshot","img1","reference","outputHistory","startHack","startGrow","startWeaken","startBackdoor","startAnalyze","finishHack","oldSec","newSec","finishGrow","finishWeaken","finishBackdoor","finishAnalyze","currServ","isHacknet","org","canRunScripts","hackingSkill","security","hackingChance","numPort","getProgressText","getLitFile","lit","currDir","setcwd","contractOpen","executeScanAnalyzeCommand","visited","depthQueue","newS","titleDashes","connectToServer","executeCommands","commandHistory","commandHistoryIndex","executeCommand","n00dlesServ","commandName","scananalyze","apr1","removeBracketsFromArrayString","strCpy","removeQuotesFromString","convert2DArrayToString","nums","ways","maxLen","padStart","spiral","u","col","playerAns","_arr","reach","jumps","lastJump","jumpedFrom","intervals","numIntervals","interval","sanitizedResult","sanitizedAns","B","C","ansArr","ipInAns","maxCur","maxSoFar","hold1","MIN_SAFE_INTEGER","hold2","release1","release2","prices","hold","rele","cur","createTriangleRecurse","numLevels","createTriangle","triangle","dp","numRows","numColumns","currentRow","gridString","grid","obstacleGrid","dstY","dstX","minPathLength","distanceFactor","distance","MinHeap","validPosition","neighbors","yN","xN","changeWeight","yQ","xQ","ansX","ansY","roll","dfs","pair","sanitizedPlayerAnsArr","resultInAnswer","numDigits","digitsArray","helper","evaluated","multed","_alteredBit","_buildArray","_randomIndex","edges","shuffle","vertexShuffler","sanitizedPlayerAns","neighbourhood","vertex","adjLeft","adjRight","coloring","initialVertex","frontier","validColors","aColor","bColor","plaintext","ans_plain","run_length","compressed","BinHeap","heapifyUp","heapifyDown","predicate","heapOrderABeforeB","tmp","toSwap","weightA","weightB","requireHackingLevel","targetServer","numAugReq","ipaddress","byteRange","formattedHours","getHours","formattedMinutes","getMinutes","formattedSeconds","getSeconds","AllSoftwarePositions","AllITPositions","AllNetworkEngineerPositions","SecurityEngineerPositions","AllTechnologyPositions","AllBusinessPositions","AllAgentPositions","AllSecurityPositions","AllSoftwareConsultantPositions","AllBusinessConsultantPositions","SoftwarePositionsUpToHeadOfEngineering","SoftwarePositionsUpToLeadDeveloper","BusinessPositionsUpToOperationsManager","WaiterOnly","EmployeeOnly","PartTimeWaiterOnly","PartTimeEmployeeOnly","OperationsManagerOnly","CEOOnly","effectText","costPerLevel","hasTargetServer","collapsedSum","empty","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","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","imp","processProduct","totalProfit","forProduct","netStorageSize","sCostString","businessProd","calculateEffectWithFactors","awarenessFac","popularityFac","ratioFac","updateResearchTree","expFac","linearFac","morale","happiness","energy","det","trainingEff","effCre","effEff","prodBase","checkFormulasAccess","_favor","_rep","_player","_exp","_mult","_skill","_server","_startingLevel","_extraLevels","_costMult","_startingRam","_startingCore","_extraCores","extraCores","_ramUsed","_maxRam","HScalculateHashGainRate","HScalculateLevelUpgradeCost","HScalculateRamUpgradeCost","HScalculateCoreUpgradeCost","_startingCache","_extraCache","extraCache","HScalculateCacheUpgradeCost","HScalculateServerCost","_gang","_member","_task","_points","_crimeType","_classType","_locationName","checkTixApiAccess","getStockFromSymbol","_symbol","_shares","_posType","sanitizedPosType","_pos","orderPos","ltype","lpos","stockMarketOrders","forecast","checkGraftingAPIAccess","_focus","wasFocusing","craftableAug","getPlayerFields","matchJS","matchScript","offenders","processScript","formatRules","formatOffenders","off","fileline","rule","textfield","Language","InteractiveTutorialRoot","nsSelectionOpen","setNSSelectionOpen","setLanguage","tutorialScriptExtension","NS1","tutorialScriptName","contents","canNext","square","tab","updateOptions","readOnly","overviewContainer","visibilityToggle","collapse","Overview","setX","setY","CurrentIcon","KeyboardArrowUpIcon","KeyboardArrowDownIcon","LeftIcon","SchoolIcon","EqualizerIcon","fakeDrag","triggerMouseEvent","eventType","clickEvent","createEvent","initEvent","dispatchEvent","Loading","onStop","defaultPosition","onDoubleClick","openedMixin","transitions","easing","sharp","enteringScreen","closedMixin","leavingScreen","up","Drawer","styled","shouldForwardProp","active","borderLeft","listitem","SidebarRoot","hackingOpen","setHackingOpen","characterOpen","setCharacterOpen","worldOpen","setWorldOpen","helpOpen","setHelpOpen","flashTerminal","flashStats","flashActiveScripts","flashHacknet","flashCity","flashTutorial","augmentationCount","invitationsCount","programCount","getAvailableCreatePrograms","canOpenFactions","canOpenAugmentations","canOpenSleeves","canCorporation","canGang","canJob","canStockMarket","canBladeburner","canStaneksGift","clickTerminal","clickScriptEditor","clickStats","clickActiveScripts","clickCreateProgram","clickFactions","clickAugmentations","clickHacknet","clickCity","clickTravel","clickJob","clickBladeburner","clickGang","clickTutorial","clickOptions","handleShortcuts","altKey","E","H","R","P","F","U","G","anchor","timeout","unmountOnExit","clsx","badgeContent","NeuroFluxDisplay","EntropyDisplay","AugmentationsRoot","installOpen","setInstallOpen","InstalledAugmentations","sourceAugs","Alphabetically","aug1","aug2","BitNodeModifiedStats","MultiplierList","listItems","augmented","bnMult","py","disableTypography","disablePadding","PlayerMultipliers","augP","augObj","calculateAugmentedStats","leftColData","rightColData","PurchasedAugmentations","displayName","enterNextDelay","safeGetSf","sfNum","sfObj","getMaxLevel","SourceFilesElement","sourceSfs","sf1","sf2","selectedSf","setSelectedSf","DevMenuRoot","General","setError","setCorporationName","gangFaction","setGangFaction","addMoney","TransitionProps","expandIcon","bigNumber","modifyExp","modifier","modifyKarma","resetExperience","modifyFactionRep","AllFaction","modifyFactionFavor","labelId","arial-label","setAugmentation","validSFN","setSF","sfN","sfLvl","setAllSF","setProgram","AllPrograms","Servers","setServer","setCompany","modifyCompanyRep","AllCompanies","modifyCompanyFavor","modifyBladeburnerRank","modify","modifyBladeburnerCycles","modifyGangCycles","modifyCorporationFunds","modifyCorporationCycles","CodingContracts","setCodingcontract","cc","stockPrice","setStockPrice","setStockSymbol","processStocks","inputSymbols","SM","stocks","sleeveSetStoredCycles","Stanek","modCycles","modCharge","TimeSkip","timeskip","SaveFile","importInput","setSaveFile","restoreScripts","setRestoreScripts","restoreAugs","setRestoreAugs","restoreSFs","setRestoreSFs","File","FileList","ii","playerAchievement","setPlayerAchievements","achieved","grantAchievement","removeAchievement","Entropy","BladeburnerRoot","travelOpen","setTravelOpen","inFaction","wordBreak","TravelModal","nopadding","preformatted","Line","Console","setCommand","consoleInput","consoleHistoryIndex","setConsoleHistoryIndex","Logs","tabIndex","inputRef","prevCommand","currentTarget","scrollHook","scrollTop","scrollHeight","AllPages","GeneralActionPage","GeneralActionList","actions","GeneralActionElem","computedActionTimeCurrent","actionData","ContractPage","ContractList","ContractElem","StealthIcon","KillIcon","OperationPage","OperationList","OperationElem","TeamSizeModal","BlackOpPage","BlackOpList","blackopName","blackop","BlackOpElem","hasReqdRank","SkillPage","valid","onUpgrade","SkillList","SkillElem","canLevel","GangRoot","ManagementSubpage","GangStats","territoryStr","BonusTime","CyclerPerSecond","bonusMillis","GangMemberList","ascendOnly","setAscendOnly","onRecruit","GangMemberCard","GangMemberCardContent","ascendOpen","setAscendOpen","borderRightWidth","onAscend","borderLeftWidth","onTaskChange","GangMemberStats","asc","KillScriptsModal","TaskSelector","currentTask","setCurrentTask","contextMember","TaskDescription","AscensionModal","RecruitButton","RecruitModal","setName","recruit","onKeyUp","TerritorySubpage","gangNames","infoOpen","setInfoOpen","formatTerritory","OtherGangTerritory","clashVictoryChance","TerritoryInfoModal","NextReveal","PurchasedUpgrade","UpgradeButton","GangMemberUpgradePanel","currentCategory","setCurrentCategory","filterUpgrades","weaponUpgrades","armorUpgrades","vehicleUpgrades","rootkitUpgrades","augUpgrades","categories","Weapons","Vehicles","Rootkits","EquipmentsSubpage","CorporationRoot","setDivisionName","canExpand","industryType","MainPanel","CityTabs","setCity","cityStateSetter","SwitchButton","manualMode","switchMode","ManualManagement","setEmployee","employeePositionSelectorInitialValue","employeePositions","positionNames","EmployeeCount","next","currJob","nextJob","nextUna","AutoManagement","vechain","totalMorale","totalHappiness","totalEnergy","avgMorale","avgHappiness","avgEnergy","currUna","IndustryOffice","upgradeOfficeSizeOpen","setUpgradeOfficeSizeOpen","throwPartyOpen","setThrowPartyOpen","employeeManualAssignMode","setEmployeeManualAssignMode","UpgradeSizeButton","upgradeSize","UpgradeOfficeSizeModal","upgradeCost","upgradeCost15","maxMult","maxNum","multIncrease","upgradeCostMax","ThrowPartyModal","setCost","canParty","EffectText","MakeProductButton","makeOpen","setMakeOpen","hasMaxProducts","createProductButtonText","IndustryOverview","researchOpen","setResearchOpen","advertisingInfo","advertisingFactors","totalAdvertisingFac","convertEffectFacToGraphic","MakeProductModal","allCities","design","setDesign","marketing","setMarketing","createProductPopupText","Upgrade","wrapInTooltip","ele","but","ResearchModal","retainHeight","WarehouseRoot","smartSupplyOpen","setSmartSupplyOpen","canAffordUpgrade","stateText","mats","isInStock","isRelevant","breakdownItems","breakdown","previous","IndustryWarehouse","EmptyWarehouse","Leftover","setChecked","SmartSupplyModal","ProductElem","sellOpen","setSellOpen","limitOpen","setLimitOpen","discontinueOpen","setDiscontinueOpen","cancelOpen","setCancelOpen","marketTaOpen","setMarketTaOpen","nfB","hasUpgradeDashboard","sellButtonText","limitProductionButtonText","DiscontinueProductModal","LimitProductProductionModal","setLimit","SellProductModal","iQty","setQty","setPx","initialPrice","MarketTA2","ProductMarketTaModal","CancelProductModal","MaterialElem","purchaseMaterialOpen","setPurchaseMaterialOpen","exportOpen","setExportOpen","sellMaterialOpen","setSellMaterialOpen","materialMarketTaOpen","setMaterialMarketTaOpen","limitProductionOpen","setLimitProductionOpen","tutorial","purchaseButtonText","limitMaterialButtonText","disablePurchaseLimit","ExportModal","possibleDivisions","defaultDivision","setIndustry","setAmt","removeExport","currentDivision","possibleCities","newCost","setNewCost","MaterialMarketTaModal","SellMaterialModal","setPrice","BulkPurchaseSection","setBuyAmt","setDisabled","BulkPurchaseText","parsedAmt","PurchaseMaterialModal","purchaseMaterial","LimitMaterialProductionModal","IndustryProductEquation","reqs","reqAmt","ExpandNewCity","ExpandIndustryTab","possibleIndustries","newIndustry","multRows","appendMult","DividendsStats","PublicButtons","PrivateButtons","BribeButton","Upgrades","findInvestorsopen","setFindInvestorsopen","goPublicopen","setGoPublicopen","fundingAvailable","findInvestorsTooltip","upgradeData","sellSharesOpen","setSellSharesOpen","buybackSharesOpen","setBuybackSharesOpen","issueNewSharesOpen","setIssueNewSharesOpen","issueDividendsOpen","setIssueDividendsOpen","sellSharesOnCd","sellSharesTooltip","issueNewSharesOnCd","issueNewSharesTooltip","canBribe","totalDividends","playerEarnings","storedTime","LevelableUpgrade","xs","UU","BribeFactionModal","selectedFaction","setSelectedFaction","getRepText","SellSharesModal","setShares","ProfitIndicator","BuybackSharesModal","CostIndicator","IssueDividendsModal","percent","setPercent","canIssue","maxNewSharesUnrounded","maxNewShares","newShares","IssueNewSharesModal","issueNewShares","privateOwnedRatio","maxPrivateShares","privateShares","dialogContents","FindInvestorsModal","GoPublicModal","InfiltrationRoot","setStart","StartingDifficulty","Difficulty","Reward","cancel","Stage","minigames","SlashGame","BracketGame","BackwardGame","BribeGame","CheatCodeGame","Cyberpunk2077Game","MinesweeperGame","WireCuttingGame","setLevel","stage","setStage","Countdown","results","setResults","gameIds","setGameIds","lastGames","nextGameId","ids","setupNextGame","pushResult","stageComponent","onFinish","Minigame","MiniGame","onSuccess","Sell","onFailure","automated","Progress","difficulties","timer","words","makeAnswer","setGuess","hasAugment","BACKSPACE","shiftKey","ignorableKeyboardEvent","nextGuess","setRight","OPEN_BRACKET","LESS_THAN","OPEN_PARENTHESIS","OPEN_BRACE","generateLeftSide","CLOSE_PARENTHESIS","CLOSE_BRACKET","CLOSE_BRACE","GREATER_THAN","getChar","positive","option","negative","shuffleArray","makeChoices","correctIndex","setCorrectIndex","setIndex","currentChoice","choice","defaultColor","disabledColor","upColor","downColor","choiceColor","upIndex","upDistance","downIndex","downDistance","onCorrectIndex","newIndex","arrows","arrow","generateCode","puzzle","randChar","generatePuzzle","answers","generateAnswers","currentAnswerIndex","setCurrentAnswerIndex","setPos","flatGrid","isCorrectAnswer","optionColor","move","mines","minefield","generateEmptyField","generateMinefield","memoryPhase","setMemoryPhase","flagged","marked","fieldEquals","phase","setPhase","phaseZeroTime","timeUntilAttacking","Victory","quitInfiltration","handleInfiltrators","soa","infiltrationRepGain","isMemberOfInfiltrators","wiresmin","wiresmax","PIPE","DOT","FORWARD_SLASH","HYPHEN","HASH","colorNames","blue","wires","numWires","wireColors","generateWires","cutWires","setCutWires","questions","numQuestions","questionGenerators","randomPositionQuestion","randomColorQuestion","generateQuestion","checkWire","wireNum","shouldCut","wiresToBeCut","shouldBeCut","question","isCorrectWire","wire","wireColor","cutColor","arrowPart","Intro","CYCLES_PER_SEC","ExpRows","WorkInProgressRoot","workInfo","buttons","stopText","completion","unfocus","classWork","elapsed","stopTooltip","comp","tooltipInfo","GameOptionsRoot","currentTab","setCurrentTab","SYSTEM","setTab","INTERFACE","GAMEPLAY","MISC","REMOTE_API","SideBarTab","sideBarProps","tabName","GameOptionsSidebar","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","confirmedImportGame","alt","ServerAccordion","FileDiagnosticModal","FontFamilyField","refreshId","errorText","setErrorText","setFontFamily","LineHeightField","setLineHeight","StyleEditorModal","setRefreshId","customStyle","setCustomStyle","persistToSettings","endIcon","ColorEditor","onColorChange","hideTextfield","deferred","newColor","disableAlpha","ThemeEditorModal","customTheme","setCustomTheme","setTemplateTheme","placement","maxRows","importedTheme","GameplayPage","InterfacePage","timestampFormat","setTimestampFormat","setLocale","MiscPage","RemoteAPIPage","remoteFileApiPort","setRemoteFileApiPort","isConnected","ConnectionBauble","setConnection","ipaddr","address","protocol","WebSocket","handleMessageEvent","response","SystemPage","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","_event","SleeveRoot","FAQOpen","setFAQOpen","SleeveElem","statsOpen","setStatsOpen","augmentationsOpen","setAugmentationsOpen","abc","setABC","doing","MoreStatsModal","SleeveAugmentationsModal","PurchaseAugmentationModal","universitySelectorOptions","gymSelectorOptions","bladeburnerSelectorOptions","possibleJobs","forbiddenCompanies","otherSleeve","possibleFactions","forbiddenFactions","factionObj","second","universities","gyms","possibleContracts","Synchronize","canDo","getABC","s0","setS0","setS1","setS2","validActions","detailsF","details2","detail","FAQModal","HacknetRoot","purchaseMultiplier","setPurchaseMultiplier","purchaseMultiplierOnClicks","onClicks","GeneralInfo","HacknetNodeElem","purchaseMult","upgradeLevelButton","upgradeRAMButton","upgradeCoresButton","increase","upgradeLevelCost","upgradeRamCost","upgradeCoreCost","HacknetServerElem","upgradeRamButton","upgradeCacheButton","base_increase","modded_increase","upgradeCacheCost","HashUpgradeModal","serversMap","HacknetUpgradeElem","selectedServer","setSelectedServer","MultiplierButton","MultiplierButtons","btnProps","PlayerInfo","hasServers","PurchaseButton","GenericLocation","locContent","locName","getLocationSpecificContent","CompanyLocation","quitOpen","setQuitOpen","isEmployedHere","favorGain","onQuit","QuitJobModal","GymLocation","train","HospitalLocation","getHealed","currHp","btnStyle","SlumsLocation","shopliftChance","robStoreChance","mugChance","larcenyChance","drugsChance","bondChance","armsChance","homicideChance","gtaChance","kidnapChance","assassinateChance","heistChance","SpecialLocation","handleBladeburner","worldHeader","HTMLElement","handleGrafting","CreateCorporation","handleCotMG","renderBladeburner","toStanek","renderCotMG","CreateCorporationModal","canSelfFund","n00dlePower","ArcadeRoot","Megabyteburner2000","currentGame","BBCabinetRoot","origin","joystick","borderStyle","borderWidth","ServerButton","TechVendorLocation","purchaseServerButtons","RamButton","TorButton","purchaseTorRouter","CoresButton","maxCores","PurchaseServerModal","setHostname","tryToPurchaseServer","TravelConfirmationModal","UniversityLocation","take","dataStructuresCost","networksCost","algorithmsCost","managementCost","leadershipCost","GameType","CasinoLocation","setGame","Coin","Slots","Roulette","numDecks","drawCard","CoinFlip","investment","setInvestment","setResult","setStatus","playLock","setPlayLock","play","correct","redNumbers","strategies","Red","payout","Black","Odd","Even","High","Low","Third1","Third2","Third3","Single","canPlay","setCanPlay","lock","setLock","strategy","playerWin","isRed","currentNumber","getPayout","payLines","SlotMachine","locks","setLocks","stoppedOne","getPaylineData","payline","point","countSequence","checkWinnings","getTable","LocationLetter","ASCIICity","locationLettersRegex","letterMap","K","M","N","Q","V","Y","lineElems","startI","endI","locationI","ListCity","locationButtons","LocationCity","OptionsModal","setInsertSpaces","setFontSize","setWordWrap","setVim","themePath","themeCopy","setThemeCopy","MilestonesRoot","milestones","highestMilestone","milestone","ActionTimer","TerminalRoot","setKey","doScroll","hook","scrollIntoView","debounced","maxWait","unsubscribe","scrollId","TerminalInput","terminalInput","postUpdateValue","setPostUpdateValue","possibilities","setPossibilities","saveValue","postUpdate","modifyInput","mod","inputLength","selectionStart","inputText","delStart","moveTextCursor","keyDown","autoComplete","onBlur","TAB","semiColonIndex","allPos","determineAllPossibilitiesForTabCompletion","tabCompletion","selectionEnd","anchorEl","parentDirPath","evaledParentDirPath","addAllCodingContracts","cct","addAllLitFiles","addAllPrograms","addAllScripts","processFilepath","addAllTextFiles","addAllDirectories","subdirs","t_parentDirPath","convertParentPath","isCommand","cmd","t_cmd","autocomplete","runArgs","permissive","flagFunc","autocompleteData","txts","pos2","scriptAutocomplete","addAllMessages","allPossibilities","oldValue","longestStartSubstr","TutorialRoot","confirmResetOpen","setConfirmResetOpen","ActiveScriptsRoot","ScriptProduction","prodRateSinceLastAug","ServerAccordions","setRowsPerPage","serverToScriptMap","filtered","rowsPerPageOptions","newPage","onRowsPerPageChange","ActionsComponent","paddedName","barOptions","headerTxt","ServerAccordionContent","noborder","WorkerScriptAccordion","killScript","onlineMps","onlineEps","RecentScriptsPage","recentScript","RecentScriptAccordion","MainPage","onAugmentations","sleevesOpen","setSleevesOpen","isPlayersGang","favorToDonate","canDonate","canPurchaseSleeves","startHackingContracts","startFieldWork","startSecurityWork","FactionRoot","purchasingAugs","setPurchasingAugs","routeToMainPage","AugmentationsPage","getAugs","augName1","augName2","getAugsSortedByCost","getAugsSortedByReputation","Purchasable","canBuy","hasReq","hasRep","cantBuy","getAugsSortedByPurchasable","purchasable","multiplierComponent","costs","showModal","DonateOption","donateAmt","setDonateAmt","Status","noformat","DefaultAssignment","Info","Assignment","CovenantPurchasesRoot","setUpdate","purchaseDisabled","upgradePanels","CovenantSleeveMemoryUpgrade","maxMemory","purchaseBtnDisabled","purchaseBtnContent","calculateStat","getFactionHackingWorkRepGain","srcFile","sourceFileObject","incMult","decMult","GangButton","gangOpen","setGangOpen","CreateGangModal","EmployersModal","MultiplierTable","noMargin","effValue","CurrentBitNode","MoneyModal","convertMoneySourceTrackerToString","CharacterStats","moneyOpen","setMoneyOpen","employersOpen","setEmployersOpen","timeRows","showBitNodeMults","isEqual","StockMarketRoot","Purchase4SMarketDataTixApiAccessButton","PurchaseWseAccountButton","PurchaseTixApiAccessButton","Purchase4SMarketDataButton","InfoAndPurchases","StockTickers","setTickerDisplayMode","AllStocks","watchlistSymbols","setWatchlistSymbols","tickers","stockMarketProp","rerenderAllTickers","sanitizedWatchlist","SelectorOrderType","StockTicker","setOrderType","Market","tickerOpen","setTicketOpen","modalProps","setModalProps","placeText","getQuantity","hasOrderAccess","Limit","Stop","getBuyTransactionCostContent","getSellTransactionCostContent","playerMoney","localesWithLongPriceFormat","StockTickerHeaderText","stockPriceFormat","spacesAllottedForStockPrice","spacesAfterStockName","spacesBeforePrice","hdrText","plusOrMinus","StockTickerOrderList","StockTickerOrder","posTxt","LongPosition","percentageGains","ShortPosition","StockTickerPositionText","PlaceOrderModal","portal","level0","level1","level2","level3","BitNodePortal","portalOpen","setPortalOpen","cssClass","aria-description","BitverseRoot","destroyed","destroySequence","setDestroySequence","nextSourceFileLvl","PortalModal","bitNodeKey","maxSourceFileLevel","newLevel","CinematicLine","setLength","ms","newLength","advance","StaneksGiftRoot","MainBoard","setGhostGrid","setRotation","selectedFragment","setSelectedFragment","moveGhost","clickAt","deleteAt","doRotate","selectFragment","FragmentInspector","setC","effectAmt","FragmentOption","colorAt","FragmentSelector","FragmentPreview","ActiveFragmentSummary","summary","coordinate","formatEffect","_width","_height","getComputedStyle","Element","visibility","AchievementsRoot","AchievementList","cssPrimary","cssSecondary","secret","unavailable","locked","pr","defaultExpanded","AchievementIcon","imgLoaded","setImgLoaded","onLoad","ErrorBoundary","Component","hasError","componentDidCatch","ex","previousScrollY","modalOpen","setModalOpen","modalImageSrc","setModalImageSrc","predefinedThemes","themes","templateTheme","onActivated","scrollY","previousColors","onImageClick","handleZoom","ThemeEntry","subheader","image","ComparisonIcon","isBetter","initialAutosave","ImportSaveRoot","currentData","setCurrentData","importModalOpen","setImportModalOpen","headback","setHeadback","dataBeingImported","dataCurrentlyInGame","fetchData","BypassWrapper","getAugmentation","runAfterReset","cbScript","_purchased","_facName","_cbScript","_programName","baseserver","installTime","wasWorking","_companyName","wasFocused","_field","repNeededToDonate","crimeTime","crimeStatsWithMultipliers","_nextBN","_callbackScript","nextBN","callbackScript","wrapFunction","wrappedAPI","tree","functionName","branch","getNestedProperty","wrapAPILayer","setNestedProperty","nerf","normalServer","relative_filename","evaledDir","t_dst","dst","srcExt","tRes","sRes","sanitizedExpr","used","avail","usedPercent","incorrectUsage","allPrograms","allScripts","allTextFiles","allContracts","allMessages","folders","handleFn","dest","parsedFn","firstParentDir","msgOrLit","ClickableScriptRow","scriptLinksWrap","scriptLink","textDecorationLine","paddingRight","rowSplitArray","rowItem","onScriptLinkClick","ClickableMessageRow","linksWrap","link","onMessageLinkClick","FileType","postSegments","group","segments","linked","filesPerRow","Folder","numThreads","verboseEntries","t_dest","sourcePath","destFile","destPath","positions","getCursor","re","matching","rsObj","delTarget","executableName","runContract","runProgram","commandArgs","threadFlag","tailFlag","toLocaleLowerCase","hasRoot","maxHostname","maxIP","args2","headers","currRunningScripts","numSpacesScript","spacesScript","numSpacesPid","spacesPid","numSpacesThread","spacesThread","tampering","last","minute","timeCompression","ReactDOM","globalThis","onbeforeunload"],"mappings":"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mB,EACnBN,OAAQ,IAEV+U,YAAgBi9C,IAGpB,GAAIxB,EAAM,GAAI,CAEZU,YAAS,IACT,MAAM77D,EAASo7D,EAAS,kBACpBp7D,GAAQW,IAAOkzB,kBAAkB+oC,YAAY58D,GACjD,MAAM68D,EAAQzB,EAAS,sBACnByB,GAAOl8D,IAAOsrB,cAActuB,KAAK,CAAEuB,KAAM29D,EAAOpvC,MAAO,IAY7D,GAVI0tC,EAAM,KACRoB,IACAO,eAEE3B,EAAM,KACRC,EAAUjsB,YAAc,MAEtBgsB,EAAM,IACRx6D,IAAOkzB,kBAAkBjlB,QAAQ+yC,QAASljD,GAAMA,EAAE0O,SAASwyC,SAAS,SAAWlhD,EAAE0O,UAAY,QAE3FguD,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,q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WAAa,eACnCspB,GAAW4C,EAAYlsB,WAAa,gBACpCspB,GAAW8C,EAAWpsB,WAAa,eACnCspB,GAAWgD,EAAatsB,WAAa,iBACrCspB,GAAWkD,EAAWxsB,WAAa,eACnCspB,GAAWmD,EAAYzsB,WAAa,gBACpCspB,GAAW20G,EAAOj+H,WAAa,gBAE/BspB,EAAU,aACN0C,EAAa,IACf1C,GAAW0C,EAAa,cAEtBE,EAAc,IAChB5C,GAAW4C,EAAc,eAEvBE,EAAa,IACf9C,GAAW8C,EAAa,cAEtBE,EAAe,IACjBhD,GAAWgD,EAAe,gBAExBE,EAAa,IACflD,GAAWkD,EAAa,cAEtBC,EAAc,IAChBnD,GAAWmD,EAAc,eAEvBwxG,EAAS,IACX30G,GAAW20G,EAAS,iBAEtB30G,EAAUA,EAAQtqB,UAAU,EAAGsqB,EAAQ5wC,OAAS,GAChD4wC,GAAW,KAENA,EAjDT,mC,6BCHA,oEAGO,MAAM40G,EAA6B,CACxC,oDACA,IACA,8EACA,sFACA,sFACA,mFACA,8EACA,qEACA,6EACA,2EACA,gEACA,uEACA,uDACA,4FACA,8EACA,kFACA,mHACA,oEACA,kGACA,wEACA,oEACA,gFACA,6FACA,4FACA,6EACA,2FACA,iGACA,6EACA,4GACA,0FACA,yEACA,uEACA,gGACA,0FACA,iFACA,+FACA,0FACA,4FACA,uEACA,wHACA,sFACA,iFACA,KAGIC,EACW90D,GACN,CACJ,UAASA,wBACT,IACA,4GACA,4FACA,IACA,4CAA2CA,kDAC3C,kBAAiBA,yEACjB,IACA,YACA,IACA,OAAMA,YACN,OAAMA,qBACN,IACA,OAAMA,WACN,OAAMA,iBACN,KAKM+0D,EAA4B,CACvCruE,MAAO,CACL,oCACA,IACA,4FACA,uGACA,yHACA,kGACA,IACA,gCACA,IACA,mHACA,yHACA,4CACA,IACA,gCACA,IACA,6DACA,IACA,eACA,IACA,2HACA,4HACA,IACA,mCACA,IACA,8GACA,IACA,uHACA,uCACA,IACA,uDACA,KAEFsuE,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEF3gH,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEF4gH,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEF3rB,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEF4rB,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEF9iE,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEF+iE,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEFziD,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEF0iD,GAAI,CAAC,wBAAyB,IAAK,wEAAyE,KAC5G9pF,SAAU,CACR,qCACA,IACA,mFACA,IACA,4GACA,IACA,kDACA,IACA,0CACA,IACA,0CACA,KAEF+pF,KAAM,CACJ,wCACA,IACA,oFACA,IACA,oBACA,IACA,WACA,IACA,wBACA,IACA,qFACA,KAEFC,KAAM,CACJ,cACA,IACA,gIACA,gCACA,KAEFp0C,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEFtpG,KAAM,CACJ,cACA,IACA,uHACA,KAEF29I,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEFn4G,KAAM,CACJ,cACA,IACA,sGACA,KAEF1mC,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChF2xE,KAAM,CACJ,mDACA,IACA,4EACA,IACA,6EACA,4EACA,iFACA,4DACA,IACA,uCACA,IACA,qEACA,IACA,wCACA,IACA,qFACA,KAEFg6B,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,KAEFgzC,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEFzxF,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEF0xF,KAAMd,EAAgC,QACtCnyC,GAAI,CAAC,YAAa,IAAK,4DAA6D,KACpF8B,GAAI,CACF,mBACA,IACA,6GACA,IACA,kDACA,KAEF16E,IAAK,CACH,sDACA,IACA,gDACA,IACA,sHACA,2GACA,gEACA,2DACA,2FACA,IACA,kHACA,iFACA,KAEF22E,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,KAEFozC,MAAO,CAAC,eAAgB,IAAK,oEAAqE,KAElGjwC,KAAM,CACJ,sCACA,IACA,oHACA,uHACA,oEACA,IACA,8BACA,IACA,gFACA,IACA,+BACA,KAEFl8B,IAAK,CACH,aACA,IACA,yGACA,+BACA,KAEFosE,QAAS,CACP,8BACA,IACA,mFACA,IACA,iDACA,IACA,oBACA,IACA,kCACA,IACA,gBACA,IACA,kGACA,KAEFr6F,IAAKq5F,EAAgC,OACrC/sH,OAAQ,CACN,gBACA,IACA,oHACA,iEACA,KAEF09E,KAAM,CACJ,kCACA,IACA,iGACA,iGACA,0CACA,IACA,mGACA,iDACA,IACA,mGACA,O,6BC/dJ,wEAIKswC,EAKAC,EATL,0B,SAIKD,O,2BAAAA,I,8BAAAA,M,cAKAC,O,qBAAAA,I,kBAAAA,M,KA2CE,MAAM3R,EAAe,qDA8BrB,SAAS4R,EAAmBh/H,EAAci/H,EAA6B98F,G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BACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,iBACA,IACA,OACA,IACA,oBACA,KACA,sBACA,iBACA,MACA,IAKA,oCACA,wDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,YACA,IACA,OACA,IACA,aACA,KACA,sBACA,iBACA,MACA,IAIA,oDACA,8CACA,gCACA,kEACA,YACA,wBACA,4BACA,yCACA,SACA,oBACA,4CACA,OACA,IACA,IACA,MAIA,uDACA,8CACA,sBACA,0DACA,IACA,yCACA,wBACA,mDACA,4BACA,mCACA,mBACA,gBACA,IACA,yCACA,qEACA,yBACA,uBACA,qBACA,oBACA,2BACA,+BACA,uDACA,iCACA,8FACA,IACA,8BACA,oBACA,+DACA,wEACA,4CACA,eACA,IACA,0BACA,OACA,IACA,qBACA,gBACA,IACA,MAIA,gDACA,8CACA,gCACA,8DACA,eACA,wBACA,4BACA,yCACA,sBACA,SACA,oBACA,mDACA,OACA,IACA,YACA,IACA,MAIA,mDACA,8CACA,0CACA,kEACA,4DACA,gCACA,wBACA,WACA,oCACA,kBACA,kEACA,IACA,kBACA,IACA,yBACA,mDACA,IACA,gBACA,IACA,MAIA,wDACA,8CACA,0CACA,yGACA,kEACA,+BACA,wBACA,WACA,mCACA,eACA,kEACA,IACA,kBACA,IACA,wBACA,mDACA,IACA,gBACA,IACA,MAIA,iDACA,8CACA,+BACA,6DACA,wBACA,4BACA,+DACA,kCACA,iDACA,eACA,IACA,IACA,gBACA,IACA,MAEA,gBACA,oCACA,8CAEA,wCACA,2BACA,IAEA,0CACA,mBACA,kDACA,4CACA,sBACA,yBACA,sBACA,aACA,IACA,IACA,uBACA,IACA,eACA,KACA,QAEA,2DACA,8CACA,eACA,gBACA,0CACA,wFACA,IACA,wBACA,IACA,MACA,KAQJqkF,EAAYzkF,UAAU6sJ,WAAa,SAAUj9B,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SAASA,EAAK,SACpC,6EACA,8CACAgT,KAAK,MAETuoC,WAAY,EACZ0pB,IAAK,IAqHI,CAnHO,CACZ,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SA4FG3+C,KAAK,IAAMpc,KAAKC,SAAW,IAC3BtG,MAAM,EAAG,GACTmP,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,aAOKsT,KAAK,IAAMpc,KAAKC,SAAW,IAAK,IAGzC9H,KAAM,iCACN+iE,SAAU,GACVF,OAAQ,CAACo6F,EAAgBub,KACvB,IAAK1pK,MAAMC,QAAQkuJ,GAAQ,MAAM,IAAIv2J,MAAM,kCAC3C,MAAM/I,EAAOs/J,EAUb,MAPe,IAAIt/J,EAAK,IACrBmwB,IAAI,CAACzJ,EAAGpmB,IACM,MAANomB,EACHA,EACA1V,OAAOohJ,cAAe1rI,EAAEkB,WAAW,GAAK,IAAS5nB,EAAK,GAAG4nB,WAAWtnB,EAAIN,EAAK,GAAGQ,SAAW,GAAM,KAEtGwS,KAAK,MACU6nK,M,6BCr2DxB,kCACA,MAAeyX,EAWbh7K,cACEC,KAAKvX,KAAO,GAIC,WACb,OAAOuX,KAAKvX,KAAKQ,OAIZM,KAAKgC,EAAUs6C,GACpB,MAAM98C,EAAIiX,KAAKvX,KAAKQ,OACpB+W,KAAKvX,KAA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AkB6O,GAAkB,KACnC,MAAMx9E,EAAUplH,IAAQC,OAAOE,EAAK,UAAW4zL,GACzCzoJ,IAAUs3J,EAEhB,GADAD,EAAuBxiM,GACnB6H,IAAOrE,OAASE,IAASoiB,SAC3B,MAAMjmB,IAAQQ,oBAAoBL,EAAK,+DAEzC,IAAKglH,YAAyBn9G,KAAQlE,SAASshH,KAAat6F,IAAoB5uB,eAAekpH,GAE7F,OADAplH,IAAQkF,IAAI/E,EAAK,IAAO,gBAAeilH,IAChC,EAGT,MAAMy9E,EAAc76L,IAAOsjC,MAErBw3J,EAAe,IAAIx/D,IAAsBx4G,IAAoBs6F,IACnE,OAAIp9G,IAAOpI,MAAQkjM,EAAarpK,MAC9Bz5B,IAAQkF,IAAI/E,EAAK,IAAO,wCAAuCilH,IACxD,GAGJhxD,YAAuB0uI,EAAan3K,eAKzC3jB,IAAO2/G,UACL,IAAIwb,IAAa,CACf7qG,aAAa,EACb3M,aAAcy5F,EACdp9G,OAAQA,OAIRsjC,GACFtjC,IAAOqjC,gBACP7qB,IAAOgnC,UACEq7I,IACT76L,IAAOujC,eACP/qB,IAAO6mC,cAGTrnD,IAAQkF,IAAI/E,EAAK,IAAO,+BAA8BilH,OAC/C,IArBLplH,IAAQkF,IAAI/E,EAAK,IAAO,yCAAwCilH,IACzD,O,qCC7EjB,gEAMA,MAAM9sF,EAAc,CAClB,iBACA,WACA,0BACA,cACA,UACA,gBACA,qBACA,kBACA,2BACA,sBACA,wBACA,uBACA,wBACA,8BACA,uBACA,kBACA,sBACA,gBACA,iBACA,gBACA,mBACA,wBACA,qBACA,kBACA,sBACA,gBACA,wBACA,sBACA,0BACA,wBACA,eACA,aACA,cACA,uBACA,kBACA,SACA,YACA,cACA,aACA,uBACA,kBACA,cACA,UACA,WACA,YACA,aACA,eACA,mBACA,mBACA,iBACA,iBACA,kBAGIyqK,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,mBAC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A,UACA,QACA,WACA,UACA,aACA,QACA,UACA,MACA,OACA,SACA,WACA,WACA,UACA,QACA,cACA,cACA,YACA,SACA,OACA,SACA,QACA,WACA,WACA,WACA,OACA,SACA,WACA,YACA,OACA,OACA,YACA,YACA,OACA,QACA,UACA,YACA,WACA,aACA,YACA,OACA,WACA,WACA,SACA,MACA,WACA,UACA,SACA,gBACA,OACA,QACA,UACA,QACA,QACA,UACA,YACA,QACA,YACA,UACA,QACA,SACA,SACA,QACA,UACA,cACA,QACA,aACA,MACA,UACA,OACA,WACA,WACA,UACA,SACA,aACA,YACA,SACA,SACA,SACA,OACA,WACA,QACA,OACA,WACA,SACA,SACA,WACA,SACA,UACA,QACA,SACA,QACA,UACA,UACA,UACA,UACA,aACA,WACA,QACA,SACA,MACA,WACA,SACA,aACA,UACA,MACA,OACA,SACA,UACA,OACA,OACA,UACA,SACA,aACA,SACA,SACA,SACA,SACA,SACA,WACA,SACA,YACA,QACA,QACA,YACA,WACA,oBACA,WACA,OACA,UACA,cACA,UACA,SACA,UACA,gBACA,OACA,SACA,QACA,MACA,WACA,WACA,WACA,cACA,SACA,UACA,QACA,eACA,WACA,OACA,OACA,SACA,MACA,OACA,iBACA,WACA,UACA,UACA,UACA,iBACA,QACA,MACA,YACA,UACA,SACA,OACA,SACA,UACA,WACA,YACA,cACA,MACA,OACA,MACA,MACA,Q,6BCzTF,yIAmBA,MAAMF,EAKF,CACFpxH,QAAS,CAAEqxH,MAAO,IAAM3gN,IAAK,EAAGyO,IAAK,GACrC8gF,OAAQ,CAAEoxH,MAAO,IAAM3gN,IAAK,EAAGyO,IAAK,GACpC+gF,KAAM,CAAEmxH,MAAO,IAAM3gN,IAAK,EAAGyO,IAAK,GAClCghF,WAAY,CAAEkxH,MAAO,KAAM3gN,IAAK,EAAGyO,IAAK,IAkCnC,SAASowM,EAAY9oM,GAC1B,MAAM05B,EAAyB,CAAEkxK,MAAO,EAAG3gN,IAAK,EAAGyO,IAAK,GACxDygF,YAAY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","file":"main.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1573,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { PlayerObject } from \"./PersonObjects/Player/PlayerObject\";\nimport { sanitizeExploits } from \"./Exploits/Exploit\";\n\nimport { Reviver } from \"./utils/JSONReviver\";\n\nexport let Player = new PlayerObject();\n\nexport function loadPlayer(saveString: string): void {\n Player = JSON.parse(saveString, Reviver);\n Player.money = parseFloat(Player.money + \"\");\n Player.exploits = sanitizeExploits(Player.exploits);\n}\n","import { NetscriptContext } from \"./APIWrapper\";\nimport { WorkerScript } from \"./WorkerScript\";\nimport { GetAllServers, GetServer } from \"../Server/AllServers\";\nimport { Player } from \"../Player\";\nimport { ScriptDeath } from \"./ScriptDeath\";\nimport { isString } from \"../utils/helpers/isString\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { ScriptArg } from \"./ScriptArg\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { BasicHGWOptions } from \"src/ScriptEditor/NetscriptDefinitions\";\nimport { Server } from \"../Server/Server\";\nimport {\n calculateHackingChance,\n calculateHackingExpGain,\n calculateHackingTime,\n calculatePercentMoneyHacked,\n} from \"../Hacking\";\nimport { netscriptCanHack } from \"../Hacking/netscriptCanHack\";\nimport { convertTimeMsToTimeElapsedString } from \"../utils/StringHelperFunctions\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { influenceStockThroughServerHack } from \"../StockMarket/PlayerInfluencing\";\nimport { IPort, NetscriptPort } from \"../NetscriptPort\";\nimport { NetscriptPorts } from \"../NetscriptWorker\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { FormulaGang } from \"../Gang/formulas/formulas\";\nimport { GangMember } from \"../Gang/GangMember\";\nimport { GangMemberTask } from \"../Gang/GangMemberTask\";\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { toNative } from \"../NetscriptFunctions/toNative\";\nimport { ScriptIdentifier } from \"./ScriptIdentifier\";\nimport { findRunningScript, findRunningScriptByPid } from \"../Script/ScriptHelpers\";\nimport { RunningScript as IRunningScript } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { arrayToString } from \"../utils/helpers/arrayToString\";\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport const helpers = {\n string,\n number,\n scriptArgs,\n argsToString,\n isScriptErrorMessage,\n makeRuntimeRejectMsg,\n makeRuntimeErrorMsg,\n resolveNetscriptRequestedThreads,\n checkEnvFlags,\n checkSingularityAccess,\n netscriptDelay,\n updateDynamicRam,\n city,\n getServer,\n scriptIdentifier,\n hack,\n getValidPort,\n player,\n server,\n gang,\n gangMember,\n gangTask,\n log,\n getFunctionNames,\n getRunningScript,\n getRunningScriptByArgs,\n getCannotFindRunningScriptErrorMessage,\n createPublicRunningScript,\n failOnHacknetServer,\n};\n\nconst userFriendlyString = (v: unknown): string => {\n const clip = (s: string): string => {\n if (s.length > 15) return s.slice(0, 12) + \"...\";\n return s;\n };\n if (typeof v === \"number\") return String(v);\n if (typeof v === \"string\") {\n if (v === \"\") return \"empty string\";\n return `'${clip(v)}'`;\n }\n const json = JSON.stringify(v);\n if (!json) return \"???\";\n return `'${clip(json)}'`;\n};\n\nconst debugType = (v: unknown): string => {\n if (v === null) return `Is null.`;\n if (v === undefined) return \"Is undefined.\";\n if (typeof v === \"function\") return \"Is a function.\";\n return `Is of type '${typeof v}', value: ${userFriendlyString(v)}`;\n};\n\n/** Convert a provided value v for argument argName to string. If it wasn't originally a string or number, throw. */\nfunction string(ctx: NetscriptContext, argName: string, v: unknown): string {\n if (typeof v === \"string\") return v;\n if (typeof v === \"number\") return v + \"\"; // cast to string;\n throw makeRuntimeErrorMsg(ctx, `'${argName}' should be a string. ${debugType(v)}`);\n}\n\n/** Convert provided value v for argument argName to number. Throw if could not convert to a non-NaN number. */\nfunction number(ctx: NetscriptContext, argName: string, v: unknown): number {\n if (typeof v === \"string\") {\n const x = parseFloat(v);\n if (!isNaN(x)) return x; // otherwise it wasn't even a string representing a number.\n } else if (typeof v === \"number\") {\n if (isNaN(v)) throw makeRuntimeErrorMsg(ctx, `'${argName}' is NaN.`);\n return v;\n }\n throw makeRuntimeErrorMsg(ctx, `'${argName}' should be a number. ${debugType(v)}`);\n}\n\n/** Returns args back if it is a ScriptArg[]. Throws an error if it is not. */\nfunction scriptArgs(ctx: NetscriptContext, args: unknown) {\n if (!isScriptArgs(args)) throw makeRuntimeErrorMsg(ctx, \"'args' is not an array of script args\");\n return args;\n}\n\n/** Determines if the given msg string is an error created by makeRuntimeRejectMsg. */\nfunction isScriptErrorMessage(msg: string): boolean {\n if (!isString(msg)) {\n return false;\n }\n const splitMsg = msg.split(\"|DELIMITER|\");\n return splitMsg.length == 4;\n}\n\n/** Convert multiple arguments for tprint or print into a single string. */\nfunction argsToString(args: unknown[]): string {\n let out = \"\";\n for (let arg of args) {\n if (arg === null) {\n out += \"null\";\n continue;\n }\n if (arg === undefined) {\n out += \"undefined\";\n continue;\n }\n arg = toNative(arg);\n out += typeof arg === \"object\" ? JSON.stringify(arg) : `${arg}`;\n }\n\n return out;\n}\n\n/** Creates an error message string containing hostname, scriptname, and the error message msg */\nfunction makeRuntimeRejectMsg(workerScript: WorkerScript, msg: string): string {\n for (const scriptUrl of workerScript.scriptRef.dependencies) {\n msg = msg.replace(new RegExp(scriptUrl.url, \"g\"), scriptUrl.filename);\n }\n\n return \"|DELIMITER|\" + workerScript.hostname + \"|DELIMITER|\" + workerScript.name + \"|DELIMITER|\" + msg;\n}\n\n/** Creates an error message string with a stack trace. */\nfunction makeRuntimeErrorMsg(ctx: NetscriptContext, msg: string): string {\n const errstack = new Error().stack;\n if (errstack === undefined) throw new Error(\"how did we not throw an error?\");\n const stack = errstack.split(\"\\n\").slice(1);\n const workerScript = ctx.workerScript;\n const caller = ctx.function;\n const scripts = workerScript.getServer().scripts;\n const userstack = [];\n for (const stackline of stack) {\n let filename;\n for (const script of scripts) {\n if (script.filename && stackline.includes(script.filename)) {\n filename = script.filename;\n }\n for (const dependency of script.dependencies) {\n if (stackline.includes(dependency.filename)) {\n filename = dependency.filename;\n }\n }\n }\n if (!filename) continue;\n\n interface ILine {\n line: string;\n func: string;\n }\n\n function parseChromeStackline(line: string): ILine | null {\n const lineRe = /.*:(\\d+):\\d+.*/;\n const funcRe = /.*at (.+) \\(.*/;\n\n const lineMatch = line.match(lineRe);\n const funcMatch = line.match(funcRe);\n if (lineMatch && funcMatch) {\n return { line: lineMatch[1], func: funcMatch[1] };\n }\n return null;\n }\n let call = { line: \"-1\", func: \"unknown\" };\n const chromeCall = parseChromeStackline(stackline);\n if (chromeCall) {\n call = chromeCall;\n }\n\n function parseFirefoxStackline(line: string): ILine | null {\n const lineRe = /.*:(\\d+):\\d+$/;\n const lineMatch = line.match(lineRe);\n\n const lio = line.lastIndexOf(\"@\");\n\n if (lineMatch && lio !== -1) {\n return { line: lineMatch[1], func: line.slice(0, lio) };\n }\n return null;\n }\n\n const firefoxCall = parseFirefoxStackline(stackline);\n if (firefoxCall) {\n call = firefoxCall;\n }\n\n userstack.push(`${filename}:L${call.line}@${call.func}`);\n }\n\n workerScript.log(caller, () => msg);\n let rejectMsg = `${caller}: ${msg}`;\n if (userstack.length !== 0) rejectMsg += `
Stack: ${userstack.join(\" \")}`;\n return makeRuntimeRejectMsg(workerScript, rejectMsg);\n}\n\n/** Validate requested number of threads for h/g/w options */\nfunction resolveNetscriptRequestedThreads(ctx: NetscriptContext, requestedThreads?: number): number {\n const threads = ctx.workerScript.scriptRef.threads;\n if (!requestedThreads) {\n return isNaN(threads) || threads < 1 ? 1 : threads;\n }\n const requestedThreadsAsInt = requestedThreads | 0;\n if (isNaN(requestedThreads) || requestedThreadsAsInt < 1) {\n throw makeRuntimeRejectMsg(\n ctx.workerScript,\n `Invalid thread count passed to ${ctx.function}: ${requestedThreads}. Threads must be a positive number.`,\n );\n }\n if (requestedThreadsAsInt > threads) {\n throw makeRuntimeRejectMsg(\n ctx.workerScript,\n `Too many threads requested by ${ctx.function}. Requested: ${requestedThreads}. Has: ${threads}.`,\n );\n }\n return requestedThreadsAsInt;\n}\n\n/** Validate singularity access by throwing an error if the player does not have access. */\nfunction checkSingularityAccess(ctx: NetscriptContext): void {\n if (Player.bitNodeN !== 4 && Player.sourceFileLvl(4) === 0) {\n throw makeRuntimeErrorMsg(\n ctx,\n `This singularity function requires Source-File 4 to run. A power up you obtain later in the game.\n It will be very obvious when and how you can obtain it.`,\n );\n }\n}\n\n/** Create an error if a script is dead or if concurrent ns function calls are made */\nfunction checkEnvFlags(ctx: NetscriptContext): void {\n const ws = ctx.workerScript;\n if (ws.env.stopFlag) throw new ScriptDeath(ws);\n if (ws.env.runningFn && ctx.function !== \"asleep\") {\n ws.errorMessage = makeRuntimeRejectMsg(\n ws,\n `Concurrent calls to Netscript functions are not allowed!\n Did you forget to await hack(), grow(), or some other\n promise-returning function?\n Currently running: ${ws.env.runningFn} tried to run: ${ctx.function}`,\n );\n if (ws.delayReject) ws.delayReject(new ScriptDeath(ws));\n throw new ScriptDeath(ws); //No idea if this is the right thing to throw\n }\n}\n\n/** Set a timeout for performing a task, mark the script as busy in the meantime. */\nfunction netscriptDelay(ctx: NetscriptContext, time: number): Promise {\n const ws = ctx.workerScript;\n return new Promise(function (resolve, reject) {\n ws.delay = window.setTimeout(() => {\n ws.delay = null;\n ws.delayReject = undefined;\n ws.env.runningFn = \"\";\n if (ws.env.stopFlag) reject(new ScriptDeath(ws));\n else resolve();\n }, time);\n ws.delayReject = reject;\n ws.env.runningFn = ctx.function;\n });\n}\n\n/** Adds to dynamic ram cost when calling new ns functions from a script */\nfunction updateDynamicRam(ctx: NetscriptContext, ramCost: number): void {\n const ws = ctx.workerScript;\n const fnName = ctx.function;\n if (ws.dynamicLoadedFns[fnName]) return;\n ws.dynamicLoadedFns[fnName] = true;\n\n let threads = ws.scriptRef.threads;\n if (typeof threads !== \"number\") {\n console.warn(`WorkerScript detected NaN for threadcount for ${ws.name} on ${ws.hostname}`);\n threads = 1;\n }\n ws.dynamicRamUsage += ramCost;\n if (ws.dynamicRamUsage > 1.01 * ws.ramUsage) {\n ws.errorMessage = makeRuntimeRejectMsg(\n ws,\n `Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${fnName}.\n This is probably because you somehow circumvented the static RAM calculation.\n\n Threads: ${threads}\n Dynamic RAM Usage: ${numeralWrapper.formatRAM(ws.dynamicRamUsage)}\n Static RAM Usage: ${numeralWrapper.formatRAM(ws.ramUsage)}\n\n One of these could be the reason:\n * Using eval() to get a reference to a ns function\n const myScan = eval('ns.scan');\n\n * Using map access to do the same\n const myScan = ns['scan'];\n\n Sorry :(`,\n );\n throw new ScriptDeath(ws);\n }\n}\n\n/** Validates the input v as being a CityName. Throws an error if it is not. */\nfunction city(ctx: NetscriptContext, argName: string, v: unknown): CityName {\n if (typeof v !== \"string\") throw makeRuntimeErrorMsg(ctx, `${argName} should be a city name.`);\n const s = v as CityName;\n if (!Object.values(CityName).includes(s)) throw makeRuntimeErrorMsg(ctx, `${argName} should be a city name.`);\n return s;\n}\n\nfunction scriptIdentifier(\n ctx: NetscriptContext,\n scriptID: unknown,\n _hostname: unknown,\n _args: unknown,\n): ScriptIdentifier {\n const ws = ctx.workerScript;\n // Provide the pid for the current script if no identifier provided\n if (scriptID === undefined) return ws.pid;\n if (typeof scriptID === \"number\") return scriptID;\n if (typeof scriptID === \"string\") {\n const hostname = _hostname === undefined ? ctx.workerScript.hostname : string(ctx, \"hostname\", _hostname);\n const args = _args === undefined ? [] : scriptArgs(ctx, _args);\n return {\n scriptname: scriptID,\n hostname,\n args,\n };\n }\n throw new Error(\"not implemented\");\n}\n\n/**\n * Gets the Server for a specific hostname/ip, throwing an error\n * if the server doesn't exist.\n * @param {NetscriptContext} ctx - Context from which getServer is being called. For logging purposes.\n * @param {string} hostname - Hostname of the server\n * @returns {BaseServer} The specified server as a BaseServer\n */\nfunction getServer(ctx: NetscriptContext, hostname: string) {\n const server = GetServer(hostname);\n if (server == null) {\n const str = hostname === \"\" ? \"'' (empty string)\" : \"'\" + hostname + \"'\";\n throw makeRuntimeErrorMsg(ctx, `Invalid hostname: ${str}`);\n }\n return server;\n}\n\nfunction isScriptArgs(args: unknown): args is ScriptArg[] {\n const isScriptArg = (arg: unknown) => typeof arg === \"string\" || typeof arg === \"number\" || typeof arg === \"boolean\";\n return Array.isArray(args) && args.every(isScriptArg);\n}\n\nasync function hack(\n ctx: NetscriptContext,\n hostname: string,\n manual: boolean,\n { threads: requestedThreads, stock }: BasicHGWOptions = {},\n): Promise {\n const ws = ctx.workerScript;\n const threads = helpers.resolveNetscriptRequestedThreads(ctx, requestedThreads);\n const server = getServer(ctx, hostname);\n if (!(server instanceof Server)) {\n throw makeRuntimeErrorMsg(ctx, \"Cannot be executed on this server.\");\n }\n\n // Calculate the hacking time\n const hackingTime = calculateHackingTime(server, Player); // This is in seconds\n\n // No root access or skill level too low\n const canHack = netscriptCanHack(server, Player);\n if (!canHack.res) {\n throw makeRuntimeErrorMsg(ctx, canHack.msg || \"\");\n }\n\n log(\n ctx,\n () =>\n `Executing on '${server.hostname}' in ${convertTimeMsToTimeElapsedString(\n hackingTime * 1000,\n true,\n )} (t=${numeralWrapper.formatThreads(threads)})`,\n );\n\n return helpers.netscriptDelay(ctx, hackingTime * 1000).then(function () {\n const hackChance = calculateHackingChance(server, Player);\n const rand = Math.random();\n let expGainedOnSuccess = calculateHackingExpGain(server, Player) * threads;\n const expGainedOnFailure = expGainedOnSuccess / 4;\n if (rand < hackChance) {\n // Success!\n const percentHacked = calculatePercentMoneyHacked(server, Player);\n let maxThreadNeeded = Math.ceil(1 / percentHacked);\n if (isNaN(maxThreadNeeded)) {\n // Server has a 'max money' of 0 (probably). We'll set this to an arbitrarily large value\n maxThreadNeeded = 1e6;\n }\n\n let moneyDrained = Math.floor(server.moneyAvailable * percentHacked) * threads;\n\n // Over-the-top safety checks\n if (moneyDrained <= 0) {\n moneyDrained = 0;\n expGainedOnSuccess = expGainedOnFailure;\n }\n if (moneyDrained > server.moneyAvailable) {\n moneyDrained = server.moneyAvailable;\n }\n server.moneyAvailable -= moneyDrained;\n if (server.moneyAvailable < 0) {\n server.moneyAvailable = 0;\n }\n\n let moneyGained = moneyDrained * BitNodeMultipliers.ScriptHackMoneyGain;\n if (manual) {\n moneyGained = moneyDrained * BitNodeMultipliers.ManualHackMoney;\n }\n\n Player.gainMoney(moneyGained, \"hacking\");\n ws.scriptRef.onlineMoneyMade += moneyGained;\n Player.scriptProdSinceLastAug += moneyGained;\n ws.scriptRef.recordHack(server.hostname, moneyGained, threads);\n Player.gainHackingExp(expGainedOnSuccess);\n if (manual) Player.gainIntelligenceExp(0.005);\n ws.scriptRef.onlineExpGained += expGainedOnSuccess;\n log(\n ctx,\n () =>\n `Successfully hacked '${server.hostname}' for ${numeralWrapper.formatMoney(\n moneyGained,\n )} and ${numeralWrapper.formatExp(expGainedOnSuccess)} exp (t=${numeralWrapper.formatThreads(threads)})`,\n );\n server.fortify(CONSTANTS.ServerFortifyAmount * Math.min(threads, maxThreadNeeded));\n if (stock) {\n influenceStockThroughServerHack(server, moneyDrained);\n }\n if (manual) {\n server.backdoorInstalled = true;\n }\n return Promise.resolve(moneyGained);\n } else {\n // Player only gains 25% exp for failure?\n Player.gainHackingExp(expGainedOnFailure);\n ws.scriptRef.onlineExpGained += expGainedOnFailure;\n log(\n ctx,\n () =>\n `Failed to hack '${server.hostname}'. Gained ${numeralWrapper.formatExp(\n expGainedOnFailure,\n )} exp (t=${numeralWrapper.formatThreads(threads)})`,\n );\n return Promise.resolve(0);\n }\n });\n}\n\nfunction getValidPort(ctx: NetscriptContext, port: number): IPort {\n if (isNaN(port)) {\n throw makeRuntimeErrorMsg(\n ctx,\n `Invalid argument. Must be a port number between 1 and ${CONSTANTS.NumNetscriptPorts}, is ${port}`,\n );\n }\n port = Math.round(port);\n if (port < 1 || port > CONSTANTS.NumNetscriptPorts) {\n throw makeRuntimeErrorMsg(\n ctx,\n `Trying to use an invalid port: ${port}. Only ports 1-${CONSTANTS.NumNetscriptPorts} are valid.`,\n );\n }\n let iport = NetscriptPorts.get(port);\n if (!iport) {\n iport = NetscriptPort();\n NetscriptPorts.set(port, iport);\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, { hackWeight: 100 }), 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 * Display intermediary time unit when their value is null\n */\n ShowMiddleNullTimeUnit: 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 ShowMiddleNullTimeUnit: 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 ShowMiddleNullTimeUnit: defaultSettings.ShowMiddleNullTimeUnit,\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 CongruityImplant = \"nickofolas Congruity Implant\",\n HydroflameLeftArm = \"Hydroflame Left Arm\",\n BigDsBigBrain = \"BigD's Big ... Brain\",\n ZOE = \"Z.O.Ë.\",\n UnnamedAug2 = \"UnnamedAug2\",\n\n // Bladeburner augs\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: 26,\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: Number.MAX_SAFE_INTEGER,\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: 30,\n\n LatestUpdate: `\n v2.1.0 - 2022-09-23 Remote File API\n -----------------------------------\n \n Dev notes\n * The most important change about this update is the introduction of the remote file api.\n With this we also deprecate the HTTP file api and the visual studio extension. Those things\n were made during the rush of Steam and aren't well thought out. This new process works with\n both the web and Steam version of the game and every text editor. Moving forward we also\n won't be doing much, if any, upgrades to the in-game editor. We think it's good enough for\n now and if you need more we recommend you hook up your favorite external editor.\n * Added functions to resize, move, and close tail windows\n * Added a new Augmentation, Z.O.Ë., which allows Sleeves to benefit from Stanek.\n \n API\n * Remove incorrectly placed 's' in ns.tFormat() (by @LJNeon)\n * More ports (previously max 20, now practically unlimited) (by @Hoekstraa)\n * Corp functions now return copy of constant arrays instead of the original (by @Mughur)\n * All the player sub-objects need to be copied for 'getPlayer'. (by @MageKing17)\n * add corp get functions, UI (by @Mughur)\n * FIX #3860 destroyW0r1dD43m0n now properly gives achievements and FIX #3890 favor now properly syncs across pages and the Donate achievement is now given correctly (by @Aerophia)\n \n CONTRIBUTIONS\n * Modify PR template (by @Hoekstraa)\n \n CCT\n * inconsistent probability for generation between online and offline (by @quacksouls)\n \n DOC\n * Some typo fixes in Netscript functions (by @quacksouls)\n * Fix #4033 Why use Coding Contract API (by @quacksouls)\n * typo fix in description of Caesar cipher (by @quacksouls)\n * FIX DOCS TYPO IN terminal.rst (by @BugiDev)\n * Update bitburner.sleeve.settobladeburneraction.md (by @borisflagell)\n \n CORPORATION\n * FIX #3880, #3876, #3322 and #3138 Bunch of corporation fixes (by @Mughur)\n * Gave investors some economics classes (by @Mughur)\n * Limit shareholder priority on newly issued shares (by @Undeemiss)\n \n UI\n * FIX #2962 Add a setting to display middle time unit in Time Elapsed String (by @hydroflame)\n * FIX #4106 Fix incorrect experience display in Crime UI. (by @SilverNexus)\n * Bitnode stats now show if BB/Corporation are disabled (by @Kelenius)\n * Removed three empty lines from BB status screen (by @Kelenius)\n * Add missing space to BN7 description (by @hex7cd)\n * Improvements to crime work UI (by @Kelenius)\n * FIX #3975, #3882 Script Editor more responsive on resize, and fix dirty file indicator (by @Snarling)\n \n API FIX\n * getCrimeStats use bitnode multipliers in the output of crime stats (by @phyzical)\n \n SLEEVES\n * FIX #3819 Allow using the regeneration chamber with sleeves to heal them. (by @coderanger)\n * FIX #4063 fix crash when player tries to assign more than 3 sleeves to Bladeburner contracts (by @Snarling)\n * FIX #4051 Sleeves no longer crash when player quits company sleeve was working (by @Snarling)\n \n API BACKUP\n * add singularity function for exporting game save back (by @phyzical)\n \n CORPORATION API\n * FIX #3655 Expose exports from Material (by @Rasmoh)\n \n SCRIPTS\n * FIX #4081 Rerunning a script from tail window recalculates ram usage (by @Snarling)\n * FIX #3962 The correct script will be closed even if the player modifies args (v2.0) (by @Snarling)\n \n DOCUMENTATION\n * Fixed Argument order for scp() (by @njalooo)\n \n CORP API\n * Fix up param order for limitProductProduction to match docs (by @phyzical)\n \n NETSCRIPT\n * FIX #2376 ns.exit now exits immediately (by @Snarling)\n * FIX #4055 Fix dynamic ram check (by @Snarling)\n * FIX #4037 ns1 wraps deeper layers correctly. (by @Snarling)\n * FIX #3963 Prevent bladeburner.setActionLevel from setting invalid action levels (by @MPJ-K)\n * Typo fixes in CodingContract, Hacknet, Singularity APIs (by @quacksouls)\n * Fix a typo in doc of Singularity.travelToCity() (by @quacksouls)\n * Update netscript definition file for scp, write, read, and flags (by @Snarling)\n * Correct missing ! for boolean coercion in Corporation.createCorporation(). (by @Risenafis)\n * Normalized Stock API logging (by @Snarling)\n * fix #3992 allow null duration in toast ns function (by @RollerKnobster)\n * Correct missing '!' for boolean coercion in 'singularity.workForCompany()'. (by @MageKing17)\n * ns.scp and ns.write are now synchronous + fix exec race condition (by @Snarling)\n * FIX #2931 atExit now allows synchronous ns functions (by @Snarling)\n * Improve real life CPU and memory performance of scripts. (by @Snarling)\n \n INFILTRATION\n * Corrected ns formula for infiltration rewards (by @ezylot)\n \n RFA\n * NetscriptDefinitions retains export strings (by @Hoekstraa)\n * Fix type of RFAMessages with non-String results (by @Hoekstraa)\n * New Remote File API addition for transmitting files to the game (by @Hoekstraa)\n \n SLEEVE\n * FIX #4022, #4024, #4025, #3998 (by @Mughur)\n \n DOCS, UI\n * update docs a bit more, amending some BN and SF texts (by @Mughur)\n \n GANG\n * Added weight to GangMemberTask construction call (by @ezylot)\n \n Coding Contracts\n * Don't stringify answer if already a string (by @alainbryden)\n \n TERMINAL\n * Fix ansi display bugs (by @Snarling)\n \n SCRIPT EDITOR\n * Debounce updateRAM calls. (by @Snarling)\n \n WORK\n * Add singularity check for finishing company work (by @Snarling)\n \n DOCS\n * Correct documentation for 'run()' with 0 threads. (by @MageKing17)\n * Some doc updates (by @Mughur)\n \n FILES\n * FIX #3979 Allow characters & and ' in filenames (by @Snarling)\n \n CORP FIX\n * dont take research points for something already researched via api (by @phyzical)\n \n FIX\n * Prompt Add user friendly message to avoid throwing recovery screen for invalid choices (by @phyzical)\n \n TUTORIAL\n * Fix #3965 Corrected tutorial text (by @mihilt)\n \n CONTRACTS\n * FIX #3755 change input handling for contract attempts (by @Snarling)\n \n HOTFIX\n * Fix infil definitions.d.ts (by @phyzical)\n \n MISC\n * crime gains, sleeve gang augs and faq (by @Mughur)\n * FIX #3649 Preventing server starting security level from going above 100 (by @Shiiyu)\n * Adds Shadows of Anarchy (by @Lagicrus)\n * Added intormation about hacking managers to hacking algorithms page (by @Kelenius)\n * Fix Jest CI Error (by @geggleto)\n * multiple hasAugmentation checks didn't check if the augment was installed (by @Mughur)\n * Fix for #2442 and #2795. (by @G4mingJon4s)\n * Adds info regarding augments and focus (by @Lagicrus)\n * Removed console.log line (by @dhosborne)\n * Update some doc (by @hydroflame)\n * Sleeve crime gain bitnode multiplier fix (by @Mughur)\n * trying to fix int problems (by @hydroflame)\n * Fix broken ns filesnames (by @hydroflame)\n * new formula functions (by @hydroflame)\n * v2.0.0 (by @hydroflame)\n * test fixes/md updates (by @phyzical)\n * Remove \"based\" from positive adjectives in infil (by @faangbait)\n * minor fix in instance calculation (by @hydroflame)\n * fix dynamic ram miscalc not triggering (by @hydroflame)\n * Refactor game options into separate components (by @hydroflame)\n * fix documentation for remote api (by @hydroflame)\n * fix settings unfocusing on every key stroke (by @hydroflame)\n * fix some stuff with the timestamp settings (by @hydroflame)\n * fix some stuff with the timestamp settings (by @hydroflame)\n * Fix unique key problem with ascii elements (by @hydroflame)\n * Improve wrong arg user message and add ui.windowSize (by @hydroflame)\n * fix stack trace missing in some errors (by @hydroflame)\n * Fix scp and write in ns1 (by @hydroflame)\n * Did some changes of the remote api and added documentation (by @hydroflame)\n * Add dummy function to generate a mock server or player for formulas stuff (by @hydroflame)\n * fix compile error (by @hydroflame)\n * regen doc (by @hydroflame)\n * rm console log (by @hydroflame)\n * regen doc (by @hydroflame)\n * Added more info about blood program, change some aug descriptions (by @hydroflame)\n * use triple equal (by @hydroflame)\n * Minor improvements to Netscript Port loading and unloading (by @hydroflame)\n * Fix hostname generation being weird about dash 0 added (by @hydroflame)\n * upgrade version number. (by @hydroflame)\n * Nerf Noodle bar \n \n`,\n};\n","/* Generic Reviver, toJSON, and fromJSON functions used for saving and loading objects */\n\nimport { validateObject } from \"./Validator\";\n\nexport interface IReviverValue {\n ctor: string;\n data: any;\n}\n\n// A generic \"smart reviver\" function.\n// Looks for object values with a `ctor` property and\n// a `data` property. If it finds them, and finds a matching\n// constructor that has a `fromJSON` property on it, it hands\n// off to that `fromJSON` fuunction, passing in the value.\nexport function Reviver(key: string, value: IReviverValue | null): any {\n if (value == null) {\n return null;\n }\n\n if (typeof value === \"object\" && typeof value.ctor === \"string\" && typeof value.data !== \"undefined\") {\n // Compatibility for version v0.43.1\n // TODO Remove this eventually\n if (value.ctor === \"AllServersMap\") {\n console.warn(\"Converting AllServersMap for v0.43.1\");\n return value.data;\n }\n\n const ctor = Reviver.constructors[value.ctor];\n\n if (typeof ctor === \"function\" && typeof ctor.fromJSON === \"function\") {\n const obj = ctor.fromJSON(value);\n if (ctor.validationData !== undefined) {\n validateObject(obj, ctor.validationData);\n }\n return obj;\n }\n }\n return value;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Reviver {\n export const constructors: { [key: string]: any } = {};\n}\n\n// A generic \"toJSON\" function that creates the data expected\n// by Reviver.\n// `ctorName` The name of the constructor to use to revive it\n// `obj` The object being serialized\n// `keys` (Optional) Array of the properties to serialize,\n// if not given then all of the objects \"own\" properties\n// that don't have function values will be serialized.\n// (Note: If you list a property in `keys`, it will be serialized\n// regardless of whether it's an \"own\" property.)\n// Returns: The structure (which will then be turned into a string\n// as part of the JSON.stringify algorithm)\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Generic_toJSON(ctorName: string, obj: Record, keys?: string[]): IReviverValue {\n if (!keys) {\n keys = Object.keys(obj); // Only \"own\" properties are included\n }\n\n const data: Record = {};\n for (let index = 0; index < keys.length; ++index) {\n const key = keys[index];\n data[key] = obj[key];\n }\n return { ctor: ctorName, data: data };\n}\n\n// A generic \"fromJSON\" function for use with Reviver: Just calls the\n// constructor function with no arguments, then applies all of the\n// key/value pairs from the raw data to the instance. Only useful for\n// constructors that can be reasonably called without arguments!\n// `ctor` The constructor to call\n// `data` The data to apply\n// Returns: The object\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function Generic_fromJSON(ctor: new () => T, data: any): T {\n const obj: any = new ctor();\n for (const name in data) {\n obj[name] = data[name];\n }\n return obj;\n}\n","import { AlertEvents } from \"./AlertManager\";\n\nimport React from \"react\";\nimport { SxProps } from \"@mui/system\";\nimport { Typography } from \"@mui/material\";\n\nexport function dialogBoxCreate(txt: string | JSX.Element, styles?: SxProps): void {\n if (typeof txt !== \"string\") {\n AlertEvents.emit(txt);\n } else {\n AlertEvents.emit();\n }\n}\n","/**\n * All possible Cities in the game. Names only, not actual \"City\" object\n * Implemented as an enum for typing purposes\n */\nexport enum CityName {\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n}\n","import { defaultMultipliers } from \"./BitNode\";\n\n/**\n * Bitnode multipliers influence the difficulty of different aspects of the game.\n * Each Bitnode has a different theme/strategy to achieving the end goal, so these multipliers will can help drive the\n * player toward the intended strategy. Unless they really want to play the long, slow game of waiting...\n */\nexport interface IBitNodeMultipliers {\n /**\n * Influences how quickly the player's agility level (not exp) scales\n */\n AgilityLevelMultiplier: number;\n\n /**\n * Influences the base cost to purchase an augmentation.\n */\n AugmentationMoneyCost: number;\n\n /**\n * Influences the base rep the player must have with a faction to purchase an augmentation.\n */\n AugmentationRepCost: number;\n\n /**\n * Influences how quickly the player can gain rank within Bladeburner.\n */\n BladeburnerRank: number;\n\n /**\n * Influences the cost of skill levels from Bladeburner.\n */\n BladeburnerSkillCost: number;\n\n /**\n * Influences how quickly the player's charisma level (not exp) scales\n */\n CharismaLevelMultiplier: number;\n\n /**\n * Influences the experience gained for each ability when a player completes a class.\n */\n ClassGymExpGain: number;\n\n /**\n * Influences the amount of money gained from completing Coding Contracts\n **/\n CodingContractMoney: number;\n\n /**\n * Influences the experience gained for each ability when the player completes working their job.\n */\n CompanyWorkExpGain: number;\n\n /**\n * Influences how much money the player earns when completing working their job.\n */\n CompanyWorkMoney: number;\n\n /**\n * Influences the valuation of corporations created by the player.\n */\n CorporationValuation: number;\n\n /**\n * Influences the base experience gained for each ability when the player commits a crime.\n */\n CrimeExpGain: number;\n\n /**\n * Influences the base money gained when the player commits a crime.\n */\n CrimeMoney: number;\n\n /**\n * Influences how many Augmentations you need in order to get invited to the Daedalus faction\n */\n DaedalusAugsRequirement: number;\n\n /**\n * Influences how quickly the player's defense level (not exp) scales\n */\n DefenseLevelMultiplier: number;\n\n /**\n * Influences how quickly the player's dexterity level (not exp) scales\n */\n DexterityLevelMultiplier: number;\n\n /**\n * Influences how much rep the player gains in each faction simply by being a member.\n */\n FactionPassiveRepGain: number;\n\n /**\n * Influences the experience gained for each ability when the player completes work for a Faction.\n */\n FactionWorkExpGain: number;\n\n /**\n * Influences how much rep the player gains when performing work for a faction.\n */\n FactionWorkRepGain: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data API\n */\n FourSigmaMarketDataApiCost: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data (NOT API)\n */\n FourSigmaMarketDataCost: number;\n\n /**\n * Reduces gangs earning.\n */\n GangSoftcap: number;\n\n /**\n * Percentage of unique augs that the gang has.\n */\n GangUniqueAugs: number;\n\n /**\n * Influences the experienced gained when hacking a server.\n */\n HackExpGain: number;\n\n /**\n * Influences how quickly the player's hacking level (not experience) scales\n */\n HackingLevelMultiplier: number;\n\n /**\n * Influences how much money is produced by Hacknet Nodes.\n * Influeces the hash rate of Hacknet Servers (unlocked in BitNode-9)\n */\n HacknetNodeMoney: number;\n\n /**\n * Influences how much money it costs to upgrade your home computer's RAM\n */\n HomeComputerRamCost: number;\n\n /**\n * Influences how much money is gained when the player infiltrates a company.\n */\n InfiltrationMoney: number;\n\n /**\n * Influences how much rep the player can gain from factions when selling stolen documents and secrets\n */\n InfiltrationRep: number;\n\n /**\n * Influences how much money can be stolen from a server when the player performs a hack against it through\n * the Terminal.\n */\n ManualHackMoney: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerCost: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerSoftcap: number;\n\n /**\n * Influences the maximum number of purchased servers you can have\n */\n PurchasedServerLimit: number;\n\n /**\n * Influences the maximum allowed RAM for a purchased server\n */\n PurchasedServerMaxRam: number;\n /**\n * Influences the minimum favor the player must have with a faction before they can donate to gain rep.\n */\n RepToDonateToFaction: number;\n\n /**\n * Influences how much money can be stolen from a server when a script performs a hack against it.\n */\n ScriptHackMoney: number;\n\n /**\n * The amount of money actually gained when script hack a server. This is\n * different than the above because you can reduce the amount of money but\n * not gain that same amount.\n */\n ScriptHackMoneyGain: number;\n\n /**\n * Influences the growth percentage per cycle against a server.\n */\n ServerGrowthRate: number;\n\n /**\n * Influences the maxmimum money that a server can grow to.\n */\n ServerMaxMoney: number;\n\n /**\n * Influences the initial money that a server starts with.\n */\n ServerStartingMoney: number;\n\n /**\n * Influences the initial security level (hackDifficulty) of a server.\n */\n ServerStartingSecurity: number;\n\n /**\n * Influences the weaken amount per invocation against a server.\n */\n ServerWeakenRate: number;\n\n /**\n * Influences how quickly the player's strength level (not exp) scales\n */\n StrengthLevelMultiplier: number;\n\n /**\n * Influences the power of the gift.\n */\n StaneksGiftPowerMultiplier: number;\n\n /**\n * Influences the size of the gift.\n */\n StaneksGiftExtraSize: number;\n\n /**\n * Influences the hacking skill required to backdoor the world daemon.\n */\n WorldDaemonDifficulty: number;\n\n /**\n * Influences corporation dividends.\n */\n CorporationSoftcap: number;\n\n // Index signature\n [key: string]: number;\n}\n\n/**\n * The multipliers that are influenced by current Bitnode progression.\n */\n// tslint:disable-next-line:variable-name\nexport const BitNodeMultipliers = Object.assign({}, defaultMultipliers);\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { IPlayer } from \"../../PersonObjects/IPlayer\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number | string;\n player?: IPlayer;\n}\nexport function Money(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (props.player !== undefined) {\n if (typeof props.money !== \"number\") throw new Error(\"if player if provided, money should be number, contact dev\");\n if (!props.player.canAfford(props.money))\n return {numeralWrapper.formatMoney(props.money)};\n }\n return (\n \n {typeof props.money === \"number\" ? numeralWrapper.formatMoney(props.money) : props.money}\n \n );\n}\n","import { Server } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { serverMetadata } from \"./data/servers\";\n\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\n\nimport { IMap, IMinMaxRange } from \"../types\";\nimport { createRandomIp } from \"../utils/IPAddress\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { Reviver } from \"../utils/JSONReviver\";\nimport { isValidIPAddress } from \"../utils/helpers/isValidIPAddress\";\nimport { SpecialServers } from \"./data/SpecialServers\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\n/**\n * Map of all Servers that exist in the game\n * Key (string) = IP\n * Value = Server object\n */\nlet AllServers: IMap = {};\n\nfunction GetServerByIP(ip: string): BaseServer | undefined {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.ip !== ip) continue;\n return server;\n }\n}\n\n//Returns server object with corresponding hostname\n// Relatively slow, would rather not use this a lot\nfunction GetServerByHostname(hostname: string): BaseServer | null {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.hostname == hostname) {\n return server;\n }\n }\n\n return null;\n}\n\n//Get server by IP or hostname. Returns null if invalid\nexport function GetServer(s: string): BaseServer | null {\n if (AllServers.hasOwnProperty(s)) {\n const server = AllServers[s];\n if (server) return server;\n }\n\n if (!isValidIPAddress(s)) {\n return GetServerByHostname(s);\n }\n\n const ipserver = GetServerByIP(s);\n if (ipserver !== undefined) {\n return ipserver;\n }\n\n return null;\n}\n\nexport function GetAllServers(): BaseServer[] {\n const servers: BaseServer[] = [];\n for (const key of Object.keys(AllServers)) {\n servers.push(AllServers[key]);\n }\n return servers;\n}\n\nexport function DeleteServer(serverkey: string): void {\n for (const key of Object.keys(AllServers)) {\n const server = AllServers[key];\n if (server.ip !== serverkey && server.hostname !== serverkey) continue;\n delete AllServers[key];\n break;\n }\n}\n\nexport function ipExists(ip: string): boolean {\n for (const hostName in AllServers) {\n if (AllServers[hostName].ip === ip) {\n return true;\n }\n }\n return false;\n}\n\nexport function createUniqueRandomIp(): string {\n let ip: string;\n // Repeat generating ip, until unique one is found\n do {\n ip = createRandomIp();\n } while (ipExists(ip));\n\n return ip;\n}\n\n// Saftely add a Server to the AllServers map\nexport function AddToAllServers(server: Server | HacknetServer): void {\n if (GetServer(server.hostname)) {\n console.warn(`Hostname of the server thats being added: ${server.hostname}`);\n console.warn(`The server that already has this IP is: ${AllServers[server.hostname].hostname}`);\n throw new Error(\"Error: Trying to add a server with an existing IP\");\n }\n\n AllServers[server.hostname] = server;\n}\n\ninterface IServerParams {\n hackDifficulty?: number;\n hostname: string;\n ip: string;\n maxRam?: number;\n moneyAvailable?: number;\n numOpenPortsRequired: number;\n organizationName: string;\n requiredHackingSkill?: number;\n serverGrowth?: number;\n}\n\nexport function initForeignServers(homeComputer: Server): void {\n /* Create a randomized network for all the foreign servers */\n //Groupings for creating a randomized network\n const networkLayers: Server[][] = [];\n for (let i = 0; i < 15; i++) {\n networkLayers.push([]);\n }\n\n const toNumber = (value: number | IMinMaxRange): number => {\n if (typeof value === \"number\") return value;\n else return getRandomInt(value.min, value.max);\n };\n\n for (const metadata of serverMetadata) {\n const serverParams: IServerParams = {\n hostname: metadata.hostname,\n ip: createUniqueRandomIp(),\n numOpenPortsRequired: metadata.numOpenPortsRequired,\n organizationName: metadata.organizationName,\n };\n\n if (metadata.maxRamExponent !== undefined) {\n serverParams.maxRam = Math.pow(2, toNumber(metadata.maxRamExponent));\n }\n\n if (metadata.hackDifficulty) serverParams.hackDifficulty = toNumber(metadata.hackDifficulty);\n if (metadata.moneyAvailable) serverParams.moneyAvailable = toNumber(metadata.moneyAvailable);\n if (metadata.requiredHackingSkill) serverParams.requiredHackingSkill = toNumber(metadata.requiredHackingSkill);\n if (metadata.serverGrowth) serverParams.serverGrowth = toNumber(metadata.serverGrowth);\n\n const server = new Server(serverParams);\n for (const filename of metadata.literature || []) {\n server.messages.push(filename);\n }\n\n if (server.hostname === SpecialServers.WorldDaemon) {\n server.requiredHackingSkill *= BitNodeMultipliers.WorldDaemonDifficulty;\n }\n AddToAllServers(server);\n if (metadata.networkLayer !== undefined) {\n networkLayers[toNumber(metadata.networkLayer) - 1].push(server);\n }\n }\n\n /* Create a randomized network for all the foreign servers */\n const linkComputers = (server1: Server, server2: Server): void => {\n server1.serversOnNetwork.push(server2.hostname);\n server2.serversOnNetwork.push(server1.hostname);\n };\n\n const getRandomArrayItem = (arr: T[]): T => arr[Math.floor(Math.random() * arr.length)];\n\n const linkNetworkLayers = (network1: Server[], selectServer: () => Server): void => {\n for (const server of network1) {\n linkComputers(server, selectServer());\n }\n };\n\n // Connect the first tier of servers to the player's home computer\n linkNetworkLayers(networkLayers[0], () => homeComputer);\n for (let i = 1; i < networkLayers.length; i++) {\n linkNetworkLayers(networkLayers[i], () => getRandomArrayItem(networkLayers[i - 1]));\n }\n}\n\nexport function prestigeAllServers(): void {\n for (const member of Object.keys(AllServers)) {\n delete AllServers[member];\n }\n AllServers = {};\n}\n\nexport function loadAllServers(saveString: string): void {\n AllServers = JSON.parse(saveString, Reviver);\n}\n\nexport function saveAllServers(excludeRunningScripts = false): string {\n const TempAllServers = JSON.parse(JSON.stringify(AllServers), Reviver);\n for (const key of Object.keys(TempAllServers)) {\n const server = TempAllServers[key];\n if (excludeRunningScripts) {\n server.runningScripts = [];\n continue;\n }\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScriptObj = server.runningScripts[i];\n runningScriptObj.logs.length = 0;\n runningScriptObj.logs = [];\n }\n }\n\n return JSON.stringify(TempAllServers);\n}\n","import React, { useContext } from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"./Router\";\n\nexport const Context: {\n Player: React.Context;\n Router: React.Context;\n} = {\n Player: React.createContext({} as IPlayer),\n Router: React.createContext({} as IRouter),\n};\n\nexport const use: {\n Player: () => IPlayer;\n Router: () => IRouter;\n} = {\n Player: () => useContext(Context.Player),\n Router: () => useContext(Context.Router),\n};\n","import { Faction } from \"../Faction/Faction\";\nimport { Location } from \"../Locations/Location\";\n\n/**\n * The full-screen page the player is currently be on.\n * These pages are mutually exclusive.\n */\nexport enum Page {\n ActiveScripts,\n Augmentations,\n BitVerse,\n Bladeburner,\n City,\n Corporation,\n CreateProgram,\n ScriptEditor,\n DevMenu,\n Faction,\n Factions,\n Gang,\n Hacknet,\n Infiltration,\n Job,\n Milestones,\n Options,\n Grafting,\n Sleeves,\n Stats,\n StockMarket,\n Terminal,\n Travel,\n Tutorial,\n Work,\n BladeburnerCinematic,\n Location,\n Loading,\n StaneksGift,\n Recovery,\n Achievements,\n ThemeBrowser,\n ImportSave,\n}\n\nexport interface ScriptEditorRouteOptions {\n vim: boolean;\n}\n\n/**\n * This class keeps track of player navigation/routing within the game.\n */\nexport interface IRouter {\n // toCinematicText(): void;\n // toInfiltration(): void;\n // toMission(): void;\n // toRedPill(): void;\n // toworkInProgress(): void;\n isInitialized: boolean;\n page(): Page;\n allowRouting(value: boolean): void;\n toActiveScripts(): void;\n toAugmentations(): void;\n toBitVerse(flume: boolean, quick: boolean): void;\n toBladeburner(): void;\n toStats(): void;\n toCity(): void; // travel ? city ?\n toCorporation(): void;\n toCreateProgram(): void;\n toDevMenu(): void;\n toFaction(faction: Faction, augPage?: boolean): void; // faction name\n toFactions(): void;\n toGameOptions(): void;\n toGang(): void;\n toHacknetNodes(): void;\n toInfiltration(location: Location): void;\n toJob(location: Location): void;\n toMilestones(): void;\n toGrafting(): void;\n toScriptEditor(files?: Record, options?: ScriptEditorRouteOptions): void;\n toSleeves(): void;\n toStockMarket(): void;\n toTerminal(): void;\n toTravel(): void;\n toTutorial(): void;\n toWork(): void;\n toBladeburnerCinematic(): void;\n toLocation(location: Location): void;\n toStaneksGift(): void;\n toAchievements(): void;\n toThemeBrowser(): void;\n toImportSave(base64Save: string, automatic?: boolean): void;\n}\n","import { Settings } from \"../Settings/Settings\";\nimport { 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} day${days === 1 ? \"\" : \"s\"} `;\n }\n if (hours > 0 || (Settings.ShowMiddleNullTimeUnit && res != \"\")) {\n res += `${hours} hour${hours === 1 ? \"\" : \"s\"} `;\n }\n if (minutes > 0 || (Settings.ShowMiddleNullTimeUnit && res != \"\")) {\n res += `${minutes} minute${minutes === 1 ? \"\" : \"s\"} `;\n }\n res += `${seconds} second${!showMilli && secTruncMinutes === 1 ? \"\" : \"s\"}`;\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 ValuationLength: 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 ValuationLength: 5,\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\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 { 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","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","// 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 const realDifficulty =\n params.hackDifficulty != null ? params.hackDifficulty * BitNodeMultipliers.ServerStartingSecurity : 1;\n this.hackDifficulty = Math.min(realDifficulty, 100);\n this.baseDifficulty = this.hackDifficulty;\n this.minDifficulty = Math.min(Math.max(1, Math.round(realDifficulty / 3)), 100);\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 { 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","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 { Player } from \"../Player\";\nimport { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { ICorporation } from \"./ICorporation\";\nimport { Corporation } from \"./Corporation\";\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 // I couldn't figure out where else to put this so that warehouse size would get updated instantly\n // whether research is done by script or UI. All other stats gets calculated in every cycle\n // Warehouse size gets updated only when something increases it.\n if (researchName == \"Drones - Transport\") {\n for (let i = 0; i < CorporationConstants.Cities.length; ++i) {\n const city = CorporationConstants.Cities[i];\n const warehouse = division.warehouses[city];\n if (!(warehouse instanceof Warehouse)) {\n continue;\n }\n if (Player.corporation instanceof Corporation) {\n // Stores cycles in a \"buffer\". Processed separately using Engine Counters\n warehouse.updateSize(Player.corporation, division);\n }\n }\n }\n}\n\nexport function ExportMaterial(\n divisionName: string,\n cityName: string,\n material: Material,\n amt: string,\n division?: Industry,\n): void {\n // Sanitize amt\n let sanitizedAmt = amt.replace(/\\s+/g, \"\").toUpperCase();\n sanitizedAmt = sanitizedAmt.replace(/[^-()\\d/*+.MAX]/g, \"\");\n let temp = sanitizedAmt.replace(/MAX/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid expression entered for export amount: \" + e);\n }\n\n const n = parseFloat(temp);\n\n if (n == null || isNaN(n) || n < 0) {\n throw new Error(\"Invalid amount entered for export\");\n }\n\n if (!division || !isRelevantMaterial(material.name, division)) {\n throw new Error(`You cannot export material: ${material.name} to division: ${divisionName}!`);\n }\n\n const exportObj = { ind: divisionName, city: cityName, amt: sanitizedAmt };\n material.exp.push(exportObj);\n}\n\nexport function CancelExportMaterial(divisionName: string, cityName: string, material: Material, amt: string): void {\n for (let i = 0; i < material.exp.length; ++i) {\n if (material.exp[i].ind !== divisionName || material.exp[i].city !== cityName || material.exp[i].amt !== amt)\n continue;\n material.exp.splice(i, 1);\n break;\n }\n}\n\nexport function LimitProductProduction(product: Product, cityName: string, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n product.prdman[cityName][0] = false;\n product.prdman[cityName][1] = 0;\n } else {\n product.prdman[cityName][0] = true;\n product.prdman[cityName][1] = qty;\n }\n}\n\nexport function LimitMaterialProduction(material: Material, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n material.prdman[0] = false;\n material.prdman[1] = 0;\n } else {\n material.prdman[0] = true;\n material.prdman[1] = qty;\n }\n}\n\nexport function SetMaterialMarketTA1(material: Material, on: boolean): void {\n material.marketTa1 = on;\n}\n\nexport function SetMaterialMarketTA2(material: Material, on: boolean): void {\n material.marketTa2 = on;\n}\n\nexport function SetProductMarketTA1(product: Product, on: boolean): void {\n product.marketTa1 = on;\n}\n\nexport function SetProductMarketTA2(product: Product, on: boolean): void {\n product.marketTa2 = on;\n}\n","export enum BlackOperationNames {\n OperationTyphoon = \"Operation Typhoon\",\n OperationZero = \"Operation Zero\",\n OperationX = \"Operation X\",\n OperationTitan = \"Operation Titan\",\n OperationAres = \"Operation Ares\",\n OperationArchangel = \"Operation Archangel\",\n OperationJuggernaut = \"Operation Juggernaut\",\n OperationRedDragon = \"Operation Red Dragon\",\n OperationK = \"Operation K\",\n OperationDeckard = \"Operation Deckard\",\n OperationTyrell = \"Operation Tyrell\",\n OperationWallace = \"Operation Wallace\",\n OperationShoulderOfOrion = \"Operation Shoulder of Orion\",\n OperationHyron = \"Operation Hyron\",\n OperationMorpheus = \"Operation Morpheus\",\n OperationIonStorm = \"Operation Ion Storm\",\n OperationAnnihilus = \"Operation Annihilus\",\n OperationUltron = \"Operation Ultron\",\n OperationCenturion = \"Operation Centurion\",\n OperationVindictus = \"Operation Vindictus\",\n OperationDaedalus = \"Operation Daedalus\",\n}\n","import { IPlayer } from \"../IPlayer\";\nimport { PlayerObject } from \"./PlayerObject\";\nimport { applyAugmentation } from \"../../Augmentation/AugmentationHelpers\";\nimport { PlayerOwnedAugmentation } from \"../../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CodingContractRewardType, ICodingContractReward } from \"../../CodingContracts\";\nimport { Company } from \"../../Company/Company\";\nimport { Companies } from \"../../Company/Companies\";\nimport { getNextCompanyPositionHelper } from \"../../Company/GetNextCompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\nimport { CompanyPositions } from \"../../Company/CompanyPositions\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport * as posNames from \"../../Company/data/companypositionnames\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { Programs } from \"../../Programs/Programs\";\nimport { Exploit } from \"../../Exploits/Exploit\";\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\nimport { resetGangs } from \"../../Gang/AllGangs\";\nimport { Cities } from \"../../Locations/Cities\";\nimport { Locations } from \"../../Locations/Locations\";\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { Sleeve } from \"../Sleeve/Sleeve\";\nimport { isSleeveCompanyWork } from \"../Sleeve/Work/SleeveCompanyWork\";\nimport {\n calculateSkill as calculateSkillF,\n calculateSkillProgress as calculateSkillProgressF,\n ISkillProgress,\n} from \"../formulas/skill\";\nimport { calculateIntelligenceBonus } from \"../formulas/intelligence\";\nimport { GetServer, AddToAllServers, createUniqueRandomIp } from \"../../Server/AllServers\";\nimport { Server } from \"../../Server/Server\";\nimport { safetlyCreateUniqueServer } from \"../../Server/ServerHelpers\";\n\nimport { SpecialServers } from \"../../Server/data/SpecialServers\";\nimport { applySourceFile } from \"../../SourceFile/applySourceFile\";\nimport { applyExploit } from \"../../Exploits/applyExploits\";\nimport { SourceFiles } from \"../../SourceFile/SourceFiles\";\nimport { getHospitalizationCost } from \"../../Hospital/Hospital\";\nimport { HacknetServer } from \"../../Hacknet/HacknetServer\";\n\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { MoneySourceTracker } from \"../../utils/MoneySourceTracker\";\nimport { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\nimport { SnackbarEvents, ToastVariant } from \"../../ui/React/Snackbar\";\nimport { achievements } from \"../../Achievements/Achievements\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\nimport { ITaskTracker } from \"../ITaskTracker\";\nimport { IPerson } from \"../IPerson\";\nimport { Player } from \"../../Player\";\n\nimport { isCompanyWork } from \"../../Work/CompanyWork\";\nimport { defaultMultipliers } from \"../Multipliers\";\nimport { serverMetadata } from \"../../Server/data/servers\";\n\nexport function init(this: IPlayer): void {\n /* Initialize Player's home computer */\n const t_homeComp = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: \"home\",\n ip: createUniqueRandomIp(),\n isConnectedTo: true,\n maxRam: 8,\n organizationName: \"Home PC\",\n purchasedByPlayer: true,\n });\n this.currentServer = SpecialServers.Home;\n AddToAllServers(t_homeComp);\n\n this.getHomeComputer().programs.push(Programs.NukeProgram.name);\n}\n\nexport function prestigeAugmentation(this: PlayerObject): void {\n this.currentServer = SpecialServers.Home;\n\n this.numPeopleKilled = 0;\n\n //Reset stats\n this.skills.hacking = 1;\n\n this.skills.strength = 1;\n this.skills.defense = 1;\n this.skills.dexterity = 1;\n this.skills.agility = 1;\n\n this.skills.charisma = 1;\n\n this.exp.hacking = 0;\n this.exp.strength = 0;\n this.exp.defense = 0;\n this.exp.dexterity = 0;\n this.exp.agility = 0;\n this.exp.charisma = 0;\n\n this.money = 1000 + CONSTANTS.Donations;\n\n this.city = CityName.Sector12;\n this.location = LocationName.TravelAgency;\n\n this.jobs = {};\n\n this.purchasedServers = [];\n\n this.factions = [];\n this.factionInvitations = [];\n\n this.queuedAugmentations = [];\n\n const numSleeves = Math.min(3, this.sourceFileLvl(10) + (this.bitNodeN === 10 ? 1 : 0)) + this.sleevesFromCovenant;\n if (this.sleeves.length > numSleeves) this.sleeves.length = numSleeves;\n for (let i = this.sleeves.length; i < numSleeves; i++) {\n this.sleeves.push(new Sleeve(this));\n }\n\n for (let i = 0; i < this.sleeves.length; ++i) {\n if (this.sleeves[i] instanceof Sleeve) {\n if (this.sleeves[i].shock >= 100) {\n this.sleeves[i].synchronize(this);\n } else {\n this.sleeves[i].shockRecovery(this);\n }\n }\n }\n\n this.lastUpdate = new Date().getTime();\n\n // Statistics Trackers\n this.playtimeSinceLastAug = 0;\n this.scriptProdSinceLastAug = 0;\n this.moneySourceA.reset();\n\n this.hacknetNodes.length = 0;\n this.hashManager.prestige();\n\n // Reapply augs, re-calculate skills and reset HP\n this.reapplyAllAugmentations(true);\n this.hp.current = this.hp.max;\n\n this.finishWork(true);\n}\n\nexport function prestigeSourceFile(this: IPlayer): void {\n this.entropy = 0;\n this.prestigeAugmentation();\n this.karma = 0;\n // Duplicate sleeves are reset to level 1 every Bit Node (but the number of sleeves you have persists)\n for (let i = 0; i < this.sleeves.length; ++i) {\n if (this.sleeves[i] instanceof Sleeve) {\n this.sleeves[i].prestige(this);\n } else {\n this.sleeves[i] = new Sleeve(this);\n }\n }\n\n if (this.bitNodeN === 10) {\n for (let i = 0; i < this.sleeves.length; i++) {\n this.sleeves[i].shock = Math.max(25, this.sleeves[i].shock);\n this.sleeves[i].sync = Math.max(25, this.sleeves[i].sync);\n }\n }\n\n // Gang\n this.gang = null;\n resetGangs();\n\n // Reset Stock market\n this.hasWseAccount = false;\n this.hasTixApiAccess = false;\n this.has4SData = false;\n this.has4SDataTixApi = false;\n\n // BitNode 3: Corporatocracy\n this.corporation = null;\n\n this.moneySourceB.reset();\n this.playtimeSinceLastBitnode = 0;\n this.augmentations = [];\n}\n\nexport function receiveInvite(this: IPlayer, factionName: string): void {\n if (this.factionInvitations.includes(factionName) || this.factions.includes(factionName)) {\n return;\n }\n this.factionInvitations.push(factionName);\n}\n\n//Calculates skill level based on experience. The same formula will be used for every skill\nexport function calculateSkill(this: IPerson, exp: number, mult = 1): number {\n return calculateSkillF(exp, mult);\n}\n\n//Calculates skill level progress based on experience. The same formula will be used for every skill\nexport function calculateSkillProgress(this: IPlayer, exp: number, mult = 1): ISkillProgress {\n return calculateSkillProgressF(exp, mult);\n}\n\nexport function updateSkillLevels(this: IPlayer): void {\n this.skills.hacking = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.hacking, this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier)),\n );\n this.skills.strength = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.strength, this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier),\n ),\n );\n this.skills.defense = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.defense, this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier)),\n );\n this.skills.dexterity = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.dexterity, this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier),\n ),\n );\n this.skills.agility = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.exp.agility, this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier)),\n );\n this.skills.charisma = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.exp.charisma, this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier),\n ),\n );\n\n if (this.skills.intelligence > 0) {\n this.skills.intelligence = Math.floor(this.calculateSkill(this.exp.intelligence));\n } else {\n this.skills.intelligence = 0;\n }\n\n const ratio = this.hp.current / this.hp.max;\n this.hp.max = Math.floor(10 + this.skills.defense / 10);\n this.hp.current = Math.round(this.hp.max * ratio);\n}\n\nexport function resetMultipliers(this: IPlayer): void {\n this.mults = defaultMultipliers();\n}\n\nexport function hasProgram(this: IPlayer, programName: string): boolean {\n const home = this.getHomeComputer();\n if (home == null) {\n return false;\n }\n\n for (let i = 0; i < home.programs.length; ++i) {\n if (programName.toLowerCase() == home.programs[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n}\n\nexport function setMoney(this: PlayerObject, money: number): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.setMoney()\");\n return;\n }\n this.money = money;\n}\n\nexport function gainMoney(this: PlayerObject, money: number, source: string): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.gainMoney()\");\n return;\n }\n\n this.money = this.money + money;\n this.recordMoneySource(money, source);\n}\n\nexport function loseMoney(this: PlayerObject, money: number, source: string): void {\n if (isNaN(money)) {\n console.error(\"NaN passed into Player.loseMoney()\");\n return;\n }\n if (this.money === Infinity && money === Infinity) return;\n this.money = this.money - money;\n this.recordMoneySource(-1 * money, source);\n}\n\nexport function canAfford(this: IPlayer, cost: number): boolean {\n if (isNaN(cost)) {\n console.error(`NaN passed into Player.canAfford()`);\n return false;\n }\n return this.money >= cost;\n}\n\nexport function recordMoneySource(this: PlayerObject, amt: number, source: string): void {\n if (!(this.moneySourceA instanceof MoneySourceTracker)) {\n console.warn(`Player.moneySourceA was not properly initialized. Resetting`);\n this.moneySourceA = new MoneySourceTracker();\n }\n if (!(this.moneySourceB instanceof MoneySourceTracker)) {\n console.warn(`Player.moneySourceB was not properly initialized. Resetting`);\n this.moneySourceB = new MoneySourceTracker();\n }\n this.moneySourceA.record(amt, source);\n this.moneySourceB.record(amt, source);\n}\n\nexport function gainHackingExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainHackingExp()\");\n return;\n }\n this.exp.hacking += exp;\n if (this.exp.hacking < 0) {\n this.exp.hacking = 0;\n }\n\n this.skills.hacking = calculateSkillF(\n this.exp.hacking,\n this.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,\n );\n}\n\nexport function gainStrengthExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainStrengthExp()\");\n return;\n }\n this.exp.strength += exp;\n if (this.exp.strength < 0) {\n this.exp.strength = 0;\n }\n\n this.skills.strength = calculateSkillF(\n this.exp.strength,\n this.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,\n );\n}\n\nexport function gainDefenseExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into player.gainDefenseExp()\");\n return;\n }\n this.exp.defense += exp;\n if (this.exp.defense < 0) {\n this.exp.defense = 0;\n }\n\n this.skills.defense = calculateSkillF(\n this.exp.defense,\n this.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,\n );\n const ratio = this.hp.current / this.hp.max;\n this.hp.max = Math.floor(10 + this.skills.defense / 10);\n this.hp.current = Math.round(this.hp.max * ratio);\n}\n\nexport function gainDexterityExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainDexterityExp()\");\n return;\n }\n this.exp.dexterity += exp;\n if (this.exp.dexterity < 0) {\n this.exp.dexterity = 0;\n }\n\n this.skills.dexterity = calculateSkillF(\n this.exp.dexterity,\n this.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,\n );\n}\n\nexport function gainAgilityExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainAgilityExp()\");\n return;\n }\n this.exp.agility += exp;\n if (this.exp.agility < 0) {\n this.exp.agility = 0;\n }\n\n this.skills.agility = calculateSkillF(\n this.exp.agility,\n this.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,\n );\n}\n\nexport function gainCharismaExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainCharismaExp()\");\n return;\n }\n this.exp.charisma += exp;\n if (this.exp.charisma < 0) {\n this.exp.charisma = 0;\n }\n\n this.skills.charisma = calculateSkillF(\n this.exp.charisma,\n this.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,\n );\n}\n\nexport function gainIntelligenceExp(this: IPerson, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERROR: NaN passed into Player.gainIntelligenceExp()\");\n return;\n }\n if (Player.sourceFileLvl(5) > 0 || this.skills.intelligence > 0 || Player.bitNodeN === 5) {\n this.exp.intelligence += exp;\n this.skills.intelligence = Math.floor(this.calculateSkill(this.exp.intelligence, 1));\n }\n}\n\nexport function gainStats(this: IPerson, retValue: ITaskTracker): void {\n this.gainHackingExp(retValue.hack * this.mults.hacking_exp);\n this.gainStrengthExp(retValue.str * this.mults.strength_exp);\n this.gainDefenseExp(retValue.def * this.mults.defense_exp);\n this.gainDexterityExp(retValue.dex * this.mults.dexterity_exp);\n this.gainAgilityExp(retValue.agi * this.mults.agility_exp);\n this.gainCharismaExp(retValue.cha * this.mults.charisma_exp);\n this.gainIntelligenceExp(retValue.int);\n}\n\n//Given a string expression like \"str\" or \"strength\", returns the given stat\nexport function queryStatFromString(this: IPlayer, str: string): number {\n const tempStr = str.toLowerCase();\n if (tempStr.includes(\"hack\")) {\n return this.skills.hacking;\n }\n if (tempStr.includes(\"str\")) {\n return this.skills.strength;\n }\n if (tempStr.includes(\"def\")) {\n return this.skills.defense;\n }\n if (tempStr.includes(\"dex\")) {\n return this.skills.dexterity;\n }\n if (tempStr.includes(\"agi\")) {\n return this.skills.agility;\n }\n if (tempStr.includes(\"cha\")) {\n return this.skills.charisma;\n }\n if (tempStr.includes(\"int\")) {\n return this.skills.intelligence;\n }\n return 0;\n}\n\nexport function startFocusing(this: IPlayer): void {\n this.focus = true;\n}\n\nexport function stopFocusing(this: IPlayer): void {\n this.focus = false;\n}\n\n// Returns true if hospitalized, false otherwise\nexport function takeDamage(this: IPlayer, amt: number): boolean {\n if (typeof amt !== \"number\") {\n console.warn(`Player.takeDamage() called without a numeric argument: ${amt}`);\n return false;\n }\n\n this.hp.current -= amt;\n if (this.hp.current <= 0) {\n this.hospitalize();\n return true;\n } else {\n return false;\n }\n}\n\nexport function regenerateHp(this: IPerson, amt: number): void {\n if (typeof amt !== \"number\") {\n console.warn(`Player.regenerateHp() called without a numeric argument: ${amt}`);\n return;\n }\n this.hp.current += amt;\n if (this.hp.current > this.hp.max) {\n this.hp.current = this.hp.max;\n }\n}\n\nexport function hospitalize(this: IPlayer): number {\n const cost = getHospitalizationCost(this);\n SnackbarEvents.emit(`You've been Hospitalized for ${numeralWrapper.formatMoney(cost)}`, ToastVariant.WARNING, 2000);\n\n this.loseMoney(cost, \"hospitalization\");\n this.hp.current = this.hp.max;\n return cost;\n}\n\n/********* Company job application **********/\n//Determines the job that the Player should get (if any) at the current company\n//The 'sing' argument designates whether or not this is being called from\n//the applyToCompany() Netscript Singularity function\nexport function applyForJob(this: IPlayer, entryPosType: CompanyPosition, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (!(company instanceof Company)) {\n console.error(`Could not find company that matches the location: ${this.location}. Player.applyToCompany() failed`);\n return false;\n }\n\n let pos = entryPosType;\n\n if (!this.isQualified(company, pos)) {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position \" + getJobRequirementText(company, pos));\n }\n return false;\n }\n\n if (!company.hasPosition(pos)) {\n console.error(`Company ${company.name} does not have position ${pos}. Player.applyToCompany() failed`);\n return false;\n }\n\n while (true) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null) break;\n if (company.hasPosition(nextPos) && this.isQualified(company, nextPos)) {\n pos = nextPos;\n } else break;\n }\n\n //Check if player already has the assigned job\n if (this.jobs[company.name] === pos.name) {\n if (!sing) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null || !company.hasPosition(nextPos)) {\n dialogBoxCreate(\"You are already at the highest position for your field! No promotion available\");\n } else {\n const reqText = getJobRequirementText(company, nextPos);\n dialogBoxCreate(\"Unfortunately, you do not qualify for a promotion \" + reqText);\n }\n }\n return false;\n }\n\n this.jobs[company.name] = pos.name;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations! You were offered a new job at \" + company.name + \" as a \" + pos.name + \"!\");\n }\n return true;\n}\n\n//Returns your next position at a company given the field (software, business, etc.)\nexport function getNextCompanyPosition(\n this: IPlayer,\n company: Company,\n entryPosType: CompanyPosition,\n): CompanyPosition | null {\n const currCompany = Companies[company.name];\n\n //Not employed at this company, so return the entry position\n if (currCompany == null || currCompany.name != company.name) {\n return entryPosType;\n }\n\n //If the entry pos type and the player's current position have the same type,\n //return the player's \"nextCompanyPosition\". Otherwise return the entryposType\n //Employed at this company, so just return the next position if it exists.\n const currentPositionName = this.jobs[company.name];\n if (!currentPositionName) return entryPosType;\n const currentPosition = CompanyPositions[currentPositionName];\n if (\n (currentPosition.isSoftwareJob() && entryPosType.isSoftwareJob()) ||\n (currentPosition.isITJob() && entryPosType.isITJob()) ||\n (currentPosition.isBusinessJob() && entryPosType.isBusinessJob()) ||\n (currentPosition.isSecurityEngineerJob() && entryPosType.isSecurityEngineerJob()) ||\n (currentPosition.isNetworkEngineerJob() && entryPosType.isNetworkEngineerJob()) ||\n (currentPosition.isSecurityJob() && entryPosType.isSecurityJob()) ||\n (currentPosition.isAgentJob() && entryPosType.isAgentJob()) ||\n (currentPosition.isSoftwareConsultantJob() && entryPosType.isSoftwareConsultantJob()) ||\n (currentPosition.isBusinessConsultantJob() && entryPosType.isBusinessConsultantJob()) ||\n (currentPosition.isPartTimeJob() && entryPosType.isPartTimeJob())\n ) {\n return getNextCompanyPositionHelper(currentPosition);\n }\n\n return entryPosType;\n}\n\nexport function quitJob(this: IPlayer, company: string): void {\n if (isCompanyWork(this.currentWork) && this.currentWork.companyName === company) {\n this.finishWork(true);\n }\n for (const sleeve of this.sleeves) {\n if (isSleeveCompanyWork(sleeve.currentWork) && sleeve.currentWork.companyName === company) {\n sleeve.stopWork(this);\n dialogBoxCreate(`You quit ${company} while one of your sleeves was working there. The sleeve is now idle.`);\n }\n }\n delete this.jobs[company];\n}\n\n/**\n * Method to see if the player has at least one job assigned to them\n * @param this The player instance\n * @returns Whether the user has at least one job\n */\nexport function hasJob(this: IPlayer): boolean {\n return Boolean(Object.keys(this.jobs).length);\n}\n\nexport function applyForSoftwareJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareCompanyPositions[0]], sing);\n}\n\nexport function applyForSoftwareConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForItJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.ITCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]])) {\n return this.applyForJob(CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]], sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForNetworkEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForBusinessJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessCompanyPositions[0]], sing);\n}\n\nexport function applyForBusinessConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityJob(this: IPlayer, sing = false): boolean {\n // TODO Police Jobs\n // Indexing starts at 2 because 0 is for police officer\n return this.applyForJob(CompanyPositions[posNames.SecurityCompanyPositions[2]], sing);\n}\n\nexport function applyForAgentJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.AgentCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.AgentCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForPartTimeEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed part-time at \" + this.location);\n }\n\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n\n return false;\n }\n}\n\nexport function applyForWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForPartTimeWaiterJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.PartTimeCompanyPositions[0];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a part-time waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\n//Checks if the Player is qualified for a certain position\nexport function isQualified(this: IPlayer, company: Company, position: CompanyPosition): boolean {\n const offset = company.jobStatReqOffset;\n const reqHacking = position.requiredHacking > 0 ? position.requiredHacking + offset : 0;\n const reqStrength = position.requiredStrength > 0 ? position.requiredStrength + offset : 0;\n const reqDefense = position.requiredDefense > 0 ? position.requiredDefense + offset : 0;\n const reqDexterity = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqAgility = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqCharisma = position.requiredCharisma > 0 ? position.requiredCharisma + offset : 0;\n\n return (\n this.skills.hacking >= reqHacking &&\n this.skills.strength >= reqStrength &&\n this.skills.defense >= reqDefense &&\n this.skills.dexterity >= reqDexterity &&\n this.skills.agility >= reqAgility &&\n this.skills.charisma >= reqCharisma &&\n company.playerReputation >= position.requiredReputation\n );\n}\n\n/********** Reapplying Augmentations and Source File ***********/\nexport function reapplyAllAugmentations(this: IPlayer, resetMultipliers = true): void {\n if (resetMultipliers) {\n this.resetMultipliers();\n }\n\n for (let i = 0; i < this.augmentations.length; ++i) {\n //Compatibility with new version\n if (this.augmentations[i].name === \"HacknetNode NIC Architecture Neural-Upload\") {\n this.augmentations[i].name = \"Hacknet Node NIC Architecture Neural-Upload\";\n }\n\n const playerAug = this.augmentations[i];\n const augName = playerAug.name;\n\n if (augName == AugmentationNames.NeuroFluxGovernor) {\n for (let j = 0; j < playerAug.level; ++j) {\n applyAugmentation(this.augmentations[i], true);\n }\n continue;\n }\n applyAugmentation(this.augmentations[i], true);\n }\n\n this.updateSkillLevels();\n}\n\nexport function reapplyAllSourceFiles(this: IPlayer): void {\n //Will always be called after reapplyAllAugmentations() so multipliers do not have to be reset\n //this.resetMultipliers();\n\n for (let i = 0; i < this.sourceFiles.length; ++i) {\n const srcFileKey = \"SourceFile\" + this.sourceFiles[i].n;\n const sourceFileObject = SourceFiles[srcFileKey];\n if (sourceFileObject == null) {\n console.error(`Invalid source file number: ${this.sourceFiles[i].n}`);\n continue;\n }\n applySourceFile(this.sourceFiles[i]);\n }\n applyExploit();\n this.updateSkillLevels();\n}\n\n/*************** Check for Faction Invitations *************/\n//This function sets the requirements to join a Faction. It checks whether the Player meets\n//those requirements and will return an array of all factions that the Player should\n//receive an invitation to\nexport function checkForFactionInvitations(this: IPlayer): Faction[] {\n const invitedFactions: Faction[] = []; //Array which will hold all Factions the player should be invited to\n\n const numAugmentations = this.augmentations.length;\n\n const allCompanies = Object.keys(this.jobs);\n const allPositions = Object.values(this.jobs);\n\n // Given a company name, safely returns the reputation (returns 0 if invalid company is specified)\n function getCompanyRep(companyName: string): number {\n const company = Companies[companyName];\n if (company == null) {\n return 0;\n } else {\n return company.playerReputation;\n }\n }\n\n // Helper function that returns a boolean indicating whether the Player meets\n // the requirements for the specified company. There are two requirements:\n // 1. High enough reputation\n // 2. Player is employed at the company\n function checkMegacorpRequirements(companyName: string): boolean {\n const serverMeta = serverMetadata.find((s) => s.specialName === companyName);\n const server = GetServer(serverMeta ? serverMeta.hostname : \"\");\n const bonus = (server as Server).backdoorInstalled ? -100e3 : 0;\n return (\n allCompanies.includes(companyName) && getCompanyRep(companyName) > CONSTANTS.CorpFactionRepRequirement + bonus\n );\n }\n\n //Illuminati\n const illuminatiFac = Factions[FactionNames.Illuminati];\n if (\n !illuminatiFac.isBanned &&\n !illuminatiFac.isMember &&\n !illuminatiFac.alreadyInvited &&\n numAugmentations >= 30 &&\n this.money >= 150000000000 &&\n this.skills.hacking >= 1500 &&\n this.skills.strength >= 1200 &&\n this.skills.defense >= 1200 &&\n this.skills.dexterity >= 1200 &&\n this.skills.agility >= 1200\n ) {\n invitedFactions.push(illuminatiFac);\n }\n\n //Daedalus\n const daedalusFac = Factions[FactionNames.Daedalus];\n if (\n !daedalusFac.isBanned &&\n !daedalusFac.isMember &&\n !daedalusFac.alreadyInvited &&\n numAugmentations >= BitNodeMultipliers.DaedalusAugsRequirement &&\n this.money >= 100000000000 &&\n (this.skills.hacking >= 2500 ||\n (this.skills.strength >= 1500 &&\n this.skills.defense >= 1500 &&\n this.skills.dexterity >= 1500 &&\n this.skills.agility >= 1500))\n ) {\n invitedFactions.push(daedalusFac);\n }\n\n //The Covenant\n const covenantFac = Factions[FactionNames.TheCovenant];\n if (\n !covenantFac.isBanned &&\n !covenantFac.isMember &&\n !covenantFac.alreadyInvited &&\n numAugmentations >= 20 &&\n this.money >= 75000000000 &&\n this.skills.hacking >= 850 &&\n this.skills.strength >= 850 &&\n this.skills.defense >= 850 &&\n this.skills.dexterity >= 850 &&\n this.skills.agility >= 850\n ) {\n invitedFactions.push(covenantFac);\n }\n\n //ECorp\n const ecorpFac = Factions[FactionNames.ECorp];\n if (\n !ecorpFac.isBanned &&\n !ecorpFac.isMember &&\n !ecorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumECorp)\n ) {\n invitedFactions.push(ecorpFac);\n }\n\n //MegaCorp\n const megacorpFac = Factions[FactionNames.MegaCorp];\n if (\n !megacorpFac.isBanned &&\n !megacorpFac.isMember &&\n !megacorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12MegaCorp)\n ) {\n invitedFactions.push(megacorpFac);\n }\n\n //Bachman & Associates\n const bachmanandassociatesFac = Factions[FactionNames.BachmanAssociates];\n if (\n !bachmanandassociatesFac.isBanned &&\n !bachmanandassociatesFac.isMember &&\n !bachmanandassociatesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumBachmanAndAssociates)\n ) {\n invitedFactions.push(bachmanandassociatesFac);\n }\n\n //Blade Industries\n const bladeindustriesFac = Factions[FactionNames.BladeIndustries];\n if (\n !bladeindustriesFac.isBanned &&\n !bladeindustriesFac.isMember &&\n !bladeindustriesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12BladeIndustries)\n ) {\n invitedFactions.push(bladeindustriesFac);\n }\n\n //NWO\n const nwoFac = Factions[FactionNames.NWO];\n if (\n !nwoFac.isBanned &&\n !nwoFac.isMember &&\n !nwoFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenNWO)\n ) {\n invitedFactions.push(nwoFac);\n }\n\n //Clarke Incorporated\n const clarkeincorporatedFac = Factions[FactionNames.ClarkeIncorporated];\n if (\n !clarkeincorporatedFac.isBanned &&\n !clarkeincorporatedFac.isMember &&\n !clarkeincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumClarkeIncorporated)\n ) {\n invitedFactions.push(clarkeincorporatedFac);\n }\n\n //OmniTek Incorporated\n const omnitekincorporatedFac = Factions[FactionNames.OmniTekIncorporated];\n if (\n !omnitekincorporatedFac.isBanned &&\n !omnitekincorporatedFac.isMember &&\n !omnitekincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenOmniTekIncorporated)\n ) {\n invitedFactions.push(omnitekincorporatedFac);\n }\n\n //Four Sigma\n const foursigmaFac = Factions[FactionNames.FourSigma];\n if (\n !foursigmaFac.isBanned &&\n !foursigmaFac.isMember &&\n !foursigmaFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12FourSigma)\n ) {\n invitedFactions.push(foursigmaFac);\n }\n\n //KuaiGong International\n const kuaigonginternationalFac = Factions[FactionNames.KuaiGongInternational];\n if (\n !kuaigonginternationalFac.isBanned &&\n !kuaigonginternationalFac.isMember &&\n !kuaigonginternationalFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.ChongqingKuaiGongInternational)\n ) {\n invitedFactions.push(kuaigonginternationalFac);\n }\n\n //Fulcrum Secret Technologies - If u've unlocked fulcrum secret technolgoies server and have a high rep with the company\n const fulcrumsecrettechonologiesFac = Factions[FactionNames.FulcrumSecretTechnologies];\n const fulcrumSecretServer = GetServer(SpecialServers.FulcrumSecretTechnologies);\n if (!(fulcrumSecretServer instanceof Server))\n throw new Error(`${FactionNames.FulcrumSecretTechnologies} should be normal server`);\n if (fulcrumSecretServer == null) {\n console.error(`Could not find ${FactionNames.FulcrumSecretTechnologies} Server`);\n } else if (\n !fulcrumsecrettechonologiesFac.isBanned &&\n !fulcrumsecrettechonologiesFac.isMember &&\n !fulcrumsecrettechonologiesFac.alreadyInvited &&\n fulcrumSecretServer.backdoorInstalled &&\n checkMegacorpRequirements(LocationName.AevumFulcrumTechnologies)\n ) {\n invitedFactions.push(fulcrumsecrettechonologiesFac);\n }\n\n //BitRunners\n const bitrunnersFac = Factions[FactionNames.BitRunners];\n const bitrunnersServer = GetServer(SpecialServers.BitRunnersServer);\n if (!(bitrunnersServer instanceof Server)) throw new Error(`${FactionNames.BitRunners} should be normal server`);\n if (bitrunnersServer == null) {\n console.error(`Could not find ${FactionNames.BitRunners} Server`);\n } else if (\n !bitrunnersFac.isBanned &&\n !bitrunnersFac.isMember &&\n bitrunnersServer.backdoorInstalled &&\n !bitrunnersFac.alreadyInvited\n ) {\n invitedFactions.push(bitrunnersFac);\n }\n\n //The Black Hand\n\n const theblackhandFac = Factions[FactionNames.TheBlackHand];\n const blackhandServer = GetServer(SpecialServers.TheBlackHandServer);\n if (!(blackhandServer instanceof Server)) throw new Error(`${FactionNames.TheBlackHand} should be normal server`);\n if (blackhandServer == null) {\n console.error(`Could not find ${FactionNames.TheBlackHand} Server`);\n } else if (\n !theblackhandFac.isBanned &&\n !theblackhandFac.isMember &&\n blackhandServer.backdoorInstalled &&\n !theblackhandFac.alreadyInvited\n ) {\n invitedFactions.push(theblackhandFac);\n }\n\n //NiteSec\n const nitesecFac = Factions[FactionNames.NiteSec];\n const nitesecServer = GetServer(SpecialServers.NiteSecServer);\n if (!(nitesecServer instanceof Server)) throw new Error(`${FactionNames.NiteSec} should be normal server`);\n if (nitesecServer == null) {\n console.error(`Could not find ${FactionNames.NiteSec} Server`);\n } else if (\n !nitesecFac.isBanned &&\n !nitesecFac.isMember &&\n nitesecServer.backdoorInstalled &&\n !nitesecFac.alreadyInvited\n ) {\n invitedFactions.push(nitesecFac);\n }\n\n //Chongqing\n const chongqingFac = Factions[FactionNames.Chongqing];\n if (\n !chongqingFac.isBanned &&\n !chongqingFac.isMember &&\n !chongqingFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.Chongqing\n ) {\n invitedFactions.push(chongqingFac);\n }\n\n //Sector-12\n const sector12Fac = Factions[FactionNames.Sector12];\n if (\n !sector12Fac.isBanned &&\n !sector12Fac.isMember &&\n !sector12Fac.alreadyInvited &&\n this.money >= 15000000 &&\n this.city == CityName.Sector12\n ) {\n invitedFactions.push(sector12Fac);\n }\n\n //New Tokyo\n const newtokyoFac = Factions[FactionNames.NewTokyo];\n if (\n !newtokyoFac.isBanned &&\n !newtokyoFac.isMember &&\n !newtokyoFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.NewTokyo\n ) {\n invitedFactions.push(newtokyoFac);\n }\n\n //Aevum\n const aevumFac = Factions[FactionNames.Aevum];\n if (\n !aevumFac.isBanned &&\n !aevumFac.isMember &&\n !aevumFac.alreadyInvited &&\n this.money >= 40000000 &&\n this.city == CityName.Aevum\n ) {\n invitedFactions.push(aevumFac);\n }\n\n //Ishima\n const ishimaFac = Factions[FactionNames.Ishima];\n if (\n !ishimaFac.isBanned &&\n !ishimaFac.isMember &&\n !ishimaFac.alreadyInvited &&\n this.money >= 30000000 &&\n this.city == CityName.Ishima\n ) {\n invitedFactions.push(ishimaFac);\n }\n\n //Volhaven\n const volhavenFac = Factions[FactionNames.Volhaven];\n if (\n !volhavenFac.isBanned &&\n !volhavenFac.isMember &&\n !volhavenFac.alreadyInvited &&\n this.money >= 50000000 &&\n this.city == CityName.Volhaven\n ) {\n invitedFactions.push(volhavenFac);\n }\n\n //Speakers for the Dead\n const speakersforthedeadFac = Factions[FactionNames.SpeakersForTheDead];\n if (\n !speakersforthedeadFac.isBanned &&\n !speakersforthedeadFac.isMember &&\n !speakersforthedeadFac.alreadyInvited &&\n this.skills.hacking >= 100 &&\n this.skills.strength >= 300 &&\n this.skills.defense >= 300 &&\n this.skills.dexterity >= 300 &&\n this.skills.agility >= 300 &&\n this.numPeopleKilled >= 30 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(speakersforthedeadFac);\n }\n\n //The Dark Army\n const thedarkarmyFac = Factions[FactionNames.TheDarkArmy];\n if (\n !thedarkarmyFac.isBanned &&\n !thedarkarmyFac.isMember &&\n !thedarkarmyFac.alreadyInvited &&\n this.skills.hacking >= 300 &&\n this.skills.strength >= 300 &&\n this.skills.defense >= 300 &&\n this.skills.dexterity >= 300 &&\n this.skills.agility >= 300 &&\n this.city == CityName.Chongqing &&\n this.numPeopleKilled >= 5 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thedarkarmyFac);\n }\n\n //The Syndicate\n const thesyndicateFac = Factions[FactionNames.TheSyndicate];\n if (\n !thesyndicateFac.isBanned &&\n !thesyndicateFac.isMember &&\n !thesyndicateFac.alreadyInvited &&\n this.skills.hacking >= 200 &&\n this.skills.strength >= 200 &&\n this.skills.defense >= 200 &&\n this.skills.dexterity >= 200 &&\n this.skills.agility >= 200 &&\n (this.city == CityName.Aevum || this.city == CityName.Sector12) &&\n this.money >= 10000000 &&\n this.karma <= -90 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thesyndicateFac);\n }\n\n //Silhouette\n const silhouetteFac = Factions[FactionNames.Silhouette];\n if (\n !silhouetteFac.isBanned &&\n !silhouetteFac.isMember &&\n !silhouetteFac.alreadyInvited &&\n (allPositions.includes(\"Chief Technology Officer\") ||\n allPositions.includes(\"Chief Financial Officer\") ||\n allPositions.includes(\"Chief Executive Officer\")) &&\n this.money >= 15000000 &&\n this.karma <= -22\n ) {\n invitedFactions.push(silhouetteFac);\n }\n\n //Tetrads\n const tetradsFac = Factions[FactionNames.Tetrads];\n if (\n !tetradsFac.isBanned &&\n !tetradsFac.isMember &&\n !tetradsFac.alreadyInvited &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima) &&\n this.skills.strength >= 75 &&\n this.skills.defense >= 75 &&\n this.skills.dexterity >= 75 &&\n this.skills.agility >= 75 &&\n this.karma <= -18\n ) {\n invitedFactions.push(tetradsFac);\n }\n\n //SlumSnakes\n const slumsnakesFac = Factions[FactionNames.SlumSnakes];\n if (\n !slumsnakesFac.isBanned &&\n !slumsnakesFac.isMember &&\n !slumsnakesFac.alreadyInvited &&\n this.skills.strength >= 30 &&\n this.skills.defense >= 30 &&\n this.skills.dexterity >= 30 &&\n this.skills.agility >= 30 &&\n this.karma <= -9 &&\n this.money >= 1000000\n ) {\n invitedFactions.push(slumsnakesFac);\n }\n\n //Netburners\n const netburnersFac = Factions[FactionNames.Netburners];\n let totalHacknetRam = 0;\n let totalHacknetCores = 0;\n let totalHacknetLevels = 0;\n for (let i = 0; i < this.hacknetNodes.length; ++i) {\n const v = this.hacknetNodes[i];\n if (typeof v === \"string\") {\n const hserver = GetServer(v);\n if (hserver === null || !(hserver instanceof HacknetServer))\n throw new Error(\"player hacknet server was not HacknetServer\");\n totalHacknetLevels += hserver.level;\n totalHacknetRam += hserver.maxRam;\n totalHacknetCores += hserver.cores;\n } else {\n totalHacknetLevels += v.level;\n totalHacknetRam += v.ram;\n totalHacknetCores += v.cores;\n }\n }\n if (\n !netburnersFac.isBanned &&\n !netburnersFac.isMember &&\n !netburnersFac.alreadyInvited &&\n this.skills.hacking >= 80 &&\n totalHacknetRam >= 8 &&\n totalHacknetCores >= 4 &&\n totalHacknetLevels >= 100\n ) {\n invitedFactions.push(netburnersFac);\n }\n\n //Tian Di Hui\n const tiandihuiFac = Factions[FactionNames.TianDiHui];\n if (\n !tiandihuiFac.isBanned &&\n !tiandihuiFac.isMember &&\n !tiandihuiFac.alreadyInvited &&\n this.money >= 1000000 &&\n this.skills.hacking >= 50 &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima)\n ) {\n invitedFactions.push(tiandihuiFac);\n }\n\n //CyberSec\n const cybersecFac = Factions[FactionNames.CyberSec];\n const cybersecServer = GetServer(SpecialServers.CyberSecServer);\n if (!(cybersecServer instanceof Server)) throw new Error(`${FactionNames.CyberSec} should be normal server`);\n if (cybersecServer == null) {\n console.error(`Could not find ${FactionNames.CyberSec} Server`);\n } else if (\n !cybersecFac.isBanned &&\n !cybersecFac.isMember &&\n cybersecServer.backdoorInstalled &&\n !cybersecFac.alreadyInvited\n ) {\n invitedFactions.push(cybersecFac);\n }\n\n return invitedFactions;\n}\n\n/************* BitNodes **************/\nexport function setBitNodeNumber(this: IPlayer, n: number): void {\n this.bitNodeN = n;\n}\n\nexport function queueAugmentation(this: IPlayer, name: string): void {\n for (const aug of this.queuedAugmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n for (const aug of this.augmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n this.queuedAugmentations.push(new PlayerOwnedAugmentation(name));\n}\n\n/************* Coding Contracts **************/\nexport function gainCodingContractReward(this: IPlayer, reward: ICodingContractReward, difficulty = 1): string {\n if (reward == null || reward.type == null) {\n return `No reward for this contract`;\n }\n\n /* eslint-disable no-case-declarations */\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation:\n if (reward.name == null || !(Factions[reward.name] instanceof Faction)) {\n // If no/invalid faction was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n Factions[reward.name].playerReputation += repGain;\n return `Gained ${repGain} faction reputation for ${reward.name}`;\n case CodingContractRewardType.FactionReputationAll:\n const totalGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n\n // Ignore Bladeburners and other special factions for this calculation\n const specialFactions = [FactionNames.Bladeburners as string];\n const factions = this.factions.slice().filter((f) => {\n return !specialFactions.includes(f);\n });\n\n // If the player was only part of the special factions, we'll just give money\n if (factions.length == 0) {\n reward.type = CodingContractRewardType.Money;\n return this.gainCodingContractReward(reward, difficulty);\n }\n\n const gainPerFaction = Math.floor(totalGain / factions.length);\n for (const facName of factions) {\n if (!(Factions[facName] instanceof Faction)) {\n continue;\n }\n Factions[facName].playerReputation += gainPerFaction;\n }\n return `Gained ${gainPerFaction} reputation for each of the following factions: ${factions.toString()}`;\n case CodingContractRewardType.CompanyReputation: {\n if (reward.name == null || !(Companies[reward.name] instanceof Company)) {\n //If no/invalid company was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseCompanyRepGain * difficulty;\n Companies[reward.name].playerReputation += repGain;\n return `Gained ${repGain} company reputation for ${reward.name}`;\n }\n case CodingContractRewardType.Money:\n default: {\n const moneyGain = CONSTANTS.CodingContractBaseMoneyGain * difficulty * BitNodeMultipliers.CodingContractMoney;\n this.gainMoney(moneyGain, \"codingcontract\");\n return `Gained ${numeralWrapper.formatMoney(moneyGain)}`;\n }\n }\n /* eslint-enable no-case-declarations */\n}\n\nexport function travel(this: IPlayer, to: CityName): boolean {\n if (Cities[to] == null) {\n console.warn(`Player.travel() called with invalid city: ${to}`);\n return false;\n }\n this.city = to;\n\n return true;\n}\n\nexport function gotoLocation(this: IPlayer, to: LocationName): boolean {\n if (Locations[to] == null) {\n console.warn(`Player.gotoLocation() called with invalid location: ${to}`);\n return false;\n }\n this.location = to;\n\n return true;\n}\n\nexport function canAccessGrafting(this: IPlayer): boolean {\n return this.bitNodeN === 10 || this.sourceFileLvl(10) > 0;\n}\n\nexport function giveExploit(this: IPlayer, exploit: Exploit): void {\n if (!this.exploits.includes(exploit)) {\n this.exploits.push(exploit);\n SnackbarEvents.emit(\"SF -1 acquired!\", ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function giveAchievement(this: IPlayer, achievementId: string): void {\n const achievement = achievements[achievementId];\n if (!achievement) return;\n if (!this.achievements.map((a) => a.ID).includes(achievementId)) {\n this.achievements.push({ ID: achievementId, unlockedOn: new Date().getTime() });\n SnackbarEvents.emit(`Unlocked Achievement: \"${achievement.Name}\"`, ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function getIntelligenceBonus(this: IPlayer, weight: number): number {\n return calculateIntelligenceBonus(this.skills.intelligence, weight);\n}\n\nexport function getCasinoWinnings(this: IPlayer): number {\n return this.moneySourceA.casino;\n}\n\nexport function canAccessCotMG(this: IPlayer): boolean {\n return this.bitNodeN === 13 || this.sourceFileLvl(13) > 0;\n}\n\nexport function sourceFileLvl(this: IPlayer, n: number): number {\n const sf = this.sourceFiles.find((sf) => sf.n === n);\n if (!sf) return 0;\n return sf.lvl;\n}\n\nexport function focusPenalty(this: IPlayer): number {\n let focus = 1;\n if (!this.hasAugmentation(AugmentationNames.NeuroreceptorManager, true)) {\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","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 { 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","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","// 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 { mergeAugmentation } 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 = mergeAugmentation(Player.mults, staticAugmentation.mults);\n\n // Special logic for Congruity Implant\n if (aug.name === AugmentationNames.CongruityImplant && !reapply) {\n Player.entropy = 0;\n Player.applyEntropy(Player.entropy);\n }\n\n // Special logic for NeuroFlux Governor\n const ownedNfg = Player.augmentations.find((pAug) => pAug.name === AugmentationNames.NeuroFluxGovernor);\n if (aug.name === AugmentationNames.NeuroFluxGovernor && !reapply && ownedNfg) {\n ownedNfg.level = aug.level;\n return;\n }\n\n // Push onto Player's Augmentation list\n if (!reapply) {\n const ownedAug = new PlayerOwnedAugmentation(aug.name);\n\n Player.augmentations.push(ownedAug);\n }\n}\n\nfunction installAugmentations(force?: boolean): boolean {\n if (Player.queuedAugmentations.length == 0 && !force) {\n dialogBoxCreate(\"You have not purchased any Augmentations to install!\");\n return false;\n }\n let augmentationList = \"\";\n let nfgIndex = -1;\n for (let i = Player.queuedAugmentations.length - 1; i >= 0; i--) {\n if (Player.queuedAugmentations[i].name === AugmentationNames.NeuroFluxGovernor) {\n nfgIndex = i;\n break;\n }\n }\n for (let i = 0; i < Player.queuedAugmentations.length; ++i) {\n const ownedAug = Player.queuedAugmentations[i];\n const aug = StaticAugmentations[ownedAug.name];\n if (aug == null) {\n console.error(`Invalid augmentation: ${ownedAug.name}`);\n continue;\n }\n\n applyAugmentation(Player.queuedAugmentations[i]);\n if (ownedAug.name === AugmentationNames.NeuroFluxGovernor && i !== nfgIndex) continue;\n\n let level = \"\";\n if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {\n level = ` - ${ownedAug.level}`;\n }\n augmentationList += aug.name + level + \" \";\n }\n Player.queuedAugmentations = [];\n if (!force) {\n dialogBoxCreate(\n \"You slowly drift to sleep as scientists put you under in order \" +\n \"to install the following Augmentations: \" +\n augmentationList +\n \" You wake up in your home...you feel different...\",\n );\n }\n prestigeAugmentation();\n Router.toTerminal();\n return true;\n}\n\nfunction augmentationExists(name: string): boolean {\n return StaticAugmentations.hasOwnProperty(name);\n}\n\nexport function isRepeatableAug(aug: Augmentation): boolean {\n const augName = aug instanceof Augmentation ? aug.name : aug;\n return augName === AugmentationNames.NeuroFluxGovernor;\n}\n\nexport { installAugmentations, initAugmentations, applyAugmentation, augmentationExists };\n","import React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Money } from \"./Money\";\n\nexport function MoneyRate({ money }: { money: number }): JSX.Element {\n return ;\n}\n","import { codingContractTypesMetadata, DescriptionFunc, GeneratorFunc, SolverFunc } from \"./data/codingcontracttypes\";\n\nimport { IMap } from \"./types\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"./utils/JSONReviver\";\nimport { CodingContractEvent } from \"./ui/React/CodingContractModal\";\n\n/* tslint:disable:no-magic-numbers completed-docs max-classes-per-file no-console */\n\n/* Represents different types of problems that a Coding Contract can have */\nclass CodingContractType {\n /**\n * Function that generates a description of the problem\n */\n desc: DescriptionFunc;\n\n /**\n * Number that generally represents the problem's difficulty. Bigger numbers = harder\n */\n difficulty: number;\n\n /**\n * A function that randomly generates a valid 'data' for the problem\n */\n generate: GeneratorFunc;\n\n /**\n * Name of the type of problem\n */\n name: string;\n\n /**\n * The maximum number of tries the player gets on this kind of problem before it self-destructs\n */\n numTries: number;\n\n /**\n * Stores a function that checks if the provided answer is correct\n */\n solver: SolverFunc;\n\n constructor(\n name: string,\n desc: DescriptionFunc,\n gen: GeneratorFunc,\n solver: SolverFunc,\n diff: number,\n numTries: number,\n ) {\n this.name = name;\n this.desc = desc;\n this.generate = gen;\n this.solver = solver;\n this.difficulty = diff;\n this.numTries = numTries;\n }\n}\n\n/* Contract Types */\n// tslint:disable-next-line\nexport const CodingContractTypes: IMap = {};\n\nfor (const md of codingContractTypesMetadata) {\n // tslint:disable-next-line\n CodingContractTypes[md.name] = new CodingContractType(\n md.name,\n md.desc,\n md.gen,\n md.solver,\n md.difficulty,\n md.numTries,\n );\n}\n\n/**\n * Enum representing the different types of rewards a Coding Contract can give\n */\nexport enum CodingContractRewardType {\n FactionReputation,\n FactionReputationAll,\n CompanyReputation,\n Money, // This must always be the last reward type\n}\n\n/**\n * Enum representing the result when trying to solve the Contract\n */\nexport enum CodingContractResult {\n Success,\n Failure,\n Cancelled,\n}\n\n/**\n * A class that represents the type of reward a contract gives\n */\nexport interface ICodingContractReward {\n /* Name of Company/Faction name for reward, if applicable */\n name?: string;\n type: CodingContractRewardType;\n}\n\n/**\n * A Coding Contract is a file that poses a programming-related problem to the Player.\n * The player receives a reward if the problem is solved correctly\n */\nexport class CodingContract {\n /* Relevant data for the contract's problem */\n data: unknown;\n\n /* Contract's filename */\n fn: string;\n\n /* Describes the reward given if this Contract is solved. The reward is actually\n processed outside of this file */\n reward: ICodingContractReward | null;\n\n /* Number of times the Contract has been attempted */\n tries = 0;\n\n /* String representing the contract's type. Must match type in ContractTypes */\n type: string;\n\n constructor(fn = \"\", type = \"Find Largest Prime Factor\", reward: ICodingContractReward | null = null) {\n this.fn = fn;\n if (!this.fn.endsWith(\".cct\")) {\n this.fn += \".cct\";\n }\n\n // tslint:disable-next-line\n if (CodingContractTypes[type] == null) {\n throw new Error(`Error: invalid contract type: ${type} please contact developer`);\n }\n\n this.type = type;\n this.data = CodingContractTypes[type].generate();\n this.reward = reward;\n }\n\n getData(): unknown {\n return this.data;\n }\n\n getDescription(): string {\n return CodingContractTypes[this.type].desc(this.data);\n }\n\n getDifficulty(): number {\n return CodingContractTypes[this.type].difficulty;\n }\n\n getMaxNumTries(): number {\n return CodingContractTypes[this.type].numTries;\n }\n\n getType(): string {\n return CodingContractTypes[this.type].name;\n }\n\n isSolution(solution: string): boolean {\n return CodingContractTypes[this.type].solver(this.data, solution);\n }\n\n /**\n * Creates a popup to prompt the player to solve the problem\n */\n async prompt(): Promise {\n return new Promise((resolve) => {\n const props = {\n c: this,\n onClose: () => {\n resolve(CodingContractResult.Cancelled);\n },\n onAttempt: (val: string) => {\n if (this.isSolution(val)) {\n resolve(CodingContractResult.Success);\n } else {\n resolve(CodingContractResult.Failure);\n }\n },\n };\n CodingContractEvent.emit(props);\n });\n }\n\n /**\n * Serialize the current file to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CodingContract\", this);\n }\n\n /**\n * Initiatizes a CodingContract from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CodingContract {\n return Generic_fromJSON(CodingContract, value.data);\n }\n}\n\nReviver.constructors.CodingContract = CodingContract;\n","export enum OrderTypes {\n LimitBuy = \"Limit Buy Order\",\n LimitSell = \"Limit Sell Order\",\n StopBuy = \"Stop Buy Order\",\n StopSell = \"Stop Sell Order\",\n}\n","import { FragmentType } from \"./FragmentType\";\nimport { Shapes } from \"./data/Shapes\";\n\nexport const Fragments: Fragment[] = [];\n\nexport class Fragment {\n id: number;\n shape: boolean[][];\n type: FragmentType;\n power: number;\n limit: number;\n\n constructor(id: number, shape: boolean[][], type: FragmentType, power: number, limit: number) {\n this.id = id;\n this.shape = shape;\n this.type = type;\n this.power = power;\n this.limit = limit;\n }\n\n fullAt(x: number, y: number, rotation: number): boolean {\n if (y < 0) return false;\n if (y >= this.height(rotation)) return false;\n if (x < 0) return false;\n if (x >= this.width(rotation)) return false;\n // start xy, modifier xy\n let [sx, sy, mx, my] = [0, 0, 1, 1];\n if (rotation === 1) {\n [sx, sy, mx, my] = [this.width(rotation) - 1, 0, -1, 1];\n } else if (rotation === 2) {\n [sx, sy, mx, my] = [this.width(rotation) - 1, this.height(rotation) - 1, -1, -1];\n } else if (rotation === 3) {\n [sx, sy, mx, my] = [0, this.height(rotation) - 1, 1, -1];\n }\n let [qx, qy] = [sx + mx * x, sy + my * y];\n if (rotation % 2 === 1) [qx, qy] = [qy, qx];\n return this.shape[qy][qx];\n }\n\n width(rotation: number): number {\n if (rotation % 2 === 0) return this.shape[0].length;\n return this.shape.length;\n }\n\n height(rotation: number): number {\n if (rotation % 2 === 0) return this.shape.length;\n return this.shape[0].length;\n }\n\n // List of direct neighboors of this fragment.\n neighboors(rotation: number): number[][] {\n const candidates: number[][] = [];\n\n const add = (x: number, y: number): void => {\n if (this.fullAt(x, y, rotation)) return;\n if (candidates.some((coord) => coord[0] === x && coord[1] === y)) return;\n candidates.push([x, y]);\n };\n for (let y = 0; y < this.height(rotation); y++) {\n for (let x = 0; x < this.width(rotation); x++) {\n // This cell is full, add all it's neighboors.\n if (!this.fullAt(x, y, rotation)) continue;\n add(x - 1, y);\n add(x + 1, y);\n add(x, y - 1);\n add(x, y + 1);\n }\n }\n const cells: number[][] = [];\n for (const candidate of candidates) {\n if (cells.some((cell) => cell[0] === candidate[0] && cell[1] === candidate[1])) continue;\n cells.push(candidate);\n }\n\n return cells;\n }\n\n copy(): Fragment {\n return Object.assign({}, this);\n }\n}\n\nexport function FragmentById(id: number): Fragment | null {\n for (const fragment of Fragments) {\n if (fragment.id === id) return fragment;\n }\n return null;\n}\n\n(function () {\n const _ = false;\n const X = true;\n Fragments.push(\n new Fragment(\n 0, // id\n Shapes.S,\n FragmentType.Hacking, // type\n 1,\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 1, // id\n Shapes.Z,\n FragmentType.Hacking, // type\n 1,\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 5, // id\n Shapes.T,\n FragmentType.HackingSpeed, // type\n 1.3,\n 1, // limit\n ),\n );\n\n Fragments.push(\n new Fragment(\n 6, // id\n Shapes.I,\n FragmentType.HackingMoney, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 7, // id\n Shapes.J,\n FragmentType.HackingGrow, // type\n 0.5, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 10, // id\n Shapes.T,\n FragmentType.Strength, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 12, // id\n Shapes.L,\n FragmentType.Defense, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 14, // id\n Shapes.L,\n FragmentType.Dexterity, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 16, // id\n Shapes.S,\n FragmentType.Agility, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 18, // id\n Shapes.S,\n FragmentType.Charisma, // type\n 3, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 20, // id\n Shapes.I,\n FragmentType.HacknetMoney, // type\n 1, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 21, // id\n Shapes.O,\n FragmentType.HacknetCost, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 25, // id\n Shapes.J,\n FragmentType.Rep, // type\n 0.5, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 27, // id\n Shapes.J,\n FragmentType.WorkMoney, // type\n 10, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 28, // id\n Shapes.L,\n FragmentType.Crime, // type\n 2, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 30, // id\n Shapes.S,\n FragmentType.Bladeburner, // type\n 0.4, // power\n 1, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 100, // id\n [\n // shape\n [_, X, X],\n [X, X, _],\n [_, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 101, // id\n [\n // shape\n [X, X, X, X],\n [X, _, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 102, // id\n [\n // shape\n [_, X, X, X],\n [X, X, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 103, // id\n [\n // shape\n [X, X, X, _],\n [_, _, X, X],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 104, // id\n [\n // shape\n [_, X, X],\n [_, X, _],\n [X, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 105, // id\n [\n // shape\n [_, _, X],\n [_, X, X],\n [X, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 106, // id\n [\n // shape\n [X, _, _],\n [X, X, X],\n [X, _, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n Fragments.push(\n new Fragment(\n 107, // id\n [\n // shape\n [_, X, _],\n [X, X, X],\n [_, X, _],\n ],\n FragmentType.Booster, // type\n 1.1, // power\n 99, // limit\n ),\n );\n})();\n\nexport const NoneFragment = new Fragment(-2, [], FragmentType.None, 0, Infinity);\nexport const DeleteFragment = new Fragment(-2, [], FragmentType.Delete, 0, Infinity);\n","import * as monaco from \"monaco-editor\";\nimport type { Monaco } from \"@monaco-editor/react\";\n\nexport interface IScriptEditorTheme {\n base: \"vs\" | \"vs-dark\" | \"hc-black\";\n inherit: boolean;\n common: {\n accent: string;\n bg: string;\n fg: string;\n };\n syntax: {\n tag: string;\n entity: string;\n string: string;\n regexp: string;\n markup: string;\n keyword: string;\n comment: string;\n constant: string;\n error: string;\n };\n ui: {\n line: string;\n panel: {\n bg: string;\n selected: string;\n border: string;\n };\n selection: {\n bg: string;\n };\n };\n}\n\nexport const defaultMonacoTheme: IScriptEditorTheme = {\n base: \"vs-dark\",\n inherit: true,\n common: {\n accent: \"B5CEA8\",\n bg: \"1E1E1E\",\n fg: \"D4D4D4\",\n },\n syntax: {\n tag: \"569CD6\",\n entity: \"569CD6\",\n string: \"CE9178\",\n regexp: \"646695\",\n markup: \"569CD6\",\n keyword: \"569CD6\",\n comment: \"6A9955\",\n constant: \"569CD6\",\n error: \"F44747\",\n },\n ui: {\n line: \"1E1E1E\",\n panel: {\n bg: \"252526\",\n selected: \"252526\",\n border: \"1E1E1E\",\n },\n selection: {\n bg: \"ADD6FF26\",\n },\n },\n};\n\n// Regex used for token color validation\n// https://github.com/microsoft/vscode/blob/973684056e67153952f495fce93bf50d0ec0b892/src/vs/editor/common/languages/supports/tokenization.ts#L153\nconst colorRegExp = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\n\n// Recursively sanitize the theme data to prevent errors\n// Invalid data will be replaced with FF0000 (bright red)\nexport const sanitizeTheme = (theme: IScriptEditorTheme): void => {\n for (const [k, v] of Object.entries(theme)) {\n switch (k) {\n case \"base\":\n if (![\"vs-dark\", \"vs\"].includes(theme.base)) theme.base = \"vs-dark\";\n continue;\n case \"inherit\":\n if (typeof theme.inherit !== \"boolean\") theme.inherit = true;\n continue;\n }\n\n const repairBlock = (block: { [key: string]: object | string }): void => {\n for (const [k, v] of Object.entries(block)) {\n if (typeof v === \"object\") {\n repairBlock(v as { [key: string]: string });\n } else if (!v.match(colorRegExp)) block[k] = \"FF0000\";\n }\n };\n repairBlock(v);\n }\n};\n\nexport function makeTheme(theme: IScriptEditorTheme): monaco.editor.IStandaloneThemeData {\n const themeRules = [\n {\n token: \"\",\n background: theme.ui.line,\n foreground: theme.common.fg,\n },\n {\n token: \"identifier\",\n foreground: theme.common.accent,\n },\n {\n token: \"keyword\",\n foreground: theme.syntax.keyword,\n },\n {\n token: \"string\",\n foreground: theme.syntax.string,\n },\n {\n token: \"string.escape\",\n foreground: theme.syntax.regexp,\n },\n {\n token: \"comment\",\n foreground: theme.syntax.comment,\n },\n {\n token: \"constant\",\n foreground: theme.syntax.constant,\n },\n {\n token: \"entity\",\n foreground: theme.syntax.entity,\n },\n {\n token: \"type\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"tag\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"regexp\",\n foreground: theme.syntax.regexp,\n },\n {\n token: \"attribute\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"constructor\",\n foreground: theme.syntax.markup,\n },\n {\n token: \"invalid\",\n foreground: theme.syntax.error,\n },\n {\n token: \"number\",\n foreground: theme.common.accent,\n },\n {\n token: \"delimiter\",\n foreground: theme.common.fg,\n },\n // Custom tokens\n {\n token: \"ns\",\n foreground: theme.syntax.tag,\n },\n {\n token: \"netscriptfunction\",\n foreground: theme.syntax.markup,\n },\n {\n token: \"otherkeywords\",\n foreground: theme.syntax.keyword,\n },\n {\n token: \"otherkeyvars\",\n foreground: theme.common.accent,\n },\n {\n token: \"this\",\n foreground: theme.syntax.tag,\n },\n ];\n\n const themeColors = Object.fromEntries(\n [\n [\"editor.background\", theme.common.bg],\n [\"editor.foreground\", theme.common.fg],\n [\"editor.lineHighlightBackground\", theme.ui.line],\n [\"editor.selectionBackground\", theme.ui.selection.bg],\n\n [\"editorSuggestWidget.background\", theme.ui.panel.bg],\n [\"editorSuggestWidget.border\", theme.ui.panel.border],\n [\"editorSuggestWidget.selectedBackground\", theme.ui.panel.selected],\n\n [\"editorHoverWidget.background\", theme.ui.panel.bg],\n [\"editorHoverWidget.border\", theme.ui.panel.border],\n\n [\"editorWidget.background\", theme.ui.panel.bg],\n [\"editorWidget.border\", theme.ui.panel.border],\n\n [\"input.background\", theme.ui.panel.bg],\n [\"input.border\", theme.ui.panel.border],\n ].map(([k, v]) => [k, \"#\" + v]),\n );\n\n return { base: theme.base, inherit: theme.inherit, rules: themeRules, colors: themeColors };\n}\n\nexport async function loadThemes(monaco: Monaco): Promise {\n monaco.editor.defineTheme(\"monokai\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"272822\",\n token: \"\",\n },\n {\n foreground: \"75715e\",\n token: \"comment\",\n },\n {\n foreground: \"e6db74\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"ae81ff\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"ae81ff\",\n },\n {\n foreground: \"ae81ff\",\n token: \"function\",\n },\n {\n foreground: \"f92672\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"ae81ff\",\n },\n {\n token: \"ns\",\n foreground: \"97d92b\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"53d3e4\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"53d3e4\",\n },\n {\n token: \"this\",\n foreground: \"fd971f\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#F8F8F2\",\n \"editor.background\": \"#272822\",\n \"editor.selectionBackground\": \"#49483E\",\n \"editor.lineHighlightBackground\": \"#3E3D32\",\n \"editorCursor.foreground\": \"#F8F8F0\",\n \"editorWhitespace.foreground\": \"#3B3A32\",\n \"editorIndentGuide.activeBackground\": \"#9D550FB0\",\n \"editor.selectionHighlightBorder\": \"#222218\",\n },\n });\n\n monaco.editor.defineTheme(\"solarized-dark\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"002b36\",\n token: \"\",\n },\n {\n foreground: \"586e75\",\n token: \"comment\",\n },\n {\n foreground: \"00afaf\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"00afaf\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"268bd2\",\n },\n {\n foreground: \"268bd2\",\n token: \"function\",\n },\n {\n foreground: \"859900\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"cb4b16\",\n },\n {\n token: \"ns\",\n foreground: \"cb4b16\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"268bd2\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"268bd2\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"b58900\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"this\",\n foreground: \"cb4b16\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#839496\",\n \"editor.background\": \"#002b36\",\n \"editor.selectionBackground\": \"#073642\",\n \"editor.lineHighlightBackground\": \"#073642\",\n \"editorCursor.foreground\": \"#819090\",\n \"editorWhitespace.foreground\": \"#073642\",\n \"editorIndentGuide.activeBackground\": \"#9D550FB0\",\n \"editor.selectionHighlightBorder\": \"#222218\",\n },\n });\n\n monaco.editor.defineTheme(\"solarized-light\", {\n base: \"vs\",\n inherit: true,\n rules: [\n {\n foreground: \"657b83\",\n background: \"fdf6e3\",\n token: \"\",\n },\n {\n foreground: \"586e75\",\n token: \"comment\",\n },\n {\n foreground: \"2aa198\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"2aa198\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"268bd2\",\n },\n {\n foreground: \"268bd2\",\n token: \"function\",\n },\n {\n foreground: \"859900\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"bc4b16\",\n },\n {\n token: \"ns\",\n foreground: \"cb4b16\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"268bd2\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"268bd2\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"b58900\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"0087ff\",\n },\n {\n token: \"this\",\n foreground: \"cb4b16\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#657b83\",\n \"editor.background\": \"#fdf6e3\",\n \"editor.selectionBackground\": \"#eee8d5\",\n \"editor.lineHighlightBackground\": \"#eee8d5\",\n \"editorCursor.foreground\": \"#657b83\",\n \"editorWhitespace.foreground\": \"#eee8d5\",\n \"editorIndentGuide.activeBackground\": \"#eee8d5\",\n \"editor.selectionHighlightBorder\": \"#073642\",\n },\n });\n\n monaco.editor.defineTheme(\"dracula\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"282A36\",\n foreground: \"F8F8F2\",\n token: \"\",\n },\n {\n foreground: \"6272A4\",\n token: \"comment\",\n },\n {\n foreground: \"F1FA8C\",\n token: \"string\",\n },\n {\n token: \"number\",\n foreground: \"BD93F9\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"BD93F9\",\n },\n {\n foreground: \"FF79C6\",\n token: \"function\",\n },\n {\n foreground: \"FF79C6\",\n token: \"keyword\",\n },\n {\n token: \"storage.type.function.js\",\n foreground: \"FF79C6\",\n },\n {\n token: \"ns\",\n foreground: \"FFB86C\",\n fontStyle: \"italic\",\n },\n\n {\n token: \"netscriptfunction\",\n foreground: \"FF79C6\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"FF68A7\",\n },\n {\n token: \"type.identifier.js\",\n foreground: \"7EE9FD\",\n fontStyle: \"italic\",\n },\n {\n token: \"delimiter.square.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"delimiter.parenthesis.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"delimiter.bracket.js\",\n foreground: \"FFD709\",\n },\n {\n token: \"this\",\n foreground: \"BD93F9\",\n fontStyle: \"italic\",\n },\n ],\n colors: {\n \"editor.foreground\": \"#F8F8F2\",\n \"editor.background\": \"#282A36\",\n \"editorLineNumber.foreground\": \"#6272A4\",\n \"editor.selectionBackground\": \"#44475A\",\n \"editor.selectionHighlightBackground\": \"#424450\",\n \"editor.foldBackground\": \"#21222C\",\n \"editor.wordHighlightBackground\": \"#8BE9FD50\",\n \"editor.wordHighlightStrongBackground\": \"#50FA7B50\",\n \"editor.findMatchBackground\": \"#FFB86C80\",\n \"editor.findMatchHighlightBackground\": \"#FFFFFF40\",\n \"editor.findRangeHighlightBackground\": \"#44475A75\",\n \"editor.hoverHighlightBackground\": \"#8BE9FD50\",\n \"editor.lineHighlightBorder\": \"#44475A\",\n \"editor.rangeHighlightBackground\": \"#BD93F915\",\n \"editor.snippetTabstopHighlightBackground\": \"#282A36\",\n \"editor.snippetTabstopHighlightBorder\": \"#6272A4\",\n \"editor.snippetFinalTabstopHighlightBackground\": \"#282A36\",\n \"editor.snippetFinalTabstopHighlightBorder\": \"#50FA7B\",\n },\n });\n\n monaco.editor.defineTheme(\"one-dark\", {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n token: \"\",\n background: \"333842\",\n foreground: \"ABB2BF\",\n },\n {\n token: \"comment\",\n foreground: \"5C6370\",\n },\n {\n token: \"string\",\n foreground: \"98C379\",\n },\n {\n token: \"number\",\n foreground: \"D19A66\",\n },\n {\n token: \"function\",\n foreground: \"C678DD\",\n },\n {\n token: \"keyword\",\n foreground: \"C678DD\",\n },\n {\n token: \"otherkeyvars\",\n foreground: \"D19A66\",\n },\n {\n token: \"otherkeywords\",\n foreground: \"C678DD\",\n },\n {\n token: \"ns\",\n foreground: \"E06C75\",\n },\n {\n token: \"netscriptfunction\",\n foreground: \"61AFEF\",\n },\n {\n token: \"type.identifier\",\n foreground: \"E5C07B\",\n },\n {\n token: \"delimiter\",\n foreground: \"ABB2BF\",\n },\n {\n token: \"this\",\n foreground: \"E06C75\",\n },\n ],\n colors: {\n \"editor.background\": \"#282C34\",\n \"editor.foreground\": \"#ABB2BF\",\n \"editor.lineHighlightBackground\": \"#99BBFF0A\",\n \"editor.selectionBackground\": \"#3E4451\",\n \"editor.findMatchHighlightBackground\": \"#528BFF3D\",\n \"editorCursor.foreground\": \"#528BFF\",\n \"editorHoverWidget.background\": \"#21252B\",\n \"editorHoverWidget.border\": \"#181A1F\",\n \"editorIndentGuide.background\": \"#ABB2BF26\",\n \"editorIndentGuide.activeBackground\": \"#626772\",\n \"editorLineNumber.foreground\": \"#636D83\",\n \"editorLineNumber.activeForeground\": \"#ABB2BF\",\n \"editorSuggestWidget.background\": \"#21252B\",\n \"editorSuggestWidget.border\": \"#181A1F\",\n \"editorSuggestWidget.selectedBackground\": \"#2C313A\",\n \"editorWhitespace.foreground\": \"#ABB2BF26\",\n \"editorWidget.background\": \"#21252B\",\n \"editorWidget.border\": \"#3A3F4B\",\n \"input.background\": \"#1B1D23\",\n \"input.border\": \"#181A1F\",\n \"peekView.border\": \"#528BFF\",\n \"peekViewResult.background\": \"#21252B\",\n \"peekViewResult.selectionBackground\": \"#2C313A\",\n \"peekViewTitle.background\": \"#1B1D23\",\n \"peekViewEditor.background\": \"#1B1D23\",\n \"scrollbarSlider.background\": \"#4E566680\",\n \"scrollbarSlider.activeBackground\": \"#747D9180\",\n \"scrollbarSlider.hoverBackground\": \"#5A637580\",\n },\n });\n}\n","/**\n * Generic Event Emitter class following a subscribe/publish paradigm.\n */\nfunction uuidv4(): string {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport class EventEmitter {\n subscribers: { [key: string]: (...args: [...T]) => void | undefined } = {};\n\n subscribe(s: (...args: [...T]) => void): () => void {\n let uuid = uuidv4();\n while (this.subscribers[uuid] !== undefined) uuid = uuidv4();\n this.subscribers[uuid] = s;\n\n return () => {\n delete this.subscribers[uuid];\n };\n }\n\n emit(...args: [...T]): void {\n for (const s in this.subscribers) {\n const sub = this.subscribers[s];\n if (sub === undefined) continue;\n\n sub(...args);\n }\n }\n}\n","import React, { useState } from \"react\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"@mui/icons-material/Remove\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport DoubleArrowIcon from \"@mui/icons-material/DoubleArrow\";\nimport TextField from \"@mui/material/TextField\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ninterface IProps {\n label: string;\n placeholder: string;\n add: (x: number) => void;\n subtract: (x: number) => void;\n tons: () => void;\n reset: () => void;\n}\n\nexport function Adjuster(props: IProps): React.ReactElement {\n const [value, setValue] = useState(\"\");\n\n function onChange(event: React.ChangeEvent): void {\n if (event.target.value === \"\") setValue(\"\");\n else setValue(parseFloat(event.target.value));\n }\n\n const { label, placeholder, add, subtract, reset, tons } = props;\n return (\n <>\n \n \n \n \n \n \n \n add(typeof value !== \"string\" ? value : 0)} size=\"large\">\n \n \n \n >\n ),\n endAdornment: (\n <>\n \n subtract(typeof value !== \"string\" ? value : 0)} size=\"large\">\n \n \n \n \n \n \n \n \n >\n ),\n }}\n />\n >\n );\n}\n","import { FormControlLabel, Switch, Tooltip, Typography } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\n\ninterface IProps {\n checked: boolean;\n onChange: (newValue: boolean, error?: string) => void;\n text: React.ReactNode;\n tooltip: React.ReactNode;\n}\n\nexport function OptionSwitch({ checked, onChange, text, tooltip }: IProps): React.ReactElement {\n const [value, setValue] = useState(checked);\n\n function handleSwitchChange(event: React.ChangeEvent): void {\n setValue(event.target.checked);\n }\n\n useEffect(() => onChange(value), [value]);\n\n return (\n <>\n }\n label={\n {tooltip}}>\n {text}\n \n }\n />\n \n >\n );\n}\n","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 if (hostname.slice(-2) != `-0`) {\n hostname = `${hostname}-0`;\n }\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\";\nimport { ITutorial } from \"../InteractiveTutorial\";\nimport { AlertEvents } from \"../ui/React/AlertManager\";\n\nexport type killScriptParams = WorkerScript | number | { runningScript: RunningScript; hostname: string };\n\nexport function killWorkerScript(params: killScriptParams): boolean {\n console.log(ITutorial.isRunning);\n if (ITutorial.isRunning) {\n AlertEvents.emit(\"Processes cannot be killed during the tutorial.\");\n return false;\n }\n if (params instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(params);\n\n return true;\n } else if (typeof params === \"number\") {\n return killWorkerScriptByPid(params);\n } else {\n // Try to kill by PID\n const res = killWorkerScriptByPid(params.runningScript.pid);\n if (res) {\n return res;\n }\n\n // If for some reason that doesn't work, we'll try the old way\n for (const ws of workerScripts.values()) {\n if (ws.scriptRef === params.runningScript) {\n stopAndCleanUpWorkerScript(ws);\n return true;\n }\n }\n\n return false;\n }\n}\n\nfunction killWorkerScriptByPid(pid: number): boolean {\n const ws = workerScripts.get(pid);\n if (ws instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(ws);\n return true;\n }\n\n return false;\n}\n\nfunction stopAndCleanUpWorkerScript(ws: WorkerScript): void {\n killNetscriptDelay(ws);\n if (typeof ws.atExit === \"function\") {\n try {\n ws.env.stopFlag = false;\n ws.atExit();\n } catch (e: unknown) {\n let message = e instanceof ScriptDeath ? e.errorMessage : String(e);\n message = message.replace(/.*\\|DELIMITER\\|/, \"\");\n dialogBoxCreate(\n `Error trying to call atExit for script ${[ws.name, ...ws.args].join(\" \")} on ${ws.hostname}\\n ${message}`,\n );\n console.error(e);\n }\n ws.atExit = undefined;\n }\n ws.env.stopFlag = true;\n removeWorkerScript(ws);\n}\n\n/**\n * Helper function that removes the script being killed from the global pool.\n * Also handles other cleanup-time operations\n *\n * @param {WorkerScript} - Identifier for WorkerScript. Either the object itself, or\n * its index in the global workerScripts array\n */\nfunction removeWorkerScript(workerScript: WorkerScript): void {\n const ip = workerScript.hostname;\n\n // Get the server on which the script runs\n const server = GetServer(ip);\n if (server == null) {\n console.error(`Could not find server on which this script is running: ${ip}`);\n return;\n }\n\n // Delete the RunningScript object from that server\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScript = server.runningScripts[i];\n if (runningScript === workerScript.scriptRef) {\n server.runningScripts.splice(i, 1);\n break;\n }\n }\n\n // Recalculate ram used on that server\n\n server.updateRamUsed(0, Player);\n for (const rs of server.runningScripts) server.updateRamUsed(server.ramUsed + rs.ramUsage * rs.threads, Player);\n\n // Delete script from global pool (workerScripts)\n workerScripts.delete(workerScript.pid);\n // const res = workerScripts.delete(workerScript.pid);\n // if (!res) {\n // console.warn(`removeWorkerScript() called with WorkerScript that wasn't in the global map:`);\n // console.warn(workerScript);\n // }\n AddRecentScript(workerScript);\n\n WorkerScriptStartStopEventEmitter.emit();\n}\n\n/**\n * Helper function that interrupts a script's delay if it is in the middle of a\n * timed, blocked operation (like hack(), sleep(), etc.). This allows scripts to\n * be killed immediately even if they're in the middle of one of those long operations\n */\nfunction killNetscriptDelay(workerScript: WorkerScript): void {\n if (workerScript instanceof WorkerScript) {\n if (workerScript.delay) {\n clearTimeout(workerScript.delay);\n if (workerScript.delayReject) {\n workerScript.delayReject(new ScriptDeath(workerScript));\n }\n }\n }\n}\n","import React from \"react\";\nimport { BitNodeMultipliers, IBitNodeMultipliers } from \"./BitNodeMultipliers\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { CityName } from \"../Locations/data/CityNames\";\n\nclass BitNode {\n // A short description, or tagline, about the BitNode\n desc: string;\n\n // A long, detailed overview of the BitNode\n info: JSX.Element;\n\n // Name of BitNode\n name: string;\n\n // BitNode number\n number: number;\n\n difficulty: 0 | 1 | 2;\n\n constructor(n: number, difficulty: 0 | 1 | 2, name: string, desc = \"\", info: JSX.Element = <>>) {\n this.number = n;\n this.difficulty = difficulty;\n this.name = name;\n this.desc = desc;\n this.info = info;\n }\n}\n\nexport const BitNodes: IMap = {};\n\nBitNodes[\"BitNode1\"] = new BitNode(\n 1,\n 0,\n \"Source Genesis\",\n \"The original BitNode\",\n (\n <>\n The first BitNode created by the Enders to imprison the minds of humans. It became the prototype and\n testing-grounds for all of the BitNodes that followed.\n \n \n This is the first BitNode that you play through. It has no special modifications or mechanics.\n \n \n Destroying this BitNode will give you Source-File 1, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the player start with 32GB of RAM on his/her home computer when\n entering a new BitNode, and also increases all of the player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nBitNodes[\"BitNode2\"] = new BitNode(\n 2,\n 0,\n \"Rise of the Underworld\",\n \"From the shadows, they rose\", //Gangs\n (\n <>\n From the shadows, they rose.\n \n \n Organized crime groups quickly filled the void of power left behind from the collapse of Western government in the\n 2050s. As society and civilization broke down, people quickly succumbed to the innate human impulse of evil and\n savagery. The organized crime factions quickly rose to the top of the modern world.\n \n \n Certain Factions ({FactionNames.SlumSnakes}, {FactionNames.Tetrads}, {FactionNames.TheSyndicate},{\" \"}\n {FactionNames.TheDarkArmy}, {FactionNames.SpeakersForTheDead}, {FactionNames.NiteSec}, {FactionNames.TheBlackHand}\n ) give the player the ability to form and manage their own gangs. These gangs will earn the player money and\n reputation with the corresponding Faction\n \n Every Augmentation in the game will be available through the Factions listed above\n \n \n Destroying this BitNode will give you Source-File 2, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to form gangs in other BitNodes once your karma decreases\n to a certain value. It also increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nBitNodes[\"BitNode3\"] = new BitNode(\n 3,\n 0,\n \"Corporatocracy\",\n \"The Price of Civilization\",\n (\n <>\n Our greatest illusion is that a healthy society can revolve around a single-minded pursuit of wealth.\n \n \n Sometime in the early 21st century economic and political globalization turned the world into a corporatocracy,\n and it never looked back. Now, the privileged elite will happily bankrupt their own countrymen, decimate their own\n community, and evict their neighbors from houses in their desperate bid to increase their wealth.\n \n \n In this BitNode you can create and manage your own corporation. Running a successful corporation has the potential\n of generating massive profits.\n \n \n Destroying this BitNode will give you Source-File 3, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you create corporations on other BitNodes (although some\n BitNodes will disable this mechanic) and level 3 permanently unlocks the full API. This Source-File also increases\n your charisma and company salary multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode4\"] = new BitNode(\n 4,\n 1,\n \"The Singularity\",\n \"The Man and the Machine\",\n (\n <>\n The Singularity has arrived. The human race is gone, replaced by artificially superintelligent beings that are\n more machine than man. \n \n \n In this BitNode you will gain access to a new set of Netscript Functions known as Singularity Functions. These\n functions allow you to control most aspects of the game through scripts, including working for factions/companies,\n purchasing/installing Augmentations, and creating programs.\n \n \n Destroying this BitNode will give you Source-File 4, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you access and use the Singularity Functions in other BitNodes.\n Each level of this Source-File reduces the RAM cost of singularity functions:\n \n Level 1: 16x\n \n Level 2: 4x\n \n Level 3: 1x\n >\n ),\n);\nBitNodes[\"BitNode5\"] = new BitNode(\n 5,\n 1,\n \"Artificial Intelligence\",\n \"Posthuman\",\n (\n <>\n They said it couldn't be done. They said the human brain, along with its consciousness and intelligence, couldn't\n be replicated. They said the complexity of the brain results from unpredictable, nonlinear interactions that\n couldn't be modeled by 1's and 0's. They were wrong.\n \n \n Destroying this BitNode will give you Source-File 5, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants you a special new stat called Intelligence. Intelligence is\n unique because it is permanent and persistent (it never gets reset back to 1). However gaining Intelligence\n experience is much slower than other stats. Higher Intelligence levels will boost your production for many actions\n in the game. \n \n In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with\n Formulas.exe, and will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode6\"] = new BitNode(\n 6,\n 1,\n FactionNames.Bladeburners,\n \"Like Tears in Rain\",\n (\n <>\n In the middle of the 21st century, {FactionNames.OmniTekIncorporated} began designing and manufacturing advanced\n synthetic androids, or Synthoids for short. They achieved a major technological breakthrough in the sixth\n generation of their Synthoid design, called MK-VI, by developing a hyperintelligent AI. Many argue that this was\n the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, and more\n intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} Division at the NSA, which provides a\n new mechanic for progression.\n \n \n Destroying this BitNode will give you Source-File 6, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the NSA's {FactionNames.Bladeburners} Division\n in other BitNodes. In addition, this Source-File will raise both the level and experience gain rate of all your\n combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode7\"] = new BitNode(\n 7,\n 2,\n `${FactionNames.Bladeburners} 2079`,\n \"More human than humans\",\n (\n <>\n In the middle of the 21st century, you were doing cutting-edge work at {FactionNames.OmniTekIncorporated} as part\n of the AI design team for advanced synthetic androids, or Synthoids for short. You helped achieve a major\n technological breakthrough in the sixth generation of the company's Synthoid design, called MK-VI, by developing a\n hyperintelligent AI. Many argue that this was the first sentient AI ever created. This resulted in Synthoid models\n that were stronger, faster, and more intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} API, which allows you to access{\" \"}\n {FactionNames.Bladeburners} functionality through Netscript.\n \n \n Destroying this BitNode will give you Source-File 7, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the {FactionNames.Bladeburners} Netscript API in\n other BitNodes. In addition, this Source-File will increase all of your {FactionNames.Bladeburners} multipliers\n by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode8\"] = new BitNode(\n 8,\n 2,\n \"Ghost of Wall Street\",\n \"Money never sleeps\",\n (\n <>\n You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.\n \n \n In this BitNode:\n \n \n You start with $250 million\n \n You start with a WSE membership and access to the TIX API\n \n You are able to short stocks and place different types of orders (limit/stop)\n \n \n Destroying this BitNode will give you Source-File 8, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nBitNodes[\"BitNode9\"] = new BitNode(\n 9,\n 2,\n \"Hacktocracy\",\n \"Hacknet Unleashed\",\n (\n <>\n When {FactionNames.FulcrumSecretTechnologies} released their open-source Linux distro Chapeau, it quickly became\n the OS of choice for the underground hacking community. Chapeau became especially notorious for powering the\n Hacknet, a global, decentralized network used for nefarious purposes. {FactionNames.FulcrumSecretTechnologies}{\" \"}\n quickly abandoned the project and dissociated themselves from it.\n \n \n This BitNode unlocks the Hacknet Server, an upgraded version of the Hacknet Node. Hacknet Servers generate hashes,\n which can be spent on a variety of different upgrades.\n \n \n Destroying this BitNode will give you Source-File 9, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode10\"] = new BitNode(\n 10,\n 2,\n \"Digital Carbon\",\n \"Your body is not who you are\",\n (\n <>\n In 2084, VitaLife unveiled to the world the Persona Core, a technology that allowed people to digitize their\n consciousness. Their consciousness could then be transferred into Synthoids or other bodies by trasmitting the\n digitized data. Human bodies became nothing more than 'sleeves' for the human consciousness. Mankind had finally\n achieved immortality - at least for those that could afford it.\n \n \n This BitNode unlocks Sleeve and grafting technologies. Sleeve technology allows you to:\n \n \n 1. Grafting: Visit VitaLife in New Tokyo to be able to obtain Augmentations without needing to install\n \n 2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks\n synchronously.\n \n \n Grafting technology allows you to graft Augmentations, which is an alternative way of installing Augmentations.\n \n \n Destroying this BitNode will give you Source-File 10, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File unlocks Sleeve technology, and the Grafting API in other BitNodes.\n Each level of this Source-File also grants you a Duplicate Sleeve\n >\n ),\n);\nBitNodes[\"BitNode11\"] = new BitNode(\n 11,\n 1,\n \"The Big Crash\",\n \"Okay. Sell it all.\",\n (\n <>\n The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around\n the world. It was this period of disorder that eventually lead to the governmental reformation of many global\n superpowers, most notably the USA and China. But just as the world was slowly beginning to recover from these dark\n times, financial catastrophe hit.\n \n \n In many countries, the high cost of trying to deal with the civil disorder bankrupted the governments. In all of\n this chaos and confusion, hackers were able to steal billions of dollars from the world's largest electronic\n banks, prompting an international banking crisis as governments were unable to bail out insolvent banks. Now, the\n world is slowly crumbling in the middle of the biggest economic crisis of all time.\n \n \n Destroying this BitNode will give you Source-File 11, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File makes it so that company favor increases BOTH the player's salary and\n reputation gain rate at that company by 1% per favor (rather than just the reputation gain). This Source-File also\n increases the player's company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nBitNodes[\"BitNode12\"] = new BitNode(\n 12,\n 0,\n \"The Recursion\",\n \"Repeat.\",\n (\n <>\n To iterate is human, to recurse divine.\n \n \n Every time this BitNode is destroyed, it becomes slightly harder. Destroying this BitNode will give you\n Source-File 12, or if you already have this Source-File it will upgrade its level. There is no maximum level for\n Source-File 12. Each level of Source-File 12 lets you start any BitNodes with NeuroFlux Governor equal to the\n level of this source file.\n >\n ),\n);\nBitNodes[\"BitNode13\"] = new BitNode(\n 13,\n 2,\n \"They're lunatics\",\n \"1 step back, 2 steps forward\",\n (\n <>\n With the invention of Augmentations in the 2040s a religious group known as the{\" \"}\n {FactionNames.ChurchOfTheMachineGod} has rallied far more support than anyone would have hoped.\n \n \n Their leader, Allison \"Mother\" Stanek is said to have created her own Augmentation whose power goes beyond any\n other. Find her in {CityName.Chongqing} and gain her trust.\n \n \n Destroying this BitNode will give you Source-File 13, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the {FactionNames.ChurchOfTheMachineGod} appear in other\n BitNodes.\n \n \n Each level of this Source-File increases the size of Stanek's Gift.\n >\n ),\n);\n\nexport const defaultMultipliers: IBitNodeMultipliers = {\n HackingLevelMultiplier: 1,\n StrengthLevelMultiplier: 1,\n DefenseLevelMultiplier: 1,\n DexterityLevelMultiplier: 1,\n AgilityLevelMultiplier: 1,\n CharismaLevelMultiplier: 1,\n\n ServerGrowthRate: 1,\n ServerMaxMoney: 1,\n ServerStartingMoney: 1,\n ServerStartingSecurity: 1,\n ServerWeakenRate: 1,\n\n HomeComputerRamCost: 1,\n\n PurchasedServerCost: 1,\n PurchasedServerSoftcap: 1,\n PurchasedServerLimit: 1,\n PurchasedServerMaxRam: 1,\n\n CompanyWorkMoney: 1,\n CrimeMoney: 1,\n HacknetNodeMoney: 1,\n ManualHackMoney: 1,\n ScriptHackMoney: 1,\n ScriptHackMoneyGain: 1,\n CodingContractMoney: 1,\n\n ClassGymExpGain: 1,\n CompanyWorkExpGain: 1,\n CrimeExpGain: 1,\n FactionWorkExpGain: 1,\n HackExpGain: 1,\n\n FactionPassiveRepGain: 1,\n FactionWorkRepGain: 1,\n RepToDonateToFaction: 1,\n\n AugmentationMoneyCost: 1,\n AugmentationRepCost: 1,\n\n InfiltrationMoney: 1,\n InfiltrationRep: 1,\n\n FourSigmaMarketDataCost: 1,\n FourSigmaMarketDataApiCost: 1,\n\n CorporationValuation: 1,\n CorporationSoftcap: 1,\n\n BladeburnerRank: 1,\n BladeburnerSkillCost: 1,\n\n GangSoftcap: 1,\n GangUniqueAugs: 1,\n\n DaedalusAugsRequirement: 30,\n\n StaneksGiftPowerMultiplier: 1,\n StaneksGiftExtraSize: 0,\n\n WorldDaemonDifficulty: 1,\n};\n\nObject.freeze(defaultMultipliers);\n\nexport function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultipliers {\n const mults = Object.assign({}, defaultMultipliers);\n switch (n) {\n case 1: {\n return mults;\n }\n case 2: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n ServerGrowthRate: 0.8,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.4,\n CrimeMoney: 3,\n InfiltrationMoney: 3,\n FactionWorkRepGain: 0.5,\n FactionPassiveRepGain: 0,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: -6,\n PurchasedServerSoftcap: 1.3,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 5,\n });\n }\n case 3: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n RepToDonateToFaction: 0.5,\n AugmentationRepCost: 3,\n AugmentationMoneyCost: 3,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.2,\n ServerGrowthRate: 0.2,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.25,\n CrimeMoney: 0.25,\n HacknetNodeMoney: 0.25,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 2,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -2,\n PurchasedServerSoftcap: 1.3,\n GangSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.5,\n });\n }\n case 4: {\n return Object.assign(mults, {\n ServerMaxMoney: 0.15,\n ServerStartingMoney: 0.75,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.1,\n CrimeMoney: 0.2,\n HacknetNodeMoney: 0.05,\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.4,\n CrimeExpGain: 0.5,\n FactionWorkRepGain: 0.75,\n StaneksGiftPowerMultiplier: 1.5,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.5,\n });\n }\n case 5: {\n return Object.assign(mults, {\n ServerMaxMoney: 2,\n ServerStartingSecurity: 2,\n ServerStartingMoney: 0.5,\n ScriptHackMoney: 0.15,\n HacknetNodeMoney: 0.2,\n CrimeMoney: 0.5,\n InfiltrationRep: 1.5,\n InfiltrationMoney: 1.5,\n AugmentationMoneyCost: 2,\n HackExpGain: 0.5,\n CorporationValuation: 0.5,\n StaneksGiftPowerMultiplier: 1.3,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.5,\n });\n }\n case 6: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.75,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.7,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 7: {\n return Object.assign(mults, {\n BladeburnerRank: 0.6,\n BladeburnerSkillCost: 2,\n AugmentationMoneyCost: 3,\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.5,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n FourSigmaMarketDataCost: 2,\n FourSigmaMarketDataApiCost: 2,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.9,\n StaneksGiftExtraSize: -1,\n GangSoftcap: 0.7,\n CorporationSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 8: {\n return Object.assign(mults, {\n BladeburnerRank: 0,\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","import { WorkerScript } from \"./WorkerScript\";\n\n/**\n * Script death marker.\n *\n * IMPORTANT: the game engine should not base any of it's decisions on the data\n * carried in a ScriptDeath instance.\n *\n * This is because ScriptDeath instances are thrown through player code when a\n * script is killed. Which grants the player access to the class and the ability\n * to construct new instances with arbitrary data.\n */\nexport class ScriptDeath {\n /** Process ID number. */\n pid: number;\n\n /** Filename of the script. */\n name: string;\n\n /** IP Address on which the script was running */\n hostname: string;\n\n /** Status message in case of script error. */\n errorMessage = \"\";\n\n constructor(ws: WorkerScript) {\n this.pid = ws.pid;\n this.name = ws.name;\n this.hostname = ws.hostname;\n this.errorMessage = ws.errorMessage;\n\n Object.freeze(this);\n }\n}\n\nObject.freeze(ScriptDeath);\nObject.freeze(ScriptDeath.prototype);\n","/**\n * Map of all Cities in the game\n * Key = City Name, Value = City object\n */\nimport { City } from \"./City\";\nimport { IMap } from \"../types\";\n\nexport const Cities: IMap = {};\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { HacknetServerConstants } from \"../data/Constants\";\n\nexport function calculateHashGainRate(\n level: number,\n ramUsed: number,\n maxRam: number,\n cores: number,\n mult: number,\n): number {\n const baseGain = HacknetServerConstants.HashesPerLevel * level;\n const ramMultiplier = Math.pow(1.07, Math.log2(maxRam));\n const coreMultiplier = 1 + (cores - 1) / 5;\n const ramRatio = 1 - ramUsed / maxRam;\n\n return baseGain * ramMultiplier * coreMultiplier * ramRatio * mult * BitNodeMultipliers.HacknetNodeMoney;\n}\n\nexport function calculateLevelUpgradeCost(startingLevel: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingLevel >= HacknetServerConstants.MaxLevel) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeLevelMult;\n let totalMultiplier = 0;\n let currLevel = startingLevel;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalMultiplier += Math.pow(mult, currLevel);\n ++currLevel;\n }\n\n return 10 * HacknetServerConstants.BaseCost * totalMultiplier * costMult;\n}\n\nexport function calculateRamUpgradeCost(startingRam: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingRam >= HacknetServerConstants.MaxRam) {\n return Infinity;\n }\n\n let totalCost = 0;\n let numUpgrades = Math.round(Math.log2(startingRam));\n let currentRam = startingRam;\n for (let i = 0; i < sanitizedLevels; ++i) {\n const baseCost = currentRam * HacknetServerConstants.RamBaseCost;\n const mult = Math.pow(HacknetServerConstants.UpgradeRamMult, numUpgrades);\n\n totalCost += baseCost * mult;\n\n currentRam *= 2;\n ++numUpgrades;\n }\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCoreUpgradeCost(startingCores: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingCores >= HacknetServerConstants.MaxCores) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeCoreMult;\n let totalCost = 0;\n let currentCores = startingCores;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalCost += Math.pow(mult, currentCores - 1);\n ++currentCores;\n }\n totalCost *= HacknetServerConstants.CoreBaseCost;\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCacheUpgradeCost(startingCache: number, extraLevels = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingCache >= HacknetServerConstants.MaxCache) {\n return Infinity;\n }\n\n const mult = HacknetServerConstants.UpgradeCacheMult;\n let totalCost = 0;\n let currentCache = startingCache;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalCost += Math.pow(mult, currentCache - 1);\n ++currentCache;\n }\n totalCost *= HacknetServerConstants.CacheBaseCost;\n\n return totalCost;\n}\n\nexport function calculateServerCost(n: number, mult = 1): number {\n if (n - 1 >= HacknetServerConstants.MaxServers) {\n return Infinity;\n }\n\n return HacknetServerConstants.BaseCost * Math.pow(HacknetServerConstants.PurchaseMult, n - 1) * mult;\n}\n","/**\n * Checks whether the value passed in can be considered a string.\n * @param value The value to check if it is a string.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === \"string\" || value instanceof String;\n}\n","import { IMap } from \"./types\";\nimport { Terminal } from \"./Terminal\";\n\nexport let Aliases: IMap = {};\nexport let GlobalAliases: IMap = {};\n\nexport function loadAliases(saveString: string): void {\n if (saveString === \"\") {\n Aliases = {};\n } else {\n Aliases = JSON.parse(saveString);\n }\n}\n\nexport function loadGlobalAliases(saveString: string): void {\n if (saveString === \"\") {\n GlobalAliases = {};\n } else {\n GlobalAliases = JSON.parse(saveString);\n }\n}\n\n// Prints all aliases to terminal\nexport function printAliases(): void {\n for (const name of Object.keys(Aliases)) {\n if (Aliases.hasOwnProperty(name)) {\n Terminal.print(\"alias \" + name + \"=\" + Aliases[name]);\n }\n }\n for (const name of Object.keys(GlobalAliases)) {\n if (GlobalAliases.hasOwnProperty(name)) {\n Terminal.print(\"global alias \" + name + \"=\" + GlobalAliases[name]);\n }\n }\n}\n\n// Returns true if successful, false otherwise\nexport function parseAliasDeclaration(dec: string, global = false): boolean {\n console.log(dec);\n const re = /^([\\w|!%,@-]+)=(.+)$/;\n const matches = dec.match(re);\n console.log(matches);\n if (matches == null || matches.length != 3) {\n return false;\n }\n\n if (global) {\n addGlobalAlias(matches[1], matches[2]);\n } else {\n addAlias(matches[1], matches[2]);\n }\n return true;\n}\n\nfunction addAlias(name: string, value: string): void {\n if (name in GlobalAliases) {\n delete GlobalAliases[name];\n }\n Aliases[name] = value.trim();\n}\n\nfunction addGlobalAlias(name: string, value: string): void {\n if (name in Aliases) {\n delete Aliases[name];\n }\n GlobalAliases[name] = value.trim();\n}\n\nfunction getAlias(name: string): string | null {\n if (Aliases.hasOwnProperty(name)) {\n return Aliases[name];\n }\n\n return null;\n}\n\nfunction getGlobalAlias(name: string): string | null {\n if (GlobalAliases.hasOwnProperty(name)) {\n return GlobalAliases[name];\n }\n return null;\n}\n\nexport function removeAlias(name: string): boolean {\n if (Aliases.hasOwnProperty(name)) {\n delete Aliases[name];\n return true;\n }\n\n if (GlobalAliases.hasOwnProperty(name)) {\n delete GlobalAliases[name];\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns the original string with any aliases substituted in.\n * Aliases are only applied to \"whole words\", one level deep\n */\nexport function substituteAliases(origCommand: string): string {\n const commandArray = origCommand.split(\" \");\n if (commandArray.length > 0) {\n // For the alias and unalias commands, dont substite\n if (commandArray[0] === \"unalias\" || commandArray[0] === \"alias\") {\n return commandArray.join(\" \");\n }\n\n let somethingSubstituted = true;\n let depth = 0;\n\n while (somethingSubstituted && depth < 10) {\n depth++;\n somethingSubstituted = false;\n const alias = getAlias(commandArray[0])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(0, 1, ...alias);\n //commandArray[0] = alias;\n }\n for (let i = 0; i < commandArray.length; ++i) {\n const alias = getGlobalAlias(commandArray[i])?.split(\" \");\n if (alias != null) {\n somethingSubstituted = true;\n commandArray.splice(i, 1, ...alias);\n i += alias.length - 1;\n //commandArray[i] = alias;\n }\n }\n }\n }\n return commandArray.join(\" \");\n}\n","/**\n * Map of all Locations in the game\n * Key = Location name, value = Location object\n */\nimport { City } from \"./City\";\nimport { Cities } from \"./Cities\";\nimport { Location, IConstructorParams } from \"./Location\";\nimport { CityName } from \"./data/CityNames\";\nimport { LocationsMetadata } from \"./data/LocationsMetadata\";\n\nimport { IMap } from \"../types\";\n\nexport const Locations: IMap = {};\n\n/**\n * Here, we'll initialize both Locations and Cities data. These can both\n * be initialized from the `LocationsMetadata`\n */\nfunction constructLocation(p: IConstructorParams): Location {\n if (!p.name) {\n throw new Error(`Invalid constructor parameters for Location. No 'name' property`);\n }\n\n if (Locations[p.name] instanceof Location) {\n console.warn(`Property with name ${p.name} already exists and is being overwritten`);\n }\n\n Locations[p.name] = new Location(p);\n\n return Locations[p.name];\n}\n\n// First construct all cities\nCities[CityName.Aevum] = new City(CityName.Aevum);\nCities[CityName.Chongqing] = new City(CityName.Chongqing);\nCities[CityName.Ishima] = new City(CityName.Ishima);\nCities[CityName.NewTokyo] = new City(CityName.NewTokyo);\nCities[CityName.Sector12] = new City(CityName.Sector12);\nCities[CityName.Volhaven] = new City(CityName.Volhaven);\n\nCities[CityName.Aevum].asciiArt = `\n [aevum police headquarters] 26 \n o \n I \\\\ [bachman & associates] \n \\\\ 56 B \n x \\\\ [summit university] \n \\\\ \\\\ 28 \n \\\\ [snap fitness gym] x o--L-----------N \n K \\\\ / \n \\\\ \\\\ Q [casino] \n x 58 \\\\ / [travel agency] \n \\\\ 94 95 o \n 90 x 59 o------o | \n \\\\ / \\\\ | 98 102 103 \n o--------O------x----o 93 96 o-----+------------o o----o \n \\\\ | \\\\ / \n [hospital] \\\\ 61 [ecorp] x 31 99 o-F-o 101 \n o | \n | o---E-- | [fulcrum tech.] \n x 62 / A [aerocorp] \n [crush fitness gym] | / | \n | / | \n o--------D------+--o o \n | |\\\\ [rho construction] \n H [netlink tech.] | J \n | | \\\\ \n | 34 x \\\\ \n [clarke inc.] C | \\\\ [world stock exchange] \n | | \\\\ \n | | o-M-------R--------o \n[galactic cybersystems] G 35 x \n | [watchdog security] \n | \n 67 o \n \n [the slums] P `;\nCities[CityName.Chongqing].asciiArt = `\n | \n 75 o \n \\\\ \n o 76 \n 7 | | \n | + 77 \n [world stock exchange] F | \n \\\\ o 78 [kuaigong international] \n \\\\ / \n 38 o----x--x------x------A------G-- \n / 39 | 41 [church] \n 37 o + 79 o--x--x-C-0 \n / | / \n / x-----+-----x-----0 [hospital] \n[solaris space system] B | \n | + 80 \n | | \n 34 o E [travel agency] \n | \n | \n x 82 \n [the slums] D `;\nCities[CityName.Ishima].asciiArt = `\n o 59 \n o o | \n [storm tech.] | | G [world stock exchange] \n | | 28 | \n 23 o--C------o--------+----x----o | \n / / 25 | 27 \\\\ x 57 \n / / | \\\\ | \n / / | \\\\ | \n o 22 o | \\\\| 29/56 \n | | o \n | [hospital] D / \\\\ 3 2 1 \n o | / \\\\ o-------x------o \n / o / \\\\ / \n 48 o / 55 x \\\\ / \n \\\\ / / x [glitch] \n \\\\ / [nova medical] / 4/30 \\\\ \n 49 x A \\\\ H \n / \\\\ / \\\\ \n / \\\\ [travel agency] F o 31 \n / \\\\ 51 / \n / o----B------x-----o \n o 50 52 \n [omega soft.] \n [the slums] E `;\nCities[CityName.NewTokyo].asciiArt = `\n \n \n o \n \\\\ \n [arcade] E [defcomm] \n \\\\ \n o--x---A--x--o [travel agency] \n 7 8 10 H \n [vitalife] o 12 [global pharmaceuticals] \n | \n o--D-x----x-------x-C-+--------x--x-B-x---x-o \n 21 22 23 \\\\ 24 25 26 27 \n \\\\ \n [noodle bar] x 14 \n \\\\ \n \\\\ \n [hospital] o 15 [world stock exchange] \n | \n o--x--F--x-----x-----x---+---x----x--I--x-o \n | \n | \n o 17 \n \n \n \n G [the slums] \n `;\nCities[CityName.Sector12].asciiArt = `\n 78 o 97 \n o [icarus microsystems] / \n N [powerhouse gym] o I \n 1 | | / \n o-----+---x----o 4 A [alpha ent.] o-------o / \n | 3 \\\\ | \\\\ / \n | \\\\ | [iron gym] x 95 \n (79) x \\\\ | / \\\\ \n | o-E----+----x----J--o 10 / o----T--o \n | | 8 \\\\ 94 x \n 80 x [city hall] | x 11 / [world stock exchange]\n | | \\\\ / \n | C [cia] \\\\ / \n Q [hospital] | F P [universal energy] \n | o [deltaone] \\\\ / \n | 35 o---------x 13/92/36 \n L [megacorp] 33 / / \\\\ \n | o------------o 34 / \\\\ \n (29) | / [carmichael sec.] D \\\\ \n o-----+-----x------o / O [rothman university] \n | 31 32 [nsa] M \n | / \n B [blade industries] H \n | / [four sigma] \n | [joe's guns] / \n | / \n 85 o--G--------K--------S-------o 88 [the slums] R \n \n [foodnstuff] [travel agency] `;\nCities[CityName.Volhaven].asciiArt = `\n [omnia cybersystems] \n 17 66 68 \n o o------G-------o \n \\\\ / \\\\ \n \\\\ o 65 o 69 \n [syscore sec.] H | | \n \\\\ | | [millenium fitness gym] \n \\\\ | 21 22 23 24 | 26 \n o----+--x--x----x---x---+-----x-------D-----o \n 19 | | 28 \n | F [omnitek inc.] \n [hospital] J 63 o \n | / 72 \n 3 | 5 6 / 9 \n o--------+----x-----x----+----------M-------o \n / | | \n / 61 x [helios labs] B [world stock exchange] \n [travel agency] L | | \n / | o \n / E [nwo] / 75 \n / [computek] | / \n / A-------o------I-----o \n 1 o | | \n | [zb] o 77 \n [lexocorp] C \n | \n o \n 57 \n \n \n [the slums] K `;\n\n// Then construct all locations, and add them to the cities as we go.\nfor (const metadata of LocationsMetadata) {\n const loc = constructLocation(metadata);\n\n const cityName = loc.city;\n if (cityName === null) {\n // Generic location, add to all cities\n for (const city of Object.keys(Cities)) {\n Cities[city].addLocation(loc.name);\n }\n } else {\n Cities[cityName].addLocation(loc.name);\n }\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { RunningScript } from \"../../Script/RunningScript\";\nimport { killWorkerScript } from \"../../Netscript/killWorkerScript\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport Paper from \"@mui/material/Paper\";\nimport Draggable, { DraggableEvent } from \"react-draggable\";\nimport { ResizableBox, ResizeCallbackData } from \"react-resizable\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { workerScripts } from \"../../Netscript/WorkerScripts\";\nimport { startWorkerScript } from \"../../NetscriptWorker\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { findRunningScript } from \"../../Script/ScriptHelpers\";\nimport { debounce } from \"lodash\";\nimport { Settings } from \"../../Settings/Settings\";\nimport { ANSIITypography } from \"./ANSIITypography\";\nimport { ScriptArg } from \"../../Netscript/ScriptArg\";\n\nlet layerCounter = 0;\n\nexport const LogBoxEvents = new EventEmitter<[RunningScript]>();\nexport const LogBoxCloserEvents = new EventEmitter<[number]>();\nexport const LogBoxClearEvents = new EventEmitter<[]>();\n\ninterface LogBoxUIEvent {\n pid: number;\n data: T;\n}\n\ninterface LogBoxPositionData {\n x: number;\n y: number;\n}\n\nexport const LogBoxPositionEvents = new EventEmitter<[LogBoxUIEvent]>();\n\ninterface LogBoxResizeData {\n w: number;\n h: number;\n}\n\nexport const LogBoxSizeEvents = new EventEmitter<[LogBoxUIEvent]>();\n\ninterface Log {\n id: string;\n script: RunningScript;\n}\n\nlet logs: Log[] = [];\n\nexport function LogBoxManager(): React.ReactElement {\n const setRerender = useState(true)[1];\n function rerender(): void {\n setRerender((o) => !o);\n }\n useEffect(\n () =>\n LogBoxEvents.subscribe((script: RunningScript) => {\n const id = script.server + \"-\" + script.filename + script.args.map((x: ScriptArg): string => `${x}`).join(\"-\");\n if (logs.find((l) => l.id === id)) return;\n logs.push({\n id: id,\n script: script,\n });\n rerender();\n }),\n [],\n );\n\n //Event used by ns.closeTail to close tail windows\n useEffect(\n () =>\n LogBoxCloserEvents.subscribe((pid: number) => {\n closePid(pid);\n }),\n [],\n );\n\n useEffect(() =>\n LogBoxClearEvents.subscribe(() => {\n logs = [];\n rerender();\n }),\n );\n\n //Close tail windows by their id\n function close(id: string): void {\n logs = logs.filter((l) => l.id !== id);\n rerender();\n }\n\n //Close tail windows by their pid\n function closePid(pid: number): void {\n logs = logs.filter((log) => log.script.pid != pid);\n rerender();\n }\n\n return (\n <>\n {logs.map((log) => (\n close(log.id)} />\n ))}\n >\n );\n}\n\ninterface IProps {\n script: RunningScript;\n id: string;\n onClose: () => void;\n}\n\nconst useStyles = makeStyles(() =>\n createStyles({\n logs: {\n overflowY: \"scroll\",\n overflowX: \"hidden\",\n scrollbarWidth: \"auto\",\n flexDirection: \"column-reverse\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n },\n titleButton: {\n padding: \"1px 0\",\n height: \"100%\",\n },\n }),\n);\n\nexport const logBoxBaseZIndex = 1500;\n\nfunction LogWindow(props: IProps): React.ReactElement {\n const draggableRef = useRef(null);\n const rootRef = useRef(null);\n const [script, setScript] = useState(props.script);\n const classes = useStyles();\n const container = useRef(null);\n const setRerender = useState(false)[1];\n const [size, setSize] = useState<[number, number]>([500, 500]);\n const [minimized, setMinimized] = useState(false);\n function rerender(): void {\n setRerender((old) => !old);\n }\n\n const onResize = (e: React.SyntheticEvent, { size }: ResizeCallbackData) => {\n setSize([size.width, size.height]);\n };\n\n // useEffect(\n // () =>\n // WorkerScriptStartStopEventEmitter.subscribe(() => {\n // setTimeout(() => {\n // const server = GetServer(script.server);\n // if (server === null) return;\n // const exisitingScript = findRunningScript(script.filename, script.args, server);\n // if (exisitingScript) {\n // exisitingScript.logs = script.logs.concat(exisitingScript.logs)\n // setScript(exisitingScript)\n // }\n // rerender();\n // }, 100)\n // }),\n // [],\n // );\n\n const setPosition = ({ x, y }: LogBoxPositionData) => {\n const node = rootRef?.current;\n if (!node) return;\n const state = node.state as { x: number; y: number };\n state.x = x;\n state.y = y;\n };\n\n // Listen to Logbox positioning events.\n useEffect(\n () =>\n LogBoxPositionEvents.subscribe((e) => {\n if (e.pid !== props.script.pid) return;\n setPosition(e.data);\n }),\n [],\n );\n\n // Listen to Logbox resizing events.\n useEffect(\n () =>\n LogBoxSizeEvents.subscribe((e) => {\n if (e.pid !== props.script.pid) return;\n setSize([e.data.w, e.data.h]);\n }),\n [],\n );\n\n // initial position if 40%/30%\n useEffect(() => setPosition({ x: window.innerWidth * 0.4, y: window.innerHeight * 0.3 }), []);\n\n useEffect(() => {\n updateLayer();\n const id = setInterval(rerender, 1000);\n return () => clearInterval(id);\n }, []);\n\n function kill(): void {\n killWorkerScript({ runningScript: script, hostname: script.server });\n }\n\n function run(): void {\n const server = GetServer(script.server);\n if (server === null) return;\n const s = findRunningScript(script.filename, script.args, server);\n if (s === null) {\n script.ramUsage = 0;\n startWorkerScript(script, server);\n } else {\n setScript(s);\n }\n }\n\n function updateLayer(): void {\n const c = container.current;\n if (c === null) return;\n c.style.zIndex = logBoxBaseZIndex + layerCounter + \"\";\n layerCounter++;\n rerender();\n }\n\n function title(full = false): string {\n const maxLength = 30;\n const t = `${script.filename} ${script.args.map((x: ScriptArg): string => `${x}`).join(\" \")}`;\n if (full || t.length <= maxLength) {\n return t;\n }\n return t.slice(0, maxLength - 3) + \"...\";\n }\n\n function minimize(): void {\n setMinimized(!minimized);\n }\n\n function lineColor(s: string): \"error\" | \"success\" | \"warn\" | \"info\" | \"primary\" {\n if (s.match(/(^\\[[^\\]]+\\] )?ERROR/) || s.match(/(^\\[[^\\]]+\\] )?FAIL/)) {\n return \"error\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?SUCCESS/)) {\n return \"success\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?WARN/)) {\n return \"warn\";\n }\n if (s.match(/(^\\[[^\\]]+\\] )?INFO/)) {\n return \"info\";\n }\n return \"primary\";\n }\n\n // And trigger fakeDrag when the window is resized\n useEffect(() => {\n window.addEventListener(\"resize\", onWindowResize);\n return () => {\n window.removeEventListener(\"resize\", onWindowResize);\n };\n }, []);\n\n const onWindowResize = debounce((): void => {\n const node = draggableRef?.current;\n if (!node) return;\n\n if (!isOnScreen(node)) {\n setPosition({ x: 0, y: 0 });\n }\n }, 100);\n\n const isOnScreen = (node: HTMLDivElement): boolean => {\n const bounds = node.getBoundingClientRect();\n\n return !(bounds.right < 0 || bounds.bottom < 0 || bounds.left > innerWidth || bounds.top > outerWidth);\n };\n\n const boundToBody = (e: DraggableEvent): void | false => {\n if (\n e instanceof MouseEvent &&\n (e.clientX < 0 || e.clientY < 0 || e.clientX > innerWidth || e.clientY > innerHeight)\n )\n return false;\n };\n\n // Max [width, height]\n const minConstraints: [number, number] = [250, 33];\n\n return (\n \n \n \n \n \n }\n >\n <>\n \n \n {title(true)}\n \n\n \n {!workerScripts.has(script.pid) ? (\n \n ) : (\n \n )}\n \n \n \n \n\n \n \n {script.logs.map(\n (line: string, i: number): JSX.Element => (\n \n ),\n )}\n \n \n >\n \n \n \n );\n}\n","import { 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 mergeAugmentation = (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\nexport const mergeMultipliers = (m0: Multipliers, m1: Multipliers): Multipliers => {\n return {\n hacking_chance: m0.hacking_chance * m1.hacking_chance,\n hacking_speed: m0.hacking_speed * m1.hacking_speed,\n hacking_money: m0.hacking_money * m1.hacking_money,\n hacking_grow: m0.hacking_grow * m1.hacking_grow,\n hacking: m0.hacking * m1.hacking,\n hacking_exp: m0.hacking_exp * m1.hacking_exp,\n strength: m0.strength * m1.strength,\n strength_exp: m0.strength_exp * m1.strength_exp,\n defense: m0.defense * m1.defense,\n defense_exp: m0.defense_exp * m1.defense_exp,\n dexterity: m0.dexterity * m1.dexterity,\n dexterity_exp: m0.dexterity_exp * m1.dexterity_exp,\n agility: m0.agility * m1.agility,\n agility_exp: m0.agility_exp * m1.agility_exp,\n charisma: m0.charisma * m1.charisma,\n charisma_exp: m0.charisma_exp * m1.charisma_exp,\n hacknet_node_money: m0.hacknet_node_money * m1.hacknet_node_money,\n hacknet_node_purchase_cost: m0.hacknet_node_purchase_cost * m1.hacknet_node_purchase_cost,\n hacknet_node_ram_cost: m0.hacknet_node_ram_cost * m1.hacknet_node_ram_cost,\n hacknet_node_core_cost: m0.hacknet_node_core_cost * m1.hacknet_node_core_cost,\n hacknet_node_level_cost: m0.hacknet_node_level_cost * m1.hacknet_node_level_cost,\n company_rep: m0.company_rep * m1.company_rep,\n faction_rep: m0.faction_rep * m1.faction_rep,\n work_money: m0.work_money * m1.work_money,\n crime_success: m0.crime_success * m1.crime_success,\n crime_money: m0.crime_money * m1.crime_money,\n bladeburner_max_stamina: m0.bladeburner_max_stamina * m1.bladeburner_max_stamina,\n bladeburner_stamina_gain: m0.bladeburner_stamina_gain * m1.bladeburner_stamina_gain,\n bladeburner_analysis: m0.bladeburner_analysis * m1.bladeburner_analysis,\n bladeburner_success_chance: m0.bladeburner_success_chance * m1.bladeburner_success_chance,\n };\n};\n\nexport const scaleMultipliers = (m0: Multipliers, v: number): Multipliers => {\n return {\n hacking_chance: (m0.hacking_chance - 1) * v + 1,\n hacking_speed: (m0.hacking_speed - 1) * v + 1,\n hacking_money: (m0.hacking_money - 1) * v + 1,\n hacking_grow: (m0.hacking_grow - 1) * v + 1,\n hacking: (m0.hacking - 1) * v + 1,\n hacking_exp: (m0.hacking_exp - 1) * v + 1,\n strength: (m0.strength - 1) * v + 1,\n strength_exp: (m0.strength_exp - 1) * v + 1,\n defense: (m0.defense - 1) * v + 1,\n defense_exp: (m0.defense_exp - 1) * v + 1,\n dexterity: (m0.dexterity - 1) * v + 1,\n dexterity_exp: (m0.dexterity_exp - 1) * v + 1,\n agility: (m0.agility - 1) * v + 1,\n agility_exp: (m0.agility_exp - 1) * v + 1,\n charisma: (m0.charisma - 1) * v + 1,\n charisma_exp: (m0.charisma_exp - 1) * v + 1,\n hacknet_node_money: (m0.hacknet_node_money - 1) * v + 1,\n hacknet_node_purchase_cost: (m0.hacknet_node_purchase_cost - 1) * v + 1,\n hacknet_node_ram_cost: (m0.hacknet_node_ram_cost - 1) * v + 1,\n hacknet_node_core_cost: (m0.hacknet_node_core_cost - 1) * v + 1,\n hacknet_node_level_cost: (m0.hacknet_node_level_cost - 1) * v + 1,\n company_rep: (m0.company_rep - 1) * v + 1,\n faction_rep: (m0.faction_rep - 1) * v + 1,\n work_money: (m0.work_money - 1) * v + 1,\n crime_success: (m0.crime_success - 1) * v + 1,\n crime_money: (m0.crime_money - 1) * v + 1,\n bladeburner_max_stamina: (m0.bladeburner_max_stamina - 1) * v + 1,\n bladeburner_stamina_gain: (m0.bladeburner_stamina_gain - 1) * v + 1,\n bladeburner_analysis: (m0.bladeburner_analysis - 1) * v + 1,\n bladeburner_success_chance: (m0.bladeburner_success_chance - 1) * v + 1,\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 { 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 { IPort } from \"./NetscriptPort\";\nimport { RunningScript } from \"./Script/RunningScript\";\nimport { getRamUsageFromRunningScript } from \"./Script/RunningScriptHelpers\";\nimport { scriptCalculateOfflineProduction } from \"./Script/ScriptHelpers\";\nimport { Script } from \"./Script/Script\";\nimport { GetAllServers } from \"./Server/AllServers\";\nimport { BaseServer } from \"./Server/BaseServer\";\nimport { Settings } from \"./Settings/Settings\";\n\nimport { generate } from \"escodegen\";\n\nimport { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { arrayToString } from \"./utils/helpers/arrayToString\";\nimport { roundToTwo } from \"./utils/helpers/roundToTwo\";\nimport { isString } from \"./utils/helpers/isString\";\n\nimport { parse } from \"acorn\";\nimport { simple as walksimple } from \"acorn-walk\";\nimport { areFilesEqual } from \"./Terminal/DirectoryHelpers\";\nimport { Player } from \"./Player\";\nimport { Terminal } from \"./Terminal\";\nimport { ScriptArg } from \"./Netscript/ScriptArg\";\nimport { helpers } from \"./Netscript/NetscriptHelpers\";\n\nexport const NetscriptPorts: Map = new Map();\n\nexport function prestigeWorkerScripts(): void {\n for (const ws of workerScripts.values()) {\n ws.env.stopFlag = true;\n killWorkerScript(ws);\n }\n\n NetscriptPorts.clear();\n\n WorkerScriptStartStopEventEmitter.emit();\n workerScripts.clear();\n}\n\n// JS script promises need a little massaging to have the same guarantees as netscript\n// promises. This does said massaging and kicks the script off. It returns a promise\n// that resolves or rejects when the corresponding worker script is done.\nfunction startNetscript2Script(workerScript: WorkerScript): Promise {\n return new Promise((resolve, reject) => {\n executeJSScript(Player, workerScript.getServer().scripts, workerScript)\n .then(() => {\n resolve();\n })\n .catch((e) => reject(e));\n }).catch((e) => {\n if (e instanceof Error) {\n if (e instanceof SyntaxError) {\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(\n workerScript,\n e.message + \" (sorry we can't be more helpful)\",\n );\n } else {\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(\n workerScript,\n e.message + ((e.stack && \"\\nstack:\\n\" + e.stack.toString()) || \"\"),\n );\n }\n throw new ScriptDeath(workerScript);\n } else if (helpers.isScriptErrorMessage(e)) {\n workerScript.errorMessage = e;\n throw new ScriptDeath(workerScript);\n } else if (e instanceof ScriptDeath) {\n throw e;\n }\n\n // Don't know what to do with it, let's try making an error message out of it\n workerScript.errorMessage = helpers.makeRuntimeRejectMsg(workerScript, \"\" + e);\n throw new ScriptDeath(workerScript);\n });\n}\n\nfunction startNetscript1Script(workerScript: WorkerScript): Promise {\n const code = workerScript.code;\n\n //Process imports\n let codeWithImports, codeLineOffset;\n try {\n const importProcessingRes = processNetscript1Imports(code, workerScript);\n codeWithImports = importProcessingRes.code;\n codeLineOffset = importProcessingRes.lineOffset;\n } catch (e: unknown) {\n dialogBoxCreate(\"Error processing Imports in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n function wrapNS1Layer(int: Interpreter, intLayer: unknown, path: string[] = []) {\n //TODO: Better typing layers of interpreter scope and ns\n interface BasicObject {\n [key: string]: any;\n }\n const nsLayer = path.reduce((prev, newPath) => prev[newPath], workerScript.env.vars as BasicObject);\n for (const [name, entry] of Object.entries(nsLayer)) {\n if (typeof entry === \"function\") {\n // Async functions need to be wrapped. See JS-Interpreter documentation\n const wrapper = async (...args: unknown[]) => {\n // This async wrapper is sent a resolver function as an extra arg.\n // See JSInterpreter.js:3209\n try {\n const callback = args.pop() as (value: unknown) => void;\n const result = await entry(...args.map((arg) => int.pseudoToNative(arg)));\n return callback(int.nativeToPseudo(result));\n } catch (e: unknown) {\n // TODO: Unify error handling, this was stolen from previous async handler\n if (typeof e === \"string\") {\n console.error(e);\n const errorTextArray = e.split(\"|DELIMITER|\");\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n let msg = `${scriptName}@${hostname} `;\n msg += \" \";\n msg += errorMsg;\n dialogBoxCreate(msg);\n workerScript.env.stopFlag = true;\n killWorkerScript(workerScript);\n return;\n }\n }\n };\n int.setProperty(intLayer, name, int.createAsyncFunction(wrapper));\n } else if (Array.isArray(entry) || typeof entry !== \"object\") {\n // args, strings on enums, etc\n int.setProperty(intLayer, name, int.nativeToPseudo(entry));\n } else {\n // new object layer, e.g. bladeburner\n int.setProperty(intLayer, name, int.nativeToPseudo({}));\n wrapNS1Layer(int, (intLayer as BasicObject).properties[name], [...path, name]);\n }\n }\n }\n\n let interpreter: Interpreter;\n try {\n interpreter = new Interpreter(codeWithImports, wrapNS1Layer, codeLineOffset);\n } catch (e: unknown) {\n dialogBoxCreate(\"Syntax ERROR in \" + workerScript.name + \": \" + String(e));\n workerScript.env.stopFlag = true;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n function runInterpreter(): void {\n try {\n if (workerScript.env.stopFlag) {\n return reject(new ScriptDeath(workerScript));\n }\n\n let more = true;\n let i = 0;\n while (i < 3 && more) {\n more = more && interpreter.step();\n i++;\n }\n\n if (more) {\n setTimeout(runInterpreter, Settings.CodeInstructionRunTime);\n } else {\n resolve();\n }\n } catch (_e: unknown) {\n let e = String(_e);\n if (!helpers.isScriptErrorMessage(e)) {\n e = helpers.makeRuntimeRejectMsg(workerScript, e);\n }\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n }\n }\n\n try {\n runInterpreter();\n } catch (e: unknown) {\n if (isString(e)) {\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n } else if (e instanceof ScriptDeath) {\n return reject(e);\n } else {\n console.error(e);\n return reject(new ScriptDeath(workerScript));\n }\n }\n });\n}\n\n/* Since the JS Interpreter used for Netscript 1.0 only supports ES5, the keyword\n 'import' throws an error. However, since we want to support import funtionality\n we'll implement it ourselves by parsing the Nodes in the AST out.\n\n @param code - The script's code\n @returns {Object} {\n code: Newly-generated code with imported functions\n lineOffset: Net number of lines of code added/removed due to imported functions\n Should typically be positive\n }\n*/\nfunction processNetscript1Imports(code: string, workerScript: WorkerScript): { code: string; lineOffset: number } {\n //allowReserved prevents 'import' from throwing error in ES5\n const ast: Node = parse(code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n const server = workerScript.getServer();\n if (server == null) {\n throw new Error(\"Failed to find underlying Server object for script\");\n }\n\n function getScript(scriptName: string): Script | null {\n for (let i = 0; i < server.scripts.length; ++i) {\n if (server.scripts[i].filename === scriptName) {\n return server.scripts[i];\n }\n }\n return null;\n }\n\n let generatedCode = \"\"; // Generated Javascript Code\n let hasImports = false;\n\n // Walk over the tree and process ImportDeclaration nodes\n walksimple(ast, {\n ImportDeclaration: (node: Node) => {\n hasImports = true;\n let scriptName = node.source.value;\n if (scriptName.startsWith(\"./\")) {\n scriptName = scriptName.slice(2);\n }\n const script = getScript(scriptName);\n if (script == null) {\n throw new Error(\"'Import' failed due to invalid script: \" + scriptName);\n }\n const scriptAst = parse(script.code, {\n ecmaVersion: 9,\n allowReserved: true,\n sourceType: \"module\",\n });\n\n if (node.specifiers.length === 1 && node.specifiers[0].type === \"ImportNamespaceSpecifier\") {\n // import * as namespace from script\n const namespace = node.specifiers[0].local.name;\n const fnNames: string[] = []; //Names only\n const fnDeclarations: Node[] = []; //FunctionDeclaration Node objects\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n fnNames.push(node.id.name);\n fnDeclarations.push(node);\n },\n });\n\n //Now we have to generate the code that would create the namespace\n generatedCode += `var ${namespace};\\n(function (namespace) {\\n`;\n\n //Add the function declarations\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n\n //Add functions to namespace\n fnNames.forEach((fnName) => {\n generatedCode += \"namespace.\" + fnName + \" = \" + fnName;\n generatedCode += \"\\n\";\n });\n\n //Finish\n generatedCode += `})(${namespace} || (\" + namespace + \" = {}));\\n`;\n } else {\n //import {...} from script\n\n //Get array of all fns to import\n const fnsToImport: string[] = [];\n node.specifiers.forEach((e: Node) => {\n fnsToImport.push(e.local.name);\n });\n\n //Walk through script and get FunctionDeclaration code for all specified fns\n const fnDeclarations: Node[] = [];\n walksimple(scriptAst, {\n FunctionDeclaration: (node: Node) => {\n if (fnsToImport.includes(node.id.name)) {\n fnDeclarations.push(node);\n }\n },\n });\n\n //Convert FunctionDeclarations into code\n fnDeclarations.forEach((fn: Node) => {\n generatedCode += generate(fn);\n generatedCode += \"\\n\";\n });\n }\n },\n });\n\n //If there are no imports, just return the original code\n if (!hasImports) {\n return { code: code, lineOffset: 0 };\n }\n\n //Remove ImportDeclarations from AST. These ImportDeclarations must be in top-level\n let linesRemoved = 0;\n if (ast.type !== \"Program\" || ast.body == null) {\n throw new Error(\"Code could not be properly parsed\");\n }\n for (let i = ast.body.length - 1; i >= 0; --i) {\n if (ast.body[i].type === \"ImportDeclaration\") {\n ast.body.splice(i, 1);\n ++linesRemoved;\n }\n }\n\n //Calculated line offset\n const lineOffset = (generatedCode.match(/\\n/g) || []).length - linesRemoved;\n\n //Convert the AST back into code\n code = generate(ast);\n\n //Add the imported code and re-generate in ES5 (JS Interpreter for NS1 only supports ES5);\n code = generatedCode + code;\n\n const res = {\n code: code,\n lineOffset: lineOffset,\n };\n return res;\n}\n\n/**\n * Used to start a RunningScript (by creating and starting its\n * corresponding WorkerScript), and add the RunningScript to the server on which\n * it is active\n */\nexport function startWorkerScript(runningScript: RunningScript, server: BaseServer, parent?: WorkerScript): number {\n if (createAndAddWorkerScript(runningScript, server, parent)) {\n // Push onto runningScripts.\n // This has to come after createAndAddWorkerScript() because that fn updates RAM usage\n server.runScript(runningScript);\n\n // Once the WorkerScript is constructed in createAndAddWorkerScript(), the RunningScript\n // object should have a PID assigned to it, so we return that\n return runningScript.pid;\n }\n\n return 0;\n}\n\n/**\n * Given a RunningScript object, constructs its corresponding WorkerScript,\n * adds it to the global 'workerScripts' pool, and begins executing it.\n * @param {RunningScript} runningScriptObj - Script that's being run\n * @param {Server} server - Server on which the script is to be run\n * returns {boolean} indicating whether or not the workerScript was successfully added\n */\nfunction createAndAddWorkerScript(runningScriptObj: RunningScript, server: BaseServer, parent?: WorkerScript): boolean {\n // Update server's ram usage\n let threads = 1;\n if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) {\n threads = runningScriptObj.threads;\n } else {\n runningScriptObj.threads = 1;\n }\n const oneRamUsage = getRamUsageFromRunningScript(runningScriptObj);\n const ramUsage = roundToTwo(oneRamUsage * threads);\n const ramAvailable = server.maxRam - server.ramUsed;\n if (ramUsage > ramAvailable + 0.001) {\n dialogBoxCreate(\n `Not enough RAM to run script ${runningScriptObj.filename} with args ${arrayToString(runningScriptObj.args)}.\\n` +\n `This can occur when you reload the game and the script's RAM usage has increased (either because of an update to the game or ` +\n `your changes to the script).\\nThis can also occur if you have attempted to launch a script from a tail window with insufficient RAM. `,\n );\n return false;\n }\n\n server.updateRamUsed(roundToTwo(server.ramUsed + ramUsage), Player);\n\n // Get the pid\n const pid = generateNextPid();\n if (pid === -1) {\n throw new Error(\n `Failed to start script because could not find available PID. This is most ` +\n `because you have too many scripts running.`,\n );\n }\n\n // Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying\n // RunningScript's PID as well\n const workerScript = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);\n workerScript.ramUsage = oneRamUsage;\n\n // Add the WorkerScript to the global pool\n workerScripts.set(pid, workerScript);\n WorkerScriptStartStopEventEmitter.emit();\n\n // Start the script's execution\n let scriptExecution: Promise | null = null; // Script's resulting promise\n if (workerScript.name.endsWith(\".js\")) {\n scriptExecution = startNetscript2Script(workerScript);\n } else {\n scriptExecution = startNetscript1Script(workerScript);\n if (!(scriptExecution instanceof Promise)) {\n return false;\n }\n }\n\n // Once the code finishes (either resolved or rejected, doesnt matter), set its\n // running status to false\n scriptExecution\n .then(function () {\n workerScript.env.stopFlag = true;\n // On natural death, the earnings are transfered to the parent if it still exists.\n if (parent !== undefined && !parent.env.stopFlag) {\n parent.scriptRef.onlineExpGained += runningScriptObj.onlineExpGained;\n parent.scriptRef.onlineMoneyMade += runningScriptObj.onlineMoneyMade;\n }\n\n killWorkerScript(workerScript);\n workerScript.log(\"\", () => \"Script finished running\");\n })\n .catch(function (e) {\n if (e instanceof Error) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\"Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: \" + e.toString());\n return;\n } else if (e instanceof ScriptDeath) {\n if (helpers.isScriptErrorMessage(workerScript.errorMessage)) {\n const errorTextArray = workerScript.errorMessage.split(\"|DELIMITER|\");\n if (errorTextArray.length != 4) {\n console.error(\"ERROR: Something wrong with Error text in evaluator...\");\n console.error(\"Error text: \" + workerScript.errorMessage);\n return;\n }\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n\n let msg = `RUNTIME ERROR ${scriptName}@${hostname} (PID - ${workerScript.pid}) `;\n if (workerScript.args.length > 0) {\n msg += `Args: ${arrayToString(workerScript.args)} `;\n }\n msg += \" \";\n msg += errorMsg;\n\n dialogBoxCreate(msg);\n workerScript.log(\"\", () => \"Script crashed with runtime error\");\n } else {\n workerScript.log(\"\", () => \"Script killed\");\n return; // Already killed, so stop here\n }\n } else if (helpers.isScriptErrorMessage(e)) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\n \"ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: \" +\n e.toString(),\n );\n return;\n } else {\n dialogBoxCreate(\"An unknown script died for an unknown reason. This is a bug please contact game dev\");\n console.error(e);\n }\n\n killWorkerScript(workerScript);\n });\n\n return true;\n}\n\n/**\n * Updates the online running time stat of all running scripts\n */\nexport function updateOnlineScriptTimes(numCycles = 1): void {\n const time = (numCycles * CONSTANTS._idleSpeed) / 1000; //seconds\n for (const ws of workerScripts.values()) {\n ws.scriptRef.onlineRunningTime += time;\n }\n}\n\n/**\n * Called when the game is loaded. Loads all running scripts (from all servers)\n * into worker scripts so that they will start running\n */\nexport function loadAllRunningScripts(): void {\n const skipScriptLoad = window.location.href.toLowerCase().indexOf(\"?noscripts\") !== -1;\n if (skipScriptLoad) {\n Terminal.warn(\"Skipped loading player scripts during startup\");\n console.info(\"Skipping the load of any scripts during startup\");\n }\n for (const server of GetAllServers()) {\n // Reset each server's RAM usage to 0\n server.ramUsed = 0;\n\n // Reset modules on all scripts\n for (let i = 0; i < server.scripts.length; ++i) {\n server.scripts[i].markUpdated();\n }\n\n if (skipScriptLoad) {\n // Start game with no scripts\n server.runningScripts.length = 0;\n } else {\n for (let j = 0; j < server.runningScripts.length; ++j) {\n const fileName = server.runningScripts[j].filename;\n createAndAddWorkerScript(server.runningScripts[j], server);\n\n if (!server.runningScripts[j]) {\n // createAndAddWorkerScript can modify the server.runningScripts array if a script is invalid\n console.error(`createAndAddWorkerScript removed ${fileName} from ${server}`);\n continue;\n }\n\n // Offline production\n scriptCalculateOfflineProduction(server.runningScripts[j]);\n }\n }\n }\n}\n\n/**\n * Run a script from inside another script (run(), exec(), spawn(), etc.)\n */\nexport function runScriptFromScript(\n caller: string,\n server: BaseServer,\n scriptname: string,\n args: ScriptArg[],\n workerScript: WorkerScript,\n threads = 1,\n): number {\n // Sanitize arguments\n if (!(workerScript instanceof WorkerScript)) {\n return 0;\n }\n\n if (typeof scriptname !== \"string\" || !Array.isArray(args)) {\n workerScript.log(caller, () => `Invalid arguments: scriptname='${scriptname} args='${args}'`);\n console.error(`runScriptFromScript() failed due to invalid arguments`);\n return 0;\n }\n\n args.forEach((arg, i) => {\n if (typeof arg !== \"string\" && typeof arg !== \"number\" && typeof arg !== \"boolean\")\n throw new Error(\n \"Only strings, numbers, and booleans can be passed as arguments to other scripts.\\n\" +\n `${scriptname} argument index ${i} is of type ${typeof arg} and value ${JSON.stringify(arg)}`,\n );\n });\n\n // Check if the script is already running\n const runningScriptObj = server.getRunningScript(scriptname, args);\n if (runningScriptObj != null) {\n workerScript.log(caller, () => `'${scriptname}' is already running on '${server.hostname}'`);\n return 0;\n }\n\n // 'null/undefined' arguments are not allowed\n for (let i = 0; i < args.length; ++i) {\n if (args[i] == null) {\n workerScript.log(caller, () => \"Cannot execute a script with null/undefined as an argument\");\n return 0;\n }\n }\n\n // Check if the script exists and if it does run it\n for (let i = 0; i < server.scripts.length; ++i) {\n if (!areFilesEqual(server.scripts[i].filename, scriptname)) continue;\n // Check for admin rights and that there is enough RAM availble to run\n const script = server.scripts[i];\n let ramUsage = script.ramUsage;\n threads = Math.floor(Number(threads));\n if (threads === 0) {\n return 0;\n }\n ramUsage = ramUsage * threads;\n const ramAvailable = server.maxRam - server.ramUsed;\n\n if (server.hasAdminRights == false) {\n workerScript.log(caller, () => `You do not have root access on '${server.hostname}'`);\n return 0;\n } else if (ramUsage > ramAvailable + 0.001) {\n workerScript.log(\n caller,\n () =>\n `Cannot run script '${scriptname}' (t=${threads}) on '${server.hostname}' because there is not enough available RAM!`,\n );\n return 0;\n }\n // Able to run script\n workerScript.log(\n caller,\n () => `'${scriptname}' on '${server.hostname}' with ${threads} threads and args: ${arrayToString(args)}.`,\n );\n const runningScriptObj = new RunningScript(script, args);\n runningScriptObj.threads = threads;\n runningScriptObj.server = server.hostname;\n\n return startWorkerScript(runningScriptObj, server, workerScript);\n }\n\n workerScript.log(caller, () => `Could not find script '${scriptname}' on '${server.hostname}'`);\n return 0;\n}\n","import { FactionNames } from \"../../Faction/data/FactionNames\";\n\nexport const GangConstants: {\n GangRespectToReputationRatio: number;\n MaximumGangMembers: number;\n CyclesPerTerritoryAndPowerUpdate: number;\n AscensionMultiplierRatio: number;\n Names: string[];\n GangKarmaRequirement: number;\n} = {\n // Respect is divided by this to get rep gain\n GangRespectToReputationRatio: 75,\n MaximumGangMembers: 12,\n CyclesPerTerritoryAndPowerUpdate: 100,\n // Portion of upgrade multiplier that is kept after ascending\n AscensionMultiplierRatio: 0.15,\n // Names of possible Gangs\n Names: [\n FactionNames.SlumSnakes,\n FactionNames.Tetrads,\n FactionNames.TheSyndicate,\n FactionNames.TheDarkArmy,\n FactionNames.SpeakersForTheDead,\n FactionNames.NiteSec,\n FactionNames.TheBlackHand,\n ],\n GangKarmaRequirement: -54000,\n};\n","/**\n * Functions for buying/selling stocks. There are four functions total, two for\n * long positions and two for short positions.\n */\nimport { Stock } from \"./Stock\";\nimport {\n getBuyTransactionCost,\n getSellTransactionGain,\n processTransactionForecastMovement,\n} from \"./StockMarketHelpers\";\n\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { Player } from \"../Player\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nimport * as React from \"react\";\nimport { NetscriptContext } from \"../Netscript/APIWrapper\";\nimport { helpers } from \"../Netscript/NetscriptHelpers\";\n\n/**\n * Each function takes an optional config object as its last argument\n */\ninterface IOptions {\n rerenderFn?: () => void;\n suppressDialog?: boolean;\n}\n\n/**\n * Attempt to buy a stock in the long position\n * @param {Stock} stock - Stock to buy\n * @param {number} shares - Number of shares to buy\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function buyStock(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\"Failed to buy stock. This may be a bug, contact developer\");\n }\n\n return false;\n }\n\n // Does player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Long);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n `You do not have enough money to purchase this position. You need ${numeralWrapper.formatMoney(totalPrice)}.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n `Purchasing '${shares + stock.playerShares + stock.playerShortShares}' shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${numeralWrapper.formatShares(\n stock.maxShares,\n )} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShares * stock.playerAvgPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShares = Math.round(stock.playerShares + shares);\n stock.playerAvgPx = newTotal / stock.playerShares;\n processTransactionForecastMovement(stock, shares);\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt = `Bought ${numeralWrapper.formatShares(shares)} shares of ${\n stock.symbol\n } for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} in commission fees.`;\n helpers.log(ctx, () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Bought {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for . Paid{\" \"}\n in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the long position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * returns {boolean} - true if successfully sells given number of shares OR MAX owned, false otherwise\n */\nexport function sellStock(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Sanitize/Validate arguments\n if (stock == null || shares < 0 || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShares) {\n shares = stock.playerShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const gains = getSellTransactionGain(stock, shares, PositionTypes.Long);\n if (gains == null) {\n return false;\n }\n let netProfit = gains - stock.playerAvgPx * shares;\n if (isNaN(netProfit)) {\n netProfit = 0;\n }\n Player.gainMoney(gains, \"stock\");\n if (ctx) {\n ctx.workerScript.scriptRef.onlineMoneyMade += netProfit;\n Player.scriptProdSinceLastAug += netProfit;\n }\n\n stock.playerShares = Math.round(stock.playerShares - shares);\n if (stock.playerShares === 0) {\n stock.playerAvgPx = 0;\n }\n\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt =\n `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`;\n helpers.log(ctx, () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Sold {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{\" \"}\n .\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to buy a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to short\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function shortStock(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to initiate a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n return false;\n }\n\n // Does the player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Short);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n \"You do not have enough \" +\n \"money to purchase this short position. You need \" +\n numeralWrapper.formatMoney(totalPrice),\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this short position. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (ctx) {\n helpers.log(\n ctx,\n () =>\n `This '${shares + stock.playerShares + stock.playerShortShares}' short shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${stock.maxShares} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShortShares * stock.playerAvgShortPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShortShares = Math.round(stock.playerShortShares + shares);\n stock.playerAvgShortPx = newTotal / stock.playerShortShares;\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt =\n `Bought a short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} ` +\n `for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} ` +\n `in commission fees.`;\n helpers.log(ctx, () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Bought a short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for{\" \"}\n . Paid in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {NetscriptContext} ctx - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} true if successfully sells given amount OR max owned, false otherwise\n */\nexport function sellShort(\n stock: Stock,\n shares: number,\n ctx: NetscriptContext | null = null,\n opts: IOptions = {},\n): boolean {\n if (stock == null || isNaN(shares) || shares < 0) {\n if (ctx) {\n helpers.log(ctx, () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n \"Failed to sell a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShortShares) {\n shares = stock.playerShortShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const origCost = shares * stock.playerAvgShortPx;\n const totalGain = getSellTransactionGain(stock, shares, PositionTypes.Short);\n if (totalGain == null || isNaN(totalGain) || origCost == null) {\n if (ctx) {\n helpers.log(\n ctx,\n () => `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n }\n\n return false;\n }\n let profit = totalGain - origCost;\n if (isNaN(profit)) {\n profit = 0;\n }\n Player.gainMoney(totalGain, \"stock\");\n if (ctx) {\n ctx.workerScript.scriptRef.onlineMoneyMade += profit;\n Player.scriptProdSinceLastAug += profit;\n }\n\n stock.playerShortShares = Math.round(stock.playerShortShares - shares);\n if (stock.playerShortShares === 0) {\n stock.playerAvgShortPx = 0;\n }\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (ctx) {\n const resultTxt =\n `Sold your short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(totalGain)}`;\n helpers.log(ctx, () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Sold your short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions,\n you gained a total of \n >,\n );\n }\n\n return true;\n}\n","import { FactionInfo, FactionInfos } from \"./FactionInfo\";\nimport { favorToRep, repToFavor } from \"./formulas/favor\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport class Faction {\n /**\n * Flag signalling whether the player has already received an invitation\n * to this faction\n */\n alreadyInvited = false;\n\n /**\n * Holds names of all augmentations that this Faction offers\n */\n augmentations: string[] = [];\n\n /**\n * Amount of favor the player has with this faction.\n */\n favor = 0;\n\n /**\n * Flag signalling whether player has been banned from this faction\n */\n isBanned = false;\n\n /**\n * Flag signalling whether player is a member of this faction\n */\n isMember = false;\n\n /**\n * Name of faction\n */\n name = \"\";\n\n /**\n * Amount of reputation player has with this faction\n */\n playerReputation = 0;\n\n constructor(name = \"\") {\n this.name = name;\n }\n\n getInfo(): FactionInfo {\n const info = FactionInfos[this.name];\n if (info == null) {\n throw new Error(\n `Missing faction from FactionInfos: ${this.name} this probably means the faction got corrupted somehow`,\n );\n }\n\n return info;\n }\n\n gainFavor(): void {\n if (this.favor == null) {\n this.favor = 0;\n }\n this.favor += this.getFavorGain();\n }\n\n //Returns an array with [How much favor would be gained, how much rep would be left over]\n getFavorGain(): number {\n if (this.favor == null) {\n this.favor = 0;\n }\n const storedRep = Math.max(0, favorToRep(this.favor));\n const totalRep = storedRep + this.playerReputation;\n const newFavor = repToFavor(totalRep);\n return newFavor - this.favor;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Faction\", this);\n }\n\n /**\n * Initiatizes a Faction object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Faction {\n return Generic_fromJSON(Faction, value.data);\n }\n}\n\nReviver.constructors.Faction = Faction;\n","/**\n * Global pool of all active scripts (scripts that are currently running)\n */\nimport { WorkerScript } from \"./WorkerScript\";\n\nexport const workerScripts: Map = new Map();\n","import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\nimport { Export } from \"./Export\";\n\ninterface IConstructorParams {\n name?: string;\n}\n\nexport class Material {\n // Name of material\n name = \"InitName\";\n\n // Amount of material owned\n qty = 0;\n\n // Material's \"quality\". Unbounded\n qlt = 0;\n\n // How much demand the Material has in the market, and the range of possible\n // values for this \"demand\"\n dmd = 0;\n dmdR: number[] = [0, 0];\n\n // How much competition there is for this Material in the market, and the range\n // of possible values for this \"competition\"\n cmp = 0;\n cmpR: number[] = [0, 0];\n\n // Maximum volatility of this Materials stats\n mv = 0;\n\n // Markup. Determines how high of a price you can charge on the material\n // compared to the market price without suffering loss in # of sales\n // Quality is divided by this to determine markup limits\n // e,g, If mku is 10 and quality is 100 then you can markup prices by 100/10 = 10\n mku = 0;\n\n // How much of this material is being bought, sold, imported and produced every second\n buy = 0;\n sll = 0;\n prd = 0;\n imp = 0;\n\n // Exports of this material to another warehouse/industry\n exp: Export[] = [];\n\n // Total amount of this material exported in the last cycle\n totalExp = 0;\n\n // Cost / sec to buy this material. AKA Market Price\n bCost = 0;\n\n // Cost / sec to sell this material\n sCost: string | number = 0;\n\n // Flags to keep track of whether production and/or sale of this material is limited\n // [Whether production/sale is limited, limit amount]\n prdman: [boolean, number] = [false, 0]; // Production\n sllman: [boolean, string | number] = [false, 0]; // Sale\n\n // Flags that signal whether automatic sale pricing through Market TA is enabled\n marketTa1 = false;\n marketTa2 = false;\n marketTa2Price = 0;\n\n // Determines the maximum amount of this material that can be sold in one market cycle\n maxsll = 0;\n\n constructor(params: IConstructorParams = {}) {\n if (params.name) {\n this.name = params.name;\n }\n this.init();\n }\n\n getMarkupLimit(): number {\n return this.qlt / this.mku;\n }\n\n init(): void {\n switch (this.name) {\n case \"Water\":\n this.dmd = 75;\n this.dmdR = [65, 85];\n this.cmp = 50;\n this.cmpR = [40, 60];\n this.bCost = 1500;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Energy\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 2000;\n this.mv = 0.2;\n this.mku = 6;\n break;\n case \"Food\":\n this.dmd = 80;\n this.dmdR = [70, 90];\n this.cmp = 60;\n this.cmpR = [35, 85];\n this.bCost = 5000;\n this.mv = 1;\n this.mku = 3;\n break;\n case \"Plants\":\n this.dmd = 70;\n this.dmdR = [20, 90];\n this.cmp = 50;\n this.cmpR = [30, 70];\n this.bCost = 3000;\n this.mv = 0.6;\n this.mku = 3.75;\n break;\n case \"Metal\":\n this.dmd = 80;\n this.dmdR = [75, 85];\n this.cmp = 70;\n this.cmpR = [60, 80];\n this.bCost = 2650;\n this.mv = 1;\n this.mku = 6;\n break;\n case \"Hardware\":\n this.dmd = 85;\n this.dmdR = [80, 90];\n this.cmp = 80;\n this.cmpR = [65, 95];\n this.bCost = 8e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"Chemicals\":\n this.dmd = 55;\n this.dmdR = [40, 70];\n this.cmp = 60;\n this.cmpR = [40, 80];\n this.bCost = 9e3;\n this.mv = 1.2;\n this.mku = 2;\n break;\n case \"Real Estate\":\n this.dmd = 50;\n this.dmdR = [5, 99];\n this.cmp = 50;\n this.cmpR = [25, 75];\n this.bCost = 80e3;\n this.mv = 1.5; //Less mv bc its processed twice\n this.mku = 1.5;\n break;\n case \"Drugs\":\n this.dmd = 60;\n this.dmdR = [45, 75];\n this.cmp = 70;\n this.cmpR = [40, 99];\n this.bCost = 40e3;\n this.mv = 1.6;\n this.mku = 1;\n break;\n case \"Robots\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 75e3;\n this.mv = 0.5; //Less mv bc its processed twice\n this.mku = 1;\n break;\n case \"AI Cores\":\n this.dmd = 90;\n this.dmdR = [80, 99];\n this.cmp = 90;\n this.cmpR = [80, 99];\n this.bCost = 15e3;\n this.mv = 0.8; //Less mv bc its processed twice\n this.mku = 0.5;\n break;\n case \"Scientific Research\":\n case \"InitName\":\n break;\n default:\n console.error(`Invalid material type in init(): ${this.name}`);\n break;\n }\n }\n\n // Process change in demand, competition, and buy cost of this material\n processMarket(): void {\n // The price will change in accordance with demand and competition.\n // e.g. If demand goes up, then so does price. If competition goes up, price goes down\n const priceVolatility: number = (Math.random() * this.mv) / 300;\n const priceChange: number = 1 + priceVolatility;\n\n //This 1st random check determines whether competition increases or decreases\n const compVolatility: number = (Math.random() * this.mv) / 100;\n const compChange: number = 1 + compVolatility;\n if (Math.random() < 0.5) {\n this.cmp *= compChange;\n if (this.cmp > this.cmpR[1]) {\n this.cmp = this.cmpR[1];\n }\n this.bCost *= 1 / priceChange; // Competition increases, so price goes down\n } else {\n this.cmp *= 1 / compChange;\n if (this.cmp < this.cmpR[0]) {\n this.cmp = this.cmpR[0];\n }\n this.bCost *= priceChange; // Competition decreases, so price goes up\n }\n\n // This 2nd random check determines whether demand increases or decreases\n const dmdVolatility: number = (Math.random() * this.mv) / 100;\n const dmdChange: number = 1 + dmdVolatility;\n if (Math.random() < 0.5) {\n this.dmd *= dmdChange;\n if (this.dmd > this.dmdR[1]) {\n this.dmd = this.dmdR[1];\n }\n this.bCost *= priceChange; // Demand increases, so price goes up\n } else {\n this.dmd *= 1 / dmdChange;\n if (this.dmd < this.dmdR[0]) {\n this.dmd = this.dmdR[0];\n }\n this.bCost *= 1 / priceChange;\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Material\", this);\n }\n\n // Initiatizes a Material object from a JSON save state.\n static fromJSON(value: IReviverValue): Material {\n return Generic_fromJSON(Material, value.data);\n }\n}\n\nReviver.constructors.Material = Material;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { GangMember } from \"../GangMember\";\nimport { GangMemberTask } from \"../GangMemberTask\";\n\nexport interface FormulaGang {\n respect: number;\n territory: number;\n wantedLevel: number;\n}\n\nexport function calculateWantedPenalty(gang: FormulaGang): number {\n return gang.respect / (gang.respect + gang.wantedLevel);\n}\n\nexport function calculateRespectGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseRespect === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 4 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.respect) / 100);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n return Math.pow(11 * task.baseRespect * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateWantedLevelGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseWanted === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n statWeight -= 3.5 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.wanted) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n if (task.baseWanted < 0) {\n return 0.4 * task.baseWanted * statWeight * territoryMult;\n }\n const calc = (7 * task.baseWanted) / Math.pow(3 * statWeight * territoryMult, 0.8);\n\n // Put an arbitrary cap on this to prevent wanted level from rising too fast if the\n // denominator is very small. Might want to rethink formula later\n return Math.min(100, calc);\n}\n\nexport function calculateMoneyGain(gang: FormulaGang, member: GangMember, task: GangMemberTask): number {\n if (task.baseMoney === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n\n statWeight -= 3.2 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.money) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n return Math.pow(5 * task.baseMoney * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateAscensionPointsGain(exp: number): number {\n return Math.max(exp - 1000, 0);\n}\n\nexport function calculateAscensionMult(points: number): number {\n return Math.max(Math.pow(points / 2000, 0.5), 1);\n}\n","export class RFAMessage {\n jsonrpc = \"2.0\"; // Transmits version of JSON-RPC. Compliance maybe allows some funky interaction with external tools?\n public method?: string; // Is defined when it's a request/notification, otherwise undefined\n public result?: ResultType; // Is defined when it's a response, otherwise undefined\n public params?: FileMetadata; // Optional parameters to method\n public error?: string; // Only defined on error\n public id?: number; // ID to keep track of request -> response interaction, undefined with notifications, defined with request/response\n\n constructor(obj: { method?: string; result?: ResultType; params?: FileMetadata; error?: string; id?: number } = {}) {\n this.method = obj.method;\n this.result = obj.result;\n this.params = obj.params;\n this.error = obj.error;\n this.id = obj.id;\n }\n}\n\ntype ResultType = string | number | Array | Array;\ntype FileMetadata = FileData | FileContent | FileLocation | FileServer;\n\nexport interface FileData {\n filename: string;\n content: string;\n server: string;\n}\n\nexport interface FileContent {\n filename: string;\n content: string;\n}\n\nexport interface FileLocation {\n filename: string;\n server: string;\n}\n\nexport interface FileServer {\n server: string;\n}\n\nexport function isFileData(p: unknown): p is FileData {\n const pf = p as FileData;\n return typeof pf.server === \"string\" && typeof pf.filename === \"string\" && typeof pf.content === \"string\";\n}\n\nexport function isFileLocation(p: unknown): p is FileLocation {\n const pf = p as FileLocation;\n return typeof pf.server === \"string\" && typeof pf.filename === \"string\";\n}\n\nexport function isFileContent(p: unknown): p is FileContent {\n const pf = p as FileContent;\n return typeof pf.filename === \"string\" && typeof pf.content === \"string\";\n}\n\nexport function isFileServer(p: unknown): p is FileServer {\n const pf = p as FileServer;\n return typeof pf.server === \"string\";\n}\n","import { Paper } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { use } from \"../../ui/Context\";\nimport { ProgressBar } from \"../../ui/React/Progress\";\n\ninterface IProps {\n millis: number;\n onExpire: () => void;\n noPaper?: boolean;\n}\n\nexport function GameTimer(props: IProps): React.ReactElement {\n const player = use.Player();\n const [v, setV] = useState(100);\n const totalMillis = (player.hasAugmentation(AugmentationNames.WKSharmonizer, true) ? 1.3 : 1) * props.millis;\n\n const tick = 200;\n useEffect(() => {\n const intervalId = setInterval(() => {\n setV((old) => {\n if (old <= 0) props.onExpire();\n return old - (tick / totalMillis) * 100;\n });\n }, tick);\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n\n // https://stackoverflow.com/questions/55593367/disable-material-uis-linearprogress-animation\n // TODO(hydroflame): there's like a bug where it triggers the end before the\n // bar physically reaches the end\n return props.noPaper ? (\n \n ) : (\n \n \n \n );\n}\n","import { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IBladeburner } from \"./IBladeburner\";\nimport { IActionIdentifier } from \"./IActionIdentifier\";\nimport { ActionIdentifier } from \"./ActionIdentifier\";\nimport { ActionTypes } from \"./data/ActionTypes\";\nimport { Growths } from \"./data/Growths\";\nimport { BlackOperations } from \"./BlackOperations\";\nimport { BlackOperation } from \"./BlackOperation\";\nimport { Operation } from \"./Operation\";\nimport { Contract } from \"./Contract\";\nimport { GeneralActions } from \"./GeneralActions\";\nimport { formatNumber } from \"../utils/StringHelperFunctions\";\nimport { Skills } from \"./Skills\";\nimport { Skill } from \"./Skill\";\nimport { City } from \"./City\";\nimport { IAction } from \"./IAction\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { createTaskTracker, ITaskTracker } from \"../PersonObjects/ITaskTracker\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { IRouter } from \"../ui/Router\";\nimport { ConsoleHelpText } from \"./data/Help\";\nimport { exceptionAlert } from \"../utils/helpers/exceptionAlert\";\nimport { getRandomInt } from \"../utils/helpers/getRandomInt\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { addOffset } from \"../utils/helpers/addOffset\";\nimport { Faction } from \"../Faction/Faction\";\nimport { Factions, factionExists } from \"../Faction/Factions\";\nimport { calculateHospitalizationCost } from \"../Hospital/Hospital\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { getTimestamp } from \"../utils/helpers/getTimestamp\";\nimport { joinFaction } from \"../Faction/FactionHelpers\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { KEY } from \"../utils/helpers/keyCodes\";\nimport { isSleeveInfiltrateWork } from \"../PersonObjects/Sleeve/Work/SleeveInfiltrateWork\";\nimport { isSleeveSupportWork } from \"../PersonObjects/Sleeve/Work/SleeveSupportWork\";\n\ninterface BlackOpsAttempt {\n error?: string;\n isAvailable?: boolean;\n action?: BlackOperation;\n}\n\nexport class Bladeburner implements IBladeburner {\n numHosp = 0;\n moneyLost = 0;\n rank = 0;\n maxRank = 0;\n\n skillPoints = 0;\n totalSkillPoints = 0;\n\n teamSize = 0;\n sleeveSize = 0;\n teamLost = 0;\n hpLost = 0;\n\n storedCycles = 0;\n\n randomEventCounter: number = getRandomInt(240, 600);\n\n actionTimeToComplete = 0;\n actionTimeCurrent = 0;\n actionTimeOverflow = 0;\n\n action: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n\n cities: Record = {};\n city: string = BladeburnerConstants.CityNames[2];\n skills: Record = {};\n skillMultipliers: Record = {};\n staminaBonus = 0;\n maxStamina = 0;\n stamina = 0;\n contracts: Record = {};\n operations: Record = {};\n blackops: Record = {};\n logging = {\n general: true,\n contracts: true,\n ops: true,\n blackops: true,\n events: true,\n };\n automateEnabled = false;\n automateActionHigh: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshHigh = 0;\n automateActionLow: IActionIdentifier = new ActionIdentifier({\n type: ActionTypes[\"Idle\"],\n });\n automateThreshLow = 0;\n consoleHistory: string[] = [];\n consoleLogs: string[] = [\"Bladeburner Console\", \"Type 'help' to see console commands\"];\n\n constructor(player?: IPlayer) {\n for (let i = 0; i < BladeburnerConstants.CityNames.length; ++i) {\n this.cities[BladeburnerConstants.CityNames[i]] = new City(BladeburnerConstants.CityNames[i]);\n }\n\n this.updateSkillMultipliers(); // Calls resetSkillMultipliers()\n\n // Max Stamina is based on stats and Bladeburner-specific bonuses\n if (player) this.calculateMaxStamina(player);\n this.stamina = this.maxStamina;\n this.create();\n }\n\n getCurrentCity(): City {\n const city = this.cities[this.city];\n if (!(city instanceof City)) {\n throw new Error(\"Bladeburner.getCurrentCity() did not properly return a City object\");\n }\n return city;\n }\n\n calculateStaminaPenalty(): number {\n return Math.min(1, this.stamina / (0.5 * this.maxStamina));\n }\n\n canAttemptBlackOp(actionId: IActionIdentifier): BlackOpsAttempt {\n // Safety measure - don't repeat BlackOps that are already done\n if (this.blackops[actionId.name] != null) {\n return { error: \"Tried to start a Black Operation that had already been completed\" };\n }\n\n const action = this.getActionObject(actionId);\n if (!(action instanceof BlackOperation)) throw new Error(`Action should be BlackOperation but isn't`);\n if (action == null) throw new Error(\"Failed to get BlackOperation object for: \" + actionId.name);\n\n if (action.reqdRank > this.rank) {\n return { error: \"Tried to start a Black Operation without the rank requirement\" };\n }\n\n // Can't start a BlackOp if you haven't done the one before it\n const blackops = [];\n for (const nm of Object.keys(BlackOperations)) {\n if (BlackOperations.hasOwnProperty(nm)) {\n blackops.push(nm);\n }\n }\n blackops.sort(function (a, b) {\n return BlackOperations[a].reqdRank - BlackOperations[b].reqdRank; // Sort black ops in intended order\n });\n\n const i = blackops.indexOf(actionId.name);\n if (i === -1) {\n return { error: `Invalid Black Op: '${name}'` };\n }\n\n if (i > 0 && this.blackops[blackops[i - 1]] == null) {\n return { error: `Preceding Black Op must be completed before starting '${actionId.name}'.` };\n }\n\n return { isAvailable: true, action };\n }\n\n startAction(person: IPerson, actionId: IActionIdentifier): void {\n if (actionId == null) return;\n this.action = actionId;\n this.actionTimeCurrent = 0;\n switch (actionId.type) {\n case ActionTypes[\"Idle\"]:\n this.actionTimeToComplete = 0;\n break;\n case ActionTypes[\"Contract\"]:\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Contract Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n case ActionTypes[\"Operation\"]: {\n try {\n const action = this.getActionObject(actionId);\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + actionId.name);\n }\n if (action.count < 1) {\n return this.resetAction();\n }\n if (actionId.name === \"Raid\" && this.getCurrentCity().comms === 0) {\n return this.resetAction();\n }\n this.actionTimeToComplete = action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const testBlackOp = this.canAttemptBlackOp(actionId);\n if (!testBlackOp.isAvailable) {\n this.resetAction();\n this.log(`Error: ${testBlackOp.error}`);\n break;\n }\n if (testBlackOp.action === undefined) {\n throw new Error(\"action should not be null\");\n }\n this.actionTimeToComplete = testBlackOp.action.getActionTime(this, person);\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]:\n this.actionTimeToComplete = this.getRecruitmentTime(person);\n break;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]:\n this.actionTimeToComplete = 30;\n break;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n this.actionTimeToComplete = 60;\n break;\n default:\n throw new Error(\"Invalid Action Type in startAction(Bladeburner,player, ): \" + actionId.type);\n }\n }\n\n upgradeSkill(skill: Skill, count = 1): void {\n // This does NOT handle deduction of skill points\n const skillName = skill.name;\n if (this.skills[skillName]) {\n this.skills[skillName] += count;\n } else {\n this.skills[skillName] = count;\n }\n if (isNaN(this.skills[skillName]) || this.skills[skillName] < 0) {\n throw new Error(\"Level of Skill \" + skillName + \" is invalid: \" + this.skills[skillName]);\n }\n this.updateSkillMultipliers();\n }\n\n executeConsoleCommands(player: IPlayer, commands: string): void {\n try {\n // Console History\n if (this.consoleHistory[this.consoleHistory.length - 1] != commands) {\n this.consoleHistory.push(commands);\n if (this.consoleHistory.length > 50) {\n this.consoleHistory.splice(0, 1);\n }\n }\n\n const arrayOfCommands = commands.split(\";\");\n for (let i = 0; i < arrayOfCommands.length; ++i) {\n this.executeConsoleCommand(player, arrayOfCommands[i]);\n }\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n }\n\n postToConsole(input: string, saveToLogs = true): void {\n const MaxConsoleEntries = 100;\n if (saveToLogs) {\n this.consoleLogs.push(input);\n if (this.consoleLogs.length > MaxConsoleEntries) {\n this.consoleLogs.shift();\n }\n }\n }\n\n log(input: string): void {\n // Adds a timestamp and then just calls postToConsole\n this.postToConsole(`[${getTimestamp()}] ${input}`);\n }\n\n resetAction(): void {\n this.action = new ActionIdentifier({ type: ActionTypes.Idle });\n this.actionTimeCurrent = 0;\n this.actionTimeToComplete = 0;\n }\n\n clearConsole(): void {\n this.consoleLogs.length = 0;\n }\n\n prestige(): void {\n this.resetAction();\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n }\n }\n\n storeCycles(numCycles = 0): void {\n this.storedCycles += numCycles;\n }\n\n // working on\n getActionIdFromTypeAndName(type = \"\", name = \"\"): IActionIdentifier | null {\n if (type === \"\" || name === \"\") {\n return null;\n }\n const action = new ActionIdentifier();\n const convertedType = type.toLowerCase().trim();\n const convertedName = name.toLowerCase().trim();\n switch (convertedType) {\n case \"contract\":\n case \"contracts\":\n case \"contr\":\n action.type = ActionTypes[\"Contract\"];\n if (this.contracts.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"operation\":\n case \"operations\":\n case \"op\":\n case \"ops\":\n action.type = ActionTypes[\"Operation\"];\n if (this.operations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"blackoperation\":\n case \"black operation\":\n case \"black operations\":\n case \"black op\":\n case \"black ops\":\n case \"blackop\":\n case \"blackops\":\n action.type = ActionTypes[\"BlackOp\"];\n if (BlackOperations.hasOwnProperty(name)) {\n action.name = name;\n return action;\n }\n return null;\n case \"general\":\n case \"general action\":\n case \"gen\":\n break;\n default:\n return null;\n }\n\n if (convertedType.startsWith(\"gen\")) {\n switch (convertedName) {\n case \"training\":\n action.type = ActionTypes[\"Training\"];\n action.name = \"Training\";\n break;\n case \"recruitment\":\n case \"recruit\":\n action.type = ActionTypes[\"Recruitment\"];\n action.name = \"Recruitment\";\n break;\n case \"field analysis\":\n case \"fieldanalysis\":\n action.type = ActionTypes[\"Field Analysis\"];\n action.name = \"Field Analysis\";\n break;\n case \"diplomacy\":\n action.type = ActionTypes[\"Diplomacy\"];\n action.name = \"Diplomacy\";\n break;\n case \"hyperbolic regeneration chamber\":\n action.type = ActionTypes[\"Hyperbolic Regeneration Chamber\"];\n action.name = \"Hyperbolic Regeneration Chamber\";\n break;\n case \"incite violence\":\n action.type = ActionTypes[\"Incite Violence\"];\n action.name = \"Incite Violence\";\n break;\n default:\n return null;\n }\n return action;\n }\n\n return null;\n }\n\n executeStartConsoleCommand(player: IPlayer, args: string[]): void {\n if (args.length !== 3) {\n this.postToConsole(\"Invalid usage of 'start' console command: start [type] [name]\");\n this.postToConsole(\"Use 'help start' for more info\");\n return;\n }\n const name = args[2];\n switch (args[1].toLowerCase()) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[name] != null) {\n this.action.type = ActionTypes[name];\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + args[2]);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[name] != null) {\n this.action.type = ActionTypes.Contract;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + args[2]);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[name] != null) {\n this.action.type = ActionTypes.Operation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + args[2]);\n }\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n if (BlackOperations[name] != null) {\n this.action.type = ActionTypes.BlackOperation;\n this.action.name = name;\n this.startAction(player, this.action);\n } else {\n this.postToConsole(\"Invalid BlackOp name specified: \" + args[2]);\n }\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[1]);\n this.postToConsole(\"Examples of valid action/event identifiers are: [general, contract, op, blackop]\");\n break;\n }\n }\n\n executeSkillConsoleCommand(args: string[]): void {\n switch (args.length) {\n case 1: {\n // Display Skill Help Command\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n case 2: {\n if (args[1].toLowerCase() === \"list\") {\n // List all skills and their level\n this.postToConsole(\"Skills: \");\n const skillNames = Object.keys(Skills);\n for (let i = 0; i < skillNames.length; ++i) {\n const skill = Skills[skillNames[i]];\n let level = 0;\n if (this.skills[skill.name] != null) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level, 0));\n }\n this.postToConsole(\" \");\n this.postToConsole(\"Effects: \");\n const multKeys = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multKeys.length; ++i) {\n const mult = this.skillMultipliers[multKeys[i]];\n if (mult && mult !== 1) {\n const mults = formatNumber(mult, 3);\n switch (multKeys[i]) {\n case \"successChanceAll\":\n this.postToConsole(\"Total Success Chance: x\" + mults);\n break;\n case \"successChanceStealth\":\n this.postToConsole(\"Stealth Success Chance: x\" + mults);\n break;\n case \"successChanceKill\":\n this.postToConsole(\"Retirement Success Chance: x\" + mults);\n break;\n case \"successChanceContract\":\n this.postToConsole(\"Contract Success Chance: x\" + mults);\n break;\n case \"successChanceOperation\":\n this.postToConsole(\"Operation Success Chance: x\" + mults);\n break;\n case \"successChanceEstimate\":\n this.postToConsole(\"Synthoid Data Estimate: x\" + mults);\n break;\n case \"actionTime\":\n this.postToConsole(\"Action Time: x\" + mults);\n break;\n case \"effHack\":\n this.postToConsole(\"Hacking Skill: x\" + mults);\n break;\n case \"effStr\":\n this.postToConsole(\"Strength: x\" + mults);\n break;\n case \"effDef\":\n this.postToConsole(\"Defense: x\" + mults);\n break;\n case \"effDex\":\n this.postToConsole(\"Dexterity: x\" + mults);\n break;\n case \"effAgi\":\n this.postToConsole(\"Agility: x\" + mults);\n break;\n case \"effCha\":\n this.postToConsole(\"Charisma: x\" + mults);\n break;\n case \"effInt\":\n this.postToConsole(\"Intelligence: x\" + mults);\n break;\n case \"stamina\":\n this.postToConsole(\"Stamina: x\" + mults);\n break;\n default:\n console.warn(`Unrecognized SkillMult Key: ${multKeys[i]}`);\n break;\n }\n }\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n case 3: {\n const skillName = args[2];\n const skill = Skills[skillName];\n if (skill == null || !(skill instanceof Skill)) {\n this.postToConsole(\"Invalid skill name (Note that it is case-sensitive): \" + skillName);\n break;\n }\n if (args[1].toLowerCase() === \"list\") {\n let level = 0;\n if (this.skills[skill.name] !== undefined) {\n level = this.skills[skill.name];\n }\n this.postToConsole(skill.name + \": Level \" + formatNumber(level));\n } else if (args[1].toLowerCase() === \"level\") {\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const pointCost = skill.calculateCost(currentLevel);\n if (skill.maxLvl !== 0 && currentLevel >= skill.maxLvl) {\n this.postToConsole(`This skill ${skill.name} is already at max level (${currentLevel}/${skill.maxLvl}).`);\n } else if (this.skillPoints >= pointCost) {\n this.skillPoints -= pointCost;\n this.upgradeSkill(skill);\n this.log(skill.name + \" upgraded to Level \" + this.skills[skillName]);\n } else {\n this.postToConsole(\n \"You do not have enough Skill Points to upgrade this. You need \" + formatNumber(pointCost, 0),\n );\n }\n } else {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n }\n break;\n }\n default: {\n this.postToConsole(\"Invalid usage of 'skill' console command: skill [action] [name]\");\n this.postToConsole(\"Use 'help skill' for more info\");\n break;\n }\n }\n }\n\n executeLogConsoleCommand(args: string[]): void {\n if (args.length < 3) {\n this.postToConsole(\"Invalid usage of log command: log [enable/disable] [action/event]\");\n this.postToConsole(\"Use 'help log' for more details and examples\");\n return;\n }\n\n let flag = true;\n if (args[1].toLowerCase().includes(\"d\")) {\n flag = false;\n } // d for disable\n\n switch (args[2].toLowerCase()) {\n case \"general\":\n case \"gen\":\n this.logging.general = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for general actions\");\n break;\n case \"contract\":\n case \"contracts\":\n this.logging.contracts = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Contracts\");\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n this.logging.ops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for Operations\");\n break;\n case \"blackops\":\n case \"blackop\":\n case \"black operations\":\n case \"black operation\":\n this.logging.blackops = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for BlackOps\");\n break;\n case \"event\":\n case \"events\":\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for events\");\n break;\n case \"all\":\n this.logging.general = flag;\n this.logging.contracts = flag;\n this.logging.ops = flag;\n this.logging.blackops = flag;\n this.logging.events = flag;\n this.log(\"Logging \" + (flag ? \"enabled\" : \"disabled\") + \" for everything\");\n break;\n default:\n this.postToConsole(\"Invalid action/event type specified: \" + args[2]);\n this.postToConsole(\n \"Examples of valid action/event identifiers are: [general, contracts, ops, blackops, events]\",\n );\n break;\n }\n }\n\n executeHelpConsoleCommand(args: string[]): void {\n if (args.length === 1) {\n for (const line of ConsoleHelpText.helpList) {\n this.postToConsole(line);\n }\n } else {\n for (let i = 1; i < args.length; ++i) {\n if (!(args[i] in ConsoleHelpText)) continue;\n const helpText = ConsoleHelpText[args[i]];\n for (const line of helpText) {\n this.postToConsole(line);\n }\n }\n }\n }\n\n executeAutomateConsoleCommand(args: string[]): void {\n if (args.length !== 2 && args.length !== 4) {\n this.postToConsole(\n \"Invalid use of 'automate' command: automate [var] [val] [hi/low]. Use 'help automate' for more info\",\n );\n return;\n }\n\n // Enable/Disable\n if (args.length === 2) {\n const flag = args[1];\n if (flag.toLowerCase() === \"status\") {\n this.postToConsole(\"Automation: \" + (this.automateEnabled ? \"enabled\" : \"disabled\"));\n this.postToConsole(\n \"When your stamina drops to \" +\n formatNumber(this.automateThreshLow, 0) +\n \", you will automatically switch to \" +\n this.automateActionLow.name +\n \". When your stamina recovers to \" +\n formatNumber(this.automateThreshHigh, 0) +\n \", you will automatically \" +\n \"switch to \" +\n this.automateActionHigh.name +\n \".\",\n );\n } else if (flag.toLowerCase().includes(\"en\")) {\n if (\n !(this.automateActionLow instanceof ActionIdentifier) ||\n !(this.automateActionHigh instanceof ActionIdentifier)\n ) {\n return this.log(\"Failed to enable automation. Actions were not set\");\n }\n this.automateEnabled = true;\n this.log(\"Bladeburner automation enabled\");\n } else if (flag.toLowerCase().includes(\"d\")) {\n this.automateEnabled = false;\n this.log(\"Bladeburner automation disabled\");\n } else {\n this.log(\"Invalid argument for 'automate' console command: \" + args[1]);\n }\n return;\n }\n\n // Set variables\n if (args.length === 4) {\n const variable = args[1].toLowerCase(); // allows Action Type to be with or without capitalisation.\n const val = args[2];\n\n let highLow = false; // True for high, false for low\n if (args[3].toLowerCase().includes(\"hi\")) {\n highLow = true;\n }\n\n switch (variable) {\n case \"general\":\n case \"gen\":\n if (GeneralActions[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes[val],\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid action name specified: \" + val);\n }\n break;\n case \"contract\":\n case \"contracts\":\n if (this.contracts[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Contract,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid contract name specified: \" + val);\n }\n break;\n case \"ops\":\n case \"op\":\n case \"operations\":\n case \"operation\":\n if (this.operations[val] != null) {\n const action = new ActionIdentifier({\n type: ActionTypes.Operation,\n name: val,\n });\n if (highLow) {\n this.automateActionHigh = action;\n } else {\n this.automateActionLow = action;\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") action set to \" + val);\n } else {\n this.postToConsole(\"Invalid Operation name specified: \" + val);\n }\n break;\n case \"stamina\":\n if (isNaN(parseFloat(val))) {\n this.postToConsole(\"Invalid value specified for stamina threshold (must be numeric): \" + val);\n } else {\n if (highLow) {\n this.automateThreshHigh = Number(val);\n } else {\n this.automateThreshLow = Number(val);\n }\n this.log(\"Automate (\" + (highLow ? \"HIGH\" : \"LOW\") + \") stamina threshold set to \" + val);\n }\n break;\n default:\n break;\n }\n\n return;\n }\n }\n\n parseCommandArguments(command: string): string[] {\n /**\n * Returns an array with command and its arguments in each index.\n * e.g. skill \"blade's intuition\" foo returns [skill, blade's intuition, foo]\n * The input to the fn will be trimmed and will have all whitespace replaced w/ a single space\n */\n const args = [];\n let start = 0;\n let i = 0;\n while (i < command.length) {\n const c = command.charAt(i);\n if (c === '\"' || c === \"'\") {\n // Double quotes or Single quotes\n const endQuote = command.indexOf(c, i + 1);\n if (endQuote !== -1 && (endQuote === command.length - 1 || command.charAt(endQuote + 1) === KEY.SPACE)) {\n args.push(command.substr(i + 1, endQuote - i - 1));\n if (endQuote === command.length - 1) {\n start = i = endQuote + 1;\n } else {\n start = i = endQuote + 2; // Skip the space\n }\n continue;\n }\n } else if (c === KEY.SPACE) {\n args.push(command.substr(start, i - start));\n start = i + 1;\n }\n ++i;\n }\n if (start !== i) {\n args.push(command.substr(start, i - start));\n }\n return args;\n }\n\n executeConsoleCommand(player: IPlayer, command: string): void {\n command = command.trim();\n command = command.replace(/\\s\\s+/g, \" \"); // Replace all whitespace w/ a single space\n\n const args = this.parseCommandArguments(command);\n if (args.length <= 0) return; // Log an error?\n\n switch (args[0].toLowerCase()) {\n case \"automate\":\n this.executeAutomateConsoleCommand(args);\n break;\n case \"clear\":\n case \"cls\":\n this.clearConsole();\n break;\n case \"help\":\n this.executeHelpConsoleCommand(args);\n break;\n case \"log\":\n this.executeLogConsoleCommand(args);\n break;\n case \"skill\":\n this.executeSkillConsoleCommand(args);\n break;\n case \"start\":\n this.executeStartConsoleCommand(player, args);\n break;\n case \"stop\":\n this.resetAction();\n break;\n default:\n this.postToConsole(\"Invalid console command\");\n break;\n }\n }\n\n triggerMigration(sourceCityName: string): void {\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n const sourceCity = this.cities[sourceCityName];\n if (destCity == null || sourceCity == null) {\n throw new Error(\"Failed to find City with name: \" + destCityName);\n }\n const rand = Math.random();\n let percentage = getRandomInt(3, 15) / 100;\n\n if (rand < 0.05 && sourceCity.comms > 0) {\n // 5% chance for community migration\n percentage *= getRandomInt(2, 4); // Migration increases population change\n --sourceCity.comms;\n ++destCity.comms;\n }\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n }\n\n triggerPotentialMigration(sourceCityName: string, chance: number): void {\n if (chance == null || isNaN(chance)) {\n console.error(\"Invalid 'chance' parameter passed into Bladeburner.triggerPotentialMigration()\");\n }\n if (chance > 1) {\n chance /= 100;\n }\n if (Math.random() < chance) {\n this.triggerMigration(sourceCityName);\n }\n }\n\n randomEvent(): void {\n const chance = Math.random();\n\n // Choose random source/destination city for events\n const sourceCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n const sourceCity = this.cities[sourceCityName];\n if (!(sourceCity instanceof City)) {\n throw new Error(\"sourceCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n let destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n while (destCityName === sourceCityName) {\n destCityName = BladeburnerConstants.CityNames[getRandomInt(0, 5)];\n }\n const destCity = this.cities[destCityName];\n\n if (!(sourceCity instanceof City) || !(destCity instanceof City)) {\n throw new Error(\"sourceCity/destCity was not a City object in Bladeburner.randomEvent()\");\n }\n\n if (chance <= 0.05) {\n // New Synthoid Community, 5%\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else if (chance <= 0.1) {\n // Synthoid Community Migration, 5%\n if (sourceCity.comms <= 0) {\n // If no comms in source city, then instead trigger a new Synthoid community event\n ++sourceCity.comms;\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\"Intelligence indicates that a new Synthoid community was formed in a city\");\n }\n } else {\n --sourceCity.comms;\n ++destCity.comms;\n\n // Change pop\n const percentage = getRandomInt(10, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n destCity.pop += count;\n\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a Synthoid community migrated from \" + sourceCityName + \" to some other city\",\n );\n }\n }\n } else if (chance <= 0.3) {\n // New Synthoids (non community), 20%\n const percentage = getRandomInt(8, 24) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop += count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n } else if (chance <= 0.5) {\n // Synthoid migration (non community) 20%\n this.triggerMigration(sourceCityName);\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that a large number of Synthoids migrated from \" +\n sourceCityName +\n \" to some other city\",\n );\n }\n } else if (chance <= 0.7) {\n // Synthoid Riots (+chaos), 20%\n sourceCity.chaos += 1;\n sourceCity.chaos *= 1 + getRandomInt(5, 20) / 100;\n if (this.logging.events) {\n this.log(\"Tensions between Synthoids and humans lead to riots in \" + sourceCityName + \"! Chaos increased\");\n }\n } else if (chance <= 0.9) {\n // Less Synthoids, 20%\n const percentage = getRandomInt(8, 20) / 100;\n const count = Math.round(sourceCity.pop * percentage);\n sourceCity.pop -= count;\n if (this.logging.events) {\n this.log(\n \"Intelligence indicates that the Synthoid population of \" + sourceCityName + \" just changed significantly\",\n );\n }\n }\n // 10% chance of nothing happening\n }\n\n /**\n * Return stat to be gained from Contracts, Operations, and Black Operations\n * @param action(Action obj) - Derived action class\n * @param success(bool) - Whether action was successful\n */\n getActionStats(action: IAction, person: IPerson, success: boolean): ITaskTracker {\n const difficulty = action.getDifficulty();\n\n /**\n * Gain multiplier based on difficulty. If it changes then the\n * same variable calculated in completeAction() needs to change too\n */\n const difficultyMult =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n const time = action.getActionTime(this, person);\n const successMult = success ? 1 : 0.5;\n\n const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult;\n const unweightedIntGain = time * BladeburnerConstants.BaseIntGain * successMult * difficultyMult;\n const skillMult = this.skillMultipliers.expGain;\n\n return {\n hack: unweightedGain * action.weights.hack * skillMult,\n str: unweightedGain * action.weights.str * skillMult,\n def: unweightedGain * action.weights.def * skillMult,\n dex: unweightedGain * action.weights.dex * skillMult,\n agi: unweightedGain * action.weights.agi * skillMult,\n cha: unweightedGain * action.weights.cha * skillMult,\n int: unweightedIntGain * action.weights.int * skillMult,\n money: 0,\n };\n }\n\n getDiplomacyEffectiveness(person: IPerson): number {\n // Returns a decimal by which the city's chaos level should be multiplied (e.g. 0.98)\n const CharismaLinearFactor = 1e3;\n const CharismaExponentialFactor = 0.045;\n\n const charismaEff =\n Math.pow(person.skills.charisma, CharismaExponentialFactor) + person.skills.charisma / CharismaLinearFactor;\n return (100 - charismaEff) / 100;\n }\n\n getRecruitmentSuccessChance(person: IPerson): number {\n return Math.pow(person.skills.charisma, 0.45) / (this.teamSize - this.sleeveSize + 1);\n }\n\n getRecruitmentTime(person: IPerson): number {\n const effCharisma = person.skills.charisma * this.skillMultipliers.effCha;\n const charismaFactor = Math.pow(effCharisma, 0.81) + effCharisma / 90;\n return Math.max(10, Math.round(BladeburnerConstants.BaseRecruitmentTimeNeeded - charismaFactor));\n }\n\n sleeveSupport(joining: boolean): void {\n if (joining) {\n this.sleeveSize += 1;\n this.teamSize += 1;\n } else {\n this.sleeveSize -= 1;\n this.teamSize -= 1;\n }\n }\n\n resetSkillMultipliers(): void {\n this.skillMultipliers = {\n successChanceAll: 1,\n successChanceStealth: 1,\n successChanceKill: 1,\n successChanceContract: 1,\n successChanceOperation: 1,\n successChanceEstimate: 1,\n actionTime: 1,\n effHack: 1,\n effStr: 1,\n effDef: 1,\n effDex: 1,\n effAgi: 1,\n effCha: 1,\n effInt: 1,\n stamina: 1,\n money: 1,\n expGain: 1,\n };\n }\n\n updateSkillMultipliers(): void {\n this.resetSkillMultipliers();\n for (const skillName of Object.keys(this.skills)) {\n if (this.skills.hasOwnProperty(skillName)) {\n const skill = Skills[skillName];\n if (skill == null) {\n throw new Error(\"Could not find Skill Object for: \" + skillName);\n }\n const level = this.skills[skillName];\n if (level == null || level <= 0) {\n continue;\n } //Not upgraded\n\n const multiplierNames = Object.keys(this.skillMultipliers);\n for (let i = 0; i < multiplierNames.length; ++i) {\n const multiplierName = multiplierNames[i];\n if (skill.getMultiplier(multiplierName) != null && !isNaN(skill.getMultiplier(multiplierName))) {\n const value = skill.getMultiplier(multiplierName) * level;\n let multiplierValue = 1 + value / 100;\n if (multiplierName === \"actionTime\") {\n multiplierValue = 1 - value / 100;\n }\n this.skillMultipliers[multiplierName] *= multiplierValue;\n }\n }\n }\n }\n }\n\n completeOperation(success: boolean, player: IPlayer): void {\n if (this.action.type !== ActionTypes.Operation) {\n throw new Error(\"completeOperation() called even though current action is not an Operation\");\n }\n const action = this.getActionObject(this.action);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + this.action.name);\n }\n\n // Calculate team losses\n const teamCount = action.teamCount;\n if (teamCount >= 1) {\n let max;\n if (success) {\n max = Math.ceil(teamCount / 2);\n } else {\n max = Math.floor(teamCount);\n }\n const losses = getRandomInt(0, max);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => isSleeveSupportWork(x.currentWork));\n for (let i = 0; i > this.teamSize - this.sleeveSize; i--) {\n const r = Math.floor(Math.random() * sup.length);\n sup[r].takeDamage(sup[r].hp.max);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.ops && losses > 0) {\n this.log(\"Lost \" + formatNumber(losses, 0) + \" team members during this \" + action.name);\n }\n }\n\n const city = this.getCurrentCity();\n switch (action.name) {\n case \"Investigation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.4 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.1);\n }\n break;\n case \"Undercover Operation\":\n if (success) {\n city.improvePopulationEstimateByPercentage(0.8 * this.skillMultipliers.successChanceEstimate);\n } else {\n this.triggerPotentialMigration(this.city, 0.15);\n }\n break;\n case \"Sting Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.1, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByCount(0.1);\n break;\n case \"Raid\":\n if (success) {\n city.changePopulationByPercentage(-1, {\n changeEstEqually: true,\n nonZero: true,\n });\n --city.comms;\n } else {\n const change = getRandomInt(-10, -5) / 10;\n city.changePopulationByPercentage(change, {\n nonZero: true,\n changeEstEqually: false,\n });\n }\n city.changeChaosByPercentage(getRandomInt(1, 5));\n break;\n case \"Stealth Retirement Operation\":\n if (success) {\n city.changePopulationByPercentage(-0.5, {\n changeEstEqually: true,\n nonZero: true,\n });\n }\n city.changeChaosByPercentage(getRandomInt(-3, -1));\n break;\n case \"Assassination\":\n if (success) {\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n }\n city.changeChaosByPercentage(getRandomInt(-5, 5));\n break;\n default:\n throw new Error(\"Invalid Action name in completeOperation: \" + this.action.name);\n }\n }\n\n getActionObject(actionId: IActionIdentifier): IAction | null {\n /**\n * Given an ActionIdentifier object, returns the corresponding\n * GeneralAction, Contract, Operation, or BlackOperation object\n */\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n return this.contracts[actionId.name];\n case ActionTypes[\"Operation\"]:\n return this.operations[actionId.name];\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return BlackOperations[actionId.name];\n case ActionTypes[\"Training\"]:\n return GeneralActions[\"Training\"];\n case ActionTypes[\"Field Analysis\"]:\n return GeneralActions[\"Field Analysis\"];\n case ActionTypes[\"Recruitment\"]:\n return GeneralActions[\"Recruitment\"];\n case ActionTypes[\"Diplomacy\"]:\n return GeneralActions[\"Diplomacy\"];\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n return GeneralActions[\"Hyperbolic Regeneration Chamber\"];\n case ActionTypes[\"Incite Violence\"]:\n return GeneralActions[\"Incite Violence\"];\n default:\n return null;\n }\n }\n\n completeContract(success: boolean, actionIdent: IActionIdentifier): void {\n if (actionIdent.type !== ActionTypes.Contract) {\n throw new Error(\"completeContract() called even though current action is not a Contract\");\n }\n const city = this.getCurrentCity();\n if (success) {\n switch (actionIdent.name) {\n case \"Tracking\":\n // Increase estimate accuracy by a relatively small amount\n city.improvePopulationEstimateByCount(getRandomInt(100, 1e3));\n break;\n case \"Bounty Hunter\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.02);\n break;\n case \"Retirement\":\n city.changePopulationByCount(-1, { estChange: -1, estOffset: 0 });\n city.changeChaosByCount(0.04);\n break;\n default:\n throw new Error(\"Invalid Action name in completeContract: \" + actionIdent.name);\n }\n }\n }\n\n completeAction(player: IPlayer, person: IPerson, actionIdent: IActionIdentifier, isPlayer = true): ITaskTracker {\n let retValue = createTaskTracker();\n switch (actionIdent.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]: {\n try {\n const isOperation = actionIdent.type === ActionTypes[\"Operation\"];\n const action = this.getActionObject(actionIdent);\n if (action == null) {\n throw new Error(\"Failed to get Contract/Operation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n const rewardMultiplier = Math.pow(action.rewardFac, action.level - 1);\n\n if (isPlayer) {\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n }\n\n // Process Contract/Operation success/failure\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, person, true);\n ++action.successes;\n --action.count;\n\n // Earn money for contracts\n let moneyGain = 0;\n if (!isOperation) {\n moneyGain = BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * this.skillMultipliers.money;\n retValue.money = moneyGain;\n }\n\n if (isOperation) {\n action.setMaxLevel(BladeburnerConstants.OperationSuccessesPerLevel);\n } else {\n action.setMaxLevel(BladeburnerConstants.ContractSuccessesPerLevel);\n }\n if (action.rankGain) {\n const gain = addOffset(action.rankGain * rewardMultiplier * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, gain);\n if (isOperation && this.logging.ops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank\",\n );\n } else if (!isOperation && this.logging.contracts) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" contract successfully completed! Gained \" +\n formatNumber(gain, 3) +\n \" rank and \" +\n numeralWrapper.formatMoney(moneyGain),\n );\n }\n }\n isOperation ? this.completeOperation(true, player) : this.completeContract(true, actionIdent);\n } else {\n retValue = this.getActionStats(action, person, false);\n ++action.failures;\n let loss = 0,\n damage = 0;\n if (action.rankLoss) {\n loss = addOffset(action.rankLoss * rewardMultiplier, 10);\n this.changeRank(person, -1 * loss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n this.hpLost += damage;\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n let logLossText = \"\";\n if (loss > 0) {\n logLossText += \"Lost \" + formatNumber(loss, 3) + \" rank. \";\n }\n if (damage > 0) {\n logLossText += \"Took \" + formatNumber(damage, 0) + \" damage.\";\n }\n if (isOperation && this.logging.ops) {\n this.log(`${person.whoAmI()}: ` + action.name + \" failed! \" + logLossText);\n } else if (!isOperation && this.logging.contracts) {\n this.log(`${person.whoAmI()}: ` + action.name + \" contract failed! \" + logLossText);\n }\n isOperation ? this.completeOperation(false, player) : this.completeContract(false, actionIdent);\n }\n if (action.autoLevel) {\n action.level = action.maxLevel;\n } // Autolevel\n } catch (e: unknown) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const action = this.getActionObject(actionIdent);\n if (action == null || !(action instanceof BlackOperation)) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + actionIdent.name);\n }\n const difficulty = action.getDifficulty();\n const difficultyMultiplier =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n\n // Team loss variables\n const teamCount = action.teamCount;\n let teamLossMax;\n\n if (action.attempt(this, person)) {\n retValue = this.getActionStats(action, person, true);\n action.count = 0;\n this.blackops[action.name] = true;\n let rankGain = 0;\n if (action.rankGain) {\n rankGain = addOffset(action.rankGain * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(person, rankGain);\n }\n teamLossMax = Math.ceil(teamCount / 2);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` + action.name + \" successful! Gained \" + formatNumber(rankGain, 1) + \" rank\",\n );\n }\n } else {\n retValue = this.getActionStats(action, person, false);\n let rankLoss = 0;\n let damage = 0;\n if (action.rankLoss) {\n rankLoss = addOffset(action.rankLoss, 10);\n this.changeRank(person, -1 * rankLoss);\n }\n if (action.hpLoss) {\n damage = action.hpLoss * difficultyMultiplier;\n damage = Math.ceil(addOffset(damage, 10));\n const cost = calculateHospitalizationCost(player, damage);\n if (person.takeDamage(damage)) {\n ++this.numHosp;\n this.moneyLost += cost;\n }\n }\n teamLossMax = Math.floor(teamCount);\n\n if (this.logging.blackops) {\n this.log(\n `${person.whoAmI()}: ` +\n action.name +\n \" failed! Lost \" +\n formatNumber(rankLoss, 1) +\n \" rank and took \" +\n formatNumber(damage, 0) +\n \" damage\",\n );\n }\n }\n\n this.resetAction(); // Stop regardless of success or fail\n\n // Calculate team lossses\n if (teamCount >= 1) {\n const losses = getRandomInt(1, teamLossMax);\n this.teamSize -= losses;\n if (this.teamSize < this.sleeveSize) {\n const sup = player.sleeves.filter((x) => isSleeveSupportWork(x.currentWork));\n for (let i = 0; i > this.teamSize - this.sleeveSize; i--) {\n const r = Math.floor(Math.random() * sup.length);\n sup[r].takeDamage(sup[r].hp.max);\n sup.splice(r, 1);\n }\n this.teamSize += this.sleeveSize;\n }\n this.teamLost += losses;\n if (this.logging.blackops) {\n this.log(`${person.whoAmI()}: You lost ${formatNumber(losses, 0)} team members during ${action.name}`);\n }\n }\n } catch (e: unknown) {\n exceptionAlert(String(e));\n }\n break;\n }\n case ActionTypes[\"Training\"]: {\n this.stamina -= 0.5 * BladeburnerConstants.BaseStaminaLoss;\n const strExpGain = 30 * person.mults.strength_exp,\n defExpGain = 30 * person.mults.defense_exp,\n dexExpGain = 30 * person.mults.dexterity_exp,\n agiExpGain = 30 * person.mults.agility_exp,\n staminaGain = 0.04 * this.skillMultipliers.stamina;\n retValue.str = strExpGain;\n retValue.def = defExpGain;\n retValue.dex = dexExpGain;\n retValue.agi = agiExpGain;\n this.staminaBonus += staminaGain;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Training completed. Gained: \" +\n formatNumber(strExpGain, 1) +\n \" str exp, \" +\n formatNumber(defExpGain, 1) +\n \" def exp, \" +\n formatNumber(dexExpGain, 1) +\n \" dex exp, \" +\n formatNumber(agiExpGain, 1) +\n \" agi exp, \" +\n formatNumber(staminaGain, 3) +\n \" max stamina\",\n );\n }\n break;\n }\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Field Analysis\"]: {\n // Does not use stamina. Effectiveness depends on hacking, int, and cha\n let eff =\n 0.04 * Math.pow(person.skills.hacking, 0.3) +\n 0.04 * Math.pow(person.skills.intelligence, 0.9) +\n 0.02 * Math.pow(person.skills.charisma, 0.3);\n eff *= person.mults.bladeburner_analysis;\n if (isNaN(eff) || eff < 0) {\n throw new Error(\"Field Analysis Effectiveness calculated to be NaN or negative\");\n }\n const hackingExpGain = 20 * person.mults.hacking_exp;\n const charismaExpGain = 20 * person.mults.charisma_exp;\n const rankGain = 0.1 * BitNodeMultipliers.BladeburnerRank;\n retValue.hack = hackingExpGain;\n retValue.cha = charismaExpGain;\n retValue.int = BladeburnerConstants.BaseIntGain;\n this.changeRank(person, rankGain);\n this.getCurrentCity().improvePopulationEstimateByPercentage(eff * this.skillMultipliers.successChanceEstimate);\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n `Field analysis completed. Gained ${formatNumber(rankGain, 2)} rank, ` +\n `${formatNumber(hackingExpGain, 1)} hacking exp, and ` +\n `${formatNumber(charismaExpGain, 1)} charisma exp`,\n );\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]: {\n const successChance = this.getRecruitmentSuccessChance(person);\n const recruitTime = this.getRecruitmentTime(person) * 1000;\n if (Math.random() < successChance) {\n const expGain = 2 * BladeburnerConstants.BaseStatGain * recruitTime;\n retValue.cha = expGain;\n ++this.teamSize;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Successfully recruited a team member! Gained \" +\n formatNumber(expGain, 1) +\n \" charisma exp\",\n );\n }\n } else {\n const expGain = BladeburnerConstants.BaseStatGain * recruitTime;\n retValue.cha = expGain;\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: ` +\n \"Failed to recruit a team member. Gained \" +\n formatNumber(expGain, 1) +\n \" charisma exp\",\n );\n }\n }\n break;\n }\n case ActionTypes[\"Diplomacy\"]: {\n const eff = this.getDiplomacyEffectiveness(person);\n this.getCurrentCity().chaos *= eff;\n if (this.getCurrentCity().chaos < 0) {\n this.getCurrentCity().chaos = 0;\n }\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: Diplomacy completed. Chaos levels in the current city fell by ${numeralWrapper.formatPercentage(\n 1 - eff,\n )}`,\n );\n }\n break;\n }\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]: {\n person.regenerateHp(BladeburnerConstants.HrcHpGain);\n\n const staminaGain = this.maxStamina * (BladeburnerConstants.HrcStaminaGain / 100);\n this.stamina = Math.min(this.maxStamina, this.stamina + staminaGain);\n if (this.logging.general) {\n this.log(\n `${person.whoAmI()}: Rested in Hyperbolic Regeneration Chamber. Restored ${\n BladeburnerConstants.HrcHpGain\n } HP and gained ${numeralWrapper.formatStamina(staminaGain)} stamina`,\n );\n }\n break;\n }\n case ActionTypes[\"Incite Violence\"]: {\n for (const contract of Object.keys(this.contracts)) {\n const growthF = Growths[contract];\n if (!growthF) throw new Error(\"trying to generate count for action that doesn't exist? \" + contract);\n this.contracts[contract].count += (60 * 3 * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n for (const operation of Object.keys(this.operations)) {\n const growthF = Growths[operation];\n if (!growthF) throw new Error(\"trying to generate count for action that doesn't exist? \" + operation);\n this.operations[operation].count += (60 * 3 * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n if (this.logging.general) {\n this.log(`${person.whoAmI()}: Incited violence in the synthoid communities.`);\n }\n for (const cityName of Object.keys(this.cities)) {\n const city = this.cities[cityName];\n city.chaos += 10;\n city.chaos += city.chaos / (Math.log(city.chaos) / Math.log(10));\n }\n break;\n }\n default:\n console.error(`Bladeburner.completeAction() called for invalid action: ${actionIdent.type}`);\n break;\n }\n return retValue;\n }\n\n infiltrateSynthoidCommunities(p: IPlayer): void {\n const infilSleeves = p.sleeves.filter((s) => isSleeveInfiltrateWork(s.currentWork)).length;\n const amt = Math.pow(infilSleeves, -0.5) / 2;\n for (const contract of Object.keys(this.contracts)) {\n this.contracts[contract].count += amt;\n }\n for (const operation of Object.keys(this.operations)) {\n this.operations[operation].count += amt;\n }\n if (this.logging.general) {\n this.log(`Sleeve: Infiltrate the synthoid communities.`);\n }\n }\n\n changeRank(person: IPerson, change: number): void {\n if (isNaN(change)) {\n throw new Error(\"NaN passed into Bladeburner.changeRank()\");\n }\n this.rank += change;\n if (this.rank < 0) {\n this.rank = 0;\n }\n this.maxRank = Math.max(this.rank, this.maxRank);\n\n const bladeburnersFactionName = FactionNames.Bladeburners;\n if (factionExists(bladeburnersFactionName)) {\n const bladeburnerFac = Factions[bladeburnersFactionName];\n if (!(bladeburnerFac instanceof Faction)) {\n throw new Error(\n `Could not properly get ${FactionNames.Bladeburners} Faction object in ${FactionNames.Bladeburners} UI Overview Faction button`,\n );\n }\n if (bladeburnerFac.isMember) {\n const favorBonus = 1 + bladeburnerFac.favor / 100;\n bladeburnerFac.playerReputation +=\n BladeburnerConstants.RankToFactionRepFactor * change * person.mults.faction_rep * favorBonus;\n }\n }\n\n // Gain skill points\n const rankNeededForSp = (this.totalSkillPoints + 1) * BladeburnerConstants.RanksPerSkillPoint;\n if (this.maxRank >= rankNeededForSp) {\n // Calculate how many skill points to gain\n const gainedSkillPoints = Math.floor(\n (this.maxRank - rankNeededForSp) / BladeburnerConstants.RanksPerSkillPoint + 1,\n );\n this.skillPoints += gainedSkillPoints;\n this.totalSkillPoints += gainedSkillPoints;\n }\n }\n\n processAction(router: IRouter, player: IPlayer, seconds: number): void {\n if (this.action.type === ActionTypes[\"Idle\"]) return;\n if (this.actionTimeToComplete <= 0) {\n throw new Error(`Invalid actionTimeToComplete value: ${this.actionTimeToComplete}, type; ${this.action.type}`);\n }\n if (!(this.action instanceof ActionIdentifier)) {\n throw new Error(\"Bladeburner.action is not an ActionIdentifier Object\");\n }\n\n // If the previous action went past its completion time, add to the next action\n // This is not added inmediatly in case the automation changes the action\n this.actionTimeCurrent += seconds + this.actionTimeOverflow;\n this.actionTimeOverflow = 0;\n if (this.actionTimeCurrent >= this.actionTimeToComplete) {\n this.actionTimeOverflow = this.actionTimeCurrent - this.actionTimeToComplete;\n const action = this.getActionObject(this.action);\n const retValue = this.completeAction(player, player, this.action);\n player.gainMoney(retValue.money, \"bladeburner\");\n player.gainStats(retValue);\n // Operation Daedalus\n if (action == null) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + this.action.name);\n } else if (this.action.type != ActionTypes[\"BlackOperation\"] && this.action.type != ActionTypes[\"BlackOp\"]) {\n this.startAction(player, this.action); // Repeat action\n }\n }\n }\n\n calculateStaminaGainPerSecond(player: IPlayer): number {\n const effAgility = player.skills.agility * this.skillMultipliers.effAgi;\n const maxStaminaBonus = this.maxStamina / BladeburnerConstants.MaxStaminaToGainFactor;\n const gain = (BladeburnerConstants.StaminaGainPerSecond + maxStaminaBonus) * Math.pow(effAgility, 0.17);\n return gain * (this.skillMultipliers.stamina * player.mults.bladeburner_stamina_gain);\n }\n\n calculateMaxStamina(player: IPlayer): void {\n const effAgility = player.skills.agility * this.skillMultipliers.effAgi;\n const maxStamina =\n (Math.pow(effAgility, 0.8) + this.staminaBonus) *\n this.skillMultipliers.stamina *\n player.mults.bladeburner_max_stamina;\n if (this.maxStamina !== maxStamina) {\n const oldMax = this.maxStamina;\n this.maxStamina = maxStamina;\n this.stamina = (this.maxStamina * this.stamina) / oldMax;\n }\n if (isNaN(maxStamina)) {\n throw new Error(\"Max Stamina calculated to be NaN in Bladeburner.calculateMaxStamina()\");\n }\n }\n\n create(): void {\n this.contracts[\"Tracking\"] = new Contract({\n name: \"Tracking\",\n baseDifficulty: 125,\n difficultyFac: 1.02,\n rewardFac: 1.041,\n rankGain: 0.3,\n hpLoss: 0.5,\n count: getRandomInt(25, 150),\n weights: {\n hack: 0,\n str: 0.05,\n def: 0.05,\n dex: 0.35,\n agi: 0.35,\n cha: 0.1,\n int: 0.05,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.9,\n int: 1,\n },\n isStealth: true,\n });\n this.contracts[\"Bounty Hunter\"] = new Contract({\n name: \"Bounty Hunter\",\n baseDifficulty: 250,\n difficultyFac: 1.04,\n rewardFac: 1.085,\n rankGain: 0.9,\n hpLoss: 1,\n count: getRandomInt(5, 150),\n weights: {\n hack: 0,\n str: 0.15,\n def: 0.15,\n dex: 0.25,\n agi: 0.25,\n cha: 0.1,\n int: 0.1,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.8,\n int: 0.9,\n },\n isKill: true,\n });\n this.contracts[\"Retirement\"] = new Contract({\n name: \"Retirement\",\n baseDifficulty: 200,\n difficultyFac: 1.03,\n rewardFac: 1.065,\n rankGain: 0.6,\n hpLoss: 1,\n count: getRandomInt(5, 150),\n weights: {\n hack: 0,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0.1,\n int: 0.1,\n },\n decays: {\n hack: 0,\n str: 0.91,\n def: 0.91,\n dex: 0.91,\n agi: 0.91,\n cha: 0.8,\n int: 0.9,\n },\n isKill: true,\n });\n\n this.operations[\"Investigation\"] = new Operation({\n name: \"Investigation\",\n baseDifficulty: 400,\n difficultyFac: 1.03,\n rewardFac: 1.07,\n reqdRank: 25,\n rankGain: 2.2,\n rankLoss: 0.2,\n count: getRandomInt(1, 100),\n weights: {\n hack: 0.25,\n str: 0.05,\n def: 0.05,\n dex: 0.2,\n agi: 0.1,\n cha: 0.25,\n int: 0.1,\n },\n decays: {\n hack: 0.85,\n str: 0.9,\n def: 0.9,\n dex: 0.9,\n agi: 0.9,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Undercover Operation\"] = new Operation({\n name: \"Undercover Operation\",\n baseDifficulty: 500,\n difficultyFac: 1.04,\n rewardFac: 1.09,\n reqdRank: 100,\n rankGain: 4.4,\n rankLoss: 0.4,\n hpLoss: 2,\n count: getRandomInt(1, 100),\n weights: {\n hack: 0.2,\n str: 0.05,\n def: 0.05,\n dex: 0.2,\n agi: 0.2,\n cha: 0.2,\n int: 0.1,\n },\n decays: {\n hack: 0.8,\n str: 0.9,\n def: 0.9,\n dex: 0.9,\n agi: 0.9,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Sting Operation\"] = new Operation({\n name: \"Sting Operation\",\n baseDifficulty: 650,\n difficultyFac: 1.04,\n rewardFac: 1.095,\n reqdRank: 500,\n rankGain: 5.5,\n rankLoss: 0.5,\n hpLoss: 2.5,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.25,\n str: 0.05,\n def: 0.05,\n dex: 0.25,\n agi: 0.1,\n cha: 0.2,\n int: 0.1,\n },\n decays: {\n hack: 0.8,\n str: 0.85,\n def: 0.85,\n dex: 0.85,\n agi: 0.85,\n cha: 0.7,\n int: 0.9,\n },\n isStealth: true,\n });\n this.operations[\"Raid\"] = new Operation({\n name: \"Raid\",\n baseDifficulty: 800,\n difficultyFac: 1.045,\n rewardFac: 1.1,\n reqdRank: 3000,\n rankGain: 55,\n rankLoss: 2.5,\n hpLoss: 50,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.7,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.9,\n },\n isKill: true,\n });\n this.operations[\"Stealth Retirement Operation\"] = new Operation({\n name: \"Stealth Retirement Operation\",\n baseDifficulty: 1000,\n difficultyFac: 1.05,\n rewardFac: 1.11,\n reqdRank: 20e3,\n rankGain: 22,\n rankLoss: 2,\n hpLoss: 10,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.1,\n def: 0.1,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.7,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.9,\n },\n isStealth: true,\n isKill: true,\n });\n this.operations[\"Assassination\"] = new Operation({\n name: \"Assassination\",\n baseDifficulty: 1500,\n difficultyFac: 1.06,\n rewardFac: 1.14,\n reqdRank: 50e3,\n rankGain: 44,\n rankLoss: 4,\n hpLoss: 5,\n count: getRandomInt(1, 150),\n weights: {\n hack: 0.1,\n str: 0.1,\n def: 0.1,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.8,\n },\n isStealth: true,\n isKill: true,\n });\n }\n\n process(router: IRouter, player: IPlayer): void {\n // Edge race condition when the engine checks the processing counters and attempts to route before the router is initialized.\n if (!router.isInitialized) return;\n\n // If the Player starts doing some other actions, set action to idle and alert\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true) && player.currentWork) {\n if (this.action.type !== ActionTypes[\"Idle\"]) {\n let msg = \"Your Bladeburner action was cancelled because you started doing something else.\";\n if (this.automateEnabled) {\n msg += `
Your automation was disabled as well. You will have to re-enable it through the Bladeburner console`;\n this.automateEnabled = false;\n }\n if (!Settings.SuppressBladeburnerPopup) {\n dialogBoxCreate(msg);\n }\n }\n this.resetAction();\n }\n\n // If the Player has no Stamina, set action to idle\n if (this.stamina <= 0) {\n this.log(\"Your Bladeburner action was cancelled because your stamina hit 0\");\n this.resetAction();\n }\n\n // A 'tick' for this mechanic is one second (= 5 game cycles)\n if (this.storedCycles >= BladeburnerConstants.CyclesPerSecond) {\n let seconds = Math.floor(this.storedCycles / BladeburnerConstants.CyclesPerSecond);\n seconds = Math.min(seconds, 5); // Max of 5 'ticks'\n this.storedCycles -= seconds * BladeburnerConstants.CyclesPerSecond;\n\n // Stamina\n this.calculateMaxStamina(player);\n this.stamina += this.calculateStaminaGainPerSecond(player) * seconds;\n this.stamina = Math.min(this.maxStamina, this.stamina);\n\n // Count increase for contracts/operations\n for (const contract of Object.values(this.contracts)) {\n const growthF = Growths[contract.name];\n if (growthF === undefined) throw new Error(`growth formula for action '${contract.name}' is undefined`);\n contract.count += (seconds * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n for (const op of Object.values(this.operations)) {\n const growthF = Growths[op.name];\n if (growthF === undefined) throw new Error(`growth formula for action '${op.name}' is undefined`);\n if (growthF !== undefined) {\n op.count += (seconds * growthF()) / BladeburnerConstants.ActionCountGrowthPeriod;\n }\n }\n\n // Chaos goes down very slowly\n for (const cityName of BladeburnerConstants.CityNames) {\n const city = this.cities[cityName];\n if (!(city instanceof City)) {\n throw new Error(\"Invalid City object when processing passive chaos reduction in Bladeburner.process\");\n }\n city.chaos -= 0.0001 * seconds;\n city.chaos = Math.max(0, city.chaos);\n }\n\n // Random Events\n this.randomEventCounter -= seconds;\n if (this.randomEventCounter <= 0) {\n this.randomEvent();\n // Add instead of setting because we might have gone over the required time for the event\n this.randomEventCounter += getRandomInt(240, 600);\n }\n\n this.processAction(router, player, seconds);\n\n // Automation\n if (this.automateEnabled) {\n // Note: Do NOT set this.action = this.automateActionHigh/Low since it creates a reference\n if (this.stamina <= this.automateThreshLow) {\n if (this.action.name !== this.automateActionLow.name || this.action.type !== this.automateActionLow.type) {\n this.action = new ActionIdentifier({\n type: this.automateActionLow.type,\n name: this.automateActionLow.name,\n });\n this.startAction(player, this.action);\n }\n } else if (this.stamina >= this.automateThreshHigh) {\n if (this.action.name !== this.automateActionHigh.name || this.action.type !== this.automateActionHigh.type) {\n this.action = new ActionIdentifier({\n type: this.automateActionHigh.type,\n name: this.automateActionHigh.name,\n });\n this.startAction(player, this.action);\n }\n }\n }\n }\n }\n\n getTypeAndNameFromActionId(actionId: IActionIdentifier): {\n type: string;\n name: string;\n } {\n const res = { type: \"\", name: \"\" };\n const types = Object.keys(ActionTypes);\n for (let i = 0; i < types.length; ++i) {\n if (actionId.type === ActionTypes[types[i]]) {\n res.type = types[i];\n break;\n }\n }\n const gen = [\n \"Training\",\n \"Recruitment\",\n \"FieldAnalysis\",\n \"Field Analysis\",\n \"Diplomacy\",\n \"Hyperbolic Regeneration Chamber\",\n \"Incite Violence\",\n ];\n if (gen.includes(res.type)) {\n res.type = \"General\";\n }\n\n if (res.type == null) {\n res.type = \"Idle\";\n }\n\n res.name = actionId.name != null ? actionId.name : \"Idle\";\n return res;\n }\n\n getContractNamesNetscriptFn(): string[] {\n return Object.keys(this.contracts);\n }\n\n getOperationNamesNetscriptFn(): string[] {\n return Object.keys(this.operations);\n }\n\n getBlackOpNamesNetscriptFn(): string[] {\n return Object.keys(BlackOperations);\n }\n\n getGeneralActionNamesNetscriptFn(): string[] {\n return Object.keys(GeneralActions);\n }\n\n getSkillNamesNetscriptFn(): string[] {\n return Object.keys(Skills);\n }\n\n startActionNetscriptFn(player: IPlayer, type: string, name: string, workerScript: WorkerScript): boolean {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n\n // Special logic for Black Ops\n if (actionId.type === ActionTypes[\"BlackOp\"]) {\n const canRunOp = this.canAttemptBlackOp(actionId);\n if (!canRunOp.isAvailable) {\n workerScript.log(\"bladeburner.startAction\", () => canRunOp.error + \"\");\n return false;\n }\n }\n\n try {\n this.startAction(player, actionId);\n workerScript.log(\n \"bladeburner.startAction\",\n () => `Starting bladeburner action with type '${type}' and name '${name}'`,\n );\n return true;\n } catch (e: unknown) {\n console.error(e);\n this.resetAction();\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n }\n\n getActionTimeNetscriptFn(person: IPerson, type: string, name: string): number | string {\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n return \"bladeburner.getActionTime\";\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n return \"bladeburner.getActionTime\";\n }\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return actionObj.getActionTime(this, person) * 1000;\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n return 30000;\n case ActionTypes[\"Recruitment\"]:\n return this.getRecruitmentTime(person) * 1000;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return 60000;\n default:\n return \"bladeburner.getActionTime\";\n }\n }\n\n getActionEstimatedSuccessChanceNetscriptFn(person: IPerson, type: string, name: string): [number, number] | string {\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n return actionObj.getEstSuccessChance(this, person);\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return [1, 1];\n case ActionTypes[\"Recruitment\"]: {\n const recChance = this.getRecruitmentSuccessChance(person);\n return [recChance, recChance];\n }\n default:\n return \"bladeburner.getActionEstimatedSuccessChance\";\n }\n }\n\n getActionCountRemainingNetscriptFn(type: string, name: string, workerScript: WorkerScript): number {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n\n switch (actionId.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]:\n return Math.floor(actionObj.count);\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]:\n if (this.blackops[name] != null) {\n return 0;\n } else {\n return 1;\n }\n case ActionTypes[\"Training\"]:\n case ActionTypes[\"Recruitment\"]:\n case ActionTypes[\"Field Analysis\"]:\n case ActionTypes[\"FieldAnalysis\"]:\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return Infinity;\n default:\n workerScript.log(\"bladeburner.getActionCountRemaining\", () => errorLogText);\n return -1;\n }\n }\n\n getSkillLevelNetscriptFn(skillName: string, workerScript: WorkerScript): number {\n if (skillName === \"\" || !Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.getSkillLevel\", () => `Invalid skill: '${skillName}'`);\n return -1;\n }\n\n if (this.skills[skillName] == null) {\n return 0;\n } else {\n return this.skills[skillName];\n }\n }\n\n getSkillUpgradeCostNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): number {\n if (skillName === \"\" || !Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.getSkillUpgradeCost\", () => `Invalid skill: '${skillName}'`);\n return -1;\n }\n\n const skill = Skills[skillName];\n if (this.skills[skillName] == null) {\n return skill.calculateCost(0, count);\n } else {\n return skill.calculateCost(this.skills[skillName], count);\n }\n }\n\n upgradeSkillNetscriptFn(skillName: string, count: number, workerScript: WorkerScript): boolean {\n const errorLogText = `Invalid skill: '${skillName}'`;\n if (!Skills.hasOwnProperty(skillName)) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => errorLogText);\n return false;\n }\n\n const skill = Skills[skillName];\n let currentLevel = 0;\n if (this.skills[skillName] && !isNaN(this.skills[skillName])) {\n currentLevel = this.skills[skillName];\n }\n const cost = skill.calculateCost(currentLevel, count);\n\n if (skill.maxLvl && currentLevel + count > skill.maxLvl) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => `Skill '${skillName}' cannot be upgraded ${count} time(s).`);\n return false;\n }\n\n if (this.skillPoints < cost) {\n workerScript.log(\n \"bladeburner.upgradeSkill\",\n () =>\n `You do not have enough skill points to upgrade ${skillName} ${count} time(s). (You have ${this.skillPoints}, you need ${cost})`,\n );\n return false;\n }\n\n this.skillPoints -= cost;\n this.upgradeSkill(skill, count);\n workerScript.log(\"bladeburner.upgradeSkill\", () => `'${skillName}' upgraded to level ${this.skills[skillName]}`);\n return true;\n }\n\n getTeamSizeNetscriptFn(type: string, name: string, workerScript: WorkerScript): number {\n if (type === \"\" && name === \"\") {\n return this.teamSize;\n }\n\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.getTeamSize\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getTeamSize\", () => errorLogText);\n return -1;\n }\n\n if (\n actionId.type === ActionTypes[\"Operation\"] ||\n actionId.type === ActionTypes[\"BlackOp\"] ||\n actionId.type === ActionTypes[\"BlackOperation\"]\n ) {\n return actionObj.teamCount;\n } else {\n return 0;\n }\n }\n\n setTeamSizeNetscriptFn(type: string, name: string, size: number, workerScript: WorkerScript): number {\n const errorLogText = `Invalid action: type='${type}' name='${name}'`;\n const actionId = this.getActionIdFromTypeAndName(type, name);\n if (actionId == null) {\n workerScript.log(\"bladeburner.setTeamSize\", () => errorLogText);\n return -1;\n }\n\n if (\n actionId.type !== ActionTypes[\"Operation\"] &&\n actionId.type !== ActionTypes[\"BlackOp\"] &&\n actionId.type !== ActionTypes[\"BlackOperation\"]\n ) {\n workerScript.log(\"bladeburner.setTeamSize\", () => \"Only valid for 'Operations' and 'BlackOps'\");\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.setTeamSize\", () => errorLogText);\n return -1;\n }\n\n let sanitizedSize = Math.round(size);\n if (isNaN(sanitizedSize) || sanitizedSize < 0) {\n workerScript.log(\"bladeburner.setTeamSize\", () => `Invalid size: ${size}`);\n return -1;\n }\n if (this.teamSize < sanitizedSize) {\n sanitizedSize = this.teamSize;\n }\n actionObj.teamCount = sanitizedSize;\n workerScript.log(\"bladeburner.setTeamSize\", () => `Team size for '${name}' set to ${sanitizedSize}.`);\n return sanitizedSize;\n }\n\n joinBladeburnerFactionNetscriptFn(workerScript: WorkerScript): boolean {\n const bladeburnerFac = Factions[FactionNames.Bladeburners];\n if (bladeburnerFac.isMember) {\n return true;\n } else if (this.rank >= BladeburnerConstants.RankNeededForFaction) {\n joinFaction(bladeburnerFac);\n workerScript.log(\"bladeburner.joinBladeburnerFaction\", () => `Joined ${FactionNames.Bladeburners} faction.`);\n return true;\n } else {\n workerScript.log(\n \"bladeburner.joinBladeburnerFaction\",\n () => `You do not have the required rank (${this.rank}/${BladeburnerConstants.RankNeededForFaction}).`,\n );\n return false;\n }\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Bladeburner\", this);\n }\n\n /**\n * Initiatizes a Bladeburner object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Bladeburner {\n return Generic_fromJSON(Bladeburner, value.data);\n }\n}\n\nReviver.constructors.Bladeburner = Bladeburner;\n","import { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { HacknetNodeConstants } from \"../data/Constants\";\n\nexport function calculateMoneyGainRate(level: number, ram: number, cores: number, mult: number): number {\n const gainPerLevel = HacknetNodeConstants.MoneyGainPerLevel;\n\n const levelMult = level * gainPerLevel;\n const ramMult = Math.pow(1.035, ram - 1);\n const coresMult = (cores + 5) / 6;\n return levelMult * ramMult * coresMult * mult * BitNodeMultipliers.HacknetNodeMoney;\n}\n\nexport function calculateLevelUpgradeCost(startingLevel: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingLevel >= HacknetNodeConstants.MaxLevel) {\n return Infinity;\n }\n\n const mult = HacknetNodeConstants.UpgradeLevelMult;\n let totalMultiplier = 0;\n let currLevel = startingLevel;\n for (let i = 0; i < sanitizedLevels; ++i) {\n totalMultiplier += HacknetNodeConstants.LevelBaseCost * Math.pow(mult, currLevel);\n ++currLevel;\n }\n\n return (HacknetNodeConstants.BaseCost / 2) * totalMultiplier * costMult;\n}\n\nexport function calculateRamUpgradeCost(startingRam: number, extraLevels = 1, costMult = 1): number {\n const sanitizedLevels = Math.round(extraLevels);\n if (isNaN(sanitizedLevels) || sanitizedLevels < 1) {\n return 0;\n }\n\n if (startingRam >= HacknetNodeConstants.MaxRam) {\n return Infinity;\n }\n\n let totalCost = 0;\n let numUpgrades = Math.round(Math.log2(startingRam));\n let currentRam = startingRam;\n\n for (let i = 0; i < sanitizedLevels; ++i) {\n const baseCost = currentRam * HacknetNodeConstants.RamBaseCost;\n const mult = Math.pow(HacknetNodeConstants.UpgradeRamMult, numUpgrades);\n\n totalCost += baseCost * mult;\n\n currentRam *= 2;\n ++numUpgrades;\n }\n\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateCoreUpgradeCost(startingCore: number, extraLevels = 1, costMult = 1): number {\n const sanitizedCores = Math.round(extraLevels);\n if (isNaN(sanitizedCores) || sanitizedCores < 1) {\n return 0;\n }\n\n if (startingCore >= HacknetNodeConstants.MaxCores) {\n return Infinity;\n }\n\n const coreBaseCost = HacknetNodeConstants.CoreBaseCost;\n const mult = HacknetNodeConstants.UpgradeCoreMult;\n let totalCost = 0;\n let currentCores = startingCore;\n for (let i = 0; i < sanitizedCores; ++i) {\n totalCost += coreBaseCost * Math.pow(mult, currentCores - 1);\n ++currentCores;\n }\n\n totalCost *= costMult;\n\n return totalCost;\n}\n\nexport function calculateNodeCost(n: number, mult = 1): number {\n if (n <= 0) {\n return 0;\n }\n return HacknetNodeConstants.BaseCost * Math.pow(HacknetNodeConstants.PurchaseNextMult, n - 1) * mult;\n}\n","import * as React from \"react\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nconst gainLimit = 10e9;\n\nexport function win(p: IPlayer, n: number): void {\n p.gainMoney(n, \"casino\");\n}\n\nexport function reachedLimit(p: IPlayer): boolean {\n const reached = p.getCasinoWinnings() > gainLimit;\n if (reached) {\n dialogBoxCreate(<>Alright cheater get out of here. You're not allowed here anymore.>);\n }\n return reached;\n}\n\nexport class Game extends React.Component {\n win(p: IPlayer, n: number): void {\n p.gainMoney(n, \"casino\");\n }\n\n reachedLimit(p: IPlayer): boolean {\n const reached = p.getCasinoWinnings() > gainLimit;\n if (reached) {\n dialogBoxCreate(<>Alright cheater get out of here. You're not allowed here anymore.>);\n }\n return reached;\n }\n}\n","const _ = false;\nconst X = true;\nexport const Shapes: {\n O: boolean[][];\n I: boolean[][];\n L: boolean[][];\n J: boolean[][];\n S: boolean[][];\n Z: boolean[][];\n T: boolean[][];\n} = {\n O: [\n [X, X],\n [X, X],\n ],\n I: [[X, X, X, X]],\n L: [\n [_, _, X],\n [X, X, X],\n ],\n J: [\n [X, _, _],\n [X, X, X],\n ],\n S: [\n [_, X, X],\n [X, X, _],\n ],\n Z: [\n [X, X, _],\n [_, X, X],\n ],\n T: [\n [X, X, X],\n [_, X, _],\n ],\n};\n","interface DifficultySetting {\n [key: string]: number;\n}\n\ninterface DifficultySettings {\n Trivial: DifficultySetting;\n Normal: DifficultySetting;\n Hard: DifficultySetting;\n Impossible: DifficultySetting;\n}\n\n// I could use `any` to simply some of this but I also want to take advantage\n// of the type safety that typescript provides. I'm just not sure how in this\n// case.\nexport function interpolate(settings: DifficultySettings, n: number, out: DifficultySetting): DifficultySetting {\n // interpolates between 2 difficulties.\n function lerpD(a: DifficultySetting, b: DifficultySetting, t: number): DifficultySetting {\n // interpolates between 2 numbers.\n function lerp(x: number, y: number, t: number): number {\n return (1 - t) * x + t * y;\n }\n for (const key of Object.keys(a)) {\n out[key] = lerp(a[key], b[key], t);\n }\n return a;\n }\n if (n < 0) return lerpD(settings.Trivial, settings.Trivial, 0);\n if (n >= 0 && n < 1) return lerpD(settings.Trivial, settings.Normal, n);\n if (n >= 1 && n < 2) return lerpD(settings.Normal, settings.Hard, n - 1);\n if (n >= 2 && n < 3) return lerpD(settings.Hard, settings.Impossible, n - 2);\n return lerpD(settings.Impossible, settings.Impossible, 0);\n}\n","import React, { useEffect } from \"react\";\n\ninterface IProps {\n onKeyDown: (this: Document, event: KeyboardEvent) => void;\n onFailure: (options?: { automated: boolean }) => void;\n}\n\nexport function KeyHandler(props: IProps): React.ReactElement {\n useEffect(() => {\n function press(this: Document, event: KeyboardEvent): void {\n if (!event.isTrusted) return;\n const f = props.onKeyDown.bind(this);\n f(event);\n }\n document.addEventListener(\"keydown\", press);\n return () => document.removeEventListener(\"keydown\", press);\n });\n\n // invisible autofocused element that eats all the keypress for the minigames.\n return <>>;\n}\n","import React from \"react\";\nimport { Work, WorkType } from \"./Work\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Factions } from \"../Faction/Factions\";\nimport { Faction } from \"../Faction/Faction\";\nimport { applyWorkStats, scaleWorkStats, WorkStats } from \"./WorkStats\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reputation } from \"../ui/React/Reputation\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { calculateFactionExp, calculateFactionRep } from \"./formulas/Faction\";\nimport { FactionWorkType } from \"./data/FactionWorkType\";\n\ninterface FactionWorkParams {\n singularity: boolean;\n factionWorkType: FactionWorkType;\n faction: string;\n}\n\nexport const isFactionWork = (w: Work | null): w is FactionWork => w !== null && w.type === WorkType.FACTION;\n\nexport class FactionWork extends Work {\n factionWorkType: FactionWorkType;\n factionName: string;\n\n constructor(params?: FactionWorkParams) {\n super(WorkType.FACTION, params?.singularity ?? true);\n this.factionWorkType = params?.factionWorkType ?? FactionWorkType.HACKING;\n this.factionName = params?.faction ?? FactionNames.Sector12;\n }\n\n getFaction(): Faction {\n const f = Factions[this.factionName];\n if (!f) throw new Error(`Faction work started with invalid / unknown faction: '${this.factionName}'`);\n return f;\n }\n\n getReputationRate(player: IPlayer): number {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager, true)) {\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, true)) {\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 { 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 { 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 exportGame: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 2),\n exportGameBonus: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n b1tflum3: SF4Cost(16),\n destroyW0r1dD43m0n: SF4Cost(32),\n getCurrentWork: SF4Cost(0.5),\n};\n\n// Gang API\nconst gang = {\n createGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n inGang: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getMemberNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getOtherGangInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getMemberInformation: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n canRecruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n recruitMember: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getTaskNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getTaskStats: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n setMemberTask: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentNames: RamCostConstants.ScriptGangApiBaseRamCost / 4,\n getEquipmentCost: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentType: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getEquipmentStats: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n purchaseEquipment: RamCostConstants.ScriptGangApiBaseRamCost,\n ascendMember: RamCostConstants.ScriptGangApiBaseRamCost,\n getAscensionResult: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n setTerritoryWarfare: RamCostConstants.ScriptGangApiBaseRamCost / 2,\n getChanceToWinClash: RamCostConstants.ScriptGangApiBaseRamCost,\n getBonusTime: 0,\n};\n\n// Bladeburner API\nconst bladeburner = {\n getContractNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getOperationNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getBlackOpRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getGeneralActionNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n getSkillNames: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 10,\n startAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n stopBladeburnerAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,\n getCurrentAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 4,\n getActionTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionEstimatedSuccessChance: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionRepGain: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCountRemaining: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionMaxLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionCurrentLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionAutolevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setActionLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getRank: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillPoints: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillLevel: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getSkillUpgradeCost: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n upgradeSkill: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n setTeamSize: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityEstimatedPopulation: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityCommunities: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCityChaos: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n switchCity: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getStamina: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerFaction: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n joinBladeburnerDivision: RamCostConstants.ScriptBladeburnerApiBaseRamCost,\n getBonusTime: 0,\n};\n\nconst infiltration = {\n getPossibleLocations: RamCostConstants.ScriptInfiltrationGetLocations,\n getInfiltration: RamCostConstants.ScriptInfiltrationGetInfiltrations,\n};\n\n// Coding Contract API\nconst codingcontract = {\n attempt: RamCostConstants.ScriptCodingContractBaseRamCost,\n getContractType: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getData: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getDescription: RamCostConstants.ScriptCodingContractBaseRamCost / 2,\n getNumTriesRemaining: RamCostConstants.ScriptCodingContractBaseRamCost / 5,\n};\n\n// Duplicate Sleeve API\nconst sleeve = {\n getNumSleeves: RamCostConstants.ScriptSleeveBaseRamCost,\n setToShockRecovery: RamCostConstants.ScriptSleeveBaseRamCost,\n setToSynchronize: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCommitCrime: RamCostConstants.ScriptSleeveBaseRamCost,\n setToUniversityCourse: RamCostConstants.ScriptSleeveBaseRamCost,\n travel: RamCostConstants.ScriptSleeveBaseRamCost,\n setToCompanyWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToFactionWork: RamCostConstants.ScriptSleeveBaseRamCost,\n setToGymWorkout: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveStats: RamCostConstants.ScriptSleeveBaseRamCost,\n getTask: RamCostConstants.ScriptSleeveBaseRamCost,\n getInformation: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentations: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleevePurchasableAugs: RamCostConstants.ScriptSleeveBaseRamCost,\n purchaseSleeveAug: RamCostConstants.ScriptSleeveBaseRamCost,\n setToBladeburnerAction: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationPrice: RamCostConstants.ScriptSleeveBaseRamCost,\n getSleeveAugmentationRepReq: RamCostConstants.ScriptSleeveBaseRamCost,\n};\n\n// Stanek API\nconst stanek = {\n giftWidth: RamCostConstants.ScriptStanekWidth,\n giftHeight: RamCostConstants.ScriptStanekHeight,\n chargeFragment: RamCostConstants.ScriptStanekCharge,\n fragmentDefinitions: RamCostConstants.ScriptStanekFragmentDefinitions,\n activeFragments: RamCostConstants.ScriptStanekPlacedFragments,\n clearGift: RamCostConstants.ScriptStanekClear,\n canPlaceFragment: RamCostConstants.ScriptStanekCanPlace,\n placeFragment: RamCostConstants.ScriptStanekPlace,\n getFragment: RamCostConstants.ScriptStanekFragmentAt,\n removeFragment: RamCostConstants.ScriptStanekDeleteAt,\n acceptGift: RamCostConstants.ScriptStanekAcceptGift,\n};\n\n// UI API\nconst ui = {\n getTheme: 0,\n setTheme: 0,\n resetTheme: 0,\n getStyles: 0,\n setStyles: 0,\n resetStyles: 0,\n getGameInfo: 0,\n clearTerminal: 0,\n windowSize: 0,\n};\n\n// Grafting API\nconst grafting = {\n getAugmentationGraftPrice: 3.75,\n getAugmentationGraftTime: 3.75,\n getGraftableAugmentations: 5,\n graftAugmentation: 7.5,\n};\n\nconst corporation = {\n getMaterialNames: 0,\n getIndustryTypes: 0,\n getUnlockables: 0,\n getUpgradeNames: 0,\n getResearchNames: 0,\n createCorporation: 0,\n hasUnlockUpgrade: 0,\n getUnlockUpgradeCost: 0,\n getUpgradeLevel: 0,\n getUpgradeLevelCost: 0,\n getExpandIndustryCost: 0,\n getExpandCityCost: 0,\n getInvestmentOffer: 0,\n acceptInvestmentOffer: 0,\n goPublic: 0,\n bribe: 0,\n getCorporation: 0,\n getDivision: 0,\n expandIndustry: 0,\n expandCity: 0,\n unlockUpgrade: 0,\n levelUpgrade: 0,\n issueDividends: 0,\n buyBackShares: 0,\n sellShares: 0,\n getBonusTime: 0,\n sellMaterial: 0,\n sellProduct: 0,\n discontinueProduct: 0,\n setSmartSupply: 0,\n setSmartSupplyUseLeftovers: 0,\n buyMaterial: 0,\n bulkPurchase: 0,\n getWarehouse: 0,\n getProduct: 0,\n getMaterial: 0,\n setMaterialMarketTA1: 0,\n setMaterialMarketTA2: 0,\n setProductMarketTA1: 0,\n setProductMarketTA2: 0,\n exportMaterial: 0,\n cancelExportMaterial: 0,\n purchaseWarehouse: 0,\n upgradeWarehouse: 0,\n makeProduct: 0,\n limitMaterialProduction: 0,\n limitProductProduction: 0,\n getPurchaseWarehouseCost: 0,\n getUpgradeWarehouseCost: 0,\n hasWarehouse: 0,\n assignJob: 0,\n hireEmployee: 0,\n upgradeOfficeSize: 0,\n throwParty: 0,\n buyCoffee: 0,\n hireAdVert: 0,\n research: 0,\n getOffice: 0,\n getEmployee: 0,\n getHireAdVertCost: 0,\n getHireAdVertCount: 0,\n getResearchCost: 0,\n hasResearched: 0,\n setAutoJobAssignment: 0,\n getOfficeSizeUpgradeCost: 0,\n};\n\nconst SourceRamCosts = {\n args: undefined as unknown as never[], // special use case\n enums: undefined as unknown as never,\n corporation,\n hacknet,\n stock,\n singularity,\n ...singularity, // singularity is in namespace & toplevel\n gang,\n bladeburner,\n infiltration,\n codingcontract,\n sleeve,\n stanek,\n ui,\n grafting,\n\n sprintf: 0,\n vsprintf: 0,\n scan: RamCostConstants.ScriptScanRamCost,\n hack: RamCostConstants.ScriptHackRamCost,\n hackAnalyzeThreads: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyze: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeSecurity: RamCostConstants.ScriptHackAnalyzeRamCost,\n hackAnalyzeChance: RamCostConstants.ScriptHackAnalyzeRamCost,\n sleep: 0,\n asleep: 0,\n share: 2.4,\n getSharePower: 0.2,\n grow: RamCostConstants.ScriptGrowRamCost,\n growthAnalyze: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n growthAnalyzeSecurity: RamCostConstants.ScriptGrowthAnalyzeRamCost,\n weaken: RamCostConstants.ScriptWeakenRamCost,\n weakenAnalyze: RamCostConstants.ScriptWeakenAnalyzeRamCost,\n print: 0,\n printf: 0,\n tprint: 0,\n tprintf: 0,\n clearLog: 0,\n disableLog: 0,\n enableLog: 0,\n isLogEnabled: 0,\n getScriptLogs: 0,\n nuke: RamCostConstants.ScriptPortProgramRamCost,\n brutessh: RamCostConstants.ScriptPortProgramRamCost,\n ftpcrack: RamCostConstants.ScriptPortProgramRamCost,\n relaysmtp: RamCostConstants.ScriptPortProgramRamCost,\n httpworm: RamCostConstants.ScriptPortProgramRamCost,\n sqlinject: RamCostConstants.ScriptPortProgramRamCost,\n run: RamCostConstants.ScriptRunRamCost,\n exec: RamCostConstants.ScriptExecRamCost,\n spawn: RamCostConstants.ScriptSpawnRamCost,\n kill: RamCostConstants.ScriptKillRamCost,\n killall: RamCostConstants.ScriptKillRamCost,\n exit: 0,\n atExit: 0,\n scp: RamCostConstants.ScriptScpRamCost,\n ls: RamCostConstants.ScriptScanRamCost,\n ps: RamCostConstants.ScriptScanRamCost,\n getRecentScripts: RamCostConstants.ScriptRecentScriptsRamCost,\n hasRootAccess: RamCostConstants.ScriptHasRootAccessRamCost,\n getHostname: RamCostConstants.ScriptGetHostnameRamCost,\n getHackingLevel: RamCostConstants.ScriptGetHackingLevelRamCost,\n getHackingMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getHacknetMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getBitNodeMultipliers: RamCostConstants.ScriptGetMultipliersRamCost,\n getServer: RamCostConstants.ScriptGetMultipliersRamCost / 2,\n getServerMoneyAvailable: RamCostConstants.ScriptGetServerRamCost,\n getServerSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerBaseSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMinSecurityLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerRequiredHackingLevel: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxMoney: RamCostConstants.ScriptGetServerRamCost,\n getServerGrowth: RamCostConstants.ScriptGetServerRamCost,\n getServerNumPortsRequired: RamCostConstants.ScriptGetServerRamCost,\n getServerRam: RamCostConstants.ScriptGetServerRamCost,\n getServerMaxRam: RamCostConstants.ScriptGetServerMaxRam,\n getServerUsedRam: RamCostConstants.ScriptGetServerUsedRam,\n serverExists: RamCostConstants.ScriptGetServerRamCost,\n fileExists: RamCostConstants.ScriptFileExistsRamCost,\n isRunning: RamCostConstants.ScriptIsRunningRamCost,\n getPurchasedServerLimit: RamCostConstants.ScriptGetPurchasedServerLimit,\n getPurchasedServerMaxRam: RamCostConstants.ScriptGetPurchasedServerMaxRam,\n getPurchasedServerCost: RamCostConstants.ScriptGetPurchaseServerRamCost,\n purchaseServer: RamCostConstants.ScriptPurchaseServerRamCost,\n deleteServer: RamCostConstants.ScriptPurchaseServerRamCost,\n getPurchasedServers: RamCostConstants.ScriptPurchaseServerRamCost,\n write: 0,\n tryWritePort: 0,\n read: 0,\n peek: 0,\n clear: 0,\n writePort: 0,\n readPort: 0,\n getPortHandle: 0,\n rm: RamCostConstants.ScriptReadWriteRamCost,\n scriptRunning: RamCostConstants.ScriptArbScriptRamCost,\n scriptKill: RamCostConstants.ScriptArbScriptRamCost,\n getScriptName: 0,\n getScriptRam: RamCostConstants.ScriptGetScriptRamCost,\n getHackTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getGrowTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getWeakenTime: RamCostConstants.ScriptGetHackTimeRamCost,\n getTotalScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getScriptIncome: RamCostConstants.ScriptGetScriptRamCost,\n getTotalScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getScriptExpGain: RamCostConstants.ScriptGetScriptRamCost,\n getRunningScript: RamCostConstants.ScriptGetRunningScriptRamCost,\n nFormat: 0,\n tFormat: 0,\n getTimeSinceLastAug: RamCostConstants.ScriptGetHackTimeRamCost,\n prompt: 0,\n wget: 0,\n getFavorToDonate: RamCostConstants.ScriptGetFavorToDonate,\n getPlayer: RamCostConstants.ScriptSingularityFn1RamCost / 4,\n mv: 0,\n tail: 0,\n toast: 0,\n moveTail: 0,\n resizeTail: 0,\n closeTail: 0,\n clearPort: 0,\n openDevMenu: 0,\n alert: 0,\n flags: 0,\n exploit: 0,\n bypass: 0,\n alterReality: 0,\n rainbow: 0,\n heart: {\n // Easter egg function\n break: 0,\n },\n\n formulas: {\n mockServer: 0,\n mockPlayer: 0,\n reputation: {\n calculateFavorToRep: 0,\n calculateRepToFavor: 0,\n repFromDonation: 0,\n },\n skills: {\n calculateSkill: 0,\n calculateExp: 0,\n },\n hacking: {\n hackChance: 0,\n hackExp: 0,\n hackPercent: 0,\n growPercent: 0,\n hackTime: 0,\n growTime: 0,\n weakenTime: 0,\n },\n hacknetNodes: {\n moneyGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n hacknetNodeCost: 0,\n constants: 0,\n },\n hacknetServers: {\n hashGainRate: 0,\n levelUpgradeCost: 0,\n ramUpgradeCost: 0,\n coreUpgradeCost: 0,\n cacheUpgradeCost: 0,\n hashUpgradeCost: 0,\n hacknetServerCost: 0,\n constants: 0,\n },\n gang: {\n wantedPenalty: 0,\n respectGain: 0,\n wantedLevelGain: 0,\n moneyGain: 0,\n ascensionPointsGain: 0,\n ascensionMultiplier: 0,\n },\n work: {\n crimeGains: 0,\n classGains: 0,\n factionGains: 0,\n },\n },\n};\n\nexport const RamCosts: IMap = SourceRamCosts;\n\n// This line in particular is there so typescript typechecks that we are not missing any static ram cost.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _typecheck: RamCostTree = SourceRamCosts;\n\nexport function getRamCost(player: IPlayer, ...args: string[]): number {\n if (args.length === 0) {\n console.warn(`No arguments passed to getRamCost()`);\n return 0;\n }\n\n let curr = RamCosts[args[0]];\n for (let i = 1; i < args.length; ++i) {\n if (curr == null) {\n console.warn(`Invalid function passed to getRamCost: ${args}`);\n return 0;\n }\n\n const currType = typeof curr;\n if (currType === \"function\" || currType === \"number\") {\n break;\n }\n\n curr = curr[args[i]];\n }\n\n if (typeof curr === \"number\") {\n return curr;\n }\n\n if (typeof curr === \"function\") {\n return curr(player);\n }\n\n console.warn(`Unexpected type (${curr}) for value [${args}]`);\n return 0;\n}\n","import { Skill } from \"./Skill\";\nimport { SkillNames } from \"./data/SkillNames\";\nimport { IMap } from \"../types\";\n\nexport const Skills: IMap = {};\n\n(function () {\n Skills[SkillNames.BladesIntuition] = new Skill({\n name: SkillNames.BladesIntuition,\n desc: \"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%\",\n baseCost: 3,\n costInc: 2.1,\n successChanceAll: 3,\n });\n Skills[SkillNames.Cloak] = new Skill({\n name: SkillNames.Cloak,\n desc:\n \"Each level of this skill increases your \" +\n \"success chance in stealth-related Contracts, Operations, and BlackOps by 5.5%\",\n baseCost: 2,\n costInc: 1.1,\n successChanceStealth: 5.5,\n });\n Skills[SkillNames.ShortCircuit] = new Skill({\n name: SkillNames.ShortCircuit,\n desc:\n \"Each level of this skill increases your success chance \" +\n \"in Contracts, Operations, and BlackOps that involve retirement by 5.5%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceKill: 5.5,\n });\n Skills[SkillNames.DigitalObserver] = new Skill({\n name: SkillNames.DigitalObserver,\n desc: \"Each level of this skill increases your success chance in all Operations and BlackOps by 4%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceOperation: 4,\n });\n Skills[SkillNames.Tracer] = new Skill({\n name: SkillNames.Tracer,\n desc: \"Each level of this skill increases your success chance in all Contracts by 4%\",\n baseCost: 2,\n costInc: 2.1,\n successChanceContract: 4,\n });\n Skills[SkillNames.Overclock] = new Skill({\n name: SkillNames.Overclock,\n desc:\n \"Each level of this skill decreases the time it takes \" +\n \"to attempt a Contract, Operation, and BlackOp by 1% (Max Level: 90)\",\n baseCost: 3,\n costInc: 1.4,\n maxLvl: 90,\n actionTime: 1,\n });\n Skills[SkillNames.Reaper] = new Skill({\n name: SkillNames.Reaper,\n desc: \"Each level of this skill increases your effective combat stats for Bladeburner actions by 2%\",\n baseCost: 2,\n costInc: 2.1,\n effStr: 2,\n effDef: 2,\n effDex: 2,\n effAgi: 2,\n });\n Skills[SkillNames.EvasiveSystem] = new Skill({\n name: SkillNames.EvasiveSystem,\n desc: \"Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%\",\n baseCost: 2,\n costInc: 2.1,\n effDex: 4,\n effAgi: 4,\n });\n Skills[SkillNames.Datamancer] = new Skill({\n name: SkillNames.Datamancer,\n desc:\n \"Each level of this skill increases your effectiveness in \" +\n \"synthoid population analysis and investigation by 5%. \" +\n \"This affects all actions that can potentially increase \" +\n \"the accuracy of your synthoid population/community estimates.\",\n baseCost: 3,\n costInc: 1,\n successChanceEstimate: 5,\n });\n Skills[SkillNames.CybersEdge] = new Skill({\n name: SkillNames.CybersEdge,\n desc: \"Each level of this skill increases your max stamina by 2%\",\n baseCost: 1,\n costInc: 3,\n stamina: 2,\n });\n Skills[SkillNames.HandsOfMidas] = new Skill({\n name: SkillNames.HandsOfMidas,\n desc: \"Each level of this skill increases the amount of money you receive from Contracts by 10%\",\n baseCost: 2,\n costInc: 2.5,\n money: 10,\n });\n Skills[SkillNames.Hyperdrive] = new Skill({\n name: SkillNames.Hyperdrive,\n desc: \"Each level of this skill increases the experience earned from Contracts, Operations, and BlackOps by 10%\",\n baseCost: 1,\n costInc: 2.5,\n expGain: 10,\n });\n})();\n","/**\n * Stock Market Helper Functions\n */\nimport { Stock } from \"./Stock\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { CONSTANTS } from \"../Constants\";\n\n// Amount by which a stock's forecast changes during each price movement\nexport const forecastChangePerPriceMovement = 0.006;\n\n/**\n * Calculate the total cost of a \"buy\" transaction. This accounts for spread and commission.\n * @param {Stock} stock - Stock being purchased\n * @param {number} shares - Number of shares being transacted\n * @param {PositionTypes} posType - Long or short position\n * @returns {number | null} Total transaction cost. Returns null for an invalid transaction\n */\nexport function getBuyTransactionCost(stock: Stock, shares: number, posType: PositionTypes): number | null {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return null;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n const isLong = posType === PositionTypes.Long;\n\n // If the number of shares doesn't trigger a price movement, its a simple calculation\n if (isLong) {\n return shares * stock.getAskPrice() + CONSTANTS.StockMarketCommission;\n } else {\n return shares * stock.getBidPrice() + CONSTANTS.StockMarketCommission;\n }\n}\n\n/**\n * Calculate the TOTAL amount of money gained from a sale (NOT net profit). This accounts\n * for spread and commission.\n * @param {Stock} stock - Stock being sold\n * @param {number} shares - Number of sharse being transacted\n * @param {PositionTypes} posType - Long or short position\n * @returns {number | null} Amount of money gained from transaction. Returns null for an invalid transaction\n */\nexport function getSellTransactionGain(stock: Stock, shares: number, posType: PositionTypes): number | null {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return null;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n const isLong = posType === PositionTypes.Long;\n if (isLong) {\n return shares * stock.getBidPrice() - CONSTANTS.StockMarketCommission;\n } else {\n // Calculating gains for a short position requires calculating the profit made\n const origCost = shares * stock.playerAvgShortPx;\n const profit = (stock.playerAvgShortPx - stock.getAskPrice()) * shares - CONSTANTS.StockMarketCommission;\n\n return origCost + profit;\n }\n}\n\n/**\n * Processes a stock's change in forecast & second-order forecast\n * whenever it is transacted\n * @param {Stock} stock - Stock being sold\n * @param {number} shares - Number of sharse being transacted\n * @param {PositionTypes} posType - Long or short position\n */\nexport function processTransactionForecastMovement(stock: Stock, shares: number): void {\n if (isNaN(shares) || shares <= 0 || !(stock instanceof Stock)) {\n return;\n }\n\n // Cap the 'shares' arg at the stock's maximum shares. This'll prevent\n // hanging in the case when a really big number is passed in\n shares = Math.min(shares, stock.maxShares);\n\n // If there's only going to be one iteration at most\n const firstShares = stock.shareTxUntilMovement;\n if (shares <= firstShares) {\n stock.shareTxUntilMovement -= shares;\n if (stock.shareTxUntilMovement <= 0) {\n stock.shareTxUntilMovement = stock.shareTxForMovement;\n stock.influenceForecast(forecastChangePerPriceMovement);\n stock.influenceForecastForecast(forecastChangePerPriceMovement * (stock.mv / 100));\n }\n\n return;\n }\n\n // Calculate how many iterations of price changes we need to account for\n const remainingShares = shares - firstShares;\n let numIterations = 1 + Math.ceil(remainingShares / stock.shareTxForMovement);\n\n // If on the offchance we end up perfectly at the next price movement\n stock.shareTxUntilMovement =\n stock.shareTxForMovement - ((shares - stock.shareTxUntilMovement) % stock.shareTxForMovement);\n if (stock.shareTxUntilMovement === stock.shareTxForMovement || stock.shareTxUntilMovement <= 0) {\n ++numIterations;\n stock.shareTxUntilMovement = stock.shareTxForMovement;\n }\n\n // Forecast always decreases in magnitude\n const forecastChange = forecastChangePerPriceMovement * (numIterations - 1);\n const forecastForecastChange = forecastChange * (stock.mv / 100);\n stock.influenceForecast(forecastChange);\n stock.influenceForecastForecast(forecastForecastChange);\n}\n\n/**\n * Calculate the maximum number of shares of a stock that can be purchased.\n * Handles mid-transaction price movements, both L and S positions, etc.\n * Used for the \"Buy Max\" button in the UI\n * @param {Stock} stock - Stock being purchased\n * @param {PositionTypes} posType - Long or short position\n * @param {number} money - Amount of money player has\n * @returns maximum number of shares that the player can purchase\n */\nexport function calculateBuyMaxAmount(stock: Stock, posType: PositionTypes, money: number): number {\n if (!(stock instanceof Stock)) {\n return 0;\n }\n\n const isLong = posType === PositionTypes.Long;\n\n const remainingMoney = money - CONSTANTS.StockMarketCommission;\n const currPrice = isLong ? stock.getAskPrice() : stock.getBidPrice();\n\n return Math.floor(remainingMoney / currPrice);\n}\n","import { gangMemberUpgradesMetadata } from \"./data/upgrades\";\nimport { GangMemberUpgrade } from \"./GangMemberUpgrade\";\n\nexport const GangMemberUpgrades: {\n [key: string]: GangMemberUpgrade;\n} = {};\n\n(function () {\n gangMemberUpgradesMetadata.forEach((e) => {\n GangMemberUpgrades[e.name] = new GangMemberUpgrade(e.name, e.cost, e.upgType, e.mults);\n });\n})();\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\n\nexport function getStockMarket4SDataCost(): number {\n return CONSTANTS.MarketData4SCost * BitNodeMultipliers.FourSigmaMarketDataCost;\n}\n\nexport function getStockMarket4STixApiCost(): number {\n return CONSTANTS.MarketDataTixApi4SCost * BitNodeMultipliers.FourSigmaMarketDataApiCost;\n}\n\nexport function getStockMarketWseCost(): number {\n return CONSTANTS.WSEAccountCost;\n}\n\nexport function getStockMarketTixApiCost(): number {\n return CONSTANTS.TIXAPICost;\n}\n","import { TextField, StandardTextFieldProps } from \"@mui/material\";\nimport React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\n\ninterface IProps extends Omit {\n onChange: (v: number) => void;\n}\n\nexport function NumberInput(props: IProps): React.ReactElement {\n const textProps = {\n ...props,\n onChange: (event: React.ChangeEvent) => {\n const amt = numeralWrapper.parseMoney(event.target.value);\n if (event.target.value === \"\" || isNaN(amt)) props.onChange(NaN);\n else props.onChange(amt);\n },\n };\n return ;\n}\n","/**\n * Map of all Hash Upgrades\n * Key = Hash name, Value = HashUpgrade object\n */\nimport { HashUpgrade, IConstructorParams } from \"./HashUpgrade\";\nimport { HashUpgradesMetadata } from \"./data/HashUpgradesMetadata\";\nimport { IMap } from \"../types\";\n\nexport const HashUpgrades: IMap = {};\n\nfunction createHashUpgrade(p: IConstructorParams): void {\n HashUpgrades[p.name] = new HashUpgrade(p);\n}\n\nfor (const metadata of HashUpgradesMetadata) {\n createHashUpgrade(metadata);\n}\n","import { gangMemberTasksMetadata } from \"./data/tasks\";\nimport { GangMemberTask } from \"./GangMemberTask\";\n\nexport const GangMemberTasks: {\n [key: string]: GangMemberTask;\n} = {};\n\n(function () {\n gangMemberTasksMetadata.forEach((e) => {\n GangMemberTasks[e.name] = new GangMemberTask(e.name, e.desc, e.isHacking, e.isCombat, e.params);\n });\n})();\n","import 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 { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { CONSTANTS } from \"../../../Constants\";\nimport { GeneralActions } from \"../../../Bladeburner/data/GeneralActions\";\nimport { WorkStats } from \"../../../Work/WorkStats\";\n\ninterface SleeveBladeburnerWorkParams {\n type: string;\n name: string;\n}\n\nexport const isSleeveBladeburnerWork = (w: Work | null): w is SleeveBladeburnerWork =>\n w !== null && w.type === WorkType.BLADEBURNER;\n\nexport class SleeveBladeburnerWork extends Work {\n cyclesWorked = 0;\n actionType: string;\n actionName: string;\n\n constructor(params?: SleeveBladeburnerWorkParams) {\n super(WorkType.BLADEBURNER);\n this.actionType = params?.type ?? \"General\";\n this.actionName = params?.name ?? \"Field analysis\";\n }\n\n cyclesNeeded(player: IPlayer, sleeve: Sleeve): number {\n const ret = player.bladeburner?.getActionTimeNetscriptFn(sleeve, this.actionType, this.actionName);\n if (!ret || typeof ret === \"string\") throw new Error(`Error querying ${this.actionName} time`);\n return ret / CONSTANTS._idleSpeed;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (!player.bladeburner) throw new Error(\"sleeve doing blade work without being a member\");\n this.cyclesWorked += cycles;\n const actionIdent = player.bladeburner.getActionIdFromTypeAndName(this.actionType, this.actionName);\n if (!actionIdent) throw new Error(`Error getting ${this.actionName} action`);\n if (this.actionType === \"Contracts\") {\n const action = player.bladeburner.getActionObject(actionIdent);\n if (!action) throw new Error(`Error getting ${this.actionName} action object`);\n if (action.count <= 0) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n\n while (this.cyclesWorked > this.cyclesNeeded(player, sleeve)) {\n if (this.actionType === \"Contracts\") {\n const action = player.bladeburner.getActionObject(actionIdent);\n if (!action) throw new Error(`Error getting ${this.actionName} action object`);\n if (action.count <= 0) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n const retValue = player.bladeburner.completeAction(player, sleeve, actionIdent, false);\n let exp: WorkStats | undefined;\n if (this.actionType === \"General\") {\n exp = GeneralActions[this.actionName]?.exp;\n if (!exp) throw new Error(`Somehow there was no exp for action ${this.actionType} ${this.actionName}`);\n applySleeveGains(player, sleeve, exp, 1);\n }\n player.gainMoney(retValue.money, \"sleeves\");\n player.gainStats(retValue);\n this.cyclesWorked -= this.cyclesNeeded(player, sleeve);\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n actionType: this.actionType,\n actionName: this.actionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveBladeburnerWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveBladeburnerWork {\n return Generic_fromJSON(SleeveBladeburnerWork, value.data);\n }\n}\n\nReviver.constructors.SleeveBladeburnerWork = SleeveBladeburnerWork;\n","import React from \"react\";\n\nimport { Table, TableCell } from \"./Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport { Table as MuiTable } from \"@mui/material\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface IProps {\n rows: React.ReactNode[][];\n title?: string;\n wide?: boolean;\n}\n\nexport function StatsTable({ rows, title, wide }: IProps): React.ReactElement {\n const T = wide ? MuiTable : Table;\n return (\n <>\n {title && {title}}\n \n \n {rows.map((row: React.ReactNode[], i: number) => (\n \n {row.map((elem: React.ReactNode, i: number) => (\n \n {elem}\n \n ))}\n \n ))}\n \n \n >\n );\n}\n","import { DarkWebItem } from \"./DarkWebItem\";\nimport { IMap } from \"../types\";\nimport { Programs } from \"../Programs/Programs\";\n\nexport const DarkWebItems: IMap = {\n BruteSSHProgram: new DarkWebItem(Programs.BruteSSHProgram.name, 500e3, \"Opens up SSH Ports.\"),\n FTPCrackProgram: new DarkWebItem(Programs.FTPCrackProgram.name, 1500e3, \"Opens up FTP Ports.\"),\n RelaySMTPProgram: new DarkWebItem(Programs.RelaySMTPProgram.name, 5e6, \"Opens up SMTP Ports.\"),\n HTTPWormProgram: new DarkWebItem(Programs.HTTPWormProgram.name, 30e6, \"Opens up HTTP Ports.\"),\n SQLInjectProgram: new DarkWebItem(Programs.SQLInjectProgram.name, 250e6, \"Opens up SQL Ports.\"),\n ServerProfiler: new DarkWebItem(\n Programs.ServerProfiler.name,\n 500000,\n \"Displays detailed information about a server.\",\n ),\n DeepscanV1: new DarkWebItem(Programs.DeepscanV1.name, 500000, \"Enables 'scan-analyze' with a depth up to 5.\"),\n DeepscanV2: new DarkWebItem(Programs.DeepscanV2.name, 25e6, \"Enables 'scan-analyze' with a depth up to 10.\"),\n AutolinkProgram: new DarkWebItem(Programs.AutoLink.name, 1e6, \"Enables direct connect via 'scan-analyze'.\"),\n FormulasProgram: new DarkWebItem(Programs.Formulas.name, 5e9, \"Unlock access to the formulas API.\"),\n};\n","import { Action } from \"./Action\";\nimport { IMap } from \"../types\";\n\nexport const GeneralActions: IMap = {};\n\nconst actionNames: Array = [\n \"Training\",\n \"Field Analysis\",\n \"Recruitment\",\n \"Diplomacy\",\n \"Hyperbolic Regeneration Chamber\",\n \"Incite Violence\",\n];\n\nfor (const actionName of actionNames) {\n GeneralActions[actionName] = new Action({\n name: actionName,\n });\n}\n","// Enum values are lowercased to match css classes\nexport enum Suit {\n Clubs = \"clubs\",\n Diamonds = \"diamonds\",\n Hearts = \"hearts\",\n Spades = \"spades\",\n}\n\nexport class Card {\n constructor(readonly value: number, readonly suit: Suit) {\n if (value < 1 || value > 13) {\n throw new Error(`Card instantiated with improper value: ${value}`);\n }\n }\n\n formatValue(): string {\n switch (this.value) {\n case 1:\n return \"A\";\n case 11:\n return \"J\";\n case 12:\n return \"Q\";\n case 13:\n return \"K\";\n default:\n return `${this.value}`;\n }\n }\n\n isRedSuit(): boolean {\n return this.suit === Suit.Hearts || this.suit === Suit.Diamonds;\n }\n\n getStringRepresentation(): string {\n const value = this.formatValue();\n\n return `${value} of ${this.suit}`;\n }\n}\n","import { IActionIdentifier } from \"./IActionIdentifier\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\ninterface IParams {\n name?: string;\n type?: number;\n}\n\nexport class ActionIdentifier implements IActionIdentifier {\n name = \"\";\n type = -1;\n\n constructor(params: IParams = {}) {\n if (params.name) this.name = params.name;\n if (params.type) this.type = params.type;\n }\n\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ActionIdentifier\", this);\n }\n\n static fromJSON(value: IReviverValue): ActionIdentifier {\n return Generic_fromJSON(ActionIdentifier, value.data);\n }\n}\n\nReviver.constructors.ActionIdentifier = ActionIdentifier;\n","import { BitNodes } from \"../BitNode/BitNode\";\n\nexport class SourceFile {\n info: JSX.Element;\n lvl = 1;\n n: number;\n name: string;\n owned = false;\n\n constructor(number: number, info: JSX.Element) {\n const bitnodeKey = \"BitNode\" + number;\n const bitnode = BitNodes[bitnodeKey];\n if (bitnode == null) {\n throw new Error(\"Invalid Bit Node for this Source File\");\n }\n\n this.n = number;\n this.name = `Source-File ${number}: ${bitnode.name}`;\n this.info = info;\n }\n}\n","import 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 { CONSTANTS } from \"../Constants\";\nimport { Player } from \"../Player\";\nimport { BaseServer } from \"../Server/BaseServer\";\nimport { Server } from \"../Server/Server\";\nimport { RunningScript } from \"./RunningScript\";\nimport { processSingleServerGrowth } from \"../Server/ServerHelpers\";\nimport { GetServer } from \"../Server/AllServers\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { compareArrays } from \"../utils/helpers/compareArrays\";\n\nexport function scriptCalculateOfflineProduction(runningScript: RunningScript): void {\n //The Player object stores the last update time from when we were online\n const thisUpdate = new Date().getTime();\n const lastUpdate = Player.lastUpdate;\n const timePassed = (thisUpdate - lastUpdate) / 1000; //Seconds\n\n //Calculate the \"confidence\" rating of the script's true production. This is based\n //entirely off of time. We will arbitrarily say that if a script has been running for\n //4 hours (14400 sec) then we are completely confident in its ability\n let confidence = runningScript.onlineRunningTime / 14400;\n if (confidence >= 1) {\n confidence = 1;\n }\n\n //Data map: [MoneyStolen, NumTimesHacked, NumTimesGrown, NumTimesWeaken]\n\n // Grow\n for (const hostname of Object.keys(runningScript.dataMap)) {\n if (runningScript.dataMap.hasOwnProperty(hostname)) {\n if (runningScript.dataMap[hostname][2] == 0 || runningScript.dataMap[hostname][2] == null) {\n continue;\n }\n const serv = GetServer(hostname);\n if (serv == null) {\n continue;\n }\n const timesGrown = Math.round(\n ((0.5 * runningScript.dataMap[hostname][2]) / runningScript.onlineRunningTime) * timePassed,\n );\n runningScript.log(`Called on ${serv.hostname} ${timesGrown} times while offline`);\n const host = GetServer(runningScript.server);\n if (host === null) throw new Error(\"getServer of null key?\");\n if (!(serv instanceof Server)) throw new Error(\"trying to grow a non-normal server\");\n const growth = processSingleServerGrowth(serv, timesGrown, Player, host.cpuCores);\n runningScript.log(\n `'${serv.hostname}' grown by ${numeralWrapper.format(growth * 100 - 100, \"0.000000%\")} while offline`,\n );\n }\n }\n\n // Offline EXP gain\n // A script's offline production will always be at most half of its online production.\n const expGain = confidence * (runningScript.onlineExpGained / runningScript.onlineRunningTime) * timePassed;\n Player.gainHackingExp(expGain);\n\n // Update script stats\n runningScript.offlineRunningTime += timePassed;\n runningScript.offlineExpGained += expGain;\n\n // Weaken\n for (const hostname of Object.keys(runningScript.dataMap)) {\n if (runningScript.dataMap.hasOwnProperty(hostname)) {\n if (runningScript.dataMap[hostname][3] == 0 || runningScript.dataMap[hostname][3] == null) {\n continue;\n }\n const serv = GetServer(hostname);\n if (serv == null) {\n continue;\n }\n\n if (!(serv instanceof Server)) throw new Error(\"trying to weaken a non-normal server\");\n const host = GetServer(runningScript.server);\n if (host === null) throw new Error(\"getServer of null key?\");\n const timesWeakened = Math.round(\n ((0.5 * runningScript.dataMap[hostname][3]) / runningScript.onlineRunningTime) * timePassed,\n );\n runningScript.log(`Called weaken() on ${serv.hostname} ${timesWeakened} times while offline`);\n const coreBonus = 1 + (host.cpuCores - 1) / 16;\n serv.weaken(CONSTANTS.ServerWeakenAmount * timesWeakened * coreBonus);\n }\n }\n}\n\n//Returns a RunningScript object matching the filename and arguments on the\n//designated server, and false otherwise\nexport function findRunningScript(\n filename: string,\n args: (string | number | boolean)[],\n server: BaseServer,\n): RunningScript | null {\n for (let i = 0; i < server.runningScripts.length; ++i) {\n if (server.runningScripts[i].filename === filename && compareArrays(server.runningScripts[i].args, args)) {\n return server.runningScripts[i];\n }\n }\n return null;\n}\n\n//Returns a RunningScript object matching the pid on the\n//designated server, and false otherwise\nexport function findRunningScriptByPid(pid: number, server: BaseServer): RunningScript | null {\n for (let i = 0; i < server.runningScripts.length; ++i) {\n if (server.runningScripts[i].pid === pid) {\n return server.runningScripts[i];\n }\n }\n return null;\n}\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { LocationName } from \"../../../Locations/data/LocationNames\";\nimport { Companies } from \"../../../Company/Companies\";\nimport { Company } from \"../../../Company/Company\";\nimport { calculateCompanyWorkStats } from \"../../../Work/formulas/Company\";\nimport { WorkStats } from \"../../../Work/WorkStats\";\nimport { influenceStockThroughCompanyWork } from \"../../../StockMarket/PlayerInfluencing\";\n\ninterface SleeveCompanyWorkParams {\n companyName: string;\n}\n\nexport const isSleeveCompanyWork = (w: Work | null): w is SleeveCompanyWork =>\n w !== null && w.type === WorkType.COMPANY;\n\nexport class SleeveCompanyWork extends Work {\n companyName: string;\n\n constructor(params?: SleeveCompanyWorkParams) {\n super(WorkType.COMPANY);\n this.companyName = params?.companyName ?? LocationName.NewTokyoNoodleBar;\n }\n\n getCompany(): Company {\n const c = Companies[this.companyName];\n if (!c) throw new Error(`Company not found: '${this.companyName}'`);\n return c;\n }\n\n getGainRates(player: IPlayer, sleeve: Sleeve): WorkStats {\n return calculateCompanyWorkStats(player, sleeve, this.getCompany());\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n const company = this.getCompany();\n const gains = this.getGainRates(player, sleeve);\n applySleeveGains(player, sleeve, gains, cycles);\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveCompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveCompanyWork {\n return Generic_fromJSON(SleeveCompanyWork, value.data);\n }\n}\n\nReviver.constructors.SleeveCompanyWork = SleeveCompanyWork;\n","import { PlayerObject } from \"src/PersonObjects/Player/PlayerObject\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { SkillNames } from \"../Bladeburner/data/SkillNames\";\nimport { Skills } from \"../Bladeburner/Skills\";\nimport { CONSTANTS } from \"../Constants\";\nimport { Industries } from \"../Corporation/IndustryData\";\nimport { Exploit } from \"../Exploits/Exploit\";\nimport { Factions } from \"../Faction/Factions\";\nimport { AllGangs } from \"../Gang/AllGangs\";\nimport { GangConstants } from \"../Gang/data/Constants\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"../Hacknet/data/Constants\";\nimport { hasHacknetServers } from \"../Hacknet/HacknetHelpers\";\nimport { HacknetNode } from \"../Hacknet/HacknetNode\";\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { Player } from \"../Player\";\nimport { Programs } from \"../Programs/Programs\";\nimport { GetAllServers, GetServer } from \"../Server/AllServers\";\nimport { SpecialServers } from \"../Server/data/SpecialServers\";\nimport { Server } from \"../Server/Server\";\nimport { Router } from \"../ui/GameRoot\";\nimport { Page } from \"../ui/Router\";\nimport { IMap } from \"../types\";\nimport * as data from \"./AchievementData.json\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { BlackOperationNames } from \"../Bladeburner/data/BlackOperationNames\";\nimport { isClassWork } from \"../Work/ClassWork\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\n// Unable to correctly cast the JSON data into AchievementDataJson type otherwise...\nconst achievementData = ((data)).achievements;\n\nexport interface Achievement {\n ID: string;\n Icon?: string;\n Name?: string;\n Description?: string;\n Secret?: boolean;\n Condition: () => boolean;\n Visible?: () => boolean;\n AdditionalUnlock?: string[]; // IDs of achievements that should be awarded when awarding this one\n}\n\nexport interface PlayerAchievement {\n ID: string;\n unlockedOn?: number;\n}\n\nexport interface AchievementDataJson {\n achievements: IMap;\n}\n\nexport interface AchievementData {\n ID: string;\n Name: string;\n Description: string;\n}\n\nfunction bitNodeFinishedState(): boolean {\n const wd = GetServer(SpecialServers.WorldDaemon);\n if (!(wd instanceof Server)) return false;\n if (wd.backdoorInstalled) return true;\n return (\n Player.bladeburner !== null && Player.bladeburner.blackops.hasOwnProperty(BlackOperationNames.OperationDaedalus)\n );\n}\n\nfunction hasAccessToSF(player: PlayerObject, bn: number): boolean {\n return player.bitNodeN === bn || player.sourceFiles.some((a) => a.n === bn);\n}\n\nfunction knowsAboutBitverse(player: PlayerObject): boolean {\n return player.sourceFiles.some((a) => a.n === 1);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction sfAchievement(): Achievement[] {\n const achs: Achievement[] = [];\n for (let i = 0; i <= 11; i++) {\n for (let j = 1; j <= 3; j++) {\n achs.push({\n ID: `SF${i}.${j}`,\n Condition: () => Player.sourceFileLvl(i) >= j,\n });\n }\n }\n return achs;\n}\n\nexport const achievements: IMap = {\n [FactionNames.CyberSec.toUpperCase()]: {\n ...achievementData[FactionNames.CyberSec.toUpperCase()],\n Icon: \"CSEC\",\n Condition: () => Player.factions.includes(FactionNames.CyberSec),\n },\n [FactionNames.NiteSec.toUpperCase()]: {\n ...achievementData[FactionNames.NiteSec.toUpperCase()],\n Icon: FactionNames.NiteSec,\n Condition: () => Player.factions.includes(FactionNames.NiteSec),\n },\n THE_BLACK_HAND: {\n ...achievementData[\"THE_BLACK_HAND\"],\n Icon: \"TBH\",\n Condition: () => Player.factions.includes(FactionNames.TheBlackHand),\n },\n [FactionNames.BitRunners.toUpperCase()]: {\n ...achievementData[FactionNames.BitRunners.toUpperCase()],\n Icon: FactionNames.BitRunners.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.BitRunners),\n },\n [FactionNames.Daedalus.toUpperCase()]: {\n ...achievementData[FactionNames.Daedalus.toUpperCase()],\n Icon: FactionNames.Daedalus.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.Daedalus),\n },\n THE_COVENANT: {\n ...achievementData[\"THE_COVENANT\"],\n Icon: FactionNames.TheCovenant.toLowerCase().replace(/ /g, \"\"),\n Condition: () => Player.factions.includes(FactionNames.TheCovenant),\n },\n [FactionNames.Illuminati.toUpperCase()]: {\n ...achievementData[FactionNames.Illuminati.toUpperCase()],\n Icon: FactionNames.Illuminati.toLowerCase(),\n Condition: () => Player.factions.includes(FactionNames.Illuminati),\n },\n \"BRUTESSH.EXE\": {\n ...achievementData[\"BRUTESSH.EXE\"],\n Icon: \"p0\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.BruteSSHProgram.name),\n },\n \"FTPCRACK.EXE\": {\n ...achievementData[\"FTPCRACK.EXE\"],\n Icon: \"p1\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.FTPCrackProgram.name),\n },\n //-----------------------------------------------------\n \"RELAYSMTP.EXE\": {\n ...achievementData[\"RELAYSMTP.EXE\"],\n Icon: \"p2\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.RelaySMTPProgram.name),\n },\n \"HTTPWORM.EXE\": {\n ...achievementData[\"HTTPWORM.EXE\"],\n Icon: \"p3\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.HTTPWormProgram.name),\n },\n \"SQLINJECT.EXE\": {\n ...achievementData[\"SQLINJECT.EXE\"],\n Icon: \"p4\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.SQLInjectProgram.name),\n },\n \"FORMULAS.EXE\": {\n ...achievementData[\"FORMULAS.EXE\"],\n Icon: \"formulas\",\n Condition: () => Player.getHomeComputer().programs.includes(Programs.Formulas.name),\n },\n \"SF1.1\": {\n ...achievementData[\"SF1.1\"],\n Icon: \"SF1.1\",\n Visible: () => hasAccessToSF(Player, 1),\n Condition: () => Player.sourceFileLvl(1) >= 1,\n },\n \"SF2.1\": {\n ...achievementData[\"SF2.1\"],\n Icon: \"SF2.1\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.sourceFileLvl(2) >= 1,\n },\n \"SF3.1\": {\n ...achievementData[\"SF3.1\"],\n Icon: \"SF3.1\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.sourceFileLvl(3) >= 1,\n },\n \"SF4.1\": {\n ...achievementData[\"SF4.1\"],\n Icon: \"SF4.1\",\n Visible: () => hasAccessToSF(Player, 4),\n Condition: () => Player.sourceFileLvl(4) >= 1,\n },\n \"SF5.1\": {\n ...achievementData[\"SF5.1\"],\n Icon: \"SF5.1\",\n Visible: () => hasAccessToSF(Player, 5),\n Condition: () => Player.sourceFileLvl(5) >= 1,\n },\n \"SF6.1\": {\n ...achievementData[\"SF6.1\"],\n Icon: \"SF6.1\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.sourceFileLvl(6) >= 1,\n },\n \"SF7.1\": {\n ...achievementData[\"SF7.1\"],\n Icon: \"SF7.1\",\n Visible: () => hasAccessToSF(Player, 7),\n Condition: () => Player.sourceFileLvl(7) >= 1,\n },\n \"SF8.1\": {\n ...achievementData[\"SF8.1\"],\n Icon: \"SF8.1\",\n Visible: () => hasAccessToSF(Player, 8),\n Condition: () => Player.sourceFileLvl(8) >= 1,\n },\n \"SF9.1\": {\n ...achievementData[\"SF9.1\"],\n Icon: \"SF9.1\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => Player.sourceFileLvl(9) >= 1,\n },\n \"SF10.1\": {\n ...achievementData[\"SF10.1\"],\n Icon: \"SF10.1\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () => Player.sourceFileLvl(10) >= 1,\n },\n \"SF11.1\": {\n ...achievementData[\"SF11.1\"],\n Icon: \"SF11.1\",\n Visible: () => hasAccessToSF(Player, 11),\n Condition: () => Player.sourceFileLvl(11) >= 1,\n },\n \"SF12.1\": {\n ...achievementData[\"SF12.1\"],\n Icon: \"SF12.1\",\n Visible: () => hasAccessToSF(Player, 12),\n Condition: () => Player.sourceFileLvl(12) >= 1,\n },\n MONEY_1Q: {\n ...achievementData[\"MONEY_1Q\"],\n Icon: \"$1Q\",\n Condition: () => Player.money >= 1e18,\n },\n MONEY_M1B: {\n ...achievementData[\"MONEY_M1B\"],\n Icon: \"-1b\",\n Secret: true,\n Condition: () => Player.money <= -1e9,\n },\n INSTALL_1: {\n ...achievementData[\"INSTALL_1\"],\n Icon: \"install\",\n Condition: () => Player.augmentations.length >= 1,\n },\n INSTALL_100: {\n ...achievementData[\"INSTALL_100\"],\n Icon: \"install_100\",\n Condition: () => Player.augmentations.length >= 100,\n },\n QUEUE_40: {\n ...achievementData[\"QUEUE_40\"],\n Icon: \"queue40\",\n Condition: () => Player.queuedAugmentations.length >= 40,\n },\n HACKING_100000: {\n ...achievementData[\"HACKING_100000\"],\n Icon: \"hack100000\",\n Condition: () => Player.skills.hacking >= 100000,\n },\n COMBAT_3000: {\n ...achievementData[\"COMBAT_3000\"],\n Icon: \"combat3000\",\n Condition: () =>\n Player.skills.strength >= 3000 &&\n Player.skills.defense >= 3000 &&\n Player.skills.dexterity >= 3000 &&\n Player.skills.agility >= 3000,\n },\n NEUROFLUX_255: {\n ...achievementData[\"NEUROFLUX_255\"],\n Icon: \"nf255\",\n Condition: () => Player.augmentations.some((a) => a.name === AugmentationNames.NeuroFluxGovernor && a.level >= 255),\n },\n NS2: {\n ...achievementData[\"NS2\"],\n Icon: \"ns2\",\n Condition: () => Player.getHomeComputer().scripts.some((s) => s.filename.endsWith(\".js\")),\n },\n FROZE: {\n ...achievementData[\"FROZE\"],\n Icon: \"forze\",\n Condition: () => location.href.includes(\"noScripts\"),\n },\n RUNNING_SCRIPTS_1000: {\n ...achievementData[\"RUNNING_SCRIPTS_1000\"],\n Icon: \"run1000\",\n Condition: (): boolean => {\n let running = 0;\n for (const s of GetAllServers()) {\n running += s.runningScripts.length;\n }\n return running >= 1000;\n },\n },\n DRAIN_SERVER: {\n ...achievementData[\"DRAIN_SERVER\"],\n Icon: \"drain\",\n Condition: (): boolean => {\n for (const s of GetAllServers()) {\n if (s instanceof Server) {\n if (s.moneyMax > 0 && s.moneyAvailable === 0) return true;\n }\n }\n return false;\n },\n },\n MAX_RAM: {\n ...achievementData[\"MAX_RAM\"],\n Icon: \"maxram\",\n Condition: () => Player.getHomeComputer().maxRam === CONSTANTS.HomeComputerMaxRam,\n },\n MAX_CORES: {\n ...achievementData[\"MAX_CORES\"],\n Icon: \"maxcores\",\n Condition: () => Player.getHomeComputer().cpuCores === 8,\n },\n SCRIPTS_30: {\n ...achievementData[\"SCRIPTS_30\"],\n Icon: \"folders\",\n Condition: () => Player.getHomeComputer().scripts.length >= 30,\n },\n KARMA_1000000: {\n ...achievementData[\"KARMA_1000000\"],\n Icon: \"karma\",\n Secret: true,\n Condition: () => Player.karma <= -1e6,\n },\n STOCK_1q: {\n ...achievementData[\"STOCK_1q\"],\n Icon: \"$1Q\",\n Condition: () => Player.moneySourceB.stock >= 1e15,\n },\n DISCOUNT: {\n ...achievementData[\"DISCOUNT\"],\n Icon: \"discount\",\n Condition: (): boolean => {\n const p = GetServer(\"powerhouse-fitness\");\n if (!(p instanceof Server)) return false;\n return p.backdoorInstalled;\n },\n },\n SCRIPT_32GB: {\n ...achievementData[\"SCRIPT_32GB\"],\n Icon: \"bigcost\",\n Condition: () => Player.getHomeComputer().scripts.some((s) => s.ramUsage >= 32),\n },\n FIRST_HACKNET_NODE: {\n ...achievementData[\"FIRST_HACKNET_NODE\"],\n Icon: \"node\",\n Condition: () => !hasHacknetServers(Player) && Player.hacknetNodes.length > 0,\n },\n \"30_HACKNET_NODE\": {\n ...achievementData[\"30_HACKNET_NODE\"],\n Icon: \"hacknet-all\",\n Condition: () => !hasHacknetServers(Player) && Player.hacknetNodes.length >= 30,\n },\n MAX_HACKNET_NODE: {\n ...achievementData[\"MAX_HACKNET_NODE\"],\n Icon: \"hacknet-max\",\n Condition: (): boolean => {\n if (hasHacknetServers(Player)) return false;\n for (const h of Player.hacknetNodes) {\n if (!(h instanceof HacknetNode)) return false;\n if (\n h.ram === HacknetNodeConstants.MaxRam &&\n h.cores === HacknetNodeConstants.MaxCores &&\n h.level === HacknetNodeConstants.MaxLevel\n )\n return true;\n }\n return false;\n },\n },\n HACKNET_NODE_10M: {\n ...achievementData[\"HACKNET_NODE_10M\"],\n Icon: \"hacknet-10m\",\n Condition: () => !hasHacknetServers(Player) && Player.moneySourceB.hacknet >= 10e6,\n },\n REPUTATION_10M: {\n ...achievementData[\"REPUTATION_10M\"],\n Icon: \"reputation\",\n Condition: () => Object.values(Factions).some((f) => f.playerReputation >= 10e6),\n },\n DONATION: {\n ...achievementData[\"DONATION\"],\n Icon: \"donation\",\n Condition: () =>\n Object.values(Factions).some(\n (f) => f.favor >= Math.floor(CONSTANTS.BaseFavorToDonate * BitNodeMultipliers.RepToDonateToFaction),\n ),\n },\n TRAVEL: {\n ...achievementData[\"TRAVEL\"],\n Icon: \"TRAVEL\",\n Condition: () => Player.city !== CityName.Sector12,\n },\n WORKOUT: {\n ...achievementData[\"WORKOUT\"],\n Icon: \"WORKOUT\",\n Condition: () => isClassWork(Player.currentWork),\n },\n TOR: {\n ...achievementData[\"TOR\"],\n Icon: \"TOR\",\n Condition: () => Player.hasTorRouter(),\n },\n HOSPITALIZED: {\n ...achievementData[\"HOSPITALIZED\"],\n Icon: \"OUCH\",\n Condition: () => Player.moneySourceB.hospitalization !== 0,\n },\n GANG: {\n ...achievementData[\"GANG\"],\n Icon: \"GANG\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null,\n },\n FULL_GANG: {\n ...achievementData[\"FULL_GANG\"],\n Icon: \"GANGMAX\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null && Player.gang.members.length === GangConstants.MaximumGangMembers,\n },\n GANG_TERRITORY: {\n ...achievementData[\"GANG_TERRITORY\"],\n Icon: \"GANG100%\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.gang !== null && AllGangs[Player.gang.facName].territory >= 0.999,\n },\n GANG_MEMBER_POWER: {\n ...achievementData[\"GANG_MEMBER_POWER\"],\n Icon: \"GANG10000\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () =>\n Player.gang !== null &&\n Player.gang.members.some(\n (m) =>\n m.hack >= 10000 || m.str >= 10000 || m.def >= 10000 || m.dex >= 10000 || m.agi >= 10000 || m.cha >= 10000,\n ),\n },\n CORPORATION: {\n ...achievementData[\"CORPORATION\"],\n Icon: \"CORP\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null,\n },\n CORPORATION_BRIBE: {\n ...achievementData[\"CORPORATION_BRIBE\"],\n Icon: \"CORPLOBBY\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null && Player.corporation.unlockUpgrades[6] === 1,\n },\n CORPORATION_PROD_1000: {\n ...achievementData[\"CORPORATION_PROD_1000\"],\n Icon: \"CORP1000\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.corporation !== null && Player.corporation.divisions.some((d) => d.prodMult >= 1000),\n },\n CORPORATION_EMPLOYEE_3000: {\n ...achievementData[\"CORPORATION_EMPLOYEE_3000\"],\n Icon: \"CORPCITY\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: (): boolean => {\n if (Player.corporation === null) return false;\n for (const d of Player.corporation.divisions) {\n for (const o of Object.values(d.offices)) {\n if (o === 0) continue;\n if (o.employees.length >= 3000) return true;\n }\n }\n return false;\n },\n },\n CORPORATION_REAL_ESTATE: {\n ...achievementData[\"CORPORATION_REAL_ESTATE\"],\n Icon: \"CORPRE\",\n Name: \"Own the land\",\n Description: \"Expand to the Real Estate division.\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () =>\n Player.corporation !== null && Player.corporation.divisions.some((d) => d.type === Industries.RealEstate),\n },\n INTELLIGENCE_255: {\n ...achievementData[\"INTELLIGENCE_255\"],\n Icon: \"INT255\",\n Visible: () => hasAccessToSF(Player, 5),\n Condition: () => Player.skills.intelligence >= 255,\n },\n BLADEBURNER_DIVISION: {\n ...achievementData[\"BLADEBURNER_DIVISION\"],\n Icon: \"BLADE\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bladeburner !== null,\n },\n BLADEBURNER_OVERCLOCK: {\n ...achievementData[\"BLADEBURNER_OVERCLOCK\"],\n Icon: \"BLADEOVERCLOCK\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () =>\n Player.bladeburner !== null &&\n Player.bladeburner.skills[SkillNames.Overclock] === Skills[SkillNames.Overclock].maxLvl,\n },\n BLADEBURNER_UNSPENT_100000: {\n ...achievementData[\"BLADEBURNER_UNSPENT_100000\"],\n Icon: \"BLADE100K\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bladeburner !== null && Player.bladeburner.skillPoints >= 100000,\n },\n \"4S\": {\n ...achievementData[\"4S\"],\n Icon: \"4S\",\n Condition: () => Player.has4SData,\n },\n FIRST_HACKNET_SERVER: {\n ...achievementData[\"FIRST_HACKNET_SERVER\"],\n Icon: \"HASHNET\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.hacknetNodes.length > 0,\n AdditionalUnlock: [achievementData.FIRST_HACKNET_NODE.ID],\n },\n ALL_HACKNET_SERVER: {\n ...achievementData[\"ALL_HACKNET_SERVER\"],\n Icon: \"HASHNETALL\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.hacknetNodes.length === HacknetServerConstants.MaxServers,\n AdditionalUnlock: [achievementData[\"30_HACKNET_NODE\"].ID],\n },\n MAX_HACKNET_SERVER: {\n ...achievementData[\"MAX_HACKNET_SERVER\"],\n Icon: \"HASHNETALL\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: (): boolean => {\n if (!hasHacknetServers(Player)) return false;\n for (const h of Player.hacknetNodes) {\n if (typeof h !== \"string\") return false;\n const hs = GetServer(h);\n if (!(hs instanceof HacknetServer)) return false;\n if (\n hs.maxRam === HacknetServerConstants.MaxRam &&\n hs.cores === HacknetServerConstants.MaxCores &&\n hs.level === HacknetServerConstants.MaxLevel &&\n hs.cache === HacknetServerConstants.MaxCache\n )\n return true;\n }\n return false;\n },\n AdditionalUnlock: [achievementData.MAX_HACKNET_NODE.ID],\n },\n HACKNET_SERVER_1B: {\n ...achievementData[\"HACKNET_SERVER_1B\"],\n Icon: \"HASHNETMONEY\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () => hasHacknetServers(Player) && Player.moneySourceB.hacknet >= 1e9,\n AdditionalUnlock: [achievementData.HACKNET_NODE_10M.ID],\n },\n MAX_CACHE: {\n ...achievementData[\"MAX_CACHE\"],\n Icon: \"HASHNETCAP\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () =>\n hasHacknetServers(Player) &&\n Player.hashManager.hashes === Player.hashManager.capacity &&\n Player.hashManager.capacity > 0,\n },\n SLEEVE_8: {\n ...achievementData[\"SLEEVE_8\"],\n Icon: \"SLEEVE8\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () => Player.sleeves.length === 8 && Player.sourceFileLvl(10) === 3,\n },\n INDECISIVE: {\n ...achievementData[\"INDECISIVE\"],\n Icon: \"1H\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: (function () {\n let c = 0;\n setInterval(() => {\n if (Router.page() === Page.BitVerse) {\n c++;\n } else {\n c = 0;\n }\n }, 60 * 1000);\n return () => c > 60;\n })(),\n },\n FAST_BN: {\n ...achievementData[\"FAST_BN\"],\n Icon: \"2DAYS\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: () => bitNodeFinishedState() && Player.playtimeSinceLastBitnode < 1000 * 60 * 60 * 24 * 2,\n },\n CHALLENGE_BN1: {\n ...achievementData[\"CHALLENGE_BN1\"],\n Icon: \"BN1+\",\n Visible: () => knowsAboutBitverse(Player),\n Condition: () =>\n Player.bitNodeN === 1 &&\n bitNodeFinishedState() &&\n Player.getHomeComputer().maxRam <= 128 &&\n Player.getHomeComputer().cpuCores === 1,\n },\n CHALLENGE_BN2: {\n ...achievementData[\"CHALLENGE_BN2\"],\n Icon: \"BN2+\",\n Visible: () => hasAccessToSF(Player, 2),\n Condition: () => Player.bitNodeN === 2 && bitNodeFinishedState() && Player.gang === null,\n },\n CHALLENGE_BN3: {\n ...achievementData[\"CHALLENGE_BN3\"],\n Icon: \"BN3+\",\n Visible: () => hasAccessToSF(Player, 3),\n Condition: () => Player.bitNodeN === 3 && bitNodeFinishedState() && Player.corporation === null,\n },\n CHALLENGE_BN6: {\n ...achievementData[\"CHALLENGE_BN6\"],\n Icon: \"BN6+\",\n Visible: () => hasAccessToSF(Player, 6),\n Condition: () => Player.bitNodeN === 6 && bitNodeFinishedState() && Player.bladeburner === null,\n },\n CHALLENGE_BN7: {\n ...achievementData[\"CHALLENGE_BN7\"],\n Icon: \"BN7+\",\n Visible: () => hasAccessToSF(Player, 7),\n Condition: () => Player.bitNodeN === 7 && bitNodeFinishedState() && Player.bladeburner === null,\n },\n CHALLENGE_BN8: {\n ...achievementData[\"CHALLENGE_BN8\"],\n Icon: \"BN8+\",\n Visible: () => hasAccessToSF(Player, 8),\n Condition: () => Player.bitNodeN === 8 && bitNodeFinishedState() && !Player.has4SData && !Player.has4SDataTixApi,\n },\n CHALLENGE_BN9: {\n ...achievementData[\"CHALLENGE_BN9\"],\n Icon: \"BN9+\",\n Visible: () => hasAccessToSF(Player, 9),\n Condition: () =>\n Player.bitNodeN === 9 &&\n bitNodeFinishedState() &&\n Player.moneySourceB.hacknet === 0 &&\n Player.moneySourceB.hacknet_expenses === 0,\n },\n CHALLENGE_BN10: {\n ...achievementData[\"CHALLENGE_BN10\"],\n Icon: \"BN10+\",\n Visible: () => hasAccessToSF(Player, 10),\n Condition: () =>\n Player.bitNodeN === 10 &&\n bitNodeFinishedState() &&\n !Player.sleeves.some(\n (s) =>\n s.augmentations.length > 0 ||\n s.exp.hacking > 0 ||\n s.exp.strength > 0 ||\n s.exp.defense > 0 ||\n s.exp.agility > 0 ||\n s.exp.dexterity > 0 ||\n s.exp.charisma > 0,\n ),\n },\n CHALLENGE_BN12: {\n ...achievementData[\"CHALLENGE_BN12\"],\n Icon: \"BN12+\",\n Visible: () => hasAccessToSF(Player, 12),\n Condition: () => Player.sourceFileLvl(12) >= 50,\n },\n BYPASS: {\n ...achievementData[\"BYPASS\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.Bypass),\n },\n PROTOTYPETAMPERING: {\n ...achievementData[\"PROTOTYPETAMPERING\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.PrototypeTampering),\n },\n UNCLICKABLE: {\n ...achievementData[\"UNCLICKABLE\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.Unclickable),\n },\n UNDOCUMENTEDFUNCTIONCALL: {\n ...achievementData[\"UNDOCUMENTEDFUNCTIONCALL\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.UndocumentedFunctionCall),\n },\n TIMECOMPRESSION: {\n ...achievementData[\"TIMECOMPRESSION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.TimeCompression),\n },\n REALITYALTERATION: {\n ...achievementData[\"REALITYALTERATION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.RealityAlteration),\n },\n N00DLES: {\n ...achievementData[\"N00DLES\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.N00dles),\n },\n EDITSAVEFILE: {\n ...achievementData[\"EDITSAVEFILE\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.EditSaveFile),\n },\n UNACHIEVABLE: {\n ...achievementData[\"UNACHIEVABLE\"],\n Icon: \"SF-1\",\n Secret: true,\n // Hey Players! Yes, you're supposed to modify this to get the achievement!\n Condition: () => false,\n },\n CHALLENGE_BN13: {\n ...achievementData[\"CHALLENGE_BN13\"],\n Icon: \"BN13+\",\n Visible: () => hasAccessToSF(Player, 13),\n Condition: () =>\n Player.bitNodeN === 13 &&\n bitNodeFinishedState() &&\n !Player.augmentations.some((a) => a.name === AugmentationNames.StaneksGift1),\n },\n DEVMENU: {\n ...achievementData[\"DEVMENU\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.YoureNotMeantToAccessThis),\n },\n RAINBOW: {\n ...achievementData[\"RAINBOW\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.INeedARainbow),\n },\n TRUE_RECURSION: {\n ...achievementData[\"TRUE_RECURSION\"],\n Icon: \"SF-1\",\n Secret: true,\n Condition: () => Player.exploits.includes(Exploit.TrueRecursion),\n },\n};\n\n// Steam has a limit of 100 achievement. So these were planned but commented for now.\n// { ID: FactionNames.ECorp.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.ECorp) },\n// { ID: FactionNames.MegaCorp.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.MegaCorp) },\n// { ID: \"BACHMAN_&_ASSOCIATES\", Condition: () => Player.factions.includes(FactionNames.BachmanAssociates) },\n// { ID: \"BLADE_INDUSTRIES\", Condition: () => Player.factions.includes(FactionNames.BladeIndustries) },\n// { ID: FactionNames.NWO.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.NWO) },\n// { ID: \"CLARKE_INCORPORATED\", Condition: () => Player.factions.includes(FactionNames.ClarkeIncorporated) },\n// { ID: \"OMNITEK_INCORPORATED\", Condition: () => Player.factions.includes(FactionNames.OmniTekIncorporated) },\n// { ID: \"FOUR_SIGMA\", Condition: () => Player.factions.includes(FactionNames.FourSigma) },\n// { ID: \"KUAIGONG_INTERNATIONAL\", Condition: () => Player.factions.includes(FactionNames.KuaiGongInternational) },\n// { ID: \"FULCRUM_SECRET_TECHNOLOGIES\", Condition: () => Player.factions.includes(FactionNames.FulcrumSecretTechnologies) },\n// { ID: FactionNames.Aevum.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Aevum) },\n// { ID: FactionNames.Chongqing.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Chongqing) },\n// { ID: FactionNames.Ishima.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Ishima) },\n// { ID: \"NEW_TOKYO\", Condition: () => Player.factions.includes(FactionNames.NewTokyo) },\n// { ID: \"SECTOR-12\", Condition: () => Player.factions.includes(FactionNames.Sector12) },\n// { ID: FactionNames.Volhaven.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Volhaven) },\n// { ID: \"SPEAKERS_FOR_THE_DEAD\", Condition: () => Player.factions.includes(FactionNames.SpeakersForTheDead) },\n// { ID: \"THE_DARK_ARMY\", Condition: () => Player.factions.includes(FactionNames.TheDarkArmy) },\n// { ID: \"THE_SYNDICATE\", Condition: () => Player.factions.includes(FactionNames.TheSyndicate) },\n// { ID: FactionNames.Silhouette.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Silhouette) },\n// { ID: FactionNames.Tetrads.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Tetrads) },\n// { ID: \"SLUM_SNAKES\", Condition: () => Player.factions.includes(FactionNames.SlumSnakes) },\n// { ID: FactionNames.Netburners.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Netburners) },\n// { ID: \"TIAN_DI_HUI\", Condition: () => Player.factions.includes(FactionNames.TianDiHui) },\n// { ID: FactionNames.Bladeburners.toUpperCase(), Condition: () => Player.factions.includes(FactionNames.Bladeburners) },\n// { ID: \"DEEPSCANV1.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.DeepscanV1.name) },\n// { ID: \"DEEPSCANV2.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.DeepscanV2.name) },\n// { ID: \"INFILTRATORS\", Condition: () => Player.factions.includes(FactionNames.Infiltrators) },\n// {\n// ID: \"SERVERPROFILER.EXE\",\n// Condition: () => Player.getHomeComputer().programs.includes(Programs.ServerProfiler.name),\n// },\n// { ID: \"AUTOLINK.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.AutoLink.name) },\n// { ID: \"FLIGHT.EXE\", Condition: () => Player.getHomeComputer().programs.includes(Programs.Flight.name) },\n\nexport function calculateAchievements(): void {\n const playerAchievements = Player.achievements.map((a) => a.ID);\n\n const missingAchievements = Object.values(achievements)\n .filter((a) => !playerAchievements.includes(a.ID) && a.Condition())\n // callback returns array of achievement id and id of any in the additional list, flatmap means we have only a 1D array\n .flatMap((a) => [a.ID, ...(a.AdditionalUnlock || [])]);\n\n for (const id of missingAchievements) {\n Player.giveAchievement(id);\n }\n\n // Write all player's achievements to document for Steam/Electron\n // This could be replaced by \"availableAchievements\"\n // if we don't want to grant the save game achievements to steam but only currently available\n document.achievements = [...Player.achievements.map((a) => a.ID)];\n}\n","export function calculateIntelligenceBonus(intelligence: number, weight = 1): number {\n return 1 + (weight * Math.pow(intelligence, 0.8)) / 600;\n}\n","import { CompanyPosition } from \"./CompanyPosition\";\nimport * as posNames from \"./data/companypositionnames\";\nimport { favorToRep, repToFavor } from \"../Faction/formulas/favor\";\n\nimport { IMap } from \"../types\";\n\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IConstructorParams {\n name: string;\n info: string;\n companyPositions: IMap;\n expMultiplier: number;\n salaryMultiplier: number;\n jobStatReqOffset: number;\n isMegacorp?: boolean;\n}\n\nconst DefaultConstructorParams: IConstructorParams = {\n name: \"\",\n info: \"\",\n companyPositions: {},\n expMultiplier: 1,\n salaryMultiplier: 1,\n jobStatReqOffset: 0,\n};\n\nexport class Company {\n /**\n * Company name\n */\n name: string;\n\n /**\n * Description and general information about company\n */\n info: string;\n\n /**\n * Has faction associated.\n */\n isMegacorp: boolean;\n\n /**\n * Object that holds all available positions in this Company.\n * Position names are held in keys.\n * The values for the keys don't matter, but we'll make them booleans\n *\n * Must match names of Company Positions, defined in data/companypositionnames.ts\n */\n companyPositions: IMap;\n\n /**\n * Company-specific multiplier for earnings\n */\n expMultiplier: number;\n salaryMultiplier: number;\n\n /**\n * The additional levels of stats you need to quality for a job\n * in this company.\n *\n * For example, the base stat requirement for an intern position is 1.\n * But if a company has a offset of 200, then you would need stat(s) of 201\n */\n jobStatReqOffset: number;\n\n /**\n * Properties to track the player's progress in this company\n */\n isPlayerEmployed: boolean;\n playerReputation: number;\n favor: number;\n\n constructor(p: IConstructorParams = DefaultConstructorParams) {\n this.name = p.name;\n this.info = p.info;\n this.companyPositions = p.companyPositions;\n this.expMultiplier = p.expMultiplier;\n this.salaryMultiplier = p.salaryMultiplier;\n this.jobStatReqOffset = p.jobStatReqOffset;\n\n this.isPlayerEmployed = false;\n this.playerReputation = 1;\n this.favor = 0;\n this.isMegacorp = false;\n if (p.isMegacorp) this.isMegacorp = true;\n }\n\n hasPosition(pos: CompanyPosition | string): boolean {\n if (pos instanceof CompanyPosition) {\n return this.companyPositions[pos.name] != null;\n } else {\n return this.companyPositions[pos] != null;\n }\n }\n\n hasAgentPositions(): boolean {\n return this.companyPositions[posNames.AgentCompanyPositions[0]] != null;\n }\n\n hasBusinessConsultantPositions(): boolean {\n return this.companyPositions[posNames.BusinessConsultantCompanyPositions[0]] != null;\n }\n\n hasBusinessPositions(): boolean {\n return this.companyPositions[posNames.BusinessCompanyPositions[0]] != null;\n }\n\n hasEmployeePositions(): boolean {\n return this.companyPositions[posNames.MiscCompanyPositions[1]] != null;\n }\n\n hasITPositions(): boolean {\n return this.companyPositions[posNames.ITCompanyPositions[0]] != null;\n }\n\n hasSecurityPositions(): boolean {\n return this.companyPositions[posNames.SecurityCompanyPositions[2]] != null;\n }\n\n hasSoftwareConsultantPositions(): boolean {\n return this.companyPositions[posNames.SoftwareConsultantCompanyPositions[0]] != null;\n }\n\n hasSoftwarePositions(): boolean {\n return this.companyPositions[posNames.SoftwareCompanyPositions[0]] != null;\n }\n\n hasWaiterPositions(): boolean {\n return this.companyPositions[posNames.MiscCompanyPositions[0]] != null;\n }\n\n gainFavor(): void {\n if (this.favor == null) {\n this.favor = 0;\n }\n this.favor += this.getFavorGain();\n }\n\n getFavorGain(): number {\n if (this.favor == null) {\n this.favor = 0;\n }\n const storedRep = Math.max(0, favorToRep(this.favor));\n const totalRep = storedRep + this.playerReputation;\n const newFavor = repToFavor(totalRep);\n return newFavor - this.favor;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Company\", this);\n }\n\n /**\n * Initiatizes a Company from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Company {\n return Generic_fromJSON(Company, value.data);\n }\n}\n\nReviver.constructors.Company = Company;\n","/**\n * Returns the input array as a comma separated string.\n *\n * Does several things that Array.toString() doesn't do\n * - Adds brackets around the array\n * - Adds quotation marks around strings\n */\nexport function arrayToString(a: unknown[]): string {\n const vals: unknown[] = [];\n for (let i = 0; i < a.length; ++i) {\n let elem: unknown = a[i];\n if (Array.isArray(elem)) {\n elem = arrayToString(elem);\n } else if (typeof elem === \"string\") {\n elem = `\"${elem}\"`;\n }\n vals.push(elem);\n }\n\n return `[${vals.join(\", \")}]`;\n}\n","import React from \"react\";\nimport { MathJax, MathJaxContext } from \"better-react-mathjax\";\n\ninterface IProps {\n children: React.ReactNode;\n}\n\nexport function MathJaxWrapper({ children }: IProps): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n","import { dialogBoxCreate } from \"../../ui/React/DialogBox\";\n\ninterface IError {\n fileName?: string;\n lineNumber?: number;\n}\n\nexport const isIError = (v: unknown): v is IError => {\n if (typeof v !== \"object\" || v == null) return false;\n return v.hasOwnProperty(\"fileName\") && v.hasOwnProperty(\"lineNumber\");\n};\n\nexport function exceptionAlert(e: unknown): void {\n console.error(e);\n let msg = \"\";\n let file = \"UNKNOWN FILE NAME\";\n let line = \"UNKNOWN LINE NUMBER\";\n if (isIError(e)) {\n file = e.fileName ?? file;\n line = e.lineNumber?.toString() ?? line;\n } else {\n msg = String(e);\n }\n dialogBoxCreate(\n \"Caught an exception: \" +\n msg +\n \"
\" +\n \"Filename: \" +\n file +\n \"
\" +\n \"Line Number: \" +\n line +\n \"
\" +\n \"This is a bug, please report to game developer with this \" +\n \"message as well as details about how to reproduce the bug.
\" +\n \"If you want to be safe, I suggest refreshing the game WITHOUT saving so that your \" +\n \"save doesn't get corrupted\",\n );\n}\n","export interface CorporationUnlockUpgrade {\n index: number;\n price: number;\n name: string;\n desc: string;\n}\n\nexport enum CorporationUnlockUpgradeIndex {\n Export = 0,\n SmartSupply = 1,\n MarketResearchDemand = 2,\n MarketDataCompetition = 3,\n VeChain = 4,\n ShadyAccounting = 5,\n GovernmentPartnership = 6,\n WarehouseAPI = 7,\n OfficeAPI = 8,\n}\n\n// Corporation Unlock Upgrades\n// Upgrades for entire corporation, unlocks features, either you have it or you dont\nexport const CorporationUnlockUpgrades: Record = {\n //Lets you export goods\n [CorporationUnlockUpgradeIndex.Export]: {\n index: 0,\n price: 20e9,\n name: \"Export\",\n desc:\n \"Develop infrastructure to export your materials to your other facilities. \" +\n \"This allows you to move materials around between different divisions and cities.\",\n },\n\n //Lets you buy exactly however many required materials you need for production\n [CorporationUnlockUpgradeIndex.SmartSupply]: {\n index: 1,\n price: 25e9,\n name: \"Smart Supply\",\n desc:\n \"Use advanced AI to anticipate your supply needs. \" +\n \"This allows you to purchase exactly however many materials you need for production.\",\n },\n\n //Displays each material/product's demand\n [CorporationUnlockUpgradeIndex.MarketResearchDemand]: {\n index: 2,\n price: 5e9,\n name: \"Market Research - Demand\",\n desc:\n \"Mine and analyze market data to determine the demand of all resources. \" +\n \"The demand attribute, which affects sales, will be displayed for every material and product.\",\n },\n\n //Display's each material/product's competition\n [CorporationUnlockUpgradeIndex.MarketDataCompetition]: {\n index: 3,\n price: 5e9,\n name: \"Market Data - Competition\",\n desc:\n \"Mine and analyze market data to determine how much competition there is on the market \" +\n \"for all resources. The competition attribute, which affects sales, will be displayed for \" +\n \"every material and product.\",\n },\n [CorporationUnlockUpgradeIndex.VeChain]: {\n index: 4,\n price: 10e9,\n name: \"VeChain\",\n desc:\n \"Use AI and blockchain technology to identify where you can improve your supply chain systems. \" +\n \"This upgrade will allow you to view a wide array of useful statistics about your \" +\n \"Corporation.\",\n },\n [CorporationUnlockUpgradeIndex.ShadyAccounting]: {\n index: 5,\n price: 500e12,\n name: \"Shady Accounting\",\n desc:\n \"Utilize unscrupulous accounting practices and pay off government officials to save money \" +\n \"on taxes. This reduces the dividend tax rate by 5%.\",\n },\n [CorporationUnlockUpgradeIndex.GovernmentPartnership]: {\n index: 6,\n price: 2e15,\n name: \"Government Partnership\",\n desc:\n \"Help national governments further their agendas in exchange for lowered taxes. \" +\n \"This reduces the dividend tax rate by 10%\",\n },\n [CorporationUnlockUpgradeIndex.WarehouseAPI]: {\n index: 7,\n price: 50e9,\n name: \"Warehouse API\",\n desc: \"Enables the warehouse API.\",\n },\n [CorporationUnlockUpgradeIndex.OfficeAPI]: {\n index: 8,\n price: 50e9,\n name: \"Office API\",\n desc: \"Enables the office API.\",\n },\n};\n","import { StaticAugmentations } from \"../../Augmentation/StaticAugmentations\";\nimport { GraftableAugmentation } from \"./GraftableAugmentation\";\nimport { IPlayer } from \"../IPlayer\";\n\nexport const getGraftingAvailableAugs = (player: IPlayer): string[] => {\n const augs: string[] = [];\n\n for (const [augName, aug] of Object.entries(StaticAugmentations)) {\n if (aug.isSpecial) continue;\n augs.push(augName);\n }\n\n return augs.filter((augmentation: string) => !player.hasAugmentation(augmentation));\n};\n\nexport const graftingIntBonus = (player: IPlayer): number => {\n return 1 + (player.getIntelligenceBonus(3) - 1) / 3;\n};\n\nexport const calculateGraftingTimeWithBonus = (player: IPlayer, aug: GraftableAugmentation): number => {\n const baseTime = aug.time;\n return baseTime / graftingIntBonus(player);\n};\n","import { BlackOperation } from \"./BlackOperation\";\nimport { IMap } from \"../types\";\nimport { BlackOperationNames } from \"./data/BlackOperationNames\";\n\nexport const BlackOperations: IMap = {};\n\n(function () {\n BlackOperations[BlackOperationNames.OperationTyphoon] = new BlackOperation({\n name: BlackOperationNames.OperationTyphoon,\n baseDifficulty: 2000,\n reqdRank: 2.5e3,\n rankGain: 50,\n rankLoss: 10,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationZero] = new BlackOperation({\n name: BlackOperationNames.OperationZero,\n baseDifficulty: 2500,\n reqdRank: 5e3,\n rankGain: 60,\n rankLoss: 15,\n hpLoss: 50,\n weights: {\n hack: 0.2,\n str: 0.15,\n def: 0.15,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationX] = new BlackOperation({\n name: BlackOperationNames.OperationX,\n baseDifficulty: 3000,\n reqdRank: 7.5e3,\n rankGain: 75,\n rankLoss: 15,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationTitan] = new BlackOperation({\n name: BlackOperationNames.OperationTitan,\n baseDifficulty: 4000,\n reqdRank: 10e3,\n rankGain: 100,\n rankLoss: 20,\n hpLoss: 100,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationAres] = new BlackOperation({\n name: BlackOperationNames.OperationAres,\n baseDifficulty: 5000,\n reqdRank: 12.5e3,\n rankGain: 125,\n rankLoss: 20,\n hpLoss: 200,\n weights: {\n hack: 0,\n str: 0.25,\n def: 0.25,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationArchangel] = new BlackOperation({\n name: BlackOperationNames.OperationArchangel,\n baseDifficulty: 7500,\n reqdRank: 15e3,\n rankGain: 200,\n rankLoss: 20,\n hpLoss: 25,\n weights: {\n hack: 0,\n str: 0.2,\n def: 0.2,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationJuggernaut] = new BlackOperation({\n name: BlackOperationNames.OperationJuggernaut,\n baseDifficulty: 10e3,\n reqdRank: 20e3,\n rankGain: 300,\n rankLoss: 40,\n hpLoss: 300,\n weights: {\n hack: 0,\n str: 0.25,\n def: 0.25,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationRedDragon] = new BlackOperation({\n name: BlackOperationNames.OperationRedDragon,\n baseDifficulty: 12.5e3,\n reqdRank: 25e3,\n rankGain: 500,\n rankLoss: 50,\n hpLoss: 500,\n weights: {\n hack: 0.05,\n str: 0.2,\n def: 0.2,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationK] = new BlackOperation({\n name: BlackOperationNames.OperationK,\n baseDifficulty: 15e3,\n reqdRank: 30e3,\n rankGain: 750,\n rankLoss: 60,\n hpLoss: 1000,\n weights: {\n hack: 0.05,\n str: 0.2,\n def: 0.2,\n dex: 0.25,\n agi: 0.25,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationDeckard] = new BlackOperation({\n name: BlackOperationNames.OperationDeckard,\n baseDifficulty: 20e3,\n reqdRank: 40e3,\n rankGain: 1e3,\n rankLoss: 75,\n hpLoss: 200,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationTyrell] = new BlackOperation({\n name: BlackOperationNames.OperationTyrell,\n baseDifficulty: 25e3,\n reqdRank: 50e3,\n rankGain: 1.5e3,\n rankLoss: 100,\n hpLoss: 500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationWallace] = new BlackOperation({\n name: BlackOperationNames.OperationWallace,\n baseDifficulty: 30e3,\n reqdRank: 75e3,\n rankGain: 2e3,\n rankLoss: 150,\n hpLoss: 1500,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationShoulderOfOrion] = new BlackOperation({\n name: BlackOperationNames.OperationShoulderOfOrion,\n baseDifficulty: 35e3,\n reqdRank: 100e3,\n rankGain: 2.5e3,\n rankLoss: 500,\n hpLoss: 1500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationHyron] = new BlackOperation({\n name: BlackOperationNames.OperationHyron,\n baseDifficulty: 40e3,\n reqdRank: 125e3,\n rankGain: 3e3,\n rankLoss: 1e3,\n hpLoss: 500,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationMorpheus] = new BlackOperation({\n name: BlackOperationNames.OperationMorpheus,\n baseDifficulty: 45e3,\n reqdRank: 150e3,\n rankGain: 4e3,\n rankLoss: 1e3,\n hpLoss: 100,\n weights: {\n hack: 0.05,\n str: 0.15,\n def: 0.15,\n dex: 0.3,\n agi: 0.3,\n cha: 0,\n int: 0.05,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isStealth: true,\n });\n BlackOperations[BlackOperationNames.OperationIonStorm] = new BlackOperation({\n name: BlackOperationNames.OperationIonStorm,\n baseDifficulty: 50e3,\n reqdRank: 175e3,\n rankGain: 5e3,\n rankLoss: 1e3,\n hpLoss: 5000,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationAnnihilus] = new BlackOperation({\n name: BlackOperationNames.OperationAnnihilus,\n baseDifficulty: 55e3,\n reqdRank: 200e3,\n rankGain: 7.5e3,\n rankLoss: 1e3,\n hpLoss: 10e3,\n weights: {\n hack: 0,\n str: 0.24,\n def: 0.24,\n dex: 0.24,\n agi: 0.24,\n cha: 0,\n int: 0.04,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationUltron] = new BlackOperation({\n name: BlackOperationNames.OperationUltron,\n baseDifficulty: 60e3,\n reqdRank: 250e3,\n rankGain: 10e3,\n rankLoss: 2e3,\n hpLoss: 10e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n isKill: true,\n });\n BlackOperations[BlackOperationNames.OperationCenturion] = new BlackOperation({\n name: BlackOperationNames.OperationCenturion,\n baseDifficulty: 70e3,\n reqdRank: 300e3,\n rankGain: 15e3,\n rankLoss: 5e3,\n hpLoss: 10e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n BlackOperations[BlackOperationNames.OperationVindictus] = new BlackOperation({\n name: BlackOperationNames.OperationVindictus,\n baseDifficulty: 75e3,\n reqdRank: 350e3,\n rankGain: 20e3,\n rankLoss: 20e3,\n hpLoss: 20e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n BlackOperations[BlackOperationNames.OperationDaedalus] = new BlackOperation({\n name: BlackOperationNames.OperationDaedalus,\n baseDifficulty: 80e3,\n reqdRank: 400e3,\n rankGain: 40e3,\n rankLoss: 10e3,\n hpLoss: 100e3,\n weights: {\n hack: 0.1,\n str: 0.2,\n def: 0.2,\n dex: 0.2,\n agi: 0.2,\n cha: 0,\n int: 0.1,\n },\n decays: {\n hack: 0.6,\n str: 0.8,\n def: 0.8,\n dex: 0.8,\n agi: 0.8,\n cha: 0,\n int: 0.75,\n },\n });\n})();\n","import { Fragment, FragmentById } from \"./Fragment\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IActiveFragmentParams {\n x: number;\n y: number;\n rotation: number;\n fragment: Fragment;\n}\n\nexport class ActiveFragment {\n id: number;\n highestCharge: number;\n numCharge: number;\n rotation: number;\n x: number;\n y: number;\n\n constructor(params?: IActiveFragmentParams) {\n if (params) {\n this.id = params.fragment.id;\n this.x = params.x;\n this.y = params.y;\n this.highestCharge = 0;\n this.numCharge = 0;\n this.rotation = params.rotation;\n } else {\n this.id = -1;\n this.x = -1;\n this.y = -1;\n this.highestCharge = 0;\n this.numCharge = 0;\n this.rotation = 0;\n }\n }\n\n collide(other: ActiveFragment): boolean {\n const thisFragment = this.fragment();\n const otherFragment = other.fragment();\n // These 2 variables converts 'this' local coordinates to world to other local.\n const dx: number = other.x - this.x;\n const dy: number = other.y - this.y;\n const fragSize = Math.max(thisFragment.shape.length, thisFragment.shape[0].length);\n for (let j = 0; j < fragSize; j++) {\n for (let i = 0; i < fragSize; i++) {\n if (thisFragment.fullAt(i, j, this.rotation) && otherFragment.fullAt(i - dx, j - dy, other.rotation))\n return true;\n }\n }\n\n return false;\n }\n\n fragment(): Fragment {\n const fragment = FragmentById(this.id);\n if (fragment === null) throw new Error(\"ActiveFragment id refers to unknown Fragment.\");\n return fragment;\n }\n\n fullAt(worldX: number, worldY: number): boolean {\n return this.fragment().fullAt(worldX - this.x, worldY - this.y, this.rotation);\n }\n\n neighboors(): number[][] {\n return this.fragment()\n .neighboors(this.rotation)\n .map((cell) => [this.x + cell[0], this.y + cell[1]]);\n }\n\n copy(): ActiveFragment {\n return Object.assign({}, this);\n }\n\n /**\n * Serialize an active fragment to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"ActiveFragment\", this);\n }\n\n /**\n * Initializes an acive fragment from a JSON save state\n */\n static fromJSON(value: IReviverValue): ActiveFragment {\n return Generic_fromJSON(ActiveFragment, value.data);\n }\n}\n\nReviver.constructors.ActiveFragment = ActiveFragment;\n","export enum GameOptionsTab {\n SYSTEM,\n INTERFACE,\n GAMEPLAY,\n MISC,\n REMOTE_API,\n}\n","import { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IPerson } from \"../PersonObjects/IPerson\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { CrimeType } from \"../utils/WorkType\";\nimport { CrimeWork } from \"../Work/CrimeWork\";\n\ninterface IConstructorParams {\n hacking_success_weight?: number;\n strength_success_weight?: number;\n defense_success_weight?: number;\n dexterity_success_weight?: number;\n agility_success_weight?: number;\n charisma_success_weight?: number;\n hacking_exp?: number;\n strength_exp?: number;\n defense_exp?: number;\n dexterity_exp?: number;\n agility_exp?: number;\n charisma_exp?: number;\n intelligence_exp?: number;\n\n kills?: number;\n}\n\nexport class Crime {\n // Number representing the difficulty of the crime. Used for success chance calculations\n difficulty = 0;\n\n // Amount of karma lost for SUCCESSFULLY committing this crime\n karma = 0;\n\n // How many people die as a result of this crime\n kills = 0;\n\n // How much money is given by the\n money = 0;\n\n // Name of crime\n name = \"\";\n\n // Name of crime as it appears on work screen: \"You are attempting...\"\n workName = \"\";\n\n // Milliseconds it takes to attempt the crime\n time = 0;\n\n // Corresponding type in CONSTANTS. Contains a description for the crime activity\n type: CrimeType;\n\n // Weighting factors that determine how stats affect the success rate of this crime\n hacking_success_weight = 0;\n strength_success_weight = 0;\n defense_success_weight = 0;\n dexterity_success_weight = 0;\n agility_success_weight = 0;\n charisma_success_weight = 0;\n\n // How much stat experience is granted by this crime\n hacking_exp = 0;\n strength_exp = 0;\n defense_exp = 0;\n dexterity_exp = 0;\n agility_exp = 0;\n charisma_exp = 0;\n intelligence_exp = 0;\n\n constructor(\n name = \"\",\n workName = \"\",\n type: CrimeType,\n time = 0,\n money = 0,\n difficulty = 0,\n karma = 0,\n params: IConstructorParams = {},\n ) {\n this.name = name;\n this.workName = workName;\n this.type = type;\n this.time = time;\n this.money = money;\n this.difficulty = difficulty;\n this.karma = karma;\n\n this.hacking_success_weight = params.hacking_success_weight ? params.hacking_success_weight : 0;\n this.strength_success_weight = params.strength_success_weight ? params.strength_success_weight : 0;\n this.defense_success_weight = params.defense_success_weight ? params.defense_success_weight : 0;\n this.dexterity_success_weight = params.dexterity_success_weight ? params.dexterity_success_weight : 0;\n this.agility_success_weight = params.agility_success_weight ? params.agility_success_weight : 0;\n this.charisma_success_weight = params.charisma_success_weight ? params.charisma_success_weight : 0;\n\n this.hacking_exp = params.hacking_exp ? params.hacking_exp : 0;\n this.strength_exp = params.strength_exp ? params.strength_exp : 0;\n this.defense_exp = params.defense_exp ? params.defense_exp : 0;\n this.dexterity_exp = params.dexterity_exp ? params.dexterity_exp : 0;\n this.agility_exp = params.agility_exp ? params.agility_exp : 0;\n this.charisma_exp = params.charisma_exp ? params.charisma_exp : 0;\n this.intelligence_exp = params.intelligence_exp ? params.intelligence_exp : 0;\n\n this.kills = params.kills ? params.kills : 0;\n }\n\n commit(p: IPlayer, div = 1, workerScript: WorkerScript | null = null): number {\n if (div <= 0) {\n div = 1;\n }\n p.startWork(\n new CrimeWork({\n crimeType: this.type,\n singularity: workerScript !== null,\n }),\n );\n\n return this.time;\n }\n\n successRate(p: IPerson): number {\n let chance: number =\n this.hacking_success_weight * p.skills.hacking +\n this.strength_success_weight * p.skills.strength +\n this.defense_success_weight * p.skills.defense +\n this.dexterity_success_weight * p.skills.dexterity +\n this.agility_success_weight * p.skills.agility +\n this.charisma_success_weight * p.skills.charisma +\n CONSTANTS.IntelligenceCrimeWeight * p.skills.intelligence;\n chance /= CONSTANTS.MaxSkillLevel;\n chance /= this.difficulty;\n chance *= p.mults.crime_success;\n chance *= p.getIntelligenceBonus(1);\n\n return Math.min(chance, 1);\n }\n}\n","import { 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 { Hashes } from \"./Hashes\";\n\nexport function HashRate({ hashes }: { hashes: number }): React.ReactElement {\n return ;\n}\n","import { MessageFilenames } from \"./MessageHelpers\";\n\nexport class Message {\n // Name of Message file\n filename: MessageFilenames;\n\n // The text contains in the Message\n msg: string;\n\n constructor(filename: MessageFilenames, msg: string) {\n this.filename = filename;\n this.msg = msg;\n }\n}\n","/**\n * React Component for a button that's used to apply for a job\n */\nimport * as React from \"react\";\n\nimport { Company } from \"../../Company/Company\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport { getJobRequirementText } from \"../../Company/GetJobRequirementText\";\n\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\ntype IProps = {\n company: Company;\n entryPosType: CompanyPosition;\n onClick: (e: React.MouseEvent) => void;\n text: string;\n};\n\nexport function ApplyToJobButton(props: IProps): React.ReactElement {\n const player = use.Player();\n\n function getJobRequirementTooltip(): string {\n const pos = player.getNextCompanyPosition(props.company, props.entryPosType);\n if (pos == null) {\n return \"\";\n }\n\n if (!props.company.hasPosition(pos)) {\n return \"\";\n }\n\n return getJobRequirementText(props.company, pos, true);\n }\n\n return (\n <>\n }>\n \n \n >\n );\n}\n","// The Research Map is an object that holds all Corporation Research objects\n// as values. They are identified by their names\nimport { Research, IConstructorParams } from \"./Research\";\nimport { researchMetadata } from \"./data/ResearchMetadata\";\nimport { IMap } from \"../types\";\n\nexport const ResearchMap: IMap = {};\n\nfunction addResearch(p: IConstructorParams): void {\n if (ResearchMap[p.name] != null) {\n console.warn(`Duplicate Research being defined: ${p.name}`);\n }\n ResearchMap[p.name] = new Research(p);\n}\n\nfor (const metadata of researchMetadata) {\n addResearch(metadata);\n}\n","/**\n * Event emitter that triggers when scripts are started/stopped\n */\nimport { EventEmitter } from \"../utils/EventEmitter\";\n\nexport const WorkerScriptStartStopEventEmitter = new EventEmitter<[]>();\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { FactionWorkType } from \"../../../Work/data/FactionWorkType\";\nimport { FactionNames } from \"../../../Faction/data/FactionNames\";\nimport { Factions } from \"../../../Faction/Factions\";\nimport { calculateFactionExp } from \"../../../Work/formulas/Faction\";\nimport { Faction } from \"../../../Faction/Faction\";\nimport {\n getFactionFieldWorkRepGain,\n getFactionSecurityWorkRepGain,\n getHackingWorkRepGain,\n} from \"../../../PersonObjects/formulas/reputation\";\nimport { scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\nimport { BitNodeMultipliers } from \"../../../BitNode/BitNodeMultipliers\";\n\ninterface SleeveFactionWorkParams {\n factionWorkType: FactionWorkType;\n factionName: string;\n}\n\nexport const isSleeveFactionWork = (w: Work | null): w is SleeveFactionWork =>\n w !== null && w.type === WorkType.FACTION;\n\nexport class SleeveFactionWork extends Work {\n factionWorkType: FactionWorkType;\n factionName: string;\n\n constructor(params?: SleeveFactionWorkParams) {\n super(WorkType.FACTION);\n this.factionWorkType = params?.factionWorkType ?? FactionWorkType.HACKING;\n this.factionName = params?.factionName ?? FactionNames.Sector12;\n }\n\n getExpRates(sleeve: Sleeve): WorkStats {\n return scaleWorkStats(calculateFactionExp(sleeve, this.factionWorkType), sleeve.shockBonus());\n }\n\n getReputationRate(sleeve: Sleeve): number {\n const faction = this.getFaction();\n const repFormulas = {\n [FactionWorkType.HACKING]: getHackingWorkRepGain,\n [FactionWorkType.FIELD]: getFactionFieldWorkRepGain,\n [FactionWorkType.SECURITY]: getFactionSecurityWorkRepGain,\n };\n return (\n repFormulas[this.factionWorkType](sleeve, faction.favor) *\n sleeve.shockBonus() *\n BitNodeMultipliers.FactionWorkRepGain\n );\n }\n\n getFaction(): Faction {\n const f = Factions[this.factionName];\n if (!f) throw new Error(`Faction work started with invalid / unknown faction: '${this.factionName}'`);\n return f;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (player.gang) {\n if (this.factionName === player.gang.facName) {\n sleeve.stopWork(player);\n return 0;\n }\n }\n\n const exp = this.getExpRates(sleeve);\n applySleeveGains(player, sleeve, exp, cycles);\n const rep = this.getReputationRate(sleeve);\n this.getFaction().playerReputation += rep;\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n factionWorkType: this.factionWorkType,\n factionName: this.factionName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveFactionWork\", this);\n }\n\n /**\n * Initiatizes a FactionWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveFactionWork {\n return Generic_fromJSON(SleeveFactionWork, value.data);\n }\n}\n\nReviver.constructors.SleeveFactionWork = SleeveFactionWork;\n","import { Player } from \"./Player\";\nimport { Router } from \"./ui/GameRoot\";\nimport { removeLeadingSlash } from \"./Terminal/DirectoryHelpers\";\nimport { Terminal } from \"./Terminal\";\nimport { SnackbarEvents, ToastVariant } from \"./ui/React/Snackbar\";\nimport { IMap, IReturnStatus } from \"./types\";\nimport { GetServer } from \"./Server/AllServers\";\nimport { ImportPlayerData, SaveData, saveObject } from \"./SaveObject\";\nimport { Settings } from \"./Settings/Settings\";\nimport { exportScripts } from \"./Terminal/commands/download\";\nimport { CONSTANTS } from \"./Constants\";\nimport { hash } from \"./hash/hash\";\n\ninterface IReturnWebStatus extends IReturnStatus {\n data?: Record;\n}\n\ndeclare global {\n interface Window {\n appNotifier: {\n terminal: (message: string, type?: string) => void;\n toast: (message: string, type: ToastVariant, duration?: number) => void;\n };\n appSaveFns: {\n triggerSave: () => Promise;\n triggerGameExport: () => void;\n triggerScriptsExport: () => void;\n getSaveData: () => { save: string; fileName: string };\n getSaveInfo: (base64save: string) => Promise;\n pushSaveData: (base64save: string, automatic?: boolean) => void;\n };\n electronBridge: {\n send: (channel: string, data?: unknown) => void;\n receive: (channel: string, func: (...args: unknown[]) => void) => void;\n };\n }\n interface Document {\n getFiles: () => IReturnWebStatus;\n deleteFile: (filename: string) => IReturnWebStatus;\n saveFile: (filename: string, code: string) => IReturnWebStatus;\n }\n}\n\nexport function initElectron(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(\" electron/\") > -1) {\n // Electron-specific code\n document.achievements = [];\n initWebserver();\n initAppNotifier();\n initSaveFunctions();\n initElectronBridge();\n }\n}\n\nfunction initWebserver(): void {\n function normalizeFileName(filename: string): string {\n filename = filename.replace(/\\/\\/+/g, \"/\");\n filename = removeLeadingSlash(filename);\n if (filename.includes(\"/\")) {\n filename = \"/\" + removeLeadingSlash(filename);\n }\n return filename;\n }\n\n document.getFiles = function (): IReturnWebStatus {\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n return {\n res: true,\n data: {\n files: home.scripts.map((script) => ({\n filename: script.filename,\n code: script.code,\n ramUsage: script.ramUsage,\n })),\n },\n };\n };\n\n document.deleteFile = function (filename: string): IReturnWebStatus {\n filename = normalizeFileName(filename);\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n return home.removeFile(filename);\n };\n\n document.saveFile = function (filename: string, code: string): IReturnWebStatus {\n filename = normalizeFileName(filename);\n\n code = Buffer.from(code, \"base64\").toString();\n const home = GetServer(\"home\");\n if (home === null) {\n return {\n res: false,\n msg: \"Home server does not exist.\",\n };\n }\n const { success, overwritten } = home.writeToScriptFile(Player, filename, code);\n let script;\n if (success) {\n script = home.getScript(filename);\n }\n return {\n res: success,\n data: {\n overwritten,\n ramUsage: script?.ramUsage,\n },\n };\n };\n}\n\n// Expose certain alert functions to allow the wrapper to sends message to the game\nfunction initAppNotifier(): void {\n const funcs = {\n terminal: (message: string, type?: string) => {\n const typesFn: IMap<(s: string) => void> = {\n info: Terminal.info,\n warn: Terminal.warn,\n error: Terminal.error,\n success: Terminal.success,\n };\n let fn;\n if (type) fn = typesFn[type];\n if (!fn) fn = Terminal.print;\n fn.bind(Terminal)(message);\n },\n toast: (message: string, type: ToastVariant, duration = 2000) => SnackbarEvents.emit(message, type, duration),\n };\n\n // Will be consumed by the electron wrapper.\n window.appNotifier = funcs;\n}\n\nfunction initSaveFunctions(): void {\n const funcs = {\n triggerSave: (): Promise => saveObject.saveGame(true),\n triggerGameExport: (): void => {\n try {\n saveObject.exportGame();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export game.\", ToastVariant.ERROR, 2000);\n }\n },\n triggerScriptsExport: (): void => exportScripts(\"*\", Player.getHomeComputer()),\n getSaveData: (): { save: string; fileName: string } => {\n return {\n save: saveObject.getSaveString(Settings.ExcludeRunningScriptsFromSave),\n fileName: saveObject.getSaveFileName(),\n };\n },\n getSaveInfo: async (base64save: string): Promise => {\n try {\n const data = await saveObject.getImportDataFromString(base64save);\n return data.playerData;\n } catch (error) {\n console.error(error);\n return;\n }\n },\n pushSaveData: (base64save: string, automatic = false): void => Router.toImportSave(base64save, automatic),\n };\n\n // Will be consumed by the electron wrapper.\n window.appSaveFns = funcs;\n}\n\nfunction initElectronBridge(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.receive(\"get-save-data-request\", () => {\n const data = window.appSaveFns.getSaveData();\n bridge.send(\"get-save-data-response\", data);\n });\n bridge.receive(\"get-save-info-request\", async (save: unknown) => {\n if (typeof save !== \"string\") throw new Error(\"Error while trying to get save info\");\n const data = await window.appSaveFns.getSaveInfo(save);\n bridge.send(\"get-save-info-response\", data);\n });\n bridge.receive(\"push-save-request\", (params: unknown) => {\n if (typeof params !== \"object\") throw new Error(\"Error trying to push save request\");\n const { save, automatic = false } = params as { save: string; automatic: boolean };\n window.appSaveFns.pushSaveData(save, automatic);\n });\n bridge.receive(\"trigger-save\", () => {\n return window.appSaveFns\n .triggerSave()\n .then(() => {\n bridge.send(\"save-completed\");\n })\n .catch((error: unknown) => {\n console.error(error);\n SnackbarEvents.emit(\"Could not save game.\", ToastVariant.ERROR, 2000);\n });\n });\n bridge.receive(\"trigger-game-export\", () => {\n try {\n window.appSaveFns.triggerGameExport();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export game.\", ToastVariant.ERROR, 2000);\n }\n });\n bridge.receive(\"trigger-scripts-export\", () => {\n try {\n window.appSaveFns.triggerScriptsExport();\n } catch (error) {\n console.error(error);\n SnackbarEvents.emit(\"Could not export scripts.\", ToastVariant.ERROR, 2000);\n }\n });\n}\n\nexport function pushGameSaved(data: SaveData): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-game-saved\", data);\n}\n\nexport function pushGameReady(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n // Send basic information to the electron wrapper\n bridge.send(\"push-game-ready\", {\n player: {\n identifier: Player.identifier,\n playtime: Player.totalPlaytime,\n lastSave: Player.lastSave,\n },\n game: {\n version: CONSTANTS.VersionString,\n hash: hash(),\n },\n });\n}\n\nexport function pushImportResult(wasImported: boolean): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-import-result\", { wasImported });\n pushDisableRestore();\n}\n\nexport function pushDisableRestore(): void {\n const bridge = window.electronBridge;\n if (!bridge) return;\n\n bridge.send(\"push-disable-restore\", { duration: 1000 * 60 });\n}\n","import { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { Work, WorkType } from \"./Work\";\nimport { Program } from \"../Programs/Program\";\n\nexport const isCreateProgramWork = (w: Work | null): w is CreateProgramWork =>\n w !== null && w.type === WorkType.CREATE_PROGRAM;\n\ninterface CreateProgramWorkParams {\n programName: string;\n singularity: boolean;\n player: IPlayer;\n}\n\nexport class CreateProgramWork extends Work {\n programName: string;\n // amount of effective work completed on the program (time boosted by skills).\n unitCompleted: number;\n\n constructor(params?: CreateProgramWorkParams) {\n super(WorkType.CREATE_PROGRAM, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.programName = params?.programName ?? \"\";\n\n if (params?.player) {\n const player = params.player;\n for (let i = 0; i < player.getHomeComputer().programs.length; ++i) {\n const programFile = player.getHomeComputer().programs[i];\n if (programFile.startsWith(this.programName) && programFile.endsWith(\"%-INC\")) {\n const res = programFile.split(\"-\");\n if (res.length != 3) {\n break;\n }\n const percComplete = Number(res[1].slice(0, -1));\n if (isNaN(percComplete) || percComplete < 0 || percComplete >= 100) {\n break;\n }\n this.unitCompleted = (percComplete / 100) * this.unitNeeded();\n player.getHomeComputer().programs.splice(i, 1);\n }\n }\n }\n }\n\n unitNeeded(): number {\n return this.getProgram().create?.time ?? 0;\n }\n\n getProgram(): Program {\n const p = Object.values(Programs).find((p) => p.name.toLowerCase() === this.programName.toLowerCase());\n if (!p) throw new Error(\"Create program work started with invalid program \" + this.programName);\n return p;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager, true)) {\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, true)) {\n focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n return scaleWorkStats(calculateCompanyWorkStats(player, player, this.getCompany()), focusBonus);\n }\n\n process(player: IPlayer, cycles: number): boolean {\n this.cyclesWorked += cycles;\n const company = this.getCompany();\n const gains = this.getGainRates(player);\n applyWorkStats(player, player, gains, cycles, \"work\");\n company.playerReputation += gains.reputation * cycles;\n influenceStockThroughCompanyWork(company, gains.reputation, cycles);\n return false;\n }\n finish(): void {\n if (!this.singularity) {\n dialogBoxCreate(\n <>\n You finished working for {this.companyName}\n \n You have reputation with them.\n >,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n companyName: this.companyName,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"CompanyWork\", this);\n }\n\n /**\n * Initiatizes a CompanyWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): CompanyWork {\n return Generic_fromJSON(CompanyWork, value.data);\n }\n}\n\nReviver.constructors.CompanyWork = CompanyWork;\n","import { Paper, Typography } from \"@mui/material\";\nimport React from \"react\";\n\ninterface IProps {\n children: React.ReactNode;\n title: string;\n}\n\nexport const GameOptionsPage = (props: IProps): React.ReactElement => {\n return (\n \n {props.title}\n {props.children}\n \n );\n};\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n favor: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Favor({ favor }: { favor: number | string }): React.ReactElement {\n const classes = useStyles();\n return {typeof favor === \"number\" ? numeralWrapper.formatFavor(favor) : favor};\n}\n","import { EventEmitter } from \"../utils/EventEmitter\";\nexport const TerminalEvents = new EventEmitter<[]>();\nexport const TerminalClearEvents = new EventEmitter<[]>();\n","/**\n * Helper functions for determine whether Limit and Stop orders should\n * be executed (and executing them)\n */\nimport { buyStock, sellStock, shortStock, sellShort } from \"./BuyingAndSelling\";\nimport { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { Stock } from \"./Stock\";\n\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\n\nimport * as React from \"react\";\n\nexport interface IProcessOrderRefs {\n stockMarket: IStockMarket;\n symbolToStockMap: IMap;\n}\n\n/**\n * Search for all orders of a specific type and execute them if appropriate\n * @param {Stock} stock - Stock for which orders should be processed\n * @param {OrderTypes} orderType - Type of order to check (Limit/Stop buy/sell)\n * @param {PositionTypes} posType - Long or short\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nexport function processOrders(\n stock: Stock,\n orderType: OrderTypes,\n posType: PositionTypes,\n refs: IProcessOrderRefs,\n): void {\n const orderBook = refs.stockMarket[\"Orders\"];\n if (orderBook == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(refs.stockMarket)) {\n const stock = refs.stockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n refs.stockMarket[\"Orders\"] = orders;\n return; // Newly created, so no orders to process\n }\n let stockOrders = orderBook[stock.symbol];\n if (stockOrders == null || !(stockOrders.constructor === Array)) {\n console.error(`Invalid Order book for ${stock.symbol} in processOrders(): ${stockOrders}`);\n stockOrders = [];\n return;\n }\n\n for (const order of stockOrders) {\n if (order.type === orderType && order.pos === posType) {\n switch (order.type) {\n case OrderTypes.LimitBuy:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.LimitSell:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopBuy:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n }\n }\n}\n\n/**\n * Execute a Stop or Limit Order.\n * @param {Order} order - Order being executed\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nfunction executeOrder(order: Order, refs: IProcessOrderRefs): void {\n const stock = refs.symbolToStockMap[order.stockSymbol];\n if (!(stock instanceof Stock)) {\n console.error(`Could not find stock for this order: ${order.stockSymbol}`);\n return;\n }\n const stockMarket = refs.stockMarket;\n const orderBook = stockMarket[\"Orders\"];\n const stockOrders = orderBook[stock.symbol];\n\n // When orders are executed, the buying and selling functions shouldn't\n // emit popup dialog boxes. This options object configures the functions for that\n const opts = {\n suppressDialog: true,\n };\n\n let res = true;\n let isBuy = false;\n switch (order.type) {\n case OrderTypes.LimitBuy:\n case OrderTypes.StopBuy:\n isBuy = true;\n if (order.pos === PositionTypes.Long) {\n res = buyStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = shortStock(stock, order.shares, null, opts) && res;\n }\n break;\n case OrderTypes.LimitSell:\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long) {\n res = sellStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = sellShort(stock, order.shares, null, opts) && res;\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n\n // Position type, for logging/message purposes\n const pos = order.pos === PositionTypes.Long ? \"Long\" : \"Short\";\n\n if (res) {\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n if (!Settings.SuppressTIXPopup) {\n dialogBoxCreate(\n <>\n {order.type} for {stock.symbol} @ ({pos}) was filled (\n {numeralWrapper.formatShares(Math.round(order.shares))} shares)\n >,\n );\n }\n return;\n }\n }\n\n console.error(\"Could not find the following Order in Order Book: \");\n console.error(order);\n } else if (isBuy) {\n dialogBoxCreate(\n <>\n Failed to execute {order.type} for {stock.symbol} @ ({pos}). This is most likely\n because you do not have enough money or the order would exceed the stock's maximum number of shares\n >,\n );\n }\n}\n","import { IMap } from \"../types\";\nimport * as predefined from \"./data\";\n\nexport interface ITheme {\n [key: string]: string | undefined;\n primarylight: string;\n primary: string;\n primarydark: string;\n successlight: string;\n success: string;\n successdark: string;\n errorlight: string;\n error: string;\n errordark: string;\n secondarylight: string;\n secondary: string;\n secondarydark: string;\n warninglight: string;\n warning: string;\n warningdark: string;\n infolight: string;\n info: string;\n infodark: string;\n welllight: string;\n well: string;\n white: string;\n black: string;\n hp: string;\n money: string;\n hack: string;\n combat: string;\n cha: string;\n int: string;\n rep: string;\n disabled: string;\n backgroundprimary: string;\n backgroundsecondary: string;\n button: string;\n}\n\nexport interface IPredefinedTheme {\n colors: ITheme;\n name: string;\n credit: string;\n screenshot: string;\n description: string;\n reference?: string;\n}\n\nexport const defaultTheme: ITheme = {\n ...predefined.Default.colors,\n};\n\nexport const getPredefinedThemes = (): IMap => ({\n ...predefined,\n});\n","import { 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, true)) {\n //Get the world daemon required hacking level\n const worldDaemon = GetServer(SpecialServers.WorldDaemon);\n if (!(worldDaemon instanceof Server)) {\n throw new Error(\"The world daemon is not a server???? Please un-break reality\");\n }\n //If the daemon can be hacked, send the player icarus.msg\n if (Player.skills.hacking >= worldDaemon.requiredHackingSkill) {\n sendMessage(redpill, Player.sourceFiles.length === 0);\n }\n //If the daemon cannot be hacked, send the player truthgazer.msg a single time.\n else if (!recvd(truthGazer)) {\n sendMessage(truthGazer);\n }\n } else if (!recvd(jumper0) && Player.skills.hacking >= 25) {\n sendMessage(jumper0);\n const flightName = Programs.Flight.name;\n const homeComp = Player.getHomeComputer();\n if (!homeComp.programs.includes(flightName)) {\n homeComp.programs.push(flightName);\n }\n } else if (!recvd(jumper1) && Player.skills.hacking >= 40) {\n sendMessage(jumper1);\n } else if (!recvd(cybersecTest) && Player.skills.hacking >= 50) {\n sendMessage(cybersecTest);\n } else if (!recvd(jumper2) && Player.skills.hacking >= 175) {\n sendMessage(jumper2);\n } else if (!recvd(nitesecTest) && Player.skills.hacking >= 200) {\n sendMessage(nitesecTest);\n } else if (!recvd(jumper3) && Player.skills.hacking >= 350) {\n sendMessage(jumper3);\n } else if (!recvd(jumper4) && Player.skills.hacking >= 490) {\n sendMessage(jumper4);\n } else if (!recvd(bitrunnersTest) && Player.skills.hacking >= 500) {\n sendMessage(bitrunnersTest);\n }\n}\n\nexport enum MessageFilenames {\n Jumper0 = \"j0.msg\",\n Jumper1 = \"j1.msg\",\n Jumper2 = \"j2.msg\",\n Jumper3 = \"j3.msg\",\n Jumper4 = \"j4.msg\",\n CyberSecTest = \"csec-test.msg\",\n NiteSecTest = \"nitesec-test.msg\",\n BitRunnersTest = \"19dfj3l1nd.msg\",\n TruthGazer = \"truthgazer.msg\",\n RedPill = \"icarus.msg\",\n}\n\n//Reset\nconst Messages: Record = {\n //jump3R Messages\n [MessageFilenames.Jumper0]: new Message(\n MessageFilenames.Jumper0,\n \"I know you can sense it. I know you're searching for it. \" +\n \"It's why you spend night after \" +\n \"night at your computer.
It's real, I've seen it. And I can \" +\n \"help you find it. But not right now. You're not ready yet.
\" +\n \"Use this program to track your progress
\" +\n \"The fl1ght.exe program was added to your home computer
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper1]: new Message(\n MessageFilenames.Jumper1,\n `Soon you will be contacted by a hacking group known as ${FactionNames.NiteSec}. ` +\n \"They can help you with your search.
\" +\n \"You should join them, garner their favor, and \" +\n \"exploit them for their Augmentations. But do not trust them. \" +\n \"They are not what they seem. No one is.
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper2]: new Message(\n MessageFilenames.Jumper2,\n \"Do not try to save the world. There is no world to save. If \" +\n \"you want to find the truth, worry only about yourself. Ethics and \" +\n `morals will get you killed.
Watch out for a hacking group known as ${FactionNames.NiteSec}.` +\n \"
-jump3R\",\n ),\n\n [MessageFilenames.Jumper3]: new Message(\n MessageFilenames.Jumper3,\n \"You must learn to walk before you can run. And you must \" +\n `run before you can fly. Look for ${FactionNames.TheBlackHand}.
` +\n \"I.I.I.I
-jump3R\",\n ),\n\n [MessageFilenames.Jumper4]: new Message(\n MessageFilenames.Jumper4,\n \"To find what you are searching for, you must understand the bits. \" +\n \"The bits are all around us. The runners will help you.
\" +\n \"-jump3R\",\n ),\n\n //Messages from hacking factions\n [MessageFilenames.CyberSecTest]: new Message(\n MessageFilenames.CyberSecTest,\n \"We've been watching you. Your skills are very impressive. But you're wasting \" +\n \"your talents. If you join us, you can put your skills to good use and change \" +\n \"the world for the better. If you join us, we can unlock your full potential.
\" +\n \"But first, you must pass our test. Find and install the backdoor on our server.
\" +\n `-${FactionNames.CyberSec}`,\n ),\n\n [MessageFilenames.NiteSecTest]: new Message(\n MessageFilenames.NiteSecTest,\n \"People say that the corrupted governments and corporations rule the world. \" +\n \"Yes, maybe they do. But do you know who everyone really fears? People \" +\n \"like us. Because they can't hide from us. Because they can't fight shadows \" +\n \"and ideas with bullets.
\" +\n \"Join us, and people will fear you, too.
\" +\n \"Find and install the backdoor on our server, avmnite-02h. Then, we will contact you again.\" +\n `
-${FactionNames.NiteSec}`,\n ),\n\n [MessageFilenames.BitRunnersTest]: new Message(\n MessageFilenames.BitRunnersTest,\n \"We know what you are doing. We know what drives you. We know \" +\n \"what you are looking for.
\" +\n \"We can help you find the answers.
\" +\n \"run4theh111z\",\n ),\n\n //Messages to guide players to the daemon\n [MessageFilenames.TruthGazer]: new Message(\n MessageFilenames.TruthGazer,\n //\"THE TRUTH CAN NO LONGER ESCAPE YOUR GAZE\"\n \"@&*($#@&__TH3__#@A@*)__TRU1H__(*)&*)($#@&()E&R)W& \" +\n \"%@*$^$()@&$)$*@__CAN__()(@^#)@&@)#__N0__(#@)@&@&( \" +\n \"*(__LON6ER__^#)@)(()*#@)@__ESCAP3__)#(@(#@*@()@(#*$ \" +\n \"()@)#$*%)$#()$#__Y0UR__(*)$#()%(&(%)*!)($__GAZ3__#(\",\n ),\n\n [MessageFilenames.RedPill]: new Message(\n MessageFilenames.RedPill,\n //\"FIND THE-CAVE\"\n \"@)(#V%*N)@(#*)*C)@#%*)*V)@#(*%V@)(#VN%*)@#(*% \" +\n \")@B(*#%)@)M#B*%V)____FIND___#$@)#%(B*)@#(*%B) \" +\n \"@_#(%_@#M(BDSPOMB__THE-CAVE_#)$(*@#$)@#BNBEGB \" +\n \"DFLSMFVMV)#@($*)@#*$MV)@#(*$V)M#(*$)M@(#*VM$)\",\n ),\n};\n\nexport { Messages, checkForMessagesToSend, showMessage };\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { ClassType } from \"../../../Work/ClassWork\";\nimport { LocationName } from \"../../../Locations/data/LocationNames\";\nimport { calculateClassEarnings } from \"../../../Work/formulas/Class\";\nimport { Sleeve } from \"../Sleeve\";\nimport { scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\n\nexport const isSleeveClassWork = (w: Work | null): w is SleeveClassWork => w !== null && w.type === WorkType.CLASS;\n\ninterface ClassWorkParams {\n classType: ClassType;\n location: LocationName;\n}\n\nexport class SleeveClassWork extends Work {\n classType: ClassType;\n location: LocationName;\n\n constructor(params?: ClassWorkParams) {\n super(WorkType.CLASS);\n this.classType = params?.classType ?? ClassType.StudyComputerScience;\n this.location = params?.location ?? LocationName.Sector12RothmanUniversity;\n }\n\n calculateRates(player: IPlayer, sleeve: Sleeve): WorkStats {\n return scaleWorkStats(\n calculateClassEarnings(player, sleeve, this.classType, this.location),\n sleeve.shockBonus(),\n false,\n );\n }\n\n isGym(): boolean {\n return [ClassType.GymAgility, ClassType.GymDefense, ClassType.GymDexterity, ClassType.GymStrength].includes(\n this.classType,\n );\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n const rate = this.calculateRates(player, sleeve);\n applySleeveGains(player, sleeve, rate, cycles);\n return 0;\n }\n APICopy(): Record {\n return {\n type: this.type,\n classType: this.classType,\n location: this.location,\n };\n }\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveClassWork\", this);\n }\n\n /**\n * Initiatizes a ClassWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveClassWork {\n return Generic_fromJSON(SleeveClassWork, value.data);\n }\n}\n\nReviver.constructors.SleeveClassWork = SleeveClassWork;\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { applySleeveGains, Work, WorkType } from \"./Work\";\nimport { CrimeType } from \"../../../utils/WorkType\";\nimport { Crimes } from \"../../../Crime/Crimes\";\nimport { Crime } from \"../../../Crime/Crime\";\nimport { newWorkStats, scaleWorkStats, WorkStats } from \"../../../Work/WorkStats\";\nimport { CONSTANTS } from \"../../../Constants\";\nimport { BitNodeMultipliers } from \"../../../BitNode/BitNodeMultipliers\";\n\nexport const isSleeveCrimeWork = (w: Work | null): w is SleeveCrimeWork => w !== null && w.type === WorkType.CRIME;\n\nexport class SleeveCrimeWork extends Work {\n crimeType: CrimeType;\n cyclesWorked = 0;\n constructor(crimeType?: CrimeType) {\n super(WorkType.CRIME);\n this.crimeType = crimeType ?? CrimeType.SHOPLIFT;\n }\n\n getCrime(): Crime {\n const crime = Object.values(Crimes).find((crime) => crime.type === this.crimeType);\n if (!crime) throw new Error(\"crime should not be undefined\");\n return crime;\n }\n\n getExp(): WorkStats {\n const crime = this.getCrime();\n return newWorkStats({\n money: crime.money * BitNodeMultipliers.CrimeMoney,\n hackExp: crime.hacking_exp * BitNodeMultipliers.CrimeExpGain,\n strExp: crime.strength_exp * BitNodeMultipliers.CrimeExpGain,\n defExp: crime.defense_exp * BitNodeMultipliers.CrimeExpGain,\n dexExp: crime.dexterity_exp * BitNodeMultipliers.CrimeExpGain,\n agiExp: crime.agility_exp * BitNodeMultipliers.CrimeExpGain,\n chaExp: crime.charisma_exp * BitNodeMultipliers.CrimeExpGain,\n intExp: crime.intelligence_exp * BitNodeMultipliers.CrimeExpGain,\n });\n }\n\n cyclesNeeded(): number {\n return this.getCrime().time / CONSTANTS._idleSpeed;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n this.cyclesWorked += cycles;\n\n const crime = this.getCrime();\n let gains = this.getExp();\n if (this.cyclesWorked >= this.cyclesNeeded()) {\n if (Math.random() < crime.successRate(sleeve)) {\n player.karma -= crime.karma * sleeve.syncBonus();\n } else {\n gains.money = 0;\n gains = scaleWorkStats(gains, 0.25);\n }\n applySleeveGains(player, sleeve, gains, cycles);\n this.cyclesWorked -= this.cyclesNeeded();\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n crimeType: this.crimeType,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveCrimeWork\", this);\n }\n\n /**\n * Initiatizes a RecoveryWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveCrimeWork {\n return Generic_fromJSON(SleeveCrimeWork, value.data);\n }\n}\n\nReviver.constructors.SleeveCrimeWork = SleeveCrimeWork;\n","import { format } from \"date-fns\";\n\nexport function formatTime(fmt: string): string {\n try {\n return format(new Date(), fmt);\n } catch (e: unknown) {\n return \"format error\";\n }\n}\n","// The initial formulas was sum 0 to f of 500*1.02^f.\n// see https://en.wikipedia.org/wiki/Geometric_series#Closed-form_formula\n// for information on how to calculate this\n\nexport function favorToRep(f: number): number {\n const raw = 25000 * (Math.pow(1.02, f) - 1);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n\nexport function repToFavor(r: number): number {\n const raw = Math.log(r / 25000 + 1) / Math.log(1.02);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n","import {\n CodingContract,\n CodingContractRewardType,\n CodingContractTypes,\n ICodingContractReward,\n} from \"./CodingContracts\";\nimport { Factions } from \"./Faction/Factions\";\nimport { Player } from \"./Player\";\nimport { GetServer, GetAllServers } from \"./Server/AllServers\";\nimport { SpecialServers } from \"./Server/data/SpecialServers\";\nimport { Server } from \"./Server/Server\";\nimport { BaseServer } from \"./Server/BaseServer\";\n\nimport { getRandomInt } from \"./utils/helpers/getRandomInt\";\n\nexport function generateRandomContract(): void {\n // First select a random problem type\n const problemType = getRandomProblemType();\n\n // Then select a random reward type. 'Money' will always be the last reward type\n const reward = getRandomReward();\n\n // Choose random server\n const randServer = getRandomServer();\n\n const contractFn = getRandomFilename(randServer, reward);\n const contract = new CodingContract(contractFn, problemType, reward);\n\n randServer.addContract(contract);\n}\n\nexport function generateRandomContractOnHome(): void {\n // First select a random problem type\n const problemType = getRandomProblemType();\n\n // Then select a random reward type. 'Money' will always be the last reward type\n const reward = getRandomReward();\n\n // Choose random server\n const serv = Player.getHomeComputer();\n\n const contractFn = getRandomFilename(serv, reward);\n const contract = new CodingContract(contractFn, problemType, reward);\n\n serv.addContract(contract);\n}\n\ninterface IGenerateContractParams {\n problemType?: string;\n server?: string;\n fn?: string;\n}\n\nexport function generateContract(params: IGenerateContractParams): void {\n // Problem Type\n let problemType;\n const problemTypes = Object.keys(CodingContractTypes);\n if (params.problemType != null && problemTypes.includes(params.problemType)) {\n problemType = params.problemType;\n } else {\n problemType = getRandomProblemType();\n }\n\n // Reward Type - This is always random for now\n const reward = getRandomReward();\n\n // Server\n let server;\n if (params.server != null) {\n server = GetServer(params.server);\n if (server == null) {\n server = getRandomServer();\n }\n } else {\n server = getRandomServer();\n }\n\n // Filename\n let fn;\n if (params.fn != null) {\n fn = params.fn;\n } else {\n fn = getRandomFilename(server, reward);\n }\n\n const contract = new CodingContract(fn, problemType, reward);\n server.addContract(contract);\n}\n\n// Ensures that a contract's reward type is valid\nfunction sanitizeRewardType(rewardType: CodingContractRewardType): CodingContractRewardType {\n let type = rewardType; // Create copy\n\n const factionsThatAllowHacking = Player.factions.filter((fac) => {\n try {\n return Factions[fac].getInfo().offerHackingWork;\n } catch (e) {\n console.error(`Error when trying to filter Hacking Factions for Coding Contract Generation: ${e}`);\n return false;\n }\n });\n if (type === CodingContractRewardType.FactionReputation && factionsThatAllowHacking.length === 0) {\n type = CodingContractRewardType.CompanyReputation;\n }\n if (type === CodingContractRewardType.FactionReputationAll && factionsThatAllowHacking.length === 0) {\n type = CodingContractRewardType.CompanyReputation;\n }\n if (type === CodingContractRewardType.CompanyReputation && Object.keys(Player.jobs).length === 0) {\n type = CodingContractRewardType.Money;\n }\n\n return type;\n}\n\nfunction getRandomProblemType(): string {\n const problemTypes = Object.keys(CodingContractTypes);\n const randIndex = getRandomInt(0, problemTypes.length - 1);\n\n return problemTypes[randIndex];\n}\n\nfunction getRandomReward(): ICodingContractReward {\n const reward: ICodingContractReward = {\n name: \"\",\n type: getRandomInt(0, CodingContractRewardType.Money),\n };\n reward.type = sanitizeRewardType(reward.type);\n\n // Add additional information based on the reward type\n const factionsThatAllowHacking = Player.factions.filter((fac) => Factions[fac].getInfo().offerHackingWork);\n\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation: {\n // Get a random faction that player is a part of. That\n // faction must allow hacking contracts\n const numFactions = factionsThatAllowHacking.length;\n const randFaction = factionsThatAllowHacking[getRandomInt(0, numFactions - 1)];\n reward.name = randFaction;\n break;\n }\n case CodingContractRewardType.CompanyReputation: {\n const allJobs = Object.keys(Player.jobs);\n if (allJobs.length > 0) {\n reward.name = allJobs[getRandomInt(0, allJobs.length - 1)];\n } else {\n reward.type = CodingContractRewardType.Money;\n }\n break;\n }\n default:\n break;\n }\n\n return reward;\n}\n\nfunction getRandomServer(): BaseServer {\n const servers = GetAllServers().filter((server: BaseServer) => server.serversOnNetwork.length !== 0);\n let randIndex = getRandomInt(0, servers.length - 1);\n let randServer = servers[randIndex];\n\n // An infinite loop shouldn't ever happen, but to be safe we'll use\n // a for loop with a limited number of tries\n for (let i = 0; i < 200; ++i) {\n if (\n randServer instanceof Server &&\n !randServer.purchasedByPlayer &&\n randServer.hostname !== SpecialServers.WorldDaemon\n ) {\n break;\n }\n randIndex = getRandomInt(0, servers.length - 1);\n randServer = servers[randIndex];\n }\n\n return randServer;\n}\n\nfunction getRandomFilename(server: BaseServer, reward: ICodingContractReward): string {\n let contractFn = `contract-${getRandomInt(0, 1e6)}`;\n\n for (let i = 0; i < 1000; ++i) {\n if (\n server.contracts.filter((c: CodingContract) => {\n return c.fn === contractFn;\n }).length <= 0\n ) {\n break;\n }\n contractFn = `contract-${getRandomInt(0, 1e6)}`;\n }\n\n if (reward.name) {\n contractFn += `-${reward.name.replace(/\\s/g, \"\")}`;\n }\n\n return contractFn;\n}\n","import { CorporationState } from \"./CorporationState\";\nimport { CorporationUnlockUpgrade, CorporationUnlockUpgrades } from \"./data/CorporationUnlockUpgrades\";\nimport { CorporationUpgrade, CorporationUpgrades } from \"./data/CorporationUpgrades\";\nimport { Warehouse } from \"./Warehouse\";\nimport { CorporationConstants } from \"./data/Constants\";\nimport { Industry } from \"./Industry\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { showLiterature } from \"../Literature/LiteratureHelpers\";\nimport { LiteratureNames } from \"../Literature/data/LiteratureNames\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { isString } from \"../utils/helpers/isString\";\n\ninterface IParams {\n name?: string;\n}\n\nexport class Corporation {\n name = \"The Corporation\";\n\n //A division/business sector is represented by the object:\n divisions: Industry[] = [];\n\n //Financial stats\n funds = 150e9;\n revenue = 0;\n expenses = 0;\n fundingRound = 0;\n public = false; //Publicly traded\n totalShares = CorporationConstants.INITIALSHARES; // Total existing shares\n numShares = CorporationConstants.INITIALSHARES; // Total shares owned by player\n shareSalesUntilPriceUpdate = CorporationConstants.SHARESPERPRICEUPDATE;\n shareSaleCooldown = 0; // Game cycles until player can sell shares again\n issueNewSharesCooldown = 0; // Game cycles until player can issue shares again\n dividendRate = 0;\n dividendTax = 1 - BitNodeMultipliers.CorporationSoftcap + 0.15;\n issuedShares = 0;\n sharePrice = 0;\n storedCycles = 0;\n\n unlockUpgrades: number[];\n upgrades: number[];\n upgradeMultipliers: number[];\n\n cycleValuation = 0;\n valuationsList = [0];\n valuation = 0;\n\n state = new CorporationState();\n\n constructor(params: IParams = {}) {\n this.name = params.name ? params.name : \"The Corporation\";\n const numUnlockUpgrades = Object.keys(CorporationUnlockUpgrades).length;\n const numUpgrades = Object.keys(CorporationUpgrades).length;\n this.unlockUpgrades = Array(numUnlockUpgrades).fill(0);\n this.upgrades = Array(numUpgrades).fill(0);\n this.upgradeMultipliers = Array(numUpgrades).fill(1);\n }\n\n addFunds(amt: number): void {\n if (!isFinite(amt)) {\n console.error(\"Trying to add invalid amount of funds. Report to a developper.\");\n return;\n }\n this.funds = this.funds + amt;\n }\n\n getState(): string {\n return this.state.getState();\n }\n\n storeCycles(numCycles = 1): void {\n this.storedCycles += numCycles;\n }\n\n process(player: IPlayer): void {\n if (this.storedCycles >= CorporationConstants.CyclesPerIndustryStateCycle) {\n const state = this.getState();\n const marketCycles = 1;\n const gameCycles = marketCycles * CorporationConstants.CyclesPerIndustryStateCycle;\n this.storedCycles -= gameCycles;\n\n this.divisions.forEach((ind) => {\n ind.resetImports(state);\n });\n\n this.divisions.forEach((ind) => {\n ind.process(marketCycles, state, this);\n });\n\n // Process cooldowns\n if (this.shareSaleCooldown > 0) {\n this.shareSaleCooldown -= gameCycles;\n }\n if (this.issueNewSharesCooldown > 0) {\n this.issueNewSharesCooldown -= gameCycles;\n }\n\n //At the start of a new cycle, calculate profits from previous cycle\n if (state === \"START\") {\n this.revenue = 0;\n this.expenses = 0;\n this.divisions.forEach((ind) => {\n if (ind.lastCycleRevenue === -Infinity || ind.lastCycleRevenue === Infinity) {\n return;\n }\n if (ind.lastCycleExpenses === -Infinity || ind.lastCycleExpenses === Infinity) {\n return;\n }\n this.revenue = this.revenue + ind.lastCycleRevenue;\n this.expenses = this.expenses + ind.lastCycleExpenses;\n });\n const profit = this.revenue - this.expenses;\n this.cycleValuation = this.determineCycleValuation();\n this.determineValuation();\n const cycleProfit = profit * (marketCycles * CorporationConstants.SecsPerMarketCycle);\n if (isNaN(this.funds) || this.funds === Infinity || this.funds === -Infinity) {\n dialogBoxCreate(\n \"There was an error calculating your Corporations funds and they got reset to 0. \" +\n \"This is a bug. Please report to game developer.
\" +\n \"(Your funds have been set to $150b for the inconvenience)\",\n );\n this.funds = 150e9;\n }\n\n // Process dividends\n this.updateDividendTax();\n if (this.dividendRate > 0 && cycleProfit > 0) {\n // Validate input again, just to be safe\n if (\n isNaN(this.dividendRate) ||\n this.dividendRate < 0 ||\n this.dividendRate > CorporationConstants.DividendMaxRate\n ) {\n console.error(`Invalid Corporation dividend rate: ${this.dividendRate}`);\n } else {\n const totalDividends = this.dividendRate * cycleProfit;\n const retainedEarnings = cycleProfit - totalDividends;\n player.gainMoney(this.getCycleDividends(), \"corporation\");\n this.addFunds(retainedEarnings);\n }\n } else {\n this.addFunds(cycleProfit);\n }\n\n this.updateSharePrice();\n }\n\n this.state.nextState();\n }\n }\n\n updateDividendTax(): void {\n this.dividendTax = 1 - BitNodeMultipliers.CorporationSoftcap + 0.15;\n if (this.unlockUpgrades[5] === 1) {\n this.dividendTax -= 0.05;\n }\n if (this.unlockUpgrades[6] === 1) {\n this.dividendTax -= 0.1;\n }\n }\n\n getCycleDividends(): number {\n const profit = this.revenue - this.expenses;\n const cycleProfit = profit * CorporationConstants.SecsPerMarketCycle;\n const totalDividends = this.dividendRate * cycleProfit;\n const dividendsPerShare = totalDividends / this.totalShares;\n const dividends = this.numShares * dividendsPerShare;\n return Math.pow(dividends, 1 - this.dividendTax);\n }\n\n determineCycleValuation(): number {\n let val,\n profit = this.revenue - this.expenses;\n if (this.public) {\n // Account for dividends\n if (this.dividendRate > 0) {\n profit *= 1 - this.dividendRate;\n }\n\n val = this.funds + profit * 85e3;\n val *= Math.pow(1.1, this.divisions.length);\n val = Math.max(val, 0);\n } else {\n val = 10e9 + Math.max(this.funds, 0) / 3; //Base valuation\n if (profit > 0) {\n val += profit * 315e3;\n }\n val *= Math.pow(1.1, this.divisions.length);\n val -= val % 1e6; //Round down to nearest millionth\n }\n return val * BitNodeMultipliers.CorporationValuation;\n }\n\n determineValuation(): void {\n this.valuationsList.push(this.cycleValuation); //Add current valuation to the list\n if (this.valuationsList.length > CorporationConstants.ValuationLength) this.valuationsList.shift();\n let val = this.valuationsList.reduce((a, b) => a + b); //Calculate valuations sum\n val /= CorporationConstants.ValuationLength; //Calculate the average\n this.valuation = val;\n }\n\n getTargetSharePrice(): number {\n // Note: totalShares - numShares is not the same as issuedShares because\n // issuedShares does not account for private investors\n return this.valuation / (2 * (this.totalShares - this.numShares) + 1);\n }\n\n updateSharePrice(): void {\n const targetPrice = this.getTargetSharePrice();\n if (this.sharePrice <= targetPrice) {\n this.sharePrice *= 1 + Math.random() * 0.01;\n } else {\n this.sharePrice *= 1 - Math.random() * 0.01;\n }\n if (this.sharePrice <= 0.01) {\n this.sharePrice = 0.01;\n }\n }\n\n immediatelyUpdateSharePrice(): void {\n this.sharePrice = this.getTargetSharePrice();\n }\n\n // Calculates how much money will be made and what the resulting stock price\n // will be when the player sells his/her shares\n // @return - [Player profit, final stock price, end shareSalesUntilPriceUpdate property]\n calculateShareSale(numShares: number): [number, number, number] {\n let sharesTracker = numShares;\n let sharesUntilUpdate = this.shareSalesUntilPriceUpdate;\n let sharePrice = this.sharePrice;\n let sharesSold = 0;\n let profit = 0;\n let targetPrice = this.getTargetSharePrice();\n\n const maxIterations = Math.ceil(numShares / CorporationConstants.SHARESPERPRICEUPDATE);\n if (isNaN(maxIterations) || maxIterations > 10e6) {\n console.error(\n `Something went wrong or unexpected when calculating share sale. Maxiterations calculated to be ${maxIterations}`,\n );\n return [0, 0, 0];\n }\n\n for (let i = 0; i < maxIterations; ++i) {\n if (sharesTracker < sharesUntilUpdate) {\n profit += sharePrice * sharesTracker;\n sharesUntilUpdate -= sharesTracker;\n break;\n } else {\n profit += sharePrice * sharesUntilUpdate;\n sharesUntilUpdate = CorporationConstants.SHARESPERPRICEUPDATE;\n sharesTracker -= sharesUntilUpdate;\n sharesSold += sharesUntilUpdate;\n targetPrice = this.valuation / (2 * (this.totalShares + sharesSold - this.numShares));\n // Calculate what new share price would be\n if (sharePrice <= targetPrice) {\n sharePrice *= 1 + 0.5 * 0.01;\n } else {\n sharePrice *= 1 - 0.5 * 0.01;\n }\n }\n }\n\n return [profit, sharePrice, sharesUntilUpdate];\n }\n\n convertCooldownToString(cd: number): string {\n // The cooldown value is based on game cycles. Convert to a simple string\n const seconds = cd / 5;\n\n const SecondsPerMinute = 60;\n const SecondsPerHour = 3600;\n\n if (seconds > SecondsPerHour) {\n return `${Math.floor(seconds / SecondsPerHour)} hour(s)`;\n } else if (seconds > SecondsPerMinute) {\n return `${Math.floor(seconds / SecondsPerMinute)} minute(s)`;\n } else {\n return `${Math.floor(seconds)} second(s)`;\n }\n }\n\n //One time upgrades that unlock new features\n unlock(upgrade: CorporationUnlockUpgrade): void {\n const upgN = upgrade.index,\n price = upgrade.price;\n while (this.unlockUpgrades.length <= upgN) {\n this.unlockUpgrades.push(0);\n }\n if (this.funds < price) {\n dialogBoxCreate(\"You don't have enough funds to unlock this!\");\n return;\n }\n this.unlockUpgrades[upgN] = 1;\n this.funds = this.funds - price;\n\n // Apply effects for one-time upgrades\n this.updateDividendTax();\n }\n\n //Levelable upgrades\n upgrade(upgrade: CorporationUpgrade): void {\n const upgN = upgrade.index,\n basePrice = upgrade.basePrice,\n priceMult = upgrade.priceMult,\n upgradeAmt = upgrade.benefit; //Amount by which the upgrade multiplier gets increased (additive)\n while (this.upgrades.length <= upgN) {\n this.upgrades.push(0);\n }\n while (this.upgradeMultipliers.length <= upgN) {\n this.upgradeMultipliers.push(1);\n }\n const totalCost = basePrice * Math.pow(priceMult, this.upgrades[upgN]);\n if (this.funds < totalCost) {\n dialogBoxCreate(\"You don't have enough funds to purchase this!\");\n return;\n }\n ++this.upgrades[upgN];\n this.funds = this.funds - totalCost;\n\n //Increase upgrade multiplier\n this.upgradeMultipliers[upgN] = 1 + this.upgrades[upgN] * upgradeAmt;\n\n //If storage size is being updated, update values in Warehouse objects\n if (upgN === 1) {\n for (let i = 0; i < this.divisions.length; ++i) {\n const industry = this.divisions[i];\n for (const city of Object.keys(industry.warehouses)) {\n const warehouse = industry.warehouses[city];\n if (warehouse === 0) continue;\n if (industry.warehouses.hasOwnProperty(city) && warehouse instanceof Warehouse) {\n warehouse.updateSize(this, industry);\n }\n }\n }\n }\n }\n\n getProductionMultiplier(): number {\n const mult = this.upgradeMultipliers[0];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getStorageMultiplier(): number {\n const mult = this.upgradeMultipliers[1];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getDreamSenseGain(): number {\n const gain = this.upgradeMultipliers[2] - 1;\n return gain <= 0 ? 0 : gain;\n }\n\n getAdvertisingMultiplier(): number {\n const mult = this.upgradeMultipliers[3];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getEmployeeCreMultiplier(): number {\n const mult = this.upgradeMultipliers[4];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getEmployeeChaMultiplier(): number {\n const mult = this.upgradeMultipliers[5];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getEmployeeIntMultiplier(): number {\n const mult = this.upgradeMultipliers[6];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getEmployeeEffMultiplier(): number {\n const mult = this.upgradeMultipliers[7];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getSalesMultiplier(): number {\n const mult = this.upgradeMultipliers[8];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n getScientificResearchMultiplier(): number {\n const mult = this.upgradeMultipliers[9];\n if (isNaN(mult) || mult < 1) {\n return 1;\n } else {\n return mult;\n }\n }\n\n // Adds the Corporation Handbook (Starter Guide) to the player's home computer.\n // This is a lit file that gives introductory info to the player\n // This occurs when the player clicks the \"Getting Started Guide\" button on the overview panel\n getStarterGuide(player: IPlayer): void {\n // Check if player already has Corporation Handbook\n const homeComp = player.getHomeComputer();\n let hasHandbook = false;\n const handbookFn = LiteratureNames.CorporationManagementHandbook;\n for (let i = 0; i < homeComp.messages.length; ++i) {\n if (isString(homeComp.messages[i]) && homeComp.messages[i] === handbookFn) {\n hasHandbook = true;\n break;\n }\n }\n\n if (!hasHandbook) {\n homeComp.messages.push(handbookFn);\n }\n showLiterature(handbookFn);\n return;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"Corporation\", this);\n }\n\n /**\n * Initiatizes a Corporation object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): Corporation {\n return Generic_fromJSON(Corporation, value.data);\n }\n}\n\nReviver.constructors.Corporation = Corporation;\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\";\nimport { Faction } from \"src/Faction/Faction\";\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.\",\n strength: 2.8,\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 // new Augmentation({\n // name: AugmentationNames.UnnamedAug2,\n // repCost: 500e3,\n // moneyCost: 5e9,\n // info: \"Undecided description\",\n // startingMoney: 100e6,\n // programs: [Programs.HTTPWormProgram.name, Programs.SQLInjectProgram.name],\n // factions: [FactionNames.OmniTekIncorporated],\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 // Sleeve exclusive augmentations\n new Augmentation({\n name: AugmentationNames.ZOE,\n isSpecial: true,\n repCost: Infinity,\n moneyCost: 1e12,\n info:\n \"Zoë's Omnicerebrum Ënhancer for sleeves inserts an omnicerebrum into your sleeve. \" +\n \"An omnicerebrum is a near perfect simulation of the human brain, allowing it to take advantage of a larger variety of augments. \" +\n \"But you should know about this BitRunner, since you have one of these yourself!\",\n stats: <>Allows sleeves to benefit from Stanek's Gift but it is less powerful if several are installed.>,\n factions: [\n /*Technically in FactionNames.ChurchOfTheMachineGod but not really for display reasons */\n ],\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 new Augmentation({\n name: AugmentationNames.BigDsBigBrain,\n isSpecial: true,\n factions: [],\n repCost: Infinity,\n moneyCost: Infinity,\n info:\n \"A chip containing the psyche of the greatest BitRunner to ever exists. \" +\n \"Installing this relic significantly increases ALL of your stats. \" +\n \"However it may have unintended consequence on the users mental well-being.\",\n stats: <>Grants access to unimaginable power.>,\n hacking: 2,\n strength: 2,\n defense: 2,\n dexterity: 2,\n agility: 2,\n charisma: 2,\n hacking_exp: 2,\n strength_exp: 2,\n defense_exp: 2,\n dexterity_exp: 2,\n agility_exp: 2,\n charisma_exp: 2,\n hacking_chance: 2,\n hacking_speed: 2,\n hacking_money: 2,\n hacking_grow: 2,\n company_rep: 2,\n faction_rep: 2,\n crime_money: 2,\n crime_success: 2,\n work_money: 2,\n hacknet_node_money: 2,\n hacknet_node_purchase_cost: 0.5,\n hacknet_node_ram_cost: 0.5,\n hacknet_node_core_cost: 0.5,\n hacknet_node_level_cost: 0.5,\n bladeburner_max_stamina: 2,\n bladeburner_stamina_gain: 2,\n bladeburner_analysis: 2,\n bladeburner_success_chance: 2,\n\n startingMoney: 1e12,\n programs: [\n Programs.BruteSSHProgram.name,\n Programs.FTPCrackProgram.name,\n Programs.RelaySMTPProgram.name,\n Programs.HTTPWormProgram.name,\n Programs.SQLInjectProgram.name,\n Programs.DeepscanV1.name,\n Programs.DeepscanV2.name,\n Programs.ServerProfiler.name,\n Programs.AutoLink.name,\n Programs.Formulas.name,\n ],\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 \"Undetectable adamantium nanobots injected in the users bloodstream. The NeuroFlux Governor \" +\n \"monitors and regulates all aspects of the human body, essentially 'governing' the body. \" +\n \"By doing so, it improves the users performance for most actions.\",\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)}%), stacking multiplicatively.\n >\n ),\n isSpecial: true,\n hacking_chance: 1.01 + donationBonus,\n hacking_speed: 1.01 + donationBonus,\n hacking_money: 1.01 + donationBonus,\n hacking_grow: 1.01 + donationBonus,\n hacking: 1.01 + donationBonus,\n strength: 1.01 + donationBonus,\n defense: 1.01 + donationBonus,\n dexterity: 1.01 + donationBonus,\n agility: 1.01 + donationBonus,\n charisma: 1.01 + donationBonus,\n hacking_exp: 1.01 + donationBonus,\n strength_exp: 1.01 + donationBonus,\n defense_exp: 1.01 + donationBonus,\n dexterity_exp: 1.01 + donationBonus,\n agility_exp: 1.01 + donationBonus,\n charisma_exp: 1.01 + donationBonus,\n company_rep: 1.01 + donationBonus,\n faction_rep: 1.01 + donationBonus,\n crime_money: 1.01 + donationBonus,\n crime_success: 1.01 + donationBonus,\n hacknet_node_money: 1.01 + donationBonus,\n hacknet_node_purchase_cost: 1 / (1.01 + donationBonus),\n hacknet_node_ram_cost: 1 / (1.01 + donationBonus),\n hacknet_node_core_cost: 1 / (1.01 + donationBonus),\n hacknet_node_level_cost: 1 / (1.01 + donationBonus),\n work_money: 1.01 + donationBonus,\n factions: Object.values(FactionNames).filter(\n (factionName) =>\n ![FactionNames.ShadowsOfAnarchy, FactionNames.Bladeburners, FactionNames.ChurchOfTheMachineGod].includes(\n factionName,\n ),\n ),\n });\n}\n\nexport function initUnstableCircadianModulator(): Augmentation {\n //Time-Based Augment Test\n const randomBonuses = getRandomBonus();\n\n const UnstableCircadianModulatorParams: IConstructorParams = {\n name: AugmentationNames.UnstableCircadianModulator,\n moneyCost: 5e9,\n repCost: 3.625e5,\n info:\n \"An experimental nanobot injection. Its unstable nature leads to \" +\n \"unpredictable results based on your circadian rhythm.\",\n factions: [FactionNames.SpeakersForTheDead],\n };\n Object.keys(randomBonuses.bonuses).forEach(\n (key) => ((UnstableCircadianModulatorParams as any)[key] = randomBonuses.bonuses[key]),\n );\n\n return new Augmentation(UnstableCircadianModulatorParams);\n}\n","import { FactionNames } from \"../../Faction/data/FactionNames\";\n// tslint:disable:max-file-line-count\n\n// This could actually be a JSON file as it should be constant metadata to be imported...\nimport { IMinMaxRange } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { LiteratureNames } from \"../../Literature/data/LiteratureNames\";\nimport { SpecialServers } from \"./SpecialServers\";\n\n/**\n * The metadata describing the base state of servers on the network.\n * These values will be adjusted based on Bitnode multipliers when the Server objects are built out.\n */\ninterface IServerMetadata {\n /**\n * When populated, the base security level of the server.\n */\n hackDifficulty?: number | IMinMaxRange;\n\n /**\n * The DNS name of the server.\n */\n hostname: string;\n\n /**\n * When populated, the files will be added to the server when created.\n */\n literature?: string[];\n\n /**\n * When populated, the exponent of 2^x amount of RAM the server has.\n * This should be in the range of 1-20, to match the Player's max RAM.\n */\n maxRamExponent?: number | IMinMaxRange;\n\n /**\n * How much money the server starts out with.\n */\n moneyAvailable: number | IMinMaxRange;\n\n /**\n * The number of network layers away from the `home` server.\n * This value is between 1 and 15.\n * If this is not populated, @specialName should be.\n */\n networkLayer?: number | IMinMaxRange;\n\n /**\n * The number of ports that must be opened before the player can execute NUKE.\n */\n numOpenPortsRequired: number;\n\n /**\n * The organization that the server belongs to.\n */\n organizationName: string;\n\n /**\n * The minimum hacking level before the player can run NUKE.\n */\n requiredHackingSkill: number | IMinMaxRange;\n\n /**\n * The growth factor for the server.\n */\n serverGrowth?: number | IMinMaxRange;\n\n /**\n * A \"unique\" server that has special implications when the player manually hacks it.\n */\n specialName?: string;\n}\n\n/**\n * The metadata for building up the servers on the network.\n */\nexport const serverMetadata: IServerMetadata[] = [\n {\n hackDifficulty: 99,\n hostname: LocationName.AevumECorp.toLowerCase(),\n moneyAvailable: {\n max: 70e9,\n min: 30e9,\n },\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumECorp,\n requiredHackingSkill: {\n max: 1400,\n min: 1050,\n },\n serverGrowth: 99,\n specialName: LocationName.AevumECorp,\n },\n {\n hackDifficulty: 99,\n hostname: LocationName.Sector12MegaCorp.toLowerCase(),\n moneyAvailable: {\n max: 60e9,\n min: 40e9,\n },\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12MegaCorp,\n requiredHackingSkill: {\n max: 1350,\n min: 1100,\n },\n serverGrowth: 99,\n specialName: LocationName.Sector12MegaCorp,\n },\n {\n hackDifficulty: {\n max: 88,\n min: 72,\n },\n hostname: \"b-and-a\",\n moneyAvailable: {\n max: 30e9,\n min: 15e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumBachmanAndAssociates,\n requiredHackingSkill: {\n max: 1150,\n min: 900,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n specialName: LocationName.AevumBachmanAndAssociates,\n },\n {\n hackDifficulty: {\n max: 97,\n min: 88,\n },\n hostname: \"blade\",\n literature: [LiteratureNames.BeyondMan],\n maxRamExponent: {\n max: 9,\n min: 5,\n },\n moneyAvailable: {\n max: 40e9,\n min: 10e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12BladeIndustries,\n requiredHackingSkill: {\n max: 1200,\n min: 900,\n },\n serverGrowth: {\n max: 85,\n min: 55,\n },\n specialName: LocationName.Sector12BladeIndustries,\n },\n {\n hackDifficulty: 99,\n hostname: LocationName.VolhavenNWO.toLowerCase(),\n literature: [LiteratureNames.TheHiddenWorld],\n moneyAvailable: {\n max: 40e9,\n min: 20e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenNWO,\n requiredHackingSkill: {\n max: 1300,\n min: 950,\n },\n serverGrowth: {\n max: 95,\n min: 65,\n },\n specialName: LocationName.VolhavenNWO,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 45,\n },\n hostname: \"clarkinc\",\n literature: [LiteratureNames.BeyondMan, LiteratureNames.CostOfImmortality],\n moneyAvailable: {\n max: 25e9,\n min: 15e9,\n },\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumClarkeIncorporated,\n requiredHackingSkill: {\n max: 1250,\n min: 950,\n },\n serverGrowth: {\n max: 75,\n min: 45,\n },\n specialName: LocationName.AevumClarkeIncorporated,\n },\n {\n hackDifficulty: {\n max: 99,\n min: 90,\n },\n hostname: \"omnitek\",\n literature: [LiteratureNames.CodedIntelligence, LiteratureNames.HistoryOfSynthoids],\n maxRamExponent: {\n max: 9,\n min: 7,\n },\n moneyAvailable: {\n max: 22e9,\n min: 13e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenOmniTekIncorporated,\n requiredHackingSkill: {\n max: 1100,\n min: 900,\n },\n serverGrowth: {\n max: 99,\n min: 95,\n },\n specialName: LocationName.VolhavenOmniTekIncorporated,\n },\n {\n hackDifficulty: {\n max: 75,\n min: 55,\n },\n hostname: \"4sigma\",\n moneyAvailable: {\n max: 25e9,\n min: 15e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12FourSigma,\n requiredHackingSkill: {\n max: 1250,\n min: 900,\n },\n serverGrowth: {\n max: 99,\n min: 75,\n },\n specialName: LocationName.Sector12FourSigma,\n },\n {\n hackDifficulty: {\n max: 99,\n min: 95,\n },\n hostname: \"kuai-gong\",\n moneyAvailable: {\n max: 30e9,\n min: 20e9,\n },\n networkLayer: 13,\n numOpenPortsRequired: 5,\n organizationName: LocationName.ChongqingKuaiGongInternational,\n requiredHackingSkill: {\n max: 1300,\n min: 950,\n },\n serverGrowth: {\n max: 99,\n min: 90,\n },\n specialName: LocationName.ChongqingKuaiGongInternational,\n },\n {\n hackDifficulty: {\n max: 97,\n min: 83,\n },\n hostname: \"fulcrumtech\",\n literature: [LiteratureNames.SimulatedReality],\n maxRamExponent: {\n max: 11,\n min: 7,\n },\n moneyAvailable: {\n max: 1800e6,\n min: 1400e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumFulcrumTechnologies,\n requiredHackingSkill: {\n max: 1250,\n min: 950,\n },\n serverGrowth: {\n max: 99,\n min: 80,\n },\n specialName: LocationName.AevumFulcrumTechnologies,\n },\n {\n hackDifficulty: 99,\n hostname: \"fulcrumassets\",\n moneyAvailable: 1e6,\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumFulcrumTechnologies,\n requiredHackingSkill: {\n max: 1600,\n min: 1100,\n },\n serverGrowth: 1,\n specialName: SpecialServers.FulcrumSecretTechnologies,\n },\n {\n hackDifficulty: {\n max: 92,\n min: 78,\n },\n hostname: \"stormtech\",\n moneyAvailable: {\n max: 1200e6,\n min: 1000e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.IshimaStormTechnologies,\n requiredHackingSkill: {\n max: 1075,\n min: 875,\n },\n serverGrowth: {\n max: 92,\n min: 68,\n },\n specialName: LocationName.IshimaStormTechnologies,\n },\n {\n hackDifficulty: {\n max: 96,\n min: 84,\n },\n hostname: \"defcomm\",\n moneyAvailable: {\n max: 950e6,\n min: 800e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.NewTokyoDefComm,\n requiredHackingSkill: {\n max: 1050,\n min: 850,\n },\n serverGrowth: {\n max: 73,\n min: 47,\n },\n specialName: LocationName.NewTokyoDefComm,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 70,\n },\n hostname: \"infocomm\",\n moneyAvailable: {\n max: 900e6,\n min: 600e6,\n },\n networkLayer: 10,\n numOpenPortsRequired: 5,\n organizationName: \"InfoComm\",\n requiredHackingSkill: {\n max: 950,\n min: 875,\n },\n serverGrowth: {\n max: 75,\n min: 35,\n },\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"helios\",\n literature: [LiteratureNames.BeyondMan],\n maxRamExponent: {\n max: 8,\n min: 5,\n },\n moneyAvailable: {\n max: 750e6,\n min: 550e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenHeliosLabs,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n specialName: LocationName.VolhavenHeliosLabs,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: LocationName.NewTokyoVitaLife.toLowerCase(),\n literature: [LiteratureNames.AGreenTomorrow],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 800e6,\n min: 700e6,\n },\n networkLayer: 12,\n numOpenPortsRequired: 5,\n organizationName: LocationName.NewTokyoVitaLife,\n requiredHackingSkill: {\n max: 900,\n min: 775,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n specialName: LocationName.NewTokyoVitaLife,\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"icarus\",\n moneyAvailable: {\n max: 1000e6,\n min: 900e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12IcarusMicrosystems,\n requiredHackingSkill: {\n max: 925,\n min: 850,\n },\n serverGrowth: {\n max: 95,\n min: 85,\n },\n specialName: LocationName.Sector12IcarusMicrosystems,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: \"univ-energy\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 1200e6,\n min: 1100e6,\n },\n networkLayer: 9,\n numOpenPortsRequired: 4,\n organizationName: LocationName.Sector12UniversalEnergy,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 90,\n min: 80,\n },\n specialName: LocationName.Sector12UniversalEnergy,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"titan-labs\",\n literature: [LiteratureNames.CodedIntelligence],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 900000000,\n min: 750000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 5,\n organizationName: \"Titan Laboratories\",\n requiredHackingSkill: {\n max: 875,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 60,\n },\n },\n {\n hackDifficulty: {\n max: 75,\n min: 65,\n },\n hostname: \"microdyne\",\n literature: [LiteratureNames.SyntheticMuscles],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 700000000,\n min: 500000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 5,\n organizationName: \"Microdyne Technologies\",\n requiredHackingSkill: {\n max: 875,\n min: 800,\n },\n serverGrowth: {\n max: 90,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"taiyang-digital\",\n literature: [LiteratureNames.AGreenTomorrow, LiteratureNames.BrighterThanTheSun],\n moneyAvailable: {\n max: 900000000,\n min: 800000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 5,\n organizationName: \"Taiyang Digital\",\n requiredHackingSkill: {\n max: 950,\n min: 850,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"galactic-cyber\",\n moneyAvailable: {\n max: 850000000,\n min: 750000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumGalacticCybersystems,\n requiredHackingSkill: {\n max: 875,\n min: 825,\n },\n serverGrowth: {\n max: 90,\n min: 70,\n },\n specialName: LocationName.AevumGalacticCybersystems,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 80,\n },\n hostname: LocationName.AevumAeroCorp.toLowerCase(),\n literature: [LiteratureNames.ManAndMachine],\n moneyAvailable: {\n max: 1200000000,\n min: 1000000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 5,\n organizationName: LocationName.AevumAeroCorp,\n requiredHackingSkill: {\n max: 925,\n min: 850,\n },\n serverGrowth: {\n max: 65,\n min: 55,\n },\n specialName: LocationName.AevumAeroCorp,\n },\n {\n hackDifficulty: {\n max: 95,\n min: 85,\n },\n hostname: \"omnia\",\n literature: [LiteratureNames.HistoryOfSynthoids],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 1000000000,\n min: 900000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenOmniaCybersystems,\n requiredHackingSkill: {\n max: 950,\n min: 850,\n },\n serverGrowth: {\n max: 70,\n min: 60,\n },\n specialName: LocationName.VolhavenOmniaCybersystems,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"zb-def\",\n literature: [LiteratureNames.SyntheticMuscles],\n moneyAvailable: {\n max: 1100000000,\n min: 900000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 4,\n organizationName: \"ZB Defense Industries\",\n requiredHackingSkill: {\n max: 825,\n min: 775,\n },\n serverGrowth: {\n max: 75,\n min: 65,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"applied-energetics\",\n moneyAvailable: {\n max: 1000000000,\n min: 700000000,\n },\n networkLayer: 11,\n numOpenPortsRequired: 4,\n organizationName: \"Applied Energetics\",\n requiredHackingSkill: {\n max: 850,\n min: 775,\n },\n serverGrowth: {\n max: 75,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"solaris\",\n literature: [LiteratureNames.AGreenTomorrow, LiteratureNames.TheFailedFrontier],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 900000000,\n min: 700000000,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: LocationName.ChongqingSolarisSpaceSystems,\n requiredHackingSkill: {\n max: 850,\n min: 750,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n specialName: LocationName.ChongqingSolarisSpaceSystems,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 75,\n },\n hostname: LocationName.Sector12DeltaOne.toLowerCase(),\n moneyAvailable: {\n max: 1700000000,\n min: 1300000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 5,\n organizationName: LocationName.Sector12DeltaOne,\n requiredHackingSkill: {\n max: 900,\n min: 800,\n },\n serverGrowth: {\n max: 70,\n min: 50,\n },\n specialName: LocationName.Sector12DeltaOne,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 75,\n },\n hostname: \"global-pharm\",\n literature: [LiteratureNames.AGreenTomorrow],\n maxRamExponent: {\n max: 6,\n min: 3,\n },\n moneyAvailable: {\n max: 1750000000,\n min: 1500000000,\n },\n networkLayer: 7,\n numOpenPortsRequired: 4,\n organizationName: LocationName.NewTokyoGlobalPharmaceuticals,\n requiredHackingSkill: {\n max: 850,\n min: 750,\n },\n serverGrowth: {\n max: 90,\n min: 80,\n },\n specialName: LocationName.NewTokyoGlobalPharmaceuticals,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"nova-med\",\n moneyAvailable: {\n max: 1250000000,\n min: 1100000000,\n },\n networkLayer: 10,\n numOpenPortsRequired: 4,\n organizationName: LocationName.IshimaNovaMedical,\n requiredHackingSkill: {\n max: 850,\n min: 775,\n },\n serverGrowth: {\n max: 85,\n min: 65,\n },\n specialName: LocationName.IshimaNovaMedical,\n },\n {\n hackDifficulty: {\n max: 90,\n min: 70,\n },\n hostname: \"zeus-med\",\n moneyAvailable: {\n max: 1500000000,\n min: 1300000000,\n },\n networkLayer: 9,\n numOpenPortsRequired: 5,\n organizationName: \"Zeus Medical\",\n requiredHackingSkill: {\n max: 850,\n min: 800,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"unitalife\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 1100000000,\n min: 1000000000,\n },\n networkLayer: 8,\n numOpenPortsRequired: 4,\n organizationName: \"UnitaLife Group\",\n requiredHackingSkill: {\n max: 825,\n min: 775,\n },\n serverGrowth: {\n max: 80,\n min: 70,\n },\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"lexo-corp\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 800000000,\n min: 700000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.VolhavenLexoCorp,\n requiredHackingSkill: {\n max: 750,\n min: 650,\n },\n serverGrowth: {\n max: 65,\n min: 55,\n },\n specialName: LocationName.VolhavenLexoCorp,\n },\n {\n hackDifficulty: {\n max: 60,\n min: 40,\n },\n hostname: \"rho-construction\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 700000000,\n min: 500000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumRhoConstruction,\n requiredHackingSkill: {\n max: 525,\n min: 475,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumRhoConstruction,\n },\n {\n hackDifficulty: {\n max: 70,\n min: 50,\n },\n hostname: \"alpha-ent\",\n literature: [LiteratureNames.Sector12Crime],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 750000000,\n min: 600000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.Sector12AlphaEnterprises,\n requiredHackingSkill: {\n max: 600,\n min: 500,\n },\n serverGrowth: {\n max: 60,\n min: 50,\n },\n specialName: LocationName.Sector12AlphaEnterprises,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 70,\n },\n hostname: \"aevum-police\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 400000000,\n min: 200000000,\n },\n networkLayer: 6,\n numOpenPortsRequired: 4,\n organizationName: LocationName.AevumPolice,\n requiredHackingSkill: {\n max: 450,\n min: 400,\n },\n serverGrowth: {\n max: 50,\n min: 30,\n },\n specialName: LocationName.AevumPolice,\n },\n {\n hackDifficulty: {\n max: 55,\n min: 45,\n },\n hostname: \"rothman-uni\",\n literature: [\n LiteratureNames.SecretSocieties,\n LiteratureNames.TheFailedFrontier,\n LiteratureNames.TensionsInTechRace,\n ],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 250000000,\n min: 175000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: LocationName.Sector12RothmanUniversity,\n requiredHackingSkill: {\n max: 430,\n min: 370,\n },\n serverGrowth: {\n max: 45,\n min: 35,\n },\n specialName: LocationName.Sector12RothmanUniversity,\n },\n {\n hackDifficulty: {\n max: 85,\n min: 65,\n },\n hostname: \"zb-institute\",\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 1100000000,\n min: 800000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 5,\n organizationName: LocationName.VolhavenZBInstituteOfTechnology,\n requiredHackingSkill: {\n max: 775,\n min: 725,\n },\n serverGrowth: {\n max: 85,\n min: 75,\n },\n specialName: LocationName.VolhavenZBInstituteOfTechnology,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 45,\n },\n hostname: \"summit-uni\",\n literature: [LiteratureNames.SecretSocieties, LiteratureNames.TheFailedFrontier, LiteratureNames.SyntheticMuscles],\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: {\n max: 350000000,\n min: 200000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumSummitUniversity,\n requiredHackingSkill: {\n max: 475,\n min: 425,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumSummitUniversity,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"syscore\",\n moneyAvailable: {\n max: 600000000,\n min: 400000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 4,\n organizationName: LocationName.VolhavenSysCoreSecurities,\n requiredHackingSkill: {\n max: 650,\n min: 550,\n },\n serverGrowth: {\n max: 70,\n min: 60,\n },\n specialName: LocationName.VolhavenSysCoreSecurities,\n },\n {\n hackDifficulty: {\n max: 70,\n min: 60,\n },\n hostname: \"catalyst\",\n literature: [LiteratureNames.TensionsInTechRace],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: {\n max: 550000000,\n min: 300000000,\n },\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: \"Catalyst Ventures\",\n requiredHackingSkill: {\n max: 450,\n min: 400,\n },\n serverGrowth: {\n max: 55,\n min: 25,\n },\n },\n {\n hackDifficulty: {\n max: 45,\n min: 35,\n },\n hostname: \"the-hub\",\n maxRamExponent: {\n max: 6,\n min: 3,\n },\n moneyAvailable: {\n max: 200000000,\n min: 150000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"The Hub\",\n requiredHackingSkill: {\n max: 325,\n min: 275,\n },\n serverGrowth: {\n max: 55,\n min: 45,\n },\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: LocationName.VolhavenCompuTek.toLowerCase(),\n literature: [LiteratureNames.ManAndMachine],\n moneyAvailable: {\n max: 250000000,\n min: 220000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 3,\n organizationName: LocationName.VolhavenCompuTek,\n requiredHackingSkill: {\n max: 400,\n min: 300,\n },\n serverGrowth: {\n max: 65,\n min: 45,\n },\n specialName: LocationName.VolhavenCompuTek,\n },\n {\n hackDifficulty: {\n max: 80,\n min: 60,\n },\n hostname: \"netlink\",\n literature: [LiteratureNames.SimulatedReality],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: 275000000,\n networkLayer: 4,\n numOpenPortsRequired: 3,\n organizationName: LocationName.AevumNetLinkTechnologies,\n requiredHackingSkill: {\n max: 425,\n min: 375,\n },\n serverGrowth: {\n max: 75,\n min: 45,\n },\n specialName: LocationName.AevumNetLinkTechnologies,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 35,\n },\n hostname: \"johnson-ortho\",\n moneyAvailable: {\n max: 85000000,\n min: 70000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"Johnson Orthopedics\",\n requiredHackingSkill: {\n max: 300,\n min: 250,\n },\n serverGrowth: {\n max: 65,\n min: 35,\n },\n },\n {\n hackDifficulty: 1,\n hostname: \"n00dles\",\n literature: [],\n maxRamExponent: 2,\n moneyAvailable: 70000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.NewTokyoNoodleBar,\n requiredHackingSkill: 1,\n serverGrowth: 3000,\n specialName: LocationName.NewTokyoNoodleBar,\n },\n {\n hackDifficulty: 10,\n hostname: LocationName.Sector12FoodNStuff.toLowerCase(),\n literature: [LiteratureNames.Sector12Crime],\n maxRamExponent: 4,\n moneyAvailable: 2000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.Sector12FoodNStuff,\n requiredHackingSkill: 1,\n serverGrowth: 5,\n specialName: LocationName.Sector12FoodNStuff,\n },\n {\n hackDifficulty: 10,\n hostname: \"sigma-cosmetics\",\n maxRamExponent: 4,\n moneyAvailable: 2300000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"Sigma Cosmetics\",\n requiredHackingSkill: 5,\n serverGrowth: 10,\n },\n {\n hackDifficulty: 15,\n hostname: \"joesguns\",\n maxRamExponent: 4,\n moneyAvailable: 2500000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: LocationName.Sector12JoesGuns,\n requiredHackingSkill: 10,\n serverGrowth: 20,\n specialName: LocationName.Sector12JoesGuns,\n },\n {\n hackDifficulty: 25,\n hostname: \"zer0\",\n maxRamExponent: 5,\n moneyAvailable: 7500000,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: \"ZER0 Nightclub\",\n requiredHackingSkill: 75,\n serverGrowth: 40,\n },\n {\n hackDifficulty: 20,\n hostname: \"nectar-net\",\n maxRamExponent: 4,\n moneyAvailable: 2750000,\n networkLayer: 2,\n numOpenPortsRequired: 0,\n organizationName: \"Nectar Nightclub Network\",\n requiredHackingSkill: 20,\n serverGrowth: 25,\n },\n {\n hackDifficulty: 25,\n hostname: \"neo-net\",\n literature: [LiteratureNames.TheHiddenWorld],\n maxRamExponent: 5,\n moneyAvailable: 5000000,\n networkLayer: 3,\n numOpenPortsRequired: 1,\n organizationName: \"Neo Nightclub Network\",\n requiredHackingSkill: 50,\n serverGrowth: 25,\n },\n {\n hackDifficulty: 30,\n hostname: \"silver-helix\",\n literature: [LiteratureNames.NewTriads],\n maxRamExponent: 6,\n moneyAvailable: 45000000,\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: \"Silver Helix\",\n requiredHackingSkill: 150,\n serverGrowth: 30,\n },\n {\n hackDifficulty: 15,\n hostname: \"hong-fang-tea\",\n literature: [LiteratureNames.BrighterThanTheSun],\n maxRamExponent: 4,\n moneyAvailable: 3000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"HongFang Teahouse\",\n requiredHackingSkill: 30,\n serverGrowth: 20,\n },\n {\n hackDifficulty: 15,\n hostname: \"harakiri-sushi\",\n maxRamExponent: 4,\n moneyAvailable: 4000000,\n networkLayer: 1,\n numOpenPortsRequired: 0,\n organizationName: \"HaraKiri Sushi Bar Network\",\n requiredHackingSkill: 40,\n serverGrowth: 40,\n },\n {\n hackDifficulty: 20,\n hostname: \"phantasy\",\n maxRamExponent: 5,\n moneyAvailable: 24000000,\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: \"Phantasy Club\",\n requiredHackingSkill: 100,\n serverGrowth: 35,\n },\n {\n hackDifficulty: 15,\n hostname: \"max-hardware\",\n maxRamExponent: 5,\n moneyAvailable: 10000000,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: \"Max Hardware Store\",\n requiredHackingSkill: 80,\n serverGrowth: 30,\n },\n {\n hackDifficulty: {\n max: 35,\n min: 25,\n },\n hostname: \"omega-net\",\n literature: [LiteratureNames.TheNewGod],\n maxRamExponent: 5,\n moneyAvailable: {\n max: 70000000,\n min: 60000000,\n },\n networkLayer: 3,\n numOpenPortsRequired: 2,\n organizationName: LocationName.IshimaOmegaSoftware,\n requiredHackingSkill: {\n max: 220,\n min: 180,\n },\n serverGrowth: {\n max: 40,\n min: 30,\n },\n specialName: LocationName.IshimaOmegaSoftware,\n },\n {\n hackDifficulty: {\n max: 45,\n min: 35,\n },\n hostname: \"crush-fitness\",\n moneyAvailable: {\n max: 60000000,\n min: 40000000,\n },\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: \"Crush Fitness\",\n requiredHackingSkill: {\n max: 275,\n min: 225,\n },\n serverGrowth: {\n max: 33,\n min: 27,\n },\n specialName: LocationName.AevumCrushFitnessGym,\n },\n {\n hackDifficulty: 30,\n hostname: \"iron-gym\",\n maxRamExponent: 5,\n moneyAvailable: 20000000,\n networkLayer: 1,\n numOpenPortsRequired: 1,\n organizationName: `${LocationName.Sector12IronGym} Network`,\n requiredHackingSkill: 100,\n serverGrowth: 20,\n specialName: LocationName.Sector12IronGym,\n },\n {\n hackDifficulty: {\n max: 55,\n min: 45,\n },\n hostname: \"millenium-fitness\",\n maxRamExponent: {\n max: 8,\n min: 4,\n },\n moneyAvailable: 250000000,\n networkLayer: 6,\n numOpenPortsRequired: 3,\n organizationName: \"Millenium Fitness Network\",\n requiredHackingSkill: {\n max: 525,\n min: 475,\n },\n serverGrowth: {\n max: 45,\n min: 25,\n },\n specialName: LocationName.VolhavenMilleniumFitnessGym,\n },\n {\n hackDifficulty: {\n max: 65,\n min: 55,\n },\n hostname: \"powerhouse-fitness\",\n maxRamExponent: {\n max: 6,\n min: 4,\n },\n moneyAvailable: 900000000,\n networkLayer: 14,\n numOpenPortsRequired: 5,\n organizationName: \"Powerhouse Fitness\",\n requiredHackingSkill: {\n max: 1100,\n min: 950,\n },\n serverGrowth: {\n max: 60,\n min: 50,\n },\n specialName: LocationName.Sector12PowerhouseGym,\n },\n {\n hackDifficulty: {\n max: 60,\n min: 40,\n },\n hostname: \"snap-fitness\",\n moneyAvailable: 450000000,\n networkLayer: 7,\n numOpenPortsRequired: 4,\n organizationName: \"Snap Fitness\",\n requiredHackingSkill: {\n max: 800,\n min: 675,\n },\n serverGrowth: {\n max: 60,\n min: 40,\n },\n specialName: LocationName.AevumSnapFitnessGym,\n },\n {\n hackDifficulty: 0,\n hostname: \"run4theh111z\",\n literature: [LiteratureNames.SimulatedReality, LiteratureNames.TheNewGod],\n maxRamExponent: {\n max: 9,\n min: 5,\n },\n moneyAvailable: 0,\n networkLayer: 11,\n numOpenPortsRequired: 4,\n organizationName: \"The Runners\",\n requiredHackingSkill: {\n max: 550,\n min: 505,\n },\n serverGrowth: 0,\n specialName: SpecialServers.BitRunnersServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"I.I.I.I\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: {\n max: 8,\n min: 4,\n },\n moneyAvailable: 0,\n networkLayer: 5,\n numOpenPortsRequired: 3,\n organizationName: \"I.I.I.I\",\n requiredHackingSkill: {\n max: 365,\n min: 340,\n },\n serverGrowth: 0,\n specialName: SpecialServers.TheBlackHandServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"avmnite-02h\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: {\n max: 7,\n min: 4,\n },\n moneyAvailable: 0,\n networkLayer: 4,\n numOpenPortsRequired: 2,\n organizationName: FactionNames.NiteSec,\n requiredHackingSkill: {\n max: 220,\n min: 202,\n },\n serverGrowth: 0,\n specialName: SpecialServers.NiteSecServer,\n },\n {\n hackDifficulty: 0,\n hostname: \".\",\n maxRamExponent: 4,\n moneyAvailable: 0,\n networkLayer: 13,\n numOpenPortsRequired: 4,\n organizationName: \".\",\n requiredHackingSkill: {\n max: 550,\n min: 505,\n },\n serverGrowth: 0,\n specialName: SpecialServers.TheDarkArmyServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"CSEC\",\n literature: [LiteratureNames.DemocracyIsDead],\n maxRamExponent: 3,\n moneyAvailable: 0,\n networkLayer: 2,\n numOpenPortsRequired: 1,\n organizationName: FactionNames.CyberSec,\n requiredHackingSkill: {\n max: 60,\n min: 51,\n },\n serverGrowth: 0,\n specialName: SpecialServers.CyberSecServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"The-Cave\",\n literature: [LiteratureNames.AlphaOmega],\n moneyAvailable: 0,\n networkLayer: 15,\n numOpenPortsRequired: 5,\n organizationName: \"Helios\",\n requiredHackingSkill: 925,\n serverGrowth: 0,\n specialName: SpecialServers.DaedalusServer,\n },\n {\n hackDifficulty: 0,\n hostname: \"w0r1d_d43m0n\",\n moneyAvailable: 0,\n numOpenPortsRequired: 5,\n organizationName: \"w0r1d_d43m0n\",\n requiredHackingSkill: 3000,\n serverGrowth: 0,\n specialName: SpecialServers.WorldDaemon,\n },\n {\n hostname: SpecialServers.DarkWeb,\n moneyAvailable: 0,\n numOpenPortsRequired: 5,\n organizationName: SpecialServers.DarkWeb,\n requiredHackingSkill: 1,\n specialName: SpecialServers.DarkWeb,\n },\n];\n","import { IPlayer } from \"../../IPlayer\";\nimport { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from \"../../../utils/JSONReviver\";\nimport { Sleeve } from \"../Sleeve\";\nimport { Work, WorkType } from \"./Work\";\nimport { CONSTANTS } from \"../../../Constants\";\n\nconst infiltrateCycles = 60000 / CONSTANTS._idleSpeed;\n\nexport const isSleeveInfiltrateWork = (w: Work | null): w is SleeveInfiltrateWork =>\n w !== null && w.type === WorkType.INFILTRATE;\n\nexport class SleeveInfiltrateWork extends Work {\n cyclesWorked = 0;\n\n constructor() {\n super(WorkType.INFILTRATE);\n }\n\n cyclesNeeded(): number {\n return infiltrateCycles;\n }\n\n process(player: IPlayer, sleeve: Sleeve, cycles: number): number {\n if (!player.bladeburner) throw new Error(\"sleeve doing blade work without being a member\");\n this.cyclesWorked += cycles;\n if (this.cyclesWorked > this.cyclesNeeded()) {\n this.cyclesWorked -= this.cyclesNeeded();\n player.bladeburner.infiltrateSynthoidCommunities(player);\n }\n return 0;\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"SleeveInfiltrateWork\", this);\n }\n\n /**\n * Initiatizes a BladeburnerWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): SleeveInfiltrateWork {\n return Generic_fromJSON(SleeveInfiltrateWork, value.data);\n }\n}\n\nReviver.constructors.SleeveInfiltrateWork = SleeveInfiltrateWork;\n","import { CONSTANTS } from \"../Constants\";\nimport * as names from \"./data/companypositionnames\";\n\n/* tslint:disable:completed-docs */\n\nexport interface IConstructorParams {\n name: string;\n nextPosition: string | null;\n baseSalary: number;\n repMultiplier: number;\n\n reqdHacking?: number;\n reqdStrength?: number;\n reqdDefense?: number;\n reqdDexterity?: number;\n reqdAgility?: number;\n reqdCharisma?: number;\n reqdReputation?: number;\n\n hackingEffectiveness?: number;\n strengthEffectiveness?: number;\n defenseEffectiveness?: number;\n dexterityEffectiveness?: number;\n agilityEffectiveness?: number;\n charismaEffectiveness?: number;\n\n hackingExpGain?: number;\n strengthExpGain?: number;\n defenseExpGain?: number;\n dexterityExpGain?: number;\n agilityExpGain?: number;\n charismaExpGain?: number;\n}\n\nexport class CompanyPosition {\n /**\n * Position title\n */\n name: string;\n\n /**\n * Title of next position to be promoted to\n */\n nextPosition: string | null;\n\n /**\n * Base salary for this position ($ per 200ms game cycle)\n * Will be multiplier by a company-specific multiplier for final salary\n */\n baseSalary: number;\n\n /**\n * Reputation multiplier\n */\n repMultiplier: number;\n\n /**\n * Required stats to earn this position\n */\n requiredAgility: number;\n requiredCharisma: number;\n requiredDefense: number;\n requiredDexterity: number;\n requiredHacking: number;\n requiredStrength: number;\n\n /**\n * Required company reputation to earn this position\n */\n requiredReputation: number;\n\n /**\n * Effectiveness of each stat time for job performance\n */\n hackingEffectiveness: number;\n strengthEffectiveness: number;\n defenseEffectiveness: number;\n dexterityEffectiveness: number;\n agilityEffectiveness: number;\n charismaEffectiveness: number;\n\n /**\n * Experience gain for performing job (per 200ms game cycle)\n */\n hackingExpGain: number;\n strengthExpGain: number;\n defenseExpGain: number;\n dexterityExpGain: number;\n agilityExpGain: number;\n charismaExpGain: number;\n\n constructor(p: IConstructorParams) {\n this.name = p.name;\n this.nextPosition = p.nextPosition;\n this.baseSalary = p.baseSalary;\n this.repMultiplier = p.repMultiplier;\n\n this.requiredHacking = p.reqdHacking != null ? p.reqdHacking : 0;\n this.requiredStrength = p.reqdStrength != null ? p.reqdStrength : 0;\n this.requiredDefense = p.reqdDefense != null ? p.reqdDefense : 0;\n this.requiredDexterity = p.reqdDexterity != null ? p.reqdDexterity : 0;\n this.requiredAgility = p.reqdAgility != null ? p.reqdAgility : 0;\n this.requiredCharisma = p.reqdCharisma != null ? p.reqdCharisma : 0;\n this.requiredReputation = p.reqdReputation != null ? p.reqdReputation : 0;\n\n this.hackingEffectiveness = p.hackingEffectiveness != null ? p.hackingEffectiveness : 0;\n this.strengthEffectiveness = p.strengthEffectiveness != null ? p.strengthEffectiveness : 0;\n this.defenseEffectiveness = p.defenseEffectiveness != null ? p.defenseEffectiveness : 0;\n this.dexterityEffectiveness = p.dexterityEffectiveness != null ? p.dexterityEffectiveness : 0;\n this.agilityEffectiveness = p.agilityEffectiveness != null ? p.agilityEffectiveness : 0;\n this.charismaEffectiveness = p.charismaEffectiveness != null ? p.charismaEffectiveness : 0;\n\n if (\n Math.round(\n this.hackingEffectiveness +\n this.strengthEffectiveness +\n this.defenseEffectiveness +\n this.dexterityEffectiveness +\n this.agilityEffectiveness +\n this.charismaEffectiveness,\n ) !== 100\n ) {\n console.error(`CompanyPosition ${this.name} parameters do not sum to 100`);\n }\n\n this.hackingExpGain = p.hackingExpGain != null ? p.hackingExpGain : 0;\n this.strengthExpGain = p.strengthExpGain != null ? p.strengthExpGain : 0;\n this.defenseExpGain = p.defenseExpGain != null ? p.defenseExpGain : 0;\n this.dexterityExpGain = p.dexterityExpGain != null ? p.dexterityExpGain : 0;\n this.agilityExpGain = p.agilityExpGain != null ? p.agilityExpGain : 0;\n this.charismaExpGain = p.charismaExpGain != null ? p.charismaExpGain : 0;\n }\n\n calculateJobPerformance(hack: number, str: number, def: number, dex: number, agi: number, cha: number): number {\n const hackRatio: number = (this.hackingEffectiveness * hack) / CONSTANTS.MaxSkillLevel;\n const strRatio: number = (this.strengthEffectiveness * str) / CONSTANTS.MaxSkillLevel;\n const defRatio: number = (this.defenseEffectiveness * def) / CONSTANTS.MaxSkillLevel;\n const dexRatio: number = (this.dexterityEffectiveness * dex) / CONSTANTS.MaxSkillLevel;\n const agiRatio: number = (this.agilityEffectiveness * agi) / CONSTANTS.MaxSkillLevel;\n const chaRatio: number = (this.charismaEffectiveness * cha) / CONSTANTS.MaxSkillLevel;\n\n let reputationGain: number =\n (this.repMultiplier * (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio)) / 100;\n if (isNaN(reputationGain)) {\n console.error(\"Company reputation gain calculated to be NaN\");\n reputationGain = 0;\n }\n\n return reputationGain;\n }\n\n isSoftwareJob(): boolean {\n return names.SoftwareCompanyPositions.includes(this.name);\n }\n\n isITJob(): boolean {\n return names.ITCompanyPositions.includes(this.name);\n }\n\n isSecurityEngineerJob(): boolean {\n return names.SecurityEngineerCompanyPositions.includes(this.name);\n }\n\n isNetworkEngineerJob(): boolean {\n return names.NetworkEngineerCompanyPositions.includes(this.name);\n }\n\n isBusinessJob(): boolean {\n return names.BusinessCompanyPositions.includes(this.name);\n }\n\n isSecurityJob(): boolean {\n return names.SecurityCompanyPositions.includes(this.name);\n }\n\n isAgentJob(): boolean {\n return names.AgentCompanyPositions.includes(this.name);\n }\n\n isSoftwareConsultantJob(): boolean {\n return names.SoftwareConsultantCompanyPositions.includes(this.name);\n }\n\n isBusinessConsultantJob(): boolean {\n return names.BusinessConsultantCompanyPositions.includes(this.name);\n }\n\n isPartTimeJob(): boolean {\n return names.PartTimeCompanyPositions.includes(this.name);\n }\n}\n","/**\n * Implementation of the mechanisms that allow the player to affect the\n * Stock Market\n */\nimport { Stock } from \"./Stock\";\nimport { StockMarket } from \"./StockMarket\";\n\nimport { Company } from \"../Company/Company\";\nimport { Server } from \"../Server/Server\";\n\n// Change in second-order forecast due to hacks/grows\nexport const forecastForecastChangeFromHack = 0.1;\n\n// Change in second-order forecast due to company work\nexport const forecastForecastChangeFromCompanyWork = 0.001;\n\n/**\n * Potentially decreases a stock's second-order forecast when its corresponding\n * server is hacked. The chance of the hack decreasing the stock's second-order\n * forecast is dependent on what percentage of the server's money is hacked\n * @param {Server} server - Server being hack()ed\n * @param {number} moneyHacked - Amount of money stolen from the server\n */\nexport function influenceStockThroughServerHack(server: Server, moneyHacked: number): void {\n const orgName = server.organizationName;\n let stock: Stock | null = null;\n if (typeof orgName === \"string\" && orgName !== \"\") {\n stock = StockMarket[orgName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n const percTotalMoneyHacked = moneyHacked / server.moneyMax;\n if (Math.random() < percTotalMoneyHacked) {\n stock.changeForecastForecast(stock.otlkMagForecast - forecastForecastChangeFromHack);\n }\n}\n\n/**\n * Potentially increases a stock's second-order forecast when its corresponding\n * server is grown (grow()). The chance of the grow() to increase the stock's\n * second-order forecast is dependent on how much money is added to the server\n * @param {Server} server - Server being grow()n\n * @param {number} moneyHacked - Amount of money added to the server\n */\nexport function influenceStockThroughServerGrow(server: Server, moneyGrown: number): void {\n const orgName = server.organizationName;\n let stock: Stock | null = null;\n if (typeof orgName === \"string\" && orgName !== \"\") {\n stock = StockMarket[orgName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n const percTotalMoneyGrown = moneyGrown / server.moneyMax;\n if (Math.random() < percTotalMoneyGrown) {\n stock.changeForecastForecast(stock.otlkMagForecast + forecastForecastChangeFromHack);\n }\n}\n\n/**\n * Potentially increases a stock's second-order forecast when the player works for\n * its corresponding company.\n * @param {Company} company - Company being worked for\n * @param {number} performanceMult - Effectiveness of player's work. Affects influence\n * @param {number} cyclesOfWork - # game cycles of work being processed\n */\nexport function influenceStockThroughCompanyWork(\n company: Company,\n performanceMult: number,\n cyclesOfWork: number,\n): void {\n const compName = company.name;\n let stock: Stock | null = null;\n if (typeof compName === \"string\" && compName !== \"\") {\n stock = StockMarket[compName];\n }\n if (!(stock instanceof Stock)) {\n return;\n }\n\n if (Math.random() < 0.002 * cyclesOfWork) {\n const change = forecastForecastChangeFromCompanyWork * performanceMult;\n stock.changeForecastForecast(stock.otlkMagForecast + change);\n }\n}\n","export function checkEnum(\n enumVariable: { [key in T]: TEnumValue },\n value: string,\n): value is TEnumValue {\n return Object.values(enumVariable).includes(value);\n}\n","import React from \"react\";\nimport { SourceFile } from \"./SourceFile\";\nimport { IMap } from \"../types\";\n\nexport const SourceFiles: IMap = {};\n\nSourceFiles[\"SourceFile1\"] = new SourceFile(\n 1,\n (\n <>\n This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the\n player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nSourceFiles[\"SourceFile2\"] = new SourceFile(\n 2,\n (\n <>\n This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also\n increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nSourceFiles[\"SourceFile3\"] = new SourceFile(\n 3,\n (\n <>\n This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this\n mechanic) and level 3 permanently unlocks the full API. This Source-File also increases your charisma and company\n salary multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile4\"] = new SourceFile(\n 4,\n (\n <>\n This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this\n Source-File reduces the RAM cost of Singularity functions:\n \n Level 1: 16x\n \n Level 2: 4x\n \n Level 3: 1x\n >\n ),\n);\nSourceFiles[\"SourceFile5\"] = new SourceFile(\n 5,\n (\n <>\n This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent and\n persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other\n stats. Higher Intelligence levels will boost your production for many actions in the game. In addition, this\n Source-File will unlock:\n \n
\n
\n The getBitNodeMultipliers() Netscript function\n
\n
Permanent access to Formulas.exe
\n
\n Access to BitNode multiplier information on the Stats page\n
\n
\n It will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile6\"] = new SourceFile(\n 6,\n (\n <>\n This Source-File allows you to access the NSA's Bladeburner Division in other BitNodes. In addition, this\n Source-File will raise both the level and experience gain rate of all your combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile7\"] = new SourceFile(\n 7,\n (\n <>\n This Source-File allows you to access the Bladeburner Netscript API in other BitNodes. In addition, this\n Source-File will increase all of your Bladeburner multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile8\"] = new SourceFile(\n 8,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nSourceFiles[\"SourceFile9\"] = new SourceFile(\n 9,\n (\n <>\n This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile10\"] = new SourceFile(\n 10,\n (\n <>\n This Source-File unlocks Sleeve technology, and the Grafting API in other BitNodes. Each level of this Source-File\n also grants you a Duplicate Sleeve\n >\n ),\n);\nSourceFiles[\"SourceFile11\"] = new SourceFile(\n 11,\n (\n <>\n This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at\n that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the player's\n company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nSourceFiles[\"SourceFile12\"] = new SourceFile(\n 12,\n <>This Source-File lets the player start with Neuroflux Governor equal to the level of this Source-File.>,\n);\nSourceFiles[\"SourceFile13\"] = new SourceFile(\n 13,\n <>Each level of this Source-File increases the size of Stanek's Gift.>,\n);\n","import React from \"react\";\n\nimport { IBladeburner } from \"../IBladeburner\";\nimport { BlackOperation } from \"../BlackOperation\";\nimport { use } from \"../../ui/Context\";\nimport Button from \"@mui/material/Button\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\n\ninterface IProps {\n bladeburner: IBladeburner;\n type: number;\n name: string;\n rerender: () => void;\n}\nexport function StartButton(props: IProps): React.ReactElement {\n const player = use.Player();\n const action = props.bladeburner.getActionObject({ name: props.name, type: props.type });\n if (action == null) {\n throw new Error(\"Failed to get Operation Object for: \" + props.name);\n }\n let disabled = false;\n if (action.count < 1) {\n disabled = true;\n }\n if (props.name === \"Raid\" && props.bladeburner.getCurrentCity().comms === 0) {\n disabled = true;\n }\n\n if (action instanceof BlackOperation && props.bladeburner.rank < action.reqdRank) {\n disabled = true;\n }\n function onStart(): void {\n if (disabled) return;\n props.bladeburner.action.type = props.type;\n props.bladeburner.action.name = props.name;\n if (!player.hasAugmentation(AugmentationNames.BladesSimulacrum, true)) player.finishWork(true);\n props.bladeburner.startAction(player, props.bladeburner.action);\n props.rerender();\n }\n\n return (\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\n\nfunction replace(str: string, i: number, char: string): string {\n return str.substring(0, i) + char + str.substring(i + 1);\n}\n\ninterface IProps {\n content: string;\n}\n\nfunction randomize(char: string): string {\n const randFrom = (str: string): string => str[Math.floor(Math.random() * str.length)];\n const classes = [\"abcdefghijklmnopqrstuvwxyz\", \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", \"1234567890\", \" _\", \"()[]{}<>\"];\n const other = `!@#$%^&*()_+|\\\\';\"/.,?\\`~`;\n\n for (const c of classes) {\n if (c.includes(char)) return randFrom(c);\n }\n\n return randFrom(other);\n}\n\nexport function CorruptableText(props: IProps): JSX.Element {\n const [content, setContent] = useState(props.content);\n\n useEffect(() => {\n let counter = 5;\n const timers: number[] = [];\n const intervalId = setInterval(() => {\n counter--;\n if (counter > 0) return;\n counter = Math.random() * 5;\n const index = Math.random() * content.length;\n const letter = content.charAt(index);\n setContent((content) => replace(content, index, randomize(letter)));\n timers.push(\n window.setTimeout(() => {\n setContent((content) => replace(content, index, letter));\n }, 500),\n );\n }, 20);\n\n return () => {\n clearInterval(intervalId);\n timers.forEach((timerId) => clearTimeout(timerId));\n };\n }, []);\n\n return {content};\n}\n","import React from \"react\";\nimport { CONSTANTS } from \"../Constants\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { GraftableAugmentations } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Work, WorkType } from \"./Work\";\nimport { graftingIntBonus } from \"../PersonObjects/Grafting/GraftingHelpers\";\nimport { applyAugmentation } from \"../Augmentation/AugmentationHelpers\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from \"../utils/JSONReviver\";\nimport { GraftableAugmentation } from \"../PersonObjects/Grafting/GraftableAugmentation\";\nimport { StaticAugmentations } from \"../Augmentation/StaticAugmentations\";\n\nexport const isGraftingWork = (w: Work | null): w is GraftingWork => w !== null && w.type === WorkType.GRAFTING;\n\ninterface GraftingWorkParams {\n augmentation: string;\n player: IPlayer;\n singularity: boolean;\n}\n\nexport class GraftingWork extends Work {\n augmentation: string;\n unitCompleted: number;\n\n constructor(params?: GraftingWorkParams) {\n super(WorkType.GRAFTING, params?.singularity ?? true);\n this.unitCompleted = 0;\n this.augmentation = params?.augmentation ?? AugmentationNames.Targeting1;\n const gAugs = GraftableAugmentations();\n if (params?.player) params.player.loseMoney(gAugs[this.augmentation].cost, \"augmentations\");\n }\n\n unitNeeded(): number {\n return new GraftableAugmentation(StaticAugmentations[this.augmentation]).time;\n }\n\n process(player: IPlayer, cycles: number): boolean {\n let focusBonus = 1;\n if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager, true)) {\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, true)) {\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, true) ? \".\" : \", but you feel a bit off.\"}\n >,\n );\n }\n } else if (cancelled && !this.singularity) {\n dialogBoxCreate(\n <>\n You cancelled the grafting of {augName}.\n \n Your money was not returned to you.\n >,\n );\n }\n\n // Intelligence gain\n if (!cancelled) {\n player.gainIntelligenceExp(\n (CONSTANTS.IntelligenceGraftBaseExpGain * this.cyclesWorked * CONSTANTS._idleSpeed) / 10000,\n );\n }\n }\n\n APICopy(): Record {\n return {\n type: this.type,\n cyclesWorked: this.cyclesWorked,\n augmentation: this.augmentation,\n };\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): IReviverValue {\n return Generic_toJSON(\"GraftingWork\", this);\n }\n\n /**\n * Initiatizes a GraftingWork object from a JSON save state.\n */\n static fromJSON(value: IReviverValue): GraftingWork {\n return Generic_fromJSON(GraftingWork, value.data);\n }\n}\n\nReviver.constructors.GraftingWork = GraftingWork;\n","import React from \"react\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { use } from \"../ui/Context\";\nimport { Option } from \"./ui/Option\";\nimport { Typography } from \"@mui/material\";\n\ninterface FactionInfoParams {\n infoText?: JSX.Element;\n enemies?: string[];\n offerHackingWork?: boolean;\n offerFieldWork?: boolean;\n offerSecurityWork?: boolean;\n special?: boolean;\n keepOnInstall?: boolean;\n assignment?: () => React.ReactElement;\n}\n\n/**\n * Contains the \"information\" property for all the Factions, which is just a description of each faction\n */\nexport class FactionInfo {\n /**\n * The names of all other factions considered to be enemies to this faction.\n */\n enemies: string[];\n\n /**\n * The descriptive text to show on the faction's page.\n */\n infoText: JSX.Element;\n\n /**\n * A flag indicating if the faction supports field work to earn reputation.\n */\n offerFieldWork: boolean;\n\n /**\n * A flag indicating if the faction supports hacking work to earn reputation.\n */\n offerHackingWork: boolean;\n\n /**\n * A flag indicating if the faction supports security work to earn reputation.\n */\n offerSecurityWork: boolean;\n\n /**\n * Keep faction on install.\n */\n keep: boolean;\n\n /**\n * Special faction\n */\n special: boolean;\n\n /**\n * The data to display on the faction screen.\n */\n assignment?: () => React.ReactElement;\n\n constructor(params: FactionInfoParams) {\n this.infoText = params.infoText ?? <>>;\n this.enemies = params.enemies ?? [];\n this.offerHackingWork = params.offerHackingWork ?? false;\n this.offerFieldWork = params.offerFieldWork ?? false;\n this.offerSecurityWork = params.offerSecurityWork ?? false;\n\n this.keep = params.keepOnInstall ?? false;\n this.special = params.special ?? false;\n this.assignment = params.assignment;\n }\n\n offersWork(): boolean {\n return this.offerFieldWork || this.offerHackingWork || this.offerSecurityWork;\n }\n}\n\n/**\n * A map of all factions and associated info to them.\n */\n// tslint:disable-next-line:variable-name\nexport const FactionInfos: IMap = {\n // Endgame\n [FactionNames.Illuminati]: new FactionInfo({\n infoText: (\n <>\n Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. And\n from this chaos, we are the invisible hand that guides them to order.{\" \"}\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Daedalus]: new FactionInfo({\n infoText: <>Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheCovenant]: new FactionInfo({\n infoText: (\n <>\n Surrender yourself. Give up your empty individuality to become part of something great, something eternal.\n Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.\n \n \n Only then can you discover immortality.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // Megacorporations, each forms its own faction\n [FactionNames.ECorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.ECorp}'s mission is simple: to connect the world of today with the technology of tomorrow. With\n our wide range of Internet-related software and commercial hardware, {FactionNames.ECorp} makes the world's\n information universally accessible.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.MegaCorp]: new FactionInfo({\n infoText: (\n <>\n {FactionNames.MegaCorp} does what no other dares to do. We imagine. We create. We invent. We create what others\n have never even dreamed of. Our work fills the world's needs for food, water, power, and transportation on an\n unprecedented scale, in ways that no other company can.\n \n \n In our labs and factories and on the ground with customers, {FactionNames.MegaCorp} is ushering in a new era for\n the world.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BachmanAssociates]: new FactionInfo({\n infoText: (\n <>\n Where Law and Business meet - that's where we are.\n \n \n Legal Insight - Business Instinct - Innovative Experience.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.BladeIndustries]: new FactionInfo({\n infoText: <>Augmentation is Salvation.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.NWO]: new FactionInfo({\n infoText: (\n <>\n Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given\n purpose and direction in life. That is why they created God. And that is why they created civilization - not\n because of willingness, but because of a need to be incorporated into higher orders of structure and meaning.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.ClarkeIncorporated]: new FactionInfo({\n infoText: <>The Power of the Genome - Unlocked.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.OmniTekIncorporated]: new FactionInfo({\n infoText: <>Simply put, our mission is to design and build robots that make a difference.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.FourSigma]: new FactionInfo({\n infoText: (\n <>\n The scientific method is the best way to approach investing. Big strategies backed up with big data. Driven by\n deep learning and innovative ideas. And improved by iteration. That's {FactionNames.FourSigma}.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n [FactionNames.KuaiGongInternational]: new FactionInfo({\n infoText: <>Dream big. Work hard. Make history.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Other Corporations\n [FactionNames.FulcrumSecretTechnologies]: new FactionInfo({\n infoText: (\n <>\n The human organism has an innate desire to worship. That is why they created gods. If there were no gods, it\n would be necessary to create them. And now we can.\n >\n ),\n offerHackingWork: true,\n offerSecurityWork: true,\n keepOnInstall: true,\n }),\n\n // Hacker groups\n [FactionNames.BitRunners]: new FactionInfo({\n infoText: (\n <>\n Our entire lives are controlled by bits. All of our actions, our thoughts, our personal information. It's all\n transformed into bits, stored in bits, communicated through bits. It’s impossible for any person to move, to\n live, to operate at any level without the use of bits. And when a person moves, lives, and operates, they leave\n behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be\n reconstructed. Transformed. Used.\n \n \n Those who run the bits, run the world.\n >\n ),\n offerHackingWork: true,\n }),\n\n [FactionNames.TheBlackHand]: new FactionInfo({\n infoText: (\n <>\n The world, so afraid of strong government, now has no government. Only power - Digital power. Financial power.\n Technological power. And those at the top rule with an invisible hand. They built a society where the rich get\n richer, and everyone else suffers.\n \n \n So much pain. So many lives. Their darkness must end.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n // prettier-ignore\n [FactionNames.NiteSec]: new FactionInfo({\n infoText:(<>\n {\" __..__ \"} \n {\" _.nITESECNIt. \"} \n {\" .-'NITESECNITESEc. \"} \n {\" .' NITESECNITESECn \"} \n {\" / NITESECNITESEC; \"} \n {\" : :NITESECNITESEC; \"} \n {\" ; $ NITESECNITESECN \"} \n {\" : _, ,N'ITESECNITESEC \"} \n {\" : .+^^`, : `NITESECNIT \"} \n {\" ) /), `-,-=,NITESECNI \"} \n {\" / ^ ,-;|NITESECN; \"} \n {\" / _.' '-';NITESECN \"} \n {\" ( , ,-''`^NITE' \"} \n {\" )` :`. .' \"} \n {\" )-- ; `- / \"} \n {\" ' _.-' : \"} \n {\" ( _.-' . \"} \n {\" ------. \"} \n {\" . \"} \n {\" _.nIt \"} \n {\" _.nITESECNi \"} \n {\" nITESECNIT^' \"} \n {\" NITE^' ___ \"} \n {\" / .gP''''Tp. \"} \n {\" : d' . `b \"} \n {\" ; d' o `b ; \"} \n {\" / d; `b| \"} \n {\" /, $; @ `: \"} \n {\" /' $/ ; \"} \n {\" .' $/b o | \"} \n {\" .' d$/$; : \"} \n {\" / .d/$/$; , ; \"} \n {\" d .dNITESEC $ | \"} \n {\" :bp.__.gNITESEC/$ :$ ; \"} \n {\" NITESECNITESECNIT /$b : \"} >),\n offerHackingWork: true,\n offerFieldWork: false,\n offerSecurityWork: false,\n special: false,\n keepOnInstall: false,\n }),\n\n // City factions, essentially governments\n [FactionNames.Aevum]: new FactionInfo({\n infoText: <>The Silicon City.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Chongqing]: new FactionInfo({\n infoText: <>Serve the People.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Ishima]: new FactionInfo({\n infoText: <>The East Asian Order of the Future.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.NewTokyo]: new FactionInfo({\n infoText: <>Asia's World City.>,\n enemies: [FactionNames.Sector12, FactionNames.Aevum, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Sector12]: new FactionInfo({\n infoText: <>The City of the Future.>,\n enemies: [FactionNames.Chongqing, FactionNames.NewTokyo, FactionNames.Ishima, FactionNames.Volhaven],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n [FactionNames.Volhaven]: new FactionInfo({\n infoText: <>Benefit, Honor, and Glory.>,\n enemies: [\n FactionNames.Chongqing,\n FactionNames.Sector12,\n FactionNames.NewTokyo,\n FactionNames.Aevum,\n FactionNames.Ishima,\n ],\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Criminal Organizations/Gangs\n [FactionNames.SpeakersForTheDead]: new FactionInfo({\n infoText: <>It is better to reign in Hell than to serve in Heaven.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.TheDarkArmy]: new FactionInfo({\n infoText: <>The World doesn't care about right or wrong. It only cares about power.>,\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.TheSyndicate]: new FactionInfo({\n infoText: <>Honor holds you back.>,\n offerHackingWork: true,\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.Silhouette]: new FactionInfo({\n infoText: (\n <>\n Corporations have filled the void of power left behind by the collapse of Western government. The issue is\n they've become so big that you don't know who they're working for. And if you're employed at one of these\n corporations, you don't even know who you're working for.\n \n \n That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system.\n >\n ),\n offerHackingWork: true,\n offerFieldWork: true,\n }),\n\n [FactionNames.Tetrads]: new FactionInfo({\n infoText: <>Following the mandate of Heaven and carrying out the way.>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n [FactionNames.SlumSnakes]: new FactionInfo({\n infoText: <>{FactionNames.SlumSnakes} rule!>,\n\n offerFieldWork: true,\n offerSecurityWork: true,\n }),\n\n // Earlygame factions - factions the player will prestige with early on that don't belong in other categories.\n [FactionNames.Netburners]: new FactionInfo({\n infoText: <>{\"~~//*>H4CK||3T 8URN3R5**>?>\\\\~~\"}>,\n offerHackingWork: true,\n }),\n\n [FactionNames.TianDiHui]: new FactionInfo({\n infoText: <>Obey Heaven and work righteously.>,\n offerHackingWork: true,\n\n offerSecurityWork: true,\n }),\n\n [FactionNames.CyberSec]: new FactionInfo({\n infoText: (\n <>\n The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy\n that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of\n total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse.\n >\n ),\n offerHackingWork: true,\n }),\n\n // Special Factions\n [FactionNames.Bladeburners]: new FactionInfo({\n infoText: (\n <>\n It's too bad they won't live. But then again, who does?\n \n \n Note that for this faction, reputation can only be gained through {FactionNames.Bladeburners} actions.{\" \"}\n Completing {FactionNames.Bladeburners} contracts/operations will increase your reputation.\n >\n ),\n\n special: true,\n assignment: (): React.ReactElement => {\n const router = use.Router();\n return (\n