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;
CorpFactionRepRequirement: number;
2021-09-27 03:11:49 +02:00
BaseFocusBonus: number;
2021-09-05 01:09:30 +02:00
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;
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-09-24 15:11:49 +02:00
VersionString: "2.5.0dev",
2023-08-27 00:32:14 +02:00
isDevBranch: true,
2023-08-27 00:07:09 +02:00
VersionNumber: 34,
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,
// 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
// 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,
2022-09-01 16:33:31 +02:00
NumNetscriptPorts: Number.MAX_SAFE_INTEGER,
2021-09-05 01:09:30 +02:00
// 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,
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: `
2023-09-24 15:11:49 +02:00
## v2.5.0 dev changelog (last updated 9/24/23)
2023-08-27 00:32:14 +02:00
See 2.4.1 changelog: https://github.com/bitburner-official/bitburner-src/blob/stable/src/Documentation/doc/changelog.md
2023-09-24 15:11:49 +02:00
### NOTES
(Corporation) The gameplay balance of the Corporation mechanic will be significantly different this patch, due to bugfixes for both share price and valuation. Fully automated scripts and overall gameplay strategies for Corporation may need to be adjusted.
2023-09-06 00:34:26 +02:00
### API CHANGES:
2023-09-12 12:09:18 +02:00
- ns.print and ns.tprint now handle Set and Map. (@ficocelliguy)
2023-09-24 15:11:49 +02:00
- (Corporation) Added CorporationDivisions property to BitNodeMultipliers interface (@Caldwell-74)
- (Corporation) Added makesMaterials and makesProducts properties to CorpIndustryData interface. (@Caldwell-74)
- (Corporation) Added issueNewSharesCooldown property to the CorporationInfo interface.
- (Gang) Added ns.gang.getRecruitsAvailable: Gets the number of additional gang members that can currently be recruited (@myCatsName)
- (Gang) Added ns.gang.respectForNextRecruit: Gets the respect threshold for recruiting the next gang member (@myCatsName)
- (Gang) Added ns.gang.renameMember: Renames a gang member (@myCatsName)
2023-09-06 00:34:26 +02:00
2023-08-28 21:47:59 +02:00
### BUGFIX
2023-09-24 15:11:49 +02:00
- Taking a university class no longer gives the player an achievement for working out in a gym. (@myCatsName)
- Bash keybind ctrl-C clears an ongoing terminal history search (@ncharris93)
- (Corporation): Fix bug in valuation calculation (@yichizhng)
- (Corporation): Fix bug in share price calculation (@jjclark1982)
- (Corporation) "Same sell amount in all cities" works with Products again. (@Caldwell-74)
- (Hashnet) Buying multiple company favor upgrades at the same time will actually apply them all instead of just one. (@aschmider)
### OTHER CHANGES
- MISC: Improved handling of aliases in the Terminal (@ficocelliguy)
- MISC: Improved error messages for ns.getPurchasedServer (@ficocelliguy)
- MISC: ns.sleep and ns.asleep now show a formatted time in the script log. (@ficocelliguy)
- MISC: Fix an exploit that allowed over 100% utilization of a server's ram (@d0sboots)
- MISC: (Bladeburner / Sleeve) Bladeburner training action is available for sleeves (@Zelow79)
- UI: Tail windows now remain on the page, but hidden, when on pages like Infiltration where they should not be shown. This means any modifications made to the tail window directly will persist through an infiltration, and React content added via printRaw will no longer unmount and remount. Scripts that relied on the previous behavior might need to be adjusted. (@ficocelliguy)
- UI: Faction augmentation page updates more reliably (@zerbosh)
- UI: Added a text filter on the Faction Augmentations page (@ficocelliguy)
- UI: Improved pagination of Active Scripts page (@Ookamiko, @ficocelliguy)
- UI: Icarus message no longer shows repeatedly for players that are in the endgame. (@ficocelliguy)
- UI: Remove work completion dialogs when performing an augmentation install (@ficocelliguy)
- UI: Improve soft reset dialog, and always show dialog when soft resetting (@myCatsName)
- UI: While closing, modals no longer update displayed info and become inert (@Snarling)
- UI: (Bladeburner) Fix a possible NaN display value in Bladeburner (@zerbosh)
- UI: (Corporation) Multiple UI improvements for Corporation (@jjclark1982)
- UI: (Corporation) Tweaked some number formatting to look better in Corp and Stats page (@zerbosh)
- UI: (Corporation) Market TA no longer has its own dialog box, it's set in the normal sell dialog (@Caldwell-74)
- UI: (Corporation) Fix an incorrect value in the party dialog box (@aschmider)
- UI: (Corporation) Improved the descriptions for Corporation states (@Caldwell-74)
- UI: (Gang) Various UI improvements for Gang (@myCatsName)
- DOCS: Improve documentation for ports (@muesli4brekkies)
- DOCS: Updated documentation for ns.tail and ns.getScriptLogs to make it clear a PID can be used. (@myCatsName)
- DOCS: Improve documentation for FilenameOrPID functions (@VictorS)
- DOCS: Improved various existing ingame documentation pages (@myCatsName)
- DOCS: (Bladeburner / Gang) Added initial ingame documentation for Bladeburner and Gang (@myCatsName)
- DOCS: (Bladeburner / Gang) Improve API documentation for Bladeburner and Gang functions (@myCatsName)
2023-07-31 16:38:13 +02:00
`,
2021-09-05 01:09:30 +02:00
};