Remove IPlayer interface

Use PlayerObject instead when referring to the type of "The Player."
This commit is contained in:
Snarling
2022-09-20 00:14:17 -04:00
parent 21a2d49de7
commit e578bd7681
9 changed files with 225 additions and 567 deletions
@@ -1,7 +1,7 @@
/**
* Server and HacknetServer-related methods for the Player class (PlayerObject)
*/
import { IPlayer } from "../IPlayer";
import { PlayerObject } from "./PlayerObject";
import { CONSTANTS } from "../../Constants";
@@ -12,23 +12,23 @@ import { HacknetServer } from "../../Hacknet/HacknetServer";
import { GetServer, AddToAllServers, createUniqueRandomIp } from "../../Server/AllServers";
import { SpecialServers } from "../../Server/data/SpecialServers";
export function hasTorRouter(this: IPlayer): boolean {
export function hasTorRouter(this: PlayerObject): boolean {
return this.getHomeComputer().serversOnNetwork.includes(SpecialServers.DarkWeb);
}
export function getCurrentServer(this: IPlayer): BaseServer {
export function getCurrentServer(this: PlayerObject): BaseServer {
const server = GetServer(this.currentServer);
if (server === null) throw new Error(`somehow connected to a server that does not exist. ${this.currentServer}`);
return server;
}
export function getHomeComputer(this: IPlayer): Server {
export function getHomeComputer(this: PlayerObject): Server {
const home = GetServer("home");
if (home instanceof Server) return home;
throw new Error("home computer was not a normal server");
}
export function getUpgradeHomeRamCost(this: IPlayer): number {
export function getUpgradeHomeRamCost(this: PlayerObject): number {
//Calculate how many times ram has been upgraded (doubled)
const currentRam = this.getHomeComputer().maxRam;
const numUpgrades = Math.log2(currentRam);
@@ -40,11 +40,11 @@ export function getUpgradeHomeRamCost(this: IPlayer): number {
return cost;
}
export function getUpgradeHomeCoresCost(this: IPlayer): number {
export function getUpgradeHomeCoresCost(this: PlayerObject): number {
return 1e9 * Math.pow(7.5, this.getHomeComputer().cpuCores);
}
export function createHacknetServer(this: IPlayer): HacknetServer {
export function createHacknetServer(this: PlayerObject): HacknetServer {
const numOwned = this.hacknetNodes.length;
const name = `hacknet-node-${numOwned}`;
const server = new HacknetServer({