bitburner-src/src/Constants.ts

275 lines
11 KiB
TypeScript
Raw Normal View History

2019-03-25 04:03:24 +01:00
/**
* Generic Game Constants
*
* Constants for specific mechanics or features will NOT be here.
*/
2021-09-04 20:09:57 +02:00
export const CONSTANTS: {
2021-11-03 03:49:46 +01:00
VersionString: string;
isDevBranch: boolean;
2021-11-03 03:49:46 +01:00
VersionNumber: number;
2021-09-05 01:09:30 +02:00
MaxSkillLevel: number;
MilliPerCycle: number;
OfflineHackingIncome: number;
2021-09-05 01:09:30 +02:00
CorpFactionRepRequirement: number;
2021-09-27 03:11:49 +02:00
BaseFocusBonus: number;
2021-09-05 01:09:30 +02:00
TravelCost: number;
BaseFavorToDonate: number;
DonateMoneyToRepDivisor: number;
FactionReputationToFavorBase: number;
FactionReputationToFavorMult: number;
CompanyReputationToFavorBase: number;
CompanyReputationToFavorMult: number;
NeuroFluxGovernorLevelMult: number;
NumNetscriptPorts: number;
MultipleAugMultiplier: number;
TorRouterCost: number;
HospitalCostPerHp: number;
IntelligenceCrimeWeight: number;
IntelligenceInfiltrationWeight: number;
IntelligenceCrimeBaseExpGain: number;
IntelligenceProgramBaseExpGain: number;
2022-03-29 20:09:17 +02:00
IntelligenceGraftBaseExpGain: number;
2021-09-05 01:09:30 +02:00
IntelligenceTerminalHackBaseExpGain: number;
IntelligenceSingFnBaseExpGain: number;
IntelligenceClassBaseExpGain: number;
MillisecondsPer20Hours: number;
GameCyclesPer20Hours: number;
MillisecondsPer10Hours: number;
GameCyclesPer10Hours: number;
MillisecondsPer8Hours: number;
GameCyclesPer8Hours: number;
MillisecondsPer4Hours: number;
GameCyclesPer4Hours: number;
MillisecondsPer2Hours: number;
GameCyclesPer2Hours: number;
MillisecondsPerHour: number;
GameCyclesPerHour: number;
MillisecondsPerHalfHour: number;
GameCyclesPerHalfHour: number;
MillisecondsPerQuarterHour: number;
GameCyclesPerQuarterHour: number;
MillisecondsPerFiveMinutes: number;
GameCyclesPerFiveMinutes: number;
ClassDataStructuresBaseCost: number;
ClassNetworksBaseCost: number;
ClassAlgorithmsBaseCost: number;
ClassManagementBaseCost: number;
ClassLeadershipBaseCost: number;
ClassGymBaseCost: number;
ClassStudyComputerScienceBaseExp: number;
ClassDataStructuresBaseExp: number;
ClassNetworksBaseExp: number;
ClassAlgorithmsBaseExp: number;
ClassManagementBaseExp: number;
ClassLeadershipBaseExp: number;
CodingContractBaseFactionRepGain: number;
CodingContractBaseCompanyRepGain: number;
CodingContractBaseMoneyGain: number;
2022-03-29 20:09:17 +02:00
AugmentationGraftingCostMult: number;
AugmentationGraftingTimeBase: number;
2022-04-22 21:30:49 +02:00
SoACostMult: number;
SoARepMult: number;
2022-03-19 19:15:31 +01:00
EntropyEffect: number;
2021-09-05 01:09:30 +02:00
TotalNumBitNodes: number;
2022-05-07 23:43:45 +02:00
InfiniteLoopLimit: number;
2022-04-14 21:17:46 +02:00
Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG
2021-09-05 01:09:30 +02:00
LatestUpdate: string;
2021-09-04 20:09:57 +02:00
} = {
2023-12-26 17:53:27 +01:00
VersionString: "2.6.0dev",
isDevBranch: true,
2023-12-26 16:59:33 +01:00
VersionNumber: 37,
2021-09-05 01:09:30 +02:00
/** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience
* and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then
* the player will have this level assuming no multipliers. Multipliers can cause skills to go above this.
*/
MaxSkillLevel: 975,
// Milliseconds per game cycle
MilliPerCycle: 200,
// Multiplier for hacking income earned from offline scripts
OfflineHackingIncome: 0.75,
2021-09-05 01:09:30 +02:00
// How much reputation is needed to join a megacorporation's faction
2022-07-19 19:09:56 +02:00
CorpFactionRepRequirement: 400e3,
2021-09-05 01:09:30 +02:00
// Cost to travel to another city
TravelCost: 200e3,
// Faction and Company favor-related things
BaseFavorToDonate: 150,
DonateMoneyToRepDivisor: 1e6,
FactionReputationToFavorBase: 500,
FactionReputationToFavorMult: 1.02,
CompanyReputationToFavorBase: 500,
CompanyReputationToFavorMult: 1.02,
// NeuroFlux Governor Augmentation cost multiplier
NeuroFluxGovernorLevelMult: 1.14,
2022-09-01 16:33:31 +02:00
NumNetscriptPorts: Number.MAX_SAFE_INTEGER,
2021-09-05 01:09:30 +02:00
// Augmentation Constants
MultipleAugMultiplier: 1.9,
// TOR Router
TorRouterCost: 200e3,
// Hospital/Health
HospitalCostPerHp: 100e3,
// Intelligence-related constants
IntelligenceCrimeWeight: 0.025, // Weight for how much int affects crime success rates
IntelligenceInfiltrationWeight: 0.1, // Weight for how much int affects infiltration success rates
IntelligenceCrimeBaseExpGain: 0.05,
2021-10-30 02:27:20 +02:00
IntelligenceProgramBaseExpGain: 0.1, // Program required hack level divided by this to determine int exp gain
2022-03-29 20:09:17 +02:00
IntelligenceGraftBaseExpGain: 0.05,
2021-09-05 01:09:30 +02:00
IntelligenceTerminalHackBaseExpGain: 200, // Hacking exp divided by this to determine int exp gain
IntelligenceSingFnBaseExpGain: 1.5,
IntelligenceClassBaseExpGain: 0.01,
// Time-related constants
MillisecondsPer20Hours: 72000000,
GameCyclesPer20Hours: 72000000 / 200,
MillisecondsPer10Hours: 36000000,
GameCyclesPer10Hours: 36000000 / 200,
MillisecondsPer8Hours: 28800000,
GameCyclesPer8Hours: 28800000 / 200,
MillisecondsPer4Hours: 14400000,
GameCyclesPer4Hours: 14400000 / 200,
MillisecondsPer2Hours: 7200000,
GameCyclesPer2Hours: 7200000 / 200,
MillisecondsPerHour: 3600000,
GameCyclesPerHour: 3600000 / 200,
MillisecondsPerHalfHour: 1800000,
GameCyclesPerHalfHour: 1800000 / 200,
MillisecondsPerQuarterHour: 900000,
GameCyclesPerQuarterHour: 900000 / 200,
MillisecondsPerFiveMinutes: 300000,
GameCyclesPerFiveMinutes: 300000 / 200,
// Player Work & Action
2021-09-27 03:11:49 +02:00
BaseFocusBonus: 0.8,
2021-09-05 01:09:30 +02:00
ClassDataStructuresBaseCost: 40,
ClassNetworksBaseCost: 80,
ClassAlgorithmsBaseCost: 320,
ClassManagementBaseCost: 160,
ClassLeadershipBaseCost: 320,
ClassGymBaseCost: 120,
ClassStudyComputerScienceBaseExp: 0.5,
ClassDataStructuresBaseExp: 1,
ClassNetworksBaseExp: 2,
ClassAlgorithmsBaseExp: 4,
ClassManagementBaseExp: 2,
ClassLeadershipBaseExp: 4,
// Coding Contract
// TODO: Move this into Coding contract implementation?
CodingContractBaseFactionRepGain: 2500,
CodingContractBaseCompanyRepGain: 4000,
CodingContractBaseMoneyGain: 75e6,
// Augmentation grafting multipliers
2022-03-29 20:09:17 +02:00
AugmentationGraftingCostMult: 3,
AugmentationGraftingTimeBase: 3600000,
2022-03-19 19:15:31 +01:00
2022-04-22 21:30:49 +02:00
// SoA mults
SoACostMult: 7,
SoARepMult: 1.3,
2022-03-27 21:40:24 +02:00
// Value raised to the number of entropy stacks, then multiplied to player multipliers
2022-03-29 20:09:17 +02:00
EntropyEffect: 0.98,
2022-03-19 17:03:18 +01:00
2021-09-05 01:09:30 +02:00
// BitNode/Source-File related stuff
TotalNumBitNodes: 24,
2022-05-24 22:57:25 +02:00
InfiniteLoopLimit: 2000,
2022-05-07 23:43:45 +02:00
2024-02-26 15:42:31 +01:00
Donations: 151,
2022-04-14 21:17:46 +02:00
2023-05-25 22:45:51 +02:00
// Also update doc/source/changelog.rst
2021-09-05 01:09:30 +02:00
LatestUpdate: `
2024-02-18 05:28:19 +01:00
## v2.6.0 dev - Changelog last updated 17 Feb 2024
2023-12-26 17:53:27 +01:00
### MAJOR ADDITIONS
- A new minigame IPvGO, based on the game Go. Visit DefComm in New Tokyo or the CIA in Sector-12 for access. Documentation for the mechanic is available ingame under "How to Play" once the mechanic is available. (@ficocelliguy)
2023-12-26 17:53:27 +01:00
- A new BitNode has been added which focuses on the IPvGO mechanic (@ficocelliguy)
2023-10-04 16:50:14 +02:00
### API
- (Bladeburner) ns.bladeburner.getSkillUpgradeCost now returns infinity if requesting a cost above the maximum skill level (@Semanual)
2024-02-02 00:20:36 +01:00
- (CodingContract) Fixed an issue where ns.codingcontract.getData was leaking internal arrays when contract data was a 2-d array (@LJNeon)
- (Go) Added the ns.go API, which allows interaction with the new IPvGO mechanic. While this is in development, the API may undergo changes (@ficocelliguy)
2024-01-15 12:18:55 +01:00
- (Ports) Added ns.nextPortWrite, which allows waiting for the next write to a port without creating a port handle object (@LJNeon)
2024-02-18 05:28:19 +01:00
- (Ports) Ports now support all clonable data (@LJNeon)
2024-01-14 22:48:14 +01:00
- (Singularity) Add type information for ns.singularity.getCurrentWork return value (@Semanual)
- (Stanek) Fix ns.stanek.acceptGift which was not working in 2.5.2 (@jjclark1982)
2024-02-02 00:20:36 +01:00
- Improved the efficiency and accuracy of growth formulas (@d0sboots)
2024-01-14 22:48:14 +01:00
- ns.formatNumber now throws an error if specifying a suffixStart less than 1000 (@TheAimMan)
- HGWOptions now accepts a non-integer number of threads (@Caldwell-74)
2024-02-18 05:28:19 +01:00
- Fixed outdated docs for ns.spawn() (adeilt)
2024-01-14 22:48:14 +01:00
- Fixed ns.serverExists returning incorrect value for an endgame server (@cigarmemr)
2024-02-18 05:28:19 +01:00
- Refactored weaken effect calculation (@Caldwell-74)
2024-01-07 14:37:38 +01:00
### UI
2024-01-14 22:48:14 +01:00
- (Augmentations) Fixed some missing description text for Hacknet multipliers (@jjclark1982)
2024-01-07 14:37:38 +01:00
- (Corporation) Align columns correctly in warehouse breakdown table (@jjclark1982)
2024-01-14 22:48:14 +01:00
- (Corporation) Several typo fixes in Corporation modals (@cigarmemr)
2024-01-07 14:37:38 +01:00
- (Documentation) Ingame documentation now displays line breaks inside tables correctly (@Snarling)
- (Documentation) Added a documentation page for converting .script to .js (@LJNeon, @jjclark1982, @Snarling)
2024-02-18 05:28:19 +01:00
- (Documentation) Script editor doc button points to correct docs (@LJNeon)
2024-01-07 14:37:38 +01:00
- (Hashnet) Hash upgrade descriptions use proper number formatting options (@Snarling)
- (Hacknet) Hacknet display shows a dynamic amount of columns based on screen width (@shyguy1412)
2024-01-07 14:37:38 +01:00
- (Infiltration) Changed how the CheatCodeGame is displayed (@alutman, @Snarling)
2024-01-14 22:48:14 +01:00
- (Sleeve) If intelligence is unlocked, sleeve intelligence is shown in the UI (@Caldwell-74)
- (Stockmarket) Changed color of stocks increasing in value (@Semanual)
2024-02-02 00:20:36 +01:00
- (Terminal) Improved scroll behavior on the Terminal (@Snarling)
2024-02-18 05:28:19 +01:00
- (Theme) Added 3 new theme elements to properly support light themes (@adeilt)
- Reorganization of some content and sorting of scripts on the Active Scripts page (@Snarling, @TheAimMan)
2024-01-07 14:37:38 +01:00
- "Disable Text Effects" option also disables the corrupted text display (@draughtnyan)
2024-02-02 00:20:36 +01:00
- fl1ght.exe now displays the related requirements in a more readable way (@TheAimMan, @LJNeon)
2024-01-07 14:37:38 +01:00
- Miscellaneous wording fixes (@cigarmemr)
### MISC
2024-02-02 00:20:36 +01:00
- (CodingContract) Improve parsing of player input for arrays in coding contracts (@rocket3989)
- (Corporation) Fix an incorrect demand range for Minerals (@catloversg)
- (Corporation) Divisions impact on corporation valuation is now based on number of offices and warehouses (@catloversg)
2024-02-18 05:28:19 +01:00
- (Corporation) Improve performance of calculations (@catloversg)
- (Bladeburner) Band-aid fix Blops count and action stopping (@Caldwell-74)
2024-02-02 00:20:36 +01:00
- (Gang) Add separate money tracking for gang expenses (@deansvendsen)
2024-01-14 22:48:14 +01:00
- (Ports) Port objects no longer track a separate promise for every use of nextWrite (@Snarling)
2024-01-15 12:18:55 +01:00
- (Ports) Fixed a crashing bug related to the changes above (@Jman420)
2024-01-07 14:37:38 +01:00
- (RemoteAPI) Remote API can be targeted to a remote device instead of the default of localhost (@Specker)
- (RemoteAPI) Added a getAllServers method (@shyguy1412)
2024-01-07 14:37:38 +01:00
- (ScriptEditor) When importing from other files that are also open in the editor, type information is now available in the IDE (@shyguy1412)
2024-02-18 05:28:19 +01:00
- (ScriptEditor) Links from "ls" are now tied to that host, instead of your connected machine (@LJNeon)
2024-01-14 22:48:14 +01:00
- (ScriptEditor) Script "models" in the script editor are now properly disposed (@Caldwell-74)
2024-02-18 05:28:19 +01:00
- (Terminal) Add --ram-override flag to the run command (@LJNeon)
2024-02-02 00:20:36 +01:00
- All running scripts are killed upon entering the BitVerse (@LJNeon)
- Scripts with the "temporary" flag set do not populate the Recently Killed script list on script death (@TheAimMan)
- Fix an issue with offline income for scripts (@Caldwell-74)
- Various "nextUpdate" promises are not tracked internally as a single promise instead of an array of promises (@Caldwell-74, @LJNeon)
2024-01-07 14:37:38 +01:00
- Fix inconsistent importing of the arg library (@catloversg)
2024-02-02 00:20:36 +01:00
- Clarify some information in the CONTRIBUTING.md file (@deansvendsen)
- Internal changes to method used for cloning objects (@LJNeon)
- Rearrange some internal constants (@Caldwell-74)
- b1t_flum3.exe can be ran in "quick" mode (@TheAimMan)
2024-01-07 14:37:38 +01:00
- Nerf noodle bar (various)
2024-02-18 05:28:19 +01:00
- Nerf noodle bar moar (@Caldwell-74)
2023-07-31 16:38:13 +02:00
`,
2021-09-05 01:09:30 +02:00
};