{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/Player.ts","webpack:///./src/Faction/data/FactionNames.ts","webpack:///./src/ui/numeralFormat.ts","webpack:///./src/BitNode/BitNodeMultipliers.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/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/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/ui/React/Snackbar.tsx","webpack:///./src/StockMarket/data/StockSymbols.ts","webpack:///./src/Script/isScriptFilename.ts","webpack:///./src/CotMG/Helper.tsx","webpack:///./src/Server/data/SpecialServers.ts","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/utils/EventEmitter.ts","webpack:///./src/DevMenu/ui/Adjuster.tsx","webpack:///./src/ScriptEditor/ui/themes.ts","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/BitNode/BitNode.tsx","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/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/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/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/ui/React/DeleteGameButton.tsx","webpack:///./src/ui/React/SoftResetButton.tsx","webpack:///./src/Themes/ui/ThemeEditorButton.tsx","webpack:///./src/Themes/ui/ThemeCollaborate.tsx","webpack:///./src/Themes/ui/StyleEditorButton.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/ui/React/GameOptionsRoot.tsx","webpack:///./src/Diagnostic/FileDiagnosticModal.tsx","webpack:///./src/Themes/ui/ThemeEditorModal.tsx","webpack:///./src/Themes/ui/StyleEditorModal.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/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","BitNodeMultipliers","HackingLevelMultiplier","StrengthLevelMultiplier","DefenseLevelMultiplier","DexterityLevelMultiplier","AgilityLevelMultiplier","CharismaLevelMultiplier","ServerGrowthRate","ServerMaxMoney","ServerStartingMoney","ServerStartingSecurity","ServerWeakenRate","HomeComputerRamCost","PurchasedServerCost","PurchasedServerSoftcap","PurchasedServerLimit","PurchasedServerMaxRam","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","WorldDaemonDifficulty","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","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","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","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","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","OmniTekIncorporated","VolhavenOmniTekIncorporated","foursigmaFac","FourSigma","Sector12FourSigma","kuaigonginternationalFac","KuaiGongInternational","ChongqingKuaiGongInternational","fulcrumsecrettechonologiesFac","FulcrumSecretTechnologies","fulcrumSecretServer","AevumFulcrumTechnologies","bitrunnersFac","BitRunners","bitrunnersServer","BitRunnersServer","theblackhandFac","TheBlackHand","blackhandServer","TheBlackHandServer","nitesecFac","NiteSec","nitesecServer","NiteSecServer","chongqingFac","sector12Fac","newtokyoFac","aevumFac","ishimaFac","volhavenFac","speakersforthedeadFac","SpeakersForTheDead","Sector12CIA","Sector12NSA","thedarkarmyFac","TheDarkArmy","thesyndicateFac","TheSyndicate","silhouetteFac","Silhouette","tetradsFac","Tetrads","slumsnakesFac","SlumSnakes","netburnersFac","Netburners","totalHacknetRam","totalHacknetCores","totalHacknetLevels","v","hserver","HacknetServer","cores","ram","tiandihuiFac","TianDiHui","cybersecFac","CyberSec","cybersecServer","CyberSecServer","setBitNodeNumber","queueAugmentation","aug","PlayerOwnedAugmentation","gainCodingContractReward","reward","difficulty","CodingContractRewardType","FactionReputation","FactionReputationAll","repGain","totalGain","specialFactions","Bladeburners","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","lvl","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","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","TheDarkArmyServer","DaedalusServer","DarkWeb","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","uuidv4","uuid","subscribers","sub","Adjuster","setValue","label","placeholder","subtract","tons","onChange","InputProps","startAdornment","title","transform","endAdornment","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","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","ChurchOfTheMachineGod","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","dec","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","updateLayer","full","maxLength","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","findRunningScript","startWorkerScript","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","BitNode","BitNodes","initBitNodeMultipliers","sf12Lvl","inc","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","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","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","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","DeleteGameButton","modalOpened","setModalOpened","SoftResetButton","noConfirmation","ThemeEditorButton","themeEditorOpen","setThemeEditorOpen","ThemeCollaborate","StyleEditorButton","styleEditorOpen","setStyleEditorOpen","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","disablePadding","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","importInput","execTime","setExecTime","recentScriptsSize","setRecentScriptsSize","logSize","setLogSize","portSize","setPortSize","terminalSize","setTerminalSize","autosaveInterval","setAutosaveInterval","timestampFormat","setTimestampFormat","setLocale","diagnosticOpen","setDiagnosticOpen","importSaveOpen","setImportSaveOpen","importData","setImportData","gutterBottom","sm","valueLabelDisplay","marks","method","alt","File","FileList","ii","ex","confirmedImportGame","ServerAccordion","FileDiagnosticModal","ColorEditor","onColorChange","defaultColor","hideTextfield","deferred","newColor","disableAlpha","ThemeEditorModal","customTheme","setCustomTheme","setTemplateTheme","placement","maxRows","importedTheme","FontFamilyField","refreshId","errorText","setErrorText","setFontFamily","LineHeightField","setLineHeight","StyleEditorModal","setRefreshId","customStyle","setCustomStyle","persistToSettings","endIcon","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","setTab","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","currentSourceFile","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","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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CE,0IAEFe,aAAc,IACdH,cAAe,IACfT,SAAU,CACR55B,IAAaq5C,sBACbr5C,IAAaw5C,0BACbx5C,IAAa86C,mBACb96C,IAAay4C,IACbz4C,IAAa23C,YACb33C,IAAay3C,SACbz3C,IAAao3C,cAGjB,IAAI7d,IAAa,CACf37B,KAAMiU,IAAkButH,gBACxBzlG,QAAS,OACTD,UAAW,OACXD,KACE,mSAGFY,cAAe,IACfC,aAAc,IACdV,SAAU,CACR55B,IAAaq5C,sBACbr5C,IAAaw5C,0BACbx5C,IAAa86C,mBACb96C,IAAay4C,IACbz4C,IAAa23C,YACb33C,IAAay3C,SACbz3C,IAAao3C,WACbp3C,IAAas4C,mBAGjB,IAAI/e,IAAa,CACf37B,KAAMiU,IAAkBwtH,WACxB1lG,QAAS,KACTD,UAAW,OACXD,KACE,wIAEFY,cAAe,IACfC,aAAc,IACdV,SAAU,CACR55B,IAAa07C,WACb17C,IAAak7C,YACbl7C,IAAao7C,aACbp7C,IAAa+0B,SACb/0B,IAAa80B,OACb90B,IAAa+4C,oBACb/4C,IAAaq5C,sBACbr5C,IAAas4C,mBAGjB,IAAI/e,IAAa,CACf37B,KAAMiU,IAAkBytH,WACxB3lG,QAAS,MACTD,UAAW,KACXD,KACE,iKAEFI,QAAS,CAAChoB,IAAkBwtH,YAC5BhlG,cAAe,KACfC,aAAc,KACdV,SAAU,CACR55B,IAAak7C,YACbl7C,IAAao7C,aACbp7C,IAAa+0B,SACb/0B,IAAa+4C,oBACb/4C,IAAaq5C,sBACbr5C,IAAas4C,mBAGjB,IAAI/e,IAAa,CACf37B,KAAMiU,IAAkB0tH,WACxB5lG,QAAS,KACTD,UAAW,KACXD,KACE,uLAEFI,QAAS,CAAChoB,IAAkBytH,YAC5BjlG,cAAe,KACfC,aAAc,KACdV,SAAU,CACR55B,IAAak7C,YACbl7C,IAAao7C,aACbp7C,IAAa+4C,oBACb/4C,IAAaq5C,sBACbr5C,IAAas4C,gBACbt4C,IAAa23C,eAGjB,IAAIpe,IAAa,CACf37B,KAAMiU,IAAkB2tH,eACxB7lG,QAAS,MACTD,UAAW,MACXD,KACE,sKAEFY,cAAe,IACfC,aAAc,IACdV,SAAU,CACR55B,IAAak7C,YACbl7C,IAAao7C,aACbp7C,IAAa+4C,oBACb/4C,IAAas4C,gBACbt4C,IAAas8C,UACbt8C,IAAa86C,mBACb96C,IAAaw5C,6BAGjB,IAAIjgB,IAAa,CACf37B,KAAMiU,IAAkB4tH,eACxB9lG,QAAS,MACTD,UAAW,MACXD,KACE,2cAKFa,aAAc,IACdV,SAAU,CACR55B,IAAao7C,aACbp7C,IAAaw5C,0BACbx5C,IAAao3C,WACbp3C,IAAay3C,SACbz3C,IAAa23C,eAGjB,IAAIpe,IAAa,CACf37B,KAAMiU,IAAkB6tH,cACxB/lG,QAAS,KACTD,UAAW,KACXD,KACE,wKAEFe,aAAc,KACdD,eAAgB,KAChBX,SAAU,CACR55B,IAAas8C,UACbt8C,IAAa07C,WACb17C,IAAa40B,SACb50B,IAAa+0B,SACb/0B,IAAa00B,MACb10B,IAAa80B,OACb90B,IAAao7C,aACbp7C,IAAak7C,YACbl7C,IAAa86C,sBAGjB,IAAIvhB,IAAa,CACf37B,KAAMiU,IAAkB8tH,oBACxBhmG,QAAS,OACTD,UAAW,MACXD,KAAM,0GACNY,cAAe,IACfC,aAAc,IACdV,SAAU,CAAC55B,IAAaw5C,0BAA2Bx5C,IAAa23C,eAElE,IAAIpe,IAAa,CACf37B,KAAMiU,IAAkB+tH,YACxBjmG,QAAS,KACTD,UAAW,MACXD,KACE,yQAIFY,cAAe,KACfC,aAAc,KACdE,aAAc,KACdD,eAAgB,KAChBX,SAAU,CACR55B,IAAa86C,mBACb96C,IAAao7C,aACbp7C,IAAaq5C,sBACbr5C,IAAa+4C,oBACb/4C,IAAas4C,mBAGjB,IAAI/e,IAAa,CACf37B,KAAMiU,IAAkBguH,oBACxBlmG,QAAS,OACTD,UAAW,IACXD,KACE,iJAEFI,QAAS,CAAChoB,IAAkB+tH,aAC5BvlG,cAAe,IACfC,aAAc,IACdE,aAAc,IACdD,eAAgB,IAChBX,SAAU,CAAC55B,IAAaw5C,0BAA2Bx5C,IAAa63C,SAElE,IAAIte,IAAa,CACf37B,KAAMiU,IAA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aAAc,KACdP,SAAU,CACR55B,IAAa45C,WACb55C,IAAag6C,aACbh6C,IAAa63C,MACb73C,IAAag4C,SACbh4C,IAAaw5C,0BACbx5C,IAAay4C,IACbz4C,IAAas4C,mBAGjB,IAAI/e,IAAa,CACf37B,KAAMiU,IAAkB+uH,UACxBjnG,QAAS,IACTD,UAAW,KACXD,KACE,6RAIFI,QAAS,CAAChoB,IAAkB8uH,SAC5B1lG,mBAAoB,KACpBC,mBAAoB,IACpBF,oBAAqB,KACrBN,iBAAkB,KAClBP,aAAc,KACdP,SAAU,CACR55B,IAAa45C,WACb55C,IAAa63C,MACb73C,IAAag4C,SACbh4C,IAAaw5C,0BACbx5C,IAAay4C,IACbz4C,IAAas4C,gBACbt4C,IAAa+4C,oBACb/4C,IAAaq5C,yBAGjB,IAAI9f,IAAa,CACf37B,KAAMiU,IAAkBgvH,UACxBlnG,QAAS,MACTD,UAAW,KACXD,KACE,qNAGFI,QAAS,CAAChoB,IAAkB+uH,WAC5B3lG,mBAAoB,KACpBC,mBAAoB,IACpBF,oBAAqB,IACrBN,iBAAkB,KAClBP,aAAc,IACdP,SAAU,CACR55B,IAAa63C,MACb73C,IAAag4C,SACbh4C,IAAaw5C,0BACbx5C,IAAay4C,IACbz4C,IAAay3C,SACbz3C,IAAa23C,YACb33C,IAAao3C,cAGjB,IAAI7d,IAAa,CACf37B,KAAMiU,IAAkBivH,iBACxBnnG,QAAS,MACTD,UAAW,IACXD,KACE,qKAEFI,QAAS,CAAChoB,IAAkB6uH,KAC5BzlG,mBAAoB,IACpBrB,SAAU,CACR55B,IAAa63C,MACb73C,IAAag4C,SACbh4C,IAAaw5C,0BACbx5C,IAAay4C,IACbz4C,IAAay3C,SACbz3C,IAAa23C,YACb33C,IAAao3C,cAGjB,IAAI7d,IAAa,CACf37B,KAAMiU,IAAkBkvH,OACxBpnG,QAAS,IACTD,UAAW,IACXD,KACE,kNAGFI,QAAS,CAAChoB,IAAkB6uH,KAC5BxlG,mBAAoB,IACpBF,oBAAqB,IACrBpB,SAAU,CACR55B,IAAa63C,MACb73C,IAAag4C,SACbh4C,IAAaw5C,0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EACA,uDACA,4FACA,8EACA,kFACA,mHACA,oEACA,kGACA,wEACA,oEACA,gFACA,6FACA,4FACA,6EACA,2FACA,iGACA,6EACA,4GACA,0FACA,yEACA,uEACA,gGACA,iGACA,iFACA,+FACA,0FACA,4FACA,uEACA,wHACA,sFACA,iFACA,KAGIC,EACWz6C,GACN,CACJ,UAASA,wBACT,IACA,8GACA,4FACA,IACA,4CAA2CA,kDAC3C,kBAAiBA,yEACjB,IACA,YACA,IACA,OAAMA,YACN,OAAMA,qBACN,IACA,OAAMA,WACN,OAAMA,iBACN,KAKM06C,EAA4B,CACvC3zD,MAAO,CACL,oCACA,IACA,4FACA,uGACA,yHACA,kGACA,IACA,gCACA,IACA,mHACA,yHACA,4CACA,IACA,gCACA,IACA,6DACA,IACA,eACA,IACA,2HACA,4HACA,IACA,mCACA,IACA,8GACA,IACA,uHACA,uCACA,IACA,uDACA,KAEF4zD,QAAS,CACP,iBACA,IACA,0GACA,mHACA,kHACA,gCACA,KAEFC,SAAU,CACR,kBACA,IACA,6FACA,IACA,+BACA,KAEFz1H,IAAK,CACH,iCACA,IACA,yEACA,IACA,oHACA,oDACA,IACA,+FACA,IACA,wGACA,KAEF01H,IAAK,CACH,oBACA,IACA,6EACA,IACA,iBACA,IACA,kBACA,IACA,sBACA,KAEF/gB,GAAI,CACF,kBACA,IACA,yGACA,iFACA,IACA,yBACA,IACA,eACA,IACA,aACA,KAEFghB,MAAO,CACL,uCACA,IACA,+HACA,uDACA,kIACA,IACA,oCACA,IACA,gGACA,IACA,sCACA,KAEFzlH,MAAO,CACL,eACA,IACA,mIACA,uIACA,KAEF0lH,IAAK,CACH,aACA,IACA,mIACA,yIACA,KAEFv0H,QAAS,CACP,4BACA,IACA,+FACA,oIACA,8GACA,KAEFw0H,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,KAEF3pH,KAAM,CACJ,cACA,IACA,6GACA,2CACA,KAEFT,KAAM,CACJ,cACA,IACA,uHACA,KAEFqqH,KAAM,CACJ,wBACA,IACA,yHACA,0HACA,mEACA,IACA,iBACA,IACA,wBACA,KAEFC,QAAS,CACP,sBACA,IACA,6GACA,KAEF5vG,KAAM,CACJ,cACA,IACA,sGACA,KAEFtxB,SAAU,CAAC,kBAAmB,IAAK,4CAA6C,KAChF2Y,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,KAEFmoH,MAAO,CAAC,eAAgB,IAAK,wDAAyD,KAEtFC,IAAK,CACH,4CACA,IACA,6HACA,2HACA,gFACA,IACA,qBACA,IACA,2BACA,IACA,4HACA,iFACA,KAEF3kH,GAAI,CACF,yBACA,IACA,6FACA,6FACA,kCACA,IACA,kFACA,kBACA,aACA,IACA,qEACA,IACA,oCACA,KAEF4kH,KAAMd,EAAgC,QACtCtnH,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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2D,MAAM4D,KAAKkhJ,WAAYvP,YAE5D3xI,KAAK+gJ,2BAA2B/gJ,KAAKo/I,MAAO,cAAeL,GAE3DA,EAAU,WAER,OADAnzF,MAAMjwD,UAAU2Y,KAAKzY,KAAKmE,KAAKkhJ,YACxBlhJ,MAETA,KAAK+gJ,2BAA2B/gJ,KAAKo/I,MAAO,OAAQL,GAEpD/+I,KAAKi8I,WAAWlgJ,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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AAakwD,8BACnBroC,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAgsK,EACAC,EACAG,EACAD,GAEFtoI,cAAe,IACfF,iBAAkB,IAClBiH,iBAAkB,KAEpB,CACE13C,KAAMgU,IAAamwD,kBACnBtoC,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAgsK,EACAC,EACAG,EACAD,GAEFtoI,cAAe,KACfF,iBAAkB,KAClBiH,iBAAkB,KAEpB,CACE13C,KAAMgU,IAAampC,YACnBthB,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAssK,EACAR,EACAC,EACAF,EACAM,EACAD,GAEFroI,cAAe,EACfF,iBAAkB,EAClBiH,iBAAkB,KAEpB,CACE13C,KAAMgU,IAAaopC,YACnBvhB,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAssK,EACAR,EACAC,EACAF,EACAM,EACAD,GAEFroI,cAAe,EACfF,iBAAkB,EAClBiH,iBAAkB,KAEpB,CACE13C,KAAMgU,IAAaowD,sBACnBvoC,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAssK,EACAR,EACAD,EACAM,EACAD,EACAE,GAEFvoI,cAAe,IACfF,iBAAkB,IAClBiH,iBAAkB,KAEpB,CACE13C,KAAMgU,IAAaqwD,iBACnBxoC,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAgsK,EACAI,EACAH,EACAE,GAEFtoI,cAAe,IACfF,iBAAkB,IAClBiH,iBAAkB,IAEpB,CACE13C,KAAMgU,IAAaswD,qBACnBzoC,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OAAO,GAAIusK,EAAoCC,GACxE3oI,cAAe,IACfF,iBAAkB,IAClBiH,iBAAkB,IAEpB,CACE13C,KAAMgU,IAAauwD,yBACnB1oC,KAAM,GACN21C,iBAAkBpzE,OAAO0O,OACvB,GACAusK,EACAC,EACAJ,GAEFvoI,cAAe,IACfF,iBAAkB,IAClBiH,iBAAkB,IAEpB,CACE13C,KAAMgU,IAAas1G,YACnBztF,KAAM,GACN21C,iBAAkBpzE,OAAO0O,O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A,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,CACFjuG,QAAS,CAAEkuG,MAAO,KAAOntJ,KAAM,GAC/Bk/C,OAAQ,CAAEiuG,MAAO,IAAMntJ,KAAM,GAC7Bm/C,KAAM,CAAEguG,MAAO,IAAMntJ,KAAM,GAC3Bo/C,WAAY,CAAE+tG,MAAO,KAAMntJ,KAAM,KAG5B,SAASsrJ,EAAU//L,GACxB,MAAMgqC,EAAyB,CAAE43J,MAAO,EAAGntJ,KAAM,GACjD4+C,YAAYsuG,EAAc3hM,EAAMgqC,WAAYA,GAC5C,MAAM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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([1519,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","/**\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 */\ninterface 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: 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: 1,\n\n StaneksGiftPowerMultiplier: 1,\n StaneksGiftExtraSize: 0,\n\n WorldDaemonDifficulty: 1,\n};\n","import { ISelfInitializer, ISelfLoading } from \"../types\";\nimport { OwnedAugmentationsOrderSetting, PurchaseAugmentationsOrderSetting } from \"./SettingEnums\";\nimport { defaultTheme, ITheme } from \"../Themes/Themes\";\nimport { defaultStyles } from \"../Themes/Styles\";\nimport { WordWrapOptions } from \"../ScriptEditor/ui/Options\";\nimport { OverviewSettings } from \"../ui/React/Overview\";\nimport { IStyleSettings } from \"../ScriptEditor/NetscriptDefinitions\";\nimport { defaultMonacoTheme, IScriptEditorTheme } from \"../ScriptEditor/ui/themes\";\n\n/**\n * Represents the default settings the player could customize.\n */\ninterface IDefaultSettings {\n /**\n * How many servers per page\n */\n ActiveScriptsServerPageSize: number;\n /**\n * How many scripts per page\n */\n ActiveScriptsScriptPageSize: number;\n /**\n * How often the game should autosave the player's progress, in seconds.\n */\n AutosaveInterval: number;\n\n /**\n * How many milliseconds between execution points for Netscript 1 statements.\n */\n CodeInstructionRunTime: number;\n\n /**\n * Render city as list of buttons.\n */\n DisableASCIIArt: boolean;\n\n /**\n * Whether global keyboard shortcuts should be recognized throughout the game.\n */\n DisableHotkeys: boolean;\n\n /**\n * Whether text effects such as corruption should be visible.\n */\n DisableTextEffects: boolean;\n\n /**\n * Whether overview progress bars should be visible.\n */\n DisableOverviewProgressBars: boolean;\n\n /**\n * Enable bash hotkeys\n */\n EnableBashHotkeys: boolean;\n\n /**\n * Timestamps format\n */\n TimestampsFormat: string;\n\n /**\n * Locale used for display numbers\n */\n Locale: string;\n\n /**\n * Limit the number of recently killed script entries being tracked.\n */\n MaxRecentScriptsCapacity: number;\n\n /**\n * Limit the number of log entries for each script being executed on each server.\n */\n MaxLogCapacity: number;\n\n /**\n * Limit how many entries can be written to a Netscript Port before entries start to get pushed out.\n */\n MaxPortCapacity: number;\n\n /**\n * Limit the number of entries in the terminal.\n */\n MaxTerminalCapacity: number;\n\n /**\n * Save the game when you save any file.\n */\n SaveGameOnFileSave: boolean;\n\n /**\n * Whether the player should be asked to confirm purchasing each and every augmentation.\n */\n SuppressBuyAugmentationConfirmation: boolean;\n\n /**\n * Whether the user should be prompted to join each faction via a dialog box.\n */\n SuppressFactionInvites: boolean;\n\n /**\n * Whether the user should be shown a dialog box whenever they receive a new message file.\n */\n SuppressMessages: boolean;\n\n /**\n * Whether the user should be asked to confirm travelling between cities.\n */\n SuppressTravelConfirmation: boolean;\n\n /**\n * Whether the user should be displayed a popup message when his Bladeburner actions are cancelled.\n */\n SuppressBladeburnerPopup: boolean;\n\n /**\n * Whether the user should be displayed a popup message on stock market actions.\n */\n SuppressTIXPopup: boolean;\n\n /**\n * Whether the user should be displayed a toast alert when the game is saved.\n */\n SuppressSavedGameToast: boolean;\n\n /**\n * Whether the user should be displayed a toast warning when the autosave is disabled.\n */\n SuppressAutosaveDisabledWarnings: boolean;\n\n /*\n * Whether the game should skip saving the running scripts for late game\n */\n ExcludeRunningScriptsFromSave: boolean;\n\n /*\n * Theme colors\n */\n theme: ITheme;\n\n /*\n * Interface styles\n */\n styles: IStyleSettings;\n\n /*\n * Use GiB instead of GB\n */\n UseIEC60027_2: boolean;\n\n /*\n * Character overview settings\n */\n overview: OverviewSettings;\n\n /**\n * If the game's sidebar is opened\n */\n IsSidebarOpened: boolean;\n\n /**\n * Script editor theme data\n */\n EditorTheme: IScriptEditorTheme;\n}\n\n/**\n * Represents all possible settings the player wants to customize to their play style.\n */\ninterface ISettings extends IDefaultSettings {\n /**\n * What order the player's owned Augmentations/Source Files should be displayed in\n */\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting;\n\n /**\n * What order the Augmentations should be displayed in when purchasing from a Faction\n */\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting;\n\n MonacoTheme: string;\n\n MonacoInsertSpaces: boolean;\n\n MonacoFontSize: number;\n\n MonacoVim: boolean;\n\n MonacoWordWrap: WordWrapOptions;\n}\n\nexport const defaultSettings: IDefaultSettings = {\n ActiveScriptsServerPageSize: 10,\n ActiveScriptsScriptPageSize: 10,\n AutosaveInterval: 60,\n CodeInstructionRunTime: 50,\n DisableASCIIArt: false,\n DisableHotkeys: false,\n DisableTextEffects: false,\n DisableOverviewProgressBars: false,\n EnableBashHotkeys: false,\n TimestampsFormat: \"\",\n Locale: \"en\",\n MaxRecentScriptsCapacity: 50,\n MaxLogCapacity: 50,\n MaxPortCapacity: 50,\n MaxTerminalCapacity: 500,\n SaveGameOnFileSave: true,\n SuppressBuyAugmentationConfirmation: false,\n SuppressFactionInvites: false,\n SuppressMessages: false,\n SuppressTravelConfirmation: false,\n SuppressBladeburnerPopup: false,\n SuppressTIXPopup: false,\n SuppressSavedGameToast: false,\n SuppressAutosaveDisabledWarnings: false,\n UseIEC60027_2: false,\n ExcludeRunningScriptsFromSave: false,\n IsSidebarOpened: true,\n\n theme: defaultTheme,\n styles: defaultStyles,\n overview: { x: 0, y: 0, opened: true },\n\n EditorTheme: defaultMonacoTheme,\n};\n\n/**\n * The current options the player has customized to their play style.\n */\n// tslint:disable-next-line:variable-name\nexport const Settings: ISettings & ISelfInitializer & ISelfLoading = {\n ActiveScriptsServerPageSize: defaultSettings.ActiveScriptsServerPageSize,\n ActiveScriptsScriptPageSize: defaultSettings.ActiveScriptsScriptPageSize,\n AutosaveInterval: defaultSettings.AutosaveInterval,\n CodeInstructionRunTime: 25,\n DisableASCIIArt: defaultSettings.DisableASCIIArt,\n DisableHotkeys: defaultSettings.DisableHotkeys,\n DisableTextEffects: defaultSettings.DisableTextEffects,\n DisableOverviewProgressBars: defaultSettings.DisableOverviewProgressBars,\n EnableBashHotkeys: defaultSettings.EnableBashHotkeys,\n TimestampsFormat: defaultSettings.TimestampsFormat,\n Locale: \"en\",\n MaxRecentScriptsCapacity: defaultSettings.MaxRecentScriptsCapacity,\n MaxLogCapacity: defaultSettings.MaxLogCapacity,\n MaxPortCapacity: defaultSettings.MaxPortCapacity,\n MaxTerminalCapacity: defaultSettings.MaxTerminalCapacity,\n OwnedAugmentationsOrder: OwnedAugmentationsOrderSetting.AcquirementTime,\n PurchaseAugmentationsOrder: PurchaseAugmentationsOrderSetting.Default,\n SaveGameOnFileSave: defaultSettings.SaveGameOnFileSave,\n SuppressBuyAugmentationConfirmation: defaultSettings.SuppressBuyAugmentationConfirmation,\n SuppressFactionInvites: defaultSettings.SuppressFactionInvites,\n SuppressMessages: defaultSettings.SuppressMessages,\n SuppressTravelConfirmation: defaultSettings.SuppressTravelConfirmation,\n SuppressBladeburnerPopup: defaultSettings.SuppressBladeburnerPopup,\n SuppressTIXPopup: defaultSettings.SuppressTIXPopup,\n SuppressSavedGameToast: defaultSettings.SuppressSavedGameToast,\n SuppressAutosaveDisabledWarnings: defaultSettings.SuppressAutosaveDisabledWarnings,\n UseIEC60027_2: defaultSettings.UseIEC60027_2,\n ExcludeRunningScriptsFromSave: defaultSettings.ExcludeRunningScriptsFromSave,\n IsSidebarOpened: defaultSettings.IsSidebarOpened,\n\n MonacoTheme: \"monokai\",\n MonacoInsertSpaces: false,\n MonacoFontSize: 20,\n MonacoVim: false,\n MonacoWordWrap: \"off\",\n\n theme: { ...defaultTheme },\n styles: { ...defaultStyles },\n overview: defaultSettings.overview,\n EditorTheme: { ...defaultMonacoTheme },\n init() {\n Object.assign(Settings, defaultSettings);\n },\n load(saveString: string) {\n const save = JSON.parse(saveString);\n Object.assign(Settings.theme, save.theme);\n delete save.theme;\n Object.assign(Settings.styles, save.styles);\n delete save.styles;\n Object.assign(Settings.overview, save.overview);\n delete save.overview;\n Object.assign(Settings.EditorTheme, save.EditorTheme);\n delete save.EditorTheme;\n Object.assign(Settings, save);\n },\n};\n","/**\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: 14,\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 { 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 { 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.isWorking = false;\n this.companyName = \"\";\n }\n if (this.companyName === company) {\n this.companyName = \"\";\n }\n delete this.jobs[company];\n}\n\n/**\n * Method to see if the player has at least one job assigned to them\n * @param this The player instance\n * @returns Whether the user has at least one job\n */\nexport function hasJob(this: IPlayer): boolean {\n return Boolean(Object.keys(this.jobs).length);\n}\n\nexport function applyForSoftwareJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareCompanyPositions[0]], sing);\n}\n\nexport function applyForSoftwareConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.SoftwareConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForItJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.ITCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]])) {\n return this.applyForJob(CompanyPositions[posNames.SecurityEngineerCompanyPositions[0]], sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForNetworkEngineerJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.NetworkEngineerCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForBusinessJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessCompanyPositions[0]], sing);\n}\n\nexport function applyForBusinessConsultantJob(this: IPlayer, sing = false): boolean {\n return this.applyForJob(CompanyPositions[posNames.BusinessConsultantCompanyPositions[0]], sing);\n}\n\nexport function applyForSecurityJob(this: IPlayer, sing = false): boolean {\n // TODO Police Jobs\n // Indexing starts at 2 because 0 is for police officer\n return this.applyForJob(CompanyPositions[posNames.SecurityCompanyPositions[2]], sing);\n}\n\nexport function applyForAgentJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n if (this.isQualified(company, CompanyPositions[posNames.AgentCompanyPositions[0]])) {\n const pos = CompanyPositions[posNames.AgentCompanyPositions[0]];\n return this.applyForJob(pos, sing);\n } else {\n if (!sing) {\n dialogBoxCreate(\"Unfortunately, you do not qualify for this position\");\n }\n return false;\n }\n}\n\nexport function applyForEmployeeJob(this: IPlayer, sing = false): boolean {\n const company = Companies[this.location]; //Company being applied to\n const position = posNames.MiscCompanyPositions[1];\n // Check if this company has the position\n if (!company.hasPosition(position)) {\n return false;\n }\n if (this.isQualified(company, CompanyPositions[position])) {\n this.jobs[company.name] = position;\n 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 >= Math.round(30 * 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 \"./React/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","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","/* 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 { 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\";\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 < 14) {\n delete (Settings as any).EditorTheme;\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","/**\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","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","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","import React from \"react\";\nimport { BitNodeMultipliers } 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 In this BitNode:\n \n \n Your hacking level is reduced by 20%\n \n The growth rate and maximum amount of money available on servers are significantly decreased\n \n The amount of money gained from crimes and Infiltration is tripled\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 For every Faction NOT listed above, reputation gains are halved\n \n You will no longer gain passive reputation with Factions\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. All other forms of income are reduced by 75%. Furthermore: \n \n The price and reputation cost of all Augmentations is tripled\n \n The starting and maximum amount of money on servers is reduced by 75%\n \n Server growth rate is reduced by 80%\n \n You now only need 75 favour with a faction in order to donate to it, rather than 150\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 In this BitNode, progressing is significantly harder. Experience gain rates for all stats are reduced. Most\n methods of earning money will now give significantly less.\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 In this BitNode:\n \n \n The base security level of servers is doubled\n \n The starting money on servers is halved, but the maximum money remains the same\n \n Most methods of earning money now give significantly less\n \n Infiltration gives 50% more reputation and money\n \n Corporations have 50% lower valuations and are therefore less profitable\n \n Augmentations are more expensive\n \n Hacking experience gain rates are reduced\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. Furthermore:\n \n \n Hacking and Hacknet Nodes will be less profitable\n \n Your hacking level is reduced by 65%\n \n Hacking experience gain from scripts is reduced by 75%\n \n Corporations have 80% lower valuations and are therefore less profitable\n \n Working for companies is 50% less profitable\n \n Crimes and Infiltration are 25% less profitable\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. Furthermore: \n \n The rank you gain from {FactionNames.Bladeburners} contracts/operations is reduced by 40%\n \n {FactionNames.Bladeburners} skills cost twice as many skill points\n \n Augmentations are 3x more expensive\n \n Hacking and Hacknet Nodes will be significantly less profitable\n \n Your hacking level is reduced by 65%\n \n Hacking experience gain from scripts is reduced by 75%\n \n Corporations have 80% lower valuations and are therefore less profitable\n \n Working for companies is 50% less profitable\n \n Crimes and Infiltration are 25% less profitable\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 The only way to earn money is by trading on the stock market\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 You can immediately donate to factions to gain reputation\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 In this BitNode:\n \n \n Your stats are significantly decreased\n \n You cannnot purchase additional servers\n \n Hacking is significantly less profitable\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 In this BitNode:\n \n \n Your stats are significantly decreased\n \n All methods of gaining money are half as profitable (except Stock Market)\n \n Purchased servers are more expensive, have less max RAM, and a lower maximum limit\n \n Augmentations are 5x as expensive and require twice as much reputation\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 In this BitNode:\n \n \n Your hacking stat and experience gain are halved\n \n The starting and maximum amount of money available on servers is significantly decreased\n \n The growth rate of servers is significantly reduced\n \n Weakening a server is twice as effective\n \n Company wages are decreased by 50%\n \n Corporation valuations are 90% lower and are therefore significantly less profitable\n \n Hacknet Node production is significantly decreased\n \n Crime and Infiltration are more lucrative\n \n Augmentations are twice as expensive\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 In this BitNode:\n \n \n Every stat is significantly reduced\n \n Stanek's Gift power is significantly increased.\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// Books: Frontera, Shiner\nBitNodes[\"BitNode14\"] = new BitNode(14, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode15\"] = new BitNode(15, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode16\"] = new BitNode(16, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode17\"] = new BitNode(17, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode18\"] = new BitNode(18, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode19\"] = new BitNode(19, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode20\"] = new BitNode(20, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode21\"] = new BitNode(21, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode22\"] = new BitNode(22, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode23\"] = new BitNode(23, 2, \"\", \"COMING SOON\");\nBitNodes[\"BitNode24\"] = new BitNode(24, 2, \"\", \"COMING SOON\");\n\nexport function initBitNodeMultipliers(p: IPlayer): void {\n if (p.bitNodeN == null) {\n p.bitNodeN = 1;\n }\n for (const mult of Object.keys(BitNodeMultipliers)) {\n if (BitNodeMultipliers.hasOwnProperty(mult)) {\n BitNodeMultipliers[mult] = 1;\n }\n }\n // Special case.\n BitNodeMultipliers.StaneksGiftExtraSize = 0;\n\n switch (p.bitNodeN) {\n case 1: // Source Genesis (every multiplier is 1)\n break;\n case 2: // Rise of the Underworld\n BitNodeMultipliers.HackingLevelMultiplier = 0.8;\n BitNodeMultipliers.ServerGrowthRate = 0.8;\n BitNodeMultipliers.ServerMaxMoney = 0.2;\n BitNodeMultipliers.ServerStartingMoney = 0.4;\n BitNodeMultipliers.CrimeMoney = 3;\n BitNodeMultipliers.InfiltrationMoney = 3;\n BitNodeMultipliers.FactionWorkRepGain = 0.5;\n BitNodeMultipliers.FactionPassiveRepGain = 0;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 2;\n BitNodeMultipliers.StaneksGiftExtraSize = -6;\n BitNodeMultipliers.PurchasedServerSoftcap = 1.3;\n BitNodeMultipliers.CorporationSoftCap = 0.9;\n BitNodeMultipliers.WorldDaemonDifficulty = 5;\n break;\n case 3: // Corporatocracy\n BitNodeMultipliers.HackingLevelMultiplier = 0.8;\n BitNodeMultipliers.RepToDonateToFaction = 0.5;\n BitNodeMultipliers.AugmentationRepCost = 3;\n BitNodeMultipliers.AugmentationMoneyCost = 3;\n BitNodeMultipliers.ServerMaxMoney = 0.2;\n BitNodeMultipliers.ServerStartingMoney = 0.2;\n BitNodeMultipliers.ServerGrowthRate = 0.2;\n BitNodeMultipliers.ScriptHackMoney = 0.2;\n BitNodeMultipliers.CompanyWorkMoney = 0.25;\n BitNodeMultipliers.CrimeMoney = 0.25;\n BitNodeMultipliers.HacknetNodeMoney = 0.25;\n BitNodeMultipliers.HomeComputerRamCost = 1.5;\n BitNodeMultipliers.PurchasedServerCost = 2;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 0.75;\n BitNodeMultipliers.StaneksGiftExtraSize = -2;\n BitNodeMultipliers.PurchasedServerSoftcap = 1.3;\n BitNodeMultipliers.GangSoftcap = 0.9;\n BitNodeMultipliers.WorldDaemonDifficulty = 2;\n BitNodeMultipliers.GangUniqueAugs = 0.5;\n break;\n case 4: // The Singularity\n BitNodeMultipliers.ServerMaxMoney = 0.15;\n BitNodeMultipliers.ServerStartingMoney = 0.75;\n BitNodeMultipliers.ScriptHackMoney = 0.2;\n BitNodeMultipliers.CompanyWorkMoney = 0.1;\n BitNodeMultipliers.CrimeMoney = 0.2;\n BitNodeMultipliers.HacknetNodeMoney = 0.05;\n BitNodeMultipliers.CompanyWorkExpGain = 0.5;\n BitNodeMultipliers.ClassGymExpGain = 0.5;\n BitNodeMultipliers.FactionWorkExpGain = 0.5;\n BitNodeMultipliers.HackExpGain = 0.4;\n BitNodeMultipliers.CrimeExpGain = 0.5;\n BitNodeMultipliers.FactionWorkRepGain = 0.75;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 1.5;\n BitNodeMultipliers.StaneksGiftExtraSize = 0;\n BitNodeMultipliers.PurchasedServerSoftcap = 1.2;\n BitNodeMultipliers.WorldDaemonDifficulty = 3;\n BitNodeMultipliers.GangUniqueAugs = 0.5;\n break;\n case 5: // Artificial intelligence\n BitNodeMultipliers.ServerMaxMoney = 2;\n BitNodeMultipliers.ServerStartingSecurity = 2;\n BitNodeMultipliers.ServerStartingMoney = 0.5;\n BitNodeMultipliers.ScriptHackMoney = 0.15;\n BitNodeMultipliers.HacknetNodeMoney = 0.2;\n BitNodeMultipliers.CrimeMoney = 0.5;\n BitNodeMultipliers.InfiltrationRep = 1.5;\n BitNodeMultipliers.InfiltrationMoney = 1.5;\n BitNodeMultipliers.AugmentationMoneyCost = 2;\n BitNodeMultipliers.HackExpGain = 0.5;\n BitNodeMultipliers.CorporationValuation = 0.5;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 1.3;\n BitNodeMultipliers.StaneksGiftExtraSize = 0;\n BitNodeMultipliers.PurchasedServerSoftcap = 1.2;\n BitNodeMultipliers.WorldDaemonDifficulty = 1.5;\n BitNodeMultipliers.GangUniqueAugs = 0.5;\n break;\n case 6: // Bladeburner\n BitNodeMultipliers.HackingLevelMultiplier = 0.35;\n BitNodeMultipliers.ServerMaxMoney = 0.4;\n BitNodeMultipliers.ServerStartingMoney = 0.5;\n BitNodeMultipliers.ServerStartingSecurity = 1.5;\n BitNodeMultipliers.ScriptHackMoney = 0.75;\n BitNodeMultipliers.CompanyWorkMoney = 0.5;\n BitNodeMultipliers.CrimeMoney = 0.75;\n BitNodeMultipliers.InfiltrationMoney = 0.75;\n BitNodeMultipliers.CorporationValuation = 0.2;\n BitNodeMultipliers.HacknetNodeMoney = 0.2;\n BitNodeMultipliers.HackExpGain = 0.25;\n BitNodeMultipliers.DaedalusAugsRequirement = 1.166; // Results in 35 Augs needed\n BitNodeMultipliers.PurchasedServerSoftcap = 2;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 0.5;\n BitNodeMultipliers.StaneksGiftExtraSize = 2;\n BitNodeMultipliers.GangSoftcap = 0.7;\n BitNodeMultipliers.CorporationSoftCap = 0.9;\n BitNodeMultipliers.WorldDaemonDifficulty = 2;\n BitNodeMultipliers.GangUniqueAugs = 0.2;\n break;\n case 7: // Bladeburner 2079\n BitNodeMultipliers.BladeburnerRank = 0.6;\n BitNodeMultipliers.BladeburnerSkillCost = 2;\n BitNodeMultipliers.AugmentationMoneyCost = 3;\n BitNodeMultipliers.HackingLevelMultiplier = 0.35;\n BitNodeMultipliers.ServerMaxMoney = 0.4;\n BitNodeMultipliers.ServerStartingMoney = 0.5;\n BitNodeMultipliers.ServerStartingSecurity = 1.5;\n BitNodeMultipliers.ScriptHackMoney = 0.5;\n BitNodeMultipliers.CompanyWorkMoney = 0.5;\n BitNodeMultipliers.CrimeMoney = 0.75;\n BitNodeMultipliers.InfiltrationMoney = 0.75;\n BitNodeMultipliers.CorporationValuation = 0.2;\n BitNodeMultipliers.HacknetNodeMoney = 0.2;\n BitNodeMultipliers.HackExpGain = 0.25;\n BitNodeMultipliers.FourSigmaMarketDataCost = 2;\n BitNodeMultipliers.FourSigmaMarketDataApiCost = 2;\n BitNodeMultipliers.DaedalusAugsRequirement = 1.166; // Results in 35 Augs needed\n BitNodeMultipliers.PurchasedServerSoftcap = 2;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 0.9;\n BitNodeMultipliers.StaneksGiftExtraSize = -1;\n BitNodeMultipliers.GangSoftcap = 0.7;\n BitNodeMultipliers.CorporationSoftCap = 0.9;\n BitNodeMultipliers.WorldDaemonDifficulty = 2;\n BitNodeMultipliers.GangUniqueAugs = 0.2;\n break;\n case 8: // Ghost of Wall Street\n BitNodeMultipliers.ScriptHackMoney = 0.3;\n BitNodeMultipliers.ScriptHackMoneyGain = 0;\n BitNodeMultipliers.ManualHackMoney = 0;\n BitNodeMultipliers.CompanyWorkMoney = 0;\n BitNodeMultipliers.CrimeMoney = 0;\n BitNodeMultipliers.HacknetNodeMoney = 0;\n BitNodeMultipliers.InfiltrationMoney = 0;\n BitNodeMultipliers.RepToDonateToFaction = 0;\n BitNodeMultipliers.CorporationValuation = 0;\n BitNodeMultipliers.CodingContractMoney = 0;\n BitNodeMultipliers.StaneksGiftExtraSize = -7;\n BitNodeMultipliers.PurchasedServerSoftcap = 4;\n BitNodeMultipliers.GangSoftcap = 0;\n BitNodeMultipliers.CorporationSoftCap = 0;\n BitNodeMultipliers.GangUniqueAugs = 0;\n break;\n case 9: // Hacktocracy\n BitNodeMultipliers.HackingLevelMultiplier = 0.5;\n BitNodeMultipliers.StrengthLevelMultiplier = 0.45;\n BitNodeMultipliers.DefenseLevelMultiplier = 0.45;\n BitNodeMultipliers.DexterityLevelMultiplier = 0.45;\n BitNodeMultipliers.AgilityLevelMultiplier = 0.45;\n BitNodeMultipliers.CharismaLevelMultiplier = 0.45;\n BitNodeMultipliers.PurchasedServerLimit = 0;\n BitNodeMultipliers.HomeComputerRamCost = 5;\n BitNodeMultipliers.CrimeMoney = 0.5;\n BitNodeMultipliers.ScriptHackMoney = 0.1;\n BitNodeMultipliers.HackExpGain = 0.05;\n BitNodeMultipliers.ServerStartingMoney = 0.1;\n BitNodeMultipliers.ServerMaxMoney = 0.1;\n BitNodeMultipliers.ServerStartingSecurity = 2.5;\n BitNodeMultipliers.CorporationValuation = 0.5;\n BitNodeMultipliers.FourSigmaMarketDataCost = 5;\n BitNodeMultipliers.FourSigmaMarketDataApiCost = 4;\n BitNodeMultipliers.BladeburnerRank = 0.9;\n BitNodeMultipliers.BladeburnerSkillCost = 1.2;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 0.5;\n BitNodeMultipliers.StaneksGiftExtraSize = 2;\n BitNodeMultipliers.GangSoftcap = 0.8;\n BitNodeMultipliers.CorporationSoftCap = 0.7;\n BitNodeMultipliers.WorldDaemonDifficulty = 2;\n BitNodeMultipliers.GangUniqueAugs = 0.25;\n break;\n case 10: // Digital Carbon\n BitNodeMultipliers.HackingLevelMultiplier = 0.35;\n BitNodeMultipliers.StrengthLevelMultiplier = 0.4;\n BitNodeMultipliers.DefenseLevelMultiplier = 0.4;\n BitNodeMultipliers.DexterityLevelMultiplier = 0.4;\n BitNodeMultipliers.AgilityLevelMultiplier = 0.4;\n BitNodeMultipliers.CharismaLevelMultiplier = 0.4;\n BitNodeMultipliers.CompanyWorkMoney = 0.5;\n BitNodeMultipliers.CrimeMoney = 0.5;\n BitNodeMultipliers.HacknetNodeMoney = 0.5;\n BitNodeMultipliers.ManualHackMoney = 0.5;\n BitNodeMultipliers.ScriptHackMoney = 0.5;\n BitNodeMultipliers.CodingContractMoney = 0.5;\n BitNodeMultipliers.InfiltrationMoney = 0.5;\n BitNodeMultipliers.CorporationValuation = 0.5;\n BitNodeMultipliers.AugmentationMoneyCost = 5;\n BitNodeMultipliers.AugmentationRepCost = 2;\n BitNodeMultipliers.HomeComputerRamCost = 1.5;\n BitNodeMultipliers.PurchasedServerCost = 5;\n BitNodeMultipliers.PurchasedServerLimit = 0.6;\n BitNodeMultipliers.PurchasedServerMaxRam = 0.5;\n BitNodeMultipliers.BladeburnerRank = 0.8;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 0.75;\n BitNodeMultipliers.StaneksGiftExtraSize = -3;\n BitNodeMultipliers.PurchasedServerSoftcap = 1.1;\n BitNodeMultipliers.GangSoftcap = 0.9;\n BitNodeMultipliers.CorporationSoftCap = 0.9;\n BitNodeMultipliers.WorldDaemonDifficulty = 2;\n BitNodeMultipliers.GangUniqueAugs = 0.25;\n break;\n case 11: //The Big Crash\n BitNodeMultipliers.HackingLevelMultiplier = 0.6;\n BitNodeMultipliers.HackExpGain = 0.5;\n BitNodeMultipliers.ServerMaxMoney = 0.1;\n BitNodeMultipliers.ServerStartingMoney = 0.1;\n BitNodeMultipliers.ServerGrowthRate = 0.2;\n BitNodeMultipliers.ServerWeakenRate = 2;\n BitNodeMultipliers.CrimeMoney = 3;\n BitNodeMultipliers.CompanyWorkMoney = 0.5;\n BitNodeMultipliers.HacknetNodeMoney = 0.1;\n BitNodeMultipliers.AugmentationMoneyCost = 2;\n BitNodeMultipliers.InfiltrationMoney = 2.5;\n BitNodeMultipliers.InfiltrationRep = 2.5;\n BitNodeMultipliers.CorporationValuation = 0.1;\n BitNodeMultipliers.CodingContractMoney = 0.25;\n BitNodeMultipliers.FourSigmaMarketDataCost = 4;\n BitNodeMultipliers.FourSigmaMarketDataApiCost = 4;\n BitNodeMultipliers.PurchasedServerSoftcap = 2;\n BitNodeMultipliers.CorporationSoftCap = 0.9;\n BitNodeMultipliers.WorldDaemonDifficulty = 1.5;\n BitNodeMultipliers.GangUniqueAugs = 0.75;\n break;\n case 12: {\n //The Recursion\n let sf12Lvl = 0;\n for (let i = 0; i < p.sourceFiles.length; i++) {\n if (p.sourceFiles[i].n === 12) {\n sf12Lvl = p.sourceFiles[i].lvl;\n }\n }\n const inc = Math.pow(1.02, sf12Lvl);\n const dec = 1 / inc;\n\n // Multiplier for number of augs needed for Daedalus increases\n // up to a maximum of 1.34, which results in 40 Augs required\n BitNodeMultipliers.DaedalusAugsRequirement = Math.min(inc, 1.34);\n\n BitNodeMultipliers.HackingLevelMultiplier = dec;\n BitNodeMultipliers.StrengthLevelMultiplier = dec;\n BitNodeMultipliers.DefenseLevelMultiplier = dec;\n BitNodeMultipliers.DexterityLevelMultiplier = dec;\n BitNodeMultipliers.AgilityLevelMultiplier = dec;\n BitNodeMultipliers.CharismaLevelMultiplier = dec;\n\n BitNodeMultipliers.ServerMaxMoney = dec;\n BitNodeMultipliers.ServerStartingMoney = dec;\n BitNodeMultipliers.ServerGrowthRate = dec;\n BitNodeMultipliers.ServerWeakenRate = dec;\n\n //Does not scale, otherwise security might start at 300+\n BitNodeMultipliers.ServerStartingSecurity = 1.5;\n\n BitNodeMultipliers.HomeComputerRamCost = inc;\n\n BitNodeMultipliers.PurchasedServerCost = inc;\n BitNodeMultipliers.PurchasedServerLimit = dec;\n BitNodeMultipliers.PurchasedServerMaxRam = dec;\n BitNodeMultipliers.PurchasedServerSoftcap = inc;\n\n BitNodeMultipliers.ManualHackMoney = dec;\n BitNodeMultipliers.ScriptHackMoney = dec;\n BitNodeMultipliers.CompanyWorkMoney = dec;\n BitNodeMultipliers.CrimeMoney = dec;\n BitNodeMultipliers.HacknetNodeMoney = dec;\n BitNodeMultipliers.CodingContractMoney = dec;\n\n BitNodeMultipliers.CompanyWorkExpGain = dec;\n BitNodeMultipliers.ClassGymExpGain = dec;\n BitNodeMultipliers.FactionWorkExpGain = dec;\n BitNodeMultipliers.HackExpGain = dec;\n BitNodeMultipliers.CrimeExpGain = dec;\n\n BitNodeMultipliers.FactionWorkRepGain = dec;\n BitNodeMultipliers.FactionPassiveRepGain = dec;\n BitNodeMultipliers.RepToDonateToFaction = inc;\n\n BitNodeMultipliers.AugmentationRepCost = inc;\n BitNodeMultipliers.AugmentationMoneyCost = inc;\n\n BitNodeMultipliers.InfiltrationMoney = dec;\n BitNodeMultipliers.InfiltrationRep = dec;\n\n BitNodeMultipliers.FourSigmaMarketDataCost = inc;\n BitNodeMultipliers.FourSigmaMarketDataApiCost = inc;\n\n BitNodeMultipliers.CorporationValuation = dec;\n\n BitNodeMultipliers.BladeburnerRank = dec;\n BitNodeMultipliers.BladeburnerSkillCost = inc;\n\n BitNodeMultipliers.StaneksGiftPowerMultiplier = inc;\n BitNodeMultipliers.StaneksGiftExtraSize = inc;\n BitNodeMultipliers.GangSoftcap = 0.8;\n BitNodeMultipliers.CorporationSoftCap = 0.8;\n BitNodeMultipliers.WorldDaemonDifficulty = inc;\n\n BitNodeMultipliers.GangUniqueAugs = dec;\n break;\n }\n case 13: {\n BitNodeMultipliers.PurchasedServerSoftcap = 1.6;\n\n BitNodeMultipliers.HackingLevelMultiplier = 0.25;\n BitNodeMultipliers.StrengthLevelMultiplier = 0.7;\n BitNodeMultipliers.DefenseLevelMultiplier = 0.7;\n BitNodeMultipliers.DexterityLevelMultiplier = 0.7;\n BitNodeMultipliers.AgilityLevelMultiplier = 0.7;\n\n BitNodeMultipliers.ServerMaxMoney = 0.45;\n BitNodeMultipliers.ServerStartingMoney = 0.75;\n\n BitNodeMultipliers.ServerStartingSecurity = 3;\n\n BitNodeMultipliers.ScriptHackMoney = 0.2;\n BitNodeMultipliers.CompanyWorkMoney = 0.4;\n BitNodeMultipliers.CrimeMoney = 0.4;\n BitNodeMultipliers.HacknetNodeMoney = 0.4;\n BitNodeMultipliers.CodingContractMoney = 0.4;\n\n BitNodeMultipliers.CompanyWorkExpGain = 0.5;\n BitNodeMultipliers.ClassGymExpGain = 0.5;\n BitNodeMultipliers.FactionWorkExpGain = 0.5;\n BitNodeMultipliers.HackExpGain = 0.1;\n BitNodeMultipliers.CrimeExpGain = 0.5;\n\n BitNodeMultipliers.FactionWorkRepGain = 0.6;\n\n BitNodeMultipliers.FourSigmaMarketDataCost = 10;\n BitNodeMultipliers.FourSigmaMarketDataApiCost = 10;\n\n BitNodeMultipliers.CorporationValuation = 0.001;\n\n BitNodeMultipliers.BladeburnerRank = 0.45;\n BitNodeMultipliers.BladeburnerSkillCost = 2;\n BitNodeMultipliers.StaneksGiftPowerMultiplier = 2;\n BitNodeMultipliers.StaneksGiftExtraSize = 1;\n BitNodeMultipliers.GangSoftcap = 0.3;\n BitNodeMultipliers.CorporationSoftCap = 0.3;\n BitNodeMultipliers.WorldDaemonDifficulty = 3;\n BitNodeMultipliers.GangUniqueAugs = 0.1;\n break;\n }\n default:\n console.warn(\"Player.bitNodeN invalid\");\n break;\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