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;
|
|
|
|
VersionNumber: number;
|
2021-09-05 01:09:30 +02:00
|
|
|
_idleSpeed: number;
|
|
|
|
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;
|
|
|
|
WSEAccountCost: number;
|
|
|
|
TIXAPICost: number;
|
|
|
|
MarketData4SCost: number;
|
|
|
|
MarketDataTixApi4SCost: number;
|
|
|
|
StockMarketCommission: 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
|
|
|
} = {
|
2022-07-19 20:21:12 +02:00
|
|
|
VersionString: "2.0.0",
|
|
|
|
VersionNumber: 21,
|
2021-09-05 01:09:30 +02:00
|
|
|
|
|
|
|
// 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
|
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,
|
|
|
|
|
|
|
|
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,
|
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,
|
|
|
|
|
2022-04-11 18:07:15 +02:00
|
|
|
// 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
|
|
|
|
2022-07-26 16:41:04 +02:00
|
|
|
Donations: 22,
|
2022-04-14 21:17:46 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
LatestUpdate: `
|
2022-07-19 20:21:12 +02:00
|
|
|
v2.0.0 - 2022-07-19 Work rework
|
|
|
|
-------------------------------
|
|
|
|
|
|
|
|
API break rewards
|
|
|
|
|
|
|
|
* Everyone is awarded 10 NFG.
|
|
|
|
* All work in progress program is auto completed.
|
|
|
|
* All work in progress crafting is auto completed without adding entropy.
|
|
|
|
|
|
|
|
Work (Create program / Work for faction / Studying / etc ...)
|
|
|
|
|
|
|
|
* Working has been rebuilt from the grounds up. The motivation for that change is that all
|
|
|
|
different types of work all required different cached variables on the main Player object.
|
|
|
|
This caused a lot of bugs and crashes. It's been reworked in such a way as to prevent bugs
|
|
|
|
and make it nearly trivial to add new kinds of work. However, since this caused a few API break
|
|
|
|
I've decided to mark this version following semver protocols and call it 2.0.0
|
|
|
|
* Crime can be unfocused and auto loops, no more spam clicking.
|
|
|
|
* All work type give their reward immediately. No need to stop work to bank rewards like reputation.
|
|
|
|
* Faction and Company work no longer have a time limit.
|
|
|
|
* Company work no longer reduces rep gain by half for quitting early.
|
|
|
|
* Company faction require 400k rep to join (from 200k)
|
|
|
|
* Backdooring company server reduces faction requirement to 300k.
|
|
|
|
* All work generally no longer keep track of cumulative gains like exp and reputation since it's applied instantly.
|
|
|
|
* getPlayer returns way less fields but does return the new 'currentWork' field.
|
2022-07-20 01:04:06 +02:00
|
|
|
|
|
|
|
API breaks
|
|
|
|
|
2022-07-19 20:21:12 +02:00
|
|
|
* workForCompany argument 'companyName' is now not-optional
|
|
|
|
* commitCrime now has 'focus' optional parameter
|
2022-07-20 01:04:06 +02:00
|
|
|
* using getScriptIncome to get total income has been separated to getTotalScriptIncome.
|
|
|
|
* using getScriptExpGain to get total income has been separated to getTotalScriptExpGain.
|
2022-07-20 23:03:08 +02:00
|
|
|
* scp has it's 2 last argument reversed, the signature is now (files, destination, optional_source)
|
|
|
|
* ns.connect and other singularity function are no longer available at the top level.
|
|
|
|
They were already hidden from documentation but now they're gone.
|
|
|
|
* stock.buy and stock.sell were renamed to stock.buyStock and stock.sellStock because 'buy' and 'sell'
|
|
|
|
are very common tokens.
|
2022-07-26 14:25:18 +02:00
|
|
|
* corporation.bribe no longer allows to give shares as bribe.
|
2022-07-19 20:21:12 +02:00
|
|
|
|
2022-07-26 21:09:11 +02:00
|
|
|
Netscript
|
|
|
|
|
|
|
|
* Add getAugmentationBasePrice
|
|
|
|
* Add getSleeveAugmentationPrice
|
|
|
|
* Add getSleeveAugmentationRepReq
|
|
|
|
* Fix getInfiltrationLocations
|
|
|
|
* Singularity.goToLocation support for non-city-specific locations (@Ansopedian)
|
|
|
|
* All corporation functions are synchronous. Job assignment only works on the following cycle. (@stalefishies)
|
|
|
|
* Add batch functionality to NS spendHashes API (@undeemiss)
|
|
|
|
* Fix #3661 Add missing memory property to Sleeve API (@borisflagell)
|
|
|
|
* FIX#3732 Cannot assign two sleeve on "Take on contracts" regardless of contract type. (@borisflagell)
|
|
|
|
|
|
|
|
Corporation
|
|
|
|
|
|
|
|
* Dividend fixes and exposing dividends info via scripts (@stalefishies)
|
|
|
|
* Add big number format support in some Corporation's modal (@borisflagell)
|
|
|
|
* Fix #3261 Industry overview number formatting (@nickofolas)
|
|
|
|
|
2022-07-19 20:21:12 +02:00
|
|
|
Multipliers
|
|
|
|
|
|
|
|
* The main player object was also plagues with a million fields all called '*_mult'. Representing the different multipliers
|
|
|
|
* These have been refactored in a field called 'mults'.
|
|
|
|
|
|
|
|
Misc.
|
|
|
|
|
2022-07-26 21:09:11 +02:00
|
|
|
* #3596 Enhanced terminal command parsing (@RevanProdigalKnight)
|
|
|
|
* Fix #3366 Sleeve UI would sometimes displays the wrong stat while working out. (@borisflagell)
|
|
|
|
* Two new encryption themed contracts - caesar and vigenere (@Markus-D-M)
|
|
|
|
* Fixes #3132 several Sleeve can no longer works concurrently in the same company (@borisflagell)
|
|
|
|
* FIX #3514 Clear recently killed tab on BN end event (@Daniel-Barbera)
|
|
|
|
* HammingCodes description and implementation fixes (@s2ks)
|
|
|
|
* FIX #3794 Sleeve were getting less shocked when hospitalized (was positive, should have detrimental) (@borisflagell)
|
|
|
|
* Fix #3803 Servers can no longer have duplicate IPs (@crimsonhawk47)
|
|
|
|
* Fix #3854 ctrl+c does not clear terminal input (@evil-tim)
|
2022-07-19 20:21:12 +02:00
|
|
|
* Nerf noodle bar, obviously.
|
2022-02-23 08:01:48 +01:00
|
|
|
|
2021-10-12 06:29:16 +02:00
|
|
|
`,
|
2021-09-05 01:09:30 +02:00
|
|
|
};
|