mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-29 19:13:49 +01:00
unknown-ify some code
This commit is contained in:
parent
26e6036f57
commit
989d0709ed
@ -174,7 +174,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
|
||||
throw makeRuntimeRejectMsg(
|
||||
workerScript,
|
||||
`Invalid scriptArgs argument passed into getRunningScript() from ${callingFnName}(). ` +
|
||||
`This is probably a bug. Please report to game developer`,
|
||||
`This is probably a bug. Please report to game developer`,
|
||||
);
|
||||
}
|
||||
|
||||
@ -425,19 +425,21 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
|
||||
const helper = {
|
||||
updateDynamicRam: updateDynamicRam,
|
||||
makeRuntimeErrorMsg: makeRuntimeErrorMsg,
|
||||
string: (funcName: string, argName: string, v: any): string => {
|
||||
string: (funcName: string, argName: string, v: unknown): string => {
|
||||
if (typeof v === "string") return v;
|
||||
if (typeof v === "number") return v + ""; // cast to string;
|
||||
throw makeRuntimeErrorMsg(funcName, `${argName} should be a string`);
|
||||
},
|
||||
number: (funcName: string, argName: string, v: any): number => {
|
||||
if (!isNaN(v)) {
|
||||
if (typeof v === "number") return v;
|
||||
if (!isNaN(parseFloat(v))) return parseFloat(v);
|
||||
number: (funcName: string, argName: string, v: unknown): number => {
|
||||
if (typeof v === "string") {
|
||||
const x = parseFloat(v);
|
||||
if (!isNaN(x)) return x; // otherwise it wasn't even a string representing a number.
|
||||
} else if (typeof v === "number") {
|
||||
return v;
|
||||
}
|
||||
throw makeRuntimeErrorMsg(funcName, `${argName} should be a number`);
|
||||
},
|
||||
boolean: (v: any): boolean => {
|
||||
boolean: (v: unknown): boolean => {
|
||||
return !!v; // Just convert it to boolean.
|
||||
},
|
||||
getServer: safeGetServer,
|
||||
@ -467,7 +469,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
|
||||
|
||||
const gang = NetscriptGang(Player, workerScript, helper);
|
||||
const sleeve = NetscriptSleeve(Player, workerScript, helper);
|
||||
const extra = NetscriptExtra(Player, workerScript);
|
||||
const extra = NetscriptExtra(Player, workerScript, helper);
|
||||
const hacknet = NetscriptHacknet(Player, workerScript, helper);
|
||||
const stanek = NetscriptStanek(Player, workerScript, helper);
|
||||
const bladeburner = NetscriptBladeburner(Player, workerScript, helper);
|
||||
@ -696,7 +698,8 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
|
||||
workerScript.log(
|
||||
"weaken",
|
||||
() =>
|
||||
`'${server.hostname}' security level weakened to ${server.hackDifficulty
|
||||
`'${server.hostname}' security level weakened to ${
|
||||
server.hackDifficulty
|
||||
}. Gained ${numeralWrapper.formatExp(expGain)} hacking exp (t=${numeralWrapper.formatThreads(threads)})`,
|
||||
);
|
||||
workerScript.scriptRef.onlineExpGained += expGain;
|
||||
@ -1665,7 +1668,10 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
|
||||
const cost = getPurchaseServerCost(ram);
|
||||
if (cost === Infinity) {
|
||||
if (ram > getPurchaseServerMaxRam()) {
|
||||
workerScript.log("purchaseServer", () => `Invalid argument: ram='${ram}' must not be greater than getPurchaseServerMaxRam`);
|
||||
workerScript.log(
|
||||
"purchaseServer",
|
||||
() => `Invalid argument: ram='${ram}' must not be greater than getPurchaseServerMaxRam`,
|
||||
);
|
||||
} else {
|
||||
workerScript.log("purchaseServer", () => `Invalid argument: ram='${ram}' must be a positive power of 2`);
|
||||
}
|
||||
@ -2312,7 +2318,9 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
|
||||
if (typeof f !== "function") {
|
||||
throw makeRuntimeErrorMsg("atExit", "argument should be function");
|
||||
}
|
||||
workerScript.atExit = () => { f(); }; // Wrap the user function to prevent WorkerScript leaking as 'this'
|
||||
workerScript.atExit = () => {
|
||||
f();
|
||||
}; // Wrap the user function to prevent WorkerScript leaking as 'this'
|
||||
},
|
||||
mv: function (host: string, source: string, destination: string): void {
|
||||
updateDynamicRam("mv", getRamCost(Player, "mv"));
|
||||
|
@ -2,6 +2,7 @@ import { WorkerScript } from "../Netscript/WorkerScript";
|
||||
import { IPlayer } from "../PersonObjects/IPlayer";
|
||||
import { Exploit } from "../Exploits/Exploit";
|
||||
import * as bcrypt from "bcryptjs";
|
||||
import { INetscriptHelper } from "./INetscriptHelper";
|
||||
|
||||
export interface INetscriptExtra {
|
||||
heart: {
|
||||
@ -13,7 +14,7 @@ export interface INetscriptExtra {
|
||||
rainbow(guess: string): void;
|
||||
}
|
||||
|
||||
export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript): INetscriptExtra {
|
||||
export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript, helper: INetscriptHelper): INetscriptExtra {
|
||||
return {
|
||||
heart: {
|
||||
// Easter egg function
|
||||
@ -24,17 +25,18 @@ export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript): INe
|
||||
exploit: function (): void {
|
||||
player.giveExploit(Exploit.UndocumentedFunctionCall);
|
||||
},
|
||||
bypass: function (doc: any): void {
|
||||
bypass: function (doc: unknown): void {
|
||||
// reset both fields first
|
||||
doc.completely_unused_field = undefined;
|
||||
const d = doc as any;
|
||||
d.completely_unused_field = undefined;
|
||||
const real_document: any = document;
|
||||
real_document.completely_unused_field = undefined;
|
||||
// set one to true and check that it affected the other.
|
||||
real_document.completely_unused_field = true;
|
||||
if (doc.completely_unused_field && workerScript.ramUsage === 1.6) {
|
||||
if (d.completely_unused_field && workerScript.ramUsage === 1.6) {
|
||||
player.giveExploit(Exploit.Bypass);
|
||||
}
|
||||
doc.completely_unused_field = undefined;
|
||||
d.completely_unused_field = undefined;
|
||||
real_document.completely_unused_field = undefined;
|
||||
},
|
||||
alterReality: function (): void {
|
||||
@ -55,7 +57,7 @@ export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript): INe
|
||||
rainbow: function (guess: unknown): void {
|
||||
async function tryGuess(): Promise<void> {
|
||||
const verified = await bcrypt.compare(
|
||||
guess + "",
|
||||
helper.string("rainbow", "guess", guess),
|
||||
"$2a$10$aertxDEkgor8baVtQDZsLuMwwGYmkRM/ohcA6FjmmzIHQeTCsrCcO",
|
||||
);
|
||||
if (verified) {
|
||||
|
@ -38,40 +38,6 @@ import {
|
||||
calculateAscensionPointsGain,
|
||||
} from "../Gang/formulas/formulas";
|
||||
|
||||
export interface INetscriptFormulas {
|
||||
skills: {
|
||||
calculateSkill(exp: any, mult?: any): any;
|
||||
calculateExp(skill: any, mult?: any): any;
|
||||
};
|
||||
hacking: {
|
||||
hackChance(server: any, player: any): any;
|
||||
hackExp(server: any, player: any): any;
|
||||
hackPercent(server: any, player: any): any;
|
||||
growPercent(server: any, threads: any, player: any, cores?: any): any;
|
||||
hackTime(server: any, player: any): any;
|
||||
growTime(server: any, player: any): any;
|
||||
weakenTime(server: any, player: any): any;
|
||||
};
|
||||
hacknetNodes: {
|
||||
moneyGainRate(level: any, ram: any, cores: any, mult?: any): any;
|
||||
levelUpgradeCost(startingLevel: any, extraLevels?: any, costMult?: any): any;
|
||||
ramUpgradeCost(startingRam: any, extraLevels?: any, costMult?: any): any;
|
||||
coreUpgradeCost(startingCore: any, extraCores?: any, costMult?: any): any;
|
||||
hacknetNodeCost(n: any, mult: any): any;
|
||||
constants(): any;
|
||||
};
|
||||
hacknetServers: {
|
||||
hashGainRate(level: any, ramUsed: any, maxRam: any, cores: any, mult?: any): any;
|
||||
levelUpgradeCost(startingLevel: any, extraLevels?: any, costMult?: any): any;
|
||||
ramUpgradeCost(startingRam: any, extraLevels?: any, costMult?: any): any;
|
||||
coreUpgradeCost(startingCore: any, extraCores?: any, costMult?: any): any;
|
||||
cacheUpgradeCost(startingCache: any, extraCache?: any): any;
|
||||
hashUpgradeCost(upgName: any, level: any): any;
|
||||
hacknetServerCost(n: any, mult: any): any;
|
||||
constants(): any;
|
||||
};
|
||||
}
|
||||
|
||||
export function NetscriptFormulas(player: IPlayer, workerScript: WorkerScript, helper: INetscriptHelper): IFormulas {
|
||||
const checkFormulasAccess = function (func: string): void {
|
||||
if (!player.hasProgram(Programs.Formulas.name)) {
|
||||
@ -80,63 +46,84 @@ export function NetscriptFormulas(player: IPlayer, workerScript: WorkerScript, h
|
||||
};
|
||||
return {
|
||||
skills: {
|
||||
calculateSkill: function (exp: any, mult: any = 1): any {
|
||||
calculateSkill: function (_exp: unknown, _mult: unknown = 1): number {
|
||||
const exp = helper.number("calculateSkill", "exp", _exp);
|
||||
const mult = helper.number("calculateSkill", "mult", _mult);
|
||||
checkFormulasAccess("skills.calculateSkill");
|
||||
return calculateSkill(exp, mult);
|
||||
},
|
||||
calculateExp: function (skill: any, mult: any = 1): any {
|
||||
calculateExp: function (_skill: unknown, _mult: unknown = 1): number {
|
||||
const skill = helper.number("calculateExp", "skill", _skill);
|
||||
const mult = helper.number("calculateExp", "mult", _mult);
|
||||
checkFormulasAccess("skills.calculateExp");
|
||||
return calculateExp(skill, mult);
|
||||
},
|
||||
},
|
||||
hacking: {
|
||||
hackChance: function (server: any, player: any): any {
|
||||
hackChance: function (server: any, player: any): number {
|
||||
checkFormulasAccess("hacking.hackChance");
|
||||
return calculateHackingChance(server, player);
|
||||
},
|
||||
hackExp: function (server: any, player: any): any {
|
||||
hackExp: function (server: any, player: any): number {
|
||||
checkFormulasAccess("hacking.hackExp");
|
||||
return calculateHackingExpGain(server, player);
|
||||
},
|
||||
hackPercent: function (server: any, player: any): any {
|
||||
hackPercent: function (server: any, player: any): number {
|
||||
checkFormulasAccess("hacking.hackPercent");
|
||||
return calculatePercentMoneyHacked(server, player);
|
||||
},
|
||||
growPercent: function (server: any, threads: any, player: any, cores: any = 1): any {
|
||||
growPercent: function (server: any, _threads: unknown, player: any, _cores: unknown = 1): number {
|
||||
const threads = helper.number("growPercent", "threads", _threads);
|
||||
const cores = helper.number("growPercent", "cores", _cores);
|
||||
checkFormulasAccess("hacking.growPercent");
|
||||
return calculateServerGrowth(server, threads, player, cores);
|
||||
},
|
||||
hackTime: function (server: any, player: any): any {
|
||||
hackTime: function (server: any, player: any): number {
|
||||
checkFormulasAccess("hacking.hackTime");
|
||||
return calculateHackingTime(server, player) * 1000;
|
||||
},
|
||||
growTime: function (server: any, player: any): any {
|
||||
growTime: function (server: any, player: any): number {
|
||||
checkFormulasAccess("hacking.growTime");
|
||||
return calculateGrowTime(server, player) * 1000;
|
||||
},
|
||||
weakenTime: function (server: any, player: any): any {
|
||||
weakenTime: function (server: any, player: any): number {
|
||||
checkFormulasAccess("hacking.weakenTime");
|
||||
return calculateWeakenTime(server, player) * 1000;
|
||||
},
|
||||
},
|
||||
hacknetNodes: {
|
||||
moneyGainRate: function (level: any, ram: any, cores: any, mult: any = 1): any {
|
||||
moneyGainRate: function (_level: unknown, _ram: unknown, _cores: unknown, _mult: unknown = 1): number {
|
||||
const level = helper.number("moneyGainRate", "level", _level);
|
||||
const ram = helper.number("moneyGainRate", "ram", _ram);
|
||||
const cores = helper.number("moneyGainRate", "cores", _cores);
|
||||
const mult = helper.number("moneyGainRate", "mult", _mult);
|
||||
checkFormulasAccess("hacknetNodes.moneyGainRate");
|
||||
return calculateMoneyGainRate(level, ram, cores, mult);
|
||||
},
|
||||
levelUpgradeCost: function (startingLevel: any, extraLevels: any = 1, costMult: any = 1): any {
|
||||
levelUpgradeCost: function (_startingLevel: unknown, _extraLevels: unknown = 1, _costMult: unknown = 1): number {
|
||||
const startingLevel = helper.number("levelUpgradeCost", "startingLevel", _startingLevel);
|
||||
const extraLevels = helper.number("levelUpgradeCost", "extraLevels", _extraLevels);
|
||||
const costMult = helper.number("levelUpgradeCost", "costMult", _costMult);
|
||||
checkFormulasAccess("hacknetNodes.levelUpgradeCost");
|
||||
return calculateLevelUpgradeCost(startingLevel, extraLevels, costMult);
|
||||
},
|
||||
ramUpgradeCost: function (startingRam: any, extraLevels: any = 1, costMult: any = 1): any {
|
||||
ramUpgradeCost: function (_startingRam: unknown, _extraLevels: unknown = 1, _costMult: unknown = 1): number {
|
||||
const startingRam = helper.number("ramUpgradeCost", "startingRam", _startingRam);
|
||||
const extraLevels = helper.number("ramUpgradeCost", "extraLevels", _extraLevels);
|
||||
const costMult = helper.number("ramUpgradeCost", "costMult", _costMult);
|
||||
checkFormulasAccess("hacknetNodes.ramUpgradeCost");
|
||||
return calculateRamUpgradeCost(startingRam, extraLevels, costMult);
|
||||
},
|
||||
coreUpgradeCost: function (startingCore: any, extraCores: any = 1, costMult: any = 1): any {
|
||||
coreUpgradeCost: function (_startingCore: unknown, _extraCores: unknown = 1, _costMult: unknown = 1): number {
|
||||
const startingCore = helper.number("coreUpgradeCost", "startingCore", _startingCore);
|
||||
const extraCores = helper.number("coreUpgradeCost", "extraCores", _extraCores);
|
||||
const costMult = helper.number("coreUpgradeCost", "costMult", _costMult);
|
||||
checkFormulasAccess("hacknetNodes.coreUpgradeCost");
|
||||
return calculateCoreUpgradeCost(startingCore, extraCores, costMult);
|
||||
},
|
||||
hacknetNodeCost: function (n: any, mult: any): any {
|
||||
hacknetNodeCost: function (_n: unknown, _mult: unknown): number {
|
||||
const n = helper.number("hacknetNodeCost", "n", _n);
|
||||
const mult = helper.number("hacknetNodeCost", "mult", _mult);
|
||||
checkFormulasAccess("hacknetNodes.hacknetNodeCost");
|
||||
return calculateNodeCost(n, mult);
|
||||
},
|
||||
@ -146,27 +133,51 @@ export function NetscriptFormulas(player: IPlayer, workerScript: WorkerScript, h
|
||||
},
|
||||
},
|
||||
hacknetServers: {
|
||||
hashGainRate: function (level: any, ramUsed: any, maxRam: any, cores: any, mult: any = 1): any {
|
||||
hashGainRate: function (
|
||||
_level: unknown,
|
||||
_ramUsed: unknown,
|
||||
_maxRam: unknown,
|
||||
_cores: unknown,
|
||||
_mult: unknown = 1,
|
||||
): number {
|
||||
const level = helper.number("hashGainRate", "level", _level);
|
||||
const ramUsed = helper.number("hashGainRate", "ramUsed", _ramUsed);
|
||||
const maxRam = helper.number("hashGainRate", "maxRam", _maxRam);
|
||||
const cores = helper.number("hashGainRate", "cores", _cores);
|
||||
const mult = helper.number("hashGainRate", "mult", _mult);
|
||||
checkFormulasAccess("hacknetServers.hashGainRate");
|
||||
return HScalculateHashGainRate(level, ramUsed, maxRam, cores, mult);
|
||||
},
|
||||
levelUpgradeCost: function (startingLevel: any, extraLevels: any = 1, costMult: any = 1): any {
|
||||
levelUpgradeCost: function (_startingLevel: unknown, _extraLevels: unknown = 1, _costMult: unknown = 1): number {
|
||||
const startingLevel = helper.number("levelUpgradeCost", "startingLevel", _startingLevel);
|
||||
const extraLevels = helper.number("levelUpgradeCost", "extraLevels", _extraLevels);
|
||||
const costMult = helper.number("levelUpgradeCost", "costMult", _costMult);
|
||||
checkFormulasAccess("hacknetServers.levelUpgradeCost");
|
||||
return HScalculateLevelUpgradeCost(startingLevel, extraLevels, costMult);
|
||||
},
|
||||
ramUpgradeCost: function (startingRam: any, extraLevels: any = 1, costMult: any = 1): any {
|
||||
ramUpgradeCost: function (_startingRam: unknown, _extraLevels: unknown = 1, _costMult: unknown = 1): number {
|
||||
const startingRam = helper.number("ramUpgradeCost", "startingRam", _startingRam);
|
||||
const extraLevels = helper.number("ramUpgradeCost", "extraLevels", _extraLevels);
|
||||
const costMult = helper.number("ramUpgradeCost", "costMult", _costMult);
|
||||
checkFormulasAccess("hacknetServers.ramUpgradeCost");
|
||||
return HScalculateRamUpgradeCost(startingRam, extraLevels, costMult);
|
||||
},
|
||||
coreUpgradeCost: function (startingCore: any, extraCores: any = 1, costMult: any = 1): any {
|
||||
coreUpgradeCost: function (_startingCore: unknown, _extraCores: unknown = 1, _costMult: unknown = 1): number {
|
||||
const startingCore = helper.number("coreUpgradeCost", "startingCore", _startingCore);
|
||||
const extraCores = helper.number("coreUpgradeCost", "extraCores", _extraCores);
|
||||
const costMult = helper.number("coreUpgradeCost", "costMult", _costMult);
|
||||
checkFormulasAccess("hacknetServers.coreUpgradeCost");
|
||||
return HScalculateCoreUpgradeCost(startingCore, extraCores, costMult);
|
||||
},
|
||||
cacheUpgradeCost: function (startingCache: any, extraCache: any = 1): any {
|
||||
cacheUpgradeCost: function (_startingCache: unknown, _extraCache: unknown = 1): number {
|
||||
const startingCache = helper.number("cacheUpgradeCost", "startingCache", _startingCache);
|
||||
const extraCache = helper.number("cacheUpgradeCost", "extraCache", _extraCache);
|
||||
checkFormulasAccess("hacknetServers.cacheUpgradeCost");
|
||||
return HScalculateCacheUpgradeCost(startingCache, extraCache);
|
||||
},
|
||||
hashUpgradeCost: function (upgName: any, level: any): any {
|
||||
hashUpgradeCost: function (_upgName: unknown, _level: unknown): number {
|
||||
const upgName = helper.string("hashUpgradeCost", "upgName", _upgName);
|
||||
const level = helper.number("hashUpgradeCost", "level", _level);
|
||||
checkFormulasAccess("hacknetServers.hashUpgradeCost");
|
||||
const upg = player.hashManager.getUpgrade(upgName);
|
||||
if (!upg) {
|
||||
@ -177,7 +188,9 @@ export function NetscriptFormulas(player: IPlayer, workerScript: WorkerScript, h
|
||||
}
|
||||
return upg.getCost(level);
|
||||
},
|
||||
hacknetServerCost: function (n: any, mult: any = 1): any {
|
||||
hacknetServerCost: function (_n: unknown, _mult: unknown = 1): number {
|
||||
const n = helper.number("hacknetServerCost", "n", _n);
|
||||
const mult = helper.number("hacknetServerCost", "mult", _mult);
|
||||
checkFormulasAccess("hacknetServers.hacknetServerCost");
|
||||
return HScalculateServerCost(n, mult);
|
||||
},
|
||||
@ -203,11 +216,13 @@ export function NetscriptFormulas(player: IPlayer, workerScript: WorkerScript, h
|
||||
checkFormulasAccess("gang.moneyGain");
|
||||
return calculateMoneyGain(gang, member, task);
|
||||
},
|
||||
ascensionPointsGain: function (exp: any): number {
|
||||
ascensionPointsGain: function (_exp: unknown): number {
|
||||
const exp = helper.number("ascensionPointsGain", "exp", _exp);
|
||||
checkFormulasAccess("gang.ascensionPointsGain");
|
||||
return calculateAscensionPointsGain(exp);
|
||||
},
|
||||
ascensionMultiplier: function (points: any): number {
|
||||
ascensionMultiplier: function (_points: unknown): number {
|
||||
const points = helper.number("ascensionMultiplier", "points", _points);
|
||||
checkFormulasAccess("gang.ascensionMultiplier");
|
||||
return calculateAscensionMult(points);
|
||||
},
|
||||
|
@ -3,9 +3,9 @@ import { BaseServer } from "../Server/BaseServer";
|
||||
export interface INetscriptHelper {
|
||||
updateDynamicRam(functionName: string, ram: number): void;
|
||||
makeRuntimeErrorMsg(functionName: string, message: string): void;
|
||||
string(funcName: string, argName: string, v: any): string;
|
||||
number(funcName: string, argName: string, v: any): number;
|
||||
boolean(v: any): boolean;
|
||||
string(funcName: string, argName: string, v: unknown): string;
|
||||
number(funcName: string, argName: string, v: unknown): number;
|
||||
boolean(v: unknown): boolean;
|
||||
getServer(ip: any, fn: any): BaseServer;
|
||||
checkSingularityAccess(func: string): void;
|
||||
hack(hostname: string, manual: boolean): Promise<number>;
|
||||
|
Loading…
Reference in New Issue
Block a user