mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-10-23 02:03:14 +02:00
268 lines
9.3 KiB
TypeScript
268 lines
9.3 KiB
TypeScript
/**
|
|
* Generic Game Constants
|
|
*
|
|
* Constants for specific mechanics or features will NOT be here.
|
|
*/
|
|
export const CONSTANTS: {
|
|
VersionString: string;
|
|
isDevBranch: boolean;
|
|
VersionNumber: number;
|
|
MaxSkillLevel: number;
|
|
MilliPerCycle: number;
|
|
OfflineHackingIncome: number;
|
|
CorpFactionRepRequirement: number;
|
|
BaseFocusBonus: number;
|
|
BaseCostFor1GBOfRamHome: number;
|
|
BaseCostFor1GBOfRamServer: number;
|
|
TravelCost: number;
|
|
BaseFavorToDonate: number;
|
|
DonateMoneyToRepDivisor: number;
|
|
FactionReputationToFavorBase: number;
|
|
FactionReputationToFavorMult: number;
|
|
CompanyReputationToFavorBase: number;
|
|
CompanyReputationToFavorMult: number;
|
|
NeuroFluxGovernorLevelMult: number;
|
|
NumNetscriptPorts: number;
|
|
HomeComputerMaxRam: number;
|
|
ServerBaseGrowthRate: number;
|
|
ServerMaxGrowthRate: number;
|
|
ServerFortifyAmount: number;
|
|
ServerWeakenAmount: number;
|
|
PurchasedServerLimit: number;
|
|
PurchasedServerMaxRam: number;
|
|
MultipleAugMultiplier: number;
|
|
TorRouterCost: number;
|
|
HospitalCostPerHp: number;
|
|
IntelligenceCrimeWeight: number;
|
|
IntelligenceInfiltrationWeight: number;
|
|
IntelligenceCrimeBaseExpGain: number;
|
|
IntelligenceProgramBaseExpGain: number;
|
|
IntelligenceGraftBaseExpGain: number;
|
|
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;
|
|
AugmentationGraftingCostMult: number;
|
|
AugmentationGraftingTimeBase: number;
|
|
SoACostMult: number;
|
|
SoARepMult: number;
|
|
EntropyEffect: number;
|
|
TotalNumBitNodes: number;
|
|
InfiniteLoopLimit: number;
|
|
Donations: number; // number of blood/plasma/palette donation the dev have verified., boosts NFG
|
|
LatestUpdate: string;
|
|
} = {
|
|
VersionString: "2.5.2dev",
|
|
isDevBranch: true,
|
|
VersionNumber: 36,
|
|
|
|
/** 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,
|
|
|
|
// How much reputation is needed to join a megacorporation's faction
|
|
CorpFactionRepRequirement: 400e3,
|
|
|
|
// Base RAM costs
|
|
BaseCostFor1GBOfRamHome: 32000,
|
|
BaseCostFor1GBOfRamServer: 55000, //1 GB of RAM
|
|
|
|
// 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,
|
|
|
|
NumNetscriptPorts: Number.MAX_SAFE_INTEGER,
|
|
|
|
// Server-related constants
|
|
HomeComputerMaxRam: 1073741824, // 2 ^ 30
|
|
ServerBaseGrowthRate: 1.03, // Unadjusted Growth rate
|
|
ServerMaxGrowthRate: 1.0035, // Maximum possible growth rate (max rate accounting for server security)
|
|
ServerFortifyAmount: 0.002, // Amount by which server's security increases when its hacked/grown
|
|
ServerWeakenAmount: 0.05, // Amount by which server's security decreases when weakened
|
|
|
|
PurchasedServerLimit: 25,
|
|
PurchasedServerMaxRam: 1048576, // 2^20
|
|
|
|
// 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,
|
|
IntelligenceProgramBaseExpGain: 0.1, // Program required hack level divided by this to determine int exp gain
|
|
IntelligenceGraftBaseExpGain: 0.05,
|
|
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
|
|
BaseFocusBonus: 0.8,
|
|
|
|
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
|
|
AugmentationGraftingCostMult: 3,
|
|
AugmentationGraftingTimeBase: 3600000,
|
|
|
|
// SoA mults
|
|
SoACostMult: 7,
|
|
SoARepMult: 1.3,
|
|
|
|
// Value raised to the number of entropy stacks, then multiplied to player multipliers
|
|
EntropyEffect: 0.98,
|
|
|
|
// BitNode/Source-File related stuff
|
|
TotalNumBitNodes: 24,
|
|
|
|
InfiniteLoopLimit: 2000,
|
|
|
|
Donations: 113,
|
|
|
|
// Also update doc/source/changelog.rst
|
|
LatestUpdate: `
|
|
## v2.5.2dev changelog - Last updated 7 December 2023
|
|
|
|
### NOTES
|
|
|
|
See the 2.5.1 changelog at https://github.com/bitburner-official/bitburner-src/blob/v2.5.1/src/Documentation/doc/changelog.md
|
|
|
|
### API
|
|
|
|
- Added limit of 1e9 for additionalMsec property of HGWOptions (@d0sboots)
|
|
- ns.share effect is now boosted by host server core count (@TheAimMan)
|
|
- (Stanek) ns.stanek.chargeFragment is now boosted by host server core count (@TheAimMan)
|
|
|
|
### BUGFIX
|
|
|
|
- (Corporation) Fixed an issue with Warehouse size being out of sync following prduct sale (@Kelenius)
|
|
- (Factions) Fixed some display order issues, and possible multiple entries for a faction (@jjclark1982)
|
|
- (Factions) Fixed an issue with certain factions not becoming "known" when joining them (@jjclark1982)
|
|
- (Grafting) Entropy now has the correct negative effect on hacknet multipliers (@TheAimMan)
|
|
- (Hashnet) Fixed an issue where the SF9.3 reward server had an incorrect number of cores (@cigarmemr)
|
|
- (Terminal) Fixed a bug with script autocompletion when the script is inside a subdirectory (@draughtnyan)
|
|
|
|
### MISC
|
|
|
|
- (Bitverse) Changed listed difficulty for BN3 to "hard"
|
|
- (CodingContract) Reduce incidence of $0 coding contract rewards in circumstances where the reward would be $0 (@trambelus)
|
|
- (Corporation) Remove cooldown on starting over corporation, but maintain remaining cooldown for selling shares (@jjclark1982)
|
|
- (Corporation) Removed some legacy code that was not doing anything (@catloversg)
|
|
- (DevMenu) Added the ability to add/remove sleeves from the dev menu (@Sphyxis, @Snarling)
|
|
- (Factions) Added a documentation page for faction join requirements (@jjclark1982)
|
|
- (Formulas) Added clarification for the unit of time returned by hackTime, growTime, and weakenTime functions (@d0sboots)
|
|
- (Ports) Promises from port.nextWrite resolve in the same order they were created, instead of reverse order (@LJNeon)
|
|
- (Stock) Add some randomization to timing for stockmarket forecast change events (@Caldwell-74)
|
|
- (Terminal) Added the --all option for unalias, to allow removing all aliases (@Sphyxis)
|
|
- Nerf noodle bar (various contributors)
|
|
|
|
### UI
|
|
|
|
- Message for buying TOR router no longer implies the need to connect to darkweb (@Kelenius)
|
|
- (Factions) Only show warning about enemy factions for factions with enemies (@jjclark1982)
|
|
- (Stanek) Improved the display of the Stanek grid (@Kelenius)
|
|
`,
|
|
};
|