API: Move and rename purchased server functions to cloud API (#2367)

* Convert purchased server functions to cloud API

- Create `ns.cloud`
- Change `bitnode multipliers` and `server constants` wording for consistency
- change `server`, `ram` and `getting started` docs for consistency
- Added changes to 3.0.0 API Break and `setRemovedFunctions` in NetscriptFunctions.js

Tested by
- running tutorial `purchase-server-8gb.js`, and a more typical player one
- buying manually using vendor (Alpha Ent in Sector 12)
- deleting them all using script, and checked all deleted functions gave correct error
- Imported completed save to ensure auto-transfer of function work

* Revision in line with comments

- changed more `purchased` to `cloud` references
- Added BN mults auto-conversion

* Update getting_started.md

 - Corrected function names for new `cloud API`

* Don't show `cloud API` warning

v3.0.0 API break auto-replaces `cloud` functions, not warning suggested.

* API Break correction

- `cloud` affected API break replacement changed to be more descriptive and functional

* Fix typo and add empty lines

* Update many things (check commit's description)

- Comments
- Terminal message
- UI Text
- TSDoc
- md docs
- Improve error messages in src\NetscriptFunctions\Cloud.ts
This commit is contained in:
gmcew
2025-11-07 20:10:33 +00:00
committed by GitHub
parent d1a4ec8337
commit 7c0286222c
58 changed files with 1301 additions and 1045 deletions
+19 -19
View File
@@ -558,7 +558,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
ServerMaxMoney: 0.08,
ServerStartingMoney: 0.4,
PurchasedServerSoftcap: 1.3,
CloudServerSoftcap: 1.3,
CrimeMoney: 3,
@@ -584,8 +584,8 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
HomeComputerRamCost: 1.5,
PurchasedServerCost: 2,
PurchasedServerSoftcap: 1.3,
CloudServerCost: 2,
CloudServerSoftcap: 1.3,
CompanyWorkMoney: 0.25,
CrimeMoney: 0.25,
@@ -611,7 +611,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
ServerMaxMoney: 0.1125,
ServerStartingMoney: 0.75,
PurchasedServerSoftcap: 1.2,
CloudServerSoftcap: 1.2,
CompanyWorkMoney: 0.1,
CrimeMoney: 0.2,
@@ -639,7 +639,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
ServerStartingSecurity: 2,
ServerStartingMoney: 0.5,
PurchasedServerSoftcap: 1.2,
CloudServerSoftcap: 1.2,
CrimeMoney: 0.5,
HacknetNodeMoney: 0.2,
@@ -671,7 +671,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
ServerStartingMoney: 0.5,
ServerStartingSecurity: 1.5,
PurchasedServerSoftcap: 2,
CloudServerSoftcap: 2,
CompanyWorkMoney: 0.5,
CrimeMoney: 0.75,
@@ -705,7 +705,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
ServerStartingMoney: 0.5,
ServerStartingSecurity: 1.5,
PurchasedServerSoftcap: 2,
CloudServerSoftcap: 2,
CompanyWorkMoney: 0.5,
CrimeMoney: 0.75,
@@ -741,7 +741,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
}
case 8: {
return new BitNodeMultipliers({
PurchasedServerSoftcap: 4,
CloudServerSoftcap: 4,
CompanyWorkMoney: 0,
CrimeMoney: 0,
@@ -782,7 +782,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
HomeComputerRamCost: 5,
PurchasedServerLimit: 0,
CloudServerLimit: 0,
CrimeMoney: 0.5,
ScriptHackMoney: 0.1,
@@ -819,10 +819,10 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
HomeComputerRamCost: 1.5,
PurchasedServerCost: 5,
PurchasedServerSoftcap: 1.1,
PurchasedServerLimit: 0.6,
PurchasedServerMaxRam: 0.5,
CloudServerCost: 5,
CloudServerSoftcap: 1.1,
CloudServerLimit: 0.6,
CloudServerMaxRam: 0.5,
CompanyWorkMoney: 0.5,
CrimeMoney: 0.5,
@@ -860,7 +860,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
ServerStartingMoney: 0.1,
ServerWeakenRate: 2,
PurchasedServerSoftcap: 2,
CloudServerSoftcap: 2,
CompanyWorkMoney: 0.5,
CrimeMoney: 3,
@@ -910,10 +910,10 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
HomeComputerRamCost: inc,
PurchasedServerCost: inc,
PurchasedServerSoftcap: inc,
PurchasedServerLimit: dec,
PurchasedServerMaxRam: dec,
CloudServerCost: inc,
CloudServerSoftcap: inc,
CloudServerLimit: dec,
CloudServerMaxRam: dec,
CompanyWorkMoney: dec,
CrimeMoney: dec,
@@ -965,7 +965,7 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
DexterityLevelMultiplier: 0.7,
AgilityLevelMultiplier: 0.7,
PurchasedServerSoftcap: 1.6,
CloudServerSoftcap: 1.6,
ServerMaxMoney: 0.3375,
ServerStartingMoney: 0.75,
+8 -8
View File
@@ -121,17 +121,17 @@ export class BitNodeMultipliers {
*/
ManualHackMoney = 1;
/** Influence how much it costs to purchase a server */
PurchasedServerCost = 1;
/** Influence how much it costs to purchase a cloud server */
CloudServerCost = 1;
/** Influence how much it costs to purchase a server */
PurchasedServerSoftcap = 1;
/** Influence how much it costs to purchase a cloud server */
CloudServerSoftcap = 1;
/** Influences the maximum number of purchased servers you can have */
PurchasedServerLimit = 1;
/** Influences the maximum number of cloud servers you can have */
CloudServerLimit = 1;
/** Influences the maximum allowed RAM for a purchased server */
PurchasedServerMaxRam = 1;
/** Influences the maximum allowed RAM for a cloud server */
CloudServerMaxRam = 1;
/** Influences the minimum favor the player must have with a faction before they can donate to gain rep. */
FavorToDonateToFaction = 1;
@@ -66,7 +66,7 @@ export const BitNodeMultipliersDisplay = ({ n, level, hideMultsIfCannotAccessFea
<FactionMults n={n} mults={mults} />
<AugmentationMults n={n} mults={mults} />
<HackingMults n={n} mults={mults} />
<PurchasedServersMults n={n} mults={mults} />
<CloudServersMults n={n} mults={mults} />
<StockMults n={n} mults={mults} />
<CrimeMults n={n} mults={mults} />
<InfiltrationMults n={n} mults={mults} />
@@ -293,22 +293,22 @@ function HackingMults({ mults }: IMultsProps): React.ReactElement {
return <BNMultTable sectionName="Hacking" rowData={rows} mults={mults} />;
}
function PurchasedServersMults({ mults }: IMultsProps): React.ReactElement {
function CloudServersMults({ mults }: IMultsProps): React.ReactElement {
const rows: IBNMultRows = {
PurchasedServerCost: {
CloudServerCost: {
name: "Base Cost",
content: mults.PurchasedServerCost.toFixed(3),
content: mults.CloudServerCost.toFixed(3),
},
PurchasedServerSoftcap: {
CloudServerSoftcap: {
name: "Softcap Cost",
content: mults.PurchasedServerSoftcap.toFixed(3),
content: mults.CloudServerSoftcap.toFixed(3),
},
PurchasedServerLimit: { name: "Server Limit" },
PurchasedServerMaxRam: { name: "Max RAM" },
CloudServerLimit: { name: "Server Limit" },
CloudServerMaxRam: { name: "Max RAM" },
HomeComputerRamCost: { name: "Home RAM Cost" },
};
return <BNMultTable sectionName="Purchased Servers" rowData={rows} mults={mults} />;
return <BNMultTable sectionName="Cloud Servers" rowData={rows} mults={mults} />;
}
function InfiltrationMults({ mults }: IMultsProps): React.ReactElement {