mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-10 17:53:55 +01:00
392 lines
14 KiB
TypeScript
392 lines
14 KiB
TypeScript
/**
|
|
* Generic Game Constants
|
|
*
|
|
* Constants for specific mechanics or features will NOT be here.
|
|
*/
|
|
export const CONSTANTS: {
|
|
VersionString: string;
|
|
VersionNumber: number;
|
|
_idleSpeed: number;
|
|
MaxSkillLevel: number;
|
|
MilliPerCycle: 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;
|
|
WSEAccountCost: number;
|
|
TIXAPICost: number;
|
|
MarketData4SCost: number;
|
|
MarketDataTixApi4SCost: number;
|
|
StockMarketCommission: 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;
|
|
FactionWorkHacking: string;
|
|
FactionWorkField: string;
|
|
FactionWorkSecurity: string;
|
|
WorkTypeCompany: string;
|
|
WorkTypeCompanyPartTime: string;
|
|
WorkTypeFaction: string;
|
|
WorkTypeCreateProgram: string;
|
|
WorkTypeStudyClass: string;
|
|
WorkTypeCrime: string;
|
|
WorkTypeGraftAugmentation: string;
|
|
ClassStudyComputerScience: string;
|
|
ClassDataStructures: string;
|
|
ClassNetworks: string;
|
|
ClassAlgorithms: string;
|
|
ClassManagement: string;
|
|
ClassLeadership: string;
|
|
ClassGymStrength: string;
|
|
ClassGymDefense: string;
|
|
ClassGymDexterity: string;
|
|
ClassGymAgility: string;
|
|
ClassDataStructuresBaseCost: number;
|
|
ClassNetworksBaseCost: number;
|
|
ClassAlgorithmsBaseCost: number;
|
|
ClassManagementBaseCost: number;
|
|
ClassLeadershipBaseCost: number;
|
|
ClassGymBaseCost: number;
|
|
ClassStudyComputerScienceBaseExp: number;
|
|
ClassDataStructuresBaseExp: number;
|
|
ClassNetworksBaseExp: number;
|
|
ClassAlgorithmsBaseExp: number;
|
|
ClassManagementBaseExp: number;
|
|
ClassLeadershipBaseExp: number;
|
|
CrimeShoplift: string;
|
|
CrimeRobStore: string;
|
|
CrimeMug: string;
|
|
CrimeLarceny: string;
|
|
CrimeDrugs: string;
|
|
CrimeBondForgery: string;
|
|
CrimeTraffickArms: string;
|
|
CrimeHomicide: string;
|
|
CrimeGrandTheftAuto: string;
|
|
CrimeKidnap: string;
|
|
CrimeAssassination: string;
|
|
CrimeHeist: string;
|
|
CodingContractBaseFactionRepGain: number;
|
|
CodingContractBaseCompanyRepGain: number;
|
|
CodingContractBaseMoneyGain: number;
|
|
AugmentationGraftingCostMult: number;
|
|
AugmentationGraftingTimeBase: number;
|
|
EntropyEffect: number;
|
|
TotalNumBitNodes: number;
|
|
LatestUpdate: string;
|
|
} = {
|
|
VersionString: "1.6.0",
|
|
VersionNumber: 12,
|
|
|
|
// Speed (in ms) at which the main loop is updated
|
|
_idleSpeed: 200,
|
|
|
|
/** 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
|
|
CorpFactionRepRequirement: 200e3,
|
|
|
|
// 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: 20,
|
|
|
|
// 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,
|
|
|
|
// Stock market
|
|
WSEAccountCost: 200e6,
|
|
TIXAPICost: 5e9,
|
|
MarketData4SCost: 1e9,
|
|
MarketDataTixApi4SCost: 25e9,
|
|
StockMarketCommission: 100e3,
|
|
|
|
// 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,
|
|
FactionWorkHacking: "Faction Hacking Work",
|
|
FactionWorkField: "Faction Field Work",
|
|
FactionWorkSecurity: "Faction Security Work",
|
|
|
|
WorkTypeCompany: "Working for Company",
|
|
WorkTypeCompanyPartTime: "Working for Company part-time",
|
|
WorkTypeFaction: "Working for Faction",
|
|
WorkTypeCreateProgram: "Working on Create a Program",
|
|
WorkTypeStudyClass: "Studying or Taking a class at university",
|
|
WorkTypeCrime: "Committing a crime",
|
|
WorkTypeGraftAugmentation: "Grafting an Augmentation",
|
|
|
|
ClassStudyComputerScience: "studying Computer Science",
|
|
ClassDataStructures: "taking a Data Structures course",
|
|
ClassNetworks: "taking a Networks course",
|
|
ClassAlgorithms: "taking an Algorithms course",
|
|
ClassManagement: "taking a Management course",
|
|
ClassLeadership: "taking a Leadership course",
|
|
ClassGymStrength: "training your strength at a gym",
|
|
ClassGymDefense: "training your defense at a gym",
|
|
ClassGymDexterity: "training your dexterity at a gym",
|
|
ClassGymAgility: "training your agility at a gym",
|
|
|
|
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,
|
|
|
|
CrimeShoplift: "shoplift",
|
|
CrimeRobStore: "rob a store",
|
|
CrimeMug: "mug someone",
|
|
CrimeLarceny: "commit larceny",
|
|
CrimeDrugs: "deal drugs",
|
|
CrimeBondForgery: "forge corporate bonds",
|
|
CrimeTraffickArms: "traffick illegal arms",
|
|
CrimeHomicide: "commit homicide",
|
|
CrimeGrandTheftAuto: "commit grand theft auto",
|
|
CrimeKidnap: "kidnap someone for ransom",
|
|
CrimeAssassination: "assassinate a high-profile target",
|
|
CrimeHeist: "pull off the ultimate heist",
|
|
|
|
// Coding Contract
|
|
// TODO: Move this into Coding contract implementation?
|
|
CodingContractBaseFactionRepGain: 2500,
|
|
CodingContractBaseCompanyRepGain: 4000,
|
|
CodingContractBaseMoneyGain: 75e6,
|
|
|
|
// Augmentation crafting multipliers
|
|
AugmentationGraftingCostMult: 3,
|
|
AugmentationGraftingTimeBase: 3600000,
|
|
|
|
// Value raised to the number of entropy stacks, then multiplied to player multipliers
|
|
EntropyEffect: 0.98,
|
|
|
|
// BitNode/Source-File related stuff
|
|
TotalNumBitNodes: 24,
|
|
|
|
LatestUpdate: `
|
|
v1.6.0 - 2022-03-29 Grafting
|
|
----------------------------
|
|
|
|
** Vitalife secret lab **
|
|
|
|
* A new mechanic called Augmentation Grafting has been added. Resleeving has been removed.
|
|
* Credit to @nikfolas for his incredible work.
|
|
|
|
** Stanek **
|
|
|
|
* BREAKING: Many functions in the stanek API were renamed in order to avoid name collision with things like Map.prototype.get
|
|
|
|
** UI **
|
|
|
|
* Major update to Sleeve, Gang UI, and Create Program (@nikfolas)
|
|
* re-add pre tags to support slash n in prompt (@jacktose)
|
|
* Tabelize linked output of 'ls' (@Master-Guy)
|
|
* Add the ability to filter open scripts (@phyzical)
|
|
* Add minHeight to editor tabs (@nickofolas)
|
|
* Properly expand gang equipment cards to fill entire screen (@nickofolas)
|
|
* Add shortcut to Faction augmentations page from FactionsRoot (@nickofolas)
|
|
* Fix extra space on editor tabs (@nickofolas)
|
|
* Present offline message as list (@DSteve595)
|
|
* add box showing remaining augments per faction (@jjayeon)
|
|
* Add tab switching support to vim mode (@JParisFerrer)
|
|
* Show current task on gang management screen (@zeddrak)
|
|
* Fix for ui of gang members current task when set via api (@phyzical)
|
|
* Don't hide irrelevant materials if their stock is not empty and hide irrelevant divisions from Export (@SagePtr)
|
|
* Fix regex to enable alpha transparency hex codes (8 digits) (@surdaft)
|
|
|
|
** API **
|
|
|
|
* Added dark web functions to ns api
|
|
* BREAKING: purchaseTor() should returns true if player already has Tor. (@DavidGrinberg, @waffleattack)
|
|
* Implement getBonusTime in Corporation API (@t-wolfeadam)
|
|
* Added functions to purchase TIX and WSI (@incubusnb)
|
|
* purchaseSleeveAug checks shock value (@incubusnb)
|
|
* Fix bug with hacknet api
|
|
* Fix spendHashes bug
|
|
* Added 0 cost of asleep() (@Master-Guy)
|
|
* Fix some misleading corporation errors (@TheRealMaxion)
|
|
* expose the inBladeburner on the player object (@phyzical)
|
|
* added ram charge for stanek width and height (@phyzical)
|
|
* Fix sufficient player money check to buy back shares. (@ChrissiQ)
|
|
* Fix Static Ram Circumventing for some NS functions (@CrafterKolyan)
|
|
* added CorporationSoftCap to NetscriptDefinitions (@phyzical)
|
|
* Added definition of autocomplete() 'data' argument. (@tigercat2000)
|
|
* Adding support for text/select options in Prompt command (@PhilipArmstead)
|
|
* Added the ability to exportGame via api (@phyzical)
|
|
|
|
** Arcade **
|
|
|
|
* Added an arcade to New Tokyo where you can play a 4 year old version of bitburner.
|
|
|
|
** Misc. **
|
|
|
|
* Add a warning triggered while auto-saves are off. (@MartinFournier)
|
|
* Log info for field analysis now displays actual rank gained. (@ApamNapat)
|
|
* Removed BladeburnerSkillCost from skill point cost description. (@ApamNapat)
|
|
* Fix handling for UpArrow in bladeburner console. (@dowinter)
|
|
* Add GitHub action to check PRs for generated files. (@MartinFournier)
|
|
* Cap Staneks gift at 25x25 to prevent crashes. (@waffleattack)
|
|
* Remove old & unused files from repository. (@MartinFournier)
|
|
* Factions on the factions screens are sorted by story progress / type. (@phyzical)
|
|
* Fix log manager not picking up new runs of scripts. (@phyzical)
|
|
* Added prettier to cicd.
|
|
* UI improvements (@phyzical)
|
|
* Documentation / Typos (@nanogyth, @Master-Guy, @incubusnb, @ApamNapat, @phyzical, @SagePtr)
|
|
* Give player code a copy of Division.upgrades instead of the live object (@Ornedan)
|
|
* Fix bug with small town achievement.
|
|
* Fix bug with purchaseSleeveAug (@phyzical)
|
|
* Check before unlocking corp upgrade (@gianfun)
|
|
* General codebase improvements. (@phyzical, @Master-Guy, @ApamNapat)
|
|
* Waiting on promises in NS1 no longer freezes the script. (@Master-Guy)
|
|
* Fix bug with missing ramcost for tFormat (@TheMas3212)
|
|
* Fix crash with new prompt
|
|
* Quick fix to prevent division by 0 in terminal (@Master-Guy)
|
|
* removed ip references (@phyzical, @Master-Guy)
|
|
* Terminal now supports 'ls -l'
|
|
* Fix negative number formatting (@Master-Guy)
|
|
* Fix unique ip generation (@InDieTasten)
|
|
* remove terminal command theme from docs (@phyzical)
|
|
* Fix 'Augmentations Left' with gang factions (@nickofolas)
|
|
* Attempt to fix 'bladeburner.process()' early routing issue (@MartinFournier)
|
|
* work in progress augment fix (@phyzical)
|
|
* Fixes missing space in Smart Supply (@TheRealMaxion)
|
|
* Change license to Apache 2 with Commons Clause
|
|
* updated regex sanitization (@mbrannen)
|
|
* Sleeve fix for when faction isnt found (@phyzical)
|
|
* Fix editor "close" naming (@phyzical)
|
|
* Fix bug with sleeves where some factions would be listed as workable. (@phyzical)
|
|
* Fix research tree of product industries post-prestige (@pd)
|
|
* Added a check for exisiting industry type before expanding (@phyzical)
|
|
* fix hackAnalyzeThreads returning infinity (@chrisrabe)
|
|
* Make growthAnalyze more accurate (@dwRchyngqxs)
|
|
* Add 'Zoom -> Reset Zoom' command to Steam (@smolgumball)
|
|
* Add hasOwnProperty check to GetServer (@SagePtr)
|
|
* Speed up employee productivity calculation (@pd)
|
|
* Field Work and Security Work benefit from 'share' (@SagePtr)
|
|
* Nerf noodle bar.
|
|
`,
|
|
};
|