{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Player.ts","webpack:///./src/Faction/data/FactionNames.ts","webpack:///./src/ui/numeralFormat.ts","webpack:///./src/Settings/Settings.ts","webpack:///./src/Constants.ts","webpack:///./src/Locations/data/LocationNames.ts","webpack:///./src/Augmentation/data/AugmentationNames.ts","webpack:///./src/ui/React/DialogBox.tsx","webpack:///./src/Locations/data/CityNames.ts","webpack:///./src/ui/React/Money.tsx","webpack:///./src/BitNode/BitNodeMultipliers.ts","webpack:///./src/utils/StringHelperFunctions.ts","webpack:///./src/Server/AllServers.ts","webpack:///./src/ui/Router.ts","webpack:///./src/utils/helpers/keyCodes.ts","webpack:///./src/utils/JSONReviver.ts","webpack:///./src/Faction/Factions.ts","webpack:///./src/ui/Context.ts","webpack:///./src/Company/data/companypositionnames.ts","webpack:///./src/utils/helpers/getRandomInt.ts","webpack:///./src/Netscript/RamCostGenerator.ts","webpack:///./src/Corporation/data/Constants.ts","webpack:///./src/ui/React/Modal.tsx","webpack:///./src/Hacknet/data/Constants.ts","webpack:///./src/Augmentation/Augmentation.tsx","webpack:///./src/Bladeburner/data/ActionTypes.ts","webpack:///./src/BitNode/BitNode.tsx","webpack:///./src/InteractiveTutorial.ts","webpack:///./src/Server/Server.ts","webpack:///./src/Corporation/EmployeePositions.ts","webpack:///./src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx","webpack:///./src/Corporation/ui/Context.ts","webpack:///./src/Corporation/IndustryData.tsx","webpack:///./src/Locations/LocationTypeEnum.ts","webpack:///./src/Hacknet/HacknetHelpers.tsx","webpack:///./src/Bladeburner/data/BlackOperationNames.ts","webpack:///./src/ui/React/Table.tsx","webpack:///./src/Bladeburner/data/Constants.ts","webpack:///./src/Corporation/Actions.ts","webpack:///./src/Literature/data/LiteratureNames.ts","webpack:///./src/Programs/Programs.ts","webpack:///./src/Augmentation/Augmentations.ts","webpack:///./src/Company/Companies.ts","webpack:///./src/CotMG/FragmentType.ts","webpack:///./src/StockMarket/data/PositionTypes.ts","webpack:///./src/PersonObjects/Sleeve/SleeveTaskTypesEnum.ts","webpack:///./src/Terminal/DirectoryHelpers.ts","webpack:///./src/Crime/Crimes.ts","webpack:///./src/Casino/utils.ts","webpack:///./src/Terminal.ts","webpack:///./src/Gang/AllGangs.ts","webpack:///./src/ui/GameRoot.tsx","webpack:///./src/Hacknet/HacknetServer.ts","webpack:///./src/Company/CompanyPositions.ts","webpack:///./src/ui/React/StatsRow.tsx","webpack:///./src/Server/data/SpecialServers.ts","webpack:///./src/ui/React/Snackbar.tsx","webpack:///./src/StockMarket/data/StockSymbols.ts","webpack:///./src/Script/isScriptFilename.ts","webpack:///./src/CotMG/Helper.tsx","webpack:///./src/Hacking.ts","webpack:///./src/StockMarket/StockMarket.tsx","webpack:///./src/Faction/FactionHelpers.tsx","webpack:///./src/Exploits/Exploit.ts","webpack:///./src/NetscriptEvaluator.ts","webpack:///./src/SaveObject.tsx","webpack:///./src/ui/React/MoneyRate.tsx","webpack:///./src/CodingContracts.ts","webpack:///./src/StockMarket/data/OrderTypes.ts","webpack:///./src/CotMG/Fragment.ts","webpack:///./src/ui/React/Reputation.tsx","webpack:///./src/ScriptEditor/ui/themes.ts","webpack:///./src/utils/EventEmitter.ts","webpack:///./src/DevMenu/ui/Adjuster.tsx","webpack:///./src/Server/ServerHelpers.ts","webpack:///./src/Corporation/data/BaseResearchTree.ts","webpack:///./src/Augmentation/AugmentationHelpers.tsx","webpack:///./src/Infiltration/utils.ts","webpack:///./src/Bladeburner/data/SkillNames.ts","webpack:///./src/Bladeburner/BlackOperation.ts","webpack:///./src/Gang/ui/Context.ts","webpack:///./src/Netscript/killWorkerScript.ts","webpack:///./src/Corporation/ui/MoneyCost.tsx","webpack:///./src/utils/helpers/isString.ts","webpack:///./src/StockMarket/Stock.ts","webpack:///./src/Locations/Cities.ts","webpack:///./src/Alias.ts","webpack:///./src/Literature/Literature.ts","webpack:///./src/Themes/ui/Theme.tsx","webpack:///./src/ui/React/OptionSwitch.tsx","webpack:///./src/ui/React/CopyableText.tsx","webpack:///./src/Corporation/MaterialSizes.ts","webpack:///./src/Netscript/ScriptDeath.ts","webpack:///./src/PersonObjects/formulas/skill.ts","webpack:///./src/Gang/data/upgrades.ts","webpack:///./src/ui/React/LogBoxManager.tsx","webpack:///./src/Netscript/WorkerScripts.ts","webpack:///./src/Hacknet/formulas/HacknetServers.ts","webpack:///./src/Faction/FactionWorkTypeEnum.ts","webpack:///./src/utils/helpers/createProgressBarText.ts","webpack:///./src/NetscriptWorker.ts","webpack:///./src/ui/React/StatsTable.tsx","webpack:///./src/Corporation/Material.ts","webpack:///./src/Gang/formulas/formulas.ts","webpack:///./src/Faction/Faction.ts","webpack:///./src/Bladeburner/Bladeburner.tsx","webpack:///./src/Settings/SettingEnums.ts","webpack:///./src/Hacknet/formulas/HacknetNodes.ts","webpack:///./src/Casino/Game.tsx","webpack:///./src/CotMG/data/Shapes.ts","webpack:///./src/Infiltration/ui/KeyHandler.tsx","webpack:///./src/Infiltration/ui/GameTimer.tsx","webpack:///./src/Infiltration/ui/Difficulty.ts","webpack:///./src/Locations/Locations.ts","webpack:///./src/Gang/data/Constants.ts","webpack:///./src/Hacknet/HacknetNode.ts","webpack:///./src/Server/ServerPurchases.ts","webpack:///./src/TextFile.ts","webpack:///./src/Bladeburner/Skills.ts","webpack:///./src/Gang/GangMemberUpgrades.ts","webpack:///./src/StockMarket/StockMarketHelpers.ts","webpack:///./src/StockMarket/StockMarketCosts.ts","webpack:///./src/Script/ScriptHelpers.ts","webpack:///./src/ui/React/Hashes.tsx","webpack:///./src/Company/Company.ts","webpack:///./src/Corporation/Warehouse.ts","webpack:///./src/Gang/GangMemberTasks.ts","webpack:///./src/Hacknet/HashUpgrades.ts","webpack:///./src/PersonObjects/formulas/reputation.ts","webpack:///./src/StockMarket/BuyingAndSelling.tsx","webpack:///./src/Terminal/ITerminal.tsx","webpack:///./src/Bladeburner/Skill.ts","webpack:///./src/ui/React/ConfirmationModal.tsx","webpack:///./src/hash/hash.ts","webpack:///./src/Script/Script.ts","webpack:///./src/utils/helpers/arrayToString.ts","webpack:///./src/DarkWeb/DarkWebItems.ts","webpack:///./src/Bladeburner/GeneralActions.tsx","webpack:///./src/Casino/CardDeck/Card.ts","webpack:///./src/Bladeburner/ActionIdentifier.ts","webpack:///./src/SourceFile/SourceFile.ts","webpack:///./src/PersonObjects/Person.ts","webpack:///./src/MathJaxWrapper.tsx","webpack:///./src/utils/helpers/exceptionAlert.ts","webpack:///./src/Corporation/data/CorporationUnlockUpgrades.ts","webpack:///./src/Bladeburner/BlackOperations.tsx","webpack:///./src/CotMG/ActiveFragment.ts","webpack:///./src/Crime/Crime.ts","webpack:///./src/PersonObjects/formulas/intelligence.ts","webpack:///./src/Corporation/ResearchMap.ts","webpack:///./src/GameOptions/GameOptionsTab.ts","webpack:///./src/Message/Message.ts","webpack:///./src/Locations/ui/ApplyToJobButton.tsx","webpack:///./src/Netscript/WorkerScriptStartStopEventEmitter.ts","webpack:///./src/Electron.tsx","webpack:///./src/Achievements/Achievements.ts","webpack:///./src/ui/React/CharacterOverview.tsx","webpack:///./src/utils/helpers/addOffset.ts","webpack:///./src/DarkWeb/DarkWebItem.ts","webpack:///./src/Casino/RNG.ts","webpack:///./src/utils/helpers/compareArrays.ts","webpack:///./src/Corporation/IndustryUpgrades.ts","webpack:///./src/ui/React/Favor.tsx","webpack:///./src/PersonObjects/Sleeve/Sleeve.ts","webpack:///./src/Script/RamCalculationErrorCodes.ts","webpack:///./src/Terminal/TerminalEvents.ts","webpack:///./src/Faction/ui/Option.tsx","webpack:///./src/StockMarket/OrderProcessing.tsx","webpack:///./src/Themes/Themes.ts","webpack:///./src/ui/React/AlertManager.tsx","webpack:///./src/utils/IPAddress.ts","webpack:///./src/db.tsx","webpack:///./src/Message/MessageHelpers.ts","webpack:///./src/Faction/formulas/favor.ts","webpack:///./src/ExportBonus.tsx","webpack:///./src/Bladeburner/Operation.ts","webpack:///./src/PersonObjects/Grafting/GraftingHelpers.ts","webpack:///./src/Server/data/servers.ts","webpack:///./src/Augmentation/PlayerOwnedAugmentation.ts","webpack:///./src/Company/CompanyPosition.ts","webpack:///./src/Script/RunningScript.ts","webpack:///./src/SourceFile/SourceFiles.tsx","webpack:///./src/Bladeburner/ui/StartButton.tsx","webpack:///./src/utils/helpers/formatTime.ts","webpack:///./src/Faction/FactionInfo.tsx","webpack:///./src/Corporation/data/CorporationUpgrades.ts","webpack:///./src/Hacknet/HashManager.ts","webpack:///./src/CodingContractGenerator.ts","webpack:///./src/ui/InteractiveTutorial/ITutorialEvents.ts","webpack:///./src/Crime/CrimeHelpers.ts","webpack:///./src/Corporation/OfficeSpace.ts","webpack:///./src/utils/Validator.ts","webpack:///./src/utils/MoneySourceTracker.ts","webpack:///./src/ui/React/StatsProgressBar.tsx","webpack:///./src/Themes/Styles.ts","webpack:///./src/Hospital/Hospital.ts","webpack:///./src/ui/React/PromptManager.tsx","webpack:///./src/Corporation/Product.ts","webpack:///./src/Corporation/ui/Helpers.tsx","webpack:///./src/Programs/ui/ProgramsRoot.tsx","webpack:///./src/Faction/ui/FactionsRoot.tsx","webpack:///./src/RedPill.tsx","webpack:///./src/ui/React/RecoveryRoot.tsx","webpack:///./src/NetworkShare/Share.tsx","webpack:///./src/Corporation/Corporation.tsx","webpack:///./src/Netscript/WorkerScript.ts","webpack:///./src/ui/React/HashRate.tsx","webpack:///./src/Bladeburner/City.ts","webpack:///./src/PersonObjects/Player/PlayerObjectGangMethods.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/Bladeburner/Action.tsx","webpack:///./src/Literature/LiteratureHelpers.ts","webpack:///./src/Prestige.ts","webpack:///./src/Netscript/RecentScripts.ts","webpack:///./src/utils/helpers/checkEnum.ts","webpack:///./src/ui/Apr1.tsx","webpack:///./src/ui/React/WorldMap.tsx","webpack:///./src/Bladeburner/ui/SuccessChance.tsx","webpack:///./src/ui/React/StaticModal.tsx","webpack:///./src/ui/React/CorruptableText.tsx","webpack:///./src/DarkWeb/DarkWeb.tsx","webpack:///./src/Hacking/netscriptCanHack.ts","webpack:///./src/PersonObjects/Grafting/GraftableAugmentation.ts","webpack:///./src/ui/React/ReputationRate.tsx","webpack:///./src/Terminal/Parser.ts","webpack:///./src/ui/React/CinematicText.tsx","webpack:///./src/PersonObjects/Sleeve/SleeveCovenantPurchases.tsx","webpack:///./src/Augmentation/AugmentationCreator.tsx","webpack:///./src/Script/RamCalculations.ts","webpack:///./src/utils/helpers/roundToTwo.ts","webpack:///./src/Gang/Gang.ts","webpack:///./src/Netscript/Pid.ts","webpack:///./src/NetscriptFunctions.ts","webpack:///./src/StockMarket/PlayerInfluencing.ts","webpack:///./src/Faction/formulas/donation.ts","webpack:///./src/Company/GetJobRequirementText.ts","webpack:///./src/Terminal/HelpText.ts","webpack:///./src/utils/ErrorHelper.ts","webpack:///./src/utils/helpers/getRandomByte.ts","webpack:///./src/Bladeburner/data/Growths.ts","webpack:///./src/Locations/createCityMap.ts","webpack:///./src/GameOptions/ui/GameOptionsPage.tsx","webpack:///./src/Casino/CardDeck/Hand.ts","webpack:///./src/StockMarket/ui/StockTickerTxButton.tsx","webpack:///./src/CotMG/ui/DummyGrid.tsx","webpack:///./src/Server/BaseServer.ts","webpack:///./src/ui/React/CodingContractModal.tsx","webpack:///./src/BitNode/ui/BitFlumeModal.tsx","webpack:///./src/PersonObjects/Player/PlayerObject.ts","webpack:///./src/Faction/ui/InvitationModal.tsx","webpack:///./src/Gang/GangMemberTask.ts","webpack:///./src/ThirdParty/JSInterpreter.js","webpack:///./src/Server/formulas/grow.ts","webpack:///./src/PersonObjects/Sleeve/SleeveHelpers.ts","webpack:///./src/CotMG/StaneksGiftEvents.ts","webpack:///./src/Terminal/commands/download.ts","webpack:///./src/SourceFile/PlayerOwnedSourceFile.ts","webpack:///./src/Bladeburner/data/Icons.tsx","webpack:///./src/Bladeburner/ui/ActionLevel.tsx","webpack:///./src/Bladeburner/ui/Autolevel.tsx","webpack:///./src/Bladeburner/ui/TeamSizeButton.tsx","webpack:///./src/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/Locations/ui/TravelAgencyRoot.tsx","webpack:///./src/ScriptEditor/ui/ScriptEditorRoot.tsx","webpack:///./src/Terminal/DirectoryServerHelpers.ts","webpack:///./src/NetscriptJSEvaluator.ts","webpack:///./src/NetscriptFunctions/Flags.ts","webpack:///./src/NetscriptFunctions/toNative.ts","webpack:///./src/ui/React/TablePaginationActionsAll.tsx","webpack:///./src/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/PersonObjects/Player/PlayerObjectBladeburnerMethods.ts","webpack:///./src/Bladeburner/Contract.ts","webpack:///./src/Bladeburner/data/Help.ts","webpack:///./src/PersonObjects/Player/PlayerObjectCorporationMethods.ts","webpack:///./src/Corporation/ResearchTree.ts","webpack:///./src/StockMarket/StockMarketConstants.ts","webpack:///./src/CotMG/data/Constants.ts","webpack:///./src/Company/GetNextCompanyPosition.ts","webpack:///./src/engine.tsx","webpack:///./src/Themes/data/index.ts","webpack:///./src/ui/LoadingScreen.tsx","webpack:///./src/PersonObjects/Player/PlayerObjectAugmentationMethods.ts","webpack:///./src/utils/helpers/isValidNumber.ts","webpack:///./src/StockMarket/Order.ts","webpack:///./src/CotMG/StaneksGift.ts","webpack:///./src/Locations/Location.ts","webpack:///./src/PersonObjects/Sleeve/ui/StatsElement.tsx","webpack:///./src/ui/React/ServerDropdown.tsx","webpack:///./src/Casino/Blackjack.tsx","webpack:///./src/Casino/CardDeck/ReactCard.tsx","webpack:///./src/Milestones/Milestones.ts","webpack:///./src/StockMarket/data/TickerHeaderFormatData.ts","webpack:///./src/Achievements/AchievementEntry.tsx","webpack:///./src/ThirdParty/colorUtils.ts","webpack:///./src/Netscript/APIWrapper.ts","webpack:///./src/PersonObjects/formulas/work.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/Grafting/EntropyAccumulation.ts","webpack:///./src/utils/helpers/getTimestamp.ts","webpack:///./src/NetworkShare/formulas/share.tsx","webpack:///./src/Corporation/CorporationState.ts","webpack:///./src/Literature/Literatures.ts","webpack:///./src/Gang/data/tasks.ts","webpack:///./src/Gang/GangMember.ts","webpack:///./src/Gang/GangMemberUpgrade.ts","webpack:///./src/Gang/data/power.ts","webpack:///./src/Company/data/CompaniesMetadata.ts","webpack:///./src/Corporation/Research.ts","webpack:///./src/Corporation/data/ResearchMetadata.ts","webpack:///./src/Hacknet/HashUpgrade.ts","webpack:///./src/Hacknet/data/HashUpgradesMetadata.tsx","webpack:///./src/Netscript/Environment.ts","webpack:///./src/utils/helpers/isPowerOfTwo.ts","webpack:///./src/StockMarket/data/InitStockMetadata.ts","webpack:///./src/NetscriptFunctions/Gang.ts","webpack:///./src/NetscriptFunctions/Sleeve.ts","webpack:///./src/NetscriptFunctions/Extra.ts","webpack:///./src/NetscriptFunctions/Hacknet.ts","webpack:///./src/NetscriptFunctions/Stanek.ts","webpack:///./src/CotMG/formulas/effect.ts","webpack:///./src/NetscriptFunctions/UserInterface.ts","webpack:///./src/NetscriptFunctions/Bladeburner.ts","webpack:///./src/NetscriptFunctions/CodingContract.ts","webpack:///./src/utils/helpers/is2DArray.ts","webpack:///./src/NetscriptFunctions/Corporation.ts","webpack:///./src/Corporation/Industry.ts","webpack:///./src/utils/calculateEffectWithFactors.ts","webpack:///./src/Corporation/Employee.ts","webpack:///./src/Corporation/ProductRatingWeights.ts","webpack:///./src/NetscriptFunctions/Formulas.ts","webpack:///./src/NetscriptFunctions/StockMarket.ts","webpack:///./src/NetscriptFunctions/Grafting.ts","webpack:///./src/utils/v1APIBreak.ts","webpack:///./src/Locations/data/LocationsMetadata.ts","webpack:///./src/ui/InteractiveTutorial/InteractiveTutorialRoot.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/Achievements.tsx","webpack:///./src/DevMenu/ui/Entropy.tsx","webpack:///./src/Bladeburner/ui/BladeburnerRoot.tsx","webpack:///./src/Bladeburner/ui/Stats.tsx","webpack:///./src/Bladeburner/ui/TravelModal.tsx","webpack:///./src/Bladeburner/ui/Console.tsx","webpack:///./src/Bladeburner/ui/AllPages.tsx","webpack:///./src/Bladeburner/ui/GeneralActionPage.tsx","webpack:///./src/Bladeburner/ui/GeneralActionList.tsx","webpack:///./src/Bladeburner/ui/GeneralActionElem.tsx","webpack:///./src/Bladeburner/data/GeneralActions.tsx","webpack:///./src/Bladeburner/ui/ContractPage.tsx","webpack:///./src/Bladeburner/ui/ContractList.tsx","webpack:///./src/Bladeburner/ui/ContractElem.tsx","webpack:///./src/Bladeburner/data/Contracts.tsx","webpack:///./src/Bladeburner/ui/StealthIcon.tsx","webpack:///./src/Bladeburner/ui/KillIcon.tsx","webpack:///./src/Bladeburner/ui/OperationPage.tsx","webpack:///./src/Bladeburner/ui/OperationList.tsx","webpack:///./src/Bladeburner/ui/OperationElem.tsx","webpack:///./src/Bladeburner/ui/TeamSizeModal.tsx","webpack:///./src/Bladeburner/data/Operations.tsx","webpack:///./src/Bladeburner/ui/BlackOpPage.tsx","webpack:///./src/Bladeburner/ui/BlackOpList.tsx","webpack:///./src/Bladeburner/ui/BlackOpElem.tsx","webpack:///./src/Bladeburner/data/BlackOperations.tsx","webpack:///./src/Bladeburner/ui/SkillPage.tsx","webpack:///./src/Bladeburner/ui/SkillList.tsx","webpack:///./src/Bladeburner/ui/SkillElem.tsx","webpack:///./src/Gang/ui/GangRoot.tsx","webpack:///./src/Gang/ui/ManagementSubpage.tsx","webpack:///./src/Gang/ui/GangStats.tsx","webpack:///./src/Gang/ui/BonusTime.tsx","webpack:///./src/Gang/ui/GangMemberList.tsx","webpack:///./src/Gang/ui/GangMemberCard.tsx","webpack:///./src/Gang/ui/GangMemberCardContent.tsx","webpack:///./src/Gang/ui/GangMemberStats.tsx","webpack:///./src/ui/React/KillScriptsModal.tsx","webpack:///./src/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/Intro.tsx","webpack:///./src/Infiltration/ui/Game.tsx","webpack:///./src/Infiltration/ui/Countdown.tsx","webpack:///./src/Infiltration/ui/BracketGame.tsx","webpack:///./src/Infiltration/ui/SlashGame.tsx","webpack:///./src/Infiltration/ui/BackwardGame.tsx","webpack:///./src/Infiltration/ui/BribeGame.tsx","webpack:///./src/Infiltration/ui/CheatCodeGame.tsx","webpack:///./src/Infiltration/ui/Cyberpunk2077Game.tsx","webpack:///./src/Infiltration/ui/MinesweeperGame.tsx","webpack:///./src/Infiltration/ui/WireCuttingGame.tsx","webpack:///./src/Infiltration/ui/Victory.tsx","webpack:///./src/PersonObjects/Grafting/ui/GraftingRoot.tsx","webpack:///./src/ui/WorkInProgressRoot.tsx","webpack:///./src/GameOptions/ui/GameOptionsRoot.tsx","webpack:///./src/GameOptions/ui/CurrentOptionsPage.tsx","webpack:///./src/GameOptions/ui/GameOptionsSidebar.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveElem.tsx","webpack:///./src/PersonObjects/Sleeve/ui/SleeveAugmentationsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TravelModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreStatsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/MoreEarningsModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/TaskSelector.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/data/CompanyPositionsMetadata.ts","webpack:///./src/Company/ui/QuitJobModal.tsx","webpack:///./src/Locations/ui/GymLocation.tsx","webpack:///./src/Locations/ui/HospitalLocation.tsx","webpack:///./src/Locations/ui/SlumsLocation.tsx","webpack:///./src/Locations/ui/SpecialLocation.tsx","webpack:///./src/Corporation/ui/modals/CreateCorporationModal.tsx","webpack:///./src/utils/helpers/N00dles.ts","webpack:///./src/Arcade/ui/ArcadeRoot.tsx","webpack:///./src/Arcade/ui/BBCabinet.tsx","webpack:///./src/Locations/ui/TechVendorLocation.tsx","webpack:///./src/Locations/ui/RamButton.tsx","webpack:///./src/Locations/ui/TorButton.tsx","webpack:///./src/Locations/LocationsHelpers.tsx","webpack:///./src/Locations/ui/CoresButton.tsx","webpack:///./src/Locations/ui/PurchaseServerModal.tsx","webpack:///./src/Locations/ui/TravelConfirmationModal.tsx","webpack:///./src/Locations/ui/UniversityLocation.tsx","webpack:///./src/Locations/ui/CasinoLocation.tsx","webpack:///./src/Casino/CardDeck/Deck.ts","webpack:///./src/Casino/CoinFlip.tsx","webpack:///./src/Casino/Roulette.tsx","webpack:///./src/Casino/SlotMachine.tsx","webpack:///./src/Locations/ui/City.tsx","webpack:///./src/ScriptEditor/ui/OptionsModal.tsx","webpack:///./src/ScriptEditor/ui/ThemeEditorModal.tsx","webpack:///./src/ScriptEditor/NetscriptDefinitions.d.ts","webpack:///./src/Milestones/ui/MilestonesRoot.tsx","webpack:///./src/Terminal/ui/TerminalRoot.tsx","webpack:///./src/Terminal/ui/TerminalInput.tsx","webpack:///./src/Terminal/determineAllPossibilitiesForTabCompletion.ts","webpack:///./src/Script/ScriptUrl.ts","webpack:///./src/Terminal/tabCompletion.ts","webpack:///./src/Tutorial/ui/TutorialRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsRoot.tsx","webpack:///./src/ui/ActiveScripts/ActiveScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/ScriptProduction.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordions.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordion.tsx","webpack:///./src/ui/ActiveScripts/ServerAccordionContent.tsx","webpack:///./src/ui/ActiveScripts/WorkerScriptAccordion.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptsPage.tsx","webpack:///./src/ui/ActiveScripts/RecentScriptAccordion.tsx","webpack:///./src/Faction/ui/FactionRoot.tsx","webpack:///./src/Faction/ui/AugmentationsPage.tsx","webpack:///./src/Faction/ui/PurchaseableAugmentation.tsx","webpack:///./src/Faction/ui/PurchaseAugmentationModal.tsx","webpack:///./src/ui/React/Augmentation.tsx","webpack:///./src/Faction/ui/DonateOption.tsx","webpack:///./src/Faction/ui/Info.tsx","webpack:///./src/Faction/ui/CreateGangModal.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantPurchasesRoot.tsx","webpack:///./src/PersonObjects/Sleeve/ui/CovenantSleeveMemoryUpgrade.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/BitNode/ui/BitnodeMultipliersDescription.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/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/NetscriptPort.ts","webpack:///./src/utils/helpers/clearObject.ts","webpack:///./src/SourceFile/applySourceFile.ts","webpack:///./src/Exploits/applyExploits.ts","webpack:///./src/Terminal/commands/alias.ts","webpack:///./src/Terminal/commands/analyze.ts","webpack:///./src/Terminal/commands/backdoor.ts","webpack:///./src/Terminal/commands/buy.ts","webpack:///./src/Terminal/commands/cat.ts","webpack:///./src/Terminal/commands/cd.ts","webpack:///./src/Terminal/commands/check.ts","webpack:///./src/Terminal/commands/connect.ts","webpack:///./src/Terminal/commands/cp.ts","webpack:///./src/Terminal/commands/expr.ts","webpack:///./src/Terminal/commands/free.ts","webpack:///./src/Terminal/commands/grow.ts","webpack:///./src/Terminal/commands/hack.ts","webpack:///./src/Terminal/commands/help.ts","webpack:///./src/Terminal/commands/history.ts","webpack:///./src/Terminal/commands/home.ts","webpack:///./src/Terminal/commands/hostname.ts","webpack:///./src/Terminal/commands/kill.ts","webpack:///./src/Terminal/commands/killall.ts","webpack:///./src/Terminal/commands/ls.tsx","webpack:///./src/Terminal/commands/lscpu.ts","webpack:///./src/Terminal/commands/mem.ts","webpack:///./src/Terminal/commands/mv.ts","webpack:///./src/Terminal/commands/nano.ts","webpack:///./src/ScriptEditor/CursorPositions.ts","webpack:///./src/Terminal/commands/ps.ts","webpack:///./src/Terminal/commands/rm.ts","webpack:///./src/Terminal/commands/run.ts","webpack:///./src/Terminal/commands/runScript.ts","webpack:///./src/Terminal/commands/runProgram.ts","webpack:///./src/Terminal/commands/scan.ts","webpack:///./src/Terminal/commands/scananalyze.ts","webpack:///./src/Terminal/commands/scp.ts","webpack:///./src/Terminal/commands/sudov.ts","webpack:///./src/Terminal/commands/tail.ts","webpack:///./src/Terminal/commands/top.ts","webpack:///./src/Terminal/commands/unalias.ts","webpack:///./src/Terminal/commands/vim.ts","webpack:///./src/Terminal/commands/weaken.ts","webpack:///./src/Terminal/commands/wget.ts","webpack:///./src/Terminal/commands/apr1.ts","webpack:///./src/Exploits/loops.ts","webpack:///./src/UncaughtPromiseHandler.ts","webpack:///./src/index.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Player","PlayerObject","loadPlayer","saveString","JSON","parse","Reviver","money","parseFloat","exploits","sanitizeExploits","FactionNames","extraFormats","extraNotations","gigaMultiplier","numeralWrapper","constructor","this","defaultLocale","updateLocale","numeral","locale","console","warn","format","Math","abs","answer","formatBigNumber","formatReallyBigNumber","decimalPlaces","nAbs","Infinity","repeat","str","formatHp","formatMoney","formatSkill","formatExp","formatHashes","formatReputation","formatFavor","formatSecurity","toFixed","formatRAM","Settings","UseIEC60027_2","formatPercentage","formatter","formatServerSecurity","formatRespect","formatWanted","formatMultiplier","formatSleeveShock","formatSleeveSynchro","formatSleeveMemory","formatPopulation","formatStamina","formatShares","formatInfiltrationSecurity","formatThreads","formatStaneksGiftHeat","formatStaneksGiftCharge","formatStaneksGiftPower","parseCustomLargeNumber","numericRegExp","RegExp","join","match","NaN","number","notation","notationIndex","indexOf","largestAbsoluteNumber","n1","n2","n3","isNaN","max","parseMoney","numeralValue","parsed","selfParsed","defaultSettings","ActiveScriptsServerPageSize","ActiveScriptsScriptPageSize","AutosaveInterval","CodeInstructionRunTime","DisableASCIIArt","DisableHotkeys","DisableTextEffects","DisableOverviewProgressBars","EnableBashHotkeys","TimestampsFormat","Locale","MaxRecentScriptsCapacity","MaxLogCapacity","MaxPortCapacity","MaxTerminalCapacity","SaveGameOnFileSave","SuppressBuyAugmentationConfirmation","SuppressFactionInvites","SuppressMessages","SuppressTravelConfirmation","SuppressBladeburnerPopup","SuppressTIXPopup","SuppressSavedGameToast","SuppressAutosaveDisabledWarnings","ExcludeRunningScriptsFromSave","IsSidebarOpened","theme","defaultTheme","styles","defaultStyles","overview","x","y","opened","EditorTheme","defaultMonacoTheme","OwnedAugmentationsOrder","OwnedAugmentationsOrderSetting","AcquirementTime","PurchaseAugmentationsOrder","PurchaseAugmentationsOrderSetting","Default","MonacoTheme","MonacoInsertSpaces","MonacoFontSize","MonacoVim","MonacoWordWrap","init","assign","load","save","CONSTANTS","VersionString","VersionNumber","_idleSpeed","MaxSkillLevel","MilliPerCycle","CorpFactionRepRequirement","BaseCostFor1GBOfRamHome","BaseCostFor1GBOfRamServer","TravelCost","BaseFavorToDonate","DonateMoneyToRepDivisor","FactionReputationToFavorBase","FactionReputationToFavorMult","CompanyReputationToFavorBase","CompanyReputationToFavorMult","NeuroFluxGovernorLevelMult","NumNetscriptPorts","HomeComputerMaxRam","ServerBaseGrowthRate","ServerMaxGrowthRate","ServerFortifyAmount","ServerWeakenAmount","PurchasedServerLimit","PurchasedServerMaxRam","MultipleAugMultiplier","TorRouterCost","WSEAccountCost","TIXAPICost","MarketData4SCost","MarketDataTixApi4SCost","StockMarketCommission","HospitalCostPerHp","IntelligenceCrimeWeight","IntelligenceInfiltrationWeight","IntelligenceCrimeBaseExpGain","IntelligenceProgramBaseExpGain","IntelligenceGraftBaseExpGain","IntelligenceTerminalHackBaseExpGain","IntelligenceSingFnBaseExpGain","IntelligenceClassBaseExpGain","MillisecondsPer20Hours","GameCyclesPer20Hours","MillisecondsPer10Hours","GameCyclesPer10Hours","MillisecondsPer8Hours","GameCyclesPer8Hours","MillisecondsPer4Hours","GameCyclesPer4Hours","MillisecondsPer2Hours","GameCyclesPer2Hours","MillisecondsPerHour","GameCyclesPerHour","MillisecondsPerHalfHour","GameCyclesPerHalfHour","MillisecondsPerQuarterHour","GameCyclesPerQuarterHour","MillisecondsPerFiveMinutes","GameCyclesPerFiveMinutes","BaseFocusBonus","FactionWorkHacking","FactionWorkField","FactionWorkSecurity","WorkTypeCompany","WorkTypeCompanyPartTime","WorkTypeFaction","WorkTypeCreateProgram","WorkTypeStudyClass","WorkTypeCrime","WorkTypeGraftAugmentation","ClassStudyComputerScience","ClassDataStructures","ClassNetworks","ClassAlgorithms","ClassManagement","ClassLeadership","ClassGymStrength","ClassGymDefense","ClassGymDexterity","ClassGymAgility","ClassDataStructuresBaseCost","ClassNetworksBaseCost","ClassAlgorithmsBaseCost","ClassManagementBaseCost","ClassLeadershipBaseCost","ClassGymBaseCost","ClassStudyComputerScienceBaseExp","ClassDataStructuresBaseExp","ClassNetworksBaseExp","ClassAlgorithmsBaseExp","ClassManagementBaseExp","ClassLeadershipBaseExp","CrimeShoplift","CrimeRobStore","CrimeMug","CrimeLarceny","CrimeDrugs","CrimeBondForgery","CrimeTraffickArms","CrimeHomicide","CrimeGrandTheftAuto","CrimeKidnap","CrimeAssassination","CrimeHeist","CodingContractBaseFactionRepGain","CodingContractBaseCompanyRepGain","CodingContractBaseMoneyGain","AugmentationGraftingCostMult","AugmentationGraftingTimeBase","EntropyEffect","TotalNumBitNodes","Donations","LatestUpdate","LocationName","AugmentationNames","dialogBoxCreate","txt","AlertEvents","emit","component","sx","dangerouslySetInnerHTML","__html","CityName","useStyles","makeStyles","createStyles","unbuyable","color","palette","action","disabled","colors","Money","props","classes","undefined","player","Error","canAfford","className","BitNodeMultipliers","defaultMultipliers","convertTimeMsToTimeElapsedString","time","showMilli","floor","totalSeconds","days","secondPerHours","secTruncDays","hours","secondPerMinute","secTruncHours","minutes","secTruncMinutes","milliTruncSec","res","longestCommonStart","strings","containsAllStrings","A","concat","sort","a1","a2","L","a","charAt","b","toUpperCase","substring","arr","every","isString","formatNumber","num","numFractionDigits","toLocaleString","maximumFractionDigits","minimumFractionDigits","generateRandomString","chars","random","cyrb53","seed","h1","h2","ch","charCodeAt","imul","toString","AllServers","GetServer","server","isValidIPAddress","hostname","keys","GetServerByHostname","ipserver","ip","GetServerByIP","GetAllServers","servers","DeleteServer","serverkey","ipExists","createUniqueRandomIp","createRandomIp","AddToAllServers","initForeignServers","homeComputer","networkLayers","propertiesToPatternMatch","toNumber","getRandomInt","min","metadata","serverMetadata","serverParams","numOpenPortsRequired","organizationName","maxRamExponent","maxRam","pow","prop","Server","filename","literature","messages","SpecialServers","WorldDaemon","requiredHackingSkill","WorldDaemonDifficulty","networkLayer","linkNetworkLayers","network1","selectServer","server1","server2","serversOnNetwork","getRandomArrayItem","prestigeAllServers","member","loadAllServers","saveAllServers","excludeRunningScripts","TempAllServers","stringify","runningScripts","runningScriptObj","logs","Page","KEY","ctor","constructors","fromJSON","obj","validationData","validateObject","Generic_toJSON","ctorName","index","Generic_fromJSON","Factions","loadFactions","faction","getInfo","err","error","factionExists","initFactions","FactionInfos","resetFaction","Faction","newFactionObject","factionName","favor","AddToFactions","Context","React","createContext","Router","use","useContext","SoftwareCompanyPositions","ITCompanyPositions","SecurityEngineerCompanyPositions","NetworkEngineerCompanyPositions","BusinessCompanyPositions","SecurityCompanyPositions","AgentCompanyPositions","MiscCompanyPositions","SoftwareConsultantCompanyPositions","BusinessConsultantCompanyPositions","PartTimeCompanyPositions","lower","upper","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","ScriptGetOwnedSourceFiles","ScriptSingularityFn1RamCost","ScriptSingularityFn2RamCost","ScriptSingularityFn3RamCost","ScriptGangApiBaseRamCost","ScriptBladeburnerApiBaseRamCost","ScriptStanekWidth","ScriptStanekHeight","ScriptStanekCharge","ScriptStanekFragmentDefinitions","ScriptStanekPlacedFragments","ScriptStanekClear","ScriptStanekCanPlace","ScriptStanekPlace","ScriptStanekFragmentAt","ScriptStanekDeleteAt","SF4Cost","cost","bitNodeN","sf4","sourceFileLvl","stock","getSymbols","getPrice","getAskPrice","getBidPrice","getPosition","getMaxShares","getPurchaseCost","getSaleGain","buy","sell","short","sellShort","placeOrder","cancelOrder","getOrders","getVolatility","getForecast","purchase4SMarketData","purchase4SMarketDataTixApi","purchaseWseAccount","purchaseTixApi","singularity","universityCourse","gymWorkout","travelToCity","goToLocation","purchaseTor","purchaseProgram","getCurrentServer","connect","manualHack","installBackdoor","getDarkwebProgramCost","getDarkwebPrograms","getStats","getCharacterInformation","hospitalize","isBusy","stopAction","upgradeHomeRam","upgradeHomeCores","getUpgradeHomeRamCost","getUpgradeHomeCoresCost","workForCompany","applyToCompany","getCompanyRep","getCompanyFavor","getCompanyFavorGain","checkFactionInvitations","joinFaction","workForFaction","getFactionRep","getFactionFavor","getFactionFavorGain","donateToFaction","createProgram","commitCrime","getCrimeChance","getCrimeStats","getOwnedAugmentations","getAugmentationsFromFaction","getAugmentationCost","getAugmentationPrereq","getAugmentationPrice","getAugmentationRepReq","getAugmentationStats","purchaseAugmentation","softReset","installAugmentations","isFocused","setFocus","b1tflum3","destroyW0r1dD43m0n","gang","createGang","inGang","getMemberNames","getGangInformation","getOtherGangInformation","getMemberInformation","canRecruitMember","recruitMember","getTaskNames","getTaskStats","setMemberTask","getEquipmentNames","getEquipmentCost","getEquipmentType","getEquipmentStats","purchaseEquipment","ascendMember","getAscensionResult","setTerritoryWarfare","getChanceToWinClash","getBonusTime","bladeburner","getContractNames","getOperationNames","getBlackOpNames","getBlackOpRank","getGeneralActionNames","getSkillNames","startAction","stopBladeburnerAction","getCurrentAction","getActionTime","getActionEstimatedSuccessChance","getActionRepGain","getActionCountRemaining","getActionMaxLevel","getActionCurrentLevel","getActionAutolevel","setActionAutolevel","setActionLevel","getRank","getSkillPoints","getSkillLevel","getSkillUpgradeCost","upgradeSkill","getTeamSize","setTeamSize","getCityEstimatedPopulation","getCityCommunities","getCityChaos","getCity","switchCity","getStamina","joinBladeburnerFaction","joinBladeburnerDivision","codingcontract","attempt","getContractType","getData","getDescription","getNumTriesRemaining","sleeve","getNumSleeves","setToShockRecovery","setToSynchronize","setToCommitCrime","setToUniversityCourse","travel","setToCompanyWork","setToFactionWork","setToGymWorkout","getSleeveStats","getTask","getInformation","getSleeveAugmentations","getSleevePurchasableAugs","purchaseSleeveAug","stanek","giftWidth","giftHeight","chargeFragment","fragmentDefinitions","activeFragments","clearGift","canPlaceFragment","placeFragment","getFragment","removeFragment","RamCosts","hacknet","numNodes","purchaseNode","getPurchaseNodeCost","getNodeStats","upgradeLevel","upgradeRam","upgradeCore","upgradeCache","getLevelUpgradeCost","getRamUpgradeCost","getCoreUpgradeCost","getCacheUpgradeCost","numHashes","hashCost","spendHashes","ui","getTheme","setTheme","resetTheme","getStyles","setStyles","resetStyles","getGameInfo","grafting","getAugmentationGraftPrice","getAugmentationGraftTime","getGraftableAugmentations","graftAugmentation","sprintf","vsprintf","scan","hack","hackAnalyzeThreads","hackAnalyze","hackAnalyzeSecurity","hackAnalyzeChance","sleep","asleep","share","getSharePower","grow","growthAnalyze","growthAnalyzeSecurity","weaken","weakenAnalyze","print","printf","tprint","clearLog","disableLog","enableLog","isLogEnabled","getScriptLogs","nuke","brutessh","ftpcrack","relaysmtp","httpworm","sqlinject","run","exec","spawn","kill","killall","exit","atExit","scp","ls","ps","getRecentScripts","hasRootAccess","getIp","getHostname","getHackingLevel","getHackingMultipliers","getHacknetMultipliers","getBitNodeMultipliers","getServer","getServerMoneyAvailable","getServerSecurityLevel","getServerBaseSecurityLevel","getServerMinSecurityLevel","getServerRequiredHackingLevel","getServerMaxMoney","getServerGrowth","getServerNumPortsRequired","getServerRam","getServerMaxRam","getServerUsedRam","serverExists","fileExists","isRunning","getPurchasedServerLimit","getPurchasedServerMaxRam","getPurchasedServerCost","purchaseServer","deleteServer","getPurchasedServers","write","tryWritePort","read","peek","clear","writePort","readPort","getPortHandle","rm","scriptRunning","scriptKill","getScriptName","getScriptRam","getHackTime","getGrowTime","getWeakenTime","getScriptIncome","getScriptExpGain","getRunningScript","nFormat","tFormat","getTimeSinceLastAug","prompt","wget","getFavorToDonate","getPlayer","mv","getOwnedSourceFiles","tail","toast","heart","break","getRamCost","args","curr","currType","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","DividendMaxPercentage","EmployeeSalaryMultiplier","CyclesPerEmployeeRaise","EmployeeRaiseAmount","BaseMaxProducts","AllMaterials","FundingRoundShares","FundingRoundMultiplier","AvgProfitLength","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","Augmentation","params","info","moneyCost","repCost","factions","prereqs","baseRepRequirement","baseCost","startingCost","isSpecial","level","hacking_mult","mults","strength_mult","defense_mult","dexterity_mult","agility_mult","charisma_mult","hacking_exp_mult","strength_exp_mult","defense_exp_mult","dexterity_exp_mult","agility_exp_mult","charisma_exp_mult","hacking_chance_mult","hacking_speed_mult","hacking_money_mult","hacking_grow_mult","company_rep_mult","faction_rep_mult","crime_money_mult","crime_success_mult","work_money_mult","hacknet_node_money_mult","hacknet_node_purchase_cost_mult","hacknet_node_ram_cost_mult","hacknet_node_core_cost_mult","hacknet_node_level_cost_mult","bladeburner_max_stamina_mult","bladeburner_stamina_gain_mult","bladeburner_analysis_mult","bladeburner_success_chance_mult","stats","programs","startingMoney","f","decimals","desc","generateStatsDescription","addToFactions","factionList","augmentations","addToAllFactions","fac","facObj","special","toJSON","ActionTypes","Idle","Contract","Operation","BlackOp","BlackOperation","Training","Recruitment","FieldAnalysis","Diplomacy","BitNode","difficulty","BitNodes","SlumSnakes","Tetrads","TheSyndicate","TheDarkArmy","SpeakersForTheDead","NiteSec","TheBlackHand","Bladeburners","OmniTekIncorporated","FulcrumSecretTechnologies","ChurchOfTheMachineGod","HackingLevelMultiplier","StrengthLevelMultiplier","DefenseLevelMultiplier","DexterityLevelMultiplier","AgilityLevelMultiplier","CharismaLevelMultiplier","ServerGrowthRate","ServerMaxMoney","ServerStartingMoney","ServerStartingSecurity","ServerWeakenRate","HomeComputerRamCost","PurchasedServerCost","PurchasedServerSoftcap","CompanyWorkMoney","CrimeMoney","HacknetNodeMoney","ManualHackMoney","ScriptHackMoney","ScriptHackMoneyGain","CodingContractMoney","ClassGymExpGain","CompanyWorkExpGain","CrimeExpGain","FactionWorkExpGain","HackExpGain","FactionPassiveRepGain","FactionWorkRepGain","RepToDonateToFaction","AugmentationMoneyCost","AugmentationRepCost","InfiltrationMoney","InfiltrationRep","FourSigmaMarketDataCost","FourSigmaMarketDataApiCost","CorporationValuation","CorporationSoftCap","BladeburnerRank","BladeburnerSkillCost","GangSoftcap","GangUniqueAugs","DaedalusAugsRequirement","StaneksGiftPowerMultiplier","StaneksGiftExtraSize","lvl","inc","dec","initBitNodeMultipliers","iTutorialSteps","ITutorial","currStep","Start","stepIsDone","GoToCharacterPage","CharacterPage","CharacterGoToTerminalPage","TerminalIntro","TerminalHelp","TerminalLs","TerminalScan","TerminalScanAnalyze1","TerminalScanAnalyze2","TerminalConnect","TerminalAnalyze","TerminalNuke","TerminalManualHack","TerminalHackingMechanics","TerminalGoHome","TerminalCreateScript","TerminalTypeScript","TerminalFree","TerminalRunScript","TerminalGoToActiveScriptsPage","ActiveScriptsPage","ActiveScriptsToTerminal","TerminalTailScript","GoToHacknetNodesPage","HacknetNodesIntroduction","HacknetNodesGoToWorldPage","WorldDescription","TutorialPageInfo","End","iTutorialStart","iTutorialNextStep","iTutorialEnd","ITutorialEvents","iTutorialPrevStep","getHomeComputer","LiteratureNames","HackersStartingHandbook","BaseServer","super","startsWith","createRandomString","purchasedByPlayer","moneyAvailable","moneyMax","hackDifficulty","baseDifficulty","minDifficulty","round","serverGrowth","capDifficulty","changeMinimumSecurity","perc","changeMaximumMoney","aboveCap","log","fortify","amt","EmployeePositions","Operations","Engineer","Business","Management","RandD","Unassigned","t_homeComp","safetlyCreateUniqueServer","adminRights","isConnectedTo","currentServer","Home","Programs","NukeProgram","prestigeAugmentation","numPeopleKilled","hacking","strength","defense","dexterity","agility","charisma","hacking_exp","strength_exp","defense_exp","dexterity_exp","agility_exp","charisma_exp","city","location","TravelAgency","companyName","jobs","purchasedServers","factionInvitations","queuedAugmentations","numSleeves","sleevesFromCovenant","sleeves","Sleeve","shock","synchronize","shockRecovery","isWorking","currentWorkFactionName","currentWorkFactionDescription","createProgramName","crimeType","workHackExpGainRate","workStrExpGainRate","workDefExpGainRate","workDexExpGainRate","workAgiExpGainRate","workChaExpGainRate","workRepGainRate","workMoneyGainRate","workHackExpGained","workStrExpGained","workDefExpGained","workDexExpGained","workAgiExpGained","workChaExpGained","workRepGained","workMoneyGained","timeWorked","lastUpdate","Date","getTime","playtimeSinceLastAug","scriptProdSinceLastAug","moneySourceA","reset","hacknetNodes","hashManager","prestige","reapplyAllAugmentations","hp","max_hp","prestigeSourceFile","entropy","karma","sync","resetGangs","hasWseAccount","hasTixApiAccess","has4SData","has4SDataTixApi","corporation","moneySourceB","playtimeSinceLastBitnode","receiveInvite","includes","calculateSkill","exp","mult","calculateSkillF","calculateSkillProgress","calculateSkillProgressF","updateSkillLevels","intelligence","intelligence_exp","ratio","resetMultipliers","hasProgram","programName","home","toLowerCase","setMoney","gainMoney","source","recordMoneySource","loseMoney","MoneySourceTracker","record","gainHackingExp","gainStrengthExp","gainDefenseExp","gainDexterityExp","gainAgilityExp","gainCharismaExp","gainIntelligenceExp","queryStatFromString","tempStr","resetWorkStatus","generalType","group","workType","factionWorkType","singularityStopWork","workMoneyLossRate","timeWorkedCreateProgram","timeWorkedGraftAugmentation","graftAugmentationName","processWorkEarnings","numCycles","focusBonus","hasAugmentation","focus","hackExpGain","strExpGain","defExpGain","dexExpGain","agiExpGain","chaExpGain","moneyGain","startWork","getWorkHackExpGain","getWorkStrExpGain","getWorkDefExpGain","getWorkDexExpGain","getWorkAgiExpGain","getWorkChaExpGain","getWorkRepGain","getWorkMoneyGain","timeNeededToCompleteWork","process","router","toFaction","createProgramWork","toTerminal","takeClass","toCity","toLocation","Locations","Slums","workPartTime","graftAugmentationWork","toGrafting","work","cancelationPenalty","find","specialName","backdoorInstalled","overMax","comp","Companies","influenceStockThroughCompanyWork","finishWork","cancelled","sing","penaltyString","playerReputation","content","reputation","startWorkPartTime","finishWorkPartTime","startFocusing","stopFocusing","startFactionWork","favorMult","startFactionHackWork","getHackingWorkRepGain","startFactionFieldWork","getFactionFieldWorkRepGain","startFactionSecurityWork","getFactionSecurityWorkRepGain","finishFactionWork","bn11Mult","company","companyPositionName","companyPosition","CompanyPositions","baseSalary","salaryMultiplier","hackingExpGain","expMultiplier","strengthExpGain","defenseExpGain","dexterityExpGain","agilityExpGain","charismaExpGain","jobPerformance","calculateJobPerformance","startCreateProgramWork","reqLevel","createProgramReqLvl","programFile","endsWith","split","percComplete","Number","reqLvl","skillMult","getIntelligenceBonus","finishCreateProgramWork","incompleteName","startGraftAugmentationWork","augmentationName","craftAugmentationWork","NeuroreceptorManager","finishGraftAugmentationWork","augName","applyAugmentation","Augmentations","CongruityImplant","applyEntropy","startClass","costMult","expMult","workCostMult","workExpMult","earnings","calculateClassEarnings","finishClass","startCrime","hackExp","strExp","defExp","dexExp","agiExp","chaExp","workerscript","committingCrimeThruSingFn","singFnCrimeWorkerScript","toWork","finishCrime","determineCrimeSuccess","crime","Crimes","type","kills","ws","disableLogs","ALL","scriptRef","takeDamage","regenerateHp","getHospitalizationCost","SnackbarEvents","ToastVariant","WARNING","applyForJob","entryPosType","currCompany","currPositionName","Company","pos","isQualified","reqText","getJobRequirementText","hasPosition","newPos","getNextCompanyPositionHelper","nextPos","getNextCompanyPosition","currentPositionName","currentPosition","isSoftwareJob","isITJob","isBusinessJob","isSecurityEngineerJob","isNetworkEngineerJob","isSecurityJob","isAgentJob","isSoftwareConsultantJob","isBusinessConsultantJob","isPartTimeJob","quitJob","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","requiredReputation","playerAug","NeuroFluxGovernor","reapplyAllSourceFiles","sourceFiles","srcFileKey","SourceFiles","applySourceFile","applyExploit","checkForFactionInvitations","invitedFactions","numAugmentations","allCompanies","allPositions","values","checkMegacorpRequirements","repNeeded","illuminatiFac","Illuminati","isBanned","isMember","alreadyInvited","daedalusFac","Daedalus","covenantFac","TheCovenant","ecorpFac","ECorp","AevumECorp","megacorpFac","MegaCorp","Sector12MegaCorp","bachmanandassociatesFac","BachmanAssociates","AevumBachmanAndAssociates","bladeindustriesFac","BladeIndustries","Sector12BladeIndustries","nwoFac","NWO","VolhavenNWO","clarkeincorporatedFac","ClarkeIncorporated","AevumClarkeIncorporated","omnitekincorporatedFac","VolhavenOmniTekIncorporated","foursigmaFac","FourSigma","Sector12FourSigma","kuaigonginternationalFac","KuaiGongInternational","ChongqingKuaiGongInternational","fulcrumsecrettechonologiesFac","fulcrumSecretServer","AevumFulcrumTechnologies","bitrunnersFac","BitRunners","bitrunnersServer","BitRunnersServer","theblackhandFac","blackhandServer","TheBlackHandServer","nitesecFac","nitesecServer","NiteSecServer","chongqingFac","sector12Fac","newtokyoFac","aevumFac","ishimaFac","volhavenFac","speakersforthedeadFac","Sector12CIA","Sector12NSA","thedarkarmyFac","thesyndicateFac","silhouetteFac","Silhouette","tetradsFac","slumsnakesFac","netburnersFac","Netburners","totalHacknetRam","totalHacknetCores","totalHacknetLevels","v","hserver","HacknetServer","cores","ram","tiandihuiFac","TianDiHui","cybersecFac","CyberSec","cybersecServer","CyberSecServer","setBitNodeNumber","queueAugmentation","aug","PlayerOwnedAugmentation","gainCodingContractReward","reward","CodingContractRewardType","FactionReputation","FactionReputationAll","repGain","totalGain","specialFactions","filter","gainPerFaction","facName","CompanyReputation","to","gotoLocation","canAccessGrafting","giveExploit","exploit","SUCCESS","giveAchievement","achievementId","achievement","achievements","map","ID","unlockedOn","Name","weight","calculateIntelligenceBonus","getCasinoWinnings","casino","getMult","setMult","canAccessCotMG","sf","Corporation","Division","useCorporation","useDivision","Industries","Energy","Utilities","Agriculture","Fishing","Mining","Food","Tobacco","Chemical","Pharmaceutical","Computer","Robotics","Software","Healthcare","RealEstate","IndustryStartingCosts","IndustryDescriptions","corp","IndustryResearchTrees","getBaseResearchTreeCopy","getProductIndustryResearchTreeCopy","resetIndustryResearchTrees","LocationType","hasHacknetServers","purchaseHacknet","numOwned","getCostOfNextHacknetServer","createHacknetServer","updateHashManagerCapacity","getCostOfNextHacknetNode","node","HacknetNode","hasMaxNumberHacknetServers","calculateNodeCost","calculateServerCost","getMaxNumberLevelUpgrades","nodeObj","maxLevel","calculateLevelUpgradeCost","levelsToMax","getMaxNumberRamUpgrades","calculateRamUpgradeCost","log2","getMaxNumberCoreUpgrades","calculateCoreUpgradeCost","getMaxNumberCacheUpgrades","calculateCacheUpgradeCost","cache","purchaseLevelUpgrade","levels","sanitizedLevels","isServer","purchaseRamUpgrade","purchaseCoreUpgrade","purchaseCacheUpgrade","processHacknetEarnings","HashManager","hashes","updateHashRate","h","wastedHashes","storeHashes","upgrade","HashUpgrades","multiplier","processAllHacknetServerEarnings","total","processSingleHacknetNodeEarnings","processAllHacknetNodeEarnings","totalEarnings","nodes","updateCapacity","hashCapacity","purchaseHashUpgrade","upgName","upgTarget","upg","refundUpgrade","funds","target","e","division","divisions","sciResearch","qty","changeRank","skillPoints","generateRandomContract","BlackOperationNames","root","borderBottom","small","width","TableCell","Table","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","NewIndustry","industry","Industry","NewCity","offices","OfficeSpace","loc","size","UnlockUpgrade","price","unlockUpgrades","unlock","LevelUpgrade","basePrice","priceMult","upgrades","IssueDividends","percent","dividendPercentage","SellMaterial","mat","replace","temp","bCost","eval","sCost","q","tempQty","maxsll","prd","sllman","SellProduct","product","all","cities","tempCity","SetSmartSupply","warehouse","smartSupply","smartSupplyEnabled","SetSmartSupplyUseLeftovers","material","useLeftover","smartSupplyUseLeftovers","BuyMaterial","BulkPurchase","matSize","MaterialSizes","maxAmount","sizeUsed","SellShares","numShares","public","shareSaleCooldown","stockSaleResults","calculateShareSale","profit","newSharePrice","newSharesUntilUpdate","issuedShares","sharePrice","shareSalesUntilPriceUpdate","BuyBackShares","buybackPrice","AssignJob","employee","job","UpgradeOfficeSize","office","initialPriceMult","ThrowParty","costPerEmployee","totalCost","employees","throwParty","PurchaseWarehouse","warehouses","Warehouse","UpgradeWarehouseCost","Array","from","reduce","acc","UpgradeWarehouse","sizeUpgradeCost","updateSize","BuyCoffee","IndustryUpgrades","HireAdVert","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","CancelExportMaterial","LimitProductProduction","prdman","LimitMaterialProduction","SetMaterialMarketTA1","on","marketTa1","SetMaterialMarketTA2","marketTa2","SetProductMarketTA1","SetProductMarketTA2","CorporationManagementHandbook","HistoryOfSynthoids","AGreenTomorrow","AlphaOmega","SimulatedReality","BeyondMan","BrighterThanTheSun","DemocracyIsDead","Sector12Crime","ManAndMachine","SecretSocieties","TheFailedFrontier","CodedIntelligence","SyntheticMuscles","TensionsInTechRace","CostOfImmortality","TheHiddenWorld","TheNewGod","NewTriads","TheSecretWar","programsMetadata","Program","initCompanies","oldCompanies","companiesMetadata","forEach","loadCompanies","FragmentType","Effect","tpe","HackingChance","HackingSpeed","HackingMoney","HackingGrow","Hacking","Strength","Defense","Dexterity","Agility","Charisma","HacknetMoney","HacknetCost","Rep","WorkMoney","Crime","Bladeburner","PositionTypes","SleeveTaskType","removeLeadingSlash","removeTrailingSlash","isValidFilename","isValidDirectoryName","isValidDirectoryPath","path","t_path","dirs","dir","isValidFilePath","fnSeparator","lastIndexOf","fn","getFirstParentDirectory","getAllParentDirectories","lastSlash","getDestinationFilepath","destination","cwd","dstDir","evaluateDirectoryPath","fileName","getFileName","isInRootDirectory","currPath","reconstructedPath","pop","evaluateFilePath","areFilesEqual","f0","f1","areImportsEquals","Shoplift","dexterity_success_weight","agility_success_weight","RobStore","hacking_success_weight","Mug","strength_success_weight","defense_success_weight","Larceny","DealDrugs","charisma_success_weight","BondForgery","TraffickArms","Homicide","GrandTheftAuto","Kidnap","Assassination","Heist","trusted","event","isTrusted","Terminal","TTerminal","AllGangs","power","territory","loadAllGangs","htmlLocation","margin","spacing","flexGrow","minHeight","boxSizing","uninitialized","isInitialized","page","allowRouting","toActiveScripts","toAugmentations","toBitVerse","toBladeburner","toStats","toCorporation","toCreateProgram","toDevMenu","toFactions","toGameOptions","toGang","toHacknetNodes","toInfiltration","toJob","toMilestones","toScriptEditor","toSleeves","toStockMarket","toTravel","toTutorial","toBladeburnerCinematic","toStaneksGift","toAchievements","toThemeBrowser","toImportSave","GameRoot","engine","terminal","files","vim","setEditorOptions","useState","setPage","RecoveryMode","Recovery","Work","determineStartPage","setRerender","augPage","setAugPage","setFaction","flume","setFlume","quick","setQuick","setLocation","Infiltration","Location","Job","cinematicText","setCinematicText","errorBoundaryKey","setErrorBoundaryKey","sidebarOpened","setSideBarOpened","importString","setImportString","importAutomatic","setImportAutomatic","ImportSave","allowRoutingCalls","setAllowRoutingCalls","rerender","old","killAllScripts","saveObject","saveGame","setTimeout","reload","useEffect","subscribe","ActiveScripts","Stats","CreateProgram","DevMenu","Options","Gang","Hacknet","Milestones","Grafting","options","ScriptEditor","Sleeves","StockMarket","Tutorial","City","Travel","calculateAchievements","BitVerse","BladeburnerCinematic","StaneksGift","Achievements","ThemeBrowser","base64save","automatic","_functions","fnName","_wrap","func","scrollTo","mainPage","withSidebar","withPopups","bypassGame","enter","enterBitNode","staneksGift","workerScripts","reactivateTutorial","buyStockLong","buyStock","buyStockShort","shortStock","eventEmitterForReset","eventEmitterForUiReset","initStockMarket","initStockMarketFn","sellStockLong","sellStock","sellStockShort","stockMarket","export","onExport","exportGame","forceKill","exportGameFn","installAugmentationsFn","Provider","killScripts","flexDirection","onToggled","isOpened","updateHashCapacity","seconds","onlineTimeSeconds","hashRate","totalHashesGenerated","prodMult","cpuCores","runScript","script","updateRamUsed","calculateHashGainRate","ramUsed","companyPositionMetadata","CompanyPosition","StatsRow","cellNone","style","align","TheDarkArmyServer","DaedalusServer","DarkWeb","snackbar","zIndex","logBoxBaseZIndex","alignSelf","SnackbarProvider","dense","maxSnack","anchorOrigin","horizontal","vertical","autoHideDuration","containerRoot","EventEmitter","Snackbar","enqueueSnackbar","closeSnackbar","useSnackbar","variant","duration","id","severity","k","onClick","StockSymbols","IshimaStormTechnologies","NewTokyoDefComm","VolhavenHeliosLabs","NewTokyoVitaLife","Sector12IcarusMicrosystems","Sector12UniversalEnergy","AevumAeroCorp","VolhavenOmniaCybersystems","ChongqingSolarisSpaceSystems","NewTokyoGlobalPharmaceuticals","IshimaNovaMedical","AevumWatchdogSecurity","VolhavenLexoCorp","AevumRhoConstruction","Sector12AlphaEnterprises","VolhavenSysCoreSecurities","VolhavenCompuTek","AevumNetLinkTechnologies","IshimaOmegaSoftware","Sector12FoodNStuff","Sector12JoesGuns","validScriptExtensions","isScriptFilename","some","ext","loadStaneksGift","zeros","dimensions","array","calculateGrid","gift","newgrid","height","fragmentAt","calculateHackingChance","difficultyMult","chance","calculateHackingExpGain","expGain","calculatePercentMoneyHacked","percentMoneyHacked","calculateHackingTime","skillFactor","calculateGrowTime","calculateWeakenTime","Orders","storedCycles","ticksUntilCycle","SymbolToStockMap","shares","workerScript","Stock","order","Order","symbol","orders","stk","processOrderRefs","symbolToStockMap","processOrders","stockOrders","stockSymbol","orderTxt","loadStockMarket","deleteStockMarket","InitStockMetadata","TicksPerCycle","initSymbolToStockMap","cyclesPerStockUpdate","processStockPrices","timeNow","flipForecastForecast","stockMarketCycle","av","chc","otlkMag","cap","changePrice","OrderTypes","LimitBuy","Short","LimitSell","Long","StopBuy","StopSell","otlkMagChange","cycleForecast","cycleForecastForecast","shareTxUntilMovement","shareTxForMovement","inviteToFaction","InvitationEvent","allFactions","factionInfo","enemy","enemies","hasAugmentationPrereqs","hasPrereqs","prereqAug","queuedAugmentation","getNextNeurofluxLevel","nextLevel","currLevel","processPassiveFactionRepGain","offersWork","getGangName","hRep","sRep","fRep","rate","getFactionAugmentationsFiltered","hasGangWith","augs","blacklist","TheRedPill","rng","SFC32RNG","uniqueFilter","Exploit","names","Bypass","EditSaveFile","PrototypeTampering","TimeCompression","Unclickable","UndocumentedFunctionCall","RealityAlteration","N00dles","YoureNotMeantToAccessThis","TrueRecursion","INeedARainbow","ExploitName","Set","netscriptDelay","delayReject","Promise","resolve","reject","delay","env","stopFlag","ScriptDeath","makeRuntimeRejectMsg","msg","scriptUrl","dependencies","url","resolveNetscriptRequestedThreads","functionName","requestedThreads","threads","requestedThreadsAsInt","isScriptErrorMessage","BitburnerSaveObject","getSaveString","PlayerSave","AllServersSave","CompaniesSave","FactionsSave","AliasesSave","Aliases","GlobalAliasesSave","GlobalAliases","StockMarketSave","SettingsSave","VersionSave","LastExportBonus","ExportBonus","StaneksGiftSave","AllGangsSave","btoa","unescape","encodeURIComponent","emitToastEvent","savedOn","lastSave","then","saveData","playerIdentifier","identifier","getSaveFileName","pushGameSaved","INFO","catch","isRecovery","epochTime","now","bn","download","importGame","base64Save","getImportStringFromFile","file","reader","FileReader","promise","onload","readAsText","newSave","parsedSave","atob","base64","importedPlayer","playerData","totalPlaytime","current","bitNode","bitNodeLevel","loadGame","navigator","userAgent","setInterval","decodeURIComponent","escape","saveObj","loadAliases","loadGlobalAliases","ver","anyPlayer","positionName","companyPositions","changes","convert","code","change","scripts","v1APIBreak","nf","revenue","expenses","lastCycleRevenue","lastCycleExpenses","thisCycleRevenue","thisCycleExpenses","augmentation","resleeves","evaluateVersionCompatibility","href","resets","createNewUpdateText","whiteSpace","paddingLeft","lineHeight","Blob","msSaveOrOpenBlob","document","createElement","URL","createObjectURL","body","appendChild","click","removeChild","revokeObjectURL","MoneyRate","CodingContractType","gen","solver","diff","numTries","generate","CodingContractTypes","md","codingContractTypesMetadata","CodingContractResult","CodingContract","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","rep","Reputation","base","inherit","common","accent","bg","fg","syntax","tag","entity","string","regexp","markup","keyword","comment","constant","line","panel","selected","selection","colorRegExp","sanitizeTheme","entries","repairBlock","block","makeTheme","themeRules","token","foreground","themeColors","fromEntries","rules","async","loadThemes","monaco","editor","defineTheme","fontStyle","uuidv4","uuid","subscribers","sub","Adjuster","setValue","label","placeholder","subtract","tons","onChange","InputProps","startAdornment","title","transform","endAdornment","numCycleForGrowth","growth","ajdGrowthRate","serverGrowthPercentage","coreBonus","numCycleForGrowthCorrected","targetMoney","startMoney","adjGrowthRate","exponentialBase","coreMultiplier","threadMultiplier","w","ey","cycles","bt","corr","bct","opc","fca","cca","ceil","processSingleServerGrowth","calculateServerGrowth","oldMoneyAvailable","isValidNumber","usedCycles","prestigeHomeComputer","homeComp","hasBitflume","BitFlume","updateRamUsage","getServerOnNetwork","isBackdoorInstalled","makeNode","Node","text","createBaseResearchTreeNodes","rootNode","autoBrew","autoParty","autoDrugs","bulkPurchasing","cph4","drones","dronesAssembly","dronesTransport","goJuice","hrRecruitment","hrTraining","joywire","marketta1","marketta2","overclock","scAssemblers","stimu","addChild","baseResearchTree","ResearchTree","setRoot","upgradeFulcrum","upgradeCapacity1","upgradeCapacity2","upgradeDashboard","initAugmentations","resetFactionAugmentations","clearObject","initNeuroFluxGovernor","initUnstableCircadianModulator","initGeneralAugmentations","initBladeburnerAugmentations","initChurchOfTheMachineGodAugmentations","resetAugmentation","augmentationToUpdate","updateNeuroFluxGovernorCosts","getGenericAugmentationPriceMultiplier","updateAugmentationCosts","getBaseAugmentationPriceMultiplier","neuroFluxGovernorAugmentation","getNextNeuroFluxLevel","augmentationExists","AddToAugmentations","reapply","augObj","ownedAug","force","augmentationList","nfgIndex","isRepeatableAug","upArrowSymbol","downArrowSymbol","leftArrowSymbol","rightArrowSymbol","getArrow","UP_ARROW","W","LEFT_ARROW","DOWN_ARROW","RIGHT_ARROW","D","SkillNames","BladesIntuition","Cloak","Marksman","WeaponProficiency","ShortCircuit","DigitalObserver","Tracer","Overclock","Reaper","EvasiveSystem","Datamancer","CybersEdge","HandsOfMidas","Hyperdrive","count","getActionTimePenalty","getChaosCompetencePenalty","getChaosDifficultyBonus","useGang","killWorkerScript","rerenderUi","WorkerScript","stopAndCleanUpWorkerScript","RunningScript","killWorkerScriptByPid","pid","compareArrays","clearTimeout","killNetscriptDelay","runningScript","rs","ramUsage","delete","AddRecentScript","WorkerScriptStartStopEventEmitter","removeWorkerScript","MoneyCost","String","defaultConstructorParams","initPrice","marketCap","spreadPerc","range","divisor","lastPrice","playerShares","playerAvgPx","playerShortShares","playerAvgShortPx","otlkMagForecast","getAbsoluteForecast","totalSharesUnrounded","totalShares","maxShares","changeForecastForecast","newff","newPrice","changeAmt","increaseChance","getForecastIncreaseChance","influenceForecast","influenceForecastForecast","printAliases","parseAliasDeclaration","global","matches","addGlobalAlias","addAlias","getAlias","getGlobalAlias","removeAlias","substituteAliases","origCommand","commandArray","somethingSubstituted","depth","alias","Literature","ThemeEvents","refreshTheme","createTheme","combat","cha","int","backgroundprimary","backgroundsecondary","button","successlight","success","successdark","white","black","light","primarylight","primarydark","secondary","secondarylight","secondarydark","errorlight","errordark","infolight","infodark","warning","warninglight","warningdark","well","typography","fontFamily","textTransform","components","MuiInputBase","styleOverrides","input","userSelect","MuiInput","borderBottomColor","underline","MuiInputLabel","MuiButtonGroup","marginRight","MuiButton","borderRadius","MuiSelect","icon","defaultProps","MuiTextField","MuiTypography","MuiMenu","list","MuiMenuItem","MuiAccordionSummary","MuiAccordionDetails","MuiIconButton","MuiTooltip","tooltip","fontSize","disableInteractive","MuiSlider","valueLabel","MuiDrawer","paperAnchorDockedLeft","borderRight","welllight","MuiDivider","MuiFormControlLabel","MuiSwitch","switchBase","track","MuiPaper","MuiTablePagination","select","selectLabel","displayedRows","MuiTab","textColorPrimary","MuiTabs","scrollButtons","opacity","TabIndicatorProps","MuiAlert","standardSuccess","standardError","standardWarning","standardInfo","TTheme","injectFirst","OptionSwitch","checked","control","CopyableText","setOpen","copyText","setSelectionRange","execCommand","Water","Plants","Metal","Hardware","Chemicals","Drugs","Robots","AICores","errorMessage","freeze","calculateExp","skill","currentSkill","nextSkill","baseExperience","nextExperience","progress","currentExperience","remainingExperience","experience","UpgradeType","gangMemberUpgradesMetadata","def","upgType","Weapon","dex","agi","Armor","Vehicle","Rootkit","layerCounter","LogBoxEvents","LogBoxClearEvents","LogBoxManager","LogWindow","close","visibility","overflowY","overflowX","draggableRef","useRef","rootRef","setScript","container","minimized","setMinimized","findRunningScript","startWorkerScript","updateLayer","full","maxLength","minimize","clearInterval","addEventListener","onResize","removeEventListener","debounce","isOnScreen","resetPosition","bounds","getBoundingClientRect","right","bottom","left","innerWidth","top","outerWidth","state","setState","handle","onDrag","clientX","clientY","innerHeight","ref","flexFlow","onMouseDown","cursor","has","onTouchEnd","overflowWrap","Map","startingLevel","extraLevels","totalMultiplier","startingRam","numUpgrades","currentRam","startingCores","currentCores","startingCache","currentCache","FactionWorkType","createProgressBarText","derived","totalTicks","bars","dashes","NetscriptPorts","NetscriptPort","prestigeWorkerScripts","port","startNetscript1Script","codeWithImports","codeLineOffset","running","importProcessingRes","ast","ecmaVersion","allowReserved","sourceType","generatedCode","hasImports","walksimple","ImportDeclaration","scriptName","getScript","scriptAst","specifiers","namespace","local","fnNames","fnDeclarations","FunctionDeclaration","fnsToImport","lineOffset","linesRemoved","processNetscript1Imports","interpreterInitialization","scope","NetscriptFunctions","entry","tempWrapper","fnArgs","pseudoToNative","cb","errorTextArray","errorMsg","setProperty","createAsyncFunction","createNativeFunction","nativeToPseudo","interpreter","Interpreter","runInterpreter","more","step","parent","createAndAddWorkerScript","oneRamUsage","getRamUsageFromRunningScript","roundToTwo","arrayToString","generateNextPid","set","scriptExecution","runningFn","wrap","propName","finally","wrapObject","vars","tree","isArray","executeJSScript","SyntaxError","message","stack","startNetscript2Script","onlineExpGained","onlineMoneyMade","updateOnlineScriptTimes","onlineRunningTime","loadAllRunningScripts","skipScriptLoad","markUpdated","scriptCalculateOfflineProduction","runScriptFromScript","caller","scriptname","arg","ramAvailable","hasAdminRights","StatsTable","rows","wide","MuiTable","row","elem","noWrap","Material","getMarkupLimit","qlt","mku","dmd","dmdR","cmp","cmpR","processMarket","priceChange","compChange","dmdChange","calculateWantedPenalty","respect","wantedLevel","calculateRespectGain","task","baseRespect","statWeight","hackWeight","strWeight","defWeight","dexWeight","agiWeight","chaWeight","territoryMult","territoryPenalty","respectMult","calculateWantedLevelGain","baseWanted","wanted","calc","calculateMoneyGain","baseMoney","calculateAscensionPointsGain","calculateAscensionMult","points","gainFavor","getFavorGain","totalRep","favorToRep","repToFavor","ActionIdentifier","general","contracts","ops","blackops","events","updateSkillMultipliers","calculateMaxStamina","stamina","maxStamina","getCurrentCity","calculateStaminaPenalty","canAttemptBlackOp","actionId","getActionObject","reqdRank","rank","nm","BlackOperations","isAvailable","actionTimeCurrent","actionTimeToComplete","resetAction","exceptionAlert","comms","testBlackOp","getRecruitmentTime","skillName","skills","executeConsoleCommands","commands","consoleHistory","arrayOfCommands","executeConsoleCommand","postToConsole","saveToLogs","consoleLogs","getTimestamp","clearConsole","bladeburnerFac","storeCycles","getActionIdFromTypeAndName","convertedType","convertedName","operations","executeStartConsoleCommand","GeneralActions","executeSkillConsoleCommand","skillNames","Skills","multKeys","skillMultipliers","Skill","currentLevel","pointCost","calculateCost","maxLvl","executeLogConsoleCommand","flag","logging","executeHelpConsoleCommand","ConsoleHelpText","helpList","helpText","executeAutomateConsoleCommand","variable","highLow","automateActionHigh","automateActionLow","automateThreshHigh","automateThreshLow","automateEnabled","parseCommandArguments","command","start","endQuote","SPACE","substr","triggerMigration","sourceCityName","destCityName","destCity","sourceCity","rand","percentage","triggerPotentialMigration","randomEvent","chaos","gainActionStats","successMult","unweightedGain","unweightedIntGain","weights","getDiplomacyEffectiveness","getRecruitmentSuccessChance","teamSize","effCharisma","effCha","charismaFactor","resetSkillMultipliers","successChanceAll","successChanceStealth","successChanceKill","successChanceContract","successChanceOperation","successChanceEstimate","actionTime","effHack","effStr","effDef","effDex","effAgi","effInt","multiplierNames","multiplierName","getMultiplier","multiplierValue","completeOperation","teamCount","losses","teamLost","improvePopulationEstimateByPercentage","changePopulationByPercentage","changeEstEqually","nonZero","changeChaosByCount","changeChaosByPercentage","changePopulationByCount","estChange","estOffset","completeContract","improvePopulationEstimateByCount","completeAction","isOperation","difficultyMultiplier","rewardMultiplier","rewardFac","successes","setMaxLevel","rankGain","gain","addOffset","failures","loss","damage","rankLoss","hpLoss","hpLost","calculateHospitalizationCost","numHosp","moneyLost","logLossText","autoLevel","teamLossMax","OperationDaedalus","staminaGain","staminaBonus","eff","successChance","contract","growthF","Growths","operation","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","KeyHandler","press","onKeyDown","TimerProgress","withStyles","bar","transition","LinearProgress","GameTimer","setV","intervalId","onExpire","millis","item","xs","interpolate","settings","out","lerpD","lerp","Trivial","Normal","Hard","Impossible","constructLocation","asciiArt","LocationsMetadata","addLocation","GangConstants","GangRespectToReputationRatio","MaximumGangMembers","CyclesPerTerritoryAndPowerUpdate","AscensionMultiplierRatio","Names","updateMoneyGainRate","moneyGainRatePerSecond","totalMoneyGenerated","minMax","getPurchaseServerCost","sanitizedRam","isPowerOfTwo","sign","getPurchaseServerMaxRam","getPurchaseServerLimit","clz32","newServ","purchaseRamForHomeComputer","TextFile","append","show","getTextFile","textFiles","createTextFile","costInc","GangMemberUpgrades","GangMemberUpgrade","getBuyTransactionCost","posType","getSellTransactionGain","processTransactionForecastMovement","firstShares","remainingShares","numIterations","forecastChange","forecastForecastChange","calculateBuyMaxAmount","isLong","remainingMoney","currPrice","getStockMarket4SDataCost","getStockMarket4STixApiCost","getStockMarketWseCost","getStockMarketTixApiCost","timePassed","confidence","dataMap","serv","timesGrown","host","offlineRunningTime","offlineExpGained","timesWeakened","findRunningScriptByPid","Hashes","DefaultConstructorParams","isPlayerEmployed","isMegacorp","hasAgentPositions","hasBusinessConsultantPositions","hasBusinessPositions","hasEmployeePositions","hasITPositions","hasSecurityPositions","hasSoftwareConsultantPositions","hasSoftwarePositions","hasWaiterPositions","materials","updateMaterialSizeUsed","matName","getStorageMultiplier","GangMemberTasks","gangMemberTasksMetadata","GangMemberTask","isHacking","isCombat","HashUpgradesMetadata","HashUpgrade","CalculateShareMult","opts","suppressDialog","totalPrice","origTotal","newTotal","rerenderFn","resultTxt","gains","netProfit","origCost","Output","formatTime","RawOutput","raw","Link","TTimer","timeLeft","ConfirmationModal","confirmationText","onConfirm","additionalButton","hash","__COMMIT_HASH__","globalModuleSequenceNumber","Script","otherScripts","moduleSequenceNumber","saveScript","formatCode","dependent","dependents","dependentScript","calculateRamUsage","ramUsageEntries","imports","vals","DarkWebItems","BruteSSHProgram","DarkWebItem","FTPCrackProgram","RelaySMTPProgram","HTTPWormProgram","SQLInjectProgram","ServerProfiler","DeepscanV1","DeepscanV2","AutolinkProgram","AutoLink","FormulasProgram","Formulas","actionNames","actionName","Action","Suit","Card","suit","formatValue","isRedSuit","Hearts","Diamonds","getStringRepresentation","SourceFile","bitnodeKey","bitnode","createTaskTracker","Person","calculateStat","getFactionHackingWorkRepGain","updateStatLevels","MathJaxWrapper","version","src","lineNumber","CorporationUnlockUpgradeIndex","CorporationUnlockUpgrades","Export","SmartSupply","MarketResearchDemand","MarketDataCompetition","VeChain","ShadyAccounting","GovernmentPartnership","WarehouseAPI","OfficeAPI","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","commit","div","successRate","researchMetadata","GameOptionsTab","Message","ApplyToJobButton","getJobRequirementTooltip","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","achievementData","bitNodeFinishedState","wd","hasAccessToSF","knowsAboutBitverse","Icon","Condition","THE_BLACK_HAND","THE_COVENANT","Visible","MONEY_1Q","MONEY_M1B","Secret","INSTALL_1","INSTALL_100","QUEUE_40","HACKING_100000","COMBAT_3000","NEUROFLUX_255","NS2","FROZE","RUNNING_SCRIPTS_1000","DRAIN_SERVER","MAX_RAM","MAX_CORES","SCRIPTS_30","KARMA_1000000","STOCK_1q","DISCOUNT","SCRIPT_32GB","FIRST_HACKNET_NODE","MAX_HACKNET_NODE","HACKNET_NODE_10M","REPUTATION_10M","DONATION","TRAVEL","WORKOUT","TOR","hasTorRouter","HOSPITALIZED","hospitalization","GANG","FULL_GANG","members","GANG_TERRITORY","GANG_MEMBER_POWER","CORPORATION","CORPORATION_BRIBE","CORPORATION_PROD_1000","CORPORATION_EMPLOYEE_3000","CORPORATION_REAL_ESTATE","Description","INTELLIGENCE_255","BLADEBURNER_DIVISION","BLADEBURNER_OVERCLOCK","BLADEBURNER_UNSPENT_100000","FIRST_HACKNET_SERVER","AdditionalUnlock","ALL_HACKNET_SERVER","MAX_HACKNET_SERVER","hs","HACKNET_SERVER_1B","MAX_CACHE","capacity","SLEEVE_8","INDECISIVE","FAST_BN","CHALLENGE_BN1","CHALLENGE_BN2","CHALLENGE_BN3","CHALLENGE_BN6","CHALLENGE_BN7","CHALLENGE_BN8","CHALLENGE_BN9","hacknet_expenses","CHALLENGE_BN10","CHALLENGE_BN12","BYPASS","PROTOTYPETAMPERING","UNCLICKABLE","UNDOCUMENTEDFUNCTIONCALL","TIMECOMPRESSION","REALITYALTERATION","N00DLES","EDITSAVEFILE","UNACHIEVABLE","CHALLENGE_BN13","StaneksGift1","DEVMENU","RAINBOW","TRUE_RECURSION","playerAchievements","missingAchievements","flatMap","Intelligence","useTheme","colSpan","WorkInProgressOverview","onClickFocus","header","workCell","workHeader","pt","pb","workSubtitles","mt","details","innerText","textAlign","CharacterOverview","killOpen","setKillOpen","hackingProgress","strengthProgress","defenseProgress","dexterityProgress","agilityProgress","charismaProgress","borderTop","flex","aria-label","midpoint","program","description","BadRNG","WHRNG","s1","s2","s3","genSeed","Favor","crimeKey","currentTask","finishTask","resetTaskStatus","gainRatesForTask","currentTaskLocation","currentTaskMaxTime","retValue","currentTaskTime","successGainRates","keysForIteration","gainExperience","fromOtherSleeve","multFac","pHackExp","pStrExp","pDefExp","pDexExp","pAgiExp","pChaExp","earningsForPlayer","earningsForTask","earningsForSleeves","getMemoryUpgradeCost","memory","currCost","currMemory","getRepGain","Field","Security","installAugmentation","cyclesUsed","Class","Gym","updateTaskGainRates","Synchro","gymStatType","takeUniversityCourse","universityName","AevumSummitUniversity","Sector12RothmanUniversity","VolhavenZBInstituteOfTechnology","newCity","tryBuyAugmentation","AevumCrushFitnessGym","AevumSnapFitnessGym","Sector12IronGym","Sector12PowerhouseGym","VolhavenMilleniumFitnessGym","baseGymExp","totalExpMultiplier","getTrainingMult","sanitizedStat","totalExpMult","getStudyMult","upgradeMemory","sanitizedWorkType","offerHackingWork","offerFieldWork","offerSecurityWork","workoutAtGym","gymName","stat","RamCalculationErrorCode","TerminalEvents","TerminalClearEvents","Option","buttonText","infoText","orderType","refs","orderBook","executeOrder","isBuy","predefined","getPredefinedThemes","AlertManager","alerts","setAlerts","sha256","getMessageHash","getRandomByte","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","canGetBonus","setLastExportBonus","unixTime","getTeamSuccessBonus","inst","getActionTypeSkillSuccessBonus","getGraftingAvailableAugs","AevumGalacticCybersystems","Sector12DeltaOne","AevumPolice","NewTokyoNoodleBar","nextPosition","repMultiplier","reqdHacking","reqdStrength","reqdDefense","reqdDexterity","requiredAgility","reqdAgility","reqdCharisma","reqdReputation","hackingEffectiveness","strengthEffectiveness","defenseEffectiveness","dexterityEffectiveness","agilityEffectiveness","charismaEffectiveness","hackRatio","strRatio","defRatio","dexRatio","agiRatio","chaRatio","reputationGain","logEntry","logUpd","displayLog","recordHack","moneyGained","recordGrow","recordWeaken","StartButton","fmt","FactionInfo","keep","keepOnInstall","assignment","CorporationUpgradeIndex","CorporationUpgrades","SmartFactories","benefit","SmartStorage","DreamSense","WilsonAnalytics","NuoptimalNootropicInjectorImplants","SpeechProcessorImplants","NeuralAccelerators","FocusWires","ABCSalesBots","ProjectInsight","getUpgrade","getUpgradeCost","getCost","newCap","problemType","getRandomProblemType","getRandomReward","randServer","getRandomServer","contractFn","getRandomFilename","addContract","generateRandomContractOnHome","generateContract","problemTypes","rewardType","factionsThatAllowHacking","sanitizeRewardType","numFactions","randFaction","allJobs","randIndex","found","findCrime","roughName","atCapacity","marketCycles","emp","hireRandomEmployee","calculateTotalEmployees","maxEne","maxHap","maxMor","perfMult","hasAutobrew","hasAutoparty","salaryPaid","mor","hap","ene","calculateEmployeeProductivity","employeeJobs","employeeProd","prod","calculateProductivity","getElementById","cre","sal","Employee","creativity","efficiency","salary","assignEmployeeToJob","unassignEmployeeFromJob","setEmployeeToJob","amount","jobCount","validator","paramValidator","sanitizedSource","StatsProgressBar","remaining","StatsProgressOverviewCell","characterOverviewStyles","paddingBottom","oldhp","PromptEvent","PromptManager","setPrompt","PromptMenuText","PromptMenuSelect","PromptContent","PromptMenuBoolean","paddingTop","submit","autoFocus","onInput","stopPropagation","ENTER","preventDefault","choices","getItems","createCityMap","demand","competition","quality","per","performance","dur","durability","rel","reliability","aes","aesthetics","fea","features","siz","reqMats","req","createProduct","empWorkMult","fin","prog","finishProduct","progrMult","engrRatio","mgmtRatio","rndRatio","opsRatio","busRatio","totalMult","sciFac","calculateRating","advMult","busmgtgRatio","isFinite","awareness","popularity","reqMat","ProductRatingWeights","rat","Quality","Performance","Durability","Reliability","Aesthetics","Features","prodMats","ProgramsSeen","ProgramsRoot","getHackingLevelRemaining","disableGutters","mb","gridTemplateColumns","curCompletion","getProgCompletion","Paper","flexWrap","mr","InvitationsSeen","FactionsRoot","allJoinedFactions","ml","openFaction","openFactionAugPage","getAugsLeft","acceptInvitation","destroyedBitNode","newBitNode","bitNodeNumber","sourceFileKey","sourceFile","alreadyOwned","ownedSourceFile","playerSrcFile","PlayerOwnedSourceFile","giveSourceFile","ActivateRecoveryMode","RecoveryRoot","errorData","resetError","issueUrl","newIssueUrl","startIcon","onTriggered","px","multiline","fullWidth","sharePower","StartSharing","CSM","CorporationState","numUnlockUpgrades","fill","upgradeMultipliers","addFunds","getState","gameCycles","issueNewSharesCooldown","avgProfit","cycleProfit","retainedEarnings","getDividends","updateSharePrice","nextState","dividendsPerShare","dividends","determineValuation","getTargetSharePrice","targetPrice","immediatelyUpdateSharePrice","sharesTracker","sharesUntilUpdate","sharesSold","maxIterations","convertCooldownToString","cd","upgN","dividendTaxPercentage","upgradeAmt","getProductionMultiplier","getDreamSenseGain","getAdvertisingMultiplier","getEmployeeCreMultiplier","getEmployeeChaMultiplier","getEmployeeIntMultiplier","getEmployeeEffMultiplier","getSalesMultiplier","getScientificResearchMultiplier","getStarterGuide","hasHandbook","handbookFn","showLiterature","nsFuncsGenerator","sanitizedPid","Environment","getScriptOnServer","shouldLog","HashRate","popEst","canAccessGang","getGangFaction","startGang","locations","OptionsSlider","callback","valueLabelDisplay","marks","TickerDisplayMode","DisplayModeButton","tickerDisplayMode","Portfolio","changeDisplayMode","StockTickersConfig","changeWatchlistFilter","sum","EPSILON","decay","getSuccessChance","baseTime","skillFac","effDexterity","statFac","est","clamp","real","low","high","competence","playerStatLvl","effMultiplier","getSuccessesNeededForNextLevel","baseSuccessesPerLevel","litObj","Literatures","maintainMembership","Neurolink","CashRoot","PCMatrix","finishAction","penalty","hack_asc_points","str_asc_points","def_asc_points","dex_asc_points","agi_asc_points","cha_asc_points","resetPidCounter","setMaxRam","recentScripts","killedTime","unshift","timeOfDeath","checkEnum","enumVariable","frames","Apr1Events","Apr1","getMonth","getDate","isApr1","setN","allow","currentCity","onTravel","WorldMap","SuccessChance","estimatedSuccessChance","StaticModal","char","CorruptableText","setContent","counter","timers","letter","randFrom","randomize","timerId","checkIfConnectedToDarkweb","listAllDarkwebItems","printRaw","buyDarkwebItem","itemName","pushProgram","buyAllDarkwebItems","itemsToBuy","baseCheck","netscriptCanHack","initialCheck","netscriptCanGrow","netscriptCanWeaken","GraftableAugmentation","antiLog","ReputationRate","isNumber","ParseCommands","allCommands","flat","ParseCommand","inQuote","prevChar","escaped","DOUBLE_QUOTE","QUOTE","CinematicText","setI","done","setDone","lines","onDone","newI","auto","MaxSleevesFromCovenant","BaseCostPerSleeve","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","CRTX42AA","Neuregen","NutriGen","INFRARet","DermaForce","GrapheneBrachiBlades","BrachiBlades","GrapheneBionicArms","BionicArms","SNA","EsperEyewear","EMS4Recombination","OrionShoulder","HyperionV1","HyperionV2","GolemSerum","VangelisVirus","VangelisVirus3","INTERLINKED","BladeRunner","BladeArmor","BladeArmorPowerCells","BladeArmorEnergyShielding","BladeArmorUnibeam","BladeArmorOmnibeam","BladeArmorIPU","StaneksGift2","StaneksGift3","donationBonus","randomBonuses","bonuses","randomNumber","getRandomBonus","UnstableCircadianModulatorParams","UnstableCircadianModulator","specialReferenceIF","specialReferenceFOR","specialReferenceWHILE","memCheckGlobalKey","parseOnlyRamCalculate","dependencyMap","completedParses","parseQueue","parseCode","moduleName","parseOnlyCalculateDeps","additionalModules","initialModule","nextModule","URLImportError","ImportError","detailedCosts","unresolvedRefs","resolvedRefs","prefix","ident","dep","applyFuncRam","loadedFns","refDetail","fnRam","checkInfiniteLoop","missingAwaitLine","walk","WhileStatement","st","walkDeeper","nodeHasTrueTest","test","hasAwait","AwaitExpression","currentModule","globalKey","internalToExternal","addRef","external","objectPrototypeProperties","getOwnPropertyNames","commonVisitors","Identifier","DoWhileStatement","ForStatement","update","IfStatement","consequent","alternate","MemberExpression","importModuleName","spec","imported","codeCopy","decimal","isHackingGang","respectGainRate","wantedGainRate","moneyGainRate","storedTerritoryAndPowerCycles","territoryClashChance","territoryWarfareEngaged","notifyMemberDeath","getPower","getTerritory","processGains","processExperienceGains","processTerritoryAndPowerGains","moneyGains","respectGains","wantedLevelGains","justice","recordEarnedRespect","oldWanted","newWanted","gangName","calculatePower","gainRoll","multiplicativeGain","powerMult","PowerMultiplier","additiveGain","gangs","g","others","thisGang","otherGang","thisPwr","thisChance","calculateTerritoryGain","winGang","loseGang","powerBonus","territoryGain","clash","won","baseDeathChance","modifiedDeathChance","killMember","getRespectNeededToRecruitMember","GangMember","getWantedPenalty","memberTotal","totalRespect","lostRespect","earnedRespect","ascend","getDiscount","discount","getAllTaskNames","taskName","pidCounter","tempCounter","MAX_SAFE_INTEGER","updateDynamicRam","ramCost","dynamicLoadedFns","dynamicRamUsage","safeGetServer","callingFnName","makeRuntimeErrorMsg","scriptArgs","getRunningScriptByPid","createPublicRunningScript","offlineMoneyMade","getCannotFindRunningScriptErrorMessage","failOnHacknetServer","callingFn","errstack","userstack","stackline","dependency","parseChromeStackline","lineMatch","funcMatch","chromeCall","parseFirefoxStackline","lio","firefoxCall","rejectMsg","manual","hackingTime","canHack","hackChance","expGainedOnSuccess","expGainedOnFailure","percentHacked","maxThreadNeeded","moneyDrained","influenceStockThroughServerHack","argsToString","toNative","helper","funcName","argName","boolean","checkSingularityAccess","getValidPort","iport","NetscriptGang","NetscriptSleeve","extra","NetscriptExtra","NetscriptHacknet","wrapAPI","NetscriptStanek","NetscriptBladeburner","NetscriptCodingContract","NetscriptCorporation","formulas","NetscriptFormulas","NetscriptSingularity","stockmarket","NetscriptStockMarket","NetscriptUserInterface","NetscriptGrafting","_hostname","_hackAmount","hackAmount","_threads","_time","growTime","moneyBefore","moneyAfter","logGrowPercent","influenceStockThroughServerGrow","_growth","_cores","maxThreadsNeeded","weakenTime","end","_format","tprintf","_fn","possibleLogs","arguments","openPortCount","sshPortOpen","ftpPortOpen","smtpPortOpen","httpPortOpen","sqlPortOpen","_scriptname","scriptServer","spawnDelay","killByPid","scriptsRunning","_hostname1","hostname2","hostname1","destServer","currServ","txtFile","newFile","sourceScript","oldScript","newScript","_grep","grep","allFiles","processes","speed","production","purchaseCost","coreCost","levelCost","_filename","_ram","_name","hostnameStr","_port","_mode","tryWrite","_file","clearPort","status","suc","_n","_milliseconds","_milliPrecision","milliseconds","milliPrecision","alert","_message","_variant","_txt","_url","_target","$","writeToTextFile","fail","tor","inBladeburner","hasCorporation","_host","_source","_destination","source_is_txt","dest_is_txt","source_file","dest_file","flags","Flags","enums","getFunctionNames","functionNames","moneyHacked","orgName","percTotalMoneyHacked","moneyGrown","percTotalMoneyGrown","performanceMult","cyclesOfWork","compName","repFromDonation","tooltiptext","reqRep","TerminalHelpText","TemplatedHelpTexts","HelpTexts","analyze","backdoor","cat","check","cls","cp","expr","free","help","history","lscpu","mem","nano","sudov","unalias","GameEnv","Platform","getErrorForDisplay","errorInfo","isElectron","Production","toDisplay","language","cookiesEnabled","cookieEnabled","doNotTrack","indexedDb","platform","Steam","Browser","environment","getErrorMetadata","Development","componentStack","Tracking","Retirement","Investigation","Raid","initValue","GameOptionsPage","disablePadding","uniqueId","Hand","cards","addCards","removeByIndex","StockTickerTxButton","DummyGrid","DummyGift","fragments","activeGrid","ghostGrid","getContract","contractName","removeContract","existingPartialExeIndex","findIndex","ret","CodingContractModal","setProps","setAnswer","contractType","tries","BitFlumeEvent","BitFlumeModal","terminalCommandHistory","generalMethods","augmentationMethods","canAccessBladeburner","bladeburnerMethods","startBladeburner","canAccessCorporation","corporationMethods","startCorporation","gangMethods","serverMethods","InvitationModal","opt_initFunc","sourceCode","sourceCodeLineOffset","acorn","PARSE_OPTIONS","initFunc_","paused_","polyfills_","functionCounter_","stepFunctions_","stepMatch","methodName","createScope","stripLocations_","State","stateStack","nodeConstructor","READONLY_DESCRIPTOR","configurable","writable","NONENUMERABLE_DESCRIPTOR","READONLY_NONENUMERABLE_DESCRIPTOR","VARIABLE_DESCRIPTOR","STEP_ERROR","SCOPE_REFERENCE","VALUE_IN_DESCRIPTOR","toStringCycles_","getErrorLineNumber","getErrorLineNumberMessage","appendCode","populateScope_","initGlobalScope","OBJECT_PROTO","FUNCTION_PROTO","initFunction","initObject","proto","OBJECT","initArray","initString","initBoolean","initNumber","initDate","initRegExp","initError","initMath","initJSON","thisInterpreter","EvalError","parseInt","strFunctions","decodeURI","encodeURI","wrapper","nativeFunc","throwException","URI_ERROR","FUNCTION","ARRAY","ARRAY_PROTO","REGEXP","REGEXP_PROTO","DATE","DATE_PROTO","identifierRegexp","var_args","calledWithNew","newFunc","createObjectProto","argsStr","SYNTAX_ERROR","parentScope","boxThis","isObject","getScope","strict","box","getPrototype","thisArg","func_","funcThis_","arguments_","arrayPseudoToNative","TYPE_ERROR","doneExec_","setNativeFunctionPrototype","valueOf","throwIfNullUndefined","properties","arrayNativeToPseudo","descriptor","preventExtensions","getOwnPropertyDescriptor","setter","hasValue","pseudoDescriptor","propertyIsEnumerable","newArray","first","legalArrayLength","RANGE_ERROR","class","reverse","howmany","opt_begin","opt_end","opt_separator","iLength","getProperty","hasProperty","element","isa","jLength","searchElement","opt_fromIndex","STRING","fromCharCode","functions","compareString","locales","localeCompare","separator","jsList","search","newSubstr","BOOLEAN","NUMBER","numConsts","fractionDigits","toExponential","digits","precision","toPrecision","radix","Function","UTC","pattern","rgx","populateRegExp","lastIndex","opt_message","newError","createObject","createErrorSubclass","EVAL_ERROR","REFERENCE_ERROR","myMath","mathConsts","numFunctions","myJSON","nativeObj","child","legalArrayIndex","Value","strs","pseudoRegexp","nativeRegexp","ignoreCase","createFunction","opt_constructor","illegalConstructor","asyncFunc","pseudoDate","pseudoObj","opt_cycles","pseudo","native","nativeArray","pseudoArray","lineNum","isGetter","TypeError","opt_descriptor","ReferenceError","defObj","firstNode","expression","createSpecialScope","opt_scope","getValueFromScope","prevNode","setValueToScope","nodeClass","isConstructor","getValue","Completion","NORMAL","BREAK","CONTINUE","RETURN","THROW","errorClass","lineNumErrorMsg","unwind","lineNumberMsg","cv","labels","isLoop","isSwitch","realError","errorTable","RangeError","URIError","createGetter_","funcThis","doneCallee_","doneArgs_","createSetter_","elements","n_","array_","doneLeft_","doneRight_","leftReference_","doneGetter_","leftValue_","leftValue","doneSetter_","setterValue_","rightValue","directEval_","funcNode","paramName","paramValue","argsList","evalNode","argsWithCallback","done_","throwValue","mode_","test_","doneInit_","doneObject_","variable_","object_","visited_","name_","gotPropName","props_","doneVariable_","doneProperty_","properties_","kinds","switchValue_","defaultCase_","index_","switchCase","matched_","tested_","doneBlock_","doneHandler_","doneFinalizer_","leftSide_","changeValue","returnValue","declarations","declarationNode","init_","doneBody_","numServerGrowthCycles","numServerGrowthCyclesAdjusted","findSleevePurchasableAugs","ownedAugNames","availableAugs","isAvailableForSleeve","validMults","StaneksGiftEvents","matchEnding","zip","JSZip","zipFiles","fileNames","fileContents","zipFn","generateAsync","FileSaver","saveAs","stealthIcon","xmlns","viewBox","killIcon","ActionLevel","isActive","canIncrease","canDecrease","Autolevel","TeamSizeButton","BlinkingCursor","setOn","StyleEditorButton","styleEditorOpen","setStyleEditorOpen","ThemeEditorButton","themeEditorOpen","setThemeEditorOpen","ThemeCollaborate","DeleteGameButton","modalOpened","setModalOpened","SoftResetButton","noConfirmation","TravelAgencyRoot","setDestination","startTravel","symbolsLoaded","symbols","SetupTextEditor","populate","exclude","OpenScript","lastPosition","model","openScripts","currentScript","Root","editorRef","monacoRef","vimStatusRef","vimEditor","setVimEditor","setEditor","setFilter","searchExpanded","setSearchExpanded","setRAM","ramEntries","setRamEntries","updatingRam","setUpdatingRam","decorations","setDecorations","optionsOpen","setOptionsOpen","setOptions","insertSpaces","wordWrap","ramInfoOpen","setRamInfoOpen","setDimensions","regenerateModel","createModel","debouncedHandleResize","updateRAM","keydown","ctrlKey","metaKey","require","initVimMode","VimMode","Vim","defineEx","defineAction","_cm","nTabs","currIndex","currentTabIndex","onTabClick","nextIndex","mapCommand","context","dispose","debouncedSetRAM","useMemo","newCode","entriesDisp","scriptToSave","textFile","curIndex","isDisposed","setModel","setPosition","revealLineInCenter","onTabClose","closingScript","savedScriptIndex","savedScriptCode","serverScriptIndex","indexOffset","getServerCode","openScript","serverScript","handleFilterChange","handleExpandSearch","filteredOpenScripts","editorHeight","tabMaxWidth","tabTextWidth","tabIconWidth","onDragEnd","items","startIndex","endIndex","removed","reorder","droppableId","direction","provided","snapshot","innerRef","droppableProps","isDraggingOver","spellCheck","iconButtonStyle","minWidth","borderColor","scriptTabText","serverScriptCode","dirty","draggableId","disableInteractiveElementBlocking","draggableProps","dragHandleProps","flexShrink","textOverflow","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","newArr","tempScript","awaitWarning","newDecorations","deltaDecorations","startLineNumber","startColumn","endLineNumber","endColumn","isWholeLine","glyphMarginClassName","glyphMarginHoverMessage","infLoop","glyphMargin","getAction","getSubdirectories","t_dir","processFile","subdir","containsFiles","dirWithTrailingSlash","makeScriptBlob","compile","shouldCompile","uurls","_getScriptUrls","loadedModule","isDependencyOutOfDate","scriptModuleSequenceNumber","depScript","seen","urlStack","ranges","importNodes","ExportNamedDeclaration","ExportAllDeclaration","transformedCode","matchingScripts","importedScript","urls","blob","ScriptUrl","vargs","numDashes","libarg","argv","defaultInterpreter","TablePaginationActionsAll","rowsPerPage","onPageChange","Cell","cellProps","onMouseEnter","Grid","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","_data","_sumParity","_lengthOfDBits","_build","_tempcount","_temparray","_tempdata","_temp","HammingDecode","_testArray","_overallParity","_tempIndex","_tempStep","_tempData","_tempArray","_tempParity","_fixIndex","truth","automate","stop","corpName","additionalShares","warehouseApi","OfficeApi","createTreantMarkup","childrenArray","htmlClass","HTMLclass","innerHTML","findNode","setParent","chart","nodeStructure","queue","getMultiplierHelper","getProductProductionMultiplier","StanekConstants","RAMBonus","BaseSize","MaxSize","currPos","nextPosName","Engine","_lastUpdate","updateGame","expForOtherSleeves","decrementAllCounters","checkCounters","Counters","autoSaveCounter","updateSkillLevelsCounter","updateDisplays","updateDisplaysLong","updateActiveScriptsDisplay","createProgramNotifications","augmentationsNotifications","passiveFactionGrowth","mechanicProcess","contractGeneration","achievementsCounter","counterName","warningToast","warnAutosaveDisabled","adjustedCycles","startExploits","setupUncaughtPromiseHandler","timeOffline","numCyclesOffline","offlineReputation","offlineHackingIncome","offlineProductionFromHacknetNodes","hacknetProdInfo","timeOfflineString","_thisUpdate","requestAnimationFrame","LoadingScreen","setShow","loaded","setLoaded","reason","doLoad","includeQueued","owned","stacks","newMultipliers","calculateEntropy","typ","invalidArgs","baseSize","charge","af","cotmg","inBonus","updateMults","effect","boost","neighboor","CalculateEffect","canPlace","rootX","rootY","newFrag","aFrag","place","findFragment","clearCharge","Void","infiltrationData","techVendorMaxRam","techVendorMinRam","StatsElement","EarningsElement","ServerType","All","Foreign","Owned","Purchased","ServerDropdown","isValidServer","purchased","serverType","purchase","canPurchase","DECK_COUNT","Result","Blackjack","bet","canStartGame","playerHand","deck","safeDrawCard","dealerHand","gameInProgress","Pending","getTrueHandValue","finishGame","Tie","PlayerWonByBlackjack","DealerWon","hand","handValues","getHandValue","valuesUnder21","isHandBusted","newHand","newDealerHand","PlayerWon","dealerHandValue","playerHandValue","betInput","wager","wagerInvalid","wagerInvalidHelperText","startGame","Deck","render","playerHandValues","getHandDisplayValues","dealerHandValues","wagerOnChange","helperText","playerHit","playerStay","startOnClick","elevation","card","prev","hidden","fontWeight","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","idx","filters","colorHSL","getFiltersFromHex","hex","rgb","hexToRgb","wrapFunction","helpers","wrappedAPI","functionPath","ctx","function","branch","getNestedProperty","setNestedProperty","gameCPS","Theme","credit","screenshot","img1","reference","outputHistory","startHack","startGrow","startWeaken","startBackdoor","startAnalyze","finishHack","oldSec","newSec","finishGrow","finishWeaken","finishBackdoor","finishAnalyze","isHacknet","org","canRunScripts","hackingSkill","security","hackingChance","numPort","getProgressText","getFile","getLitFile","lit","currDir","setcwd","contractOpen","executeScanAnalyzeCommand","visited","depthQueue","newS","titleDashes","connectToServer","executeCommands","commandHistory","commandHistoryIndex","executeCommand","n00dlesServ","commandName","scananalyze","apr1","removeBracketsFromArrayString","strCpy","removeQuotesFromString","convert2DArrayToString","ans","len","nums","ways","maxLen","padStart","spiral","u","col","playerAns","reach","jumps","lastJump","jumpedFrom","intervals","numIntervals","interval","sanitizedResult","sanitizedAns","B","C","ansArr","ipInAns","maxCur","maxSoFar","hold1","MIN_SAFE_INTEGER","hold2","release1","release2","prices","hold","rele","cur","createTriangleRecurse","numLevels","createTriangle","triangle","dp","numRows","numColumns","currentRow","gridString","grid","obstacleGrid","dstY","dstX","minPathLength","distanceFactor","distance","MinHeap","validPosition","neighbors","yN","xN","changeWeight","yQ","xQ","ansX","ansY","roll","dfs","pair","sanitizedPlayerAnsArr","resultInAnswer","numDigits","digitsArray","evaluated","multed","_alteredBit","_buildArray","_randomIndex","BinHeap","heapifyUp","heapifyDown","predicate","heapOrderABeforeB","tmp","toSwap","weightA","weightB","requireHackingLevel","targetServer","numAugReq","ipaddress","byteRange","multipliers","formattedHours","getHours","formattedMinutes","getMinutes","formattedSeconds","getSeconds","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","createDescription","AllSoftwarePositions","AllITPositions","AllNetworkEngineerPositions","SecurityEngineerPositions","AllTechnologyPositions","AllBusinessPositions","AllAgentPositions","AllSecurityPositions","AllSoftwareConsultantPositions","AllBusinessConsultantPositions","SoftwarePositionsUpToHeadOfEngineering","SoftwarePositionsUpToLeadDeveloper","BusinessPositionsUpToOperationsManager","WaiterOnly","EmployeeOnly","PartTimeWaiterOnly","PartTimeEmployeeOnly","OperationsManagerOnly","CEOOnly","Sector12CarmichaelSecurity","advertisingMult","employeeChaMult","employeeCreMult","employeeEffMult","employeeIntMult","productionMult","productProductionMult","salesMult","sciResearchMult","storageMult","effectText","costPerLevel","hasTargetServer","lookup","checkGangApiAccess","getGangMember","updateRam","_faction","wantedLevelGainRate","wantedPenalty","cpy","_memberName","memberName","hack_asc_mult","str_asc_mult","def_asc_mult","dex_asc_mult","agi_asc_mult","cha_asc_mult","respectGain","wantedLevelGain","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","maxHp","agilityExp","charismaExp","companyRep","crimeMoney","crimeSuccess","defenseExp","dexterityExp","factionRep","hackingExp","strengthExp","workMoney","workHackExpGain","workStrExpGain","workDefExpGain","workDexExpGain","workAgiExpGain","workChaExpGain","workMoneyGain","workRepGain","purchasableAugs","_augName","openDevMenu","devMenu","bypass","doc","completely_unused_field","real_document","alterReality","recur","rainbow","guess","bcrypt","getHacknetNode","hi","maxNumNodes","_i","hasUpgraded","timeOnline","totalProduction","_upgName","_upgTarget","getHashUpgrades","getHashUpgradeLevel","checkStanekAPIAccess","_ctx","_rootX","_rootY","_rotation","_fragmentId","fragmentId","avgCharge","newTheme","currentTheme","errors","newStyles","currentStyles","checkBladeburnerAccess","skipjoined","apiDenied","bladeburnerDenied","checkBladeburnerCity","getBladeburnerActionObject","_blackOpName","blackOpName","_type","_level","_autoLevel","_skillName","_size","getCodingContract","returnReward","is2DArray","answerComponents","creward","hasUnlockUpgrade","upgradeName","getCorporation","hasResearched","getDivision","getOffice","getWarehouse","getMaterial","materialName","getProduct","getEmployee","employeeName","checkAccess","api","getSafeDivision","getPurchaseWarehouseCost","getUpgradeWarehouseCost","_divisionName","_amt","hasWarehouse","_materialName","sll","_productName","pCost","cityData","developmentProgress","purchaseWarehouse","upgradeWarehouse","sellMaterial","_price","sellProduct","_all","discontinueProduct","setSmartSupply","_enabled","enabled","setSmartSupplyUseLeftovers","buyMaterial","bulkPurchase","makeProduct","_designInvest","_marketingInvest","limitProductProduction","_qty","exportMaterial","_sourceDivision","_sourceCity","_targetDivision","_targetCity","sourceDivision","targetDivision","targetCity","cancelExportMaterial","limitMaterialProduction","setMaterialMarketTA1","_on","setMaterialMarketTA2","setProductMarketTA1","setProductMarketTA2","getHireAdVertCost","getHireAdVertCount","getResearchCost","_researchName","setAutoJobAssignment","_job","_amount","getOfficeSizeUpgradeCost","assignJob","_employeeName","hireEmployee","upgradeOfficeSize","_costPerEmployee","buyCoffee","hireAdVert","minEne","minHap","expandIndustry","_industryName","industryName","expandCity","unlockUpgrade","_upgradeName","levelUpgrade","issueDividends","_percent","createCorporation","_corporationName","_selfFund","corporationName","selfFund","getUnlockUpgradeCost","getUpgradeLevel","getUpgradeLevelCost","getExpandIndustryCost","getExpandCityCost","getInvestmentOffer","fundingRound","percShares","acceptInvestmentOffer","funding","investShares","goPublic","_numShares","initialSharePrice","sellShares","buyBackShares","bribe","_amountCash","_amountShares","amountCash","amountShares","reFac","robFac","aiFac","advFac","hwFac","getProductDescriptionText","getMaximumNumberProducts","additional","hasMaximumNumberProducts","calculateProductionFactors","multSum","cityMult","updateWarehouseSizeUsed","prodName","newInd","employeeSalary","officeLoc","processMaterialMarket","processProductMarket","popularityGain","awarenessGain","MAX_VALUE","processMaterials","processProducts","wh","foo","imp","buyAmt","maxAmt","smartBuy","smartSupplyStore","worseAmt","totalSize","freeSpace","maxProd","getOfficeProductivity","totalMatSize","reqMatName","normQty","producableFrac","reqMatQtyNeeded","fooProd","fooI","businessFactor","getBusinessFactor","advertisingFactor","getAdvertisingFactors","marketFactor","getMarketFactor","markupLimit","numerator","sqrtNumerator","sqrtDenominator","denominator","sqrt","optimalPrice","marketTa2Price","sellAmt","totalExp","expI","amtStr","expIndustry","expWarehouse","engrProd","mgmtProd","opProd","mgmtFactor","processProduct","totalProfit","forProduct","netStorageSize","sCostString","businessProd","calculateEffectWithFactors","awarenessFac","popularityFac","ratioFac","updateResearchTree","expFac","linearFac","morale","happiness","energy","det","trainingEff","effCre","effEff","prodBase","checkFormulasAccess","calculateFavorToRep","_favor","calculateRepToFavor","_rep","_exp","_mult","_skill","hackPercent","growPercent","hackTime","levelUpgradeCost","_startingLevel","_extraLevels","_costMult","ramUpgradeCost","_startingRam","coreUpgradeCost","_startingCore","_extraCores","extraCores","hacknetNodeCost","constants","hacknetServers","hashGainRate","_ramUsed","_maxRam","HScalculateHashGainRate","HScalculateLevelUpgradeCost","HScalculateRamUpgradeCost","HScalculateCoreUpgradeCost","cacheUpgradeCost","_startingCache","_extraCache","extraCache","HScalculateCacheUpgradeCost","hashUpgradeCost","hacknetServerCost","HScalculateServerCost","ascensionPointsGain","ascensionMultiplier","_points","checkTixApiAccess","getStockFromSymbol","_symbol","_shares","_posType","sanitizedPosType","_pos","orderPos","ltype","lpos","stockMarketOrders","forecast","checkGraftingAPIAccess","_focus","wasFocusing","craftableAug","detect","hasChanges","orig","fl","backups","maxClearanceLevel","startingSecurityLevel","TechVendor","University","AevumCasino","Casino","Special","NewTokyoArcade","Sector12CityHall","Hospital","WorldStockExchange","ChongqingChurchOfTheMachineGod","IshimaGlitch","textfield","InteractiveTutorialRoot","contents","canNext","square","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","breakpoints","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","handleShortcuts","altKey","E","H","R","P","F","U","G","anchor","timeout","unmountOnExit","clsx","badgeContent","NeuroFluxDisplay","EntropyDisplay","AugmentationsRoot","installOpen","setInstallOpen","gap","InstalledAugmentations","sourceAugs","selectedAug","setSelectedAug","Alphabetically","aug1","aug2","BitNodeModifiedStats","MultiplierList","listItems","currentValue","augmentedValue","bitNodeMultiplier","py","disableTypography","PlayerMultipliers","augP","calculateAugmentedStats","leftColData","rightColData","hasLeftImprovements","hasRightImprovements","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","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","tab","GeneralActionPage","GeneralActionList","actions","GeneralActionElem","computedActionTimeCurrent","actionData","ContractPage","ContractList","ContractElem","Contracts","StealthIcon","KillIcon","OperationPage","OperationList","OperationElem","TeamSizeModal","BlackOpPage","BlackOpList","blackopName","blackop","BlackOpElem","hasReqdRank","SkillPage","valid","onUpgrade","SkillList","SkillElem","canLevel","GangRoot","ManagementSubpage","GangStats","territoryStr","BonusTime","CyclerPerSecond","bonusMillis","GangMemberList","ascendOnly","setAscendOnly","onRecruit","newValue","GangMemberCard","GangMemberCardContent","ascendOpen","setAscendOpen","borderRightWidth","onAscend","borderLeftWidth","onTaskChange","GangMemberStats","asc","KillScriptsModal","TaskSelector","setCurrentTask","contextMember","TaskDescription","AscensionModal","RecruitButton","RecruitModal","setName","recruit","onKeyUp","TerritorySubpage","gangNames","infoOpen","setInfoOpen","formatTerritory","OtherGangTerritory","clashVictoryChance","TerritoryInfoModal","NextReveal","PurchasedUpgrade","UpgradeButton","GangMemberUpgradePanel","currentCategory","setCurrentCategory","filterUpgrades","weaponUpgrades","armorUpgrades","vehicleUpgrades","rootkitUpgrades","augUpgrades","categories","Weapons","Vehicles","Rootkits","EquipmentsSubpage","CorporationRoot","setDivisionName","canExpand","industryType","MainPanel","CityTabs","setCity","cityStateSetter","countEmployee","SwitchButton","manualMode","switchMode","ManualManagement","setEmployee","employeePositionSelectorInitialValue","employeePositions","positionNames","AutoAssignJob","numJob","numUnassigned","AutoManagement","vechain","totalMorale","totalHappiness","totalEnergy","totalSalary","avgMorale","avgHappiness","avgEnergy","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","Text","researchOpen","setResearchOpen","advertisingInfo","advertisingFactors","totalAdvertisingFac","convertEffectFacToGraphic","Upgrades","IndustryOverview","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","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","findInvestorsopen","setFindInvestorsopen","goPublicopen","setGoPublicopen","fundingAvailable","findInvestorsTooltip","upgradeData","sellSharesOpen","setSellSharesOpen","buybackSharesOpen","setBuybackSharesOpen","issueNewSharesOpen","setIssueNewSharesOpen","issueDividendsOpen","setIssueDividendsOpen","sellSharesOnCd","sellSharesTooltip","issueNewSharesOnCd","issueNewSharesTooltip","canBribe","totalDividends","storedTime","LevelableUpgrade","UU","BribeFactionModal","setStock","selectedFaction","setSelectedFaction","getRepText","SellSharesModal","setShares","ProfitIndicator","BuybackSharesModal","CostIndicator","IssueDividendsModal","setPercent","canIssue","maxNewSharesUnrounded","maxNewShares","newShares","IssueNewSharesModal","issueNewShares","privateShares","FindInvestorsModal","GoPublicModal","calcRawDiff","startingDifficulty","InfiltrationRoot","setStart","calcDifficulty","calcReward","StartingDifficulty","Difficulty","Reward","cancel","arrowPart","arrow","Intro","Stage","minigames","SlashGame","BracketGame","BackwardGame","BribeGame","CheatCodeGame","Cyberpunk2077Game","MinesweeperGame","WireCuttingGame","setLevel","stage","setStage","Countdown","results","setResults","gameIds","setGameIds","lastGames","nextGameId","ids","setupNextGame","pushResult","next","stageComponent","onFinish","Minigame","MiniGame","onSuccess","Sell","onFailure","automated","Progress","difficulties","timer","setRight","OPEN_BRACKET","LESS_THAN","OPEN_PARENTHESIS","OPEN_BRACE","generateLeftSide","CLOSE_PARENTHESIS","CLOSE_BRACKET","CLOSE_BRACE","GREATER_THAN","getChar","phase","setPhase","words","makeAnswer","setGuess","BACKSPACE","nextGuess","positive","option","negative","shuffleArray","makeChoices","setIndex","newIndex","arrows","generateCode","puzzle","randChar","generatePuzzle","generateAnswer","setPos","move","mines","minefield","field","generateEmptyField","generateMinefield","memoryPhase","setMemoryPhase","fieldEquals","wiresmin","wiresmax","PIPE","DOT","FORWARD_SLASH","HYPHEN","HASH","colorNames","blue","wires","numWires","wireColors","generateWires","cutWires","setCutWires","questions","numQuestions","questionGenerators","randomPositionQuestion","randomColorQuestion","generateQuestion","question","wire","wireNum","shouldCut","checkWire","wiresToBeCut","shouldBeCut","cutColor","Victory","quitInfiltration","levelBonus","GraftableAugmentations","canGraft","AugPreReqsChecklist","preAug","GraftingRoot","graftableAug","graftOpen","setGraftOpen","CYCLES_PER_SEC","WorkInProgressRoot","unfocus","stopText","numBars","progressBar","GameOptionsRoot","currentTab","setCurrentTab","SYSTEM","setTab","CurrentOptionsPage","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","timestampFormat","setTimestampFormat","setLocale","INTERFACE","GAMEPLAY","MISC","SideBarTab","sideBarProps","tabName","GameOptionsSidebar","importInput","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","gridTemplateAreas","gridArea","File","FileList","ii","ex","confirmedImportGame","method","alt","ServerAccordion","FileDiagnosticModal","FontFamilyField","refreshId","errorText","setErrorText","setFontFamily","LineHeightField","setLineHeight","StyleEditorModal","setRefreshId","customStyle","setCustomStyle","persistToSettings","endIcon","ColorEditor","onColorChange","defaultColor","hideTextfield","deferred","newColor","disableAlpha","ThemeEditorModal","customTheme","setCustomTheme","setTemplateTheme","placement","maxRows","importedTheme","SleeveRoot","FAQOpen","setFAQOpen","SleeveElem","statsOpen","setStatsOpen","earningsOpen","setEarningsOpen","augmentationsOpen","setAugmentationsOpen","abc","setABC","doing","SleeveAugmentationsModal","MoreStatsModal","MoreEarningsModal","universitySelectorOptions","gymSelectorOptions","possibleJobs","forbiddenCompanies","otherSleeve","possibleFactions","forbiddenFactions","facInfo","second","universities","gyms","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","upgradeCacheCost","HashUpgradeModal","serversMap","HacknetUpgradeElem","selectedServer","setSelectedServer","MultiplierButton","MultiplierButtons","buttons","btnProps","PlayerInfo","hasServers","PurchaseButton","GenericLocation","locContent","locName","getLocationSpecificContent","serverMeta","CompanyLocation","quitOpen","setQuitOpen","isEmployedHere","favorGain","onQuit","QuitJobModal","GymLocation","train","HospitalLocation","btnStyle","getHealed","currHp","SlumsLocation","shopliftChance","robStoreChance","mugChance","larcenyChance","drugsChance","bondChance","armsChance","homicideChance","gtaChance","kidnapChance","assassinateChance","heistChance","SpecialLocation","handleBladeburner","new","worldHeader","HTMLElement","handleGrafting","CreateCorporation","handleCotMG","renderBladeburner","toStanek","renderCotMG","CreateCorporationModal","canSelfFund","n00dlePower","ArcadeRoot","Megabyteburner2000","currentGame","BBCabinetRoot","origin","joystick","borderStyle","borderWidth","ServerButton","TechVendorLocation","purchaseServerButtons","RamButton","bnMult","TorButton","purchaseTorRouter","darkweb","CoresButton","maxCores","PurchaseServerModal","setHostname","tryToPurchaseServer","TravelConfirmationModal","UniversityLocation","take","dataStructuresCost","networksCost","algorithmsCost","managementCost","leadershipCost","GameType","CasinoLocation","setGame","Coin","Slots","Roulette","numDecks","shuffle","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","paragraph","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","schema","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","gangOpen","setGangOpen","isPlayersGang","favorToDonate","canDonate","canPurchaseSleeves","startHackingContracts","startFieldWork","startSecurityWork","FactionRoot","purchasingAugs","setPurchasingAugs","routeToMainPage","AugmentationsPage","getAugs","switchSortOrder","newOrder","Cost","augName1","augName2","getAugsSortedByCost","getAugsSortedByReputation","Purchasable","canBuy","hasReq","hasRep","cantBuy","getAugsSortedByPurchasable","getAugsSorted","purchasable","purchaseableAugmentation","augListElems","ownedElem","Requirements","PurchaseableAugmentation","hasCost","btnTxt","PurchaseAugmentationModal","DonateOption","donateAmt","setDonateAmt","Status","noformat","DefaultAssignment","Info","Assignment","CreateGangModal","CovenantPurchasesRoot","setUpdate","purchaseDisabled","upgradePanels","CovenantSleeveMemoryUpgrade","maxMemory","purchaseBtnDisabled","purchaseBtnContent","EmployersModal","MultiplierTable","noMargin","modded","CurrentBitNode","MoneyModal","convertMoneySourceTrackerToString","parts","infiltration","CharacterStats","moneyOpen","setMoneyOpen","employersOpen","setEmployersOpen","timeRows","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","BitnodeMultiplierDescription","GeneralMults","FactionMults","AugmentationMults","StockMults","SkillMults","HackingMults","PurchasedServersMults","CrimeMults","InfiltrationMults","CompanyMults","GangMults","CorporationMults","BladeburnerMults","StanekMults","CinematicLine","setLength","ms","newLength","advance","StaneksGiftRoot","MainBoard","setGrid","setGhostGrid","setRotation","selectedFragment","setSelectedFragment","moveGhost","clickAt","deleteAt","doRotate","selectFragment","FragmentInspector","setC","effectAmt","FragmentOption","colorAt","FragmentSelector","FragmentPreview","_width","_height","getComputedStyle","Element","AchievementsRoot","AchievementList","cssPrimary","cssSecondary","secret","unavailable","locked","pr","defaultExpanded","AchievementIcon","imgLoaded","setImgLoaded","onLoad","ErrorBoundary","Component","hasError","componentDidCatch","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","getFaction","getCompany","runAfterReset","cbScript","_purchased","_facName","_cbScript","_locationName","locationName","_programName","baseserver","installTime","jobTitles","_companyName","wasFocused","_field","repNeededToDonate","_nextBN","_callbackScript","nextBN","callbackScript","hackingRequirements","empty","srcFile","sourceFileObject","incMult","decMult","normalServer","relative_filename","evaledDir","t_dst","dst","srcExt","tRes","sRes","sanitizedExpr","used","avail","usedPercent","incorrectUsage","newPath","allPrograms","allScripts","allTextFiles","allContracts","allMessages","folders","handleFn","dest","parsedFn","firstParentDir","msgOrLit","ClickableScriptRow","scriptLinksWrap","scriptLink","textDecorationLine","paddingRight","rowSplitArray","rowItem","onScriptLinkClick","ClickableMessageRow","linksWrap","link","onMessageLinkClick","FileType","postSegments","segments","linked","filesPerRow","Folder","groups","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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AAU,CAACj3B,IAAao7B,QAASp7B,IAAas7B,YAAat7B,IAAaq7B,gBAE1E,IAAIzE,IAAa,CACfh5B,KAAMmR,IAAkBwwH,WACxBxoG,UAAW,KACXC,QAAS,IACTF,KACE,oJAEFc,eAAgB,IAChBX,SAAU,CACRj3B,IAAam7B,WACbn7B,IAAas7B,YACbt7B,IAAaq7B,aACbr7B,IAAaiyB,SACbjyB,IAAamyB,OACbnyB,IAAa27B,oBACb37B,IAAau6C,sBACbv6C,IAAay5C,mBAGjB,IAAI7iB,IAAa,CACfh5B,KAAMmR,IAAkBywH,WACxBzoG,UAAW,MACXC,QAAS,KACTF,KACE,6JAEFI,QAAS,CAACnoB,IAAkBwwH,YAC5B3nG,eAAgB,IAChBX,SAAU,CACRj3B,IAAas7B,YACbt7B,IAAaq7B,aACbr7B,IAAaiyB,SACbjyB,IAAa27B,oBACb37B,IAAau6C,sBACbv6C,IAAay5C,mBAGjB,IAAI7iB,IAAa,CACfh5B,KAAMmR,IAAkB0wH,WACxB1oG,UAAW,MACXC,QAAS,MACTF,KAAM,yGACNI,QAAS,CAACnoB,IAAkBywH,YAC5B5nG,eAAgB,IAChBX,SAAU,CACRj3B,IAAas7B,YACbt7B,IAAaq7B,aACbr7B,IAAa27B,oBACb37B,IAAau6C,sBACbv6C,IAAay5C,gBACbz5C,IAAa84C,eAGjB,IAAIliB,IAAa,CACfh5B,KAAMmR,IAAkB2wH,eACxB3oG,UAAW,OACXC,QAAS,KACTF,KACE,0IAEFe,aAAc,IACdH,cAAe,IACfT,SAAU,CACRj3B,IAAau6C,sBACbv6C,IAAa47B,0BACb57B,IAAau7B,mBACbv7B,IAAa45C,IACb55C,IAAa84C,YACb94C,IAAa44C,SACb54C,IAAau4C,cAGjB,IAAI3hB,IAAa,CACfh5B,KAAMmR,IAAkB4wH,gBACxB3oG,QAAS,OACTD,UAAW,OACXD,KACE,mSAGFY,cAAe,IACfC,aAAc,IACdV,SAAU,CACRj3B,IAAau6C,sBACbv6C,IAAa47B,0BACb57B,IAAau7B,mBACbv7B,IAAa45C,IACb55C,IAAa84C,YACb94C,IAAa44C,SACb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C,SACbn5C,IAAa47B,0BACb57B,IAAa45C,IACb55C,IAAay5C,gBACbz5C,IAAa27B,oBACb37B,IAAau6C,yBAGjB,IAAI3jB,IAAa,CACfh5B,KAAMmR,IAAkBqyH,UACxBpqG,QAAS,MACTD,UAAW,KACXD,KACE,qNAGFI,QAAS,CAACnoB,IAAkBoyH,WAC5B7oG,mBAAoB,KACpBC,mBAAoB,IACpBF,oBAAqB,IACrBN,iBAAkB,KAClBP,aAAc,IACdP,SAAU,CACRj3B,IAAag5C,MACbh5C,IAAam5C,SACbn5C,IAAa47B,0BACb57B,IAAa45C,IACb55C,IAAa44C,SACb54C,IAAa84C,YACb94C,IAAau4C,cAGjB,IAAI3hB,IAAa,CACfh5B,KAAMmR,IAAkBsyH,iBACxBrqG,QAAS,MACTD,UAAW,IACXD,KACE,qKAEFI,QAAS,CAACnoB,IAAkBkyH,KAC5B3oG,mBAAoB,IACpBrB,SAAU,CACRj3B,IAAag5C,MACbh5C,IAAam5C,SACbn5C,IAAa47B,0BACb57B,IAAa45C,IACb55C,IAAa44C,SACb54C,IAAa84C,YACb94C,IAAau4C,cAGjB,IAAI3hB,IAAa,CACfh5B,KAAMmR,IAAkBuyH,OACxBtqG,QAAS,IACTD,UAAW,IACXD,KACE,kNAGFI,QAAS,CAACnoB,IAAkBkyH,KAC5B1oG,mBAAoB,IACpBF,oBAAqB,IACrBpB,SAAU,CACRj3B,IAAag5C,MACbh5C,IAAam5C,SACbn5C,IAAa47B,0BACb57B,IAAa45C,IACb55C,IAAa44C,SACb54C,IAAa84C,YACb94C,IAAau4C,cAGjB,IAAI3hB,IAAa,CACfh5B,KAAMmR,IAAkBwyH,iBACxBvqG,QAAS,IACTD,UAAW,IACXD,KACE,sHAEFwB,mBAAoB,KACpBD,oBAAqB,IACrBN,iBAAkB,KAClBd,SAAU,CACRj3B,IAAay7B,aACbz7B,IAAagyB,UACbhyB,IAAaiyB,SACbjyB,IAAakyB,SACblyB,IAAa+xB,MACb/xB,IAAamyB,OACbnyB,IAAaoyB,SACbpyB,IAAas5C,kBACbt5C,IAAa+5C,mBACb/5C,IAAao6C,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GACA,IACA,gCACA,IACA,mHACA,yHACA,4CACA,IACA,gCACA,IACA,6DACA,IACA,eACA,IACA,2HACA,4HACA,IACA,mCACA,IACA,8GACA,IACA,uHACA,uCACA,IACA,uDACA,KAEF8zD,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEF34H,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEF44H,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEFnhB,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEFohB,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEF3oH,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEF4oH,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEFz3H,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEF03H,GAAI,CAAC,wBAAyB,IAAK,wEAAyE,KAC5GvqE,SAAU,CACR,qCACA,IACA,mFACA,IACA,4GACA,IACA,kDACA,IACA,0CACA,IACA,0CACA,KAEFwqE,KAAM,CACJ,wCACA,IACA,oFACA,IACA,oBACA,IACA,WACA,IACA,wBACA,IACA,qFACA,KAEFC,KAAM,CACJ,cACA,IACA,gIACA,gCACA,KAEF7sH,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEFT,KAAM,CACJ,cACA,IACA,uHACA,KAEFutH,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEFhvG,KAAM,CACJ,cACA,IACA,sGACA,KAEFr1B,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChF4Y,KAAM,CACJ,mDACA,IACA,4EACA,IACA,6EACA,4EACA,iFACA,4DACA,IACA,uCACA,IACA,qEACA,IACA,wCACA,IACA,qFACA,KAEFC,QAAS,CACP,iBACA,IACA,4CACA,2HACA,uHACA,2EACA,KAEFI,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,KAEFqrH,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEF7nH,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEF8nH,KAAMd,EAAgC,QACtCxqH,GAAI,CAAC,YAAa,IAAK,4DAA6D,KACpFsC,GAAI,CACF,mBACA,IACA,6GACA,IACA,kDACA,KAEF/C,IAAK,CACH,sDACA,IACA,gDACA,IACA,sHACA,2GACA,gEACA,2DACA,2FACA,IACA,kHACA,iFACA,KAEF7B,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,KAEFoC,IAAK,CACH,4CACA,IACA,8EACA,2GACA,oCACA,2FACA,IACA,6BACA,IACA,wCACA,KAEFyrH,MAAO,CAAC,eAAgB,IAAK,oEAAqE,KAElG7nH,KAAM,CACJ,sCACA,IACA,oHACA,uHACA,oEACA,IACA,8BACA,IACA,gFACA,IACA,+BACA,KAEFq9D,IAAK,CACH,aACA,IACA,yGACA,+BACA,KAEFyqD,QAAS,CACP,8BACA,IACA,mFACA,IACA,iDACA,IACA,oBACA,IACA,kCACA,IACA,gBACA,IACA,kGACA,KAEFhgF,IAAKg/E,EAAgC,OACrCjsH,OAAQ,CACN,gBACA,IACA,oHACA,iEACA,KAEF8E,KAAM,CACJ,kCACA,IACA,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MAAM4D,KAAK4hJ,WAAY1P,YAE5DlyI,KAAKyhJ,2BAA2BzhJ,KAAK8/I,MAAO,cAAeL,GAE3DA,EAAU,WAER,OADAtzF,MAAMxwD,UAAU+V,KAAK7V,KAAKmE,KAAK4hJ,YACxB5hJ,MAETA,KAAKyhJ,2BAA2BzhJ,KAAK8/I,MAAO,OAAQL,GAEpDz/I,KAAK28I,WAAW5gJ,KAGd,kDACA,8CACA,kCACA,oEACA,YACA,wBACA,4BACA,yCACA,SACA,oBACA,+DACA,OACA,IACA,eACA,IACA,MAIA,mDACA,8CACA,+BACA,wFACA,wBACA,4BACA,gBACA,+DACA,kCACA,gBACA,kBACA,mDACA,IACA,IACA,cACA,IACA,MAKA,+BACA,mDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,iBACA,IACA,OACA,IACA,oBACA,KACA,sBACA,iBACA,MACA,IAKA,oCACA,wDACA,+BACA,sBACA,0DACA,IACA,wBACA,4BACA,yCACA,uDACA,IACA,8BACA,aACA,oBACA,qBACA,+CACA,YACA,IACA,OACA,IACA,aACA,KACA,sBACA,iBACA,MACA,IAIA,oDACA,8CACA,gCACA,kEACA,YACA,wBACA,4BACA,yCACA,SACA,oBACA,4CACA,OACA,IACA,IACA,MAIA,uDACA,8CACA,sBACA,0DACA,IACA,yCACA,wBACA,mDACA,4BACA,mCACA,mBACA,gBACA,IACA,yCACA,qEACA,yBACA,uBACA,qBACA,oBACA,2BACA,+BACA,uDACA,iCACA,8FACA,IACA,8BACA,oBACA,+DACA,wEACA,4CACA,eACA,IACA,0BACA,OACA,IACA,qBACA,gBACA,IACA,MAIA,gDACA,8CACA,gCACA,8DACA,eACA,wBACA,4BACA,yCACA,sBACA,SACA,oBACA,mDACA,OACA,IACA,YACA,IACA,MAIA,mDACA,8CACA,0CACA,kEACA,4DACA,gCACA,wBACA,WACA,oCACA,kBACA,kEACA,IACA,kBACA,IACA,yBACA,mDACA,IACA,gBACA,IA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,MACA,WACA,SACA,cACA,MACA,aACA,WACA,OACA,MACA,UACA,QACA,WACA,UACA,aACA,QACA,UACA,MACA,OACA,SACA,WACA,WACA,UACA,QACA,cACA,cACA,YACA,SACA,OACA,SACA,QACA,WACA,WACA,WACA,OACA,SACA,WACA,YACA,OACA,OACA,YACA,YACA,OACA,QACA,UACA,YACA,WACA,aACA,YACA,OACA,WACA,WACA,SACA,MACA,WACA,UACA,SACA,gBACA,OACA,QACA,UACA,QACA,QACA,UACA,YACA,QACA,YACA,UACA,QACA,SACA,SACA,QACA,UACA,cACA,QACA,aACA,MACA,UACA,OACA,WACA,WACA,UACA,SACA,aACA,YACA,SACA,SACA,SACA,OACA,WACA,QACA,OACA,WACA,SACA,SACA,WACA,SACA,UACA,QACA,SACA,QACA,UACA,UACA,UACA,UACA,aACA,WACA,QACA,SACA,MACA,WACA,SACA,aACA,UACA,MACA,OACA,SACA,UACA,OACA,OACA,UACA,SACA,aACA,SACA,SACA,SACA,SACA,SACA,WACA,SACA,YACA,QACA,QACA,YACA,WACA,oBACA,WACA,OACA,UACA,cACA,UACA,SACA,UACA,gBACA,OACA,SACA,QACA,MACA,WACA,WACA,WACA,cACA,SACA,UACA,QACA,eACA,WACA,OACA,OACA,SACA,MACA,OACA,iBACA,WACA,UACA,UACA,UACA,iBACA,QACA,MACA,YACA,UACA,SACA,OACA,SACA,UACA,WACA,YACA,cACA,MACA,OACA,MACA,MACA,Q,6BCvTF,iHAgBA,MAAMf,EAKF,CACFnuG,QAAS,CAAEouG,MAAO,KAAOrtJ,KAAM,GAC/Bk/C,OAAQ,CAAEmuG,MAAO,IAAMrtJ,KAAM,GAC7Bm/C,KAAM,CAAEkuG,MAAO,IAAMrtJ,KAAM,GAC3Bo/C,WAAY,CAAEiuG,MAAO,KAAMrtJ,KAAM,KAG5B,SAASwrJ,EAAUtjM,GACxB,MAAM8qB,EAAyB,CAAEq6K,MAAO,EAAGrtJ,KAAM,GACjD4+C,YAAYwuG,EAAcllM,EAAM8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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([1522,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 as any);\n Player.exploits = sanitizeExploits(Player.exploits);\n}\n","export enum FactionNames {\n Illuminati = \"Illuminati\",\n Daedalus = \"Daedalus\",\n TheCovenant = \"The Covenant\",\n ECorp = \"ECorp\",\n MegaCorp = \"MegaCorp\",\n BachmanAssociates = \"Bachman & Associates\",\n BladeIndustries = \"Blade Industries\",\n NWO = \"NWO\",\n ClarkeIncorporated = \"Clarke Incorporated\",\n OmniTekIncorporated = \"OmniTek Incorporated\",\n FourSigma = \"Four Sigma\",\n KuaiGongInternational = \"KuaiGong International\",\n FulcrumSecretTechnologies = \"Fulcrum Secret Technologies\",\n BitRunners = \"BitRunners\",\n TheBlackHand = \"The Black Hand\",\n NiteSec = \"NiteSec\",\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n SpeakersForTheDead = \"Speakers for the Dead\",\n TheDarkArmy = \"The Dark Army\",\n TheSyndicate = \"The Syndicate\",\n Silhouette = \"Silhouette\",\n Tetrads = \"Tetrads\",\n SlumSnakes = \"Slum Snakes\",\n Netburners = \"Netburners\",\n TianDiHui = \"Tian Di Hui\",\n CyberSec = \"CyberSec\",\n Bladeburners = \"Bladeburners\",\n ChurchOfTheMachineGod = \"Church of the Machine God\",\n}\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) && numeralValue === null && isNaN(selfParsed)) {\n // 3x NaN\n return NaN;\n } else if (isNaN(parsed) && isNaN(selfParsed)) {\n // 2x NaN\n return numeralValue;\n } else if (numeralValue === null && isNaN(selfParsed)) {\n // 2x NaN\n return parsed;\n } else if (isNaN(parsed) && numeralValue === null) {\n // 2x NaN\n return selfParsed;\n } else if (isNaN(parsed)) {\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","import { ISelfInitializer, ISelfLoading } from \"../types\";\nimport { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from \"./SettingEnums\";\nimport { defaultTheme, ITheme } from \"../Themes/Themes\";\nimport { defaultStyles } from \"../Themes/Styles\";\nimport { WordWrapOptions } from \"../ScriptEditor/ui/Options\";\nimport { OverviewSettings } from \"../ui/React/Overview\";\nimport { IStyleSettings } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { defaultMonacoTheme, IScriptEditorTheme } from \"../ScriptEditor/ui/themes\";\n\n/**\n * Represents the default settings the player could customize.\n */\ninterface IDefaultSettings {\n /**\n * How many servers per page\n */\n ActiveScriptsServerPageSize: number;\n /**\n * How many scripts per page\n */\n ActiveScriptsScriptPageSize: number;\n /**\n * How often the game should autosave the player's progress, in seconds.\n */\n AutosaveInterval: number;\n\n /**\n * How many milliseconds between execution points for Netscript 1 statements.\n */\n CodeInstructionRunTime: number;\n\n /**\n * Render city as list of buttons.\n */\n DisableASCIIArt: boolean;\n\n /**\n * Whether global keyboard shortcuts should be recognized throughout the game.\n */\n DisableHotkeys: boolean;\n\n /**\n * Whether text effects such as corruption should be visible.\n */\n DisableTextEffects: boolean;\n\n /**\n * Whether overview progress bars should be visible.\n */\n DisableOverviewProgressBars: boolean;\n\n /**\n * Enable bash hotkeys\n */\n EnableBashHotkeys: boolean;\n\n /**\n * Timestamps format\n */\n TimestampsFormat: string;\n\n /**\n * Locale used for display numbers\n */\n Locale: string;\n\n /**\n * Limit the number of recently killed script entries being tracked.\n */\n MaxRecentScriptsCapacity: number;\n\n /**\n * Limit the number of log entries for each script being executed on each server.\n */\n MaxLogCapacity: number;\n\n /**\n * Limit how many entries can be written to a Netscript Port before entries start to get pushed out.\n */\n MaxPortCapacity: number;\n\n /**\n * Limit the number of entries in the terminal.\n */\n MaxTerminalCapacity: number;\n\n /**\n * Save the game when you save any file.\n */\n SaveGameOnFileSave: boolean;\n\n /**\n * Whether the player should be asked to confirm purchasing each and every augmentation.\n */\n SuppressBuyAugmentationConfirmation: boolean;\n\n /**\n * Whether the user should be prompted to join each faction via a dialog box.\n */\n SuppressFactionInvites: boolean;\n\n /**\n * Whether the user should be shown a dialog box whenever they receive a new message file.\n */\n SuppressMessages: boolean;\n\n /**\n * Whether the user should be asked to confirm travelling between cities.\n */\n SuppressTravelConfirmation: boolean;\n\n /**\n * Whether the user should be displayed a popup message when his Bladeburner actions are cancelled.\n */\n SuppressBladeburnerPopup: boolean;\n\n /**\n * Whether the user should be displayed a popup message on stock market actions.\n */\n SuppressTIXPopup: boolean;\n\n /**\n * Whether the user should be displayed a toast alert when the game is saved.\n */\n SuppressSavedGameToast: boolean;\n\n /**\n * Whether the user should be displayed a toast warning when the autosave is disabled.\n */\n SuppressAutosaveDisabledWarnings: boolean;\n\n /*\n * Whether the game should skip saving the running scripts for late game\n */\n ExcludeRunningScriptsFromSave: boolean;\n\n /*\n * Theme colors\n */\n theme: ITheme;\n\n /*\n * Interface styles\n */\n styles: IStyleSettings;\n\n /*\n * Use GiB instead of GB\n */\n UseIEC60027_2: boolean;\n\n /*\n * Character overview settings\n */\n overview: OverviewSettings;\n\n /**\n * If the game's sidebar is opened\n */\n IsSidebarOpened: boolean;\n\n /**\n * Script editor theme data\n */\n EditorTheme: IScriptEditorTheme;\n}\n\n/**\n * Represents all possible settings the player wants to customize to their play style.\n */\ninterface ISettings extends IDefaultSettings {\n /**\n * What order the player's owned Augmentations/Source Files should be displayed in\n */\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting;\n\n /**\n * What order the Augmentations should be displayed in when purchasing from a Faction\n */\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting;\n\n MonacoTheme: string;\n\n MonacoInsertSpaces: boolean;\n\n MonacoFontSize: number;\n\n MonacoVim: boolean;\n\n MonacoWordWrap: WordWrapOptions;\n}\n\nexport const defaultSettings: IDefaultSettings = {\n ActiveScriptsServerPageSize: 10,\n ActiveScriptsScriptPageSize: 10,\n AutosaveInterval: 60,\n CodeInstructionRunTime: 50,\n DisableASCIIArt: false,\n DisableHotkeys: false,\n DisableTextEffects: false,\n DisableOverviewProgressBars: false,\n EnableBashHotkeys: false,\n TimestampsFormat: \"\",\n Locale: \"en\",\n MaxRecentScriptsCapacity: 50,\n MaxLogCapacity: 50,\n MaxPortCapacity: 50,\n MaxTerminalCapacity: 500,\n SaveGameOnFileSave: true,\n SuppressBuyAugmentationConfirmation: false,\n SuppressFactionInvites: false,\n SuppressMessages: false,\n SuppressTravelConfirmation: false,\n SuppressBladeburnerPopup: false,\n SuppressTIXPopup: false,\n SuppressSavedGameToast: false,\n SuppressAutosaveDisabledWarnings: false,\n UseIEC60027_2: false,\n ExcludeRunningScriptsFromSave: false,\n IsSidebarOpened: true,\n\n theme: defaultTheme,\n styles: defaultStyles,\n overview: { x: 0, y: 0, opened: true },\n\n EditorTheme: defaultMonacoTheme,\n};\n\n/**\n * The current options the player has customized to their play style.\n */\n// tslint:disable-next-line:variable-name\nexport const Settings: ISettings & ISelfInitializer & ISelfLoading = {\n ActiveScriptsServerPageSize: defaultSettings.ActiveScriptsServerPageSize,\n ActiveScriptsScriptPageSize: defaultSettings.ActiveScriptsScriptPageSize,\n AutosaveInterval: defaultSettings.AutosaveInterval,\n CodeInstructionRunTime: 25,\n DisableASCIIArt: defaultSettings.DisableASCIIArt,\n DisableHotkeys: defaultSettings.DisableHotkeys,\n DisableTextEffects: defaultSettings.DisableTextEffects,\n DisableOverviewProgressBars: defaultSettings.DisableOverviewProgressBars,\n EnableBashHotkeys: defaultSettings.EnableBashHotkeys,\n TimestampsFormat: defaultSettings.TimestampsFormat,\n Locale: \"en\",\n MaxRecentScriptsCapacity: defaultSettings.MaxRecentScriptsCapacity,\n MaxLogCapacity: defaultSettings.MaxLogCapacity,\n MaxPortCapacity: defaultSettings.MaxPortCapacity,\n MaxTerminalCapacity: defaultSettings.MaxTerminalCapacity,\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting.AcquirementTime,\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting.Default,\n SaveGameOnFileSave: defaultSettings.SaveGameOnFileSave,\n SuppressBuyAugmentationConfirmation: defaultSettings.SuppressBuyAugmentationConfirmation,\n SuppressFactionInvites: defaultSettings.SuppressFactionInvites,\n SuppressMessages: defaultSettings.SuppressMessages,\n SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,\n SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,\n SuppressTIXPopup: defaultSettings.SuppressTIXPopup,\n SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,\n SuppressAutosaveDisabledWarnings: defaultSettings.SuppressAutosaveDisabledWarnings,\n UseIEC60027_2: defaultSettings.UseIEC60027_2,\n ExcludeRunningScriptsFromSave: defaultSettings.ExcludeRunningScriptsFromSave,\n IsSidebarOpened: defaultSettings.IsSidebarOpened,\n\n MonacoTheme: \"monokai\",\n MonacoInsertSpaces: false,\n MonacoFontSize: 20,\n MonacoVim: false,\n MonacoWordWrap: \"off\",\n\n theme: { ...defaultTheme },\n styles: { ...defaultStyles },\n overview: defaultSettings.overview,\n EditorTheme: { ...defaultMonacoTheme },\n init() {\n Object.assign(Settings, defaultSettings);\n },\n load(saveString: string) {\n const save = JSON.parse(saveString);\n Object.assign(Settings.theme, save.theme);\n delete save.theme;\n Object.assign(Settings.styles, save.styles);\n delete save.styles;\n Object.assign(Settings.overview, save.overview);\n delete save.overview;\n Object.assign(Settings.EditorTheme, save.EditorTheme);\n delete save.EditorTheme;\n Object.assign(Settings, save);\n },\n};\n","/**\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 FactionWorkHacking: string;\n FactionWorkField: string;\n FactionWorkSecurity: string;\n WorkTypeCompany: string;\n WorkTypeCompanyPartTime: string;\n WorkTypeFaction: string;\n WorkTypeCreateProgram: string;\n WorkTypeStudyClass: string;\n WorkTypeCrime: string;\n WorkTypeGraftAugmentation: string;\n ClassStudyComputerScience: string;\n ClassDataStructures: string;\n ClassNetworks: string;\n ClassAlgorithms: string;\n ClassManagement: string;\n ClassLeadership: string;\n ClassGymStrength: string;\n ClassGymDefense: string;\n ClassGymDexterity: string;\n ClassGymAgility: string;\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 CrimeShoplift: string;\n CrimeRobStore: string;\n CrimeMug: string;\n CrimeLarceny: string;\n CrimeDrugs: string;\n CrimeBondForgery: string;\n CrimeTraffickArms: string;\n CrimeHomicide: string;\n CrimeGrandTheftAuto: string;\n CrimeKidnap: string;\n CrimeAssassination: string;\n CrimeHeist: string;\n CodingContractBaseFactionRepGain: number;\n CodingContractBaseCompanyRepGain: number;\n CodingContractBaseMoneyGain: number;\n AugmentationGraftingCostMult: number;\n AugmentationGraftingTimeBase: number;\n EntropyEffect: number;\n TotalNumBitNodes: number;\n Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG\n LatestUpdate: string;\n} = {\n VersionString: \"1.6.4\",\n VersionNumber: 15,\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: 200e3,\n\n // Base RAM costs\n BaseCostFor1GBOfRamHome: 32000,\n BaseCostFor1GBOfRamServer: 55000, //1 GB of RAM\n\n // Cost to travel to another city\n TravelCost: 200e3,\n\n // Faction and Company favor-related things\n BaseFavorToDonate: 150,\n DonateMoneyToRepDivisor: 1e6,\n FactionReputationToFavorBase: 500,\n FactionReputationToFavorMult: 1.02,\n CompanyReputationToFavorBase: 500,\n CompanyReputationToFavorMult: 1.02,\n\n // NeuroFlux Governor Augmentation cost multiplier\n NeuroFluxGovernorLevelMult: 1.14,\n\n NumNetscriptPorts: 20,\n\n // Server-related constants\n HomeComputerMaxRam: 1073741824, // 2 ^ 30\n ServerBaseGrowthRate: 1.03, // Unadjusted Growth rate\n ServerMaxGrowthRate: 1.0035, // Maximum possible growth rate (max rate accounting for server security)\n ServerFortifyAmount: 0.002, // Amount by which server's security increases when its hacked/grown\n ServerWeakenAmount: 0.05, // Amount by which server's security decreases when weakened\n\n PurchasedServerLimit: 25,\n PurchasedServerMaxRam: 1048576, // 2^20\n\n // Augmentation Constants\n MultipleAugMultiplier: 1.9,\n\n // TOR Router\n TorRouterCost: 200e3,\n\n // Stock market\n WSEAccountCost: 200e6,\n TIXAPICost: 5e9,\n MarketData4SCost: 1e9,\n MarketDataTixApi4SCost: 25e9,\n StockMarketCommission: 100e3,\n\n // Hospital/Health\n HospitalCostPerHp: 100e3,\n\n // Intelligence-related constants\n IntelligenceCrimeWeight: 0.025, // Weight for how much int affects crime success rates\n IntelligenceInfiltrationWeight: 0.1, // Weight for how much int affects infiltration success rates\n IntelligenceCrimeBaseExpGain: 0.05,\n IntelligenceProgramBaseExpGain: 0.1, // Program required hack level divided by this to determine int exp gain\n IntelligenceGraftBaseExpGain: 0.05,\n IntelligenceTerminalHackBaseExpGain: 200, // Hacking exp divided by this to determine int exp gain\n IntelligenceSingFnBaseExpGain: 1.5,\n IntelligenceClassBaseExpGain: 0.01,\n\n // Time-related constants\n MillisecondsPer20Hours: 72000000,\n GameCyclesPer20Hours: 72000000 / 200,\n\n MillisecondsPer10Hours: 36000000,\n GameCyclesPer10Hours: 36000000 / 200,\n\n MillisecondsPer8Hours: 28800000,\n GameCyclesPer8Hours: 28800000 / 200,\n\n MillisecondsPer4Hours: 14400000,\n GameCyclesPer4Hours: 14400000 / 200,\n\n MillisecondsPer2Hours: 7200000,\n GameCyclesPer2Hours: 7200000 / 200,\n\n MillisecondsPerHour: 3600000,\n GameCyclesPerHour: 3600000 / 200,\n\n MillisecondsPerHalfHour: 1800000,\n GameCyclesPerHalfHour: 1800000 / 200,\n\n MillisecondsPerQuarterHour: 900000,\n GameCyclesPerQuarterHour: 900000 / 200,\n\n MillisecondsPerFiveMinutes: 300000,\n GameCyclesPerFiveMinutes: 300000 / 200,\n\n // Player Work & Action\n BaseFocusBonus: 0.8,\n FactionWorkHacking: \"Faction Hacking Work\",\n FactionWorkField: \"Faction Field Work\",\n FactionWorkSecurity: \"Faction Security Work\",\n\n WorkTypeCompany: \"Working for Company\",\n WorkTypeCompanyPartTime: \"Working for Company part-time\",\n WorkTypeFaction: \"Working for Faction\",\n WorkTypeCreateProgram: \"Working on Create a Program\",\n WorkTypeStudyClass: \"Studying or Taking a class at university\",\n WorkTypeCrime: \"Committing a crime\",\n WorkTypeGraftAugmentation: \"Grafting an Augmentation\",\n\n ClassStudyComputerScience: \"studying Computer Science\",\n ClassDataStructures: \"taking a Data Structures course\",\n ClassNetworks: \"taking a Networks course\",\n ClassAlgorithms: \"taking an Algorithms course\",\n ClassManagement: \"taking a Management course\",\n ClassLeadership: \"taking a Leadership course\",\n ClassGymStrength: \"training your strength at a gym\",\n ClassGymDefense: \"training your defense at a gym\",\n ClassGymDexterity: \"training your dexterity at a gym\",\n ClassGymAgility: \"training your agility at a gym\",\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 CrimeShoplift: \"shoplift\",\n CrimeRobStore: \"rob a store\",\n CrimeMug: \"mug someone\",\n CrimeLarceny: \"commit larceny\",\n CrimeDrugs: \"deal drugs\",\n CrimeBondForgery: \"forge corporate bonds\",\n CrimeTraffickArms: \"traffick illegal arms\",\n CrimeHomicide: \"commit homicide\",\n CrimeGrandTheftAuto: \"commit grand theft auto\",\n CrimeKidnap: \"kidnap someone for ransom\",\n CrimeAssassination: \"assassinate a high-profile target\",\n CrimeHeist: \"pull off the ultimate heist\",\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 // 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 Donations: 4,\n\n LatestUpdate: `\n v1.6.3 - 2022-04-01 Few stanek fixes\n ----------------------------\n\n Stanek Gift \n\n * Has a minimum size of 2x3\n * Active Fragment property 'avgCharge' renamed to 'highestCharge'\n * Formula for fragment effect updated to make 561% more sense. \n Now you can charge to your heart content.\n * Logs for the 'chargeFragment' function updated.\n\n Misc. \n\n * Nerf noodle bar.\n`,\n};\n","/**\n * Names of all locations\n */\nexport enum LocationName {\n // Aevum Locations\n AevumAeroCorp = \"AeroCorp\",\n AevumBachmanAndAssociates = \"Bachman & Associates\",\n AevumClarkeIncorporated = \"Clarke Incorporated\",\n AevumCrushFitnessGym = \"Crush Fitness Gym\",\n AevumECorp = \"ECorp\",\n AevumFulcrumTechnologies = \"Fulcrum Technologies\",\n AevumGalacticCybersystems = \"Galactic Cybersystems\",\n AevumNetLinkTechnologies = \"NetLink Technologies\",\n AevumPolice = \"Aevum Police Headquarters\",\n AevumRhoConstruction = \"Rho Construction\",\n AevumSnapFitnessGym = \"Snap Fitness Gym\",\n AevumSummitUniversity = \"Summit University\",\n AevumWatchdogSecurity = \"Watchdog Security\",\n AevumCasino = \"Iker Molina Casino\",\n\n // Chongqing locations\n ChongqingKuaiGongInternational = \"KuaiGong International\",\n ChongqingSolarisSpaceSystems = \"Solaris Space Systems\",\n ChongqingChurchOfTheMachineGod = \"Church of the Machine God\",\n\n // Sector 12\n Sector12AlphaEnterprises = \"Alpha Enterprises\",\n Sector12BladeIndustries = \"Blade Industries\",\n Sector12CIA = \"Central Intelligence Agency\",\n Sector12CarmichaelSecurity = \"Carmichael Security\",\n Sector12CityHall = \"Sector-12 City Hall\",\n Sector12DeltaOne = \"DeltaOne\",\n Sector12FoodNStuff = \"FoodNStuff\",\n Sector12FourSigma = \"Four Sigma\",\n Sector12IcarusMicrosystems = \"Icarus Microsystems\",\n Sector12IronGym = \"Iron Gym\",\n Sector12JoesGuns = \"Joe's Guns\",\n Sector12MegaCorp = \"MegaCorp\",\n Sector12NSA = \"National Security Agency\",\n Sector12PowerhouseGym = \"Powerhouse Gym\",\n Sector12RothmanUniversity = \"Rothman University\",\n Sector12UniversalEnergy = \"Universal Energy\",\n\n // New Tokyo\n NewTokyoDefComm = \"DefComm\",\n NewTokyoGlobalPharmaceuticals = \"Global Pharmaceuticals\",\n NewTokyoNoodleBar = \"Noodle Bar\",\n NewTokyoVitaLife = \"VitaLife\",\n NewTokyoArcade = \"Arcade\",\n\n // Ishima\n IshimaNovaMedical = \"Nova Medical\",\n IshimaOmegaSoftware = \"Omega Software\",\n IshimaStormTechnologies = \"Storm Technologies\",\n IshimaGlitch = \"0x6C1\",\n\n // Volhaven\n VolhavenCompuTek = \"CompuTek\",\n VolhavenHeliosLabs = \"Helios Labs\",\n VolhavenLexoCorp = \"LexoCorp\",\n VolhavenMilleniumFitnessGym = \"Millenium Fitness Gym\",\n VolhavenNWO = \"NWO\",\n VolhavenOmniTekIncorporated = \"OmniTek Incorporated\",\n VolhavenOmniaCybersystems = \"Omnia Cybersystems\",\n VolhavenSysCoreSecurities = \"SysCore Securities\",\n VolhavenZBInstituteOfTechnology = \"ZB Institute of Technology\",\n\n // Generic locations\n Hospital = \"Hospital\",\n Slums = \"The Slums\",\n TravelAgency = \"Travel Agency\",\n WorldStockExchange = \"World Stock Exchange\",\n\n // Default name for Location objects\n Void = \"The Void\",\n}\n","export enum AugmentationNames {\n Targeting1 = \"Augmented Targeting I\",\n Targeting2 = \"Augmented Targeting II\",\n Targeting3 = \"Augmented Targeting III\",\n SyntheticHeart = \"Synthetic Heart\",\n SynfibrilMuscle = \"Synfibril Muscle\",\n CombatRib1 = \"Combat Rib I\",\n CombatRib2 = \"Combat Rib II\",\n CombatRib3 = \"Combat Rib III\",\n NanofiberWeave = \"Nanofiber Weave\",\n SubdermalArmor = \"NEMEAN Subdermal Weave\",\n WiredReflexes = \"Wired Reflexes\",\n GrapheneBoneLacings = \"Graphene Bone Lacings\",\n BionicSpine = \"Bionic Spine\",\n GrapheneBionicSpine = \"Graphene Bionic Spine Upgrade\",\n BionicLegs = \"Bionic Legs\",\n GrapheneBionicLegs = \"Graphene Bionic Legs Upgrade\",\n SpeechProcessor = \"Speech Processor Implant\",\n TITN41Injection = \"TITN-41 Gene-Modification Injection\",\n EnhancedSocialInteractionImplant = \"Enhanced Social Interaction Implant\",\n BitWire = \"BitWire\",\n ArtificialBioNeuralNetwork = \"Artificial Bio-neural Network Implant\",\n ArtificialSynapticPotentiation = \"Artificial Synaptic Potentiation\",\n EnhancedMyelinSheathing = \"Enhanced Myelin Sheathing\",\n SynapticEnhancement = \"Synaptic Enhancement Implant\",\n NeuralRetentionEnhancement = \"Neural-Retention Enhancement\",\n DataJack = \"DataJack\",\n ENM = \"Embedded Netburner Module\",\n ENMCore = \"Embedded Netburner Module Core Implant\",\n ENMCoreV2 = \"Embedded Netburner Module Core V2 Upgrade\",\n ENMCoreV3 = \"Embedded Netburner Module Core V3 Upgrade\",\n ENMAnalyzeEngine = \"Embedded Netburner Module Analyze Engine\",\n ENMDMA = \"Embedded Netburner Module Direct Memory Access Upgrade\",\n Neuralstimulator = \"Neuralstimulator\",\n NeuralAccelerator = \"Neural Accelerator\",\n CranialSignalProcessorsG1 = \"Cranial Signal Processors - Gen I\",\n CranialSignalProcessorsG2 = \"Cranial Signal Processors - Gen II\",\n CranialSignalProcessorsG3 = \"Cranial Signal Processors - Gen III\",\n CranialSignalProcessorsG4 = \"Cranial Signal Processors - Gen IV\",\n CranialSignalProcessorsG5 = \"Cranial Signal Processors - Gen V\",\n NeuronalDensification = \"Neuronal Densification\",\n NeuroreceptorManager = \"Neuroreceptor Management Implant\",\n NuoptimalInjectorImplant = \"Nuoptimal Nootropic Injector Implant\",\n SpeechEnhancement = \"Speech Enhancement\",\n FocusWire = \"FocusWire\",\n PCDNI = \"PC Direct-Neural Interface\",\n PCDNIOptimizer = \"PC Direct-Neural Interface Optimization Submodule\",\n PCDNINeuralNetwork = \"PC Direct-Neural Interface NeuroNet Injector\",\n PCMatrix = \"PCMatrix\",\n ADRPheromone1 = \"ADR-V1 Pheromone Gene\",\n ADRPheromone2 = \"ADR-V2 Pheromone Gene\",\n ShadowsSimulacrum = \"The Shadow's Simulacrum\",\n HacknetNodeCPUUpload = \"Hacknet Node CPU Architecture Neural-Upload\",\n HacknetNodeCacheUpload = \"Hacknet Node Cache Architecture Neural-Upload\",\n HacknetNodeNICUpload = \"Hacknet Node NIC Architecture Neural-Upload\",\n HacknetNodeKernelDNI = \"Hacknet Node Kernel Direct-Neural Interface\",\n HacknetNodeCoreDNI = \"Hacknet Node Core Direct-Neural Interface\",\n NeuroFluxGovernor = \"NeuroFlux Governor\",\n Neurotrainer1 = \"Neurotrainer I\",\n Neurotrainer2 = \"Neurotrainer II\",\n Neurotrainer3 = \"Neurotrainer III\",\n Hypersight = \"HyperSight Corneal Implant\",\n LuminCloaking1 = \"LuminCloaking-V1 Skin Implant\",\n LuminCloaking2 = \"LuminCloaking-V2 Skin Implant\",\n HemoRecirculator = \"HemoRecirculator\",\n SmartSonar = \"SmartSonar Implant\",\n PowerRecirculator = \"Power Recirculation Core\",\n QLink = \"QLink\",\n TheRedPill = \"The Red Pill\",\n SPTN97 = \"SPTN-97 Gene Modification\",\n HiveMind = \"ECorp HVMind Implant\",\n CordiARCReactor = \"CordiARC Fusion Reactor\",\n SmartJaw = \"SmartJaw\",\n Neotra = \"Neotra\",\n Xanipher = \"Xanipher\",\n nextSENS = \"nextSENS Gene Modification\",\n OmniTekInfoLoad = \"OmniTek InfoLoad\",\n PhotosyntheticCells = \"Photosynthetic Cells\",\n Neurolink = \"BitRunners Neurolink\",\n TheBlackHand = \"The Black Hand\",\n UnstableCircadianModulator = \"Unstable Circadian Modulator\",\n CRTX42AA = \"CRTX42-AA Gene Modification\",\n Neuregen = \"Neuregen Gene Modification\",\n CashRoot = \"CashRoot Starter Kit\",\n NutriGen = \"NutriGen Implant\",\n INFRARet = \"INFRARET Enhancement\",\n DermaForce = \"DermaForce Particle Barrier\",\n GrapheneBrachiBlades = \"Graphene BrachiBlades Upgrade\",\n GrapheneBionicArms = \"Graphene Bionic Arms Upgrade\",\n BrachiBlades = \"BrachiBlades\",\n BionicArms = \"Bionic Arms\",\n SNA = \"Social Negotiation Assistant (S.N.A)\",\n HydroflameLeftArm = \"Hydroflame Left Arm\",\n CongruityImplant = \"nickofolas Congruity Implant\",\n EsperEyewear = \"EsperTech Bladeburner Eyewear\",\n EMS4Recombination = \"EMS-4 Recombination\",\n OrionShoulder = \"ORION-MKIV Shoulder\",\n HyperionV1 = \"Hyperion Plasma Cannon V1\",\n HyperionV2 = \"Hyperion Plasma Cannon V2\",\n GolemSerum = \"GOLEM Serum\",\n VangelisVirus = \"Vangelis Virus\",\n VangelisVirus3 = \"Vangelis Virus 3.0\",\n INTERLINKED = \"I.N.T.E.R.L.I.N.K.E.D\",\n BladeRunner = \"Blade's Runners\",\n BladeArmor = \"BLADE-51b Tesla Armor\",\n BladeArmorPowerCells = \"BLADE-51b Tesla Armor: Power Cells Upgrade\",\n BladeArmorEnergyShielding = \"BLADE-51b Tesla Armor: Energy Shielding Upgrade\",\n BladeArmorUnibeam = \"BLADE-51b Tesla Armor: Unibeam Upgrade\",\n BladeArmorOmnibeam = \"BLADE-51b Tesla Armor: Omnibeam Upgrade\",\n BladeArmorIPU = \"BLADE-51b Tesla Armor: IPU Upgrade\",\n BladesSimulacrum = \"The Blade's Simulacrum\",\n\n StaneksGift1 = \"Stanek's Gift - Genesis\",\n StaneksGift2 = \"Stanek's Gift - Awakening\",\n StaneksGift3 = \"Stanek's Gift - Serenity\",\n\n //Wasteland Augs\n //PepBoy: \"P.E.P-Boy\", Plasma Energy Projection System\n //PepBoyForceField Generates plasma force fields\n //PepBoyBlasts Generate high density plasma concussive blasts\n //PepBoyDataStorage STore more data on pep boy,\n}\n","import { AlertEvents } from \"./AlertManager\";\n\nimport React from \"react\";\nimport { SxProps } from \"@mui/system\";\nimport { Typography } from \"@mui/material\";\n\nexport function dialogBoxCreate(txt: string | JSX.Element, styles?: SxProps): void {\n if (typeof txt !== \"string\") {\n AlertEvents.emit(txt);\n } else {\n AlertEvents.emit();\n }\n}\n","/**\n * All possible Cities in the game. Names only, not actual \"City\" object\n * Implemented as an enum for typing purposes\n */\nexport enum CityName {\n Aevum = \"Aevum\",\n Chongqing = \"Chongqing\",\n Ishima = \"Ishima\",\n NewTokyo = \"New Tokyo\",\n Sector12 = \"Sector-12\",\n Volhaven = \"Volhaven\",\n}\n","import * as React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { IPlayer } from \"../../PersonObjects/IPlayer\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n unbuyable: {\n color: theme.palette.action.disabled,\n },\n money: {\n color: theme.colors.money,\n },\n }),\n);\n\ninterface IProps {\n money: number | string;\n player?: IPlayer;\n}\nexport function Money(props: IProps): React.ReactElement {\n const classes = useStyles();\n if (props.player !== undefined) {\n if (typeof props.money !== \"number\") throw new Error(\"if player if provided, money should be number, contact dev\");\n if (!props.player.canAfford(props.money))\n return {numeralWrapper.formatMoney(props.money)};\n }\n return (\n \n {typeof props.money === \"number\" ? numeralWrapper.formatMoney(props.money) : props.money}\n \n );\n}\n","import { defaultMultipliers } from \"./BitNode\";\n\n/**\n * Bitnode multipliers influence the difficulty of different aspects of the game.\n * Each Bitnode has a different theme/strategy to achieving the end goal, so these multipliers will can help drive the\n * player toward the intended strategy. Unless they really want to play the long, slow game of waiting...\n */\nexport interface IBitNodeMultipliers {\n /**\n * Influences how quickly the player's agility level (not exp) scales\n */\n AgilityLevelMultiplier: number;\n\n /**\n * Influences the base cost to purchase an augmentation.\n */\n AugmentationMoneyCost: number;\n\n /**\n * Influences the base rep the player must have with a faction to purchase an augmentation.\n */\n AugmentationRepCost: number;\n\n /**\n * Influences how quickly the player can gain rank within Bladeburner.\n */\n BladeburnerRank: number;\n\n /**\n * Influences the cost of skill levels from Bladeburner.\n */\n BladeburnerSkillCost: number;\n\n /**\n * Influences how quickly the player's charisma level (not exp) scales\n */\n CharismaLevelMultiplier: number;\n\n /**\n * Influences the experience gained for each ability when a player completes a class.\n */\n ClassGymExpGain: number;\n\n /**\n * Influences the amount of money gained from completing Coding Contracts\n **/\n CodingContractMoney: number;\n\n /**\n * Influences the experience gained for each ability when the player completes working their job.\n */\n CompanyWorkExpGain: number;\n\n /**\n * Influences how much money the player earns when completing working their job.\n */\n CompanyWorkMoney: number;\n\n /**\n * Influences the valuation of corporations created by the player.\n */\n CorporationValuation: number;\n\n /**\n * Influences the base experience gained for each ability when the player commits a crime.\n */\n CrimeExpGain: number;\n\n /**\n * Influences the base money gained when the player commits a crime.\n */\n CrimeMoney: number;\n\n /**\n * Influences how many Augmentations you need in order to get invited to the Daedalus faction\n */\n DaedalusAugsRequirement: number;\n\n /**\n * Influences how quickly the player's defense level (not exp) scales\n */\n DefenseLevelMultiplier: number;\n\n /**\n * Influences how quickly the player's dexterity level (not exp) scales\n */\n DexterityLevelMultiplier: number;\n\n /**\n * Influences how much rep the player gains in each faction simply by being a member.\n */\n FactionPassiveRepGain: number;\n\n /**\n * Influences the experience gained for each ability when the player completes work for a Faction.\n */\n FactionWorkExpGain: number;\n\n /**\n * Influences how much rep the player gains when performing work for a faction.\n */\n FactionWorkRepGain: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data API\n */\n FourSigmaMarketDataApiCost: number;\n\n /**\n * Influences how much it costs to unlock the stock market's 4S Market Data (NOT API)\n */\n FourSigmaMarketDataCost: number;\n\n /**\n * Reduces gangs earning.\n */\n GangSoftcap: number;\n\n /**\n * Percentage of unique augs that the gang has.\n */\n GangUniqueAugs: number;\n\n /**\n * Influences the experienced gained when hacking a server.\n */\n HackExpGain: number;\n\n /**\n * Influences how quickly the player's hacking level (not experience) scales\n */\n HackingLevelMultiplier: number;\n\n /**\n * Influences how much money is produced by Hacknet Nodes.\n * Influeces the hash rate of Hacknet Servers (unlocked in BitNode-9)\n */\n HacknetNodeMoney: number;\n\n /**\n * Influences how much money it costs to upgrade your home computer's RAM\n */\n HomeComputerRamCost: number;\n\n /**\n * Influences how much money is gained when the player infiltrates a company.\n */\n InfiltrationMoney: number;\n\n /**\n * Influences how much rep the player can gain from factions when selling stolen documents and secrets\n */\n InfiltrationRep: number;\n\n /**\n * Influences how much money can be stolen from a server when the player performs a hack against it through\n * the Terminal.\n */\n ManualHackMoney: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerCost: number;\n\n /**\n * Influence how much it costs to purchase a server\n */\n PurchasedServerSoftcap: number;\n\n /**\n * Influences the maximum number of purchased servers you can have\n */\n PurchasedServerLimit: number;\n\n /**\n * Influences the maximum allowed RAM for a purchased server\n */\n PurchasedServerMaxRam: number;\n /**\n * Influences the minimum favor the player must have with a faction before they can donate to gain rep.\n */\n RepToDonateToFaction: number;\n\n /**\n * Influences how much money can be stolen from a server when a script performs a hack against it.\n */\n ScriptHackMoney: number;\n\n /**\n * The amount of money actually gained when script hack a server. This is\n * different than the above because you can reduce the amount of money but\n * not gain that same amount.\n */\n ScriptHackMoneyGain: number;\n\n /**\n * Influences the growth percentage per cycle against a server.\n */\n ServerGrowthRate: number;\n\n /**\n * Influences the maxmimum money that a server can grow to.\n */\n ServerMaxMoney: number;\n\n /**\n * Influences the initial money that a server starts with.\n */\n ServerStartingMoney: number;\n\n /**\n * Influences the initial security level (hackDifficulty) of a server.\n */\n ServerStartingSecurity: number;\n\n /**\n * Influences the weaken amount per invocation against a server.\n */\n ServerWeakenRate: number;\n\n /**\n * Influences how quickly the player's strength level (not exp) scales\n */\n StrengthLevelMultiplier: number;\n\n /**\n * Influences the power of the gift.\n */\n StaneksGiftPowerMultiplier: number;\n\n /**\n * Influences the size of the gift.\n */\n StaneksGiftExtraSize: number;\n\n /**\n * Influences the hacking skill required to backdoor the world daemon.\n */\n WorldDaemonDifficulty: number;\n\n /**\n * Influences corporation dividends.\n */\n CorporationSoftCap: number;\n\n // Index signature\n [key: string]: number;\n}\n\n/**\n * The multipliers that are influenced by current Bitnode progression.\n */\n// tslint:disable-next-line:variable-name\nexport const BitNodeMultipliers = defaultMultipliers;\n","import { EqualityFunc } from \"../types\";\nimport { isString } from \"./helpers/isString\";\n\n/*\nConverts a date representing time in milliseconds to a string with the format H hours M minutes and S seconds\ne.g. 10000 -> \"10 seconds\"\n 120000 -> \"2 minutes and 0 seconds\"\n*/\nfunction convertTimeMsToTimeElapsedString(time: number, showMilli = false): string {\n time = Math.floor(time);\n const millisecondsPerSecond = 1000;\n const secondPerMinute = 60;\n const minutesPerHours = 60;\n const secondPerHours: number = secondPerMinute * minutesPerHours;\n const hoursPerDays = 24;\n const secondPerDay: number = secondPerHours * hoursPerDays;\n\n // Convert ms to seconds, since we only have second-level precision\n const totalSeconds: number = Math.floor(time / millisecondsPerSecond);\n\n const days: number = Math.floor(totalSeconds / secondPerDay);\n const secTruncDays: number = totalSeconds % secondPerDay;\n\n const hours: number = Math.floor(secTruncDays / secondPerHours);\n const secTruncHours: number = secTruncDays % secondPerHours;\n\n const minutes: number = Math.floor(secTruncHours / secondPerMinute);\n const secTruncMinutes: number = secTruncHours % secondPerMinute;\n\n const milliTruncSec: string = (() => {\n let str = `${time % millisecondsPerSecond}`;\n while (str.length < 3) str = \"0\" + str;\n return str;\n })();\n\n const seconds: string = showMilli ? `${secTruncMinutes}.${milliTruncSec}` : `${secTruncMinutes}`;\n\n let res = \"\";\n if (days > 0) {\n res += `${days} days `;\n }\n if (hours > 0) {\n res += `${hours} hours `;\n }\n if (minutes > 0) {\n res += `${minutes} minutes `;\n }\n res += `${seconds} seconds`;\n\n return res;\n}\n\n// Finds the longest common starting substring in a set of strings\nfunction longestCommonStart(strings: string[]): string {\n if (!containsAllStrings(strings)) {\n return \"\";\n }\n if (strings.length === 0) {\n return \"\";\n }\n\n const A: string[] = strings.concat().sort();\n const a1: string = A[0];\n const a2: string = A[A.length - 1];\n const L: number = a1.length;\n let i = 0;\n const areEqualCaseInsensitive: EqualityFunc = (a: string, b: string) => a.toUpperCase() === b.toUpperCase();\n while (i < L && areEqualCaseInsensitive(a1.charAt(i), a2.charAt(i))) {\n i++;\n }\n\n return a1.substring(0, i);\n}\n\n// Returns whether an array contains entirely of string objects\nfunction containsAllStrings(arr: string[]): boolean {\n return arr.every(isString);\n}\n\n// Formats a number with commas and a specific number of decimal digits\nfunction formatNumber(num: number, numFractionDigits = 0): string {\n return num.toLocaleString(undefined, {\n maximumFractionDigits: numFractionDigits,\n minimumFractionDigits: numFractionDigits,\n });\n}\n\n// Generates a random alphanumeric string with N characters\nfunction generateRandomString(n: number): string {\n let str = \"\";\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\n for (let i = 0; i < n; i++) {\n str += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n\n return str;\n}\n\n/**\n * Hashes the input string. This is a fast hash, so NOT good for cryptography.\n * This has been ripped off here: https://stackoverflow.com/a/52171480\n * @param str The string that is to be hashed\n * @param seed A seed to randomize the result\n * @returns An hexadecimal string representation of the hashed input\n */\nfunction cyrb53(str: string, seed = 0): string {\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16);\n}\n\nexport {\n convertTimeMsToTimeElapsedString,\n longestCommonStart,\n containsAllStrings,\n formatNumber,\n generateRandomString,\n cyrb53,\n};\n","import { Server } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { serverMetadata } from \"./data/servers\";\n\nimport { HacknetServer } from \"../Hacknet/HacknetServer\";\n\nimport { IMap } 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 return AllServers[ip] != null;\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 [key: string]: any;\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 // Essentially any property that is of type 'number | IMinMaxRange'\n const propertiesToPatternMatch: string[] = [\n \"hackDifficulty\",\n \"moneyAvailable\",\n \"requiredHackingSkill\",\n \"serverGrowth\",\n ];\n\n const toNumber = (value: any): any => {\n switch (typeof value) {\n case \"number\":\n return value;\n case \"object\":\n return getRandomInt(value.min, value.max);\n default:\n throw Error(`Do not know how to convert the type '${typeof value}' to a number`);\n }\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 for (const prop of propertiesToPatternMatch) {\n if (metadata[prop] !== undefined) {\n serverParams[prop] = toNumber(metadata[prop]);\n }\n }\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: any[]): any => arr[Math.floor(Math.random() * arr.length)];\n\n const linkNetworkLayers = (network1: Server[], selectServer: () => Server): void => {\n for (const server of network1) {\n linkComputers(server, selectServer());\n }\n };\n\n // Connect the first tier of servers to the player's home computer\n linkNetworkLayers(networkLayers[0], () => homeComputer);\n for (let i = 1; i < networkLayers.length; i++) {\n linkNetworkLayers(networkLayers[i], () => getRandomArrayItem(networkLayers[i - 1]));\n }\n}\n\nexport function prestigeAllServers(): void {\n for (const member of Object.keys(AllServers)) {\n delete AllServers[member];\n }\n AllServers = {};\n}\n\nexport function loadAllServers(saveString: string): void {\n AllServers = JSON.parse(saveString, Reviver);\n}\n\nexport function saveAllServers(excludeRunningScripts = false): string {\n const TempAllServers = JSON.parse(JSON.stringify(AllServers), Reviver);\n for (const key of Object.keys(TempAllServers)) {\n const server = TempAllServers[key];\n if (excludeRunningScripts) {\n server.runningScripts = [];\n continue;\n }\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScriptObj = server.runningScripts[i];\n runningScriptObj.logs.length = 0;\n runningScriptObj.logs = [];\n }\n }\n\n return JSON.stringify(TempAllServers);\n}\n","import { Faction } from \"../Faction/Faction\";\nimport { Location } from \"../Locations/Location\";\n\n/**\n * The full-screen page the player is currently be on.\n * These pages are mutually exclusive.\n */\nexport enum Page {\n ActiveScripts,\n Augmentations,\n BitVerse,\n Bladeburner,\n City,\n Corporation,\n CreateProgram,\n ScriptEditor,\n DevMenu,\n Faction,\n Factions,\n Gang,\n Hacknet,\n Infiltration,\n Job,\n Milestones,\n Options,\n Grafting,\n Sleeves,\n Stats,\n StockMarket,\n Terminal,\n Travel,\n Tutorial,\n Work,\n BladeburnerCinematic,\n Location,\n Loading,\n StaneksGift,\n Recovery,\n Achievements,\n ThemeBrowser,\n ImportSave,\n}\n\nexport interface ScriptEditorRouteOptions {\n vim: boolean;\n}\n\n/**\n * This class keeps track of player navigation/routing within the game.\n */\nexport interface IRouter {\n // toCinematicText(): void;\n // toInfiltration(): void;\n // toMission(): void;\n // toRedPill(): void;\n // toworkInProgress(): void;\n isInitialized: boolean;\n page(): Page;\n allowRouting(value: boolean): void;\n toActiveScripts(): void;\n toAugmentations(): void;\n toBitVerse(flume: boolean, quick: boolean): void;\n toBladeburner(): void;\n toStats(): void;\n toCity(): void; // travel ? city ?\n toCorporation(): void;\n toCreateProgram(): void;\n toDevMenu(): void;\n toFaction(faction: Faction, augPage?: boolean): void; // faction name\n toFactions(): void;\n toGameOptions(): void;\n toGang(): void;\n toHacknetNodes(): void;\n toInfiltration(location: Location): void;\n toJob(): 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","/**\n * Keyboard key codes\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\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","/* Generic Reviver, toJSON, and fromJSON functions used for saving and loading objects */\n\nimport { validateObject } from \"./Validator\";\n\ninterface 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: any, keys?: string[]): IReviverValue {\n if (!keys) {\n keys = Object.keys(obj); // Only \"own\" properties are included\n }\n\n const data: any = {};\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","/**\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","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","// 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 { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\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 ScriptGetOwnedSourceFiles: 5,\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};\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: IMap = {\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};\n\n// Stock API\nconst stock: IMap = {\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 buy: RamCostConstants.ScriptBuySellStockRamCost,\n sell: RamCostConstants.ScriptBuySellStockRamCost,\n short: RamCostConstants.ScriptBuySellStockRamCost,\n sellShort: RamCostConstants.ScriptBuySellStockRamCost,\n placeOrder: RamCostConstants.ScriptBuySellStockRamCost,\n cancelOrder: RamCostConstants.ScriptBuySellStockRamCost,\n getOrders: RamCostConstants.ScriptBuySellStockRamCost,\n getVolatility: RamCostConstants.ScriptBuySellStockRamCost,\n getForecast: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketData: RamCostConstants.ScriptBuySellStockRamCost,\n purchase4SMarketDataTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseWseAccount: RamCostConstants.ScriptBuySellStockRamCost,\n purchaseTixApi: RamCostConstants.ScriptBuySellStockRamCost,\n};\n\n// Singularity API\nconst singularity: IMap = {\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 getStats: SF4Cost(RamCostConstants.ScriptSingularityFn1RamCost / 4),\n getCharacterInformation: 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 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 getAugmentationsFromFaction: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationCost: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrereq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n getAugmentationPrice: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationRepReq: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost / 2),\n getAugmentationStats: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n purchaseAugmentation: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n softReset: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n installAugmentations: SF4Cost(RamCostConstants.ScriptSingularityFn3RamCost),\n isFocused: SF4Cost(0.1),\n setFocus: SF4Cost(0.1),\n b1tflum3: SF4Cost(16),\n destroyW0r1dD43m0n: SF4Cost(32),\n};\n\n// Gang API\nconst gang: IMap = {\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: IMap = {\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 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\n// Coding Contract API\nconst codingcontract: IMap = {\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: IMap = {\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};\n\n// Stanek API\nconst stanek: IMap = {\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};\n\n// UI API\nconst ui: IMap = {\n getTheme: 0,\n setTheme: 0,\n resetTheme: 0,\n getStyles: 0,\n setStyles: 0,\n resetStyles: 0,\n getGameInfo: 0,\n};\n\n// Grafting API\nconst grafting: IMap = {\n getAugmentationGraftPrice: 3.75,\n getAugmentationGraftTime: 3.75,\n getGraftableAugmentations: 5,\n graftAugmentation: 7.5,\n};\n\nexport const RamCosts: IMap = {\n hacknet,\n stock,\n singularity,\n ...singularity, // singularity is in namespace & toplevel\n gang,\n bladeburner,\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 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 getIp: RamCostConstants.ScriptGetHostnameRamCost,\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 getScriptIncome: 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 getOwnedSourceFiles: RamCostConstants.ScriptGetOwnedSourceFiles,\n tail: 0,\n toast: 0,\n heart: {\n // Easter egg function\n break: 0,\n },\n};\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 { 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 DividendMaxPercentage: number;\n EmployeeSalaryMultiplier: number;\n CyclesPerEmployeeRaise: number;\n EmployeeRaiseAmount: number;\n BaseMaxProducts: number;\n AllCorporationStates: string[];\n AllMaterials: string[];\n FundingRoundShares: number[];\n FundingRoundMultiplier: number[];\n AvgProfitLength: number;\n} = {\n INITIALSHARES: 1e9, //Total number of shares you have at your company\n SHARESPERPRICEUPDATE: 1e6, //When selling large number of shares, price is dynamically updated for every batch of this amount\n IssueNewSharesCooldown: 216e3, // 12 Hour in terms of game cycles\n SellSharesCooldown: 18e3, // 1 Hour in terms of game cycles\n\n CyclesPerMarketCycle: CyclesPerMarketCycle,\n CyclesPerIndustryStateCycle: CyclesPerMarketCycle / AllCorporationStates.length,\n SecsPerMarketCycle: CyclesPerMarketCycle / 5,\n\n Cities: [\n CityName.Aevum,\n CityName.Chongqing,\n CityName.Sector12,\n CityName.NewTokyo,\n CityName.Ishima,\n CityName.Volhaven,\n ],\n\n WarehouseInitialCost: 5e9, //Initial purchase cost of warehouse\n WarehouseInitialSize: 100,\n WarehouseUpgradeBaseCost: 1e9,\n\n OfficeInitialCost: 4e9,\n OfficeInitialSize: 3,\n OfficeUpgradeBaseCost: 1e9,\n\n BribeThreshold: 100e12, //Money needed to be able to bribe for faction rep\n BribeToRepRatio: 1e9, //Bribe Value divided by this = rep gain\n\n ProductProductionCostRatio: 5, //Ratio of material cost of a product to its production cost\n\n DividendMaxPercentage: 1,\n\n EmployeeSalaryMultiplier: 3, // Employee stats multiplied by this to determine initial salary\n CyclesPerEmployeeRaise: 400, // All employees get a raise every X market cycles\n EmployeeRaiseAmount: 50, // Employee salary increases by this (additive)\n\n BaseMaxProducts: 3, // Initial value for maximum number of products allowed\n AllCorporationStates: AllCorporationStates,\n AllMaterials: [\n \"Water\",\n \"Energy\",\n \"Food\",\n \"Plants\",\n \"Metal\",\n \"Hardware\",\n \"Chemicals\",\n \"Drugs\",\n \"Robots\",\n \"AI Cores\",\n \"Real Estate\",\n ],\n FundingRoundShares: [0.1, 0.35, 0.25, 0.2],\n FundingRoundMultiplier: [4, 3, 3, 2.5],\n\n AvgProfitLength: 1,\n};\n","import React from \"react\";\nimport { Theme } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport M from \"@mui/material/Modal\";\nimport Fade from \"@mui/material/Fade\";\nimport Box from \"@mui/material/Box\";\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}\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","// Class definition for a single Augmentation object\nimport * as React from \"react\";\nimport { IMap } from \"../types\";\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, Reviver } from \"../utils/JSONReviver\";\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_mult?: number;\n strength_mult?: number;\n defense_mult?: number;\n dexterity_mult?: number;\n agility_mult?: number;\n charisma_mult?: number;\n hacking_exp_mult?: number;\n strength_exp_mult?: number;\n defense_exp_mult?: number;\n dexterity_exp_mult?: number;\n agility_exp_mult?: number;\n charisma_exp_mult?: number;\n hacking_chance_mult?: number;\n hacking_speed_mult?: number;\n hacking_money_mult?: number;\n hacking_grow_mult?: number;\n company_rep_mult?: number;\n faction_rep_mult?: number;\n crime_money_mult?: number;\n crime_success_mult?: number;\n work_money_mult?: number;\n hacknet_node_money_mult?: number;\n hacknet_node_purchase_cost_mult?: number;\n hacknet_node_ram_cost_mult?: number;\n hacknet_node_core_cost_mult?: number;\n hacknet_node_level_cost_mult?: number;\n bladeburner_max_stamina_mult?: number;\n bladeburner_stamina_gain_mult?: number;\n bladeburner_analysis_mult?: number;\n bladeburner_success_chance_mult?: number;\n\n startingMoney?: number;\n programs?: string[];\n}\n\nfunction generateStatsDescription(mults: IMap, 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_mult &&\n mults.hacking_mult == mults.strength_mult &&\n mults.hacking_mult == mults.defense_mult &&\n mults.hacking_mult == mults.dexterity_mult &&\n mults.hacking_mult == mults.agility_mult &&\n mults.hacking_mult == mults.charisma_mult\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.hacking_mult - 1)} all skills\n >\n );\n } else {\n if (mults.hacking_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_mult - 1)} hacking skill\n >\n );\n\n if (\n mults.strength_mult &&\n mults.strength_mult == mults.defense_mult &&\n mults.strength_mult == mults.dexterity_mult &&\n mults.strength_mult == mults.agility_mult\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.strength_mult - 1)} combat skills\n >\n );\n } else {\n if (mults.strength_mult)\n desc = (\n <>\n {desc}\n +{f(mults.strength_mult - 1)} strength skill\n >\n );\n if (mults.defense_mult)\n desc = (\n <>\n {desc}\n +{f(mults.defense_mult - 1)} defense skill\n >\n );\n if (mults.dexterity_mult)\n desc = (\n <>\n {desc}\n +{f(mults.dexterity_mult - 1)} dexterity skill\n >\n );\n if (mults.agility_mult)\n desc = (\n <>\n {desc}\n +{f(mults.agility_mult - 1)} agility skill\n >\n );\n }\n if (mults.charisma_mult)\n desc = (\n <>\n {desc}\n +{f(mults.charisma_mult - 1)} charisma skill\n >\n );\n }\n\n if (\n mults.hacking_exp_mult &&\n mults.hacking_exp_mult === mults.strength_exp_mult &&\n mults.hacking_exp_mult === mults.defense_exp_mult &&\n mults.hacking_exp_mult === mults.dexterity_exp_mult &&\n mults.hacking_exp_mult === mults.agility_exp_mult &&\n mults.hacking_exp_mult === mults.charisma_exp_mult\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.hacking_exp_mult - 1)} exp for all skills\n >\n );\n } else {\n if (mults.hacking_exp_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_exp_mult - 1)} hacking exp\n >\n );\n\n if (\n mults.strength_exp_mult &&\n mults.strength_exp_mult === mults.defense_exp_mult &&\n mults.strength_exp_mult === mults.dexterity_exp_mult &&\n mults.strength_exp_mult === mults.agility_exp_mult\n ) {\n desc = (\n <>\n {desc}\n +{f(mults.strength_exp_mult - 1)} combat exp\n >\n );\n } else {\n if (mults.strength_exp_mult)\n desc = (\n <>\n {desc}\n +{f(mults.strength_exp_mult - 1)} strength exp\n >\n );\n if (mults.defense_exp_mult)\n desc = (\n <>\n {desc}\n +{f(mults.defense_exp_mult - 1)} defense exp\n >\n );\n if (mults.dexterity_exp_mult)\n desc = (\n <>\n {desc}\n +{f(mults.dexterity_exp_mult - 1)} dexterity exp\n >\n );\n if (mults.agility_exp_mult)\n desc = (\n <>\n {desc}\n +{f(mults.agility_exp_mult - 1)} agility exp\n >\n );\n }\n if (mults.charisma_exp_mult)\n desc = (\n <>\n {desc}\n +{f(mults.charisma_exp_mult - 1)} charisma exp\n >\n );\n }\n\n if (mults.hacking_speed_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_speed_mult - 1)} faster hack(), grow(), and weaken()\n >\n );\n if (mults.hacking_chance_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_chance_mult - 1)} hack() success chance\n >\n );\n if (mults.hacking_money_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_money_mult - 1)} hack() power\n >\n );\n if (mults.hacking_grow_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacking_grow_mult - 1)} grow() power\n >\n );\n\n if (mults.faction_rep_mult && mults.faction_rep_mult === mults.company_rep_mult) {\n desc = (\n <>\n {desc}\n +{f(mults.faction_rep_mult - 1)} reputation from factions and companies\n >\n );\n } else {\n if (mults.faction_rep_mult)\n desc = (\n <>\n {desc}\n +{f(mults.faction_rep_mult - 1)} reputation from factions\n >\n );\n if (mults.company_rep_mult)\n desc = (\n <>\n {desc}\n +{f(mults.company_rep_mult - 1)} reputation from companies\n >\n );\n }\n\n if (mults.crime_money_mult)\n desc = (\n <>\n {desc}\n +{f(mults.crime_money_mult - 1)} crime money\n >\n );\n if (mults.crime_success_mult)\n desc = (\n <>\n {desc}\n +{f(mults.crime_success_mult - 1)} crime success rate\n >\n );\n if (mults.work_money_mult)\n desc = (\n <>\n {desc}\n +{f(mults.work_money_mult - 1)} work money\n >\n );\n\n if (mults.hacknet_node_money_mult)\n desc = (\n <>\n {desc}\n +{f(mults.hacknet_node_money_mult - 1)} hacknet production\n >\n );\n if (mults.hacknet_node_purchase_cost_mult)\n desc = (\n <>\n {desc}\n -{f(-(mults.hacknet_node_purchase_cost_mult - 1))} hacknet nodes cost\n >\n );\n if (mults.hacknet_node_level_cost_mult)\n desc = (\n <>\n {desc}\n -{f(-(mults.hacknet_node_level_cost_mult - 1))} hacknet nodes upgrade cost\n >\n );\n\n if (mults.bladeburner_max_stamina_mult)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_max_stamina_mult - 1)} Bladeburner Max Stamina\n >\n );\n if (mults.bladeburner_stamina_gain_mult)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_stamina_gain_mult - 1)} Bladeburner Stamina gain\n >\n );\n if (mults.bladeburner_analysis_mult)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_analysis_mult - 1)} Bladeburner Field Analysis effectiveness\n >\n );\n if (mults.bladeburner_success_chance_mult)\n desc = (\n <>\n {desc}\n +{f(mults.bladeburner_success_chance_mult - 1)} Bladeburner Contracts and Operations success chance\n >\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\n baseCost = 0;\n\n // How much faction reputation is required to unlock this\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 // Augmentation level - for repeatable Augs like NeuroFlux Governor\n level = 0;\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: IMap = {};\n\n // Initial cost. Doesn't change when you purchase multiple Augmentation\n startingCost = 0;\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 this.baseCost = params.moneyCost;\n this.startingCost = this.baseCost;\n this.factions = params.factions;\n\n if (params.isSpecial) {\n this.isSpecial = true;\n }\n\n this.level = 0;\n\n // Set multipliers\n if (params.hacking_mult) {\n this.mults.hacking_mult = params.hacking_mult;\n }\n if (params.strength_mult) {\n this.mults.strength_mult = params.strength_mult;\n }\n if (params.defense_mult) {\n this.mults.defense_mult = params.defense_mult;\n }\n if (params.dexterity_mult) {\n this.mults.dexterity_mult = params.dexterity_mult;\n }\n if (params.agility_mult) {\n this.mults.agility_mult = params.agility_mult;\n }\n if (params.charisma_mult) {\n this.mults.charisma_mult = params.charisma_mult;\n }\n if (params.hacking_exp_mult) {\n this.mults.hacking_exp_mult = params.hacking_exp_mult;\n }\n if (params.strength_exp_mult) {\n this.mults.strength_exp_mult = params.strength_exp_mult;\n }\n if (params.defense_exp_mult) {\n this.mults.defense_exp_mult = params.defense_exp_mult;\n }\n if (params.dexterity_exp_mult) {\n this.mults.dexterity_exp_mult = params.dexterity_exp_mult;\n }\n if (params.agility_exp_mult) {\n this.mults.agility_exp_mult = params.agility_exp_mult;\n }\n if (params.charisma_exp_mult) {\n this.mults.charisma_exp_mult = params.charisma_exp_mult;\n }\n if (params.hacking_chance_mult) {\n this.mults.hacking_chance_mult = params.hacking_chance_mult;\n }\n if (params.hacking_speed_mult) {\n this.mults.hacking_speed_mult = params.hacking_speed_mult;\n }\n if (params.hacking_money_mult) {\n this.mults.hacking_money_mult = params.hacking_money_mult;\n }\n if (params.hacking_grow_mult) {\n this.mults.hacking_grow_mult = params.hacking_grow_mult;\n }\n if (params.company_rep_mult) {\n this.mults.company_rep_mult = params.company_rep_mult;\n }\n if (params.faction_rep_mult) {\n this.mults.faction_rep_mult = params.faction_rep_mult;\n }\n if (params.crime_money_mult) {\n this.mults.crime_money_mult = params.crime_money_mult;\n }\n if (params.crime_success_mult) {\n this.mults.crime_success_mult = params.crime_success_mult;\n }\n if (params.work_money_mult) {\n this.mults.work_money_mult = params.work_money_mult;\n }\n if (params.hacknet_node_money_mult) {\n this.mults.hacknet_node_money_mult = params.hacknet_node_money_mult;\n }\n if (params.hacknet_node_purchase_cost_mult) {\n this.mults.hacknet_node_purchase_cost_mult = params.hacknet_node_purchase_cost_mult;\n }\n if (params.hacknet_node_ram_cost_mult) {\n this.mults.hacknet_node_ram_cost_mult = params.hacknet_node_ram_cost_mult;\n }\n if (params.hacknet_node_core_cost_mult) {\n this.mults.hacknet_node_core_cost_mult = params.hacknet_node_core_cost_mult;\n }\n if (params.hacknet_node_level_cost_mult) {\n this.mults.hacknet_node_level_cost_mult = params.hacknet_node_level_cost_mult;\n }\n if (params.bladeburner_max_stamina_mult) {\n this.mults.bladeburner_max_stamina_mult = params.bladeburner_max_stamina_mult;\n }\n if (params.bladeburner_stamina_gain_mult) {\n this.mults.bladeburner_stamina_gain_mult = params.bladeburner_stamina_gain_mult;\n }\n if (params.bladeburner_analysis_mult) {\n this.mults.bladeburner_analysis_mult = params.bladeburner_analysis_mult;\n }\n if (params.bladeburner_success_chance_mult) {\n this.mults.bladeburner_success_chance_mult = params.bladeburner_success_chance_mult;\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 // 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(): any {\n return Generic_toJSON(\"Augmentation\", this);\n }\n\n // Initiatizes a Augmentation object from a JSON save state.\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Augmentation {\n return Generic_fromJSON(Augmentation, value.data);\n }\n}\n\nReviver.constructors.Augmentation = Augmentation;\n","// Action Identifier enum\nexport const ActionTypes: {\n [key: string]: number;\n Idle: number;\n Contract: number;\n Operation: number;\n BlackOp: number;\n BlackOperation: number;\n Training: number;\n Recruitment: number;\n FieldAnalysis: number;\n \"Field Analysis\": number;\n Diplomacy: number;\n \"Hyperbolic Regeneration Chamber\": number;\n \"Incite Violence\": number;\n} = {\n Idle: 1,\n Contract: 2,\n Operation: 3,\n BlackOp: 4,\n BlackOperation: 4,\n Training: 5,\n Recruitment: 6,\n FieldAnalysis: 7,\n \"Field Analysis\": 7,\n Diplomacy: 8,\n \"Hyperbolic Regeneration Chamber\": 9,\n \"Incite Violence\": 10,\n};\n","import React from \"react\";\nimport { BitNodeMultipliers, IBitNodeMultipliers } from \"./BitNodeMultipliers\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { CityName } from \"../Locations/data/CityNames\";\n\nclass BitNode {\n // A short description, or tagline, about the BitNode\n desc: string;\n\n // A long, detailed overview of the BitNode\n info: JSX.Element;\n\n // Name of BitNode\n name: string;\n\n // BitNode number\n number: number;\n\n difficulty: 0 | 1 | 2;\n\n constructor(n: number, difficulty: 0 | 1 | 2, name: string, desc = \"\", info: JSX.Element = <>>) {\n this.number = n;\n this.difficulty = difficulty;\n this.name = name;\n this.desc = desc;\n this.info = info;\n }\n}\n\nexport const BitNodes: IMap = {};\n\nBitNodes[\"BitNode1\"] = new BitNode(\n 1,\n 0,\n \"Source Genesis\",\n \"The original BitNode\",\n (\n <>\n The first BitNode created by the Enders to imprison the minds of humans. It became the prototype and\n testing-grounds for all of the BitNodes that followed.\n \n \n This is the first BitNode that you play through. It has no special modifications or mechanics.\n \n \n Destroying this BitNode will give you Source-File 1, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the player start with 32GB of RAM on his/her home computer when\n entering a new BitNode, and also increases all of the player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nBitNodes[\"BitNode2\"] = new BitNode(\n 2,\n 0,\n \"Rise of the Underworld\",\n \"From the shadows, they rose\", //Gangs\n (\n <>\n From the shadows, they rose.\n \n \n Organized crime groups quickly filled the void of power left behind from the collapse of Western government in the\n 2050s. As society and civilization broke down, people quickly succumbed to the innate human impulse of evil and\n savagery. The organized crime factions quickly rose to the top of the modern world.\n \n \n Certain Factions ({FactionNames.SlumSnakes}, {FactionNames.Tetrads}, {FactionNames.TheSyndicate},{\" \"}\n {FactionNames.TheDarkArmy}, {FactionNames.SpeakersForTheDead}, {FactionNames.NiteSec}, {FactionNames.TheBlackHand}\n ) give the player the ability to form and manage their own gangs. These gangs will earn the player money and\n reputation with the corresponding Faction\n \n Every Augmentation in the game will be available through the Factions listed above\n \n \n Destroying this BitNode will give you Source-File 2, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to form gangs in other BitNodes once your karma decreases\n to a certain value. It also increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nBitNodes[\"BitNode3\"] = new BitNode(\n 3,\n 0,\n \"Corporatocracy\",\n \"The Price of Civilization\",\n (\n <>\n Our greatest illusion is that a healthy society can revolve around a single-minded pursuit of wealth.\n \n \n Sometime in the early 21st century economic and political globalization turned the world into a corporatocracy,\n and it never looked back. Now, the privileged elite will happily bankrupt their own countrymen, decimate their own\n community, and evict their neighbors from houses in their desperate bid to increase their wealth.\n \n \n In this BitNode you can create and manage your own corporation. Running a successful corporation has the potential\n of generating massive profits.\n \n \n Destroying this BitNode will give you Source-File 3, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you create corporations on other BitNodes (although some\n BitNodes will disable this mechanic). This Source-File also increases your charisma and company salary multipliers\n by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode4\"] = new BitNode(\n 4,\n 1,\n \"The Singularity\",\n \"The Man and the Machine\",\n (\n <>\n The Singularity has arrived. The human race is gone, replaced by artificially superintelligent beings that are\n more machine than man. \n \n \n In this BitNode you will gain access to a new set of Netscript Functions known as Singularity Functions. These\n functions allow you to control most aspects of the game through scripts, including working for factions/companies,\n purchasing/installing Augmentations, and creating programs.\n \n \n Destroying this BitNode will give you Source-File 4, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets you access and use the Singularity Functions in other BitNodes.\n Each level of this Source-File reduces the RAM cost of singularity functions.\n >\n ),\n);\nBitNodes[\"BitNode5\"] = new BitNode(\n 5,\n 1,\n \"Artificial Intelligence\",\n \"Posthuman\",\n (\n <>\n They said it couldn't be done. They said the human brain, along with its consciousness and intelligence, couldn't\n be replicated. They said the complexity of the brain results from unpredictable, nonlinear interactions that\n couldn't be modeled by 1's and 0's. They were wrong.\n \n \n Destroying this BitNode will give you Source-File 5, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants you a special new stat called Intelligence. Intelligence is\n unique because it is permanent and persistent (it never gets reset back to 1). However gaining Intelligence\n experience is much slower than other stats. Higher Intelligence levels will boost your production for many actions\n in the game. \n \n In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with\n Formulas.exe, and will also raise all of your hacking-related multipliers by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode6\"] = new BitNode(\n 6,\n 1,\n FactionNames.Bladeburners,\n \"Like Tears in Rain\",\n (\n <>\n In the middle of the 21st century, {FactionNames.OmniTekIncorporated} began designing and manufacturing advanced\n synthetic androids, or Synthoids for short. They achieved a major technological breakthrough in the sixth\n generation of their Synthoid design, called MK-VI, by developing a hyperintelligent AI. Many argue that this was\n the first sentient AI ever created. This resulted in Synthoid models that were stronger, faster, and more\n intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} Division at the NSA, which provides a\n new mechanic for progression.\n \n \n Destroying this BitNode will give you Source-File 6, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the NSA's {FactionNames.Bladeburners} Division\n in other BitNodes. In addition, this Source-File will raise both the level and experience gain rate of all your\n combat stats by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode7\"] = new BitNode(\n 7,\n 2,\n `${FactionNames.Bladeburners} 2079`,\n \"More human than humans\",\n (\n <>\n In the middle of the 21st century, you were doing cutting-edge work at {FactionNames.OmniTekIncorporated} as part\n of the AI design team for advanced synthetic androids, or Synthoids for short. You helped achieve a major\n technological breakthrough in the sixth generation of the company's Synthoid design, called MK-VI, by developing a\n hyperintelligent AI. Many argue that this was the first sentient AI ever created. This resulted in Synthoid models\n that were stronger, faster, and more intelligent than the humans that had created them.\n \n \n In this BitNode you will be able to access the {FactionNames.Bladeburners} API, which allows you to access{\" \"}\n {FactionNames.Bladeburners}\n functionality through Netscript.\n \n \n Destroying this BitNode will give you Source-File 7, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File allows you to access the {FactionNames.Bladeburners} Netscript API in\n other BitNodes. In addition, this Source-File will increase all of your {FactionNames.Bladeburners} multipliers\n by:\n \n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode8\"] = new BitNode(\n 8,\n 2,\n \"Ghost of Wall Street\",\n \"Money never sleeps\",\n (\n <>\n You are trying to make a name for yourself as an up-and-coming hedge fund manager on Wall Street.\n \n \n In this BitNode:\n \n \n You start with $250 million\n \n You start with a WSE membership and access to the TIX API\n \n You are able to short stocks and place different types of orders (limit/stop)\n \n \n Destroying this BitNode will give you Source-File 8, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanent access to WSE and TIX API\n \n Level 2: Ability to short stocks in other BitNodes\n \n Level 3: Ability to use limit/stop orders in other BitNodes\n \n \n This Source-File also increases your hacking growth multipliers by:\n \n Level 1: 12%\n \n Level 2: 18%\n \n Level 3: 21%\n >\n ),\n);\nBitNodes[\"BitNode9\"] = new BitNode(\n 9,\n 2,\n \"Hacktocracy\",\n \"Hacknet Unleashed\",\n (\n <>\n When {FactionNames.FulcrumSecretTechnologies} released their open-source Linux distro Chapeau, it quickly became\n the OS of choice for the underground hacking community. Chapeau became especially notorious for powering the\n Hacknet, a global, decentralized network used for nefarious purposes. {FactionNames.FulcrumSecretTechnologies}{\" \"}\n quickly abandoned the project and dissociated themselves from it.\n \n \n This BitNode unlocks the Hacknet Server, an upgraded version of the Hacknet Node. Hacknet Servers generate hashes,\n which can be spent on a variety of different upgrades.\n \n \n Destroying this BitNode will give you Source-File 9, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File grants the following benefits:\n \n \n Level 1: Permanently unlocks the Hacknet Server in other BitNodes\n \n Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode\n \n Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode\n \n \n (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing\n Augmentations)\n \n \n This Source-File also increases your hacknet multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nBitNodes[\"BitNode10\"] = new BitNode(\n 10,\n 2,\n \"Digital Carbon\",\n \"Your body is not who you are\",\n (\n <>\n In 2084, VitaLife unveiled to the world the Persona Core, a technology that allowed people to digitize their\n consciousness. Their consciousness could then be transferred into Synthoids or other bodies by trasmitting the\n digitized data. Human bodies became nothing more than 'sleeves' for the human consciousness. Mankind had finally\n achieved immortality - at least for those that could afford it.\n \n \n This BitNode unlocks Sleeve technology. Sleeve technology allows you to:\n \n \n 1. Grafting: Visit VitaLife in New Tokyo to be able to obtain Augmentations without needing to install\n \n 2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks\n synchronously.\n \n \n Destroying this BitNode will give you Source-File 10, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File unlocks Sleeve technology in other BitNodes. Each level of this\n Source-File also grants you a Duplicate Sleeve\n >\n ),\n);\nBitNodes[\"BitNode11\"] = new BitNode(\n 11,\n 1,\n \"The Big Crash\",\n \"Okay. Sell it all.\",\n (\n <>\n The 2050s was defined by the massive amounts of violent civil unrest and anarchic rebellion that rose all around\n the world. It was this period of disorder that eventually lead to the governmental reformation of many global\n superpowers, most notably the USA and China. But just as the world was slowly beginning to recover from these dark\n times, financial catastrophe hit.\n \n \n In many countries, the high cost of trying to deal with the civil disorder bankrupted the governments. In all of\n this chaos and confusion, hackers were able to steal billions of dollars from the world's largest electronic\n banks, prompting an international banking crisis as governments were unable to bail out insolvent banks. Now, the\n world is slowly crumbling in the middle of the biggest economic crisis of all time.\n \n \n Destroying this BitNode will give you Source-File 11, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File makes it so that company favor increases BOTH the player's salary and\n reputation gain rate at that company by 1% per favor (rather than just the reputation gain). This Source-File also\n increases the player's company salary and reputation gain multipliers by:\n \n \n Level 1: 32%\n \n Level 2: 48%\n \n Level 3: 56%\n \n \n It also reduces the price increase for every aug bought by:\n \n \n Level 1: 4%\n \n Level 2: 6%\n \n Level 3: 7%\n >\n ),\n);\nBitNodes[\"BitNode12\"] = new BitNode(\n 12,\n 0,\n \"The Recursion\",\n \"Repeat.\",\n (\n <>\n To iterate is human, to recurse divine.\n \n \n Every time this BitNode is destroyed, it becomes slightly harder. Destroying this BitNode will give you\n Source-File 12, or if you already have this Source-File it will upgrade its level. There is no maximum level for\n Source-File 12. Each level of Source-File 12 lets you start any BitNodes with NeuroFlux Governor equal to the\n level of this source file.\n >\n ),\n);\nBitNodes[\"BitNode13\"] = new BitNode(\n 13,\n 2,\n \"They're lunatics\",\n \"1 step back, 2 steps forward\",\n (\n <>\n With the invention of Augmentations in the 2040s a religious group known as the{\" \"}\n {FactionNames.ChurchOfTheMachineGod} has rallied far more support than anyone would have hoped.\n \n \n Their leader, Allison \"Mother\" Stanek is said to have created her own Augmentation whose power goes beyond any\n other. Find her in {CityName.Chongqing} and gain her trust.\n \n \n Destroying this BitNode will give you Source-File 13, or if you already have this Source-File it will upgrade its\n level up to a maximum of 3. This Source-File lets the {FactionNames.ChurchOfTheMachineGod} appear in other\n BitNodes.\n \n \n Each level of this Source-File increases the size of Stanek's Gift.\n >\n ),\n);\n\nexport const defaultMultipliers: IBitNodeMultipliers = {\n HackingLevelMultiplier: 1,\n StrengthLevelMultiplier: 1,\n DefenseLevelMultiplier: 1,\n DexterityLevelMultiplier: 1,\n AgilityLevelMultiplier: 1,\n CharismaLevelMultiplier: 1,\n\n ServerGrowthRate: 1,\n ServerMaxMoney: 1,\n ServerStartingMoney: 1,\n ServerStartingSecurity: 1,\n ServerWeakenRate: 1,\n\n HomeComputerRamCost: 1,\n\n PurchasedServerCost: 1,\n PurchasedServerSoftcap: 1,\n PurchasedServerLimit: 1,\n PurchasedServerMaxRam: 1,\n\n CompanyWorkMoney: 1,\n CrimeMoney: 1,\n HacknetNodeMoney: 1,\n ManualHackMoney: 1,\n ScriptHackMoney: 1,\n ScriptHackMoneyGain: 1,\n CodingContractMoney: 1,\n\n ClassGymExpGain: 1,\n CompanyWorkExpGain: 1,\n CrimeExpGain: 1,\n FactionWorkExpGain: 1,\n HackExpGain: 1,\n\n FactionPassiveRepGain: 1,\n FactionWorkRepGain: 1,\n RepToDonateToFaction: 1,\n\n AugmentationMoneyCost: 1,\n AugmentationRepCost: 1,\n\n InfiltrationMoney: 1,\n InfiltrationRep: 1,\n\n FourSigmaMarketDataCost: 1,\n FourSigmaMarketDataApiCost: 1,\n\n CorporationValuation: 1,\n CorporationSoftCap: 1,\n\n BladeburnerRank: 1,\n BladeburnerSkillCost: 1,\n\n GangSoftcap: 1,\n GangUniqueAugs: 1,\n\n DaedalusAugsRequirement: 30,\n\n StaneksGiftPowerMultiplier: 1,\n StaneksGiftExtraSize: 0,\n\n WorldDaemonDifficulty: 1,\n};\n\nexport function getBitNodeMultipliers(n: number, lvl: number): IBitNodeMultipliers {\n const mults = Object.assign({}, defaultMultipliers);\n switch (n) {\n case 1: {\n return mults;\n }\n case 2: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n ServerGrowthRate: 0.8,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.4,\n CrimeMoney: 3,\n InfiltrationMoney: 3,\n FactionWorkRepGain: 0.5,\n FactionPassiveRepGain: 0,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: -6,\n PurchasedServerSoftcap: 1.3,\n CorporationSoftCap: 0.9,\n WorldDaemonDifficulty: 5,\n });\n }\n case 3: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.8,\n RepToDonateToFaction: 0.5,\n AugmentationRepCost: 3,\n AugmentationMoneyCost: 3,\n ServerMaxMoney: 0.2,\n ServerStartingMoney: 0.2,\n ServerGrowthRate: 0.2,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.25,\n CrimeMoney: 0.25,\n HacknetNodeMoney: 0.25,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 2,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -2,\n PurchasedServerSoftcap: 1.3,\n GangSoftcap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.5,\n });\n }\n case 4: {\n return Object.assign(mults, {\n ServerMaxMoney: 0.15,\n ServerStartingMoney: 0.75,\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.1,\n CrimeMoney: 0.2,\n HacknetNodeMoney: 0.05,\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.4,\n CrimeExpGain: 0.5,\n FactionWorkRepGain: 0.75,\n StaneksGiftPowerMultiplier: 1.5,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.5,\n });\n }\n case 5: {\n return Object.assign(mults, {\n ServerMaxMoney: 2,\n ServerStartingSecurity: 2,\n ServerStartingMoney: 0.5,\n ScriptHackMoney: 0.15,\n HacknetNodeMoney: 0.2,\n CrimeMoney: 0.5,\n InfiltrationRep: 1.5,\n InfiltrationMoney: 1.5,\n AugmentationMoneyCost: 2,\n HackExpGain: 0.5,\n CorporationValuation: 0.5,\n StaneksGiftPowerMultiplier: 1.3,\n StaneksGiftExtraSize: 0,\n PurchasedServerSoftcap: 1.2,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.5,\n });\n }\n case 6: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.75,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.7,\n CorporationSoftCap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 7: {\n return Object.assign(mults, {\n BladeburnerRank: 0.6,\n BladeburnerSkillCost: 2,\n AugmentationMoneyCost: 3,\n HackingLevelMultiplier: 0.35,\n ServerMaxMoney: 0.4,\n ServerStartingMoney: 0.5,\n ServerStartingSecurity: 1.5,\n ScriptHackMoney: 0.5,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.75,\n InfiltrationMoney: 0.75,\n CorporationValuation: 0.2,\n HacknetNodeMoney: 0.2,\n HackExpGain: 0.25,\n FourSigmaMarketDataCost: 2,\n FourSigmaMarketDataApiCost: 2,\n DaedalusAugsRequirement: 35,\n PurchasedServerSoftcap: 2,\n StaneksGiftPowerMultiplier: 0.9,\n StaneksGiftExtraSize: -1,\n GangSoftcap: 0.7,\n CorporationSoftCap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.2,\n });\n }\n case 8: {\n return Object.assign(mults, {\n ScriptHackMoney: 0.3,\n ScriptHackMoneyGain: 0,\n ManualHackMoney: 0,\n CompanyWorkMoney: 0,\n CrimeMoney: 0,\n HacknetNodeMoney: 0,\n InfiltrationMoney: 0,\n RepToDonateToFaction: 0,\n CorporationValuation: 0,\n CodingContractMoney: 0,\n StaneksGiftExtraSize: -99,\n PurchasedServerSoftcap: 4,\n GangSoftcap: 0,\n CorporationSoftCap: 0,\n GangUniqueAugs: 0,\n });\n }\n case 9: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.5,\n StrengthLevelMultiplier: 0.45,\n DefenseLevelMultiplier: 0.45,\n DexterityLevelMultiplier: 0.45,\n AgilityLevelMultiplier: 0.45,\n CharismaLevelMultiplier: 0.45,\n PurchasedServerLimit: 0,\n HomeComputerRamCost: 5,\n CrimeMoney: 0.5,\n ScriptHackMoney: 0.1,\n HackExpGain: 0.05,\n ServerStartingMoney: 0.1,\n ServerMaxMoney: 0.1,\n ServerStartingSecurity: 2.5,\n CorporationValuation: 0.5,\n FourSigmaMarketDataCost: 5,\n FourSigmaMarketDataApiCost: 4,\n BladeburnerRank: 0.9,\n BladeburnerSkillCost: 1.2,\n StaneksGiftPowerMultiplier: 0.5,\n StaneksGiftExtraSize: 2,\n GangSoftcap: 0.8,\n CorporationSoftCap: 0.7,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.25,\n });\n }\n case 10: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.35,\n StrengthLevelMultiplier: 0.4,\n DefenseLevelMultiplier: 0.4,\n DexterityLevelMultiplier: 0.4,\n AgilityLevelMultiplier: 0.4,\n CharismaLevelMultiplier: 0.4,\n CompanyWorkMoney: 0.5,\n CrimeMoney: 0.5,\n HacknetNodeMoney: 0.5,\n ManualHackMoney: 0.5,\n ScriptHackMoney: 0.5,\n CodingContractMoney: 0.5,\n InfiltrationMoney: 0.5,\n CorporationValuation: 0.5,\n AugmentationMoneyCost: 5,\n AugmentationRepCost: 2,\n HomeComputerRamCost: 1.5,\n PurchasedServerCost: 5,\n PurchasedServerLimit: 0.6,\n PurchasedServerMaxRam: 0.5,\n BladeburnerRank: 0.8,\n StaneksGiftPowerMultiplier: 0.75,\n StaneksGiftExtraSize: -3,\n PurchasedServerSoftcap: 1.1,\n GangSoftcap: 0.9,\n CorporationSoftCap: 0.9,\n WorldDaemonDifficulty: 2,\n GangUniqueAugs: 0.25,\n });\n }\n case 11: {\n return Object.assign(mults, {\n HackingLevelMultiplier: 0.6,\n HackExpGain: 0.5,\n ServerMaxMoney: 0.1,\n ServerStartingMoney: 0.1,\n ServerGrowthRate: 0.2,\n ServerWeakenRate: 2,\n CrimeMoney: 3,\n CompanyWorkMoney: 0.5,\n HacknetNodeMoney: 0.1,\n AugmentationMoneyCost: 2,\n InfiltrationMoney: 2.5,\n InfiltrationRep: 2.5,\n CorporationValuation: 0.1,\n CodingContractMoney: 0.25,\n FourSigmaMarketDataCost: 4,\n FourSigmaMarketDataApiCost: 4,\n PurchasedServerSoftcap: 2,\n CorporationSoftCap: 0.9,\n WorldDaemonDifficulty: 1.5,\n GangUniqueAugs: 0.75,\n });\n }\n case 12: {\n const inc = Math.pow(1.02, lvl);\n const dec = 1 / inc;\n\n return Object.assign(mults, {\n DaedalusAugsRequirement: Math.floor(Math.min(mults.DaedalusAugsRequirement + inc, 40)),\n\n HackingLevelMultiplier: dec,\n StrengthLevelMultiplier: dec,\n DefenseLevelMultiplier: dec,\n DexterityLevelMultiplier: dec,\n AgilityLevelMultiplier: dec,\n CharismaLevelMultiplier: dec,\n\n ServerMaxMoney: dec,\n ServerStartingMoney: dec,\n ServerGrowthRate: dec,\n ServerWeakenRate: dec,\n\n //Does not scale, otherwise security might start at 300+\n ServerStartingSecurity: 1.5,\n\n HomeComputerRamCost: inc,\n\n PurchasedServerCost: inc,\n PurchasedServerLimit: dec,\n PurchasedServerMaxRam: dec,\n PurchasedServerSoftcap: inc,\n\n ManualHackMoney: dec,\n ScriptHackMoney: dec,\n CompanyWorkMoney: dec,\n CrimeMoney: dec,\n HacknetNodeMoney: dec,\n CodingContractMoney: dec,\n\n CompanyWorkExpGain: dec,\n ClassGymExpGain: dec,\n FactionWorkExpGain: dec,\n HackExpGain: dec,\n CrimeExpGain: dec,\n\n FactionWorkRepGain: dec,\n FactionPassiveRepGain: dec,\n RepToDonateToFaction: inc,\n\n AugmentationRepCost: inc,\n AugmentationMoneyCost: inc,\n\n InfiltrationMoney: dec,\n InfiltrationRep: dec,\n\n FourSigmaMarketDataCost: inc,\n FourSigmaMarketDataApiCost: inc,\n\n CorporationValuation: dec,\n\n BladeburnerRank: dec,\n BladeburnerSkillCost: inc,\n\n StaneksGiftPowerMultiplier: inc,\n StaneksGiftExtraSize: inc,\n GangSoftcap: 0.8,\n CorporationSoftCap: 0.8,\n WorldDaemonDifficulty: inc,\n\n GangUniqueAugs: dec,\n });\n }\n case 13: {\n return Object.assign(mults, {\n PurchasedServerSoftcap: 1.6,\n\n HackingLevelMultiplier: 0.25,\n StrengthLevelMultiplier: 0.7,\n DefenseLevelMultiplier: 0.7,\n DexterityLevelMultiplier: 0.7,\n AgilityLevelMultiplier: 0.7,\n\n ServerMaxMoney: 0.45,\n ServerStartingMoney: 0.75,\n\n ServerStartingSecurity: 3,\n\n ScriptHackMoney: 0.2,\n CompanyWorkMoney: 0.4,\n CrimeMoney: 0.4,\n HacknetNodeMoney: 0.4,\n CodingContractMoney: 0.4,\n\n CompanyWorkExpGain: 0.5,\n ClassGymExpGain: 0.5,\n FactionWorkExpGain: 0.5,\n HackExpGain: 0.1,\n CrimeExpGain: 0.5,\n\n FactionWorkRepGain: 0.6,\n\n FourSigmaMarketDataCost: 10,\n FourSigmaMarketDataApiCost: 10,\n\n CorporationValuation: 0.001,\n\n BladeburnerRank: 0.45,\n BladeburnerSkillCost: 2,\n StaneksGiftPowerMultiplier: 2,\n StaneksGiftExtraSize: 1,\n GangSoftcap: 0.3,\n CorporationSoftCap: 0.3,\n WorldDaemonDifficulty: 3,\n GangUniqueAugs: 0.1,\n });\n }\n default: {\n throw new Error(\"Invalid BitNodeN\");\n }\n }\n}\n\nexport function initBitNodeMultipliers(p: IPlayer): void {\n Object.assign(BitNodeMultipliers, getBitNodeMultipliers(p.bitNodeN, p.sourceFileLvl(p.bitNodeN)));\n}\n","import { 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 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.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.GoToCharacterPage]: false,\n [iTutorialSteps.CharacterPage]: false,\n [iTutorialSteps.CharacterGoToTerminalPage]: false,\n [iTutorialSteps.TerminalIntro]: false,\n [iTutorialSteps.TerminalHelp]: false,\n [iTutorialSteps.TerminalLs]: false,\n [iTutorialSteps.TerminalScan]: false,\n [iTutorialSteps.TerminalScanAnalyze1]: false,\n [iTutorialSteps.TerminalScanAnalyze2]: false,\n [iTutorialSteps.TerminalConnect]: false,\n [iTutorialSteps.TerminalAnalyze]: false,\n [iTutorialSteps.TerminalNuke]: false,\n [iTutorialSteps.TerminalManualHack]: false,\n [iTutorialSteps.TerminalHackingMechanics]: false,\n [iTutorialSteps.TerminalGoHome]: false,\n [iTutorialSteps.TerminalCreateScript]: false,\n [iTutorialSteps.TerminalTypeScript]: false,\n [iTutorialSteps.TerminalFree]: false,\n [iTutorialSteps.TerminalRunScript]: false,\n [iTutorialSteps.TerminalGoToActiveScriptsPage]: false,\n [iTutorialSteps.ActiveScriptsPage]: false,\n [iTutorialSteps.ActiveScriptsToTerminal]: false,\n [iTutorialSteps.TerminalTailScript]: false,\n [iTutorialSteps.GoToHacknetNodesPage]: false,\n [iTutorialSteps.HacknetNodesIntroduction]: false,\n [iTutorialSteps.HacknetNodesGoToWorldPage]: false,\n [iTutorialSteps.WorldDescription]: false,\n [iTutorialSteps.TutorialPageInfo]: false,\n [iTutorialSteps.End]: false,\n },\n};\n\nfunction iTutorialStart(): void {\n ITutorial.isRunning = true;\n ITutorial.currStep = iTutorialSteps.Start;\n}\n\n// Go to the next step and evaluate it\nfunction iTutorialNextStep(): void {\n ITutorial.stepIsDone[ITutorial.currStep] = true;\n if (ITutorial.currStep < iTutorialSteps.End) {\n ITutorial.currStep += 1;\n }\n if (ITutorial.currStep === iTutorialSteps.End) iTutorialEnd();\n ITutorialEvents.emit();\n}\n\n// Go to previous step and evaluate\nfunction iTutorialPrevStep(): void {\n if (ITutorial.currStep > iTutorialSteps.Start) {\n ITutorial.currStep -= 1;\n }\n ITutorialEvents.emit();\n}\n\nfunction iTutorialEnd(): void {\n ITutorial.isRunning = false;\n ITutorial.currStep = iTutorialSteps.Start;\n Player.getHomeComputer().messages.push(LiteratureNames.HackersStartingHandbook);\n ITutorialEvents.emit();\n}\n\nexport { iTutorialSteps, iTutorialEnd, iTutorialStart, iTutorialNextStep, ITutorial, iTutorialPrevStep };\n","// Class representing a single hackable Server\nimport { BaseServer } from \"./BaseServer\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\nimport { createRandomString } from \"../utils/helpers/createRandomString\";\nimport { createRandomIp } from \"../utils/IPAddress\";\nimport { Generic_fromJSON, Generic_toJSON, Reviver } from \"../utils/JSONReviver\";\n\nexport interface IConstructorParams {\n adminRights?: boolean;\n hackDifficulty?: number;\n hostname: string;\n ip?: string;\n isConnectedTo?: boolean;\n maxRam?: number;\n moneyAvailable?: number;\n numOpenPortsRequired?: number;\n organizationName?: string;\n purchasedByPlayer?: boolean;\n requiredHackingSkill?: number;\n serverGrowth?: number;\n}\n\nexport class Server extends BaseServer {\n // Flag indicating whether this server has a backdoor installed by a player\n backdoorInstalled = false;\n\n // Initial server security level\n // (i.e. security level when the server was created)\n baseDifficulty = 1;\n\n // Server Security Level\n hackDifficulty = 1;\n\n // Minimum server security level that this server can be weakened to\n minDifficulty = 1;\n\n // How much money currently resides on the server and can be hacked\n moneyAvailable = 0;\n\n // Maximum amount of money that this server can hold\n moneyMax = 0;\n\n // Number of open ports required in order to gain admin/root access\n numOpenPortsRequired = 5;\n\n // How many ports are currently opened on the server\n openPortCount = 0;\n\n // Hacking level required to hack this server\n requiredHackingSkill = 1;\n\n // Parameter that affects how effectively this server's money can\n // be increased using the grow() Netscript function\n serverGrowth = 1;\n\n constructor(params: IConstructorParams = { hostname: \"\", ip: createRandomIp() }) {\n super(params);\n\n // \"hacknet-node-X\" hostnames are reserved for Hacknet Servers\n if (this.hostname.startsWith(\"hacknet-node-\")) {\n this.hostname = createRandomString(10);\n }\n\n this.purchasedByPlayer = params.purchasedByPlayer != null ? params.purchasedByPlayer : false;\n\n //RAM, CPU speed and Scripts\n this.maxRam = params.maxRam != null ? params.maxRam : 0; //GB\n\n /* Hacking information (only valid for \"foreign\" aka non-purchased servers) */\n this.requiredHackingSkill = params.requiredHackingSkill != null ? params.requiredHackingSkill : 1;\n this.moneyAvailable =\n params.moneyAvailable != null ? params.moneyAvailable * BitNodeMultipliers.ServerStartingMoney : 0;\n this.moneyMax = 25 * this.moneyAvailable * BitNodeMultipliers.ServerMaxMoney;\n\n //Hack Difficulty is synonymous with server security. Base Difficulty = Starting difficulty\n this.hackDifficulty =\n params.hackDifficulty != null ? params.hackDifficulty * BitNodeMultipliers.ServerStartingSecurity : 1;\n this.baseDifficulty = this.hackDifficulty;\n this.minDifficulty = Math.max(1, Math.round(this.hackDifficulty / 3));\n this.serverGrowth = params.serverGrowth != null ? params.serverGrowth : 1; //Integer from 0 to 100. Affects money increase from grow()\n\n //Port information, required for porthacking servers to get admin rights\n this.numOpenPortsRequired = params.numOpenPortsRequired != null ? params.numOpenPortsRequired : 5;\n }\n\n /**\n * Ensures that the server's difficulty (server security) doesn't get too high\n */\n capDifficulty(): void {\n if (this.hackDifficulty < this.minDifficulty) {\n this.hackDifficulty = this.minDifficulty;\n }\n if (this.hackDifficulty < 1) {\n this.hackDifficulty = 1;\n }\n\n // Place some arbitrarily limit that realistically should never happen unless someone is\n // screwing around with the game\n if (this.hackDifficulty > 100) {\n this.hackDifficulty = 100;\n }\n }\n\n /**\n * Change this server's minimum security\n * @param n - Value by which to increase/decrease the server's minimum security\n * @param perc - Whether it should be changed by a percentage, or a flat value\n */\n changeMinimumSecurity(n: number, perc = false): void {\n if (perc) {\n this.minDifficulty *= n;\n } else {\n this.minDifficulty += n;\n }\n\n // Server security cannot go below 1\n this.minDifficulty = Math.max(1, this.minDifficulty);\n }\n\n /**\n * Change this server's maximum money\n * @param n - Value by which to change the server's maximum money\n */\n changeMaximumMoney(n: number): void {\n const softCap = 10e12;\n if (this.moneyMax > softCap) {\n const aboveCap = this.moneyMax - softCap;\n n = 1 + (n - 1) / Math.log(aboveCap) / Math.log(8);\n }\n\n this.moneyMax *= n;\n }\n\n /**\n * Strengthens a server's security level (difficulty) by the specified amount\n */\n fortify(amt: number): void {\n this.hackDifficulty += amt;\n this.capDifficulty();\n }\n\n /**\n * Lowers the server's security level (difficulty) by the specified amount)\n */\n weaken(amt: number): void {\n this.hackDifficulty -= amt * BitNodeMultipliers.ServerWeakenRate;\n this.capDifficulty();\n }\n\n /**\n * Serialize the current object to a JSON save state\n */\n toJSON(): any {\n return Generic_toJSON(\"Server\", this);\n }\n\n // Initializes a Server Object from a JSON save state\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Server {\n return Generic_fromJSON(Server, value.data);\n }\n}\n\nReviver.constructors.Server = Server;\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","import { IPlayer } from \"../IPlayer\";\nimport { PlayerObject } from \"./PlayerObject\";\nimport { Augmentations } from \"../../Augmentation/Augmentations\";\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 { determineCrimeSuccess } from \"../../Crime/CrimeHelpers\";\nimport { Crimes } from \"../../Crime/Crimes\";\nimport { Exploit } from \"../../Exploits/Exploit\";\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\nimport { resetGangs } from \"../../Gang/AllGangs\";\nimport { Cities } from \"../../Locations/Cities\";\nimport { Locations } from \"../../Locations/Locations\";\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\nimport { Sleeve } from \"../Sleeve/Sleeve\";\nimport {\n calculateSkill as calculateSkillF,\n calculateSkillProgress as calculateSkillProgressF,\n ISkillProgress,\n} from \"../formulas/skill\";\nimport { calculateIntelligenceBonus } from \"../formulas/intelligence\";\nimport {\n getHackingWorkRepGain,\n getFactionSecurityWorkRepGain,\n getFactionFieldWorkRepGain,\n} from \"../formulas/reputation\";\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 { influenceStockThroughCompanyWork } from \"../../StockMarket/PlayerInfluencing\";\nimport { getHospitalizationCost } from \"../../Hospital/Hospital\";\nimport { WorkerScript } from \"../../Netscript/WorkerScript\";\nimport { HacknetServer } from \"../../Hacknet/HacknetServer\";\n\nimport { numeralWrapper } from \"../../ui/numeralFormat\";\nimport { IRouter } from \"../../ui/Router\";\nimport { MoneySourceTracker } from \"../../utils/MoneySourceTracker\";\nimport { dialogBoxCreate } from \"../../ui/React/DialogBox\";\nimport { convertTimeMsToTimeElapsedString } from \"../../utils/StringHelperFunctions\";\n\nimport { Reputation } from \"../../ui/React/Reputation\";\nimport { Money } from \"../../ui/React/Money\";\n\nimport React from \"react\";\nimport { serverMetadata } from \"../../Server/data/servers\";\nimport { SnackbarEvents, ToastVariant } from \"../../ui/React/Snackbar\";\nimport { calculateClassEarnings } from \"../formulas/work\";\nimport { achievements } from \"../../Achievements/Achievements\";\nimport { FactionNames } from \"../../Faction/data/FactionNames\";\n\nexport function init(this: IPlayer): void {\n /* Initialize Player's home computer */\n const t_homeComp = safetlyCreateUniqueServer({\n adminRights: true,\n hostname: \"home\",\n ip: createUniqueRandomIp(),\n isConnectedTo: true,\n maxRam: 8,\n organizationName: \"Home PC\",\n purchasedByPlayer: true,\n });\n this.currentServer = SpecialServers.Home;\n AddToAllServers(t_homeComp);\n\n this.getHomeComputer().programs.push(Programs.NukeProgram.name);\n}\n\nexport function prestigeAugmentation(this: PlayerObject): void {\n this.currentServer = SpecialServers.Home;\n\n this.numPeopleKilled = 0;\n\n //Reset stats\n this.hacking = 1;\n\n this.strength = 1;\n this.defense = 1;\n this.dexterity = 1;\n this.agility = 1;\n\n this.charisma = 1;\n\n this.hacking_exp = 0;\n this.strength_exp = 0;\n this.defense_exp = 0;\n this.dexterity_exp = 0;\n this.agility_exp = 0;\n this.charisma_exp = 0;\n\n this.money = 1000 + CONSTANTS.Donations;\n\n this.city = CityName.Sector12;\n this.location = LocationName.TravelAgency;\n\n this.companyName = \"\";\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.isWorking = false;\n this.currentWorkFactionName = \"\";\n this.currentWorkFactionDescription = \"\";\n this.createProgramName = \"\";\n this.className = \"\";\n this.crimeType = \"\";\n\n this.workHackExpGainRate = 0;\n this.workStrExpGainRate = 0;\n this.workDefExpGainRate = 0;\n this.workDexExpGainRate = 0;\n this.workAgiExpGainRate = 0;\n this.workChaExpGainRate = 0;\n this.workRepGainRate = 0;\n this.workMoneyGainRate = 0;\n\n this.workHackExpGained = 0;\n this.workStrExpGained = 0;\n this.workDefExpGained = 0;\n this.workDexExpGained = 0;\n this.workAgiExpGained = 0;\n this.workChaExpGained = 0;\n this.workRepGained = 0;\n this.workMoneyGained = 0;\n\n this.timeWorked = 0;\n\n this.lastUpdate = new Date().getTime();\n\n // Statistics Trackers\n this.playtimeSinceLastAug = 0;\n this.scriptProdSinceLastAug = 0;\n this.moneySourceA.reset();\n\n this.hacknetNodes.length = 0;\n this.hashManager.prestige();\n\n // Reapply augs, re-calculate skills and reset HP\n this.reapplyAllAugmentations(true);\n this.hp = this.max_hp;\n}\n\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 this.timeWorked = 0;\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: IPlayer, exp: number, mult = 1): number {\n return calculateSkillF(exp, mult);\n}\n\n//Calculates skill level progress based on experience. The same formula will be used for every skill\nexport function calculateSkillProgress(this: IPlayer, exp: number, mult = 1): ISkillProgress {\n return calculateSkillProgressF(exp, mult);\n}\n\nexport function updateSkillLevels(this: IPlayer): void {\n this.hacking = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.hacking_exp, this.hacking_mult * BitNodeMultipliers.HackingLevelMultiplier)),\n );\n this.strength = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.strength_exp, this.strength_mult * BitNodeMultipliers.StrengthLevelMultiplier)),\n );\n this.defense = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.defense_exp, this.defense_mult * BitNodeMultipliers.DefenseLevelMultiplier)),\n );\n this.dexterity = Math.max(\n 1,\n Math.floor(\n this.calculateSkill(this.dexterity_exp, this.dexterity_mult * BitNodeMultipliers.DexterityLevelMultiplier),\n ),\n );\n this.agility = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.agility_exp, this.agility_mult * BitNodeMultipliers.AgilityLevelMultiplier)),\n );\n this.charisma = Math.max(\n 1,\n Math.floor(this.calculateSkill(this.charisma_exp, this.charisma_mult * BitNodeMultipliers.CharismaLevelMultiplier)),\n );\n\n if (this.intelligence > 0) {\n this.intelligence = Math.floor(this.calculateSkill(this.intelligence_exp));\n } else {\n this.intelligence = 0;\n }\n\n const ratio = this.hp / this.max_hp;\n this.max_hp = Math.floor(10 + this.defense / 10);\n this.hp = Math.round(this.max_hp * ratio);\n}\n\nexport function resetMultipliers(this: IPlayer): void {\n this.hacking_chance_mult = 1;\n this.hacking_speed_mult = 1;\n this.hacking_money_mult = 1;\n this.hacking_grow_mult = 1;\n\n this.hacking_mult = 1;\n this.strength_mult = 1;\n this.defense_mult = 1;\n this.dexterity_mult = 1;\n this.agility_mult = 1;\n this.charisma_mult = 1;\n\n this.hacking_exp_mult = 1;\n this.strength_exp_mult = 1;\n this.defense_exp_mult = 1;\n this.dexterity_exp_mult = 1;\n this.agility_exp_mult = 1;\n this.charisma_exp_mult = 1;\n\n this.company_rep_mult = 1;\n this.faction_rep_mult = 1;\n\n this.crime_money_mult = 1;\n this.crime_success_mult = 1;\n\n this.hacknet_node_money_mult = 1;\n this.hacknet_node_purchase_cost_mult = 1;\n this.hacknet_node_ram_cost_mult = 1;\n this.hacknet_node_core_cost_mult = 1;\n this.hacknet_node_level_cost_mult = 1;\n\n this.work_money_mult = 1;\n\n this.bladeburner_max_stamina_mult = 1;\n this.bladeburner_stamina_gain_mult = 1;\n this.bladeburner_analysis_mult = 1;\n this.bladeburner_success_chance_mult = 1;\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: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainHackingExp()\");\n return;\n }\n this.hacking_exp += exp;\n if (this.hacking_exp < 0) {\n this.hacking_exp = 0;\n }\n\n this.hacking = calculateSkillF(this.hacking_exp, this.hacking_mult * BitNodeMultipliers.HackingLevelMultiplier);\n}\n\nexport function gainStrengthExp(this: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainStrengthExp()\");\n return;\n }\n this.strength_exp += exp;\n if (this.strength_exp < 0) {\n this.strength_exp = 0;\n }\n\n this.strength = calculateSkillF(this.strength_exp, this.strength_mult * BitNodeMultipliers.StrengthLevelMultiplier);\n}\n\nexport function gainDefenseExp(this: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into player.gainDefenseExp()\");\n return;\n }\n this.defense_exp += exp;\n if (this.defense_exp < 0) {\n this.defense_exp = 0;\n }\n\n this.defense = calculateSkillF(this.defense_exp, this.defense_mult * BitNodeMultipliers.DefenseLevelMultiplier);\n const ratio = this.hp / this.max_hp;\n this.max_hp = Math.floor(10 + this.defense / 10);\n this.hp = Math.round(this.max_hp * ratio);\n}\n\nexport function gainDexterityExp(this: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainDexterityExp()\");\n return;\n }\n this.dexterity_exp += exp;\n if (this.dexterity_exp < 0) {\n this.dexterity_exp = 0;\n }\n\n this.dexterity = calculateSkillF(\n this.dexterity_exp,\n this.dexterity_mult * BitNodeMultipliers.DexterityLevelMultiplier,\n );\n}\n\nexport function gainAgilityExp(this: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainAgilityExp()\");\n return;\n }\n this.agility_exp += exp;\n if (this.agility_exp < 0) {\n this.agility_exp = 0;\n }\n\n this.agility = calculateSkillF(this.agility_exp, this.agility_mult * BitNodeMultipliers.AgilityLevelMultiplier);\n}\n\nexport function gainCharismaExp(this: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERR: NaN passed into Player.gainCharismaExp()\");\n return;\n }\n this.charisma_exp += exp;\n if (this.charisma_exp < 0) {\n this.charisma_exp = 0;\n }\n\n this.charisma = calculateSkillF(this.charisma_exp, this.charisma_mult * BitNodeMultipliers.CharismaLevelMultiplier);\n}\n\nexport function gainIntelligenceExp(this: IPlayer, exp: number): void {\n if (isNaN(exp)) {\n console.error(\"ERROR: NaN passed into Player.gainIntelligenceExp()\");\n return;\n }\n if (this.sourceFileLvl(5) > 0 || this.intelligence > 0) {\n this.intelligence_exp += exp;\n this.intelligence = Math.floor(this.calculateSkill(this.intelligence_exp));\n }\n}\n\n//Given a string expression like \"str\" or \"strength\", returns the given stat\nexport function queryStatFromString(this: IPlayer, str: string): number {\n const tempStr = str.toLowerCase();\n if (tempStr.includes(\"hack\")) {\n return this.hacking;\n }\n if (tempStr.includes(\"str\")) {\n return this.strength;\n }\n if (tempStr.includes(\"def\")) {\n return this.defense;\n }\n if (tempStr.includes(\"dex\")) {\n return this.dexterity;\n }\n if (tempStr.includes(\"agi\")) {\n return this.agility;\n }\n if (tempStr.includes(\"cha\")) {\n return this.charisma;\n }\n if (tempStr.includes(\"int\")) {\n return this.intelligence;\n }\n return 0;\n}\n\n/******* Working functions *******/\nexport function resetWorkStatus(this: IPlayer, generalType?: string, group?: string, workType?: string): void {\n if (this.workType !== CONSTANTS.WorkTypeFaction && generalType === this.workType && group === this.companyName)\n return;\n if (generalType === this.workType && group === this.currentWorkFactionName && workType === this.factionWorkType)\n return;\n if (this.isWorking) this.singularityStopWork();\n this.workHackExpGainRate = 0;\n this.workStrExpGainRate = 0;\n this.workDefExpGainRate = 0;\n this.workDexExpGainRate = 0;\n this.workAgiExpGainRate = 0;\n this.workChaExpGainRate = 0;\n this.workRepGainRate = 0;\n this.workMoneyGainRate = 0;\n this.workMoneyLossRate = 0;\n\n this.workHackExpGained = 0;\n this.workStrExpGained = 0;\n this.workDefExpGained = 0;\n this.workDexExpGained = 0;\n this.workAgiExpGained = 0;\n this.workChaExpGained = 0;\n this.workRepGained = 0;\n this.workMoneyGained = 0;\n\n this.timeWorked = 0;\n this.timeWorkedCreateProgram = 0;\n this.timeWorkedGraftAugmentation = 0;\n\n this.currentWorkFactionName = \"\";\n this.currentWorkFactionDescription = \"\";\n this.createProgramName = \"\";\n this.graftAugmentationName = \"\";\n this.className = \"\";\n this.workType = \"\";\n}\n\nexport function processWorkEarnings(this: IPlayer, numCycles = 1): void {\n let focusBonus = 1;\n if (!this.hasAugmentation(AugmentationNames[\"NeuroreceptorManager\"])) {\n focusBonus = this.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n const hackExpGain = focusBonus * this.workHackExpGainRate * numCycles;\n const strExpGain = focusBonus * this.workStrExpGainRate * numCycles;\n const defExpGain = focusBonus * this.workDefExpGainRate * numCycles;\n const dexExpGain = focusBonus * this.workDexExpGainRate * numCycles;\n const agiExpGain = focusBonus * this.workAgiExpGainRate * numCycles;\n const chaExpGain = focusBonus * this.workChaExpGainRate * numCycles;\n const moneyGain = (this.workMoneyGainRate - this.workMoneyLossRate) * numCycles;\n this.gainHackingExp(hackExpGain);\n this.gainStrengthExp(strExpGain);\n this.gainDefenseExp(defExpGain);\n this.gainDexterityExp(dexExpGain);\n this.gainAgilityExp(agiExpGain);\n this.gainCharismaExp(chaExpGain);\n this.gainMoney(moneyGain, this.className ? \"class\" : \"work\");\n this.workHackExpGained += hackExpGain;\n this.workStrExpGained += strExpGain;\n this.workDefExpGained += defExpGain;\n this.workDexExpGained += dexExpGain;\n this.workAgiExpGained += agiExpGain;\n this.workChaExpGained += chaExpGain;\n this.workRepGained += focusBonus * this.workRepGainRate * numCycles;\n this.workMoneyGained += focusBonus * this.workMoneyGainRate * numCycles;\n this.workMoneyGained -= focusBonus * this.workMoneyLossRate * numCycles;\n}\n\n/* Working for Company */\nexport function startWork(this: IPlayer, companyName: string): void {\n this.resetWorkStatus(CONSTANTS.WorkTypeCompany, companyName);\n this.isWorking = true;\n this.companyName = companyName;\n this.workType = CONSTANTS.WorkTypeCompany;\n\n this.workHackExpGainRate = this.getWorkHackExpGain();\n this.workStrExpGainRate = this.getWorkStrExpGain();\n this.workDefExpGainRate = this.getWorkDefExpGain();\n this.workDexExpGainRate = this.getWorkDexExpGain();\n this.workAgiExpGainRate = this.getWorkAgiExpGain();\n this.workChaExpGainRate = this.getWorkChaExpGain();\n this.workRepGainRate = this.getWorkRepGain();\n this.workMoneyGainRate = this.getWorkMoneyGain();\n\n this.timeNeededToCompleteWork = CONSTANTS.MillisecondsPer8Hours;\n}\n\nexport function process(this: IPlayer, router: IRouter, numCycles = 1): void {\n // Working\n if (this.isWorking) {\n if (this.workType == CONSTANTS.WorkTypeFaction) {\n if (this.workForFaction(numCycles)) {\n router.toFaction(Factions[this.currentWorkFactionName]);\n }\n } else if (this.workType == CONSTANTS.WorkTypeCreateProgram) {\n if (this.createProgramWork(numCycles)) {\n router.toTerminal();\n }\n } else if (this.workType == CONSTANTS.WorkTypeStudyClass) {\n if (this.takeClass(numCycles)) {\n router.toCity();\n }\n } else if (this.workType == CONSTANTS.WorkTypeCrime) {\n if (this.commitCrime(numCycles)) {\n router.toLocation(Locations[LocationName.Slums]);\n }\n } else if (this.workType == CONSTANTS.WorkTypeCompanyPartTime) {\n if (this.workPartTime(numCycles)) {\n router.toCity();\n }\n } else if (this.workType === CONSTANTS.WorkTypeGraftAugmentation) {\n if (this.graftAugmentationWork(numCycles)) {\n router.toGrafting();\n }\n } else if (this.work(numCycles)) {\n router.toCity();\n }\n }\n}\n\nexport function cancelationPenalty(this: IPlayer): number {\n const data = serverMetadata.find((s) => s.specialName === this.companyName);\n if (!data) return 0.5; // Does not have special server.\n const server = GetServer(data.hostname);\n if (server instanceof Server) {\n if (server && server.backdoorInstalled) return 0.75;\n }\n\n return 0.5;\n}\n\nexport function work(this: IPlayer, numCycles: number): boolean {\n // Cap the number of cycles being processed to whatever would put you at\n // the work time limit (8 hours)\n let overMax = false;\n if (this.timeWorked + CONSTANTS._idleSpeed * numCycles >= CONSTANTS.MillisecondsPer8Hours) {\n overMax = true;\n numCycles = Math.round((CONSTANTS.MillisecondsPer8Hours - this.timeWorked) / CONSTANTS._idleSpeed);\n }\n this.timeWorked += CONSTANTS._idleSpeed * numCycles;\n\n this.workRepGainRate = this.getWorkRepGain();\n this.workMoneyGainRate = this.getWorkMoneyGain();\n this.processWorkEarnings(numCycles);\n\n const comp = Companies[this.companyName];\n influenceStockThroughCompanyWork(comp, this.workRepGainRate, numCycles);\n\n // If timeWorked == 8 hours, then finish. You can only gain 8 hours worth of exp and money\n if (overMax || this.timeWorked >= CONSTANTS.MillisecondsPer8Hours) {\n this.finishWork(false);\n return true;\n }\n return false;\n}\n\nexport function finishWork(this: IPlayer, cancelled: boolean, sing = false): string {\n //Since the work was cancelled early, player only gains half of what they've earned so far\n if (cancelled) {\n this.workRepGained *= this.cancelationPenalty();\n }\n\n const penaltyString = this.cancelationPenalty() === 0.5 ? \"half\" : \"three-quarters\";\n\n const company = Companies[this.companyName];\n company.playerReputation += this.workRepGained;\n\n this.updateSkillLevels();\n\n let content = (\n <>\n You earned a total of: \n \n \n reputation for the company \n {this.workHackExpGained > 0 && (\n <>\n {numeralWrapper.formatExp(this.workHackExpGained)} hacking exp \n >\n )}\n {this.workStrExpGained > 0 && (\n <>\n {numeralWrapper.formatExp(this.workStrExpGained)} strength exp \n >\n )}\n {this.workDefExpGained > 0 && (\n <>\n {numeralWrapper.formatExp(this.workDefExpGained)} defense exp \n >\n )}\n {this.workDexExpGained > 0 && (\n <>\n {numeralWrapper.formatExp(this.workDexExpGained)} dexterity exp \n >\n )}\n {this.workAgiExpGained > 0 && (\n <>\n {numeralWrapper.formatExp(this.workAgiExpGained)} agility exp \n >\n )}\n {this.workChaExpGained > 0 && (\n <>\n {numeralWrapper.formatExp(this.workChaExpGained)} charisma exp \n >\n )}\n \n >\n );\n\n if (cancelled) {\n content = (\n <>\n You worked a short shift of {convertTimeMsToTimeElapsedString(this.timeWorked)} \n \n Since you cancelled your work early, you only gained {penaltyString} of the reputation you earned. \n \n {content}\n >\n );\n } else {\n content = (\n <>\n You worked a full shift of 8 hours! \n \n {content}\n >\n );\n }\n if (!sing) {\n dialogBoxCreate(content);\n }\n\n this.isWorking = false;\n this.focus = false;\n\n this.resetWorkStatus();\n if (sing) {\n const res =\n \"You worked a short shift of \" +\n convertTimeMsToTimeElapsedString(this.timeWorked) +\n \" and \" +\n \"earned $\" +\n numeralWrapper.formatMoney(this.workMoneyGained) +\n \", \" +\n numeralWrapper.formatReputation(this.workRepGained) +\n \" reputation, \" +\n numeralWrapper.formatExp(this.workHackExpGained) +\n \" hacking exp, \" +\n numeralWrapper.formatExp(this.workStrExpGained) +\n \" strength exp, \" +\n numeralWrapper.formatExp(this.workDefExpGained) +\n \" defense exp, \" +\n numeralWrapper.formatExp(this.workDexExpGained) +\n \" dexterity exp, \" +\n numeralWrapper.formatExp(this.workAgiExpGained) +\n \" agility exp, and \" +\n numeralWrapper.formatExp(this.workChaExpGained) +\n \" charisma exp.\";\n\n return res;\n }\n\n return \"\";\n}\n\nexport function startWorkPartTime(this: IPlayer, companyName: string): void {\n this.resetWorkStatus(CONSTANTS.WorkTypeCompanyPartTime, companyName);\n this.isWorking = true;\n this.companyName = companyName;\n this.workType = CONSTANTS.WorkTypeCompanyPartTime;\n\n this.workHackExpGainRate = this.getWorkHackExpGain();\n this.workStrExpGainRate = this.getWorkStrExpGain();\n this.workDefExpGainRate = this.getWorkDefExpGain();\n this.workDexExpGainRate = this.getWorkDexExpGain();\n this.workAgiExpGainRate = this.getWorkAgiExpGain();\n this.workChaExpGainRate = this.getWorkChaExpGain();\n this.workRepGainRate = this.getWorkRepGain();\n this.workMoneyGainRate = this.getWorkMoneyGain();\n\n this.timeNeededToCompleteWork = CONSTANTS.MillisecondsPer8Hours;\n}\n\nexport function workPartTime(this: IPlayer, numCycles: number): boolean {\n //Cap the number of cycles being processed to whatever would put you at the\n //work time limit (8 hours)\n let overMax = false;\n if (this.timeWorked + CONSTANTS._idleSpeed * numCycles >= CONSTANTS.MillisecondsPer8Hours) {\n overMax = true;\n numCycles = Math.round((CONSTANTS.MillisecondsPer8Hours - this.timeWorked) / CONSTANTS._idleSpeed);\n }\n this.timeWorked += CONSTANTS._idleSpeed * numCycles;\n\n this.workRepGainRate = this.getWorkRepGain();\n this.processWorkEarnings(numCycles);\n\n //If timeWorked == 8 hours, then finish. You can only gain 8 hours worth of exp and money\n if (overMax || this.timeWorked >= CONSTANTS.MillisecondsPer8Hours) {\n this.finishWorkPartTime();\n return true;\n }\n return false;\n}\n\nexport function finishWorkPartTime(this: IPlayer, sing = false): string {\n const company = Companies[this.companyName];\n company.playerReputation += this.workRepGained;\n\n this.updateSkillLevels();\n\n const content = (\n <>\n You worked for {convertTimeMsToTimeElapsedString(this.timeWorked)}\n \n \n You earned a total of: \n \n \n reputation for the company \n {numeralWrapper.formatExp(this.workHackExpGained)} hacking exp \n {numeralWrapper.formatExp(this.workStrExpGained)} strength exp \n {numeralWrapper.formatExp(this.workDefExpGained)} defense exp \n {numeralWrapper.formatExp(this.workDexExpGained)} dexterity exp \n {numeralWrapper.formatExp(this.workAgiExpGained)} agility exp \n {numeralWrapper.formatExp(this.workChaExpGained)} charisma exp\n \n >\n );\n if (!sing) {\n dialogBoxCreate(content);\n }\n\n this.isWorking = false;\n this.resetWorkStatus();\n\n if (sing) {\n const res =\n \"You worked for \" +\n convertTimeMsToTimeElapsedString(this.timeWorked) +\n \" and \" +\n \"earned a total of \" +\n \"$\" +\n numeralWrapper.formatMoney(this.workMoneyGained) +\n \", \" +\n numeralWrapper.formatReputation(this.workRepGained) +\n \" reputation, \" +\n numeralWrapper.formatExp(this.workHackExpGained) +\n \" hacking exp, \" +\n numeralWrapper.formatExp(this.workStrExpGained) +\n \" strength exp, \" +\n numeralWrapper.formatExp(this.workDefExpGained) +\n \" defense exp, \" +\n numeralWrapper.formatExp(this.workDexExpGained) +\n \" dexterity exp, \" +\n numeralWrapper.formatExp(this.workAgiExpGained) +\n \" agility exp, and \" +\n numeralWrapper.formatExp(this.workChaExpGained) +\n \" charisma exp\";\n return res;\n }\n return \"\";\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/* Working for Faction */\nexport function startFactionWork(this: IPlayer, faction: Faction): void {\n //Update reputation gain rate to account for faction favor\n let favorMult = 1 + faction.favor / 100;\n if (isNaN(favorMult)) {\n favorMult = 1;\n }\n this.workRepGainRate *= favorMult;\n this.workRepGainRate *= BitNodeMultipliers.FactionWorkRepGain;\n\n this.isWorking = true;\n this.workType = CONSTANTS.WorkTypeFaction;\n this.currentWorkFactionName = faction.name;\n\n this.timeNeededToCompleteWork = CONSTANTS.MillisecondsPer20Hours;\n}\n\nexport function startFactionHackWork(this: IPlayer, faction: Faction): void {\n this.resetWorkStatus(CONSTANTS.WorkTypeFaction, faction.name, CONSTANTS.FactionWorkHacking);\n\n this.workHackExpGainRate = 0.15 * this.hacking_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workRepGainRate = getHackingWorkRepGain(this, faction);\n\n this.factionWorkType = CONSTANTS.FactionWorkHacking;\n this.currentWorkFactionDescription = \"carrying out hacking contracts\";\n\n this.startFactionWork(faction);\n}\n\nexport function startFactionFieldWork(this: IPlayer, faction: Faction): void {\n this.resetWorkStatus(CONSTANTS.WorkTypeFaction, faction.name, CONSTANTS.FactionWorkField);\n\n this.workHackExpGainRate = 0.1 * this.hacking_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workStrExpGainRate = 0.1 * this.strength_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workDefExpGainRate = 0.1 * this.defense_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workDexExpGainRate = 0.1 * this.dexterity_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workAgiExpGainRate = 0.1 * this.agility_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workChaExpGainRate = 0.1 * this.charisma_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workRepGainRate = getFactionFieldWorkRepGain(this, faction);\n\n this.factionWorkType = CONSTANTS.FactionWorkField;\n this.currentWorkFactionDescription = \"carrying out field missions\";\n\n this.startFactionWork(faction);\n}\n\nexport function startFactionSecurityWork(this: IPlayer, faction: Faction): void {\n this.resetWorkStatus(CONSTANTS.WorkTypeFaction, faction.name, CONSTANTS.FactionWorkSecurity);\n\n this.workHackExpGainRate = 0.05 * this.hacking_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workStrExpGainRate = 0.15 * this.strength_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workDefExpGainRate = 0.15 * this.defense_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workDexExpGainRate = 0.15 * this.dexterity_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workAgiExpGainRate = 0.15 * this.agility_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workChaExpGainRate = 0.0 * this.charisma_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.workRepGainRate = getFactionSecurityWorkRepGain(this, faction);\n\n this.factionWorkType = CONSTANTS.FactionWorkSecurity;\n this.currentWorkFactionDescription = \"performing security detail\";\n\n this.startFactionWork(faction);\n}\n\nexport function workForFaction(this: IPlayer, numCycles: number): boolean {\n const faction = Factions[this.currentWorkFactionName];\n\n if (!faction) {\n return false;\n }\n\n //Constantly update the rep gain rate\n switch (this.factionWorkType) {\n case CONSTANTS.FactionWorkHacking:\n this.workRepGainRate = getHackingWorkRepGain(this, faction);\n break;\n case CONSTANTS.FactionWorkField:\n this.workRepGainRate = getFactionFieldWorkRepGain(this, faction);\n break;\n case CONSTANTS.FactionWorkSecurity:\n this.workRepGainRate = getFactionSecurityWorkRepGain(this, faction);\n break;\n default:\n break;\n }\n this.workRepGainRate *= BitNodeMultipliers.FactionWorkRepGain;\n\n //Cap the number of cycles being processed to whatever would put you at limit (20 hours)\n let overMax = false;\n if (this.timeWorked + CONSTANTS._idleSpeed * numCycles >= CONSTANTS.MillisecondsPer20Hours) {\n overMax = true;\n numCycles = Math.round((CONSTANTS.MillisecondsPer20Hours - this.timeWorked) / CONSTANTS._idleSpeed);\n }\n this.timeWorked += CONSTANTS._idleSpeed * numCycles;\n\n this.processWorkEarnings(numCycles);\n\n //If timeWorked == 20 hours, then finish. You can only work for the faction for 20 hours\n if (overMax || this.timeWorked >= CONSTANTS.MillisecondsPer20Hours) {\n this.finishFactionWork(false);\n return true;\n }\n return false;\n}\n\nexport function finishFactionWork(this: IPlayer, cancelled: boolean, sing = false): string {\n const faction = Factions[this.currentWorkFactionName];\n faction.playerReputation += this.workRepGained;\n\n this.updateSkillLevels();\n\n if (!sing) {\n dialogBoxCreate(\n <>\n You worked for your faction {faction.name} for a total of {convertTimeMsToTimeElapsedString(this.timeWorked)}{\" \"}\n \n \n You earned a total of: \n \n \n reputation for the faction \n {numeralWrapper.formatExp(this.workHackExpGained)} hacking exp \n {numeralWrapper.formatExp(this.workStrExpGained)} strength exp \n {numeralWrapper.formatExp(this.workDefExpGained)} defense exp \n {numeralWrapper.formatExp(this.workDexExpGained)} dexterity exp \n {numeralWrapper.formatExp(this.workAgiExpGained)} agility exp \n {numeralWrapper.formatExp(this.workChaExpGained)} charisma exp\n \n >,\n );\n }\n\n this.isWorking = false;\n this.resetWorkStatus();\n if (sing) {\n const res =\n \"You worked for your faction \" +\n faction.name +\n \" for a total of \" +\n convertTimeMsToTimeElapsedString(this.timeWorked) +\n \". \" +\n \"You earned \" +\n numeralWrapper.formatReputation(this.workRepGained) +\n \" rep, \" +\n numeralWrapper.formatExp(this.workHackExpGained) +\n \" hacking exp, \" +\n numeralWrapper.formatExp(this.workStrExpGained) +\n \" str exp, \" +\n numeralWrapper.formatExp(this.workDefExpGained) +\n \" def exp, \" +\n numeralWrapper.formatExp(this.workDexExpGained) +\n \" dex exp, \" +\n numeralWrapper.formatExp(this.workAgiExpGained) +\n \" agi exp, and \" +\n numeralWrapper.formatExp(this.workChaExpGained) +\n \" cha exp.\";\n\n return res;\n }\n return \"\";\n}\n\n//Money gained per game cycle\nexport function getWorkMoneyGain(this: IPlayer): number {\n // If player has SF-11, calculate salary multiplier from favor\n let bn11Mult = 1;\n const company = Companies[this.companyName];\n if (this.sourceFileLvl(11) > 0) {\n bn11Mult = 1 + company.favor / 100;\n }\n\n // Get base salary\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (companyPosition == null) {\n console.error(`Could not find CompanyPosition object for ${companyPositionName}. Work salary will be 0`);\n return 0;\n }\n\n return (\n companyPosition.baseSalary *\n company.salaryMultiplier *\n this.work_money_mult *\n BitNodeMultipliers.CompanyWorkMoney *\n bn11Mult\n );\n}\n\n//Hack exp gained per game cycle\nexport function getWorkHackExpGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work hack exp gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n return (\n companyPosition.hackingExpGain *\n company.expMultiplier *\n this.hacking_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain\n );\n}\n\n//Str exp gained per game cycle\nexport function getWorkStrExpGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work str exp gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n return (\n companyPosition.strengthExpGain *\n company.expMultiplier *\n this.strength_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain\n );\n}\n\n//Def exp gained per game cycle\nexport function getWorkDefExpGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work def exp gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n return (\n companyPosition.defenseExpGain *\n company.expMultiplier *\n this.defense_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain\n );\n}\n\n//Dex exp gained per game cycle\nexport function getWorkDexExpGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work dex exp gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n return (\n companyPosition.dexterityExpGain *\n company.expMultiplier *\n this.dexterity_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain\n );\n}\n\n//Agi exp gained per game cycle\nexport function getWorkAgiExpGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work agi exp gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n return (\n companyPosition.agilityExpGain *\n company.expMultiplier *\n this.agility_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain\n );\n}\n\n//Charisma exp gained per game cycle\nexport function getWorkChaExpGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work cha exp gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n return (\n companyPosition.charismaExpGain *\n company.expMultiplier *\n this.charisma_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain\n );\n}\n\n//Reputation gained per game cycle\nexport function getWorkRepGain(this: IPlayer): number {\n const company = Companies[this.companyName];\n const companyPositionName = this.jobs[this.companyName];\n const companyPosition = CompanyPositions[companyPositionName];\n if (company == null || companyPosition == null) {\n console.error(\n [\n `Could not find Company object for ${this.companyName}`,\n `or CompanyPosition object for ${companyPositionName}.`,\n `Work rep gain will be 0`,\n ].join(\" \"),\n );\n return 0;\n }\n\n let jobPerformance = companyPosition.calculateJobPerformance(\n this.hacking,\n this.strength,\n this.defense,\n this.dexterity,\n this.agility,\n this.charisma,\n );\n\n //Intelligence provides a flat bonus to job performance\n jobPerformance += this.intelligence / CONSTANTS.MaxSkillLevel;\n\n //Update reputation gain rate to account for company favor\n let favorMult = 1 + company.favor / 100;\n if (isNaN(favorMult)) {\n favorMult = 1;\n }\n return jobPerformance * this.company_rep_mult * favorMult;\n}\n\n// export function getFactionSecurityWorkRepGain(this: IPlayer) {\n// var t = 0.9 * (this.hacking / CONSTANTS.MaxSkillLevel +\n// this.strength / CONSTANTS.MaxSkillLevel +\n// this.defense / CONSTANTS.MaxSkillLevel +\n// this.dexterity / CONSTANTS.MaxSkillLevel +\n// this.agility / CONSTANTS.MaxSkillLevel) / 4.5;\n// return t * this.faction_rep_mult;\n// }\n\n// export function getFactionFieldWorkRepGain(this: IPlayer) {\n// var t = 0.9 * (this.hacking / CONSTANTS.MaxSkillLevel +\n// this.strength / CONSTANTS.MaxSkillLevel +\n// this.defense / CONSTANTS.MaxSkillLevel +\n// this.dexterity / CONSTANTS.MaxSkillLevel +\n// this.agility / CONSTANTS.MaxSkillLevel +\n// this.charisma / CONSTANTS.MaxSkillLevel +\n// this.intelligence / CONSTANTS.MaxSkillLevel) / 5.5;\n// return t * this.faction_rep_mult;\n// }\n\n/* Creating a Program */\nexport function startCreateProgramWork(this: IPlayer, programName: string, time: number, reqLevel: number): void {\n this.resetWorkStatus();\n this.isWorking = true;\n this.workType = CONSTANTS.WorkTypeCreateProgram;\n\n //Time needed to complete work affected by hacking skill (linearly based on\n //ratio of (your skill - required level) to MAX skill)\n //var timeMultiplier = (CONSTANTS.MaxSkillLevel - (this.hacking - reqLevel)) / CONSTANTS.MaxSkillLevel;\n //if (timeMultiplier > 1) {timeMultiplier = 1;}\n //if (timeMultiplier < 0.01) {timeMultiplier = 0.01;}\n this.createProgramReqLvl = reqLevel;\n\n this.timeNeededToCompleteWork = time;\n //Check for incomplete program\n for (let i = 0; i < this.getHomeComputer().programs.length; ++i) {\n const programFile = this.getHomeComputer().programs[i];\n if (programFile.startsWith(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.timeWorkedCreateProgram = (percComplete / 100) * this.timeNeededToCompleteWork;\n this.getHomeComputer().programs.splice(i, 1);\n }\n }\n\n this.createProgramName = programName;\n}\n\nexport function createProgramWork(this: IPlayer, numCycles: number): boolean {\n let focusBonus = 1;\n if (!this.hasAugmentation(AugmentationNames[\"NeuroreceptorManager\"])) {\n focusBonus = this.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n //Higher hacking skill will allow you to create programs faster\n const reqLvl = this.createProgramReqLvl;\n let skillMult = (this.hacking / reqLvl) * this.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.timeWorked += CONSTANTS._idleSpeed * numCycles;\n this.timeWorkedCreateProgram += CONSTANTS._idleSpeed * numCycles * skillMult;\n\n if (this.timeWorkedCreateProgram >= this.timeNeededToCompleteWork) {\n this.finishCreateProgramWork(false);\n return true;\n }\n return false;\n}\n\nexport function finishCreateProgramWork(this: IPlayer, cancelled: boolean): string {\n const programName = this.createProgramName;\n if (!cancelled) {\n //Complete case\n this.gainIntelligenceExp((CONSTANTS.IntelligenceProgramBaseExpGain * this.timeWorked) / 1000);\n dialogBoxCreate(`You've finished creating ${programName}! The new program can be found on your home computer.`);\n\n if (!this.getHomeComputer().programs.includes(programName)) {\n this.getHomeComputer().programs.push(programName);\n }\n } else if (!this.getHomeComputer().programs.includes(programName)) {\n //Incomplete case\n const perc = (Math.floor((this.timeWorkedCreateProgram / this.timeNeededToCompleteWork) * 10000) / 100).toString();\n const incompleteName = programName + \"-\" + perc + \"%-INC\";\n this.getHomeComputer().programs.push(incompleteName);\n }\n\n this.isWorking = false;\n\n this.resetWorkStatus();\n return \"You've finished creating \" + programName + \"! The new program can be found on your home computer.\";\n}\n\nexport function startGraftAugmentationWork(this: IPlayer, augmentationName: string, time: number): void {\n this.resetWorkStatus();\n this.isWorking = true;\n this.workType = CONSTANTS.WorkTypeGraftAugmentation;\n\n this.timeNeededToCompleteWork = time;\n this.graftAugmentationName = augmentationName;\n}\n\nexport function craftAugmentationWork(this: IPlayer, numCycles: number): boolean {\n let focusBonus = 1;\n if (!this.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {\n focusBonus = this.focus ? 1 : CONSTANTS.BaseFocusBonus;\n }\n\n let skillMult = 1 + (this.getIntelligenceBonus(3) - 1) / 3;\n skillMult *= focusBonus;\n\n this.timeWorked += CONSTANTS._idleSpeed * numCycles;\n this.timeWorkedGraftAugmentation += CONSTANTS._idleSpeed * numCycles * skillMult;\n\n if (this.timeWorkedGraftAugmentation >= this.timeNeededToCompleteWork) {\n this.finishGraftAugmentationWork(false);\n return true;\n }\n return false;\n}\n\nexport function finishGraftAugmentationWork(this: IPlayer, cancelled: boolean): string {\n const augName = this.graftAugmentationName;\n if (cancelled === false) {\n applyAugmentation(Augmentations[augName]);\n\n if (!this.hasAugmentation(AugmentationNames.CongruityImplant)) {\n this.entropy += 1;\n this.applyEntropy(this.entropy);\n }\n\n dialogBoxCreate(\n `You've finished grafting ${augName}. The augmentation has been applied to your body` +\n (this.hasAugmentation(AugmentationNames.CongruityImplant) ? \".\" : \", but you feel a bit off.\"),\n );\n } else {\n dialogBoxCreate(`You cancelled the grafting of ${augName}. Your money was not returned to you.`);\n }\n\n // Intelligence gain\n if (!cancelled) {\n this.gainIntelligenceExp((CONSTANTS.IntelligenceGraftBaseExpGain * this.timeWorked) / 10000);\n }\n\n this.isWorking = false;\n this.resetWorkStatus();\n return `Grafting of ${augName} has ended.`;\n}\n\n/* Studying/Taking Classes */\nexport function startClass(this: IPlayer, costMult: number, expMult: number, className: string): void {\n this.resetWorkStatus();\n this.isWorking = true;\n this.workType = CONSTANTS.WorkTypeStudyClass;\n this.workCostMult = costMult;\n this.workExpMult = expMult;\n this.className = className;\n const earnings = calculateClassEarnings(this);\n this.workMoneyLossRate = earnings.workMoneyLossRate;\n this.workHackExpGainRate = earnings.workHackExpGainRate;\n this.workStrExpGainRate = earnings.workStrExpGainRate;\n this.workDefExpGainRate = earnings.workDefExpGainRate;\n this.workDexExpGainRate = earnings.workDexExpGainRate;\n this.workAgiExpGainRate = earnings.workAgiExpGainRate;\n this.workChaExpGainRate = earnings.workChaExpGainRate;\n}\n\nexport function takeClass(this: IPlayer, numCycles: number): boolean {\n this.timeWorked += CONSTANTS._idleSpeed * numCycles;\n const earnings = calculateClassEarnings(this);\n this.workMoneyLossRate = earnings.workMoneyLossRate;\n this.workHackExpGainRate = earnings.workHackExpGainRate;\n this.workStrExpGainRate = earnings.workStrExpGainRate;\n this.workDefExpGainRate = earnings.workDefExpGainRate;\n this.workDexExpGainRate = earnings.workDexExpGainRate;\n this.workAgiExpGainRate = earnings.workAgiExpGainRate;\n this.workChaExpGainRate = earnings.workChaExpGainRate;\n this.processWorkEarnings(numCycles);\n return false;\n}\n\n//The 'sing' argument defines whether or not this function was called\n//through a Singularity Netscript function\nexport function finishClass(this: IPlayer, sing = false): string {\n this.gainIntelligenceExp(CONSTANTS.IntelligenceClassBaseExpGain * Math.round(this.timeWorked / 1000));\n\n if (this.workMoneyGained > 0) {\n throw new Error(\"ERR: Somehow gained money while taking class\");\n }\n\n this.updateSkillLevels();\n if (!sing) {\n dialogBoxCreate(\n <>\n After {this.className} for {convertTimeMsToTimeElapsedString(this.timeWorked)}, \n you spent a total of . \n \n You earned a total of: \n {numeralWrapper.formatExp(this.workHackExpGained)} hacking exp \n {numeralWrapper.formatExp(this.workStrExpGained)} strength exp \n {numeralWrapper.formatExp(this.workDefExpGained)} defense exp \n {numeralWrapper.formatExp(this.workDexExpGained)} dexterity exp \n {numeralWrapper.formatExp(this.workAgiExpGained)} agility exp \n {numeralWrapper.formatExp(this.workChaExpGained)} charisma exp\n \n >,\n );\n }\n\n this.isWorking = false;\n\n if (sing) {\n const res =\n \"After \" +\n this.className +\n \" for \" +\n convertTimeMsToTimeElapsedString(this.timeWorked) +\n \", \" +\n \"you spent a total of \" +\n numeralWrapper.formatMoney(this.workMoneyGained * -1) +\n \". \" +\n \"You earned a total of: \" +\n numeralWrapper.formatExp(this.workHackExpGained) +\n \" hacking exp, \" +\n numeralWrapper.formatExp(this.workStrExpGained) +\n \" strength exp, \" +\n numeralWrapper.formatExp(this.workDefExpGained) +\n \" defense exp, \" +\n numeralWrapper.formatExp(this.workDexExpGained) +\n \" dexterity exp, \" +\n numeralWrapper.formatExp(this.workAgiExpGained) +\n \" agility exp, and \" +\n numeralWrapper.formatExp(this.workChaExpGained) +\n \" charisma exp\";\n this.resetWorkStatus();\n return res;\n }\n this.resetWorkStatus();\n return \"\";\n}\n\n//The EXP and $ gains are hardcoded. Time is in ms\nexport function startCrime(\n this: IPlayer,\n router: IRouter,\n crimeType: string,\n hackExp: number,\n strExp: number,\n defExp: number,\n dexExp: number,\n agiExp: number,\n chaExp: number,\n money: number,\n time: number,\n workerscript: WorkerScript | null = null,\n): void {\n this.crimeType = crimeType;\n\n this.resetWorkStatus();\n this.isWorking = true;\n this.focus = true;\n this.workType = CONSTANTS.WorkTypeCrime;\n\n if (workerscript !== null) {\n this.committingCrimeThruSingFn = true;\n this.singFnCrimeWorkerScript = workerscript;\n }\n\n this.workHackExpGained = hackExp * this.hacking_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.workStrExpGained = strExp * this.strength_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.workDefExpGained = defExp * this.defense_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.workDexExpGained = dexExp * this.dexterity_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.workAgiExpGained = agiExp * this.agility_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.workChaExpGained = chaExp * this.charisma_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.workMoneyGained = money * this.crime_money_mult * BitNodeMultipliers.CrimeMoney;\n\n this.timeNeededToCompleteWork = time;\n router.toWork();\n}\n\nexport function commitCrime(this: IPlayer, numCycles: number): boolean {\n this.timeWorked += CONSTANTS._idleSpeed * numCycles;\n\n if (this.timeWorked >= this.timeNeededToCompleteWork) {\n this.finishCrime(false);\n return true;\n }\n return false;\n}\n\nexport function finishCrime(this: IPlayer, cancelled: boolean): string {\n //Determine crime success/failure\n if (!cancelled) {\n if (determineCrimeSuccess(this, this.crimeType)) {\n //Handle Karma and crime statistics\n let crime = null;\n for (const i of Object.keys(Crimes)) {\n if (Crimes[i].type == this.crimeType) {\n crime = Crimes[i];\n break;\n }\n }\n if (crime == null) {\n dialogBoxCreate(\n `ERR: Unrecognized crime type (${this.crimeType}). This is probably a bug please contact the developer`,\n );\n return \"\";\n }\n this.gainMoney(this.workMoneyGained, \"crime\");\n this.karma -= crime.karma;\n this.numPeopleKilled += crime.kills;\n if (crime.intelligence_exp > 0) {\n this.gainIntelligenceExp(crime.intelligence_exp);\n }\n\n //On a crime success, gain 2x exp\n this.workHackExpGained *= 2;\n this.workStrExpGained *= 2;\n this.workDefExpGained *= 2;\n this.workDexExpGained *= 2;\n this.workAgiExpGained *= 2;\n this.workChaExpGained *= 2;\n const ws = this.singFnCrimeWorkerScript;\n if (this.committingCrimeThruSingFn && ws !== null) {\n if (ws.disableLogs.ALL == null && ws.disableLogs.commitCrime == null) {\n ws.scriptRef.log(\n \"SUCCESS: Crime successful! Gained \" +\n numeralWrapper.formatMoney(this.workMoneyGained) +\n \", \" +\n numeralWrapper.formatExp(this.workHackExpGained) +\n \" hack exp, \" +\n numeralWrapper.formatExp(this.workStrExpGained) +\n \" str exp, \" +\n numeralWrapper.formatExp(this.workDefExpGained) +\n \" def exp, \" +\n numeralWrapper.formatExp(this.workDexExpGained) +\n \" dex exp, \" +\n numeralWrapper.formatExp(this.workAgiExpGained) +\n \" agi exp, \" +\n numeralWrapper.formatExp(this.workChaExpGained) +\n \" cha exp.\",\n );\n }\n } else {\n dialogBoxCreate(\n <>\n Crime successful!\n \n \n You gained:\n \n \n \n {numeralWrapper.formatExp(this.workHackExpGained)} hacking experience \n {numeralWrapper.formatExp(this.workStrExpGained)} strength experience\n \n {numeralWrapper.formatExp(this.workDefExpGained)} defense experience\n \n {numeralWrapper.formatExp(this.workDexExpGained)} dexterity experience\n \n {numeralWrapper.formatExp(this.workAgiExpGained)} agility experience\n \n {numeralWrapper.formatExp(this.workChaExpGained)} charisma experience\n >,\n );\n }\n } else {\n //Exp halved on failure\n this.workHackExpGained /= 2;\n this.workStrExpGained /= 2;\n this.workDefExpGained /= 2;\n this.workDexExpGained /= 2;\n this.workAgiExpGained /= 2;\n this.workChaExpGained /= 2;\n const ws = this.singFnCrimeWorkerScript;\n if (this.committingCrimeThruSingFn && ws !== null) {\n if (ws.disableLogs.ALL == null && ws.disableLogs.commitCrime == null) {\n ws.scriptRef.log(\n \"FAIL: Crime failed! Gained \" +\n numeralWrapper.formatExp(this.workHackExpGained) +\n \" hack exp, \" +\n numeralWrapper.formatExp(this.workStrExpGained) +\n \" str exp, \" +\n numeralWrapper.formatExp(this.workDefExpGained) +\n \" def exp, \" +\n numeralWrapper.formatExp(this.workDexExpGained) +\n \" dex exp, \" +\n numeralWrapper.formatExp(this.workAgiExpGained) +\n \" agi exp, \" +\n numeralWrapper.formatExp(this.workChaExpGained) +\n \" cha exp.\",\n );\n }\n } else {\n dialogBoxCreate(\n <>\n Crime failed!\n \n \n You gained:\n \n {numeralWrapper.formatExp(this.workHackExpGained)} hacking experience \n {numeralWrapper.formatExp(this.workStrExpGained)} strength experience\n \n {numeralWrapper.formatExp(this.workDefExpGained)} defense experience\n \n {numeralWrapper.formatExp(this.workDexExpGained)} dexterity experience\n \n {numeralWrapper.formatExp(this.workAgiExpGained)} agility experience\n \n {numeralWrapper.formatExp(this.workChaExpGained)} charisma experience\n >,\n );\n }\n }\n\n this.gainHackingExp(this.workHackExpGained);\n this.gainStrengthExp(this.workStrExpGained);\n this.gainDefenseExp(this.workDefExpGained);\n this.gainDexterityExp(this.workDexExpGained);\n this.gainAgilityExp(this.workAgiExpGained);\n this.gainCharismaExp(this.workChaExpGained);\n }\n this.committingCrimeThruSingFn = false;\n this.singFnCrimeWorkerScript = null;\n this.isWorking = false;\n this.crimeType = \"\";\n this.resetWorkStatus();\n return \"\";\n}\n\n//Cancels the player's current \"work\" assignment and gives the proper rewards\n//Used only for Singularity functions, so no popups are created\nexport function singularityStopWork(this: IPlayer): string {\n if (!this.isWorking) {\n return \"\";\n }\n let res = \"\"; //Earnings text for work\n switch (this.workType) {\n case CONSTANTS.WorkTypeStudyClass:\n res = this.finishClass(true);\n break;\n case CONSTANTS.WorkTypeCompany:\n res = this.finishWork(true, true);\n break;\n case CONSTANTS.WorkTypeCompanyPartTime:\n res = this.finishWorkPartTime(true);\n break;\n case CONSTANTS.WorkTypeFaction:\n res = this.finishFactionWork(true, true);\n break;\n case CONSTANTS.WorkTypeCreateProgram:\n res = this.finishCreateProgramWork(true);\n break;\n case CONSTANTS.WorkTypeCrime:\n res = this.finishCrime(true);\n break;\n default:\n console.error(`Unrecognized work type (${this.workType})`);\n return \"\";\n }\n return res;\n}\n\n// Returns true if hospitalized, false otherwise\nexport function takeDamage(this: IPlayer, amt: number): boolean {\n if (typeof amt !== \"number\") {\n console.warn(`Player.takeDamage() called without a numeric argument: ${amt}`);\n return false;\n }\n\n this.hp -= amt;\n if (this.hp <= 0) {\n this.hospitalize();\n return true;\n } else {\n return false;\n }\n}\n\nexport function regenerateHp(this: IPlayer, amt: number): void {\n if (typeof amt !== \"number\") {\n console.warn(`Player.regenerateHp() called without a numeric argument: ${amt}`);\n return;\n }\n this.hp += amt;\n if (this.hp > this.max_hp) {\n this.hp = this.max_hp;\n }\n}\n\nexport function hospitalize(this: IPlayer): number {\n const cost = getHospitalizationCost(this);\n SnackbarEvents.emit(`You've been Hospitalized for ${numeralWrapper.formatMoney(cost)}`, ToastVariant.WARNING, 2000);\n\n this.loseMoney(cost, \"hospitalization\");\n this.hp = this.max_hp;\n return cost;\n}\n\n/********* Company job application **********/\n//Determines the job that the Player should get (if any) at the current company\n//The 'sing' argument designates whether or not this is being called from\n//the applyToCompany() Netscript Singularity function\nexport function applyForJob(this: IPlayer, entryPosType: CompanyPosition, sing = false): boolean {\n // Get current company and job\n let currCompany = null;\n if (this.companyName !== \"\") {\n currCompany = Companies[this.companyName];\n }\n const currPositionName = this.jobs[this.companyName];\n\n // Get company that's being applied to\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 const reqText = getJobRequirementText(company, pos);\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position \" + reqText);\n }\n return false;\n }\n\n // Check if this company has the position\n if (!company.hasPosition(pos)) {\n return false;\n }\n\n while (true) {\n const newPos = getNextCompanyPositionHelper(pos);\n if (newPos == null) {\n break;\n }\n\n //Check if this company has this position\n if (company.hasPosition(newPos)) {\n if (!this.isQualified(company, newPos)) {\n //If player not qualified for next job, break loop so player will be given current job\n break;\n }\n pos = newPos;\n } else {\n break;\n }\n }\n\n //Check if the determined job is the same as the player's current job\n if (currCompany != null) {\n if (currCompany.name == company.name && pos.name == currPositionName) {\n const nextPos = getNextCompanyPositionHelper(pos);\n if (nextPos == null) {\n if (!sing) {\n dialogBoxCreate(\"You are already at the highest position for your field! No promotion available\");\n }\n return false;\n } else if (company.hasPosition(nextPos)) {\n if (!sing) {\n const reqText = getJobRequirementText(company, nextPos);\n dialogBoxCreate(\"Unfortunately, you do not qualify for a promotion \" + reqText);\n }\n return false;\n } else {\n if (!sing) {\n dialogBoxCreate(\"You are already at the highest position for your field! No promotion available\");\n }\n return false;\n }\n }\n }\n\n this.jobs[company.name] = pos.name;\n if (!this.focus && this.isWorking && this.companyName !== this.location) this.resetWorkStatus();\n this.companyName = this.location;\n\n if (!sing) {\n dialogBoxCreate(\"Congratulations! You were offered a new job at \" + this.companyName + \" 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 let currCompany = null;\n if (this.companyName !== \"\") {\n currCompany = Companies[this.companyName];\n }\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[this.companyName];\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 (this.isWorking == true && this.workType.includes(\"Working for Company\") && this.companyName == company) {\n this.finishWork(true);\n }\n delete this.jobs[company];\n if (this.companyName === company) {\n this.companyName = this.hasJob() ? Object.keys(this.jobs)[0] : \"\";\n }\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 if (!this.focus && this.isWorking && this.companyName !== company.name) this.resetWorkStatus();\n this.companyName = company.name;\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 (!this.focus && this.isWorking && this.companyName !== company.name) this.resetWorkStatus();\n this.companyName = company.name;\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 (!this.focus && this.isWorking && this.companyName !== company.name) this.resetWorkStatus();\n this.companyName = company.name;\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 (!this.focus && this.isWorking && this.companyName !== company.name) this.resetWorkStatus();\n this.companyName = company.name;\n if (!sing) {\n dialogBoxCreate(\"Congratulations, you are now employed as a part-time waiter at \" + this.location);\n }\n return true;\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\n//Checks if the Player is qualified for a certain position\nexport function isQualified(this: IPlayer, company: Company, position: CompanyPosition): boolean {\n const offset = company.jobStatReqOffset;\n const reqHacking = position.requiredHacking > 0 ? position.requiredHacking + offset : 0;\n const reqStrength = position.requiredStrength > 0 ? position.requiredStrength + offset : 0;\n const reqDefense = position.requiredDefense > 0 ? position.requiredDefense + offset : 0;\n const reqDexterity = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqAgility = position.requiredDexterity > 0 ? position.requiredDexterity + offset : 0;\n const reqCharisma = position.requiredCharisma > 0 ? position.requiredCharisma + offset : 0;\n\n return (\n this.hacking >= reqHacking &&\n this.strength >= reqStrength &&\n this.defense >= reqDefense &&\n this.dexterity >= reqDexterity &&\n this.agility >= reqAgility &&\n this.charisma >= reqCharisma &&\n company.playerReputation >= position.requiredReputation\n );\n}\n\n/********** Reapplying Augmentations and Source File ***********/\nexport function reapplyAllAugmentations(this: IPlayer, resetMultipliers = true): void {\n if (resetMultipliers) {\n this.resetMultipliers();\n }\n\n for (let i = 0; i < this.augmentations.length; ++i) {\n //Compatibility with new version\n if (this.augmentations[i].name === \"HacknetNode NIC Architecture Neural-Upload\") {\n this.augmentations[i].name = \"Hacknet Node NIC Architecture Neural-Upload\";\n }\n\n const playerAug = this.augmentations[i];\n const augName = playerAug.name;\n\n if (augName == AugmentationNames.NeuroFluxGovernor) {\n for (let j = 0; j < playerAug.level; ++j) {\n applyAugmentation(this.augmentations[i], true);\n }\n continue;\n }\n applyAugmentation(this.augmentations[i], true);\n }\n\n this.updateSkillLevels();\n}\n\nexport function reapplyAllSourceFiles(this: IPlayer): void {\n //Will always be called after reapplyAllAugmentations() so multipliers do not have to be reset\n //this.resetMultipliers();\n\n for (let i = 0; i < this.sourceFiles.length; ++i) {\n const srcFileKey = \"SourceFile\" + this.sourceFiles[i].n;\n const sourceFileObject = SourceFiles[srcFileKey];\n if (sourceFileObject == null) {\n console.error(`Invalid source file number: ${this.sourceFiles[i].n}`);\n continue;\n }\n applySourceFile(this.sourceFiles[i]);\n }\n applyExploit();\n this.updateSkillLevels();\n}\n\n/*************** Check for Faction Invitations *************/\n//This function sets the requirements to join a Faction. It checks whether the Player meets\n//those requirements and will return an array of all factions that the Player should\n//receive an invitation to\nexport function checkForFactionInvitations(this: IPlayer): Faction[] {\n const invitedFactions: Faction[] = []; //Array which will hold all Factions the player should be invited to\n\n const numAugmentations = this.augmentations.length;\n\n const allCompanies = Object.keys(this.jobs);\n const allPositions = Object.values(this.jobs);\n\n // Given a company name, safely returns the reputation (returns 0 if invalid company is specified)\n function getCompanyRep(companyName: string): number {\n const company = Companies[companyName];\n if (company == null) {\n return 0;\n } else {\n return company.playerReputation;\n }\n }\n\n // Helper function that returns a boolean indicating whether the Player meets\n // the requirements for the specified company. There are two requirements:\n // 1. High enough reputation\n // 2. Player is employed at the company\n function checkMegacorpRequirements(companyName: string, repNeeded = CONSTANTS.CorpFactionRepRequirement): boolean {\n return allCompanies.includes(companyName) && getCompanyRep(companyName) > repNeeded;\n }\n\n //Illuminati\n const illuminatiFac = Factions[FactionNames.Illuminati];\n if (\n !illuminatiFac.isBanned &&\n !illuminatiFac.isMember &&\n !illuminatiFac.alreadyInvited &&\n numAugmentations >= 30 &&\n this.money >= 150000000000 &&\n this.hacking >= 1500 &&\n this.strength >= 1200 &&\n this.defense >= 1200 &&\n this.dexterity >= 1200 &&\n this.agility >= 1200\n ) {\n invitedFactions.push(illuminatiFac);\n }\n\n //Daedalus\n const daedalusFac = Factions[FactionNames.Daedalus];\n if (\n !daedalusFac.isBanned &&\n !daedalusFac.isMember &&\n !daedalusFac.alreadyInvited &&\n numAugmentations >= BitNodeMultipliers.DaedalusAugsRequirement &&\n this.money >= 100000000000 &&\n (this.hacking >= 2500 ||\n (this.strength >= 1500 && this.defense >= 1500 && this.dexterity >= 1500 && this.agility >= 1500))\n ) {\n invitedFactions.push(daedalusFac);\n }\n\n //The Covenant\n const covenantFac = Factions[FactionNames.TheCovenant];\n if (\n !covenantFac.isBanned &&\n !covenantFac.isMember &&\n !covenantFac.alreadyInvited &&\n numAugmentations >= 20 &&\n this.money >= 75000000000 &&\n this.hacking >= 850 &&\n this.strength >= 850 &&\n this.defense >= 850 &&\n this.dexterity >= 850 &&\n this.agility >= 850\n ) {\n invitedFactions.push(covenantFac);\n }\n\n //ECorp\n const ecorpFac = Factions[FactionNames.ECorp];\n if (\n !ecorpFac.isBanned &&\n !ecorpFac.isMember &&\n !ecorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumECorp)\n ) {\n invitedFactions.push(ecorpFac);\n }\n\n //MegaCorp\n const megacorpFac = Factions[FactionNames.MegaCorp];\n if (\n !megacorpFac.isBanned &&\n !megacorpFac.isMember &&\n !megacorpFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12MegaCorp)\n ) {\n invitedFactions.push(megacorpFac);\n }\n\n //Bachman & Associates\n const bachmanandassociatesFac = Factions[FactionNames.BachmanAssociates];\n if (\n !bachmanandassociatesFac.isBanned &&\n !bachmanandassociatesFac.isMember &&\n !bachmanandassociatesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumBachmanAndAssociates)\n ) {\n invitedFactions.push(bachmanandassociatesFac);\n }\n\n //Blade Industries\n const bladeindustriesFac = Factions[FactionNames.BladeIndustries];\n if (\n !bladeindustriesFac.isBanned &&\n !bladeindustriesFac.isMember &&\n !bladeindustriesFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12BladeIndustries)\n ) {\n invitedFactions.push(bladeindustriesFac);\n }\n\n //NWO\n const nwoFac = Factions[FactionNames.NWO];\n if (\n !nwoFac.isBanned &&\n !nwoFac.isMember &&\n !nwoFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenNWO)\n ) {\n invitedFactions.push(nwoFac);\n }\n\n //Clarke Incorporated\n const clarkeincorporatedFac = Factions[FactionNames.ClarkeIncorporated];\n if (\n !clarkeincorporatedFac.isBanned &&\n !clarkeincorporatedFac.isMember &&\n !clarkeincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.AevumClarkeIncorporated)\n ) {\n invitedFactions.push(clarkeincorporatedFac);\n }\n\n //OmniTek Incorporated\n const omnitekincorporatedFac = Factions[FactionNames.OmniTekIncorporated];\n if (\n !omnitekincorporatedFac.isBanned &&\n !omnitekincorporatedFac.isMember &&\n !omnitekincorporatedFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.VolhavenOmniTekIncorporated)\n ) {\n invitedFactions.push(omnitekincorporatedFac);\n }\n\n //Four Sigma\n const foursigmaFac = Factions[FactionNames.FourSigma];\n if (\n !foursigmaFac.isBanned &&\n !foursigmaFac.isMember &&\n !foursigmaFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.Sector12FourSigma)\n ) {\n invitedFactions.push(foursigmaFac);\n }\n\n //KuaiGong International\n const kuaigonginternationalFac = Factions[FactionNames.KuaiGongInternational];\n if (\n !kuaigonginternationalFac.isBanned &&\n !kuaigonginternationalFac.isMember &&\n !kuaigonginternationalFac.alreadyInvited &&\n checkMegacorpRequirements(LocationName.ChongqingKuaiGongInternational)\n ) {\n invitedFactions.push(kuaigonginternationalFac);\n }\n\n //Fulcrum Secret Technologies - If u've unlocked fulcrum secret technolgoies server and have a high rep with the company\n const fulcrumsecrettechonologiesFac = Factions[FactionNames.FulcrumSecretTechnologies];\n const fulcrumSecretServer = GetServer(SpecialServers.FulcrumSecretTechnologies);\n if (!(fulcrumSecretServer instanceof Server))\n throw new Error(`${FactionNames.FulcrumSecretTechnologies} should be normal server`);\n if (fulcrumSecretServer == null) {\n console.error(`Could not find ${FactionNames.FulcrumSecretTechnologies} Server`);\n } else if (\n !fulcrumsecrettechonologiesFac.isBanned &&\n !fulcrumsecrettechonologiesFac.isMember &&\n !fulcrumsecrettechonologiesFac.alreadyInvited &&\n fulcrumSecretServer.backdoorInstalled &&\n checkMegacorpRequirements(LocationName.AevumFulcrumTechnologies, 250e3)\n ) {\n invitedFactions.push(fulcrumsecrettechonologiesFac);\n }\n\n //BitRunners\n const bitrunnersFac = Factions[FactionNames.BitRunners];\n const bitrunnersServer = GetServer(SpecialServers.BitRunnersServer);\n if (!(bitrunnersServer instanceof Server)) throw new Error(`${FactionNames.BitRunners} should be normal server`);\n if (bitrunnersServer == null) {\n console.error(`Could not find ${FactionNames.BitRunners} Server`);\n } else if (\n !bitrunnersFac.isBanned &&\n !bitrunnersFac.isMember &&\n bitrunnersServer.backdoorInstalled &&\n !bitrunnersFac.alreadyInvited\n ) {\n invitedFactions.push(bitrunnersFac);\n }\n\n //The Black Hand\n\n const theblackhandFac = Factions[FactionNames.TheBlackHand];\n const blackhandServer = GetServer(SpecialServers.TheBlackHandServer);\n if (!(blackhandServer instanceof Server)) throw new Error(`${FactionNames.TheBlackHand} should be normal server`);\n if (blackhandServer == null) {\n console.error(`Could not find ${FactionNames.TheBlackHand} Server`);\n } else if (\n !theblackhandFac.isBanned &&\n !theblackhandFac.isMember &&\n blackhandServer.backdoorInstalled &&\n !theblackhandFac.alreadyInvited\n ) {\n invitedFactions.push(theblackhandFac);\n }\n\n //NiteSec\n const nitesecFac = Factions[FactionNames.NiteSec];\n const nitesecServer = GetServer(SpecialServers.NiteSecServer);\n if (!(nitesecServer instanceof Server)) throw new Error(`${FactionNames.NiteSec} should be normal server`);\n if (nitesecServer == null) {\n console.error(`Could not find ${FactionNames.NiteSec} Server`);\n } else if (\n !nitesecFac.isBanned &&\n !nitesecFac.isMember &&\n nitesecServer.backdoorInstalled &&\n !nitesecFac.alreadyInvited\n ) {\n invitedFactions.push(nitesecFac);\n }\n\n //Chongqing\n const chongqingFac = Factions[FactionNames.Chongqing];\n if (\n !chongqingFac.isBanned &&\n !chongqingFac.isMember &&\n !chongqingFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.Chongqing\n ) {\n invitedFactions.push(chongqingFac);\n }\n\n //Sector-12\n const sector12Fac = Factions[FactionNames.Sector12];\n if (\n !sector12Fac.isBanned &&\n !sector12Fac.isMember &&\n !sector12Fac.alreadyInvited &&\n this.money >= 15000000 &&\n this.city == CityName.Sector12\n ) {\n invitedFactions.push(sector12Fac);\n }\n\n //New Tokyo\n const newtokyoFac = Factions[FactionNames.NewTokyo];\n if (\n !newtokyoFac.isBanned &&\n !newtokyoFac.isMember &&\n !newtokyoFac.alreadyInvited &&\n this.money >= 20000000 &&\n this.city == CityName.NewTokyo\n ) {\n invitedFactions.push(newtokyoFac);\n }\n\n //Aevum\n const aevumFac = Factions[FactionNames.Aevum];\n if (\n !aevumFac.isBanned &&\n !aevumFac.isMember &&\n !aevumFac.alreadyInvited &&\n this.money >= 40000000 &&\n this.city == CityName.Aevum\n ) {\n invitedFactions.push(aevumFac);\n }\n\n //Ishima\n const ishimaFac = Factions[FactionNames.Ishima];\n if (\n !ishimaFac.isBanned &&\n !ishimaFac.isMember &&\n !ishimaFac.alreadyInvited &&\n this.money >= 30000000 &&\n this.city == CityName.Ishima\n ) {\n invitedFactions.push(ishimaFac);\n }\n\n //Volhaven\n const volhavenFac = Factions[FactionNames.Volhaven];\n if (\n !volhavenFac.isBanned &&\n !volhavenFac.isMember &&\n !volhavenFac.alreadyInvited &&\n this.money >= 50000000 &&\n this.city == CityName.Volhaven\n ) {\n invitedFactions.push(volhavenFac);\n }\n\n //Speakers for the Dead\n const speakersforthedeadFac = Factions[FactionNames.SpeakersForTheDead];\n if (\n !speakersforthedeadFac.isBanned &&\n !speakersforthedeadFac.isMember &&\n !speakersforthedeadFac.alreadyInvited &&\n this.hacking >= 100 &&\n this.strength >= 300 &&\n this.defense >= 300 &&\n this.dexterity >= 300 &&\n this.agility >= 300 &&\n this.numPeopleKilled >= 30 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(speakersforthedeadFac);\n }\n\n //The Dark Army\n const thedarkarmyFac = Factions[FactionNames.TheDarkArmy];\n if (\n !thedarkarmyFac.isBanned &&\n !thedarkarmyFac.isMember &&\n !thedarkarmyFac.alreadyInvited &&\n this.hacking >= 300 &&\n this.strength >= 300 &&\n this.defense >= 300 &&\n this.dexterity >= 300 &&\n this.agility >= 300 &&\n this.city == CityName.Chongqing &&\n this.numPeopleKilled >= 5 &&\n this.karma <= -45 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thedarkarmyFac);\n }\n\n //The Syndicate\n const thesyndicateFac = Factions[FactionNames.TheSyndicate];\n if (\n !thesyndicateFac.isBanned &&\n !thesyndicateFac.isMember &&\n !thesyndicateFac.alreadyInvited &&\n this.hacking >= 200 &&\n this.strength >= 200 &&\n this.defense >= 200 &&\n this.dexterity >= 200 &&\n this.agility >= 200 &&\n (this.city == CityName.Aevum || this.city == CityName.Sector12) &&\n this.money >= 10000000 &&\n this.karma <= -90 &&\n !allCompanies.includes(LocationName.Sector12CIA) &&\n !allCompanies.includes(LocationName.Sector12NSA)\n ) {\n invitedFactions.push(thesyndicateFac);\n }\n\n //Silhouette\n const silhouetteFac = Factions[FactionNames.Silhouette];\n if (\n !silhouetteFac.isBanned &&\n !silhouetteFac.isMember &&\n !silhouetteFac.alreadyInvited &&\n (allPositions.includes(\"Chief Technology Officer\") ||\n allPositions.includes(\"Chief Financial Officer\") ||\n allPositions.includes(\"Chief Executive Officer\")) &&\n this.money >= 15000000 &&\n this.karma <= -22\n ) {\n invitedFactions.push(silhouetteFac);\n }\n\n //Tetrads\n const tetradsFac = Factions[FactionNames.Tetrads];\n if (\n !tetradsFac.isBanned &&\n !tetradsFac.isMember &&\n !tetradsFac.alreadyInvited &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima) &&\n this.strength >= 75 &&\n this.defense >= 75 &&\n this.dexterity >= 75 &&\n this.agility >= 75 &&\n this.karma <= -18\n ) {\n invitedFactions.push(tetradsFac);\n }\n\n //SlumSnakes\n const slumsnakesFac = Factions[FactionNames.SlumSnakes];\n if (\n !slumsnakesFac.isBanned &&\n !slumsnakesFac.isMember &&\n !slumsnakesFac.alreadyInvited &&\n this.strength >= 30 &&\n this.defense >= 30 &&\n this.dexterity >= 30 &&\n this.agility >= 30 &&\n this.karma <= -9 &&\n this.money >= 1000000\n ) {\n invitedFactions.push(slumsnakesFac);\n }\n\n //Netburners\n const netburnersFac = Factions[FactionNames.Netburners];\n let totalHacknetRam = 0;\n let totalHacknetCores = 0;\n let totalHacknetLevels = 0;\n for (let i = 0; i < this.hacknetNodes.length; ++i) {\n const v = this.hacknetNodes[i];\n if (typeof v === \"string\") {\n const hserver = GetServer(v);\n if (hserver === null || !(hserver instanceof HacknetServer))\n throw new Error(\"player hacknet server was not HacknetServer\");\n totalHacknetLevels += hserver.level;\n totalHacknetRam += hserver.maxRam;\n totalHacknetCores += hserver.cores;\n } else {\n totalHacknetLevels += v.level;\n totalHacknetRam += v.ram;\n totalHacknetCores += v.cores;\n }\n }\n if (\n !netburnersFac.isBanned &&\n !netburnersFac.isMember &&\n !netburnersFac.alreadyInvited &&\n this.hacking >= 80 &&\n totalHacknetRam >= 8 &&\n totalHacknetCores >= 4 &&\n totalHacknetLevels >= 100\n ) {\n invitedFactions.push(netburnersFac);\n }\n\n //Tian Di Hui\n const tiandihuiFac = Factions[FactionNames.TianDiHui];\n if (\n !tiandihuiFac.isBanned &&\n !tiandihuiFac.isMember &&\n !tiandihuiFac.alreadyInvited &&\n this.money >= 1000000 &&\n this.hacking >= 50 &&\n (this.city == CityName.Chongqing || this.city == CityName.NewTokyo || this.city == CityName.Ishima)\n ) {\n invitedFactions.push(tiandihuiFac);\n }\n\n //CyberSec\n const cybersecFac = Factions[FactionNames.CyberSec];\n const cybersecServer = GetServer(SpecialServers.CyberSecServer);\n if (!(cybersecServer instanceof Server)) throw new Error(`${FactionNames.CyberSec} should be normal server`);\n if (cybersecServer == null) {\n console.error(`Could not find ${FactionNames.CyberSec} Server`);\n } else if (\n !cybersecFac.isBanned &&\n !cybersecFac.isMember &&\n cybersecServer.backdoorInstalled &&\n !cybersecFac.alreadyInvited\n ) {\n invitedFactions.push(cybersecFac);\n }\n\n return invitedFactions;\n}\n\n/************* BitNodes **************/\nexport function setBitNodeNumber(this: IPlayer, n: number): void {\n this.bitNodeN = n;\n}\n\nexport function queueAugmentation(this: IPlayer, name: string): void {\n for (const aug of this.queuedAugmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n for (const aug of this.augmentations) {\n if (aug.name == name) {\n console.warn(`tried to queue ${name} twice, this may be a bug`);\n return;\n }\n }\n\n this.queuedAugmentations.push(new PlayerOwnedAugmentation(name));\n}\n\n/************* Coding Contracts **************/\nexport function gainCodingContractReward(this: IPlayer, reward: ICodingContractReward, difficulty = 1): string {\n if (reward == null || reward.type == null) {\n return `No reward for this contract`;\n }\n\n /* eslint-disable no-case-declarations */\n switch (reward.type) {\n case CodingContractRewardType.FactionReputation:\n if (reward.name == null || !(Factions[reward.name] instanceof Faction)) {\n // If no/invalid faction was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n Factions[reward.name].playerReputation += repGain;\n return `Gained ${repGain} faction reputation for ${reward.name}`;\n case CodingContractRewardType.FactionReputationAll:\n const totalGain = CONSTANTS.CodingContractBaseFactionRepGain * difficulty;\n\n // Ignore Bladeburners and other special factions for this calculation\n const specialFactions = [FactionNames.Bladeburners as string];\n const factions = this.factions.slice().filter((f) => {\n return !specialFactions.includes(f);\n });\n\n // If the player was only part of the special factions, we'll just give money\n if (factions.length == 0) {\n reward.type = CodingContractRewardType.Money;\n return this.gainCodingContractReward(reward, difficulty);\n }\n\n const gainPerFaction = Math.floor(totalGain / factions.length);\n for (const facName of factions) {\n if (!(Factions[facName] instanceof Faction)) {\n continue;\n }\n Factions[facName].playerReputation += gainPerFaction;\n }\n return `Gained ${gainPerFaction} reputation for each of the following factions: ${factions.toString()}`;\n case CodingContractRewardType.CompanyReputation: {\n if (reward.name == null || !(Companies[reward.name] instanceof Company)) {\n //If no/invalid company was designated, just give rewards to all factions\n reward.type = CodingContractRewardType.FactionReputationAll;\n return this.gainCodingContractReward(reward);\n }\n const repGain = CONSTANTS.CodingContractBaseCompanyRepGain * difficulty;\n Companies[reward.name].playerReputation += repGain;\n return `Gained ${repGain} company reputation for ${reward.name}`;\n }\n case CodingContractRewardType.Money:\n default: {\n const moneyGain = CONSTANTS.CodingContractBaseMoneyGain * difficulty * BitNodeMultipliers.CodingContractMoney;\n this.gainMoney(moneyGain, \"codingcontract\");\n return `Gained ${numeralWrapper.formatMoney(moneyGain)}`;\n }\n }\n /* eslint-enable no-case-declarations */\n}\n\nexport function travel(this: IPlayer, to: CityName): boolean {\n if (Cities[to] == null) {\n console.warn(`Player.travel() called with invalid city: ${to}`);\n return false;\n }\n this.city = to;\n\n return true;\n}\n\nexport function gotoLocation(this: IPlayer, to: LocationName): boolean {\n if (Locations[to] == null) {\n console.warn(`Player.gotoLocation() called with invalid location: ${to}`);\n return false;\n }\n this.location = to;\n\n return true;\n}\n\nexport function canAccessGrafting(this: IPlayer): boolean {\n return this.bitNodeN === 10 || this.sourceFileLvl(10) > 0;\n}\n\nexport function giveExploit(this: IPlayer, exploit: Exploit): void {\n if (!this.exploits.includes(exploit)) {\n this.exploits.push(exploit);\n SnackbarEvents.emit(\"SF -1 acquired!\", ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function giveAchievement(this: IPlayer, achievementId: string): void {\n const achievement = achievements[achievementId];\n if (!achievement) return;\n if (!this.achievements.map((a) => a.ID).includes(achievementId)) {\n this.achievements.push({ ID: achievementId, unlockedOn: new Date().getTime() });\n SnackbarEvents.emit(`Unlocked Achievement: \"${achievement.Name}\"`, ToastVariant.SUCCESS, 2000);\n }\n}\n\nexport function getIntelligenceBonus(this: IPlayer, weight: number): number {\n return calculateIntelligenceBonus(this.intelligence, weight);\n}\n\nexport function getCasinoWinnings(this: IPlayer): number {\n return this.moneySourceA.casino;\n}\n\nexport function getMult(this: IPlayer, name: string): number {\n if (!this.hasOwnProperty(name)) return 1;\n return (this as any)[name];\n}\n\nexport function setMult(this: IPlayer, name: string, mult: number): void {\n if (!this.hasOwnProperty(name)) return;\n (this as any)[name] = mult;\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","import React, { useContext } from \"react\";\nimport { ICorporation } from \"../ICorporation\";\nimport { IIndustry } from \"../IIndustry\";\n\nexport const Context: {\n Corporation: React.Context;\n Division: React.Context;\n} = {\n Corporation: React.createContext({} as ICorporation),\n Division: React.createContext({} as IIndustry),\n};\n\nexport const useCorporation = (): ICorporation => useContext(Context.Corporation);\nexport const useDivision = (): IIndustry => useContext(Context.Division);\n","import React from \"react\";\nimport { ResearchTree } from \"./ResearchTree\";\nimport { ICorporation } from \"./ICorporation\";\nimport { getBaseResearchTreeCopy, getProductIndustryResearchTreeCopy } from \"./data/BaseResearchTree\";\nimport { MoneyCost } from \"./ui/MoneyCost\";\n\ninterface IIndustryMap {\n [key: string]: T | undefined;\n Energy: T;\n Utilities: T;\n Agriculture: T;\n Fishing: T;\n Mining: T;\n Food: T;\n Tobacco: T;\n Chemical: T;\n Pharmaceutical: T;\n Computer: T;\n Robotics: T;\n Software: T;\n Healthcare: T;\n RealEstate: T;\n}\n\n// Map of official names for each Industry\nexport const Industries: IIndustryMap = {\n Energy: \"Energy\",\n Utilities: \"Water Utilities\",\n Agriculture: \"Agriculture\",\n Fishing: \"Fishing\",\n Mining: \"Mining\",\n Food: \"Food\",\n Tobacco: \"Tobacco\",\n Chemical: \"Chemical\",\n Pharmaceutical: \"Pharmaceutical\",\n Computer: \"Computer Hardware\",\n Robotics: \"Robotics\",\n Software: \"Software\",\n Healthcare: \"Healthcare\",\n RealEstate: \"RealEstate\",\n};\n\n// Map of how much money it takes to start each industry\nexport const IndustryStartingCosts: IIndustryMap = {\n Energy: 225e9,\n Utilities: 150e9,\n Agriculture: 40e9,\n Fishing: 80e9,\n Mining: 300e9,\n Food: 10e9,\n Tobacco: 20e9,\n Chemical: 70e9,\n Pharmaceutical: 200e9,\n Computer: 500e9,\n Robotics: 1e12,\n Software: 25e9,\n Healthcare: 750e9,\n RealEstate: 600e9,\n};\n\n// Map of description for each industry\nexport const IndustryDescriptions: IIndustryMap<(corp: ICorporation) => React.ReactElement> = {\n Energy: (corp: ICorporation) => (\n <>\n Engage in the production and distribution of energy.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Utilities: (corp: ICorporation) => (\n <>\n Distribute water and provide wastewater services.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Agriculture: (corp: ICorporation) => (\n <>\n Cultivate crops and breed livestock to produce food.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Fishing: (corp: ICorporation) => (\n <>\n Produce food through the breeding and processing of fish and fish products.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Mining: (corp: ICorporation) => (\n <>\n Extract and process metals from the earth.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Food: (corp: ICorporation) => (\n <>\n Create your own restaurants all around the world.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Tobacco: (corp: ICorporation) => (\n <>\n Create and distribute tobacco and tobacco-related products.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Chemical: (corp: ICorporation) => (\n <>\n Produce industrial chemicals.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Pharmaceutical: (corp: ICorporation) => (\n <>\n Discover, develop, and create new pharmaceutical drugs.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Computer: (corp: ICorporation) => (\n <>\n Develop and manufacture new computer hardware and networking infrastructures.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Robotics: (corp: ICorporation) => (\n <>\n Develop and create robots.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n Software: (corp: ICorporation) => (\n <>\n Develop computer software and create AI Cores.\n \n \n Starting cost: \n \n Recommended starting Industry: YES\n >\n ),\n Healthcare: (corp: ICorporation) => (\n <>\n Create and manage hospitals.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n RealEstate: (corp: ICorporation) => (\n <>\n Develop and manage real estate properties.\n \n \n Starting cost: \n \n Recommended starting Industry: NO\n >\n ),\n};\n\n// Map of available Research for each Industry. This data is held in a\n// ResearchTree object\nexport const IndustryResearchTrees: IIndustryMap = {\n Energy: getBaseResearchTreeCopy(),\n Utilities: getBaseResearchTreeCopy(),\n Agriculture: getBaseResearchTreeCopy(),\n Fishing: getBaseResearchTreeCopy(),\n Mining: getBaseResearchTreeCopy(),\n Food: getProductIndustryResearchTreeCopy(),\n Tobacco: getProductIndustryResearchTreeCopy(),\n Chemical: getBaseResearchTreeCopy(),\n Pharmaceutical: getProductIndustryResearchTreeCopy(),\n Computer: getProductIndustryResearchTreeCopy(),\n Robotics: getProductIndustryResearchTreeCopy(),\n Software: getProductIndustryResearchTreeCopy(),\n Healthcare: getProductIndustryResearchTreeCopy(),\n RealEstate: getProductIndustryResearchTreeCopy(),\n};\n\nexport function resetIndustryResearchTrees(): void {\n IndustryResearchTrees.Energy = getBaseResearchTreeCopy();\n IndustryResearchTrees.Utilities = getBaseResearchTreeCopy();\n IndustryResearchTrees.Agriculture = getBaseResearchTreeCopy();\n IndustryResearchTrees.Fishing = getBaseResearchTreeCopy();\n IndustryResearchTrees.Mining = getBaseResearchTreeCopy();\n IndustryResearchTrees.Food = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Tobacco = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Chemical = getBaseResearchTreeCopy();\n IndustryResearchTrees.Pharmaceutical = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Computer = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Robotics = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Software = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.Healthcare = getProductIndustryResearchTreeCopy();\n IndustryResearchTrees.RealEstate = getProductIndustryResearchTreeCopy();\n}\n","/**\n * Enum defining the different types of possible locations\n */\nexport enum LocationType {\n Company,\n Gym,\n Hospital,\n Slums,\n Special, // This location has special options/activities (e.g. Bladeburner, Re-sleeving)\n StockMarket,\n TechVendor,\n TravelAgency,\n University,\n Casino,\n}\n","/**\n * Generic helper/utility functions for the Hacknet mechanic:\n * - Purchase nodes/upgrades\n * - Calculating maximum number of upgrades\n * - Processing Hacknet earnings\n * - Updating Hash Manager capacity\n * - Purchasing hash upgrades\n *\n * TODO Should probably split the different types of functions into their own modules\n */\nimport { HacknetNode } from \"./HacknetNode\";\nimport { calculateNodeCost } from \"./formulas/HacknetNodes\";\nimport { calculateServerCost } from \"./formulas/HacknetServers\";\nimport { HacknetNodeConstants, HacknetServerConstants } from \"./data/Constants\";\nimport { HacknetServer } from \"./HacknetServer\";\nimport { HashManager } from \"./HashManager\";\nimport { HashUpgrades } from \"./HashUpgrades\";\n\nimport { generateRandomContract } from \"../CodingContractGenerator\";\nimport { iTutorialSteps, iTutorialNextStep, ITutorial } from \"../InteractiveTutorial\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { Server } from \"../Server/Server\";\n\n// Returns a boolean indicating whether the player has Hacknet Servers\n// (the upgraded form of Hacknet Nodes)\nexport function hasHacknetServers(player: IPlayer): boolean {\n return player.bitNodeN === 9 || player.sourceFileLvl(9) > 0;\n}\n\nexport function purchaseHacknet(player: IPlayer): number {\n /* INTERACTIVE TUTORIAL */\n if (ITutorial.isRunning) {\n if (ITutorial.currStep === iTutorialSteps.HacknetNodesIntroduction) {\n iTutorialNextStep();\n } else {\n return -1;\n }\n }\n /* END INTERACTIVE TUTORIAL */\n\n const numOwned = player.hacknetNodes.length;\n if (hasHacknetServers(player)) {\n const cost = getCostOfNextHacknetServer(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetServer is NaN`);\n }\n\n if (!player.canAfford(cost) || numOwned >= HacknetServerConstants.MaxServers) {\n return -1;\n }\n player.loseMoney(cost, \"hacknet_expenses\");\n player.createHacknetServer();\n updateHashManagerCapacity(player);\n\n return numOwned;\n } else {\n const cost = getCostOfNextHacknetNode(player);\n if (isNaN(cost)) {\n throw new Error(`Calculated cost of purchasing HacknetNode is NaN`);\n }\n\n if (!player.canAfford(cost)) {\n return -1;\n }\n\n // Auto generate a name for the Node\n const name = \"hacknet-node-\" + numOwned;\n const node = new HacknetNode(name, player.hacknet_node_money_mult);\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.hacknet_node_purchase_cost_mult);\n}\n\nexport function getCostOfNextHacknetServer(player: IPlayer): number {\n return calculateServerCost(player.hacknetNodes.length + 1, player.hacknet_node_purchase_cost_mult);\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.hacknet_node_level_cost_mult)) {\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.hacknet_node_level_cost_mult)) {\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.hacknet_node_level_cost_mult) &&\n player.money < nodeObj.calculateLevelUpgradeCost(curr + 1, player.hacknet_node_level_cost_mult)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateLevelUpgradeCost(curr, player.hacknet_node_level_cost_mult)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateLevelUpgradeCost(curr, player.hacknet_node_level_cost_mult)) {\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.hacknet_node_ram_cost_mult)) {\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.hacknet_node_ram_cost_mult)) {\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.hacknet_node_ram_cost_mult)) {\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.hacknet_node_core_cost_mult)) {\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.hacknet_node_core_cost_mult)) {\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.hacknet_node_core_cost_mult) &&\n player.money < nodeObj.calculateCoreUpgradeCost(curr + 1, player.hacknet_node_core_cost_mult)\n ) {\n return Math.min(levelsToMax, curr);\n } else if (player.money < nodeObj.calculateCoreUpgradeCost(curr, player.hacknet_node_core_cost_mult)) {\n max = curr - 1;\n } else if (player.money > nodeObj.calculateCoreUpgradeCost(curr, player.hacknet_node_core_cost_mult)) {\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.hacknet_node_level_cost_mult);\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.hacknet_node_money_mult);\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.hacknet_node_ram_cost_mult);\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.hacknet_node_money_mult);\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.hacknet_node_core_cost_mult);\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.hacknet_node_money_mult);\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.hacknet_node_money_mult);\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 = Math.floor(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): 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)) {\n const upg = HashUpgrades[upgName];\n\n switch (upgName) {\n case \"Sell for Money\": {\n player.gainMoney(upg.value, \"hacknet\");\n break;\n }\n case \"Sell for Corporation Funds\": {\n const corp = player.corporation;\n if (corp === null) {\n player.hashManager.refundUpgrade(upgName);\n return false;\n }\n corp.funds = corp.funds + upg.value;\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 return false;\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n target.changeMinimumSecurity(upg.value, true);\n } catch (e) {\n player.hashManager.refundUpgrade(upgName);\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 return false;\n }\n if (!(target instanceof Server)) throw new Error(`'${upgTarget}' is not a normal server.`);\n\n target.changeMaximumMoney(upg.value);\n } catch (e) {\n player.hashManager.refundUpgrade(upgName);\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);\n return false;\n }\n for (const division of corp.divisions) {\n division.sciResearch.qty += upg.value;\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);\n return false;\n }\n bladeburner.changeRank(player, upg.value);\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);\n return false;\n }\n\n bladeburner.skillPoints += upg.value;\n break;\n }\n case \"Generate Coding Contract\": {\n generateRandomContract();\n break;\n }\n default:\n console.warn(`Unrecognized upgrade name ${upgName}. Upgrade has no effect`);\n player.hashManager.refundUpgrade(upgName);\n return false;\n }\n\n return true;\n }\n\n return false;\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 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","import { CityName } from \"./../../Locations/data/CityNames\";\nexport const BladeburnerConstants: {\n CityNames: string[];\n CyclesPerSecond: number;\n StaminaGainPerSecond: number;\n BaseStaminaLoss: number;\n MaxStaminaToGainFactor: number;\n DifficultyToTimeFactor: number;\n DiffMultExponentialFactor: number;\n DiffMultLinearFactor: number;\n EffAgiLinearFactor: number;\n EffDexLinearFactor: number;\n EffAgiExponentialFactor: number;\n EffDexExponentialFactor: number;\n BaseRecruitmentTimeNeeded: number;\n PopulationThreshold: number;\n PopulationExponent: number;\n ChaosThreshold: number;\n BaseStatGain: number;\n BaseIntGain: number;\n ActionCountGrowthPeriod: number;\n RankToFactionRepFactor: number;\n RankNeededForFaction: number;\n ContractSuccessesPerLevel: number;\n OperationSuccessesPerLevel: number;\n RanksPerSkillPoint: number;\n ContractBaseMoneyGain: number;\n HrcHpGain: number;\n HrcStaminaGain: number;\n} = {\n CityNames: [\n CityName.Aevum,\n CityName.Chongqing,\n CityName.Sector12,\n CityName.NewTokyo,\n CityName.Ishima,\n CityName.Volhaven,\n ],\n CyclesPerSecond: 5, // Game cycle is 200 ms\n\n StaminaGainPerSecond: 0.0085,\n BaseStaminaLoss: 0.285, // Base stamina loss per action. Increased based on difficulty\n MaxStaminaToGainFactor: 70000, // Max Stamina is divided by this to get bonus stamina gain\n\n DifficultyToTimeFactor: 10, // Action Difficulty divided by this to get base action time\n\n /**\n * The difficulty multiplier affects stamina loss and hp loss of an action. Also affects\n * experience gain. Its formula is:\n * difficulty ^ exponentialFactor + difficulty / linearFactor\n */\n DiffMultExponentialFactor: 0.28,\n DiffMultLinearFactor: 650,\n\n /**\n * These factors are used to calculate action time.\n * They affect how much action time is reduced based on your agility and dexterity\n */\n EffAgiLinearFactor: 10e3,\n EffDexLinearFactor: 10e3,\n EffAgiExponentialFactor: 0.04,\n EffDexExponentialFactor: 0.035,\n\n BaseRecruitmentTimeNeeded: 300, // Base time needed (s) to complete a Recruitment action\n\n PopulationThreshold: 1e9, // Population which determines baseline success rate\n PopulationExponent: 0.7, // Exponent that influences how different populations affect success rate\n ChaosThreshold: 50, // City chaos level after which it starts making tasks harder\n\n BaseStatGain: 1, // Base stat gain per second\n BaseIntGain: 0.003, // Base intelligence stat gain\n\n ActionCountGrowthPeriod: 480, // Time (s) it takes for action count to grow by its specified value\n\n RankToFactionRepFactor: 2, // Delta Faction Rep = this * Delta Rank\n RankNeededForFaction: 25,\n\n ContractSuccessesPerLevel: 3, // How many successes you need to level up a contract\n OperationSuccessesPerLevel: 2.5, // How many successes you need to level up an op\n\n RanksPerSkillPoint: 3, // How many ranks needed to get 1 Skill Point\n\n ContractBaseMoneyGain: 250e3, // Base Money Gained per contract\n\n HrcHpGain: 2, // HP Gained from Hyperbolic Regeneration chamber\n HrcStaminaGain: 1, // Percentage Stamina gained from Hyperbolic Regeneration Chamber\n};\n","import { IPlayer } from \"src/PersonObjects/IPlayer\";\nimport { MaterialSizes } from \"./MaterialSizes\";\nimport { ICorporation } from \"./ICorporation\";\nimport { IIndustry } from \"./IIndustry\";\nimport { IndustryStartingCosts, IndustryResearchTrees } from \"./IndustryData\";\nimport { Industry } from \"./Industry\";\nimport { CorporationConstants } from \"./data/Constants\";\nimport { OfficeSpace } from \"./OfficeSpace\";\nimport { Material } from \"./Material\";\nimport { Product } from \"./Product\";\nimport { Warehouse } from \"./Warehouse\";\nimport { CorporationUnlockUpgrade } from \"./data/CorporationUnlockUpgrades\";\nimport { CorporationUpgrade } from \"./data/CorporationUpgrades\";\nimport { Cities } from \"../Locations/Cities\";\nimport { EmployeePositions } from \"./EmployeePositions\";\nimport { Employee } from \"./Employee\";\nimport { IndustryUpgrades } from \"./IndustryUpgrades\";\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, percent: number): void {\n if (isNaN(percent) || percent < 0 || percent > CorporationConstants.DividendMaxPercentage) {\n throw new Error(`Invalid value. Must be an integer between 0 and ${CorporationConstants.DividendMaxPercentage}`);\n }\n\n corporation.dividendPercentage = percent * 100;\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(employee: Employee, job: string): void {\n if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);\n employee.pos = job;\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 ThrowParty(corp: ICorporation, office: OfficeSpace, costPerEmployee: number): number {\n const totalCost = costPerEmployee * office.employees.length;\n if (corp.funds < totalCost) return 0;\n corp.funds = corp.funds - totalCost;\n let mult = 0;\n for (let i = 0; i < office.employees.length; ++i) {\n mult = office.employees[i].throwParty(costPerEmployee);\n }\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 BuyCoffee(corp: ICorporation, division: IIndustry, office: OfficeSpace): void {\n const upgrade = IndustryUpgrades[0];\n const cost = office.employees.length * upgrade[1];\n if (corp.funds < cost) return;\n corp.funds = corp.funds - cost;\n division.upgrade(upgrade, {\n corporation: corp,\n office: office,\n });\n}\n\nexport function HireAdVert(corp: ICorporation, division: IIndustry, office: OfficeSpace): void {\n const upgrade = IndustryUpgrades[1];\n const cost = upgrade[1] * Math.pow(upgrade[2], division.upgrades[1]);\n if (corp.funds < cost) return;\n corp.funds = corp.funds - cost;\n division.upgrade(upgrade, {\n corporation: corp,\n office: office,\n });\n}\n\nexport function MakeProduct(\n corp: ICorporation,\n division: IIndustry,\n city: string,\n productName: string,\n designInvest: number,\n marketingInvest: number,\n): void {\n if (designInvest < 0) {\n designInvest = 0;\n }\n if (marketingInvest < 0) {\n marketingInvest = 0;\n }\n if (productName == null || productName === \"\") {\n throw new Error(\"You must specify a name for your product!\");\n }\n if (!division.makesProducts) {\n throw new Error(\"You cannot create products for this industry!\");\n }\n if (isNaN(designInvest)) {\n throw new Error(\"Invalid value for design investment\");\n }\n if (isNaN(marketingInvest)) {\n throw new Error(\"Invalid value for marketing investment\");\n }\n if (corp.funds < designInvest + marketingInvest) {\n throw new Error(\"You don't have enough company funds to make this large of an investment\");\n }\n let maxProducts = 3;\n if (division.hasResearch(\"uPgrade: Capacity.II\")) {\n maxProducts = 5;\n } else if (division.hasResearch(\"uPgrade: Capacity.I\")) {\n maxProducts = 4;\n }\n const products = division.products;\n if (Object.keys(products).length >= maxProducts) {\n throw new Error(`You are already at the max products (${maxProducts}) for division: ${division.name}!`);\n }\n\n const product = new Product({\n name: productName.replace(/[<>]/g, \"\").trim(), //Sanitize for HTMl elements\n createCity: city,\n designCost: designInvest,\n advCost: marketingInvest,\n });\n if (products[product.name] instanceof Product) {\n throw new Error(`You already have a product with this name!`);\n }\n\n corp.funds = corp.funds - (designInvest + marketingInvest);\n products[product.name] = product;\n}\n\nexport function Research(division: IIndustry, researchName: string): void {\n const researchTree = IndustryResearchTrees[division.type];\n if (researchTree === undefined) throw new Error(`No research tree for industry '${division.type}'`);\n const allResearch = researchTree.getAllNodes();\n if (!allResearch.includes(researchName)) throw new Error(`No research named '${researchName}'`);\n const research = ResearchMap[researchName];\n\n if (division.sciResearch.qty < research.cost)\n throw new Error(`You do not have enough Scientific Research for ${research.name}`);\n division.sciResearch.qty -= research.cost;\n\n // Get the Node from the Research Tree and set its 'researched' property\n researchTree.research(researchName);\n division.researched[researchName] = true;\n}\n\nexport function ExportMaterial(\n divisionName: string,\n cityName: string,\n material: Material,\n amt: string,\n division?: Industry,\n): void {\n // Sanitize amt\n let sanitizedAmt = amt.replace(/\\s+/g, \"\").toUpperCase();\n sanitizedAmt = sanitizedAmt.replace(/[^-()\\d/*+.MAX]/g, \"\");\n let temp = sanitizedAmt.replace(/MAX/g, \"1\");\n try {\n temp = eval(temp);\n } catch (e) {\n throw new Error(\"Invalid expression entered for export amount: \" + e);\n }\n\n const n = parseFloat(temp);\n\n if (n == null || isNaN(n) || n < 0) {\n throw new Error(\"Invalid amount entered for export\");\n }\n\n if (!division || !isRelevantMaterial(material.name, division)) {\n throw new Error(`You cannot export material: ${material.name} to division: ${divisionName}!`);\n }\n\n const exportObj = { ind: divisionName, city: cityName, amt: sanitizedAmt };\n material.exp.push(exportObj);\n}\n\nexport function CancelExportMaterial(divisionName: string, cityName: string, material: Material, amt: string): void {\n for (let i = 0; i < material.exp.length; ++i) {\n if (material.exp[i].ind !== divisionName || material.exp[i].city !== cityName || material.exp[i].amt !== amt)\n continue;\n material.exp.splice(i, 1);\n break;\n }\n}\n\nexport function LimitProductProduction(product: Product, cityName: string, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n product.prdman[cityName][0] = false;\n product.prdman[cityName][1] = 0;\n } else {\n product.prdman[cityName][0] = true;\n product.prdman[cityName][1] = qty;\n }\n}\n\nexport function LimitMaterialProduction(material: Material, qty: number): void {\n if (qty < 0 || isNaN(qty)) {\n material.prdman[0] = false;\n material.prdman[1] = 0;\n } else {\n material.prdman[0] = true;\n material.prdman[1] = qty;\n }\n}\n\nexport function SetMaterialMarketTA1(material: Material, on: boolean): void {\n material.marketTa1 = on;\n}\n\nexport function SetMaterialMarketTA2(material: Material, on: boolean): void {\n material.marketTa2 = on;\n}\n\nexport function SetProductMarketTA1(product: Product, on: boolean): void {\n product.marketTa1 = on;\n}\n\nexport function SetProductMarketTA2(product: Product, on: boolean): void {\n product.marketTa2 = on;\n}\n","import { 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 { 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 { Augmentation } from \"./Augmentation\";\nimport { IMap } from \"../types\";\n\nexport const Augmentations: IMap = {};\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","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","export enum PositionTypes {\n Long = \"L\",\n Short = \"S\",\n}\n","/**\n * Enum for different types of tasks that a Sleeve can perform\n */\nexport enum SleeveTaskType {\n // Same Order as selectable order in UI\n Idle,\n Company,\n Faction,\n Crime,\n Class,\n Gym,\n Recovery,\n Synchro,\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 // Allows alphanumerics, hyphens, underscores, and percentage signs.\n // Name can begin with a single period, but otherwise cannot have any\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 != null) {\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(\".ns\") && !f0.endsWith(\".js\")) f0 = f0 + \".js\";\n if (!f1.endsWith(\".ns\") && !f1.endsWith(\".js\")) f1 = f1 + \".js\";\n return areFilesEqual(f0, f1);\n}\n","import { Crime } from \"./Crime\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { IMap } from \"../types\";\n\nexport const Crimes: IMap = {\n Shoplift: new Crime(\"Shoplift\", CONSTANTS.CrimeShoplift, 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\", CONSTANTS.CrimeRobStore, 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\", CONSTANTS.CrimeMug, 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\", CONSTANTS.CrimeLarceny, 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\", CONSTANTS.CrimeDrugs, 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\", CONSTANTS.CrimeBondForgery, 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\", CONSTANTS.CrimeTraffickArms, 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\", CONSTANTS.CrimeHomicide, 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\", CONSTANTS.CrimeGrandTheftAuto, 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\", CONSTANTS.CrimeKidnap, 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\", CONSTANTS.CrimeAssassination, 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\", CONSTANTS.CrimeHeist, 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) => any {\n return function (event: React.MouseEvent): any {\n if (!event.isTrusted) return;\n f();\n };\n}\n","import { Terminal as TTerminal } from \"./Terminal/Terminal\";\n\nexport const Terminal = new TTerminal();\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 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 { Locations } from \"../Locations/Locations\";\nimport { ITutorial, iTutorialStart } from \"../InteractiveTutorial\";\nimport { InteractiveTutorialRoot } from \"./InteractiveTutorial/InteractiveTutorialRoot\";\nimport { ITutorialEvents } from \"./InteractiveTutorial/ITutorialEvents\";\n\nimport { Faction } from \"../Faction/Faction\";\nimport { prestigeAugmentation } from \"../Prestige\";\nimport { dialogBoxCreate } from \"./React/DialogBox\";\nimport { GetAllServers } from \"../Server/AllServers\";\nimport { Factions } from \"../Faction/Factions\";\nimport { buyStock, sellStock, shortStock, sellShort } from \"../StockMarket/BuyingAndSelling\";\nimport {\n cancelOrder,\n eventEmitterForUiReset,\n initStockMarketFn,\n placeOrder,\n StockMarket,\n} from \"../StockMarket/StockMarket\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\n\nimport { Page, IRouter, ScriptEditorRouteOptions } from \"./Router\";\nimport { Overview } from \"./React/Overview\";\nimport { SidebarRoot } from \"../Sidebar/ui/SidebarRoot\";\nimport { AugmentationsRoot } from \"../Augmentation/ui/AugmentationsRoot\";\nimport { DevMenuRoot } from \"../DevMenu\";\nimport { BladeburnerRoot } from \"../Bladeburner/ui/BladeburnerRoot\";\nimport { GangRoot } from \"../Gang/ui/GangRoot\";\nimport { CorporationRoot } from \"../Corporation/ui/CorporationRoot\";\nimport { InfiltrationRoot } from \"../Infiltration/ui/InfiltrationRoot\";\nimport { GraftingRoot } from \"../PersonObjects/Grafting/ui/GraftingRoot\";\nimport { WorkInProgressRoot } from \"./WorkInProgressRoot\";\nimport { GameOptionsRoot } from \"../GameOptions/ui/GameOptionsRoot\";\nimport { SleeveRoot } from \"../PersonObjects/Sleeve/ui/SleeveRoot\";\nimport { HacknetRoot } from \"../Hacknet/ui/HacknetRoot\";\nimport { GenericLocation } from \"../Locations/ui/GenericLocation\";\nimport { LocationCity } from \"../Locations/ui/City\";\nimport { ProgramsRoot } from \"../Programs/ui/ProgramsRoot\";\nimport { Root as ScriptEditorRoot } from \"../ScriptEditor/ui/ScriptEditorRoot\";\nimport { MilestonesRoot } from \"../Milestones/ui/MilestonesRoot\";\nimport { TerminalRoot } from \"../Terminal/ui/TerminalRoot\";\nimport { TutorialRoot } from \"../Tutorial/ui/TutorialRoot\";\nimport { ActiveScriptsRoot } from \"./ActiveScripts/ActiveScriptsRoot\";\nimport { FactionsRoot } from \"../Faction/ui/FactionsRoot\";\nimport { FactionRoot } from \"../Faction/ui/FactionRoot\";\nimport { CharacterStats } from \"./CharacterStats\";\nimport { TravelAgencyRoot } from \"../Locations/ui/TravelAgencyRoot\";\nimport { StockMarketRoot } from \"../StockMarket/ui/StockMarketRoot\";\nimport { BitverseRoot } from \"../BitNode/ui/BitverseRoot\";\nimport { StaneksGiftRoot } from \"../CotMG/ui/StaneksGiftRoot\";\nimport { staneksGift } from \"../CotMG/Helper\";\nimport { CharacterOverview } from \"./React/CharacterOverview\";\nimport { BladeburnerCinematic } from \"../Bladeburner/ui/BladeburnerCinematic\";\nimport { workerScripts } from \"../Netscript/WorkerScripts\";\nimport { Unclickable } from \"../Exploits/Unclickable\";\nimport { Snackbar, SnackbarProvider } from \"./React/Snackbar\";\nimport { LogBoxManager } from \"./React/LogBoxManager\";\nimport { AlertManager } from \"./React/AlertManager\";\nimport { PromptManager } from \"./React/PromptManager\";\nimport { InvitationModal } from \"../Faction/ui/InvitationModal\";\nimport { calculateAchievements } from \"../Achievements/Achievements\";\n\nimport { enterBitNode } from \"../RedPill\";\nimport { Context } from \"./Context\";\nimport { RecoveryMode, RecoveryRoot } from \"./React/RecoveryRoot\";\nimport { AchievementsRoot } from \"../Achievements/AchievementsRoot\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { Settings } from \"../Settings/Settings\";\nimport { ThemeBrowser } from \"../Themes/ui/ThemeBrowser\";\nimport { ImportSaveRoot } from \"./React/ImportSaveRoot\";\nimport { BypassWrapper } from \"./React/BypassWrapper\";\n\nimport _wrap from \"lodash/wrap\";\nimport _functions from \"lodash/functions\";\nimport { Apr1 } from \"./Apr1\";\n\nconst htmlLocation = location;\n\ninterface IProps {\n terminal: ITerminal;\n player: IPlayer;\n engine: IEngine;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"-ms-overflow-style\": \"none\" /* for Internet Explorer, Edge */,\n \"scrollbar-width\": \"none\" /* for Firefox */,\n margin: theme.spacing(0),\n flexGrow: 1,\n display: \"block\",\n padding: \"8px\",\n minHeight: \"100vh\",\n boxSizing: \"border-box\",\n },\n }),\n);\n\nconst uninitialized = (): any => {\n throw new Error(\"Router called before initialization\");\n};\n\nexport let Router: IRouter = {\n isInitialized: false,\n page: uninitialized,\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.isWorking) 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 player.currentWorkFactionName ? Factions[player.currentWorkFactionName] : (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: () => {\n setLocation(Locations[player.companyName]);\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.log(`Routing is currently disabled - Attempted router.${fnName}()`);\n return;\n }\n\n // Call the function normally\n return func(...args);\n });\n });\n });\n\n useEffect(() => {\n if (page !== Page.Terminal) window.scrollTo(0, 0);\n });\n\n function softReset(): void {\n dialogBoxCreate(\"Soft Reset!\");\n installAugmentations(true);\n resetErrorBoundary();\n Router.toTerminal();\n }\n\n let mainPage = Cannot load;\n let withSidebar = true;\n let withPopups = true;\n let bypassGame = false;\n switch (page) {\n case Page.Recovery: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n break;\n }\n case Page.BitVerse: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Infiltration: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.BladeburnerCinematic: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n break;\n }\n case Page.Work: {\n mainPage = ;\n withSidebar = false;\n break;\n }\n case Page.Terminal: {\n mainPage = ;\n break;\n }\n case Page.Sleeves: {\n mainPage = ;\n break;\n }\n case Page.StaneksGift: {\n mainPage = ;\n break;\n }\n case Page.Stats: {\n mainPage = ;\n break;\n }\n case Page.ScriptEditor: {\n mainPage = (\n \n );\n break;\n }\n case Page.ActiveScripts: {\n mainPage = ;\n break;\n }\n case Page.Hacknet: {\n mainPage = ;\n break;\n }\n case Page.CreateProgram: {\n mainPage = ;\n break;\n }\n case Page.Factions: {\n mainPage = ;\n break;\n }\n case Page.Faction: {\n mainPage = ;\n break;\n }\n case Page.Milestones: {\n mainPage = ;\n break;\n }\n case Page.Tutorial: {\n mainPage = (\n {\n prestigeAugmentation();\n Router.toTerminal();\n iTutorialStart();\n }}\n />\n );\n break;\n }\n case Page.DevMenu: {\n mainPage = ;\n break;\n }\n case Page.Gang: {\n mainPage = ;\n break;\n }\n case Page.Corporation: {\n mainPage = ;\n break;\n }\n case Page.Bladeburner: {\n mainPage = ;\n break;\n }\n case Page.Grafting: {\n mainPage = ;\n break;\n }\n case Page.Travel: {\n mainPage = ;\n break;\n }\n case Page.StockMarket: {\n mainPage = (\n \n );\n break;\n }\n case Page.City: {\n mainPage = ;\n break;\n }\n case Page.Job:\n case Page.Location: {\n mainPage = ;\n break;\n }\n case Page.Options: {\n mainPage = (\n saveObject.saveGame()}\n export={() => {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n forceKill={killAllScripts}\n softReset={softReset}\n />\n );\n break;\n }\n case Page.Augmentations: {\n mainPage = (\n {\n // Apply the export bonus before saving the game\n onExport(player);\n saveObject.exportGame();\n }}\n installAugmentationsFn={() => {\n installAugmentations();\n }}\n />\n );\n break;\n }\n case Page.Achievements: {\n mainPage = ;\n break;\n }\n case Page.ThemeBrowser: {\n mainPage = ;\n break;\n }\n case Page.ImportSave: {\n mainPage = ;\n withSidebar = false;\n withPopups = false;\n bypassGame = true;\n }\n }\n\n return (\n \n \n \n \n \n \n {!ITutorial.isRunning ? (\n saveObject.saveGame()} killScripts={killAllScripts} />\n ) : (\n \n )}\n \n {withSidebar ? (\n \n {\n setSideBarOpened(isOpened);\n Settings.IsSidebarOpened = isOpened;\n }}\n />\n {mainPage}\n \n ) : (\n {mainPage}\n )}\n \n {withPopups && (\n <>\n \n \n \n \n \n >\n )}\n \n \n \n \n \n \n );\n}\n","/**\n * 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, 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.hacknet_node_money_mult);\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(): any {\n return Generic_toJSON(\"HacknetServer\", this);\n }\n\n // Initializes a HacknetServer Object from a JSON save state\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): HacknetServer {\n return Generic_fromJSON(HacknetServer, value.data);\n }\n}\n\nReviver.constructors.HacknetServer = HacknetServer;\n","// Constructs all CompanyPosition objects using the metadata in data/companypositions.ts\nimport { companyPositionMetadata } from \"./data/CompanyPositionsMetadata\";\nimport { CompanyPosition, IConstructorParams } from \"./CompanyPosition\";\nimport { IMap } from \"../types\";\n\nexport const CompanyPositions: IMap = {};\n\nfunction addCompanyPosition(params: IConstructorParams): void {\n if (CompanyPositions[params.name] != null) {\n console.warn(`Duplicate Company Position being defined: ${params.name}`);\n }\n CompanyPositions[params.name] = new CompanyPosition(params);\n}\n\ncompanyPositionMetadata.forEach((e) => {\n addCompanyPosition(e);\n});\n","import 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\";\n\ninterface ITableRowData {\n content?: string;\n level?: number;\n exp?: number;\n}\n\ninterface IProps {\n name: string;\n color: string;\n classes?: any;\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.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 return (\n \n \n {name}\n \n \n {content ? {content} : <>>}\n {children}\n \n \n );\n};\n","/* Holds IP of Special Servers */\nexport const SpecialServers: {\n [key: string]: string | undefined;\n\n Home: string;\n FulcrumSecretTechnologies: string;\n CyberSecServer: string;\n NiteSecServer: string;\n TheBlackHandServer: string;\n BitRunnersServer: string;\n TheDarkArmyServer: string;\n DaedalusServer: string;\n WorldDaemon: string;\n DarkWeb: string;\n} = {\n Home: \"home\",\n FulcrumSecretTechnologies: \"fulcrumassets\",\n CyberSecServer: \"CSEC\",\n NiteSecServer: \"avmnite-02h\",\n TheBlackHandServer: \"I.I.I.I\",\n BitRunnersServer: \"run4theh111z\",\n TheDarkArmyServer: \".\",\n DaedalusServer: \"The-Cave\",\n WorldDaemon: \"w0r1d_d43m0n\",\n DarkWeb: \"darkweb\",\n};\n","import React, { useEffect } from \"react\";\nimport { useSnackbar, SnackbarProvider as SB } from \"notistack\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport Alert from \"@mui/material/Alert\";\nimport Paper from \"@mui/material/Paper\";\nimport { logBoxBaseZIndex } from \"./LogBoxManager\";\n\ninterface IProps {\n children: React.ReactNode | React.ReactNode[];\n}\n\nexport enum ToastVariant {\n SUCCESS = \"success\",\n WARNING = \"warning\",\n ERROR = \"error\",\n INFO = \"info\",\n}\n\nconst useStyles = makeStyles(() => ({\n snackbar: {\n // Log popup z-index increments, so let's add a padding to be well above them.\n zIndex: `${logBoxBaseZIndex + 1000} !important` as any,\n\n \"& .MuiAlert-icon\": {\n alignSelf: \"center\",\n },\n },\n}));\n\nexport function SnackbarProvider(props: IProps): React.ReactElement {\n const classes = useStyles();\n return (\n \n {props.children}\n \n );\n}\n\nexport const SnackbarEvents = new EventEmitter<[string | React.ReactNode, ToastVariant, number]>();\n\nexport function Snackbar(): React.ReactElement {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n useEffect(() =>\n SnackbarEvents.subscribe((s, variant, duration) => {\n const id = enqueueSnackbar({s}, {\n content: (k, m) => {m},\n variant: variant,\n autoHideDuration: duration,\n onClick: () => closeSnackbar(id),\n });\n }),\n );\n return <>>;\n}\n","import { IMap } from \"../../types\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nexport const StockSymbols: IMap = {};\n\n// Stocks for companies at which you can work\nStockSymbols[LocationName.AevumECorp] = \"ECP\";\nStockSymbols[LocationName.Sector12MegaCorp] = \"MGCP\";\nStockSymbols[LocationName.Sector12BladeIndustries] = \"BLD\";\nStockSymbols[LocationName.AevumClarkeIncorporated] = \"CLRK\";\nStockSymbols[LocationName.VolhavenOmniTekIncorporated] = \"OMTK\";\nStockSymbols[LocationName.Sector12FourSigma] = \"FSIG\";\nStockSymbols[LocationName.ChongqingKuaiGongInternational] = \"KGI\";\nStockSymbols[LocationName.AevumFulcrumTechnologies] = \"FLCM\";\nStockSymbols[LocationName.IshimaStormTechnologies] = \"STM\";\nStockSymbols[LocationName.NewTokyoDefComm] = \"DCOMM\";\nStockSymbols[LocationName.VolhavenHeliosLabs] = \"HLS\";\nStockSymbols[LocationName.NewTokyoVitaLife] = \"VITA\";\nStockSymbols[LocationName.Sector12IcarusMicrosystems] = \"ICRS\";\nStockSymbols[LocationName.Sector12UniversalEnergy] = \"UNV\";\nStockSymbols[LocationName.AevumAeroCorp] = \"AERO\";\nStockSymbols[LocationName.VolhavenOmniaCybersystems] = \"OMN\";\nStockSymbols[LocationName.ChongqingSolarisSpaceSystems] = \"SLRS\";\nStockSymbols[LocationName.NewTokyoGlobalPharmaceuticals] = \"GPH\";\nStockSymbols[LocationName.IshimaNovaMedical] = \"NVMD\";\nStockSymbols[LocationName.AevumWatchdogSecurity] = \"WDS\";\nStockSymbols[LocationName.VolhavenLexoCorp] = \"LXO\";\nStockSymbols[LocationName.AevumRhoConstruction] = \"RHOC\";\nStockSymbols[LocationName.Sector12AlphaEnterprises] = \"APHE\";\nStockSymbols[LocationName.VolhavenSysCoreSecurities] = \"SYSC\";\nStockSymbols[LocationName.VolhavenCompuTek] = \"CTK\";\nStockSymbols[LocationName.AevumNetLinkTechnologies] = \"NTLK\";\nStockSymbols[LocationName.IshimaOmegaSoftware] = \"OMGA\";\nStockSymbols[LocationName.Sector12FoodNStuff] = \"FNS\";\nStockSymbols[LocationName.Sector12JoesGuns] = \"JGN\";\n\n// Stocks for other companies\nStockSymbols[\"Sigma Cosmetics\"] = \"SGC\";\nStockSymbols[\"Catalyst Ventures\"] = \"CTYS\";\nStockSymbols[\"Microdyne Technologies\"] = \"MDYN\";\nStockSymbols[\"Titan Laboratories\"] = \"TITN\";\n","export const validScriptExtensions: Array = [`.js`, `.script`, `.ns`];\n\nexport function isScriptFilename(f: string): boolean {\n return validScriptExtensions.some((ext) => f.endsWith(ext));\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(dimensions: number[]): any {\n const array = [];\n\n for (let i = 0; i < dimensions[0]; ++i) {\n array.push(dimensions.length == 1 ? 0 : zeros(dimensions.slice(1)));\n }\n\n return array;\n}\n\nexport function calculateGrid(gift: IStaneksGift): number[][] {\n const newgrid = zeros([gift.width(), gift.height()]) as unknown as number[][];\n for (let i = 0; i < gift.width(); i++) {\n for (let j = 0; j < gift.height(); j++) {\n const fragment = gift.fragmentAt(i, j);\n if (!fragment) continue;\n newgrid[i][j] = 1;\n }\n }\n\n return newgrid;\n}\n","import { BitNodeMultipliers } from \"./BitNode/BitNodeMultipliers\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\nimport { calculateIntelligenceBonus } from \"./PersonObjects/formulas/intelligence\";\nimport { Server } from \"./Server/Server\";\n\n/**\n * Returns the chance the player has to successfully hack a server\n */\nexport function calculateHackingChance(server: Server, player: IPlayer): number {\n const hackFactor = 1.75;\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = hackFactor * player.hacking;\n const skillChance = (skillMult - server.requiredHackingSkill) / skillMult;\n const chance =\n skillChance * difficultyMult * player.hacking_chance_mult * calculateIntelligenceBonus(player.intelligence, 1);\n if (chance > 1) {\n return 1;\n }\n if (chance < 0) {\n return 0;\n }\n\n return chance;\n}\n\n/**\n * Returns the amount of hacking experience the player will gain upon\n * successfully hacking a server\n */\nexport function calculateHackingExpGain(server: Server, player: IPlayer): number {\n const baseExpGain = 3;\n const diffFactor = 0.3;\n if (server.baseDifficulty == null) {\n server.baseDifficulty = server.hackDifficulty;\n }\n let expGain = baseExpGain;\n expGain += server.baseDifficulty * diffFactor;\n\n return expGain * player.hacking_exp_mult * BitNodeMultipliers.HackExpGain;\n}\n\n/**\n * Returns the percentage of money that will be stolen from a server if\n * it is successfully hacked (returns the decimal form, not the actual percent value)\n */\nexport function calculatePercentMoneyHacked(server: Server, player: IPlayer): number {\n // Adjust if needed for balancing. This is the divisor for the final calculation\n const balanceFactor = 240;\n\n const difficultyMult = (100 - server.hackDifficulty) / 100;\n const skillMult = (player.hacking - (server.requiredHackingSkill - 1)) / player.hacking;\n const percentMoneyHacked =\n (difficultyMult * skillMult * player.hacking_money_mult * BitNodeMultipliers.ScriptHackMoney) / balanceFactor;\n if (percentMoneyHacked < 0) {\n return 0;\n }\n if (percentMoneyHacked > 1) {\n return 1;\n }\n\n return percentMoneyHacked;\n}\n\n/**\n * Returns time it takes to complete a hack on a server, in seconds\n */\nexport function calculateHackingTime(server: Server, player: IPlayer): number {\n const difficultyMult = server.requiredHackingSkill * server.hackDifficulty;\n\n const baseDiff = 500;\n const baseSkill = 50;\n const diffFactor = 2.5;\n let skillFactor = diffFactor * difficultyMult + baseDiff;\n // tslint:disable-next-line\n skillFactor /= player.hacking + baseSkill;\n\n const hackTimeMultiplier = 5;\n const hackingTime =\n (hackTimeMultiplier * skillFactor) /\n (player.hacking_speed_mult * calculateIntelligenceBonus(player.intelligence, 1));\n\n return hackingTime;\n}\n\n/**\n * Returns time it takes to complete a grow operation on a server, in seconds\n */\nexport function calculateGrowTime(server: Server, player: IPlayer): number {\n const growTimeMultiplier = 3.2; // Relative to hacking time. 16/5 = 3.2\n\n return growTimeMultiplier * calculateHackingTime(server, player);\n}\n\n/**\n * Returns time it takes to complete a weaken operation on a server, in seconds\n */\nexport function calculateWeakenTime(server: Server, player: IPlayer): number {\n const weakenTimeMultiplier = 4; // Relative to hacking time\n\n return weakenTimeMultiplier * calculateHackingTime(server, player);\n}\n","import { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { processOrders } from \"./OrderProcessing\";\nimport { Stock } from \"./Stock\";\nimport { TicksPerCycle } from \"./StockMarketConstants\";\nimport { InitStockMetadata } from \"./data/InitStockMetadata\";\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\nimport { StockSymbols } from \"./data/StockSymbols\";\n\nimport { CONSTANTS } from \"../Constants\";\nimport { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { IMap } from \"../types\";\nimport { EventEmitter } from \"../utils/EventEmitter\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Reviver } from \"../utils/JSONReviver\";\n\nexport let StockMarket: IStockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n} as IStockMarket; // Maps full stock name -> Stock object\nexport const SymbolToStockMap: IMap = {}; // Maps symbol -> Stock object\n\nexport function placeOrder(\n stock: Stock,\n shares: number,\n price: number,\n type: OrderTypes,\n position: PositionTypes,\n workerScript: WorkerScript | null = null,\n): boolean {\n if (!(stock instanceof Stock)) {\n if (workerScript) {\n workerScript.log(\"stock.placeOrder\", () => `Invalid stock: '${stock}'`);\n } else {\n dialogBoxCreate(`ERROR: Invalid stock passed to placeOrder() function`);\n }\n return false;\n }\n if (typeof shares !== \"number\" || typeof price !== \"number\") {\n if (workerScript) {\n workerScript.log(\"stock.placeOrder\", () => `Invalid arguments: shares='${shares}' price='${price}'`);\n } else {\n dialogBoxCreate(\"ERROR: Invalid numeric value provided for either 'shares' or 'price' argument\");\n }\n return false;\n }\n\n const order = new Order(stock.symbol, shares, price, type, position);\n if (StockMarket[\"Orders\"] == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stk = StockMarket[name];\n if (!(stk instanceof Stock)) {\n continue;\n }\n orders[stk.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n }\n StockMarket[\"Orders\"][stock.symbol].push(order);\n\n // Process to see if it should be executed immediately\n const processOrderRefs = {\n stockMarket: StockMarket as IStockMarket,\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\ninterface ICancelOrderParams {\n order?: Order;\n pos?: PositionTypes;\n price?: number;\n shares?: number;\n stock?: Stock;\n type?: OrderTypes;\n}\nexport function cancelOrder(params: ICancelOrderParams, workerScript: WorkerScript | null = null): boolean {\n if (StockMarket[\"Orders\"] == null) {\n return false;\n }\n if (params.order && params.order instanceof Order) {\n const order = params.order;\n // An 'Order' object is passed in\n const stockOrders = StockMarket[\"Orders\"][order.stockSymbol];\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n return true;\n }\n }\n return false;\n } else if (\n params.stock &&\n params.shares &&\n params.price &&\n params.type &&\n params.pos &&\n params.stock instanceof Stock\n ) {\n // Order properties are passed in. Need to look for the order\n const stockOrders = StockMarket[\"Orders\"][params.stock.symbol];\n const orderTxt = params.stock.symbol + \" - \" + params.shares + \" @ \" + numeralWrapper.formatMoney(params.price);\n for (let i = 0; i < stockOrders.length; ++i) {\n const order = stockOrders[i];\n if (\n params.shares === order.shares &&\n params.price === order.price &&\n params.type === order.type &&\n params.pos === order.pos\n ) {\n stockOrders.splice(i, 1);\n if (workerScript) {\n workerScript.scriptRef.log(\"Successfully cancelled order: \" + orderTxt);\n }\n return true;\n }\n }\n if (workerScript) {\n workerScript.scriptRef.log(\"Failed to cancel order: \" + orderTxt);\n }\n return false;\n }\n return false;\n}\n\nexport function loadStockMarket(saveString: string): void {\n if (saveString === \"\") {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n } else {\n StockMarket = JSON.parse(saveString, Reviver);\n }\n}\n\nexport function deleteStockMarket(): void {\n StockMarket = {\n lastUpdate: 0,\n Orders: {},\n storedCycles: 0,\n ticksUntilCycle: 0,\n } as IStockMarket;\n}\n\nexport function initStockMarket(): void {\n for (const stk of Object.keys(StockMarket)) {\n if (StockMarket.hasOwnProperty(stk)) {\n delete StockMarket[stk];\n }\n }\n\n for (const metadata of InitStockMetadata) {\n const name = metadata.name;\n StockMarket[name] = new Stock(metadata);\n }\n\n const orders: IOrderBook = {};\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n StockMarket[\"Orders\"] = orders;\n\n StockMarket.storedCycles = 0;\n StockMarket.lastUpdate = 0;\n StockMarket.ticksUntilCycle = TicksPerCycle;\n}\n\nexport function initSymbolToStockMap(): void {\n for (const name of Object.keys(StockSymbols)) {\n if (StockSymbols.hasOwnProperty(name)) {\n const stock = StockMarket[name];\n if (stock == null) {\n console.error(`Could not find Stock for ${name}`);\n continue;\n }\n const symbol = StockSymbols[name];\n SymbolToStockMap[symbol] = stock;\n }\n }\n}\n\nfunction stockMarketCycle(): void {\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n\n const roll = Math.random();\n if (roll < 0.45) {\n stock.b = !stock.b;\n stock.flipForecastForecast();\n }\n\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n}\n\n// Stock prices updated every 6 seconds\nconst msPerStockUpdate = 6e3;\nconst cyclesPerStockUpdate = msPerStockUpdate / CONSTANTS.MilliPerCycle;\nexport function processStockPrices(numCycles = 1): void {\n if (StockMarket.storedCycles == null || isNaN(StockMarket.storedCycles)) {\n StockMarket.storedCycles = 0;\n }\n StockMarket.storedCycles += numCycles;\n\n if (StockMarket.storedCycles < cyclesPerStockUpdate) {\n return;\n }\n\n // We can process the update every 4 seconds as long as there are enough\n // stored cycles. This lets us account for offline time\n const timeNow = new Date().getTime();\n if (timeNow - StockMarket.lastUpdate < 4e3) {\n return;\n }\n\n StockMarket.lastUpdate = timeNow;\n StockMarket.storedCycles -= cyclesPerStockUpdate;\n\n // Cycle\n if (StockMarket.ticksUntilCycle == null || typeof StockMarket.ticksUntilCycle !== \"number\") {\n StockMarket.ticksUntilCycle = TicksPerCycle;\n }\n --StockMarket.ticksUntilCycle;\n if (StockMarket.ticksUntilCycle <= 0) {\n stockMarketCycle();\n }\n\n const v = Math.random();\n for (const name of Object.keys(StockMarket)) {\n const stock = StockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n let av = (v * stock.mv) / 100;\n if (isNaN(av)) {\n av = 0.02;\n }\n\n let chc = 50;\n if (stock.b) {\n chc = (chc + stock.otlkMag) / 100;\n } else {\n chc = (chc - stock.otlkMag) / 100;\n }\n if (stock.price >= stock.cap) {\n chc = 0.1; // \"Soft Limit\" on stock price. It could still go up but its unlikely\n stock.b = false;\n }\n if (isNaN(chc)) {\n chc = 0.5;\n }\n\n const c = Math.random();\n const processOrderRefs = {\n stockMarket: StockMarket,\n symbolToStockMap: SymbolToStockMap,\n };\n if (c < chc) {\n stock.changePrice(stock.price * (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Short, processOrderRefs);\n } else {\n stock.changePrice(stock.price / (1 + av));\n processOrders(stock, OrderTypes.LimitBuy, PositionTypes.Long, processOrderRefs);\n processOrders(stock, OrderTypes.LimitSell, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopBuy, PositionTypes.Short, processOrderRefs);\n processOrders(stock, OrderTypes.StopSell, PositionTypes.Long, processOrderRefs);\n }\n\n let otlkMagChange = stock.otlkMag * av;\n if (stock.otlkMag < 5) {\n if (stock.otlkMag <= 1) {\n otlkMagChange = 1;\n } else {\n otlkMagChange *= 10;\n }\n }\n stock.cycleForecast(otlkMagChange);\n stock.cycleForecastForecast(otlkMagChange / 2);\n\n // Shares required for price movement gradually approaches max over time\n stock.shareTxUntilMovement = Math.min(stock.shareTxUntilMovement + 10, stock.shareTxForMovement);\n }\n}\n\nexport function initStockMarketFn(): void {\n initStockMarket();\n initSymbolToStockMap();\n}\n\nexport const eventEmitterForUiReset = new EventEmitter<[]>();\n","import { Augmentations } from \"../Augmentation/Augmentations\";\nimport { Augmentation } from \"../Augmentation/Augmentation\";\nimport { PlayerOwnedAugmentation } from \"../Augmentation/PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\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\";\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 let hasPrereqs = true;\n if (aug.prereqs && aug.prereqs.length > 0) {\n for (let i = 0; i < aug.prereqs.length; ++i) {\n const prereqAug = Augmentations[aug.prereqs[i]];\n if (prereqAug == null) {\n console.error(`Invalid prereq Augmentation ${aug.prereqs[i]}`);\n continue;\n }\n\n if (Player.hasAugmentation(prereqAug, true) === false) {\n hasPrereqs = false;\n\n // Check if the aug is purchased\n for (let j = 0; j < Player.queuedAugmentations.length; ++j) {\n if (Player.queuedAugmentations[j].name === prereqAug.name) {\n hasPrereqs = true;\n break;\n }\n }\n }\n }\n }\n\n return hasPrereqs;\n}\n\nexport function purchaseAugmentation(aug: Augmentation, fac: Faction, sing = false): string {\n const hasPrereqs = hasAugmentationPrereqs(aug);\n if (!hasPrereqs) {\n const txt = `You must first purchase or install ${aug.prereqs.join(\",\")} before you can purchase this one.`;\n if (sing) {\n return txt;\n } else {\n dialogBoxCreate(txt);\n }\n } else if (aug.baseCost !== 0 && Player.money < aug.baseCost) {\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 < aug.baseRepRequirement) {\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 (aug.baseCost === 0 || Player.money >= aug.baseCost) {\n const queuedAugmentation = new PlayerOwnedAugmentation(aug.name);\n if (aug.name == AugmentationNames.NeuroFluxGovernor) {\n queuedAugmentation.level = getNextNeurofluxLevel();\n }\n Player.queuedAugmentations.push(queuedAugmentation);\n\n Player.loseMoney(aug.baseCost, \"augmentations\");\n\n // If you just purchased Neuroflux Governor, recalculate the cost\n if (aug.name == AugmentationNames.NeuroFluxGovernor) {\n let nextLevel = getNextNeurofluxLevel();\n --nextLevel;\n const mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);\n aug.baseRepRequirement = 500 * mult * BitNodeMultipliers.AugmentationRepCost;\n aug.baseCost = 750e3 * mult * BitNodeMultipliers.AugmentationMoneyCost;\n\n for (let i = 0; i < Player.queuedAugmentations.length - 1; ++i) {\n aug.baseCost *= CONSTANTS.MultipleAugMultiplier * [1, 0.96, 0.94, 0.93][Player.sourceFileLvl(11)];\n }\n }\n\n for (const name of Object.keys(Augmentations)) {\n if (Augmentations.hasOwnProperty(name)) {\n Augmentations[name].baseCost *=\n CONSTANTS.MultipleAugMultiplier * [1, 0.96, 0.94, 0.93][Player.sourceFileLvl(11)];\n }\n }\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 getNextNeurofluxLevel(): number {\n // Get current Neuroflux level based on Player's augmentations\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\nexport function processPassiveFactionRepGain(numCycles: number): void {\n for (const name of Object.keys(Factions)) {\n if (name === Player.currentWorkFactionName) continue;\n if (!Factions.hasOwnProperty(name)) continue;\n const faction = Factions[name];\n if (!faction.isMember) continue;\n // No passive rep for special factions\n const info = faction.getInfo();\n if (!info.offersWork()) continue;\n // No passive rep for gangs.\n if (Player.getGangName() === name) continue;\n // 0 favor = 1%/s\n // 50 favor = 6%/s\n // 100 favor = 11%/s\n const favorMult = Math.min(0.1, faction.favor / 1000 + 0.01);\n // Find the best of all possible favor gain, minimum 1 rep / 2 minute.\n const hRep = getHackingWorkRepGain(Player, faction);\n const sRep = getFactionSecurityWorkRepGain(Player, faction);\n const fRep = getFactionFieldWorkRepGain(Player, faction);\n const rate = Math.max(hRep * favorMult, sRep * favorMult, fRep * favorMult, 1 / 120);\n\n faction.playerReputation += rate * numCycles * Player.faction_rep_mult * 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(Augmentations);\n\n // Remove special augs\n augs = augs.filter((a) => !a.isSpecial);\n\n const blacklist: string[] = [AugmentationNames.NeuroFluxGovernor, AugmentationNames.CongruityImplant];\n\n if (player.bitNodeN !== 2) {\n // TRP is not available outside of BN2 for Gangs\n blacklist.push(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 // Remove blacklisted augs\n augs = augs.filter((a) => !blacklist.includes(a.name));\n\n return augs.map((a) => a.name);\n }\n\n return faction.augmentations.slice();\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 { isString } from \"./utils/helpers/isString\";\nimport { GetServer } from \"./Server/AllServers\";\nimport { ScriptDeath } from \"./Netscript/ScriptDeath\";\nimport { WorkerScript } from \"./Netscript/WorkerScript\";\n\nexport function netscriptDelay(time: number, workerScript: WorkerScript): Promise {\n // Cancel any pre-existing netscriptDelay'ed function call\n // TODO: the rejection almost certainly ends up in the uncaught rejection handler.\n // Maybe reject with a stack-trace'd error message?\n if (workerScript.delayReject) workerScript.delayReject();\n\n return new Promise(function (resolve, reject) {\n workerScript.delay = window.setTimeout(() => {\n workerScript.delay = null;\n workerScript.delayReject = undefined;\n\n if (workerScript.env.stopFlag) reject(new ScriptDeath(workerScript));\n else resolve();\n }, time);\n workerScript.delayReject = reject;\n });\n}\n\nexport function makeRuntimeRejectMsg(workerScript: WorkerScript, msg: string): string {\n const server = GetServer(workerScript.hostname);\n if (server == null) {\n throw new Error(`WorkerScript constructed with invalid server ip: ${workerScript.hostname}`);\n }\n\n for (const scriptUrl of workerScript.scriptRef.dependencies) {\n // Return just the original msg if it's nullish so that we don't get a workerscript error\n msg = msg?.replace(new RegExp(scriptUrl.url, \"g\"), scriptUrl.filename) ?? msg;\n }\n\n return \"|DELIMITER|\" + server.hostname + \"|DELIMITER|\" + workerScript.name + \"|DELIMITER|\" + msg;\n}\n\nexport function resolveNetscriptRequestedThreads(\n workerScript: WorkerScript,\n functionName: string,\n requestedThreads: number,\n): number {\n const threads = 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 workerScript,\n `Invalid thread count passed to ${functionName}: ${requestedThreads}. Threads must be a positive number.`,\n );\n }\n if (requestedThreadsAsInt > threads) {\n throw makeRuntimeRejectMsg(\n workerScript,\n `Too many threads requested by ${functionName}. Requested: ${requestedThreads}. Has: ${threads}.`,\n );\n }\n return requestedThreadsAsInt;\n}\n\nexport function isScriptErrorMessage(msg: string): boolean {\n if (!isString(msg)) {\n return false;\n }\n const splitMsg = msg.split(\"|DELIMITER|\");\n return splitMsg.length == 4;\n}\n","import { 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 { saveAllServers, loadAllServers, GetAllServers } 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 } from \"./utils/JSONReviver\";\nimport { save } from \"./db\";\nimport { 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\";\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 parsed: any;\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.log(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 parsed: parsedSave,\n };\n\n const importedPlayer = PlayerObject.fromJSON(JSON.parse(parsedSave.data.PlayerSave));\n\n const playerData: ImportPlayerData = {\n identifier: importedPlayer.identifier,\n lastSave: importedPlayer.lastSave,\n totalPlaytime: importedPlayer.totalPlaytime,\n\n money: importedPlayer.money,\n hacking: importedPlayer.hacking,\n\n augmentations: importedPlayer.augmentations?.reduce((total, current) => (total += current.level), 0) ?? 0,\n factions: importedPlayer.factions?.length ?? 0,\n achievements: importedPlayer.achievements?.length ?? 0,\n\n bitNode: importedPlayer.bitNodeN,\n bitNodeLevel: importedPlayer.sourceFileLvl(Player.bitNodeN) + 1,\n sourceFiles: importedPlayer.sourceFiles?.reduce((total, current) => (total += current.lvl), 0) ?? 0,\n };\n\n data.playerData = playerData;\n return Promise.resolve(data);\n }\n\n toJSON(): any {\n return Generic_toJSON(\"BitburnerSaveObject\", this);\n }\n\n static fromJSON(value: { data: any }): 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 for (const companyName of Object.keys(Companies)) {\n const company: any = Companies[companyName];\n if (company.name == 0 && company.companyName != null) {\n company.name = company.companyName;\n }\n\n if (company.companyPositions instanceof Array) {\n const pos: any = {};\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 // Give 10 neuroflux because v1 API break.\n const nf = Player.augmentations.find((a) => a.name === AugmentationNames.NeuroFluxGovernor);\n if (nf) {\n nf.level += 10;\n } else {\n const nf = new PlayerOwnedAugmentation(AugmentationNames.NeuroFluxGovernor);\n nf.level = 10;\n Player.augmentations.push(nf);\n }\n Player.reapplyAllAugmentations(true);\n Player.reapplyAllSourceFiles();\n }\n if (ver < 3) {\n anyPlayer.money = parseFloat(anyPlayer.money);\n if (anyPlayer.corporation) {\n anyPlayer.corporation.funds = parseFloat(anyPlayer.corporation.funds);\n anyPlayer.corporation.revenue = parseFloat(anyPlayer.corporation.revenue);\n anyPlayer.corporation.expenses = parseFloat(anyPlayer.corporation.expenses);\n\n for (let i = 0; i < anyPlayer.corporation.divisions.length; ++i) {\n const ind = anyPlayer.corporation.divisions[i];\n ind.lastCycleRevenue = parseFloat(ind.lastCycleRevenue);\n ind.lastCycleExpenses = parseFloat(ind.lastCycleExpenses);\n ind.thisCycleRevenue = parseFloat(ind.thisCycleRevenue);\n ind.thisCycleExpenses = parseFloat(ind.thisCycleExpenses);\n }\n }\n }\n if (ver < 9) {\n if (StockMarket.hasOwnProperty(\"Joes Guns\")) {\n const s = StockMarket[\"Joes Guns\"];\n delete StockMarket[\"Joes Guns\"];\n StockMarket[LocationName.Sector12JoesGuns] = s;\n }\n }\n if (ver < 10) {\n // Augmentation name was changed in 0.56.0 but sleeves aug list was missed.\n if (anyPlayer.sleeves && anyPlayer.sleeves.length > 0) {\n for (const sleeve of anyPlayer.sleeves) {\n if (!sleeve.augmentations || sleeve.augmentations.length === 0) continue;\n for (const augmentation of sleeve.augmentations) {\n if (augmentation.name !== \"Graphene BranchiBlades Upgrade\") continue;\n augmentation.name = \"Graphene BrachiBlades Upgrade\";\n }\n }\n }\n }\n if (ver < 12) {\n if (anyPlayer.resleeves !== undefined) {\n delete anyPlayer.resleeves;\n }\n }\n if (ver < 15) {\n (Settings as any).EditorTheme = { ...defaultMonacoTheme };\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 const navigator = window.navigator as any;\n if (navigator.msSaveOrOpenBlob) {\n // IE10+\n navigator.msSaveOrOpenBlob(file, filename);\n } else {\n // Others\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\nReviver.constructors.BitburnerSaveObject = BitburnerSaveObject;\n\nexport { saveObject, loadGame, download };\n\nconst saveObject = new BitburnerSaveObject();\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, 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: any;\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(): any {\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(): any {\n return Generic_toJSON(\"CodingContract\", this);\n }\n\n /**\n * Initiatizes a CodingContract from a JSON save state.\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): 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 new Fragment(\n this.id,\n this.shape.map((a) => a.slice()),\n this.type,\n this.power,\n this.limit,\n );\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 React from \"react\";\nimport { numeralWrapper } from \"../numeralFormat\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n reputation: {\n color: theme.colors.rep,\n },\n }),\n);\n\nexport function Reputation({ reputation }: { reputation: number | string }): React.ReactElement {\n const classes = useStyles();\n return (\n \n {typeof reputation === \"number\" ? numeralWrapper.formatReputation(reputation) : reputation}\n \n );\n}\n","export interface IScriptEditorTheme {\n [key: string]: any;\n base: string;\n inherit: boolean;\n common: {\n [key: string]: string;\n accent: string;\n bg: string;\n fg: string;\n };\n syntax: {\n [key: string]: string;\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 [key: string]: any;\n line: string;\n panel: {\n [key: string]: string;\n bg: string;\n selected: string;\n border: string;\n };\n selection: {\n [key: string]: string;\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]: any }): 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): any {\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: { editor: any }): 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 { GetServer, createUniqueRandomIp, ipExists } from \"./AllServers\";\nimport { Server, IConstructorParams } from \"./Server\";\nimport { BaseServer } from \"./BaseServer\";\nimport { calculateServerGrowth } from \"./formulas/grow\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CONSTANTS } from \"../Constants\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { Programs } from \"../Programs/Programs\";\nimport { LiteratureNames } from \"../Literature/data/LiteratureNames\";\n\nimport { isValidNumber } from \"../utils/helpers/isValidNumber\";\n\n/**\n * Constructs a new server, while also ensuring that the new server\n * does not have a duplicate hostname/ip.\n */\nexport function safetlyCreateUniqueServer(params: IConstructorParams): Server {\n let hostname: string = params.hostname.replace(/ /g, `-`);\n\n if (params.ip != null && ipExists(params.ip)) {\n params.ip = createUniqueRandomIp();\n }\n\n if (GetServer(hostname) != null) {\n hostname = `${hostname}-0`;\n\n // Use a for loop to ensure that we don't get suck in an infinite loop somehow\n for (let i = 0; i < 200; ++i) {\n hostname = hostname.replace(/-[0-9]+$/, `-${i}`);\n if (GetServer(hostname) == null) {\n break;\n }\n }\n }\n\n params.hostname = hostname;\n return new Server(params);\n}\n\n/**\n * Returns the number of \"growth cycles\" needed to grow the specified server by the\n * specified amount.\n * @param server - Server being grown\n * @param growth - How much the server is being grown by, in DECIMAL form (e.g. 1.5 rather than 50)\n * @param p - Reference to Player object\n * @returns Number of \"growth cycles\" needed\n */\nexport function numCycleForGrowth(server: Server, growth: number, p: IPlayer, cores = 1): number {\n let ajdGrowthRate = 1 + (CONSTANTS.ServerBaseGrowthRate - 1) / server.hackDifficulty;\n if (ajdGrowthRate > CONSTANTS.ServerMaxGrowthRate) {\n ajdGrowthRate = CONSTANTS.ServerMaxGrowthRate;\n }\n\n const serverGrowthPercentage = server.serverGrowth / 100;\n\n const coreBonus = 1 + (cores - 1) / 16;\n const cycles =\n Math.log(growth) /\n (Math.log(ajdGrowthRate) *\n p.hacking_grow_mult *\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.hacking_grow_mult * 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","// 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 { Augmentation } from \"./Augmentation\";\nimport { Augmentations } from \"./Augmentations\";\nimport { PlayerOwnedAugmentation, IPlayerOwnedAugmentation } from \"./PlayerOwnedAugmentation\";\nimport { AugmentationNames } from \"./data/AugmentationNames\";\n\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\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 initNeuroFluxGovernor,\n initUnstableCircadianModulator,\n} from \"./AugmentationCreator\";\nimport { Router } from \"../ui/GameRoot\";\n\nexport function AddToAugmentations(aug: Augmentation): void {\n const name = aug.name;\n Augmentations[name] = aug;\n}\n\nexport function getNextNeuroFluxLevel(): number {\n // Get current Neuroflux level based on Player's augmentations\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\nfunction createAugmentations(): void {\n [\n initNeuroFluxGovernor(),\n initUnstableCircadianModulator(),\n ...initGeneralAugmentations(),\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(Augmentations);\n createAugmentations();\n updateAugmentationCosts();\n Player.reapplyAllAugmentations();\n}\n\nfunction 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\nfunction updateNeuroFluxGovernorCosts(neuroFluxGovernorAugmentation: Augmentation): void {\n let nextLevel = getNextNeuroFluxLevel();\n --nextLevel;\n const multiplier = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);\n neuroFluxGovernorAugmentation.baseRepRequirement *= multiplier * BitNodeMultipliers.AugmentationRepCost;\n neuroFluxGovernorAugmentation.baseCost *= multiplier * BitNodeMultipliers.AugmentationMoneyCost;\n\n for (let i = 0; i < Player.queuedAugmentations.length - 1; ++i) {\n neuroFluxGovernorAugmentation.baseCost *= getBaseAugmentationPriceMultiplier();\n }\n}\n\nexport function updateAugmentationCosts(): void {\n for (const name of Object.keys(Augmentations)) {\n if (Augmentations.hasOwnProperty(name)) {\n const augmentationToUpdate = Augmentations[name];\n if (augmentationToUpdate.name === AugmentationNames.NeuroFluxGovernor) {\n updateNeuroFluxGovernorCosts(augmentationToUpdate);\n } else {\n augmentationToUpdate.baseCost =\n augmentationToUpdate.startingCost *\n getGenericAugmentationPriceMultiplier() *\n BitNodeMultipliers.AugmentationMoneyCost;\n }\n }\n }\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 Augmentations[name];\n }\n AddToAugmentations(aug);\n}\n\nfunction applyAugmentation(aug: IPlayerOwnedAugmentation, reapply = false): void {\n const augObj = Augmentations[aug.name];\n\n // Apply multipliers\n for (const mult of Object.keys(augObj.mults)) {\n const v = Player.getMult(mult) * augObj.mults[mult];\n Player.setMult(mult, v);\n }\n\n // Special logic for NeuroFlux Governor\n if (aug.name === AugmentationNames.NeuroFluxGovernor) {\n if (!reapply) {\n Augmentations[aug.name].level = aug.level;\n for (let i = 0; i < Player.augmentations.length; ++i) {\n if (Player.augmentations[i].name == AugmentationNames.NeuroFluxGovernor) {\n Player.augmentations[i].level = aug.level;\n return;\n // break;\n }\n }\n }\n }\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 // Push onto Player's Augmentation list\n if (!reapply) {\n const ownedAug = new PlayerOwnedAugmentation(aug.name);\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 = Augmentations[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 Augmentations.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 { 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","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 { Operation, IOperationParams } from \"./Operation\";\nimport { Generic_fromJSON, Generic_toJSON, 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(): any {\n return Generic_toJSON(\"BlackOperation\", this);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Operation {\n return Generic_fromJSON(BlackOperation, value.data);\n }\n}\n\nReviver.constructors.BlackOperation = BlackOperation;\n","import React, { useContext } from \"react\";\nimport { IGang } from \"../IGang\";\n\nexport const Context: {\n Gang: React.Context;\n} = {\n Gang: React.createContext({} as IGang),\n};\n\nexport const useGang = (): IGang => useContext(Context.Gang);\n","/**\n * Stops an actively-running script (represented by a WorkerScript object)\n * and removes it from the global pool of active scripts.\n */\nimport { ScriptDeath } from \"./ScriptDeath\";\nimport { WorkerScript } from \"./WorkerScript\";\nimport { workerScripts } from \"./WorkerScripts\";\nimport { WorkerScriptStartStopEventEmitter } from \"./WorkerScriptStartStopEventEmitter\";\n\nimport { RunningScript } from \"../Script/RunningScript\";\nimport { GetServer } from \"../Server/AllServers\";\n\nimport { compareArrays } from \"../utils/helpers/compareArrays\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { AddRecentScript } from \"./RecentScripts\";\nimport { Player } from \"../Player\";\n\nexport function killWorkerScript(runningScriptObj: RunningScript, hostname: string, rerenderUi?: boolean): boolean;\nexport function killWorkerScript(workerScript: WorkerScript): boolean;\nexport function killWorkerScript(pid: number): boolean;\nexport function killWorkerScript(\n script: RunningScript | WorkerScript | number,\n hostname?: string,\n rerenderUi?: boolean,\n): boolean {\n if (rerenderUi == null || typeof rerenderUi !== \"boolean\") {\n rerenderUi = true;\n }\n\n if (script instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(script);\n\n return true;\n } else if (script instanceof RunningScript && typeof hostname === \"string\") {\n // Try to kill by PID\n const res = killWorkerScriptByPid(script.pid, rerenderUi);\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.name == script.filename && ws.hostname == hostname && compareArrays(ws.args, script.args)) {\n stopAndCleanUpWorkerScript(ws, rerenderUi);\n\n return true;\n }\n }\n\n return false;\n } else if (typeof script === \"number\") {\n return killWorkerScriptByPid(script, rerenderUi);\n } else {\n console.error(`killWorkerScript() called with invalid argument:`);\n console.error(script);\n return false;\n }\n}\n\nfunction killWorkerScriptByPid(pid: number, rerenderUi = true): boolean {\n const ws = workerScripts.get(pid);\n if (ws instanceof WorkerScript) {\n stopAndCleanUpWorkerScript(ws, rerenderUi);\n\n return true;\n }\n\n return false;\n}\n\nfunction stopAndCleanUpWorkerScript(workerScript: WorkerScript, rerenderUi = true): void {\n if (typeof workerScript.atExit === \"function\") {\n try {\n workerScript.atExit();\n } catch (e: any) {\n dialogBoxCreate(\n `Error trying to call atExit for script ${workerScript.name} on ${workerScript.hostname} ${workerScript.scriptRef.args} ${e}`,\n );\n }\n workerScript.atExit = undefined;\n }\n workerScript.env.stopFlag = true;\n killNetscriptDelay(workerScript);\n removeWorkerScript(workerScript, rerenderUi);\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, rerenderUi = true): void {\n const ip = workerScript.hostname;\n const name = workerScript.name;\n\n // Get the server on which the script runs\n const server = GetServer(ip);\n if (server == null) {\n console.error(`Could not find server on which this script is running: ${ip}`);\n return;\n }\n\n // Delete the RunningScript object from that server\n for (let i = 0; i < server.runningScripts.length; ++i) {\n const runningScript = server.runningScripts[i];\n if (runningScript.filename === name && compareArrays(runningScript.args, workerScript.args)) {\n server.runningScripts.splice(i, 1);\n break;\n }\n }\n\n // Recalculate ram used on that server\n\n server.updateRamUsed(0, Player);\n for (const rs of server.runningScripts) server.updateRamUsed(server.ramUsed + rs.ramUsage * rs.threads, Player);\n\n // Delete script from global pool (workerScripts)\n workerScripts.delete(workerScript.pid);\n // const res = workerScripts.delete(workerScript.pid);\n // if (!res) {\n // console.warn(`removeWorkerScript() called with WorkerScript that wasn't in the global map:`);\n // console.warn(workerScript);\n // }\n AddRecentScript(workerScript);\n\n if (rerenderUi) {\n WorkerScriptStartStopEventEmitter.emit();\n }\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 * 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","/**\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 */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function isString(value: any): boolean {\n return typeof value === \"string\" || value instanceof String;\n}\n","import { IMinMaxRange } from \"../types\";\nimport { Generic_fromJSON, Generic_toJSON, 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 as IMinMaxRange;\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(): any {\n return Generic_toJSON(\"Stock\", this);\n }\n\n /**\n * Initializes a Stock from a JSON save state\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Stock {\n return Generic_fromJSON(Stock, value.data);\n }\n}\n\nReviver.constructors.Stock = Stock;\n","/**\n * Map of all Cities in the game\n * Key = City Name, Value = City object\n */\nimport { City } from \"./City\";\nimport { IMap } from \"../types\";\n\nexport const Cities: IMap = {};\n","import { 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 const re = /^([\\w|!%,@-]+)=((\"(.+)\")|('(.+)'))$/;\n const matches = dec.match(re);\n if (matches == null || matches.length != 7) {\n return false;\n }\n\n if (global) {\n addGlobalAlias(matches[1], matches[4] || matches[6]);\n } else {\n addAlias(matches[1], matches[4] || matches[6]);\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 * 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 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","import { FormControlLabel, Switch, Tooltip, Typography } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\n\ninterface IProps {\n checked: boolean;\n onChange: (newValue: boolean, error?: string) => void;\n text: React.ReactNode;\n tooltip: React.ReactNode;\n}\n\nexport function OptionSwitch({ checked, onChange, text, tooltip }: IProps): React.ReactElement {\n const [value, setValue] = useState(checked);\n\n function handleSwitchChange(event: React.ChangeEvent): void {\n setValue(event.target.checked);\n }\n\n useEffect(() => onChange(value), [value]);\n\n return (\n }\n label={\n {tooltip}}>\n {text}\n \n }\n />\n );\n}\n","import React, { 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 { IMap } from \"../types\";\n\n// Map of material (by name) to their sizes (how much space it takes in warehouse)\nexport const MaterialSizes: IMap = {\n Water: 0.05,\n Energy: 0.01,\n Food: 0.03,\n Plants: 0.05,\n Metal: 0.1,\n Hardware: 0.06,\n Chemicals: 0.05,\n Drugs: 0.02,\n Robots: 0.5,\n AICores: 0.1,\n RealEstate: 0.005,\n \"Real Estate\": 0.005,\n \"AI Cores\": 0.1,\n};\n","import { WorkerScript } from \"./WorkerScript\";\n\n/**\n * Script death marker.\n *\n * IMPORTANT: the game engine should not base any of it's decisions on the data\n * carried in a ScriptDeath instance.\n *\n * This is because ScriptDeath instances are thrown through player code when a\n * script is killed. Which grants the player access to the class and the ability\n * to construct new instances with arbitrary data.\n */\nexport class ScriptDeath {\n /** Process ID number. */\n pid: number;\n\n /** Filename of the script. */\n name: string;\n\n /** IP Address on which the script was running */\n hostname: string;\n\n /** Status message in case of script error. */\n errorMessage = \"\";\n\n constructor(ws: WorkerScript) {\n this.pid = ws.pid;\n this.name = ws.name;\n this.hostname = ws.hostname;\n this.errorMessage = ws.errorMessage;\n\n Object.freeze(this);\n }\n}\n\nObject.freeze(ScriptDeath);\nObject.freeze(ScriptDeath.prototype);\n","export function calculateSkill(exp: number, mult = 1): number {\n return Math.max(Math.floor(mult * (32 * Math.log(exp + 534.5) - 200)), 1);\n}\n\nexport function calculateExp(skill: number, mult = 1): number {\n return Math.exp((skill / mult + 200) / 32) - 534.6;\n}\n\nexport function calculateSkillProgress(exp: number, mult = 1): ISkillProgress {\n const currentSkill = calculateSkill(exp, mult);\n const nextSkill = currentSkill + 1;\n\n let baseExperience = calculateExp(currentSkill, mult);\n if (baseExperience < 0) baseExperience = 0;\n\n let nextExperience = calculateExp(nextSkill, mult);\n if (nextExperience < 0) nextExperience = 0;\n\n const normalize = (value: number): number => ((value - baseExperience) * 100) / (nextExperience - baseExperience);\n let progress = nextExperience - baseExperience !== 0 ? normalize(exp) : 99.99;\n\n // Clamp progress: When sleeves are working out, the player gets way too much progress\n if (progress < 0) progress = 0;\n if (progress > 100) progress = 100;\n\n // Clamp floating point imprecisions\n let currentExperience = exp - baseExperience;\n let remainingExperience = nextExperience - exp;\n if (currentExperience < 0) currentExperience = 0;\n if (remainingExperience < 0) remainingExperience = 0;\n\n return {\n currentSkill,\n nextSkill,\n baseExperience,\n experience: exp,\n nextExperience,\n currentExperience,\n remainingExperience,\n progress,\n };\n}\n\nexport interface ISkillProgress {\n currentSkill: number;\n nextSkill: number;\n baseExperience: number;\n experience: number;\n nextExperience: number;\n currentExperience: number;\n remainingExperience: number;\n progress: number;\n}\n\nexport function getEmptySkillProgress(): ISkillProgress {\n return {\n currentSkill: 0,\n nextSkill: 0,\n baseExperience: 0,\n experience: 0,\n nextExperience: 0,\n currentExperience: 0,\n remainingExperience: 0,\n progress: 0,\n };\n}\n","export interface IMults {\n hack?: number;\n str?: number;\n def?: number;\n dex?: number;\n agi?: number;\n cha?: number;\n}\n\nexport enum UpgradeType {\n Weapon = \"w\",\n Armor = \"a\",\n Vehicle = \"v\",\n Rootkit = \"r\",\n Augmentation = \"g\",\n}\n\n/**\n * Defines the parameters that can be used to initialize and describe a GangMemberUpgrade\n * (defined in Gang.js)\n */\ninterface IGangMemberUpgradeMetadata {\n cost: number;\n mults: IMults;\n name: string;\n upgType: UpgradeType;\n}\n\n/**\n * Array of metadata for all Gang Member upgrades. Used to construct the global GangMemberUpgrade\n * objects in Gang.js\n */\nexport const gangMemberUpgradesMetadata: IGangMemberUpgradeMetadata[] = [\n {\n cost: 1e6,\n mults: { str: 1.04, def: 1.04 },\n name: \"Baseball Bat\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 12e6,\n mults: { str: 1.08, def: 1.08, dex: 1.08 },\n name: \"Katana\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 25e6,\n mults: { str: 1.1, def: 1.1, dex: 1.1, agi: 1.1 },\n name: \"Glock 18C\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 50e6,\n mults: { str: 1.12, def: 1.1, agi: 1.1 },\n name: \"P90C\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 60e6,\n mults: { str: 1.2, def: 1.15 },\n name: \"Steyr AUG\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 100e6,\n mults: { str: 1.25, def: 1.2 },\n name: \"AK-47\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 150e6,\n mults: { str: 1.3, def: 1.25 },\n name: \"M15A10 Assault Rifle\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 225e6,\n mults: { str: 1.3, dex: 1.25, agi: 1.3 },\n name: \"AWM Sniper Rifle\",\n upgType: UpgradeType.Weapon,\n },\n {\n cost: 2e6,\n mults: { def: 1.04 },\n name: \"Bulletproof Vest\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 5e6,\n mults: { def: 1.08 },\n name: \"Full Body Armor\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 25e6,\n mults: { def: 1.15, agi: 1.15 },\n name: \"Liquid Body Armor\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 40e6,\n mults: { def: 1.2 },\n name: \"Graphene Plating Armor\",\n upgType: UpgradeType.Armor,\n },\n {\n cost: 3e6,\n mults: { agi: 1.04, cha: 1.04 },\n name: \"Ford Flex V20\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 9e6,\n mults: { agi: 1.08, cha: 1.08 },\n name: \"ATX1070 Superbike\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 18e6,\n mults: { agi: 1.12, cha: 1.12 },\n name: \"Mercedes-Benz S9001\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 30e6,\n mults: { agi: 1.16, cha: 1.16 },\n name: \"White Ferrari\",\n upgType: UpgradeType.Vehicle,\n },\n {\n cost: 5e6,\n mults: { hack: 1.05 },\n name: \"NUKE Rootkit\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 25e6,\n mults: { hack: 1.1 },\n name: \"Soulstealer Rootkit\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 75e6,\n mults: { hack: 1.15 },\n name: \"Demon Rootkit\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 40e6,\n mults: { hack: 1.12 },\n name: \"Hmap Node\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 75e6,\n mults: { hack: 1.15 },\n name: \"Jack the Ripper\",\n upgType: UpgradeType.Rootkit,\n },\n {\n cost: 10e9,\n mults: { str: 1.3, dex: 1.3 },\n name: \"Bionic Arms\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 10e9,\n mults: { agi: 1.6 },\n name: \"Bionic Legs\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 15e9,\n mults: { str: 1.15, def: 1.15, dex: 1.15, agi: 1.15 },\n name: \"Bionic Spine\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 20e9,\n mults: { str: 1.4, def: 1.4 },\n name: \"BrachiBlades\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 12e9,\n mults: { str: 1.2, def: 1.2 },\n name: \"Nanofiber Weave\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 25e9,\n mults: { str: 1.5, agi: 1.5 },\n name: \"Synthetic Heart\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 15e9,\n mults: { str: 1.3, def: 1.3 },\n name: \"Synfibril Muscle\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 5e9,\n mults: { hack: 1.05 },\n name: \"BitWire\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 10e9,\n mults: { hack: 1.15 },\n name: \"Neuralstimulator\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 7.5e9,\n mults: { hack: 1.1 },\n name: \"DataJack\",\n upgType: UpgradeType.Augmentation,\n },\n {\n cost: 50e9,\n mults: { str: 1.7, def: 1.7 },\n name: \"Graphene Bone Lacings\",\n upgType: UpgradeType.Augmentation,\n },\n];\n","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 from \"react-draggable\";\nimport { ResizableBox } from \"react-resizable\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { workerScripts } from \"../../Netscript/WorkerScripts\";\nimport { startWorkerScript } from \"../../NetscriptWorker\";\nimport { GetServer } from \"../../Server/AllServers\";\nimport { Theme } from \"@mui/material\";\nimport { findRunningScript } from \"../../Script/ScriptHelpers\";\nimport { Player } from \"../../Player\";\nimport { debounce } from \"lodash\";\n\nlet layerCounter = 0;\n\nexport const LogBoxEvents = new EventEmitter<[RunningScript]>();\nexport const LogBoxClearEvents = new EventEmitter<[]>();\n\ninterface Log {\n id: string;\n script: RunningScript;\n}\n\nlet logs: Log[] = [];\n\nexport function LogBoxManager(): React.ReactElement {\n const setRerender = useState(true)[1];\n function rerender(): void {\n setRerender((o) => !o);\n }\n useEffect(\n () =>\n LogBoxEvents.subscribe((script: RunningScript) => {\n const id = script.server + \"-\" + script.filename + script.args.map((x: any): 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 useEffect(() =>\n LogBoxClearEvents.subscribe(() => {\n logs = [];\n rerender();\n }),\n );\n\n function close(id: string): void {\n logs = logs.filter((l) => l.id !== id);\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((theme: Theme) =>\n createStyles({\n title: {\n \"&.is-minimized + *\": {\n border: \"none\",\n margin: 0,\n \"max-height\": 0,\n padding: 0,\n \"pointer-events\": \"none\",\n visibility: \"hidden\",\n },\n },\n logs: {\n overflowY: \"scroll\",\n overflowX: \"hidden\",\n scrollbarWidth: \"auto\",\n display: \"flex\",\n flexDirection: \"column-reverse\",\n },\n success: {\n color: theme.colors.success,\n },\n error: {\n color: theme.palette.error.main,\n },\n primary: {\n color: theme.palette.primary.main,\n },\n info: {\n color: theme.palette.info.main,\n },\n warning: {\n color: theme.palette.warning.main,\n },\n }),\n);\n\nexport const logBoxBaseZIndex = 1500;\n\nfunction LogWindow(props: IProps): React.ReactElement {\n const draggableRef = useRef(null);\n const rootRef = useRef(null);\n const [script, setScript] = useState(props.script);\n const classes = useStyles();\n const container = useRef(null);\n const setRerender = useState(false)[1];\n const [minimized, setMinimized] = useState(false);\n function rerender(): void {\n setRerender((old) => !old);\n }\n\n // useEffect(\n // () =>\n // WorkerScriptStartStopEventEmitter.subscribe(() => {\n // setTimeout(() => {\n // const server = GetServer(script.server);\n // if (server === null) return;\n // const exisitingScript = findRunningScript(script.filename, script.args, server);\n // if (exisitingScript) {\n // exisitingScript.logs = script.logs.concat(exisitingScript.logs)\n // setScript(exisitingScript)\n // }\n // rerender();\n // }, 100)\n // }),\n // [],\n // );\n\n useEffect(() => {\n updateLayer();\n const id = setInterval(rerender, 1000);\n return () => clearInterval(id);\n }, []);\n\n function kill(): void {\n killWorkerScript(script, script.server, true);\n }\n\n function run(): void {\n const server = GetServer(script.server);\n if (server === null) return;\n const s = findRunningScript(script.filename, script.args, server);\n if (s === null) {\n startWorkerScript(Player, script, server);\n } else {\n setScript(s);\n }\n }\n\n function updateLayer(): void {\n const c = container.current;\n if (c === null) return;\n c.style.zIndex = logBoxBaseZIndex + layerCounter + \"\";\n layerCounter++;\n rerender();\n }\n\n function title(full = false): string {\n const maxLength = 30;\n const t = `${script.filename} ${script.args.map((x: any): 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 lineClass(s: string): string {\n if (s.match(/(^\\[[^\\]]+\\] )?ERROR/) || s.match(/(^\\[[^\\]]+\\] )?FAIL/)) {\n return classes.error;\n }\n if (s.match(/(^\\[[^\\]]+\\] )?SUCCESS/)) {\n return classes.success;\n }\n if (s.match(/(^\\[[^\\]]+\\] )?WARN/)) {\n return classes.warning;\n }\n if (s.match(/(^\\[[^\\]]+\\] )?INFO/)) {\n return classes.info;\n }\n return classes.primary;\n }\n\n // And trigger fakeDrag when the window is resized\n useEffect(() => {\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, []);\n\n const onResize = debounce((): void => {\n const node = draggableRef?.current;\n if (!node) return;\n\n if (!isOnScreen(node)) {\n resetPosition();\n }\n }, 100);\n\n const isOnScreen = (node: HTMLDivElement): boolean => {\n const bounds = node.getBoundingClientRect();\n\n return !(bounds.right < 0 || bounds.bottom < 0 || bounds.left > innerWidth || bounds.top > outerWidth);\n };\n\n const resetPosition = (): void => {\n const node = rootRef?.current;\n if (!node) return;\n const state = node.state as { x: number; y: number };\n state.x = 0;\n state.y = 0;\n node.setState(state);\n };\n\n const boundToBody = (e: any): void | false => {\n if (e.clientX < 0 || e.clientY < 0 || e.clientX > innerWidth || e.clientY > innerHeight) return false;\n };\n\n return (\n \n \n
\n \n \n );\n}\n","/**\n * Global pool of all active scripts (scripts that are currently running)\n */\nimport { WorkerScript } from \"./WorkerScript\";\n\nexport const workerScripts: Map = new Map();\n","import { 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","export enum FactionWorkType {\n Field,\n Hacking,\n None,\n Security,\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","/**\n * Functions for handling WorkerScripts, which are the underlying mechanism\n * that allows for scripts to run\n */\nimport { killWorkerScript } from \"./Netscript/killWorkerScript\";\nimport { ScriptDeath } from \"./Netscript/ScriptDeath\";\nimport { WorkerScript } from \"./Netscript/WorkerScript\";\nimport { workerScripts } from \"./Netscript/WorkerScripts\";\nimport { WorkerScriptStartStopEventEmitter } from \"./Netscript/WorkerScriptStartStopEventEmitter\";\nimport { generateNextPid } from \"./Netscript/Pid\";\n\nimport { CONSTANTS } from \"./Constants\";\nimport { Interpreter } from \"./ThirdParty/JSInterpreter\";\nimport { isScriptErrorMessage, makeRuntimeRejectMsg } from \"./NetscriptEvaluator\";\nimport { NetscriptFunctions } from \"./NetscriptFunctions\";\nimport { executeJSScript } from \"./NetscriptJSEvaluator\";\nimport { NetscriptPort, IPort } from \"./NetscriptPort\";\nimport { RunningScript } from \"./Script/RunningScript\";\nimport { getRamUsageFromRunningScript } from \"./Script/RunningScriptHelpers\";\nimport { scriptCalculateOfflineProduction } from \"./Script/ScriptHelpers\";\nimport { Script } from \"./Script/Script\";\nimport { GetAllServers } from \"./Server/AllServers\";\nimport { BaseServer } from \"./Server/BaseServer\";\nimport { Settings } from \"./Settings/Settings\";\n\nimport { generate } from \"escodegen\";\n\nimport { dialogBoxCreate } from \"./ui/React/DialogBox\";\nimport { arrayToString } from \"./utils/helpers/arrayToString\";\nimport { roundToTwo } from \"./utils/helpers/roundToTwo\";\nimport { isString } from \"./utils/helpers/isString\";\nimport { sprintf } from \"sprintf-js\";\n\nimport { parse } from \"acorn\";\nimport { simple as walksimple } from \"acorn-walk\";\nimport { areFilesEqual } from \"./Terminal/DirectoryHelpers\";\nimport { Player } from \"./Player\";\nimport { Terminal } from \"./Terminal\";\nimport { IPlayer } from \"./PersonObjects/IPlayer\";\n\n// Netscript Ports are instantiated here\nexport const NetscriptPorts: IPort[] = [];\nfor (let i = 0; i < CONSTANTS.NumNetscriptPorts; ++i) {\n NetscriptPorts.push(NetscriptPort());\n}\n\nexport function prestigeWorkerScripts(): void {\n for (const ws of workerScripts.values()) {\n ws.env.stopFlag = true;\n killWorkerScript(ws);\n }\n for (const port of NetscriptPorts) {\n port.clear();\n }\n\n WorkerScriptStartStopEventEmitter.emit();\n workerScripts.clear();\n}\n\n// JS script promises need a little massaging to have the same guarantees as netscript\n// promises. This does said massaging and kicks the script off. It returns a promise\n// that resolves or rejects when the corresponding worker script is done.\nfunction startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Promise {\n workerScript.running = true;\n\n // The name of the currently running netscript function, to prevent concurrent\n // calls to hack, grow, etc.\n let runningFn: string | null = null;\n\n // We need to go through the environment and wrap each function in such a way that it\n // can be called at most once at a time. This will prevent situations where multiple\n // hack promises are outstanding, for example.\n function wrap(propName: string, f: (...args: any[]) => Promise): (...args: any[]) => Promise {\n // This function unfortunately cannot be an async function, because we don't\n // know if the original one was, and there's no way to tell.\n return function (...args: any[]) {\n // Wrap every netscript function with a check for the stop flag.\n // This prevents cases where we never stop because we are only calling\n // netscript functions that don't check this.\n // This is not a problem for legacy Netscript because it also checks the\n // stop flag in the evaluator.\n if (workerScript.env.stopFlag) {\n throw new ScriptDeath(workerScript);\n }\n\n if (propName === \"asleep\") return f(...args); // OK for multiple simultaneous calls to sleep.\n\n const msg =\n \"Concurrent calls to Netscript functions are not allowed! \" +\n \"Did you forget to await hack(), grow(), or some other \" +\n \"promise-returning function? (Currently running: %s tried to run: %s)\";\n if (runningFn) {\n workerScript.errorMessage = makeRuntimeRejectMsg(workerScript, sprintf(msg, runningFn, propName));\n throw new ScriptDeath(workerScript);\n }\n runningFn = propName;\n\n // If the function throws an error, clear the runningFn flag first, and then re-throw it\n // This allows people to properly catch errors thrown by NS functions without getting\n // the concurrent call error above\n let result;\n try {\n result = f(...args);\n } catch (e: any) {\n runningFn = null;\n throw e;\n }\n\n if (result && result.finally !== undefined) {\n return result.finally(function () {\n runningFn = null;\n });\n } else {\n runningFn = null;\n return result;\n }\n };\n }\n\n function wrapObject(vars: any, ...tree: string[]): void {\n for (const prop of Object.keys(vars)) {\n switch (typeof vars[prop]) {\n case \"function\": {\n vars[prop] = wrap([...tree, prop].join(\".\"), vars[prop]);\n break;\n }\n case \"object\": {\n if (Array.isArray(vars[prop])) continue;\n wrapObject(vars[prop], ...tree, prop);\n break;\n }\n }\n }\n }\n wrapObject(workerScript.env.vars);\n\n // Note: the environment that we pass to the JS script only needs to contain the functions visible\n // to that script, which env.vars does at this point.\n return new Promise((resolve, reject) => {\n executeJSScript(player, workerScript.getServer().scripts, workerScript)\n .then(() => {\n resolve();\n })\n .catch((e) => reject(e));\n }).catch((e) => {\n if (e instanceof Error) {\n if (e instanceof SyntaxError) {\n workerScript.errorMessage = makeRuntimeRejectMsg(workerScript, e.message + \" (sorry we can't be more helpful)\");\n } else {\n workerScript.errorMessage = makeRuntimeRejectMsg(\n workerScript,\n e.message + ((e.stack && \"\\nstack:\\n\" + e.stack.toString()) || \"\"),\n );\n }\n throw new ScriptDeath(workerScript);\n } else if (isScriptErrorMessage(e)) {\n workerScript.errorMessage = e;\n throw new ScriptDeath(workerScript);\n } else if (e instanceof ScriptDeath) {\n throw e;\n }\n\n // Don't know what to do with it, let's try making an error message out of it\n workerScript.errorMessage = makeRuntimeRejectMsg(workerScript, \"\" + e);\n throw new ScriptDeath(workerScript);\n });\n}\n\nfunction startNetscript1Script(workerScript: WorkerScript): Promise {\n const code = workerScript.code;\n workerScript.running = true;\n\n //Process imports\n let codeWithImports, codeLineOffset;\n try {\n const importProcessingRes = processNetscript1Imports(code, workerScript);\n codeWithImports = importProcessingRes.code;\n codeLineOffset = importProcessingRes.lineOffset;\n } catch (e: any) {\n dialogBoxCreate(\"Error processing Imports in \" + workerScript.name + \": \" + e);\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n const interpreterInitialization = function (int: any, scope: any): void {\n //Add the Netscript environment\n const ns = NetscriptFunctions(workerScript);\n for (const name of Object.keys(ns)) {\n const entry = ns[name];\n if (typeof entry === \"function\") {\n //Async functions need to be wrapped. See JS-Interpreter documentation\n if (\n [\"hack\", \"grow\", \"weaken\", \"sleep\", \"prompt\", \"manualHack\", \"scp\", \"write\", \"share\", \"wget\"].includes(name)\n ) {\n const tempWrapper = function (...args: any[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length - 1; ++i) {\n if (typeof args[i] === \"object\" || args[i].constructor === Array) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n const cb = args[args.length - 1];\n const fnPromise = entry(...fnArgs);\n fnPromise\n .then(function (res: any) {\n cb(res);\n })\n .catch(function (err: any) {\n // workerscript is when you cancel a delay\n if (!(err instanceof ScriptDeath)) {\n console.error(err);\n const errorTextArray = err.split(\"|DELIMITER|\");\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n let msg = `${scriptName}@${hostname} `;\n msg += \" \";\n msg += errorMsg;\n dialogBoxCreate(msg);\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n });\n };\n int.setProperty(scope, name, int.createAsyncFunction(tempWrapper));\n } else if (\n name === \"sprintf\" ||\n name === \"vsprintf\" ||\n name === \"scp\" ||\n name == \"write\" ||\n name === \"tryWrite\" ||\n name === \"run\" ||\n name === \"exec\"\n ) {\n const tempWrapper = function (...args: any[]): void {\n const fnArgs = [];\n\n //All of the Object/array elements are in JSInterpreter format, so\n //we have to convert them back to native format to pass them to these fns\n for (let i = 0; i < args.length; ++i) {\n if (typeof args[i] === \"object\" || args[i].constructor === Array) {\n fnArgs.push(int.pseudoToNative(args[i]));\n } else {\n fnArgs.push(args[i]);\n }\n }\n\n return entry(...fnArgs);\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n } else {\n const tempWrapper = function (...args: any[]): any {\n const res = entry(...args);\n\n if (res == null) {\n return res;\n } else if (res.constructor === Array || res === Object(res)) {\n //Objects and Arrays must be converted to the interpreter's format\n return int.nativeToPseudo(res);\n } else {\n return res;\n }\n };\n int.setProperty(scope, name, int.createNativeFunction(tempWrapper));\n }\n } else {\n //bladeburner, or anything else\n int.setProperty(scope, name, int.nativeToPseudo(entry));\n }\n }\n\n //Add the arguments\n int.setProperty(scope, \"args\", int.nativeToPseudo(workerScript.args));\n };\n\n let interpreter: any;\n try {\n interpreter = new Interpreter(codeWithImports, interpreterInitialization, codeLineOffset);\n } catch (e: any) {\n dialogBoxCreate(\"Syntax ERROR in \" + workerScript.name + \": \" + e);\n workerScript.env.stopFlag = true;\n workerScript.running = false;\n killWorkerScript(workerScript);\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n function runInterpreter(): void {\n try {\n if (workerScript.env.stopFlag) {\n return reject(new ScriptDeath(workerScript));\n }\n\n let more = true;\n let i = 0;\n while (i < 3 && more) {\n more = more && interpreter.step();\n i++;\n }\n\n if (more) {\n setTimeout(runInterpreter, Settings.CodeInstructionRunTime);\n } else {\n resolve();\n }\n } catch (e: any) {\n e = e.toString();\n if (!isScriptErrorMessage(e)) {\n e = makeRuntimeRejectMsg(workerScript, e);\n }\n workerScript.errorMessage = e;\n return reject(new ScriptDeath(workerScript));\n }\n }\n\n try {\n runInterpreter();\n } catch (e: any) {\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): any {\n //allowReserved prevents 'import' from throwing error in ES5\n const ast: any = 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: any) => {\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: any[] = []; //FunctionDeclaration Node objects\n walksimple(scriptAst, {\n FunctionDeclaration: (node: any) => {\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: any) => {\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: any) => {\n fnsToImport.push(e.local.name);\n });\n\n //Walk through script and get FunctionDeclaration code for all specified fns\n const fnDeclarations: any[] = [];\n walksimple(scriptAst, {\n FunctionDeclaration: (node: any) => {\n if (fnsToImport.includes(node.id.name)) {\n fnDeclarations.push(node);\n }\n },\n });\n\n //Convert FunctionDeclarations into code\n fnDeclarations.forEach((fn: any) => {\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 * @param {RunningScript} runningScriptObj - Script that's being run\n * @param {Server} server - Server on which the script is to be run\n * @returns {number} pid of started script\n */\nexport function startWorkerScript(\n player: IPlayer,\n runningScript: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): number {\n if (createAndAddWorkerScript(player, runningScript, server, parent)) {\n // Push onto runningScripts.\n // This has to come after createAndAddWorkerScript() because that fn updates RAM usage\n server.runScript(runningScript);\n\n // Once the WorkerScript is constructed in createAndAddWorkerScript(), the RunningScript\n // object should have a PID assigned to it, so we return that\n return runningScript.pid;\n }\n\n return 0;\n}\n\n/**\n * Given a RunningScript object, constructs its corresponding WorkerScript,\n * adds it to the global 'workerScripts' pool, and begins executing it.\n * @param {RunningScript} runningScriptObj - Script that's being run\n * @param {Server} server - Server on which the script is to be run\n * returns {boolean} indicating whether or not the workerScript was successfully added\n */\nfunction createAndAddWorkerScript(\n player: IPlayer,\n runningScriptObj: RunningScript,\n server: BaseServer,\n parent?: WorkerScript,\n): boolean {\n // Update server's ram usage\n let threads = 1;\n if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) {\n threads = runningScriptObj.threads;\n } else {\n runningScriptObj.threads = 1;\n }\n const oneRamUsage = getRamUsageFromRunningScript(runningScriptObj);\n const ramUsage = roundToTwo(oneRamUsage * threads);\n const ramAvailable = server.maxRam - server.ramUsed;\n if (ramUsage > ramAvailable) {\n dialogBoxCreate(\n `Not enough RAM to run script ${runningScriptObj.filename} with args ` +\n `${arrayToString(runningScriptObj.args)}. This likely occurred because you re-loaded ` +\n `the game and the script's RAM usage increased (either because of an update to the game or ` +\n `your changes to the script.)`,\n );\n return false;\n }\n\n server.updateRamUsed(roundToTwo(server.ramUsed + ramUsage), Player);\n\n // Get the pid\n const pid = generateNextPid();\n if (pid === -1) {\n throw new Error(\n `Failed to start script because could not find available PID. This is most ` +\n `because you have too many scripts running.`,\n );\n }\n\n // Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying\n // RunningScript's PID as well\n const workerScript = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);\n workerScript.ramUsage = oneRamUsage;\n\n // Add the WorkerScript to the global pool\n workerScripts.set(pid, workerScript);\n WorkerScriptStartStopEventEmitter.emit();\n\n // Start the script's execution\n let scriptExecution: Promise | null = null; // Script's resulting promise\n if (workerScript.name.endsWith(\".js\") || workerScript.name.endsWith(\".ns\")) {\n scriptExecution = startNetscript2Script(player, workerScript);\n } else {\n scriptExecution = startNetscript1Script(workerScript);\n if (!(scriptExecution instanceof Promise)) {\n return false;\n }\n }\n\n // Once the code finishes (either resolved or rejected, doesnt matter), set its\n // running status to false\n scriptExecution\n .then(function () {\n workerScript.running = false;\n workerScript.env.stopFlag = true;\n // On natural death, the earnings are transfered to the parent if it still exists.\n if (parent !== undefined) {\n if (parent.running) {\n parent.scriptRef.onlineExpGained += runningScriptObj.onlineExpGained;\n parent.scriptRef.onlineMoneyMade += runningScriptObj.onlineMoneyMade;\n }\n }\n\n killWorkerScript(workerScript);\n workerScript.log(\"\", () => \"Script finished running\");\n })\n .catch(function (e) {\n if (e instanceof Error) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\"Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: \" + e.toString());\n return;\n } else if (e instanceof ScriptDeath) {\n if (isScriptErrorMessage(workerScript.errorMessage)) {\n const errorTextArray = workerScript.errorMessage.split(\"|DELIMITER|\");\n if (errorTextArray.length != 4) {\n console.error(\"ERROR: Something wrong with Error text in evaluator...\");\n console.error(\"Error text: \" + workerScript.errorMessage);\n return;\n }\n const hostname = errorTextArray[1];\n const scriptName = errorTextArray[2];\n const errorMsg = errorTextArray[3];\n\n let msg = `RUNTIME ERROR ${scriptName}@${hostname} (PID - ${workerScript.pid}) `;\n if (workerScript.args.length > 0) {\n msg += `Args: ${arrayToString(workerScript.args)} `;\n }\n msg += \" \";\n msg += errorMsg;\n\n dialogBoxCreate(msg);\n workerScript.log(\"\", () => \"Script crashed with runtime error\");\n } else {\n workerScript.log(\"\", () => \"Script killed\");\n return; // Already killed, so stop here\n }\n } else if (isScriptErrorMessage(e)) {\n dialogBoxCreate(\"Script runtime unknown error. This is a bug please contact game developer\");\n console.error(\n \"ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: \" +\n e.toString(),\n );\n return;\n } else {\n dialogBoxCreate(\"An unknown script died for an unknown reason. This is a bug please contact game dev\");\n console.error(e);\n }\n\n killWorkerScript(workerScript);\n });\n\n return true;\n}\n\n/**\n * Updates the online running time stat of all running scripts\n */\nexport function updateOnlineScriptTimes(numCycles = 1): void {\n const time = (numCycles * CONSTANTS._idleSpeed) / 1000; //seconds\n for (const ws of workerScripts.values()) {\n ws.scriptRef.onlineRunningTime += time;\n }\n}\n\n/**\n * Called when the game is loaded. Loads all running scripts (from all servers)\n * into worker scripts so that they will start running\n */\nexport function loadAllRunningScripts(player: IPlayer): void {\n const skipScriptLoad = window.location.href.toLowerCase().indexOf(\"?noscripts\") !== -1;\n if (skipScriptLoad) {\n Terminal.warn(\"Skipped loading player scripts during startup\");\n console.info(\"Skipping the load of any scripts during startup\");\n }\n for (const server of GetAllServers()) {\n // Reset each server's RAM usage to 0\n server.ramUsed = 0;\n\n // Reset modules on all scripts\n for (let i = 0; i < server.scripts.length; ++i) {\n server.scripts[i].markUpdated();\n }\n\n if (skipScriptLoad) {\n // Start game with no scripts\n server.runningScripts.length = 0;\n } else {\n for (let j = 0; j < server.runningScripts.length; ++j) {\n const fileName = server.runningScripts[j].filename;\n createAndAddWorkerScript(player, server.runningScripts[j], server);\n\n if (!server.runningScripts[j]) {\n // createAndAddWorkerScript can modify the server.runningScripts array if a script is invalid\n console.error(`createAndAddWorkerScript removed ${fileName} from ${server}`);\n continue;\n }\n\n // Offline production\n scriptCalculateOfflineProduction(server.runningScripts[j]);\n }\n }\n }\n}\n\n/**\n * Run a script from inside another script (run(), exec(), spawn(), etc.)\n */\nexport function runScriptFromScript(\n player: IPlayer,\n caller: string,\n server: BaseServer,\n scriptname: string,\n args: any[],\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) {\n workerScript.log(\n caller,\n () =>\n `Cannot run script '${scriptname}' (t=${threads}) on '${server.hostname}' because there is not enough available RAM!`,\n );\n return 0;\n }\n // Able to run script\n workerScript.log(\n caller,\n () => `'${scriptname}' on '${server.hostname}' with ${threads} threads and args: ${arrayToString(args)}.`,\n );\n const runningScriptObj = new RunningScript(script, args);\n runningScriptObj.threads = threads;\n runningScriptObj.server = server.hostname;\n\n return startWorkerScript(player, runningScriptObj, server, workerScript);\n }\n\n workerScript.log(caller, () => `Could not find script '${scriptname}' on '${server.hostname}'`);\n return 0;\n}\n","import 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: any[][];\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: any[], i: number) => (\n \n {row.map((elem: any, i: number) => (\n \n {elem}\n \n ))}\n \n ))}\n \n \n >\n );\n}\n","import { Generic_fromJSON, Generic_toJSON, 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(): any {\n return Generic_toJSON(\"Material\", this);\n }\n\n // Initiatizes a Material object from a JSON save state.\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): 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\ninterface Gang {\n respect: number;\n territory: number;\n wantedLevel: number;\n}\n\nexport function calculateWantedPenalty(gang: Gang): number {\n return gang.respect / (gang.respect + gang.wantedLevel);\n}\n\nexport function calculateRespectGain(gang: Gang, 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: Gang, 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: Gang, member: GangMember, task: GangMemberTask): number {\n if (task.baseMoney === 0) return 0;\n let statWeight =\n (task.hackWeight / 100) * member.hack +\n (task.strWeight / 100) * member.str +\n (task.defWeight / 100) * member.def +\n (task.dexWeight / 100) * member.dex +\n (task.agiWeight / 100) * member.agi +\n (task.chaWeight / 100) * member.cha;\n\n statWeight -= 3.2 * task.difficulty;\n if (statWeight <= 0) return 0;\n const territoryMult = Math.max(0.005, Math.pow(gang.territory * 100, task.territory.money) / 100);\n if (isNaN(territoryMult) || territoryMult <= 0) return 0;\n const respectMult = calculateWantedPenalty(gang);\n const territoryPenalty = (0.2 * gang.territory + 0.8) * BitNodeMultipliers.GangSoftcap;\n return Math.pow(5 * task.baseMoney * statWeight * territoryMult * respectMult, territoryPenalty);\n}\n\nexport function calculateAscensionPointsGain(exp: number): number {\n return Math.max(exp - 1000, 0);\n}\n\nexport function calculateAscensionMult(points: number): number {\n return Math.max(Math.pow(points / 2000, 0.5), 1);\n}\n","import { FactionInfo, FactionInfos } from \"./FactionInfo\";\nimport { favorToRep, repToFavor } from \"./formulas/favor\";\nimport { Generic_fromJSON, Generic_toJSON, 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(): any {\n return Generic_toJSON(\"Faction\", this);\n }\n\n /**\n * Initiatizes a Faction object from a JSON save state.\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Faction {\n return Generic_fromJSON(Faction, value.data);\n }\n}\n\nReviver.constructors.Faction = Faction;\n","import { Reviver, Generic_toJSON, Generic_fromJSON } 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 { IRouter, Page } 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 { BlackOperationNames } from \"./data/BlackOperationNames\";\nimport { KEY } from \"../utils/helpers/keyCodes\";\n\ninterface BlackOpsAttempt {\n error?: string;\n isAvailable?: boolean;\n action?: BlackOperation;\n}\n\nexport class Bladeburner implements IBladeburner {\n numHosp = 0;\n moneyLost = 0;\n rank = 0;\n maxRank = 0;\n\n skillPoints = 0;\n totalSkillPoints = 0;\n\n teamSize = 0;\n 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: any = {};\n city: string = BladeburnerConstants.CityNames[2];\n skills: any = {};\n skillMultipliers: any = {};\n staminaBonus = 0;\n maxStamina = 0;\n stamina = 0;\n contracts: any = {};\n operations: any = {};\n blackops: any = {};\n logging: any = {\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(player: IPlayer, 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);\n } catch (e: any) {\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);\n } catch (e: any) {\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);\n } catch (e: any) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"Recruitment\"]:\n this.actionTimeToComplete = this.getRecruitmentTime(player);\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): void {\n // This does NOT handle deduction of skill points\n const skillName = skill.name;\n if (this.skills[skillName]) {\n ++this.skills[skillName];\n } else {\n this.skills[skillName] = 1;\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: any) {\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 }\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 let mult = this.skillMultipliers[multKeys[i]];\n if (mult && mult !== 1) {\n mult = formatNumber(mult, 3);\n switch (multKeys[i]) {\n case \"successChanceAll\":\n this.postToConsole(\"Total Success Chance: x\" + mult);\n break;\n case \"successChanceStealth\":\n this.postToConsole(\"Stealth Success Chance: x\" + mult);\n break;\n case \"successChanceKill\":\n this.postToConsole(\"Retirement Success Chance: x\" + mult);\n break;\n case \"successChanceContract\":\n this.postToConsole(\"Contract Success Chance: x\" + mult);\n break;\n case \"successChanceOperation\":\n this.postToConsole(\"Operation Success Chance: x\" + mult);\n break;\n case \"successChanceEstimate\":\n this.postToConsole(\"Synthoid Data Estimate: x\" + mult);\n break;\n case \"actionTime\":\n this.postToConsole(\"Action Time: x\" + mult);\n break;\n case \"effHack\":\n this.postToConsole(\"Hacking Skill: x\" + mult);\n break;\n case \"effStr\":\n this.postToConsole(\"Strength: x\" + mult);\n break;\n case \"effDef\":\n this.postToConsole(\"Defense: x\" + mult);\n break;\n case \"effDex\":\n this.postToConsole(\"Dexterity: x\" + mult);\n break;\n case \"effAgi\":\n this.postToConsole(\"Agility: x\" + mult);\n break;\n case \"effCha\":\n this.postToConsole(\"Charisma: x\" + mult);\n break;\n case \"effInt\":\n this.postToConsole(\"Intelligence: x\" + mult);\n break;\n case \"stamina\":\n this.postToConsole(\"Stamina: x\" + mult);\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];\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 === '\"') {\n // Double quotes\n const endQuote = command.indexOf('\"', 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 === \"'\") {\n // Single quotes, same thing as above\n const endQuote = command.indexOf(\"'\", 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 * Process stat gains from Contracts, Operations, and Black Operations\n * @param action(Action obj) - Derived action class\n * @param success(bool) - Whether action was successful\n */\n gainActionStats(player: IPlayer, action: IAction, success: boolean): void {\n const difficulty = action.getDifficulty();\n\n /**\n * Gain multiplier based on difficulty. If it changes then the\n * same variable calculated in completeAction() needs to change too\n */\n const difficultyMult =\n Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) +\n difficulty / BladeburnerConstants.DiffMultLinearFactor;\n\n const time = this.actionTimeToComplete;\n const successMult = success ? 1 : 0.5;\n\n const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult;\n const unweightedIntGain = time * BladeburnerConstants.BaseIntGain * successMult * difficultyMult;\n const skillMult = this.skillMultipliers.expGain;\n player.gainHackingExp(unweightedGain * action.weights.hack * player.hacking_exp_mult * skillMult);\n player.gainStrengthExp(unweightedGain * action.weights.str * player.strength_exp_mult * skillMult);\n player.gainDefenseExp(unweightedGain * action.weights.def * player.defense_exp_mult * skillMult);\n player.gainDexterityExp(unweightedGain * action.weights.dex * player.dexterity_exp_mult * skillMult);\n player.gainAgilityExp(unweightedGain * action.weights.agi * player.agility_exp_mult * skillMult);\n player.gainCharismaExp(unweightedGain * action.weights.cha * player.charisma_exp_mult * skillMult);\n player.gainIntelligenceExp(unweightedIntGain * action.weights.int * skillMult);\n }\n\n getDiplomacyEffectiveness(player: IPlayer): number {\n // Returns a decimal by which the city's chaos level should be multiplied (e.g. 0.98)\n const CharismaLinearFactor = 1e3;\n const CharismaExponentialFactor = 0.045;\n\n const charismaEff = Math.pow(player.charisma, CharismaExponentialFactor) + player.charisma / CharismaLinearFactor;\n return (100 - charismaEff) / 100;\n }\n\n getRecruitmentSuccessChance(player: IPlayer): number {\n return Math.pow(player.charisma, 0.45) / (this.teamSize + 1);\n }\n\n getRecruitmentTime(player: IPlayer): number {\n const effCharisma = player.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 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): 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 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): void {\n if (this.action.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 (this.action.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: \" + this.action.name);\n }\n }\n }\n\n completeAction(router: IRouter, player: IPlayer): void {\n switch (this.action.type) {\n case ActionTypes[\"Contract\"]:\n case ActionTypes[\"Operation\"]: {\n try {\n const isOperation = this.action.type === ActionTypes[\"Operation\"];\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 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 // Stamina loss is based on difficulty\n this.stamina -= BladeburnerConstants.BaseStaminaLoss * difficultyMultiplier;\n if (this.stamina < 0) {\n this.stamina = 0;\n }\n\n // Process Contract/Operation success/failure\n if (action.attempt(this)) {\n this.gainActionStats(player, action, true);\n ++action.successes;\n --action.count;\n\n // Earn money for contracts\n let moneyGain = 0;\n if (!isOperation) {\n moneyGain = BladeburnerConstants.ContractBaseMoneyGain * rewardMultiplier * this.skillMultipliers.money;\n player.gainMoney(moneyGain, \"bladeburner\");\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(player, gain);\n if (isOperation && this.logging.ops) {\n this.log(action.name + \" successfully completed! Gained \" + formatNumber(gain, 3) + \" rank\");\n } else if (!isOperation && this.logging.contracts) {\n this.log(\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) : this.completeContract(true);\n } else {\n this.gainActionStats(player, action, false);\n ++action.failures;\n let loss = 0,\n damage = 0;\n if (action.rankLoss) {\n loss = addOffset(action.rankLoss * rewardMultiplier, 10);\n this.changeRank(player, -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 (player.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(action.name + \" failed! \" + logLossText);\n } else if (!isOperation && this.logging.contracts) {\n this.log(action.name + \" contract failed! \" + logLossText);\n }\n isOperation ? this.completeOperation(false) : this.completeContract(false);\n }\n if (action.autoLevel) {\n action.level = action.maxLevel;\n } // Autolevel\n this.startAction(player, this.action); // Repeat action\n } catch (e: any) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"BlackOp\"]:\n case ActionTypes[\"BlackOperation\"]: {\n try {\n const action = this.getActionObject(this.action);\n if (action == null || !(action instanceof BlackOperation)) {\n throw new Error(\"Failed to get BlackOperation Object for: \" + this.action.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)) {\n this.gainActionStats(player, action, true);\n action.count = 0;\n this.blackops[action.name] = true;\n let rankGain = 0;\n if (action.rankGain) {\n rankGain = addOffset(action.rankGain * BitNodeMultipliers.BladeburnerRank, 10);\n this.changeRank(player, rankGain);\n }\n teamLossMax = Math.ceil(teamCount / 2);\n\n // Operation Daedalus\n if (action.name === BlackOperationNames.OperationDaedalus) {\n this.resetAction();\n return router.toBitVerse(false, false);\n }\n\n if (this.logging.blackops) {\n this.log(action.name + \" successful! Gained \" + formatNumber(rankGain, 1) + \" rank\");\n }\n } else {\n this.gainActionStats(player, action, false);\n let rankLoss = 0;\n let damage = 0;\n if (action.rankLoss) {\n rankLoss = addOffset(action.rankLoss, 10);\n this.changeRank(player, -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 (player.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 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 this.teamLost += losses;\n if (this.logging.blackops) {\n this.log(\"You lost \" + formatNumber(losses, 0) + \" team members during \" + action.name);\n }\n }\n } catch (e: any) {\n exceptionAlert(e);\n }\n break;\n }\n case ActionTypes[\"Training\"]: {\n this.stamina -= 0.5 * BladeburnerConstants.BaseStaminaLoss;\n const strExpGain = 30 * player.strength_exp_mult,\n defExpGain = 30 * player.defense_exp_mult,\n dexExpGain = 30 * player.dexterity_exp_mult,\n agiExpGain = 30 * player.agility_exp_mult,\n staminaGain = 0.04 * this.skillMultipliers.stamina;\n player.gainStrengthExp(strExpGain);\n player.gainDefenseExp(defExpGain);\n player.gainDexterityExp(dexExpGain);\n player.gainAgilityExp(agiExpGain);\n this.staminaBonus += staminaGain;\n if (this.logging.general) {\n this.log(\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 this.startAction(player, this.action); // Repeat action\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(player.hacking, 0.3) +\n 0.04 * Math.pow(player.intelligence, 0.9) +\n 0.02 * Math.pow(player.charisma, 0.3);\n eff *= player.bladeburner_analysis_mult;\n if (isNaN(eff) || eff < 0) {\n throw new Error(\"Field Analysis Effectiveness calculated to be NaN or negative\");\n }\n const hackingExpGain = 20 * player.hacking_exp_mult;\n const charismaExpGain = 20 * player.charisma_exp_mult;\n const rankGain = 0.1 * BitNodeMultipliers.BladeburnerRank;\n player.gainHackingExp(hackingExpGain);\n player.gainIntelligenceExp(BladeburnerConstants.BaseIntGain);\n player.gainCharismaExp(charismaExpGain);\n this.changeRank(player, rankGain);\n this.getCurrentCity().improvePopulationEstimateByPercentage(eff * this.skillMultipliers.successChanceEstimate);\n if (this.logging.general) {\n this.log(\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 this.startAction(player, this.action); // Repeat action\n break;\n }\n case ActionTypes[\"Recruitment\"]: {\n const successChance = this.getRecruitmentSuccessChance(player);\n if (Math.random() < successChance) {\n const expGain = 2 * BladeburnerConstants.BaseStatGain * this.actionTimeToComplete;\n player.gainCharismaExp(expGain);\n ++this.teamSize;\n if (this.logging.general) {\n this.log(\"Successfully recruited a team member! Gained \" + formatNumber(expGain, 1) + \" charisma exp\");\n }\n } else {\n const expGain = BladeburnerConstants.BaseStatGain * this.actionTimeToComplete;\n player.gainCharismaExp(expGain);\n if (this.logging.general) {\n this.log(\"Failed to recruit a team member. Gained \" + formatNumber(expGain, 1) + \" charisma exp\");\n }\n }\n this.startAction(player, this.action); // Repeat action\n break;\n }\n case ActionTypes[\"Diplomacy\"]: {\n const eff = this.getDiplomacyEffectiveness(player);\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 `Diplomacy completed. Chaos levels in the current city fell by ${numeralWrapper.formatPercentage(1 - eff)}`,\n );\n }\n this.startAction(player, this.action); // Repeat Action\n break;\n }\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]: {\n player.regenerateHp(BladeburnerConstants.HrcHpGain);\n\n const staminaGain = this.maxStamina * (BladeburnerConstants.HrcStaminaGain / 100);\n this.stamina = Math.min(this.maxStamina, this.stamina + staminaGain);\n this.startAction(player, this.action);\n if (this.logging.general) {\n this.log(\n `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(`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\n this.startAction(player, this.action);\n break;\n }\n default:\n console.error(`Bladeburner.completeAction() called for invalid action: ${this.action.type}`);\n break;\n }\n }\n\n changeRank(player: IPlayer, 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 * player.faction_rep_mult * 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 return this.completeAction(router, player);\n }\n }\n\n calculateStaminaGainPerSecond(player: IPlayer): number {\n const effAgility = player.agility * this.skillMultipliers.effAgi;\n const maxStaminaBonus = this.maxStamina / BladeburnerConstants.MaxStaminaToGainFactor;\n const gain = (BladeburnerConstants.StaminaGainPerSecond + maxStaminaBonus) * Math.pow(effAgility, 0.17);\n return gain * (this.skillMultipliers.stamina * player.bladeburner_stamina_gain_mult);\n }\n\n calculateMaxStamina(player: IPlayer): void {\n const effAgility = player.agility * this.skillMultipliers.effAgi;\n const maxStamina =\n (Math.pow(effAgility, 0.8) + this.staminaBonus) *\n this.skillMultipliers.stamina *\n player.bladeburner_max_stamina_mult;\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 // Edge case condition...if Operation Daedalus is complete trigger the BitNode\n if (router.page() !== Page.BitVerse && this.blackops.hasOwnProperty(BlackOperationNames.OperationDaedalus)) {\n return router.toBitVerse(false, false);\n }\n\n // If the Player starts doing some other actions, set action to idle and alert\n if (player.hasAugmentation(AugmentationNames.BladesSimulacrum) === false && player.isWorking) {\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) as Contract[]) {\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) as Operation[]) {\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: any) {\n this.resetAction();\n workerScript.log(\"bladeburner.startAction\", () => errorLogText);\n return false;\n }\n }\n\n getActionTimeNetscriptFn(player: IPlayer, 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.getActionTime\", () => errorLogText);\n return -1;\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getActionTime\", () => errorLogText);\n return -1;\n }\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) * 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(player) * 1000;\n case ActionTypes[\"Diplomacy\"]:\n case ActionTypes[\"Hyperbolic Regeneration Chamber\"]:\n case ActionTypes[\"Incite Violence\"]:\n return 60000;\n default:\n workerScript.log(\"bladeburner.getActionTime\", () => errorLogText);\n return -1;\n }\n }\n\n getActionEstimatedSuccessChanceNetscriptFn(\n player: IPlayer,\n type: string,\n name: string,\n workerScript: WorkerScript,\n ): [number, 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.getActionEstimatedSuccessChance\", () => errorLogText);\n return [-1, -1];\n }\n\n const actionObj = this.getActionObject(actionId);\n if (actionObj == null) {\n workerScript.log(\"bladeburner.getActionEstimatedSuccessChance\", () => errorLogText);\n return [-1, -1];\n }\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);\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(player);\n return [recChance, recChance];\n }\n default:\n workerScript.log(\"bladeburner.getActionEstimatedSuccessChance\", () => errorLogText);\n return [-1, -1];\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, 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);\n } else {\n return skill.calculateCost(this.skills[skillName]);\n }\n }\n\n upgradeSkillNetscriptFn(skillName: string, 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);\n\n if (skill.maxLvl && currentLevel >= skill.maxLvl) {\n workerScript.log(\"bladeburner.upgradeSkill\", () => `Skill '${skillName}' is already maxed.`);\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} (You have ${this.skillPoints}, you need ${cost})`,\n );\n return false;\n }\n\n this.skillPoints -= cost;\n this.upgradeSkill(skill);\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(): any {\n return Generic_toJSON(\"Bladeburner\", this);\n }\n\n /**\n * Initiatizes a Bladeburner object from a JSON save state.\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Bladeburner {\n return Generic_fromJSON(Bladeburner, value.data);\n }\n}\n\nReviver.constructors.Bladeburner = Bladeburner;\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 { 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","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 LinearProgress from \"@mui/material/LinearProgress\";\nimport React, { useState, useEffect } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst TimerProgress = withStyles((theme: Theme) => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n bar: {\n transition: \"none\",\n backgroundColor: theme.palette.primary.main,\n },\n}))(LinearProgress);\n\ninterface IProps {\n millis: number;\n onExpire: () => void;\n}\n\nexport function GameTimer(props: IProps): React.ReactElement {\n const [v, setV] = useState(100);\n\n const tick = 200;\n useEffect(() => {\n const intervalId = setInterval(() => {\n setV((old) => {\n if (old <= 0) props.onExpire();\n return old - (tick / props.millis) * 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 (\n \n \n \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","/**\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 { 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} = {\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};\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, 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(): any {\n return Generic_toJSON(\"HacknetNode\", this);\n }\n\n /**\n * Initiatizes a HacknetNode object from a JSON save state.\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): 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, 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 filename: string = this.fn;\n const file: Blob = new Blob([this.text], { type: \"text/plain\" });\n /* tslint:disable-next-line:strict-boolean-expressions */\n const navigator = window.navigator as any;\n if (navigator.msSaveOrOpenBlob) {\n // IE10+\n navigator.msSaveOrOpenBlob(file, filename);\n } else {\n // Others\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 /**\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(): any {\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 // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): 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 as TextFile[]) {\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 { 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","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","/**\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 { 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 { 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 * 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","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, 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(): any {\n return Generic_toJSON(\"Company\", this);\n }\n\n /**\n * Initiatizes a Company from a JSON save state.\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Company {\n return Generic_fromJSON(Company, value.data);\n }\n}\n\nReviver.constructors.Company = Company;\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, 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: any) {\n exceptionAlert(e);\n }\n }\n\n // Serialize the current object to a JSON save state.\n toJSON(): any {\n return Generic_toJSON(\"Warehouse\", this);\n }\n\n // Initiatizes a Warehouse object from a JSON save state.\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Warehouse {\n return Generic_fromJSON(Warehouse, value.data);\n }\n}\n\nReviver.constructors.Warehouse = Warehouse;\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","/**\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 { IPlayer } from \"../IPlayer\";\nimport { Faction } from \"../../Faction/Faction\";\nimport { CONSTANTS } from \"../../Constants\";\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\nimport { CalculateShareMult } from \"../../NetworkShare/Share\";\n\nfunction mult(f: Faction): number {\n let favorMult = 1 + f.favor / 100;\n if (isNaN(favorMult)) {\n favorMult = 1;\n }\n return favorMult * BitNodeMultipliers.FactionWorkRepGain;\n}\n\nexport function getHackingWorkRepGain(p: IPlayer, f: Faction): number {\n return (\n ((p.hacking + p.intelligence / 3) / CONSTANTS.MaxSkillLevel) *\n p.faction_rep_mult *\n p.getIntelligenceBonus(1) *\n mult(f) *\n CalculateShareMult()\n );\n}\n\nexport function getFactionSecurityWorkRepGain(p: IPlayer, f: Faction): number {\n const t =\n (0.9 * (p.strength + p.defense + p.dexterity + p.agility + (p.hacking + p.intelligence) * CalculateShareMult())) /\n CONSTANTS.MaxSkillLevel /\n 4.5;\n return t * p.faction_rep_mult * mult(f) * p.getIntelligenceBonus(1);\n}\n\nexport function getFactionFieldWorkRepGain(p: IPlayer, f: Faction): number {\n const t =\n (0.9 *\n (p.strength +\n p.defense +\n p.dexterity +\n p.agility +\n p.charisma +\n (p.hacking + p.intelligence) * CalculateShareMult())) /\n CONSTANTS.MaxSkillLevel /\n 5.5;\n return t * p.faction_rep_mult * mult(f) * p.getIntelligenceBonus(1);\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 { WorkerScript } from \"../Netscript/WorkerScript\";\nimport { Player } from \"../Player\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\n\nimport * as React from \"react\";\n\n/**\n * Each function takes an optional config object as its last argument\n */\ninterface IOptions {\n rerenderFn?: () => void;\n suppressDialog?: boolean;\n}\n\n/**\n * Attempt to buy a stock in the long position\n * @param {Stock} stock - Stock to buy\n * @param {number} shares - Number of shares to buy\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function buyStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.buy\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\"Failed to buy stock. This may be a bug, contact developer\");\n }\n\n return false;\n }\n\n // Does player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Long);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (workerScript) {\n workerScript.log(\n \"stock.buy\",\n () =>\n `You do not have enough money to purchase this position. You need ${numeralWrapper.formatMoney(totalPrice)}.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (workerScript) {\n workerScript.log(\n \"stock.buy\",\n () =>\n `Purchasing '${shares + stock.playerShares + stock.playerShortShares}' shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${numeralWrapper.formatShares(\n stock.maxShares,\n )} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShares * stock.playerAvgPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShares = Math.round(stock.playerShares + shares);\n stock.playerAvgPx = newTotal / stock.playerShares;\n processTransactionForecastMovement(stock, shares);\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt = `Bought ${numeralWrapper.formatShares(shares)} shares of ${\n stock.symbol\n } for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} in commission fees.`;\n workerScript.log(\"stock.buy\", () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Bought {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for . Paid{\" \"}\n in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the long position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * returns {boolean} - true if successfully sells given number of shares OR MAX owned, false otherwise\n */\nexport function sellStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Sanitize/Validate arguments\n if (stock == null || shares < 0 || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.sell\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to sell stock. This is probably due to an invalid quantity. Otherwise, this may be a bug, contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShares) {\n shares = stock.playerShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const gains = getSellTransactionGain(stock, shares, PositionTypes.Long);\n if (gains == null) {\n return false;\n }\n let netProfit = gains - stock.playerAvgPx * shares;\n if (isNaN(netProfit)) {\n netProfit = 0;\n }\n Player.gainMoney(gains, \"stock\");\n if (workerScript) {\n workerScript.scriptRef.onlineMoneyMade += netProfit;\n Player.scriptProdSinceLastAug += netProfit;\n }\n\n stock.playerShares = Math.round(stock.playerShares - shares);\n if (stock.playerShares === 0) {\n stock.playerAvgPx = 0;\n }\n\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Sold ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(gains)}.`;\n workerScript.log(\"stock.sell\", () => resultTxt);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n Sold {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions, you gained a total of{\" \"}\n .\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to buy a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to short\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} - true if successful, false otherwise\n */\nexport function shortStock(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n // Validate arguments\n shares = Math.round(shares);\n if (shares <= 0) {\n return false;\n }\n if (stock == null || isNaN(shares)) {\n if (workerScript) {\n workerScript.log(\"stock.short\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n \"Failed to initiate a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n return false;\n }\n\n // Does the player have enough money?\n const totalPrice = getBuyTransactionCost(stock, shares, PositionTypes.Short);\n if (totalPrice == null) {\n return false;\n }\n if (Player.money < totalPrice) {\n if (workerScript) {\n workerScript.log(\n \"stock.short\",\n () =>\n \"You do not have enough \" +\n \"money to purchase this short position. You need \" +\n numeralWrapper.formatMoney(totalPrice),\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n <>\n You do not have enough money to purchase this short position. You need \n >,\n );\n }\n\n return false;\n }\n\n // Would this purchase exceed the maximum number of shares?\n if (shares + stock.playerShares + stock.playerShortShares > stock.maxShares) {\n if (workerScript) {\n workerScript.log(\n \"stock.short\",\n () =>\n `This '${shares + stock.playerShares + stock.playerShortShares}' short shares would exceed ${\n stock.symbol\n }'s maximum (${stock.maxShares}) number of shares.`,\n );\n } else if (opts.suppressDialog !== true) {\n dialogBoxCreate(\n `You cannot purchase this many shares. ${stock.symbol} has a maximum of ${stock.maxShares} shares.`,\n );\n }\n\n return false;\n }\n\n const origTotal = stock.playerShortShares * stock.playerAvgShortPx;\n Player.loseMoney(totalPrice, \"stock\");\n const newTotal = origTotal + totalPrice - CONSTANTS.StockMarketCommission;\n stock.playerShortShares = Math.round(stock.playerShortShares + shares);\n stock.playerAvgShortPx = newTotal / stock.playerShortShares;\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Bought a short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} ` +\n `for ${numeralWrapper.formatMoney(totalPrice)}. Paid ${numeralWrapper.formatMoney(\n CONSTANTS.StockMarketCommission,\n )} ` +\n `in commission fees.`;\n workerScript.log(\"stock.short\", () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Bought a short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol} for{\" \"}\n . Paid in commission fees.\n >,\n );\n }\n\n return true;\n}\n\n/**\n * Attempt to sell a stock in the short position\n * @param {Stock} stock - Stock to sell\n * @param {number} shares - Number of shares to sell\n * @param {WorkerScript} workerScript - If this is being called through Netscript\n * @param opts - Optional configuration for this function's behavior. See top of file\n * @returns {boolean} true if successfully sells given amount OR max owned, false otherwise\n */\nexport function sellShort(\n stock: Stock,\n shares: number,\n workerScript: WorkerScript | null = null,\n opts: IOptions = {},\n): boolean {\n if (stock == null || isNaN(shares) || shares < 0) {\n if (workerScript) {\n workerScript.log(\"stock.sellShort\", () => `Invalid arguments: stock='${stock}' shares='${shares}'`);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n \"Failed to sell a short position in a stock. This is probably \" +\n \"due to an invalid quantity. Otherwise, this may be a bug, so contact developer\",\n );\n }\n\n return false;\n }\n shares = Math.round(shares);\n if (shares > stock.playerShortShares) {\n shares = stock.playerShortShares;\n }\n if (shares === 0) {\n return false;\n }\n\n const origCost = shares * stock.playerAvgShortPx;\n const totalGain = getSellTransactionGain(stock, shares, PositionTypes.Short);\n if (totalGain == null || isNaN(totalGain) || origCost == null) {\n if (workerScript) {\n workerScript.log(\n \"stock.sellShort\",\n () => `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n `Failed to sell short position in a stock. This is probably either due to invalid arguments, or a bug`,\n );\n }\n\n return false;\n }\n let profit = totalGain - origCost;\n if (isNaN(profit)) {\n profit = 0;\n }\n Player.gainMoney(totalGain, \"stock\");\n if (workerScript) {\n workerScript.scriptRef.onlineMoneyMade += profit;\n Player.scriptProdSinceLastAug += profit;\n }\n\n stock.playerShortShares = Math.round(stock.playerShortShares - shares);\n if (stock.playerShortShares === 0) {\n stock.playerAvgShortPx = 0;\n }\n processTransactionForecastMovement(stock, shares);\n\n if (opts.rerenderFn != null && typeof opts.rerenderFn === \"function\") {\n opts.rerenderFn();\n }\n\n if (workerScript) {\n const resultTxt =\n `Sold your short position of ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol}. ` +\n `After commissions, you gained a total of ${numeralWrapper.formatMoney(totalGain)}`;\n workerScript.log(\"stock.sellShort\", () => resultTxt);\n } else if (!opts.suppressDialog) {\n dialogBoxCreate(\n <>\n Sold your short position of {numeralWrapper.formatShares(shares)} shares of {stock.symbol}. After commissions,\n you gained a total of \n >,\n );\n }\n\n return true;\n}\n","import React from \"react\";\nimport { TextFile } from \"../TextFile\";\nimport { Script } from \"../Script/Script\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\nimport { IRouter } from \"../ui/Router\";\nimport { Settings } from \"../Settings/Settings\";\nimport { formatTime } from \"../utils/helpers/formatTime\";\nimport { BaseServer } from \"../Server/BaseServer\";\n\nexport class Output {\n text: string;\n color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\";\n constructor(text: string, color: \"primary\" | \"error\" | \"success\" | \"info\" | \"warn\") {\n if (Settings.TimestampsFormat) text = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + text;\n this.text = text;\n this.color = color;\n }\n}\n\nexport class RawOutput {\n raw: React.ReactNode;\n constructor(node: React.ReactNode) {\n if (Settings.TimestampsFormat)\n node = (\n <>\n [{formatTime(Settings.TimestampsFormat)}] {node}\n >\n );\n this.raw = node;\n }\n}\n\nexport class Link {\n hostname: string;\n dashes: string;\n constructor(dashes: string, hostname: string) {\n if (Settings.TimestampsFormat) dashes = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + dashes;\n this.hostname = hostname;\n this.dashes = dashes;\n }\n}\n\nexport class TTimer {\n time: number;\n timeLeft: number;\n action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\";\n server?: BaseServer;\n\n constructor(time: number, action: \"h\" | \"b\" | \"a\" | \"g\" | \"w\", server?: BaseServer) {\n this.time = time;\n this.timeLeft = time;\n this.action = action;\n this.server = server;\n }\n}\n\nexport interface ITerminal {\n action: TTimer | null;\n\n commandHistory: string[];\n commandHistoryIndex: number;\n\n outputHistory: (Output | Link | RawOutput)[];\n\n // True if a Coding Contract prompt is opened\n contractOpen: boolean;\n\n // Full Path of current directory\n // Excludes the trailing forward slash\n currDir: string;\n\n print(s: string): void;\n printRaw(node: React.ReactNode): void;\n error(s: string): void;\n success(s: string): void;\n info(s: string): void;\n warn(s: string): void;\n\n clear(): void;\n startAnalyze(player: IPlayer): void;\n startBackdoor(player: IPlayer): void;\n startHack(player: IPlayer): void;\n startGrow(player: IPlayer): void;\n startWeaken(player: IPlayer): void;\n finishHack(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishGrow(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishWeaken(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishBackdoor(router: IRouter, player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAnalyze(player: IPlayer, server: BaseServer, cancelled?: boolean): void;\n finishAction(router: IRouter, player: IPlayer, cancelled?: boolean): void;\n getFilepath(filename: string): string;\n getFile(player: IPlayer, filename: string): Script | TextFile | string | null;\n getScript(player: IPlayer, filename: string): Script | null;\n getTextFile(player: IPlayer, filename: string): TextFile | null;\n getLitFile(player: IPlayer, filename: string): string | null;\n cwd(): string;\n setcwd(dir: string): void;\n runContract(player: IPlayer, name: string): void;\n executeScanAnalyzeCommand(player: IPlayer, depth?: number, all?: boolean): void;\n connectToServer(player: IPlayer, server: string): void;\n executeCommand(router: IRouter, player: IPlayer, command: string): void;\n executeCommands(router: IRouter, player: IPlayer, commands: string): void;\n // If there was any changes, will return true, once.\n process(router: IRouter, player: IPlayer, cycles: number): void;\n prestige(): void;\n getProgressText(): string;\n}\n","import { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\n\ninterface ISkillParams {\n name: string;\n desc: string;\n\n baseCost?: number;\n costInc?: number;\n maxLvl?: number;\n\n successChanceAll?: number;\n successChanceStealth?: number;\n successChanceKill?: number;\n successChanceContract?: number;\n successChanceOperation?: number;\n successChanceEstimate?: number;\n\n actionTime?: number;\n\n effHack?: number;\n effStr?: number;\n effDef?: number;\n effDex?: number;\n effAgi?: number;\n effCha?: number;\n\n stamina?: number;\n money?: number;\n expGain?: number;\n}\n\nexport class Skill {\n name: string;\n desc: string;\n // Cost is in Skill Points\n baseCost = 1;\n // Additive cost increase per level\n costInc = 1;\n maxLvl = 0;\n\n /**\n * These benefits are additive. So total multiplier will be level (handled externally) times the\n * effects below\n */\n successChanceAll = 0;\n successChanceStealth = 0;\n successChanceKill = 0;\n successChanceContract = 0;\n successChanceOperation = 0;\n\n /**\n * This multiplier affects everything that increases synthoid population/community estimate\n * e.g. Field analysis, Investigation Op, Undercover Op\n */\n successChanceEstimate = 0;\n actionTime = 0;\n effHack = 0;\n effStr = 0;\n effDef = 0;\n effDex = 0;\n effAgi = 0;\n effCha = 0;\n stamina = 0;\n money = 0;\n expGain = 0;\n\n constructor(params: ISkillParams = { name: \"foo\", desc: \"foo\" }) {\n if (!params.name) {\n throw new Error(\"Failed to initialize Bladeburner Skill. No name was specified in ctor\");\n }\n if (!params.desc) {\n throw new Error(\"Failed to initialize Bladeburner Skills. No desc was specified in ctor\");\n }\n this.name = params.name;\n this.desc = params.desc;\n this.baseCost = params.baseCost ? params.baseCost : 1;\n this.costInc = params.costInc ? params.costInc : 1;\n\n if (params.maxLvl) {\n this.maxLvl = params.maxLvl;\n }\n\n if (params.successChanceAll) {\n this.successChanceAll = params.successChanceAll;\n }\n if (params.successChanceStealth) {\n this.successChanceStealth = params.successChanceStealth;\n }\n if (params.successChanceKill) {\n this.successChanceKill = params.successChanceKill;\n }\n if (params.successChanceContract) {\n this.successChanceContract = params.successChanceContract;\n }\n if (params.successChanceOperation) {\n this.successChanceOperation = params.successChanceOperation;\n }\n\n if (params.successChanceEstimate) {\n this.successChanceEstimate = params.successChanceEstimate;\n }\n\n if (params.actionTime) {\n this.actionTime = params.actionTime;\n }\n if (params.effHack) {\n this.effHack = params.effHack;\n }\n if (params.effStr) {\n this.effStr = params.effStr;\n }\n if (params.effDef) {\n this.effDef = params.effDef;\n }\n if (params.effDex) {\n this.effDex = params.effDex;\n }\n if (params.effAgi) {\n this.effAgi = params.effAgi;\n }\n if (params.effCha) {\n this.effCha = params.effCha;\n }\n\n if (params.stamina) {\n this.stamina = params.stamina;\n }\n if (params.money) {\n this.money = params.money;\n }\n if (params.expGain) {\n this.expGain = params.expGain;\n }\n }\n\n calculateCost(currentLevel: number): number {\n return Math.floor((this.baseCost + currentLevel * this.costInc) * BitNodeMultipliers.BladeburnerSkillCost);\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","export function hash(): string {\n try {\n if (__COMMIT_HASH__) {\n return __COMMIT_HASH__;\n }\n } catch (err) {}\n return \"DEV\";\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, Reviver } from \"../utils/JSONReviver\";\nimport { roundToTwo } from \"../utils/helpers/roundToTwo\";\nimport { IPlayer } from \"../PersonObjects/IPlayer\";\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: any = \"\";\n\n // The timestamp when when the script was last updated.\n moduleSequenceNumber: number;\n\n // Only used with NS2 scripts; the list of dependency script filenames. This is constructed\n // whenever the script is first evaluated, and therefore may be out of date if the script\n // has been updated since it was last run.\n dependencies: ScriptUrl[] = [];\n dependents: ScriptReference[] = [];\n\n // Amount of RAM this Script requres to run\n ramUsage = 0;\n ramUsageEntries?: RamUsageEntry[];\n\n // hostname of server that this script is on.\n server = \"\";\n\n constructor(player: IPlayer | null = null, fn = \"\", code = \"\", server = \"\", otherScripts: Script[] = []) {\n this.filename = fn;\n this.code = code;\n this.ramUsage = 0;\n this.server = server; // hostname of server this script is on\n this.module = \"\";\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 navigator = window.navigator as any;\n if (navigator.msSaveOrOpenBlob) {\n // IE10+\n navigator.msSaveOrOpenBlob(file, filename);\n } else {\n // Others\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 /**\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 = \"\";\n this.moduleSequenceNumber = ++globalModuleSequenceNumber;\n }\n\n /**\n * Save a script from the script editor\n * @param {string} code - The new contents of the script\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n saveScript(player: IPlayer, filename: string, code: string, hostname: string, otherScripts: Script[]): void {\n // Update code and filename\n this.code = Script.formatCode(code);\n\n this.filename = filename;\n this.server = hostname;\n this.updateRamUsage(player, otherScripts);\n this.markUpdated();\n for (const dependent of this.dependents) {\n const [dependentScript] = otherScripts.filter(\n (s) => s.filename === dependent.filename && s.server == dependent.server,\n );\n if (dependentScript !== null) dependentScript.markUpdated();\n }\n }\n\n /**\n * Calculates and updates the script's RAM usage based on its code\n * @param {Script[]} otherScripts - Other scripts on the server. Used to process imports\n */\n async updateRamUsage(player: IPlayer, otherScripts: Script[]): Promise {\n const res = await calculateRamUsage(player, this.code, otherScripts);\n if (res.cost > 0) {\n this.ramUsage = roundToTwo(res.cost);\n this.ramUsageEntries = res.entries;\n }\n this.markUpdated();\n }\n\n imports(): string[] {\n return [];\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): any {\n return Generic_toJSON(\"Script\", this);\n }\n\n // Initializes a Script Object from a JSON save state\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): 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","/**\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: T[]): string {\n const vals: any[] = [];\n for (let i = 0; i < a.length; ++i) {\n let elem: any = 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 { 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, 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(): any {\n return Generic_toJSON(\"ActionIdentifier\", this);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): 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","// Base class representing a person-like object\nimport { Augmentation } from \"../Augmentation/Augmentation\";\nimport { IPlayerOwnedAugmentation } from \"../Augmentation/PlayerOwnedAugmentation\";\nimport { BitNodeMultipliers } from \"../BitNode/BitNodeMultipliers\";\nimport { CityName } from \"../Locations/data/CityNames\";\nimport { CONSTANTS } from \"../Constants\";\nimport { calculateSkill } from \"./formulas/skill\";\nimport { calculateIntelligenceBonus } from \"./formulas/intelligence\";\n\n// Interface that defines a generic object used to track experience/money\n// earnings for tasks\nexport interface ITaskTracker {\n hack: number;\n str: number;\n def: number;\n dex: number;\n agi: number;\n cha: number;\n money: number;\n}\n\nexport function createTaskTracker(): ITaskTracker {\n return {\n hack: 0,\n str: 0,\n def: 0,\n dex: 0,\n agi: 0,\n cha: 0,\n money: 0,\n };\n}\n\nexport abstract class Person {\n /**\n * Stats\n */\n hacking = 1;\n strength = 1;\n defense = 1;\n dexterity = 1;\n agility = 1;\n charisma = 1;\n intelligence = 1;\n hp = 10;\n max_hp = 10;\n\n /**\n * Experience\n */\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 /**\n * Multipliers\n */\n hacking_mult = 1;\n strength_mult = 1;\n defense_mult = 1;\n dexterity_mult = 1;\n agility_mult = 1;\n charisma_mult = 1;\n\n hacking_exp_mult = 1;\n strength_exp_mult = 1;\n defense_exp_mult = 1;\n dexterity_exp_mult = 1;\n agility_exp_mult = 1;\n charisma_exp_mult = 1;\n\n hacking_chance_mult = 1;\n hacking_speed_mult = 1;\n hacking_money_mult = 1;\n hacking_grow_mult = 1;\n\n company_rep_mult = 1;\n faction_rep_mult = 1;\n\n crime_money_mult = 1;\n crime_success_mult = 1;\n\n work_money_mult = 1;\n\n hacknet_node_money_mult = 1;\n hacknet_node_purchase_cost_mult = 1;\n hacknet_node_ram_cost_mult = 1;\n hacknet_node_core_cost_mult = 1;\n hacknet_node_level_cost_mult = 1;\n\n bladeburner_max_stamina_mult = 1;\n bladeburner_stamina_gain_mult = 1;\n bladeburner_analysis_mult = 1;\n bladeburner_success_chance_mult = 1;\n\n /**\n * Augmentations\n */\n augmentations: IPlayerOwnedAugmentation[] = [];\n queuedAugmentations: IPlayerOwnedAugmentation[] = [];\n\n /**\n * City that the person is in\n */\n city: CityName = CityName.Sector12;\n\n /**\n * Updates this object's multipliers for the given augmentation\n */\n applyAugmentation(aug: Augmentation): void {\n for (const mult of Object.keys(aug.mults)) {\n if ((this as any)[mult] == null) {\n console.warn(`Augmentation has unrecognized multiplier property: ${mult}`);\n } else {\n (this as any)[mult] *= aug.mults[mult];\n }\n }\n }\n\n /**\n * Given an experience amount and stat multiplier, calculates the\n * stat level. Stat-agnostic (same formula for every stat)\n */\n calculateStat(exp: number, mult = 1): number {\n return calculateSkill(exp, mult);\n }\n\n /**\n * Calculate and return the amount of faction reputation earned per cycle\n * when doing Field Work for a faction\n */\n getFactionFieldWorkRepGain(): number {\n const t =\n (0.9 *\n (this.hacking / CONSTANTS.MaxSkillLevel +\n this.strength / CONSTANTS.MaxSkillLevel +\n this.defense / CONSTANTS.MaxSkillLevel +\n this.dexterity / CONSTANTS.MaxSkillLevel +\n this.agility / CONSTANTS.MaxSkillLevel +\n this.charisma / CONSTANTS.MaxSkillLevel)) /\n 5.5;\n return t * this.faction_rep_mult;\n }\n\n /**\n * Calculate and return the amount of faction reputation earned per cycle\n * when doing Hacking Work for a faction\n */\n getFactionHackingWorkRepGain(): number {\n return (this.hacking / CONSTANTS.MaxSkillLevel) * this.faction_rep_mult;\n }\n\n /**\n * Calculate and return the amount of faction reputation earned per cycle\n * when doing Security Work for a faction\n */\n getFactionSecurityWorkRepGain(): number {\n const t =\n (0.9 *\n (this.hacking / CONSTANTS.MaxSkillLevel +\n this.strength / CONSTANTS.MaxSkillLevel +\n this.defense / CONSTANTS.MaxSkillLevel +\n this.dexterity / CONSTANTS.MaxSkillLevel +\n this.agility / CONSTANTS.MaxSkillLevel)) /\n 4.5;\n return t * this.faction_rep_mult;\n }\n\n /**\n * Reset all multipliers to 1\n */\n resetMultipliers(): void {\n this.hacking_mult = 1;\n this.strength_mult = 1;\n this.defense_mult = 1;\n this.dexterity_mult = 1;\n this.agility_mult = 1;\n this.charisma_mult = 1;\n\n this.hacking_exp_mult = 1;\n this.strength_exp_mult = 1;\n this.defense_exp_mult = 1;\n this.dexterity_exp_mult = 1;\n this.agility_exp_mult = 1;\n this.charisma_exp_mult = 1;\n\n this.company_rep_mult = 1;\n this.faction_rep_mult = 1;\n\n this.crime_money_mult = 1;\n this.crime_success_mult = 1;\n\n this.work_money_mult = 1;\n }\n\n /**\n * Update all stat levels\n */\n updateStatLevels(): void {\n this.hacking = Math.max(\n 1,\n Math.floor(this.calculateStat(this.hacking_exp, this.hacking_mult * BitNodeMultipliers.HackingLevelMultiplier)),\n );\n this.strength = Math.max(\n 1,\n Math.floor(\n this.calculateStat(this.strength_exp, this.strength_mult * BitNodeMultipliers.StrengthLevelMultiplier),\n ),\n );\n this.defense = Math.max(\n 1,\n Math.floor(this.calculateStat(this.defense_exp, this.defense_mult * BitNodeMultipliers.DefenseLevelMultiplier)),\n );\n this.dexterity = Math.max(\n 1,\n Math.floor(\n this.calculateStat(this.dexterity_exp, this.dexterity_mult * BitNodeMultipliers.DexterityLevelMultiplier),\n ),\n );\n this.agility = Math.max(\n 1,\n Math.floor(this.calculateStat(this.agility_exp, this.agility_mult * BitNodeMultipliers.AgilityLevelMultiplier)),\n );\n this.charisma = Math.max(\n 1,\n Math.floor(\n this.calculateStat(this.charisma_exp, this.charisma_mult * BitNodeMultipliers.CharismaLevelMultiplier),\n ),\n );\n\n const ratio: number = this.hp / this.max_hp;\n this.max_hp = Math.floor(10 + this.defense / 10);\n this.hp = Math.round(this.max_hp * ratio);\n }\n\n getIntelligenceBonus(weight: number): number {\n return calculateIntelligenceBonus(this.intelligence, weight);\n }\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 function exceptionAlert(e: IError | string): void {\n console.error(e);\n dialogBoxCreate(\n \"Caught an exception: \" +\n e +\n \"
\n \n \n \n HP \n \n \n \n {numeralWrapper.formatHp(player.hp)} / {numeralWrapper.formatHp(player.max_hp)}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Money \n \n \n {numeralWrapper.formatMoney(player.money)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Hack \n \n \n {numeralWrapper.formatSkill(player.hacking)}\n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n \n \n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n\n \n \n Str \n \n \n {numeralWrapper.formatSkill(player.strength)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Def \n \n \n {numeralWrapper.formatSkill(player.defense)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Dex \n \n \n {numeralWrapper.formatSkill(player.dexterity)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Agi \n \n \n {numeralWrapper.formatSkill(player.agility)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n \n Cha \n \n \n {numeralWrapper.formatSkill(player.charisma)}\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {!Settings.DisableOverviewProgressBars && (\n \n )}\n \n\n \n\n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n {/*Hook for player scripts*/}\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n setKillOpen(true)}>\n \n \n \n \n \n \n setKillOpen(false)} killScripts={killScripts} />\n >\n );\n}\n","/**\n * Adds a random offset to a number within a certain percentage\n * @example\n * // Returns between 95-105\n * addOffset(100, 5);\n * @example\n * // Returns between 63-77\n * addOffSet(70, 10);\n * @param midpoint The number to be the midpoint of the offset range\n * @param percentage The percentage (in a range of 0-100) to offset\n */\nexport function addOffset(midpoint: number, percentage: number): number {\n const maxPercent = 100;\n if (percentage < 0 || percentage > maxPercent) {\n return midpoint;\n }\n\n const offset: number = midpoint * (percentage / maxPercent);\n\n // Double the range to account for both sides of the midpoint.\n // tslint:disable-next-line:no-magic-numbers\n return midpoint + (Math.random() * (offset * 2) - offset);\n}\n","export class DarkWebItem {\n program: string;\n price: number;\n description: string;\n\n constructor(program: string, price: number, description: string) {\n this.program = program;\n this.price = price;\n this.description = description;\n }\n}\n","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","/**\n * Does a shallow compare of two arrays to determine if they are equal.\n * @param a1 The first array\n * @param a2 The second array\n */\nexport function compareArrays(a1: T[], a2: T[]): boolean {\n if (a1.length !== a2.length) {\n return false;\n }\n\n for (let i = 0; i < a1.length; ++i) {\n if (Array.isArray(a1[i])) {\n // If the other element is not an array, then these cannot be equal\n if (!Array.isArray(a2[i])) {\n return false;\n }\n\n const elem1 = a1[i] as any;\n const elem2 = a2[i] as any;\n if (!compareArrays(elem1, elem2)) {\n return false;\n }\n } else if (a1[i] !== a2[i] && !(Number.isNaN(a1[i]) && Number.isNaN(a2[i]))) {\n // strict (in)equality considers NaN not equal to itself\n return false;\n }\n }\n\n return true;\n}\n","import { IMap } from \"../types\";\n\nexport type IndustryUpgrade = [number, number, number, number, string, string];\n\n// Industry upgrades\n// The data structure is an array with the following format:\n// [index in array, base price, price mult, benefit mult (if applicable), name, desc]\nexport const IndustryUpgrades: IMap = {\n \"0\": [0, 500e3, 1, 1.05, \"Coffee\", \"Provide your employees with coffee, increasing their energy by 5%.\"],\n \"1\": [\n 1,\n 1e9,\n 1.06,\n 1.03,\n \"AdVert.Inc\",\n \"Hire AdVert.Inc to advertise your company. Each level of \" +\n \"this upgrade grants your company a static increase of 3 and 1 to its awareness and \" +\n \"popularity, respectively. It will then increase your company's awareness by 1%, and its popularity \" +\n \"by a random percentage between 1% and 3%. These effects are increased by other upgrades \" +\n \"that increase the power of your advertising.\",\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","/**\n * Sleeves are bodies that contain the player's cloned consciousness.\n * The player can use these bodies to perform different tasks synchronously.\n *\n * Each sleeve is its own individual, meaning it has its own stats/exp\n *\n * Sleeves are unlocked in BitNode-10.\n */\nimport { SleeveTaskType } from \"./SleeveTaskTypesEnum\";\n\nimport { IPlayer } from \"../IPlayer\";\nimport { Person, ITaskTracker, createTaskTracker } from \"../Person\";\n\nimport { Augmentation } from \"../../Augmentation/Augmentation\";\n\nimport { BitNodeMultipliers } from \"../../BitNode/BitNodeMultipliers\";\n\nimport { Crime } from \"../../Crime/Crime\";\nimport { Crimes } from \"../../Crime/Crimes\";\n\nimport { Companies } from \"../../Company/Companies\";\nimport { Company } from \"../../Company/Company\";\nimport { CompanyPosition } from \"../../Company/CompanyPosition\";\nimport { CompanyPositions } from \"../../Company/CompanyPositions\";\n\nimport { CONSTANTS } from \"../../Constants\";\n\nimport { Faction } from \"../../Faction/Faction\";\nimport { Factions } from \"../../Faction/Factions\";\nimport { FactionWorkType } from \"../../Faction/FactionWorkTypeEnum\";\n\nimport { CityName } from \"../../Locations/data/CityNames\";\nimport { LocationName } from \"../../Locations/data/LocationNames\";\n\nimport { Generic_fromJSON, Generic_toJSON, Reviver } from \"../../utils/JSONReviver\";\n\nexport class Sleeve extends Person {\n /**\n * Stores the name of the class that the player is currently taking\n */\n className = \"\";\n\n /**\n * Stores the type of crime the sleeve is currently attempting\n * Must match the name of a Crime object\n */\n crimeType = \"\";\n\n /**\n * Enum value for current task\n */\n currentTask: SleeveTaskType = SleeveTaskType.Idle;\n\n /**\n * Contains details about the sleeve's current task. The info stored\n * in this depends on the task type\n *\n * Faction/Company Work: Name of Faction/Company\n * Crime: Money earned if successful\n * Class/Gym: Name of university/gym\n */\n currentTaskLocation = \"\";\n\n /**\n * Maximum amount of time (in milliseconds) that can be spent on current task.\n */\n currentTaskMaxTime = 0;\n\n /**\n * Milliseconds spent on current task\n */\n currentTaskTime = 0;\n\n /**\n * Keeps track of experience earned for other sleeves\n */\n earningsForSleeves: ITaskTracker = createTaskTracker();\n\n /**\n * Keeps track of experience + money earned for player\n */\n earningsForPlayer: ITaskTracker = createTaskTracker();\n\n /**\n * Keeps track of experienced earned in the current task/action\n */\n earningsForTask: ITaskTracker = createTaskTracker();\n\n /**\n * Keeps track of what type of work sleeve is doing for faction, if applicable\n */\n factionWorkType: FactionWorkType = FactionWorkType.None;\n\n /**\n * Records experience gain rate for the current task\n */\n gainRatesForTask: ITaskTracker = createTaskTracker();\n\n /**\n * String that stores what stat the sleeve is training at the gym\n */\n gymStatType = \"\";\n\n /**\n * Keeps track of events/notifications for this sleeve\n */\n logs: string[] = [];\n\n /**\n * Clone retains 'memory' synchronization (and maybe exp?) upon prestige/installing Augs\n */\n memory = 1;\n\n /**\n * Sleeve shock. Number between 0 and 100\n * Trauma/shock that comes with being in a sleeve. Experience earned\n * is multipled by shock%. This gets applied before synchronization\n *\n * Reputation earned is also multiplied by shock%\n */\n shock = 1;\n\n /**\n * Stored number of game \"loop\" cycles\n */\n storedCycles = 0;\n\n /**\n * Synchronization. Number between 0 and 100\n * When experience is earned by sleeve, both the player and the sleeve get\n * sync% of the experience earned. Other sleeves get sync^2% of exp\n */\n sync = 1;\n\n constructor(p: IPlayer | null = null) {\n super();\n if (p != null) {\n this.shockRecovery(p);\n }\n }\n\n /**\n * Commit crimes\n */\n commitCrime(p: IPlayer, crimeKey: string): boolean {\n const crime: Crime | null = Crimes[crimeKey] || Object.values(Crimes).find((crime) => crime.name === crimeKey);\n if (!crime) {\n return false;\n }\n\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n this.gainRatesForTask.hack = crime.hacking_exp * this.hacking_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.str = crime.strength_exp * this.strength_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.def = crime.defense_exp * this.defense_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.dex = crime.dexterity_exp * this.dexterity_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.agi = crime.agility_exp * this.agility_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.cha = crime.charisma_exp * this.charisma_exp_mult * BitNodeMultipliers.CrimeExpGain;\n this.gainRatesForTask.money = crime.money * this.crime_money_mult * BitNodeMultipliers.CrimeMoney;\n\n this.currentTaskLocation = String(this.gainRatesForTask.money);\n\n this.crimeType = crime.name;\n this.currentTaskMaxTime = crime.time;\n this.currentTask = SleeveTaskType.Crime;\n return true;\n }\n\n /**\n * Called to stop the current task\n */\n finishTask(p: IPlayer): ITaskTracker {\n let retValue: ITaskTracker = createTaskTracker(); // Amount of exp to be gained by other sleeves\n\n if (this.currentTask === SleeveTaskType.Crime) {\n // For crimes, all experience and money is gained at the end\n if (this.currentTaskTime >= this.currentTaskMaxTime) {\n const crime: Crime | undefined = Object.values(Crimes).find((crime) => crime.name === this.crimeType);\n if (!crime) {\n console.error(`Invalid data stored in sleeve.crimeType: ${this.crimeType}`);\n this.resetTaskStatus();\n return retValue;\n }\n if (Math.random() < crime.successRate(this)) {\n // Success\n const successGainRates: ITaskTracker = createTaskTracker();\n\n const keysForIteration: (keyof ITaskTracker)[] = Object.keys(successGainRates) as (keyof ITaskTracker)[];\n for (let i = 0; i < keysForIteration.length; ++i) {\n const key = keysForIteration[i];\n successGainRates[key] = this.gainRatesForTask[key] * 2;\n }\n retValue = this.gainExperience(p, successGainRates);\n this.gainMoney(p, this.gainRatesForTask);\n\n p.karma -= crime.karma * (this.sync / 100);\n } else {\n retValue = this.gainExperience(p, this.gainRatesForTask);\n }\n\n // Do not reset task to IDLE\n this.currentTaskTime = 0;\n return retValue;\n }\n } else {\n // For other crimes... I dont think anything else needs to be done\n }\n\n this.resetTaskStatus();\n\n return retValue;\n }\n\n /**\n * Earn experience for any stats (supports multiple)\n * This function also handles experience propogating to Player and other sleeves\n */\n gainExperience(p: IPlayer, exp: ITaskTracker, numCycles = 1, fromOtherSleeve = false): ITaskTracker {\n // If the experience is coming from another sleeve, it is not multiplied by anything.\n // Also the player does not earn anything\n if (fromOtherSleeve) {\n if (exp.hack > 0) {\n this.hacking_exp += exp.hack;\n }\n\n if (exp.str > 0) {\n this.strength_exp += exp.str;\n }\n\n if (exp.def > 0) {\n this.defense_exp += exp.def;\n }\n\n if (exp.dex > 0) {\n this.dexterity_exp += exp.dex;\n }\n\n if (exp.agi > 0) {\n this.agility_exp += exp.agi;\n }\n\n if (exp.cha > 0) {\n this.charisma_exp += exp.cha;\n }\n\n return createTaskTracker();\n }\n\n // Experience is first multiplied by shock. Then 'synchronization'\n // is accounted for\n\n const multFac = (this.shock / 100) * (this.sync / 100) * numCycles;\n const pHackExp = exp.hack * multFac;\n const pStrExp = exp.str * multFac;\n const pDefExp = exp.def * multFac;\n const pDexExp = exp.dex * multFac;\n const pAgiExp = exp.agi * multFac;\n const pChaExp = exp.cha * multFac;\n\n // Experience is gained by both this sleeve and player\n if (pHackExp > 0) {\n this.hacking_exp += pHackExp;\n p.gainHackingExp(pHackExp);\n this.earningsForPlayer.hack += pHackExp;\n this.earningsForTask.hack += pHackExp;\n }\n\n if (pStrExp > 0) {\n this.strength_exp += pStrExp;\n p.gainStrengthExp(pStrExp);\n this.earningsForPlayer.str += pStrExp;\n this.earningsForTask.str += pStrExp;\n }\n\n if (pDefExp > 0) {\n this.defense_exp += pDefExp;\n p.gainDefenseExp(pDefExp);\n this.earningsForPlayer.def += pDefExp;\n this.earningsForTask.def += pDefExp;\n }\n\n if (pDexExp > 0) {\n this.dexterity_exp += pDexExp;\n p.gainDexterityExp(pDexExp);\n this.earningsForPlayer.dex += pDexExp;\n this.earningsForTask.dex += pDexExp;\n }\n\n if (pAgiExp > 0) {\n this.agility_exp += pAgiExp;\n p.gainAgilityExp(pAgiExp);\n this.earningsForPlayer.agi += pAgiExp;\n this.earningsForTask.agi += pAgiExp;\n }\n\n if (pChaExp > 0) {\n this.charisma_exp += pChaExp;\n p.gainCharismaExp(pChaExp);\n this.earningsForPlayer.cha += pChaExp;\n this.earningsForTask.cha += pChaExp;\n }\n\n // Record earnings for other sleeves\n this.earningsForSleeves.hack += pHackExp * (this.sync / 100);\n this.earningsForSleeves.str += pStrExp * (this.sync / 100);\n this.earningsForSleeves.def += pDefExp * (this.sync / 100);\n this.earningsForSleeves.dex += pDexExp * (this.sync / 100);\n this.earningsForSleeves.agi += pAgiExp * (this.sync / 100);\n this.earningsForSleeves.cha += pChaExp * (this.sync / 100);\n\n // Return the experience to be gained by other sleeves\n return {\n hack: pHackExp * (this.sync / 100),\n str: pStrExp * (this.sync / 100),\n def: pDefExp * (this.sync / 100),\n dex: pDexExp * (this.sync / 100),\n agi: pAgiExp * (this.sync / 100),\n cha: pChaExp * (this.sync / 100),\n money: 0,\n };\n }\n\n /**\n * Earn money for player\n */\n gainMoney(p: IPlayer, task: ITaskTracker, numCycles = 1): void {\n const gain: number = task.money * numCycles;\n this.earningsForTask.money += gain;\n this.earningsForPlayer.money += gain;\n p.gainMoney(gain, \"sleeves\");\n }\n\n /**\n * Returns the cost of upgrading this sleeve's memory by a certain amount\n */\n getMemoryUpgradeCost(n: number): number {\n const amt = Math.round(n);\n if (amt < 0) {\n return 0;\n }\n\n if (this.memory + amt > 100) {\n return this.getMemoryUpgradeCost(100 - this.memory);\n }\n\n const mult = 1.02;\n const baseCost = 1e12;\n let currCost = 0;\n let currMemory = this.memory - 1;\n for (let i = 0; i < n; ++i) {\n currCost += Math.pow(mult, currMemory);\n ++currMemory;\n }\n\n return currCost * baseCost;\n }\n\n /**\n * Gets reputation gain for the current task\n * Only applicable when working for company or faction\n */\n getRepGain(p: IPlayer): number {\n if (this.currentTask === SleeveTaskType.Faction) {\n let favorMult = 1;\n const fac: Faction | null = Factions[this.currentTaskLocation];\n if (fac != null) {\n favorMult = 1 + fac.favor / 100;\n }\n\n switch (this.factionWorkType) {\n case FactionWorkType.Hacking:\n return this.getFactionHackingWorkRepGain() * (this.shock / 100) * favorMult;\n case FactionWorkType.Field:\n return this.getFactionFieldWorkRepGain() * (this.shock / 100) * favorMult;\n case FactionWorkType.Security:\n return this.getFactionSecurityWorkRepGain() * (this.shock / 100) * favorMult;\n default:\n console.warn(`Invalid Sleeve.factionWorkType property in Sleeve.getRepGain(): ${this.factionWorkType}`);\n return 0;\n }\n } else if (this.currentTask === SleeveTaskType.Company) {\n const companyName: string = this.currentTaskLocation;\n const company: Company | null = Companies[companyName];\n if (company == null) {\n console.error(`Invalid company found when trying to calculate rep gain: ${companyName}`);\n return 0;\n }\n\n const companyPosition: CompanyPosition | null = CompanyPositions[p.jobs[companyName]];\n if (companyPosition == null) {\n console.error(`Invalid company position name found when trying to calculate rep gain: ${p.jobs[companyName]}`);\n return 0;\n }\n\n const jobPerformance: number = companyPosition.calculateJobPerformance(\n this.hacking,\n this.strength,\n this.defense,\n this.dexterity,\n this.agility,\n this.charisma,\n );\n const favorMult = 1 + company.favor / 100;\n\n return jobPerformance * this.company_rep_mult * favorMult;\n } else {\n return 0;\n }\n }\n\n installAugmentation(aug: Augmentation): void {\n this.hacking_exp = 0;\n this.strength_exp = 0;\n this.defense_exp = 0;\n this.dexterity_exp = 0;\n this.agility_exp = 0;\n this.charisma_exp = 0;\n this.applyAugmentation(aug);\n this.augmentations.push({ name: aug.name, level: 1 });\n this.updateStatLevels();\n }\n\n log(entry: string): void {\n const MaxLogSize = 50;\n this.logs.push(entry);\n if (this.logs.length > MaxLogSize) {\n this.logs.shift();\n }\n }\n\n /**\n * Called on every sleeve for a Source File Prestige\n */\n prestige(p: IPlayer): void {\n // Reset exp\n this.hacking_exp = 0;\n this.strength_exp = 0;\n this.defense_exp = 0;\n this.dexterity_exp = 0;\n this.agility_exp = 0;\n this.charisma_exp = 0;\n\n // Reset task-related stuff\n this.resetTaskStatus();\n this.earningsForSleeves = createTaskTracker();\n this.earningsForPlayer = createTaskTracker();\n this.shockRecovery(p);\n\n // Reset augs and multipliers\n this.augmentations = [];\n this.resetMultipliers();\n\n // Reset Location\n\n this.city = CityName.Sector12;\n\n // Reset sleeve-related stats\n this.shock = 1;\n this.storedCycles = 0;\n this.sync = Math.max(this.memory, 1);\n\n this.logs = [];\n }\n\n /**\n * Process loop\n * Returns an object containing the amount of experience that should be\n * transferred to all other sleeves\n */\n process(p: IPlayer, numCycles = 1): ITaskTracker | null {\n // Only process once every second (5 cycles)\n const CyclesPerSecond = 1000 / CONSTANTS.MilliPerCycle;\n this.storedCycles += numCycles;\n if (this.storedCycles < CyclesPerSecond) {\n return null;\n }\n\n let cyclesUsed = this.storedCycles;\n cyclesUsed = Math.min(cyclesUsed, 15);\n let time = cyclesUsed * CONSTANTS.MilliPerCycle;\n if (this.currentTaskMaxTime !== 0 && this.currentTaskTime + time > this.currentTaskMaxTime) {\n time = this.currentTaskMaxTime - this.currentTaskTime;\n cyclesUsed = Math.floor(time / CONSTANTS.MilliPerCycle);\n\n if (time < 0 || cyclesUsed < 0) {\n console.warn(`Sleeve.process() calculated negative cycle usage`);\n time = 0;\n cyclesUsed = 0;\n }\n }\n\n this.currentTaskTime += time;\n\n // Shock gradually goes towards 100\n this.shock = Math.min(100, this.shock + 0.0001 * cyclesUsed);\n\n let retValue: ITaskTracker = createTaskTracker();\n switch (this.currentTask) {\n case SleeveTaskType.Idle:\n break;\n case SleeveTaskType.Class:\n case SleeveTaskType.Gym:\n this.updateTaskGainRates(p);\n retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed);\n this.gainMoney(p, this.gainRatesForTask, cyclesUsed);\n break;\n case SleeveTaskType.Faction: {\n retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed);\n this.gainMoney(p, this.gainRatesForTask, cyclesUsed);\n\n // Gain faction reputation\n const fac: Faction = Factions[this.currentTaskLocation];\n if (!(fac instanceof Faction)) {\n console.error(`Invalid faction for Sleeve task: ${this.currentTaskLocation}`);\n break;\n }\n\n fac.playerReputation += this.getRepGain(p) * cyclesUsed;\n break;\n }\n case SleeveTaskType.Company: {\n retValue = this.gainExperience(p, this.gainRatesForTask, cyclesUsed);\n this.gainMoney(p, this.gainRatesForTask, cyclesUsed);\n\n const company: Company = Companies[this.currentTaskLocation];\n if (!(company instanceof Company)) {\n console.error(`Invalid company for Sleeve task: ${this.currentTaskLocation}`);\n break;\n }\n\n company.playerReputation += this.getRepGain(p) * cyclesUsed;\n break;\n }\n case SleeveTaskType.Recovery:\n this.shock = Math.min(100, this.shock + 0.0002 * cyclesUsed);\n if (this.shock >= 100) this.resetTaskStatus();\n break;\n case SleeveTaskType.Synchro:\n this.sync = Math.min(100, this.sync + p.getIntelligenceBonus(0.5) * 0.0002 * cyclesUsed);\n if (this.sync >= 100) this.resetTaskStatus();\n break;\n default:\n break;\n }\n\n if (this.currentTaskMaxTime !== 0 && this.currentTaskTime >= this.currentTaskMaxTime) {\n if (this.currentTask === SleeveTaskType.Crime) {\n retValue = this.finishTask(p);\n } else {\n this.finishTask(p);\n }\n }\n\n this.updateStatLevels();\n\n this.storedCycles -= cyclesUsed;\n\n return retValue;\n }\n\n /**\n * Resets all parameters used to keep information about the current task\n */\n resetTaskStatus(): void {\n this.earningsForTask = createTaskTracker();\n this.gainRatesForTask = createTaskTracker();\n this.currentTask = SleeveTaskType.Idle;\n this.currentTaskTime = 0;\n this.currentTaskMaxTime = 0;\n this.factionWorkType = FactionWorkType.None;\n this.crimeType = \"\";\n this.currentTaskLocation = \"\";\n this.gymStatType = \"\";\n this.className = \"\";\n }\n\n shockRecovery(p: IPlayer): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n this.currentTask = SleeveTaskType.Recovery;\n return true;\n }\n\n synchronize(p: IPlayer): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n this.currentTask = SleeveTaskType.Synchro;\n return true;\n }\n\n /**\n * Take a course at a university\n */\n takeUniversityCourse(p: IPlayer, universityName: string, className: string): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n // Set exp/money multipliers based on which university.\n // Also check that the sleeve is in the right city\n let costMult = 1;\n switch (universityName.toLowerCase()) {\n case LocationName.AevumSummitUniversity.toLowerCase():\n if (this.city !== CityName.Aevum) {\n return false;\n }\n this.currentTaskLocation = LocationName.AevumSummitUniversity;\n costMult = 4;\n break;\n case LocationName.Sector12RothmanUniversity.toLowerCase():\n if (this.city !== CityName.Sector12) {\n return false;\n }\n this.currentTaskLocation = LocationName.Sector12RothmanUniversity;\n costMult = 3;\n break;\n case LocationName.VolhavenZBInstituteOfTechnology.toLowerCase():\n if (this.city !== CityName.Volhaven) {\n return false;\n }\n this.currentTaskLocation = LocationName.VolhavenZBInstituteOfTechnology;\n costMult = 5;\n break;\n default:\n return false;\n }\n\n // Set experience/money gains based on class\n switch (className.toLowerCase()) {\n case \"study computer science\":\n break;\n case \"data structures\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassDataStructuresBaseCost * costMult);\n break;\n case \"networks\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassNetworksBaseCost * costMult);\n break;\n case \"algorithms\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassAlgorithmsBaseCost * costMult);\n break;\n case \"management\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassManagementBaseCost * costMult);\n break;\n case \"leadership\":\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassLeadershipBaseCost * costMult);\n break;\n default:\n return false;\n }\n\n this.className = className;\n this.currentTask = SleeveTaskType.Class;\n return true;\n }\n\n /**\n * Travel to another City. Costs money from player\n */\n travel(p: IPlayer, newCity: CityName): boolean {\n p.loseMoney(CONSTANTS.TravelCost, \"sleeves\");\n this.city = newCity;\n\n return true;\n }\n\n tryBuyAugmentation(p: IPlayer, aug: Augmentation): boolean {\n if (!p.canAfford(aug.startingCost)) {\n return false;\n }\n\n // Verify that this sleeve does not already have that augmentation.\n if (this.augmentations.some((a) => a.name === aug.name)) {\n return false;\n }\n\n p.loseMoney(aug.startingCost, \"sleeves\");\n this.installAugmentation(aug);\n return true;\n }\n\n updateTaskGainRates(p: IPlayer): void {\n if (this.currentTask === SleeveTaskType.Class) {\n let expMult = 1;\n switch (this.currentTaskLocation.toLowerCase()) {\n case LocationName.AevumSummitUniversity.toLowerCase():\n expMult = 3;\n break;\n case LocationName.Sector12RothmanUniversity.toLowerCase():\n expMult = 2;\n break;\n case LocationName.VolhavenZBInstituteOfTechnology.toLowerCase():\n expMult = 4;\n break;\n default:\n return;\n }\n\n const totalExpMult = expMult * p.hashManager.getStudyMult();\n switch (this.className.toLowerCase()) {\n case \"study computer science\":\n this.gainRatesForTask.hack =\n CONSTANTS.ClassStudyComputerScienceBaseExp * totalExpMult * this.hacking_exp_mult;\n break;\n case \"data structures\":\n this.gainRatesForTask.hack = CONSTANTS.ClassDataStructuresBaseExp * totalExpMult * this.hacking_exp_mult;\n break;\n case \"networks\":\n this.gainRatesForTask.hack = CONSTANTS.ClassNetworksBaseExp * totalExpMult * this.hacking_exp_mult;\n break;\n case \"algorithms\":\n this.gainRatesForTask.hack = CONSTANTS.ClassAlgorithmsBaseExp * totalExpMult * this.hacking_exp_mult;\n break;\n case \"management\":\n this.gainRatesForTask.cha = CONSTANTS.ClassManagementBaseExp * totalExpMult * this.charisma_exp_mult;\n break;\n case \"leadership\":\n this.gainRatesForTask.cha = CONSTANTS.ClassLeadershipBaseExp * totalExpMult * this.charisma_exp_mult;\n break;\n default:\n break;\n }\n\n return;\n }\n\n if (this.currentTask === SleeveTaskType.Gym) {\n // Get gym exp multiplier\n let expMult = 1;\n switch (this.currentTaskLocation.toLowerCase()) {\n case LocationName.AevumCrushFitnessGym.toLowerCase():\n expMult = 2;\n break;\n case LocationName.AevumSnapFitnessGym.toLowerCase():\n expMult = 5;\n break;\n case LocationName.Sector12IronGym.toLowerCase():\n expMult = 1;\n break;\n case LocationName.Sector12PowerhouseGym.toLowerCase():\n expMult = 10;\n break;\n case LocationName.VolhavenMilleniumFitnessGym.toLowerCase():\n expMult = 4;\n break;\n default:\n return;\n }\n\n // Set stat gain rate\n const baseGymExp = 1;\n const totalExpMultiplier = p.hashManager.getTrainingMult() * expMult;\n const sanitizedStat: string = this.gymStatType.toLowerCase();\n if (sanitizedStat.includes(\"str\")) {\n this.gainRatesForTask.str = baseGymExp * totalExpMultiplier * this.strength_exp_mult;\n } else if (sanitizedStat.includes(\"def\")) {\n this.gainRatesForTask.def = baseGymExp * totalExpMultiplier * this.defense_exp_mult;\n } else if (sanitizedStat.includes(\"dex\")) {\n this.gainRatesForTask.dex = baseGymExp * totalExpMultiplier * this.dexterity_exp_mult;\n } else if (sanitizedStat.includes(\"agi\")) {\n this.gainRatesForTask.agi = baseGymExp * totalExpMultiplier * this.agility_exp_mult;\n }\n\n return;\n }\n\n console.warn(`Sleeve.updateTaskGainRates() called for unexpected task type ${this.currentTask}`);\n }\n\n upgradeMemory(n: number): void {\n if (n < 0) {\n console.warn(`Sleeve.upgradeMemory() called with negative value: ${n}`);\n return;\n }\n\n this.memory = Math.min(100, Math.round(this.memory + n));\n }\n\n /**\n * Start work for one of the player's companies\n * Returns boolean indicating success\n */\n workForCompany(p: IPlayer, companyName: string): boolean {\n if (!(Companies[companyName] instanceof Company) || p.jobs[companyName] == null) {\n return false;\n }\n\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n const company: Company | null = Companies[companyName];\n const companyPosition: CompanyPosition | null = CompanyPositions[p.jobs[companyName]];\n if (company == null) {\n return false;\n }\n if (companyPosition == null) {\n return false;\n }\n this.gainRatesForTask.money =\n companyPosition.baseSalary *\n company.salaryMultiplier *\n this.work_money_mult *\n BitNodeMultipliers.CompanyWorkMoney;\n this.gainRatesForTask.hack =\n companyPosition.hackingExpGain *\n company.expMultiplier *\n this.hacking_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.str =\n companyPosition.strengthExpGain *\n company.expMultiplier *\n this.strength_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.def =\n companyPosition.defenseExpGain *\n company.expMultiplier *\n this.defense_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.dex =\n companyPosition.dexterityExpGain *\n company.expMultiplier *\n this.dexterity_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.agi =\n companyPosition.agilityExpGain *\n company.expMultiplier *\n this.agility_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain;\n this.gainRatesForTask.cha =\n companyPosition.charismaExpGain *\n company.expMultiplier *\n this.charisma_exp_mult *\n BitNodeMultipliers.CompanyWorkExpGain;\n\n this.currentTaskLocation = companyName;\n this.currentTask = SleeveTaskType.Company;\n\n return true;\n }\n\n /**\n * Start work for one of the player's factions\n * Returns boolean indicating success\n */\n workForFaction(p: IPlayer, factionName: string, workType: string): boolean {\n const faction = Factions[factionName];\n if (factionName === \"\" || !faction || !(faction instanceof Faction) || !p.factions.includes(factionName)) {\n return false;\n }\n\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n const factionInfo = faction.getInfo();\n\n // Set type of work (hacking/field/security), and the experience gains\n const sanitizedWorkType: string = workType.toLowerCase();\n if (sanitizedWorkType.includes(\"hack\")) {\n if (!factionInfo.offerHackingWork) {\n return false;\n }\n this.factionWorkType = FactionWorkType.Hacking;\n this.gainRatesForTask.hack = 0.15 * this.hacking_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n } else if (sanitizedWorkType.includes(\"field\")) {\n if (!factionInfo.offerFieldWork) {\n return false;\n }\n this.factionWorkType = FactionWorkType.Field;\n this.gainRatesForTask.hack = 0.1 * this.hacking_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.str = 0.1 * this.strength_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.def = 0.1 * this.defense_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.dex = 0.1 * this.dexterity_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.agi = 0.1 * this.agility_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.cha = 0.1 * this.charisma_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n } else if (sanitizedWorkType.includes(\"security\")) {\n if (!factionInfo.offerSecurityWork) {\n return false;\n }\n this.factionWorkType = FactionWorkType.Security;\n this.gainRatesForTask.hack = 0.1 * this.hacking_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.str = 0.15 * this.strength_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.def = 0.15 * this.defense_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.dex = 0.15 * this.dexterity_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n this.gainRatesForTask.agi = 0.15 * this.agility_exp_mult * BitNodeMultipliers.FactionWorkExpGain;\n } else {\n return false;\n }\n\n this.currentTaskLocation = factionName;\n this.currentTask = SleeveTaskType.Faction;\n\n return true;\n }\n\n /**\n * Begin a gym workout task\n */\n workoutAtGym(p: IPlayer, gymName: string, stat: string): boolean {\n if (this.currentTask !== SleeveTaskType.Idle) {\n this.finishTask(p);\n } else {\n this.resetTaskStatus();\n }\n\n // Set exp/money multipliers based on which university.\n // Also check that the sleeve is in the right city\n let costMult = 1;\n switch (gymName.toLowerCase()) {\n case LocationName.AevumCrushFitnessGym.toLowerCase():\n if (this.city != CityName.Aevum) {\n return false;\n }\n this.currentTaskLocation = LocationName.AevumCrushFitnessGym;\n costMult = 3;\n break;\n case LocationName.AevumSnapFitnessGym.toLowerCase():\n if (this.city != CityName.Aevum) {\n return false;\n }\n this.currentTaskLocation = LocationName.AevumSnapFitnessGym;\n costMult = 10;\n break;\n case LocationName.Sector12IronGym.toLowerCase():\n if (this.city != CityName.Sector12) {\n return false;\n }\n this.currentTaskLocation = LocationName.Sector12IronGym;\n costMult = 1;\n break;\n case LocationName.Sector12PowerhouseGym.toLowerCase():\n if (this.city != CityName.Sector12) {\n return false;\n }\n this.currentTaskLocation = LocationName.Sector12PowerhouseGym;\n costMult = 20;\n break;\n case LocationName.VolhavenMilleniumFitnessGym.toLowerCase():\n if (this.city != CityName.Volhaven) {\n return false;\n }\n this.currentTaskLocation = LocationName.VolhavenMilleniumFitnessGym;\n costMult = 7;\n break;\n default:\n return false;\n }\n\n // Set experience/money gains based on class\n const sanitizedStat: string = stat.toLowerCase();\n\n // Set cost\n this.gainRatesForTask.money = -1 * (CONSTANTS.ClassGymBaseCost * costMult);\n\n // Validate \"stat\" argument\n if (\n !sanitizedStat.includes(\"str\") &&\n !sanitizedStat.includes(\"def\") &&\n !sanitizedStat.includes(\"dex\") &&\n !sanitizedStat.includes(\"agi\")\n ) {\n return false;\n }\n\n this.gymStatType = stat;\n this.currentTask = SleeveTaskType.Gym;\n\n return true;\n }\n\n /**\n * Serialize the current object to a JSON save state.\n */\n toJSON(): any {\n return Generic_toJSON(\"Sleeve\", this);\n }\n\n /**\n * Initiatizes a Sleeve object from a JSON save state.\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Sleeve {\n return Generic_fromJSON(Sleeve, value.data);\n }\n}\n\nReviver.constructors.Sleeve = Sleeve;\n","export enum RamCalculationErrorCode {\n SyntaxError = -1,\n ImportError = -2,\n URLImportError = -3,\n}\n","import { EventEmitter } from \"../utils/EventEmitter\";\nexport const TerminalEvents = new EventEmitter<[]>();\nexport const TerminalClearEvents = new EventEmitter<[]>();\n","/**\n * 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","/**\n * Helper functions for determine whether Limit and Stop orders should\n * be executed (and executing them)\n */\nimport { buyStock, sellStock, shortStock, sellShort } from \"./BuyingAndSelling\";\nimport { IOrderBook } from \"./IOrderBook\";\nimport { IStockMarket } from \"./IStockMarket\";\nimport { Order } from \"./Order\";\nimport { Stock } from \"./Stock\";\n\nimport { OrderTypes } from \"./data/OrderTypes\";\nimport { PositionTypes } from \"./data/PositionTypes\";\n\nimport { IMap } from \"../types\";\n\nimport { numeralWrapper } from \"../ui/numeralFormat\";\nimport { Money } from \"../ui/React/Money\";\n\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { Settings } from \"../Settings/Settings\";\n\nimport * as React from \"react\";\n\nexport interface IProcessOrderRefs {\n stockMarket: IStockMarket;\n symbolToStockMap: IMap;\n}\n\n/**\n * Search for all orders of a specific type and execute them if appropriate\n * @param {Stock} stock - Stock for which orders should be processed\n * @param {OrderTypes} orderType - Type of order to check (Limit/Stop buy/sell)\n * @param {PositionTypes} posType - Long or short\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nexport function processOrders(\n stock: Stock,\n orderType: OrderTypes,\n posType: PositionTypes,\n refs: IProcessOrderRefs,\n): void {\n const orderBook = refs.stockMarket[\"Orders\"];\n if (orderBook == null) {\n const orders: IOrderBook = {};\n for (const name of Object.keys(refs.stockMarket)) {\n const stock = refs.stockMarket[name];\n if (!(stock instanceof Stock)) {\n continue;\n }\n orders[stock.symbol] = [];\n }\n refs.stockMarket[\"Orders\"] = orders;\n return; // Newly created, so no orders to process\n }\n let stockOrders = orderBook[stock.symbol];\n if (stockOrders == null || !(stockOrders.constructor === Array)) {\n console.error(`Invalid Order book for ${stock.symbol} in processOrders(): ${stockOrders}`);\n stockOrders = [];\n return;\n }\n\n for (const order of stockOrders) {\n if (order.type === orderType && order.pos === posType) {\n switch (order.type) {\n case OrderTypes.LimitBuy:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.LimitSell:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopBuy:\n if (order.pos === PositionTypes.Long && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long && stock.price <= order.price) {\n executeOrder(/*66*/ order, refs);\n } else if (order.pos === PositionTypes.Short && stock.price >= order.price) {\n executeOrder(/*66*/ order, refs);\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n }\n }\n}\n\n/**\n * Execute a Stop or Limit Order.\n * @param {Order} order - Order being executed\n * @param {IProcessOrderRefs} refs - References to objects/functions that are required for this function\n */\nfunction executeOrder(order: Order, refs: IProcessOrderRefs): void {\n const stock = refs.symbolToStockMap[order.stockSymbol];\n if (!(stock instanceof Stock)) {\n console.error(`Could not find stock for this order: ${order.stockSymbol}`);\n return;\n }\n const stockMarket = refs.stockMarket;\n const orderBook = stockMarket[\"Orders\"];\n const stockOrders = orderBook[stock.symbol];\n\n // When orders are executed, the buying and selling functions shouldn't\n // emit popup dialog boxes. This options object configures the functions for that\n const opts = {\n suppressDialog: true,\n };\n\n let res = true;\n let isBuy = false;\n switch (order.type) {\n case OrderTypes.LimitBuy:\n case OrderTypes.StopBuy:\n isBuy = true;\n if (order.pos === PositionTypes.Long) {\n res = buyStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = shortStock(stock, order.shares, null, opts) && res;\n }\n break;\n case OrderTypes.LimitSell:\n case OrderTypes.StopSell:\n if (order.pos === PositionTypes.Long) {\n res = sellStock(stock, order.shares, null, opts) && res;\n } else if (order.pos === PositionTypes.Short) {\n res = sellShort(stock, order.shares, null, opts) && res;\n }\n break;\n default:\n console.warn(`Invalid order type: ${order.type}`);\n return;\n }\n\n // Position type, for logging/message purposes\n const pos = order.pos === PositionTypes.Long ? \"Long\" : \"Short\";\n\n if (res) {\n for (let i = 0; i < stockOrders.length; ++i) {\n if (order == stockOrders[i]) {\n stockOrders.splice(i, 1);\n if (!Settings.SuppressTIXPopup) {\n dialogBoxCreate(\n <>\n {order.type} for {stock.symbol} @ ({pos}) was filled (\n {numeralWrapper.formatShares(Math.round(order.shares))} shares)\n >,\n );\n }\n return;\n }\n }\n\n console.error(\"Could not find the following Order in Order Book: \");\n console.error(order);\n } else if (isBuy) {\n dialogBoxCreate(\n <>\n Failed to execute {order.type} for {stock.symbol} @ ({pos}). This is most likely\n because you do not have enough money or the order would exceed the stock's maximum number of shares\n >,\n );\n }\n}\n","import { IMap } from \"../types\";\nimport * as predefined from \"./data\";\n\nexport interface ITheme {\n [key: string]: string | undefined;\n primarylight: string;\n primary: string;\n primarydark: string;\n successlight: string;\n success: string;\n successdark: string;\n errorlight: string;\n error: string;\n errordark: string;\n secondarylight: string;\n secondary: string;\n secondarydark: string;\n warninglight: string;\n warning: string;\n warningdark: string;\n infolight: string;\n info: string;\n infodark: string;\n welllight: string;\n well: string;\n white: string;\n black: string;\n hp: string;\n money: string;\n hack: string;\n combat: string;\n cha: string;\n int: string;\n rep: string;\n disabled: string;\n backgroundprimary: string;\n backgroundsecondary: string;\n button: string;\n}\n\nexport interface IPredefinedTheme {\n colors: ITheme;\n name: string;\n credit: string;\n screenshot: string;\n description: string;\n reference?: string;\n}\n\nexport const defaultTheme: ITheme = {\n ...predefined.Default.colors,\n};\n\nexport const getPredefinedThemes = (): IMap => ({\n ...predefined,\n});\n","import React, { useState, useEffect } from \"react\";\nimport { EventEmitter } from \"../../utils/EventEmitter\";\nimport { Modal } from \"./Modal\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport { sha256 } from \"js-sha256\";\n\nexport const AlertEvents = new EventEmitter<[string | JSX.Element]>();\n\ninterface Alert {\n id: string;\n text: string | JSX.Element;\n hash: string;\n}\n\nlet i = 0;\nexport function AlertManager(): React.ReactElement {\n const [alerts, setAlerts] = useState([]);\n useEffect(\n () =>\n AlertEvents.subscribe((text: string | JSX.Element) => {\n const id = i + \"\";\n i++;\n setAlerts((old) => {\n const hash = getMessageHash(text);\n if (old.some((a) => a.hash === hash)) {\n console.log(\"Duplicate message\");\n return old;\n }\n return [\n ...old,\n {\n id: id,\n text: text,\n hash: hash,\n },\n ];\n });\n }),\n [],\n );\n\n useEffect(() => {\n function handle(this: Document, event: KeyboardEvent): void {\n if (event.code === \"Escape\") {\n setAlerts([]);\n }\n }\n document.addEventListener(\"keydown\", handle);\n return () => document.removeEventListener(\"keydown\", handle);\n }, []);\n\n function getMessageHash(text: string | JSX.Element): string {\n if (typeof text === \"string\") return sha256(text);\n return sha256(JSON.stringify(text.props));\n }\n\n function close(): void {\n setAlerts((old) => {\n return old.slice(1, 1e99);\n });\n }\n\n return (\n <>\n {alerts.length > 0 && (\n \n \n {alerts[0].text}\n \n \n )}\n >\n );\n}\n","import { getRandomByte } from \"./helpers/getRandomByte\";\n\n/**\n * Generate a random IP address\n * Does not check to see if the IP already exists in the game\n */\nexport function createRandomIp(): string {\n const ip: string = getRandomByte(99) + \".\" + getRandomByte(9) + \".\" + getRandomByte(9) + \".\" + getRandomByte(9);\n\n return ip;\n}\n","function getDB(): Promise {\n return new Promise((resolve, reject) => {\n if (!window.indexedDB) {\n reject(\"Indexed DB does not exists\");\n }\n /**\n * DB is called bitburnerSave\n * Object store is called savestring\n * key for the Object store is called save\n * Version `1` is important\n */\n const indexedDbRequest: IDBOpenDBRequest = window.indexedDB.open(\"bitburnerSave\", 1);\n\n // This is called when there's no db to begin with. It's important, don't remove it.\n indexedDbRequest.onupgradeneeded = function (this: IDBRequest) {\n const db = this.result;\n db.createObjectStore(\"savestring\");\n };\n\n indexedDbRequest.onerror = function (this: IDBRequest, ev: Event) {\n reject(`Failed to get IDB ${ev}`);\n };\n\n indexedDbRequest.onsuccess = function (this: IDBRequest) {\n const db = this.result;\n if (!db) {\n reject(\"database loading result was undefined\");\n return;\n }\n resolve(db.transaction([\"savestring\"], \"readwrite\").objectStore(\"savestring\"));\n };\n });\n}\n\nexport function load(): Promise {\n return new Promise((resolve, reject) => {\n getDB()\n .then((db) => {\n return new Promise((resolve, reject) => {\n const request: IDBRequest = db.get(\"save\");\n request.onerror = function (this: IDBRequest, ev: Event) {\n reject(\"Error in Database request to get savestring: \" + ev);\n };\n\n request.onsuccess = function (this: IDBRequest) {\n resolve(this.result);\n };\n }).then((saveString) => resolve(saveString));\n })\n .catch((r) => reject(r));\n });\n}\n\nexport function save(saveString: string): Promise {\n return getDB().then((db) => {\n return new Promise((resolve, reject) => {\n // We'll save to both localstorage and indexedDb\n const request = db.put(saveString, \"save\");\n\n request.onerror = function (e) {\n reject(\"Error saving game to IndexedDB: \" + e);\n };\n\n request.onsuccess = () => resolve();\n });\n });\n}\n\nexport function deleteGame(): Promise {\n return getDB().then((db) => {\n db.delete(\"save\");\n });\n}\n","import { Message } from \"./Message\";\nimport { AugmentationNames } from \"../Augmentation/data/AugmentationNames\";\nimport { Router } from \"../ui/GameRoot\";\nimport { Programs } from \"../Programs/Programs\";\nimport { Player } from \"../Player\";\nimport { Page } from \"../ui/Router\";\nimport { GetServer } from \"../Server/AllServers\";\nimport { SpecialServers } from \"../Server/data/SpecialServers\";\nimport { Settings } from \"../Settings/Settings\";\nimport { dialogBoxCreate } from \"../ui/React/DialogBox\";\nimport { FactionNames } from \"../Faction/data/FactionNames\";\nimport { Server } from \"../Server/Server\";\n\n//Sends message to player, including a pop up\nfunction sendMessage(msg: Message, forced = false): void {\n if (forced || !Settings.SuppressMessages) {\n showMessage(msg.filename);\n }\n addMessageToServer(msg);\n}\n\nfunction showMessage(name: MessageFilenames): void {\n const msg = Messages[name];\n if (!(msg instanceof Message)) throw new Error(\"trying to display unexistent message\");\n const txt =\n \"Message received from unknown sender:
\" +\n \"\" +\n msg.msg +\n \"
\" +\n \"This message was saved as \" +\n msg.filename +\n \" onto your home computer.\";\n dialogBoxCreate(txt);\n}\n\n//Adds a message to a server\nfunction addMessageToServer(msg: Message): void {\n //Short-circuit if the message has already been saved\n if (recvd(msg)) {\n return;\n }\n const server = GetServer(\"home\");\n if (server == null) {\n throw new Error(\"The home server doesn't exist. You done goofed.\");\n }\n server.messages.push(msg.filename);\n}\n\n//Returns whether the given message has already been received\nfunction recvd(msg: Message): boolean {\n const server = GetServer(\"home\");\n if (server == null) {\n throw new Error(\"The home server doesn't exist. You done goofed.\");\n }\n return server.messages.includes(msg.filename);\n}\n\n//Checks if any of the 'timed' messages should be sent\nfunction checkForMessagesToSend(): void {\n if (Router.page() === Page.BitVerse) return;\n const jumper0 = Messages[MessageFilenames.Jumper0];\n const jumper1 = Messages[MessageFilenames.Jumper1];\n const jumper2 = Messages[MessageFilenames.Jumper2];\n const jumper3 = Messages[MessageFilenames.Jumper3];\n const jumper4 = Messages[MessageFilenames.Jumper4];\n const cybersecTest = Messages[MessageFilenames.CyberSecTest];\n const nitesecTest = Messages[MessageFilenames.NiteSecTest];\n const bitrunnersTest = Messages[MessageFilenames.BitRunnersTest];\n const truthGazer = Messages[MessageFilenames.TruthGazer];\n const redpill = Messages[MessageFilenames.RedPill];\n\n if (Player.hasAugmentation(AugmentationNames.TheRedPill)) {\n //Get the world daemon required hacking level\n const worldDaemon = GetServer(SpecialServers.WorldDaemon);\n if (!(worldDaemon instanceof Server)) {\n throw new Error(\"The world daemon is not a server???? Please un-break reality\");\n }\n //If the daemon can be hacked, send the player icarus.msg\n if (Player.hacking >= worldDaemon.requiredHackingSkill) {\n sendMessage(redpill, Player.sourceFiles.length === 0);\n }\n //If the daemon cannot be hacked, send the player truthgazer.msg a single time.\n else if (!recvd(truthGazer)) {\n sendMessage(truthGazer);\n }\n } else if (!recvd(jumper0) && Player.hacking >= 25) {\n sendMessage(jumper0);\n const flightName = Programs.Flight.name;\n const homeComp = Player.getHomeComputer();\n if (!homeComp.programs.includes(flightName)) {\n homeComp.programs.push(flightName);\n }\n } else if (!recvd(jumper1) && Player.hacking >= 40) {\n sendMessage(jumper1);\n } else if (!recvd(cybersecTest) && Player.hacking >= 50) {\n sendMessage(cybersecTest);\n } else if (!recvd(jumper2) && Player.hacking >= 175) {\n sendMessage(jumper2);\n } else if (!recvd(nitesecTest) && Player.hacking >= 200) {\n sendMessage(nitesecTest);\n } else if (!recvd(jumper3) && Player.hacking >= 350) {\n sendMessage(jumper3);\n } else if (!recvd(jumper4) && Player.hacking >= 490) {\n sendMessage(jumper4);\n } else if (!recvd(bitrunnersTest) && Player.hacking >= 500) {\n sendMessage(bitrunnersTest);\n }\n}\n\nexport enum MessageFilenames {\n Jumper0 = \"j0.msg\",\n Jumper1 = \"j1.msg\",\n Jumper2 = \"j2.msg\",\n Jumper3 = \"j3.msg\",\n Jumper4 = \"j4.msg\",\n CyberSecTest = \"csec-test.msg\",\n NiteSecTest = \"nitesec-test.msg\",\n BitRunnersTest = \"19dfj3l1nd.msg\",\n TruthGazer = \"truthgazer.msg\",\n RedPill = \"icarus.msg\",\n}\n\n//Reset\nconst Messages: Record = {\n //jump3R Messages\n [MessageFilenames.Jumper0]: new Message(\n MessageFilenames.Jumper0,\n \"I know you can sense it. I know you're searching for it. \" +\n \"It's why you spend night after \" +\n \"night at your computer.
It's real, I've seen it. And I can \" +\n \"help you find it. But not right now. You're not ready yet.
\" +\n \"Use this program to track your progress
\" +\n \"The fl1ght.exe program was added to your home computer
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper1]: new Message(\n MessageFilenames.Jumper1,\n `Soon you will be contacted by a hacking group known as ${FactionNames.NiteSec}. ` +\n \"They can help you with your search.
\" +\n \"You should join them, garner their favor, and \" +\n \"exploit them for their Augmentations. But do not trust them. \" +\n \"They are not what they seem. No one is.
\" +\n \"-jump3R\",\n ),\n\n [MessageFilenames.Jumper2]: new Message(\n MessageFilenames.Jumper2,\n \"Do not try to save the world. There is no world to save. If \" +\n \"you want to find the truth, worry only about yourself. Ethics and \" +\n `morals will get you killed.
Watch out for a hacking group known as ${FactionNames.NiteSec}.` +\n \"
-jump3R\",\n ),\n\n [MessageFilenames.Jumper3]: new Message(\n MessageFilenames.Jumper3,\n \"You must learn to walk before you can run. And you must \" +\n `run before you can fly. Look for ${FactionNames.TheBlackHand}.
` +\n \"I.I.I.I
-jump3R\",\n ),\n\n [MessageFilenames.Jumper4]: new Message(\n MessageFilenames.Jumper4,\n \"To find what you are searching for, you must understand the bits. \" +\n \"The bits are all around us. The runners will help you.
\" +\n \"-jump3R\",\n ),\n\n //Messages from hacking factions\n [MessageFilenames.CyberSecTest]: new Message(\n MessageFilenames.CyberSecTest,\n \"We've been watching you. Your skills are very impressive. But you're wasting \" +\n \"your talents. If you join us, you can put your skills to good use and change \" +\n \"the world for the better. If you join us, we can unlock your full potential.
\" +\n \"But first, you must pass our test. Find and install the backdoor on our server.
\" +\n `-${FactionNames.CyberSec}`,\n ),\n\n [MessageFilenames.NiteSecTest]: new Message(\n MessageFilenames.NiteSecTest,\n \"People say that the corrupted governments and corporations rule the world. \" +\n \"Yes, maybe they do. But do you know who everyone really fears? People \" +\n \"like us. Because they can't hide from us. Because they can't fight shadows \" +\n \"and ideas with bullets.
\" +\n \"Join us, and people will fear you, too.
\" +\n \"Find and install the backdoor on our server, avmnite-02h. Then, we will contact you again.\" +\n `
-${FactionNames.NiteSec}`,\n ),\n\n [MessageFilenames.BitRunnersTest]: new Message(\n MessageFilenames.BitRunnersTest,\n \"We know what you are doing. We know what drives you. We know \" +\n \"what you are looking for.
\" +\n \"We can help you find the answers.
\" +\n \"run4theh111z\",\n ),\n\n //Messages to guide players to the daemon\n [MessageFilenames.TruthGazer]: new Message(\n MessageFilenames.TruthGazer,\n //\"THE TRUTH CAN NO LONGER ESCAPE YOUR GAZE\"\n \"@&*($#@&__TH3__#@A@*)__TRU1H__(*)&*)($#@&()E&R)W& \" +\n \"%@*$^$()@&$)$*@__CAN__()(@^#)@&@)#__N0__(#@)@&@&( \" +\n \"*(__LON6ER__^#)@)(()*#@)@__ESCAP3__)#(@(#@*@()@(#*$ \" +\n \"()@)#$*%)$#()$#__Y0UR__(*)$#()%(&(%)*!)($__GAZ3__#(\",\n ),\n\n [MessageFilenames.RedPill]: new Message(\n MessageFilenames.RedPill,\n //\"FIND THE-CAVE\"\n \"@)(#V%*N)@(#*)*C)@#%*)*V)@#(*%V@)(#VN%*)@#(*% \" +\n \")@B(*#%)@)M#B*%V)____FIND___#$@)#%(B*)@#(*%B) \" +\n \"@_#(%_@#M(BDSPOMB__THE-CAVE_#)$(*@#$)@#BNBEGB \" +\n \"DFLSMFVMV)#@($*)@#*$MV)@#(*$V)M#(*$)M@(#*VM$)\",\n ),\n};\n\nexport { Messages, checkForMessagesToSend, showMessage };\n","// The initial formulas was sum 0 to f of 500*1.02^f.\n// see https://en.wikipedia.org/wiki/Geometric_series#Closed-form_formula\n// for information on how to calculate this\n\nexport function favorToRep(f: number): number {\n const raw = 25000 * (Math.pow(1.02, f) - 1);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n\nexport function repToFavor(r: number): number {\n const raw = Math.log(r / 25000 + 1) / Math.log(1.02);\n return Math.round(raw * 10000) / 10000; // round to make things easier.\n}\n","import { 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 { IBladeburner } from \"./IBladeburner\";\nimport { BladeburnerConstants } from \"./data/Constants\";\nimport { Action, IActionParams } from \"./Action\";\nimport { Generic_fromJSON, Generic_toJSON, 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(): any {\n return Generic_toJSON(\"Operation\", this);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): Operation {\n return Generic_fromJSON(Operation, value.data);\n }\n}\n\nReviver.constructors.Operation = Operation;\n","import { Augmentations } from \"../../Augmentation/Augmentations\";\nimport { AugmentationNames } from \"../../Augmentation/data/AugmentationNames\";\nimport { IPlayer } from \"../IPlayer\";\n\nexport const getGraftingAvailableAugs = (player: IPlayer): string[] => {\n const augs: string[] = [];\n\n for (const [augName, aug] of Object.entries(Augmentations)) {\n if (augName === AugmentationNames.NeuroFluxGovernor || augName === AugmentationNames.TheRedPill || aug.isSpecial)\n continue;\n augs.push(augName);\n }\n\n return augs.filter((augmentation: string) => !player.hasAugmentation(augmentation));\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 [key: string]: any;\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","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","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 * Class representing a Script instance that is actively running.\n * A Script can have multiple active instances\n */\nimport { Script } from \"./Script\";\nimport { ScriptUrl } from \"./ScriptUrl\";\nimport { Settings } from \"../Settings/Settings\";\nimport { IMap } from \"../types\";\nimport { Terminal } from \"../Terminal\";\n\nimport { Generic_fromJSON, Generic_toJSON, Reviver } from \"../utils/JSONReviver\";\nimport { formatTime } from \"../utils/helpers/formatTime\";\n\nexport class RunningScript {\n // Script arguments\n args: any[] = [];\n\n // Map of [key: hostname] -> Hacking data. Used for offline progress calculations.\n // Hacking data format: [MoneyStolen, NumTimesHacked, NumTimesGrown, NumTimesWeaken]\n dataMap: IMap = {};\n\n // Script filename\n filename = \"\";\n\n // This script's logs. An array of log entries\n logs: string[] = [];\n\n // Flag indicating whether the logs have been updated since\n // the last time the UI was updated\n logUpd = false;\n\n // Total amount of hacking experience earned from this script when offline\n offlineExpGained = 0;\n\n // Total amount of money made by this script when offline\n offlineMoneyMade = 0;\n\n // Number of seconds that the script has been running offline\n offlineRunningTime = 0.01;\n\n // Total amount of hacking experience earned from this script when online\n onlineExpGained = 0;\n\n // Total amount of money made by this script when online\n onlineMoneyMade = 0;\n\n // Number of seconds that this script has been running online\n onlineRunningTime = 0.01;\n\n // Process ID. Must be an integer and equals the PID of corresponding WorkerScript\n pid = -1;\n\n // How much RAM this script uses for ONE thread\n ramUsage = 0;\n\n // hostname of the server on which this script is running\n server = \"\";\n\n // Number of threads that this script is running with\n threads = 1;\n\n // Script urls for the current running script for translating urls back to file names in errors\n dependencies: ScriptUrl[] = [];\n\n constructor(script: Script | null = null, args: any[] = []) {\n if (script == null) {\n return;\n }\n this.filename = script.filename;\n this.args = args;\n this.server = script.server;\n this.ramUsage = script.ramUsage;\n this.dependencies = script.dependencies;\n }\n\n log(txt: string): void {\n if (this.logs.length > Settings.MaxLogCapacity) {\n this.logs.shift();\n }\n\n let logEntry = txt;\n if (Settings.TimestampsFormat) {\n logEntry = \"[\" + formatTime(Settings.TimestampsFormat) + \"] \" + logEntry;\n }\n\n this.logs.push(logEntry);\n this.logUpd = true;\n }\n\n displayLog(): void {\n for (let i = 0; i < this.logs.length; ++i) {\n Terminal.print(this.logs[i]);\n }\n }\n\n clearLog(): void {\n this.logs.length = 0;\n }\n\n // Update the moneyStolen and numTimesHack maps when hacking\n recordHack(hostname: string, moneyGained: number, n = 1): void {\n if (this.dataMap[hostname] == null || this.dataMap[hostname].constructor !== Array) {\n this.dataMap[hostname] = [0, 0, 0, 0];\n }\n this.dataMap[hostname][0] += moneyGained;\n this.dataMap[hostname][1] += n;\n }\n\n // Update the grow map when calling grow()\n recordGrow(hostname: string, n = 1): void {\n if (this.dataMap[hostname] == null || this.dataMap[hostname].constructor !== Array) {\n this.dataMap[hostname] = [0, 0, 0, 0];\n }\n this.dataMap[hostname][2] += n;\n }\n\n // Update the weaken map when calling weaken() {\n recordWeaken(hostname: string, n = 1): void {\n if (this.dataMap[hostname] == null || this.dataMap[hostname].constructor !== Array) {\n this.dataMap[hostname] = [0, 0, 0, 0];\n }\n this.dataMap[hostname][3] += n;\n }\n\n // Serialize the current object to a JSON save state\n toJSON(): any {\n return Generic_toJSON(\"RunningScript\", this);\n }\n\n // Initializes a RunningScript Object from a JSON save state\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n static fromJSON(value: any): RunningScript {\n return Generic_fromJSON(RunningScript, value.data);\n }\n}\n\nReviver.constructors.RunningScript = RunningScript;\n","import React from \"react\";\nimport { SourceFile } from \"./SourceFile\";\nimport { IMap } from \"../types\";\n\nexport const SourceFiles: IMap = {};\n\nSourceFiles[\"SourceFile1\"] = new SourceFile(\n 1,\n (\n <>\n This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the\n player's multipliers by:\n \n \n Level 1: 16%\n \n Level 2: 24%\n \n Level 3: 28%\n >\n ),\n);\nSourceFiles[\"SourceFile2\"] = new SourceFile(\n 2,\n (\n <>\n This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It also\n increases the player's crime success rate, crime money, and charisma multipliers by:\n \n \n Level 1: 24%\n \n Level 2: 36%\n \n Level 3: 42%\n >\n ),\n);\nSourceFiles[\"SourceFile3\"] = new SourceFile(\n 3,\n (\n <>\n This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this\n mechanic). This Source-File also increases your charisma and company salary multipliers by:\n \n Level 1: 8%\n \n Level 2: 12%\n \n Level 3: 14%\n >\n ),\n);\nSourceFiles[\"SourceFile4\"] = new SourceFile(\n 4,\n (\n <>\n This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this\n Source-File reduces the RAM cost of Singularity functions.\n >\n ),\n);\nSourceFiles[\"SourceFile5\"] = new SourceFile(\n 5,\n (\n <>\n This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent and\n persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other\n stats. Higher Intelligence levels will boost your production for many actions in the game. In addition, this\n Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with Formulas.exe, and\n will 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.singularityStopWork();\n props.bladeburner.startAction(player, props.bladeburner.action);\n props.rerender();\n }\n\n return (\n \n );\n}\n","import { format } from \"date-fns\";\n\nexport function formatTime(fmt: string): string {\n try {\n return format(new Date(), fmt);\n } catch (err: any) {\n return \"format error\";\n }\n}\n","import React from \"react\";\nimport { IMap } from \"../types\";\nimport { FactionNames } from \"./data/FactionNames\";\nimport { use } from \"../ui/Context\";\nimport { Option } from \"./ui/Option\";\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 - thats 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