work on making the netscript api tighter

This commit is contained in:
Olivier Gagnon
2021-11-03 20:19:52 -04:00
parent c5fb5155f3
commit 14150d3e33
270 changed files with 11011 additions and 1273 deletions

View File

@@ -18,7 +18,7 @@ import { HacknetServer } from "../Hacknet/HacknetServer";
import { HacknetNode } from "../Hacknet/HacknetNode";
import { GetServer } from "../Server/AllServers";
import { Hacknet as IHacknet } from "../ScriptEditor/NetscriptDefinitions";
import { Hacknet as IHacknet, NodeStats } from "../ScriptEditor/NetscriptDefinitions";
export function NetscriptHacknet(player: IPlayer, workerScript: WorkerScript, helper: INetscriptHelper): IHacknet {
// Utility function to get Hacknet Node object
@@ -51,26 +51,26 @@ export function NetscriptHacknet(player: IPlayer, workerScript: WorkerScript, he
};
return {
numNodes: function (): any {
numNodes: function (): number {
return player.hacknetNodes.length;
},
maxNumNodes: function (): any {
maxNumNodes: function (): number {
if (hasHacknetServers(player)) {
return HacknetServerConstants.MaxServers;
}
return Infinity;
},
purchaseNode: function (): any {
purchaseNode: function (): number {
return purchaseHacknet(player);
},
getPurchaseNodeCost: function (): any {
getPurchaseNodeCost: function (): number {
if (hasHacknetServers(player)) {
return getCostOfNextHacknetServer(player);
} else {
return getCostOfNextHacknetNode(player);
}
},
getNodeStats: function (i: any): any {
getNodeStats: function (i: any): NodeStats {
const node = getHacknetNode(i, "getNodeStats");
const hasUpgraded = hasHacknetServers(player);
const res: any = {
@@ -90,19 +90,19 @@ export function NetscriptHacknet(player: IPlayer, workerScript: WorkerScript, he
return res;
},
upgradeLevel: function (i: any, n: any): any {
upgradeLevel: function (i: any, n: any): boolean {
const node = getHacknetNode(i, "upgradeLevel");
return purchaseLevelUpgrade(player, node, n);
},
upgradeRam: function (i: any, n: any): any {
upgradeRam: function (i: any, n: any): boolean {
const node = getHacknetNode(i, "upgradeRam");
return purchaseRamUpgrade(player, node, n);
},
upgradeCore: function (i: any, n: any): any {
upgradeCore: function (i: any, n: any): boolean {
const node = getHacknetNode(i, "upgradeCore");
return purchaseCoreUpgrade(player, node, n);
},
upgradeCache: function (i: any, n: any): any {
upgradeCache: function (i: any, n: any): boolean {
if (!hasHacknetServers(player)) {
return false;
}
@@ -117,19 +117,19 @@ export function NetscriptHacknet(player: IPlayer, workerScript: WorkerScript, he
}
return res;
},
getLevelUpgradeCost: function (i: any, n: any): any {
getLevelUpgradeCost: function (i: any, n: any): number {
const node = getHacknetNode(i, "upgradeLevel");
return node.calculateLevelUpgradeCost(n, player.hacknet_node_level_cost_mult);
},
getRamUpgradeCost: function (i: any, n: any): any {
getRamUpgradeCost: function (i: any, n: any): number {
const node = getHacknetNode(i, "upgradeRam");
return node.calculateRamUpgradeCost(n, player.hacknet_node_ram_cost_mult);
},
getCoreUpgradeCost: function (i: any, n: any): any {
getCoreUpgradeCost: function (i: any, n: any): number {
const node = getHacknetNode(i, "upgradeCore");
return node.calculateCoreUpgradeCost(n, player.hacknet_node_core_cost_mult);
},
getCacheUpgradeCost: function (i: any, n: any): any {
getCacheUpgradeCost: function (i: any, n: any): number {
if (!hasHacknetServers(player)) {
return Infinity;
}
@@ -140,47 +140,47 @@ export function NetscriptHacknet(player: IPlayer, workerScript: WorkerScript, he
}
return node.calculateCacheUpgradeCost(n);
},
numHashes: function (): any {
numHashes: function (): number {
if (!hasHacknetServers(player)) {
return 0;
}
return player.hashManager.hashes;
},
hashCapacity: function (): any {
hashCapacity: function (): number {
if (!hasHacknetServers(player)) {
return 0;
}
return player.hashManager.capacity;
},
hashCost: function (upgName: any): any {
hashCost: function (upgName: any): number {
if (!hasHacknetServers(player)) {
return Infinity;
}
return player.hashManager.getUpgradeCost(upgName);
},
spendHashes: function (upgName: any, upgTarget: any): any {
spendHashes: function (upgName: any, upgTarget: any): boolean {
if (!hasHacknetServers(player)) {
return false;
}
return purchaseHashUpgrade(player, upgName, upgTarget);
},
getHashUpgradeLevel: function (upgName: any): any {
getHashUpgradeLevel: function (upgName: any): number {
const level = player.hashManager.upgrades[upgName];
if (level === undefined) {
throw helper.makeRuntimeErrorMsg("hacknet.hashUpgradeLevel", `Invalid Hash Upgrade: ${upgName}`);
}
return level;
},
getStudyMult: function (): any {
getStudyMult: function (): number {
if (!hasHacknetServers(player)) {
return false;
return 1;
}
return player.hashManager.getStudyMult();
},
getTrainingMult: function (): any {
getTrainingMult: function (): number {
if (!hasHacknetServers(player)) {
return false;
return 1;
}
return player.hashManager.getTrainingMult();
},