NETSCRIPT: Add growThreads to formulas, improve docs for hacking functions (#330)

This commit is contained in:
David Walker
2023-02-14 14:38:51 -08:00
committed by GitHub
parent b9a2953fa6
commit ed59f4bfe7
5 changed files with 129 additions and 95 deletions
+15
View File
@@ -1,5 +1,6 @@
import { Player as player } from "../Player";
import { calculateServerGrowth } from "../Server/formulas/grow";
import { numCycleForGrowthCorrected } from "../Server/ServerHelpers";
import {
calculateMoneyGainRate,
calculateLevelUpgradeCost,
@@ -164,6 +165,9 @@ export function NetscriptFormulas(): InternalAPI<IFormulas> {
checkFormulasAccess(ctx);
return calculatePercentMoneyHacked(server, person);
},
/* TODO 2.3: Remove growPercent, add growMultiplier function?
Much better name given the output. Not sure if removedFunction error dialog/editing script will be too annoying.
Changing the function name also allows reordering params as server, player, etc. like other formulas functions */
growPercent:
(ctx) =>
(_server, _threads, _player, _cores = 1) => {
@@ -174,6 +178,17 @@ export function NetscriptFormulas(): InternalAPI<IFormulas> {
checkFormulasAccess(ctx);
return calculateServerGrowth(server, threads, person, cores);
},
growThreads:
(ctx) =>
(_server, _player, _targetMoney, _cores = 1) => {
const server = helpers.server(ctx, _server);
const player = helpers.person(ctx, _player);
const targetMoney = helpers.number(ctx, "targetMoney", _targetMoney);
const startMoney = helpers.number(ctx, "server.moneyAvailable", server.moneyAvailable);
const cores = helpers.number(ctx, "cores", _cores);
checkFormulasAccess(ctx);
return numCycleForGrowthCorrected(server, targetMoney, startMoney, cores, player);
},
hackTime: (ctx) => (_server, _player) => {
const server = helpers.server(ctx, _server);
const person = helpers.person(ctx, _player);