mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-26 19:14:32 +02:00
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
/**
|
|
* Functions used to determine whether the target can be hacked (or grown/weakened).
|
|
* Meant to be used for Netscript implementation
|
|
*
|
|
* The returned status object's message should be used for logging in Netscript
|
|
*/
|
|
import { IReturnStatus } from "../types";
|
|
|
|
import { Player } from "@player";
|
|
import { Server } from "../Server/Server";
|
|
|
|
function baseCheck(server: Server, actionName: string): IReturnStatus {
|
|
const hostname = server.hostname;
|
|
|
|
if (server.purchasedByPlayer) {
|
|
return {
|
|
res: false,
|
|
msg: `Cannot ${actionName} ${hostname} server because it is your server`,
|
|
};
|
|
}
|
|
|
|
if (!server.hasAdminRights) {
|
|
return {
|
|
res: false,
|
|
msg: `Cannot ${actionName} ${hostname} server because you do not have root access`,
|
|
};
|
|
}
|
|
|
|
return { res: true };
|
|
}
|
|
|
|
export function netscriptCanHack(server: Server, customActionName?: string): IReturnStatus {
|
|
const initialCheck = baseCheck(server, customActionName ?? "hack");
|
|
if (!initialCheck.res) {
|
|
return initialCheck;
|
|
}
|
|
|
|
const s = server;
|
|
if (s.requiredHackingSkill > Player.skills.hacking) {
|
|
return {
|
|
res: false,
|
|
msg: `Cannot hack ${server.hostname} server because your hacking skill is not high enough`,
|
|
};
|
|
}
|
|
|
|
return { res: true };
|
|
}
|
|
|
|
export function netscriptCanGrow(server: Server): IReturnStatus {
|
|
return baseCheck(server, "grow");
|
|
}
|
|
|
|
export function netscriptCanWeaken(server: Server): IReturnStatus {
|
|
return baseCheck(server, "weaken");
|
|
}
|