bitburner-src/src/Constants.ts

255 lines
9.7 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
2023-07-31 04:08:36 +02:00
Donations: 113,
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-02 00:20:36 +01:00
## v2.6.0 dev - Changelog last updated 1 Feb 2024
2023-12-26 17:53:27 +01:00
### MAJOR ADDITIONS
2024-02-02 00:20:36 +01:00
- A new minigame IPvGO, based on the game Go. For testing, the "IPvGO Subnet" option is permanently enabled right now in the sidebar, normally it will be available through DefComm in New Tokyo or the CIA in Sector-12. Documentation for the mechanic is available under "How to Play" from that screen. (@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
2024-02-02 00:20:36 +01:00
- (Bladeburner) ns.bladeburner.getSkillUpgradeCost now returns infinity if requesting a cost above the maximum skill level ()
- (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-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)
- Fixed ns.serverExists returning incorrect value for an endgame server (@cigarmemr)
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)
- (Hashnet) Hash upgrade descriptions use proper number formatting options (@Snarling)
- (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)
2024-02-02 00:20:36 +01:00
- (Terminal) Improved scroll behavior on the Terminal (@Snarling)
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)
- (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)
- (ScriptEditor) When importing from other files that are also open in the editor, type information is now available in the IDE (@shyguy1412)
2024-01-14 22:48:14 +01:00
- (ScriptEditor) Script "models" in the script editor are now properly disposed (@Caldwell-74)
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)
- Various "nextUpdate" promises are not tracked internally as a single promise instead of an array of promises (@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)
2024-01-07 14:37:38 +01:00
- Nerf noodle bar (various)
2023-07-31 16:38:13 +02:00
`,
2021-09-05 01:09:30 +02:00
};