mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-18 20:25:45 +01:00
Moved Player initialization point (#452)
Now initialized as side effect in PlayerObject, instead of in Player file that is imported everywhere.
This commit is contained in:
parent
798da75d83
commit
8445af5f2b
@ -1,4 +1,3 @@
|
|||||||
import { PlayerObject } from "../PersonObjects/Player/PlayerObject";
|
|
||||||
import { AugmentationNames } from "../Augmentation/data/AugmentationNames";
|
import { AugmentationNames } from "../Augmentation/data/AugmentationNames";
|
||||||
import { SkillNames } from "../Bladeburner/data/SkillNames";
|
import { SkillNames } from "../Bladeburner/data/SkillNames";
|
||||||
import { Skills } from "../Bladeburner/Skills";
|
import { Skills } from "../Bladeburner/Skills";
|
||||||
@ -26,6 +25,8 @@ import { BlackOperationNames } from "../Bladeburner/data/BlackOperationNames";
|
|||||||
import { isClassWork } from "../Work/ClassWork";
|
import { isClassWork } from "../Work/ClassWork";
|
||||||
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
||||||
|
|
||||||
|
import type { PlayerObject } from "../PersonObjects/Player/PlayerObject";
|
||||||
|
|
||||||
// Unable to correctly cast the JSON data into AchievementDataJson type otherwise...
|
// Unable to correctly cast the JSON data into AchievementDataJson type otherwise...
|
||||||
const achievementData = (<AchievementDataJson>(<unknown>data)).achievements;
|
const achievementData = (<AchievementDataJson>(<unknown>data)).achievements;
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import * as generalMethods from "./PlayerObjectGeneralMethods";
|
|||||||
import * as serverMethods from "./PlayerObjectServerMethods";
|
import * as serverMethods from "./PlayerObjectServerMethods";
|
||||||
import * as workMethods from "./PlayerObjectWorkMethods";
|
import * as workMethods from "./PlayerObjectWorkMethods";
|
||||||
|
|
||||||
|
import { setPlayer } from "../../Player";
|
||||||
import { Sleeve } from "../Sleeve/Sleeve";
|
import { Sleeve } from "../Sleeve/Sleeve";
|
||||||
import { PlayerOwnedSourceFile } from "../../SourceFile/PlayerOwnedSourceFile";
|
import { PlayerOwnedSourceFile } from "../../SourceFile/PlayerOwnedSourceFile";
|
||||||
import { Exploit } from "../../Exploits/Exploit";
|
import { Exploit } from "../../Exploits/Exploit";
|
||||||
@ -172,4 +173,6 @@ export class PlayerObject extends Person implements IPlayer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setPlayer(new PlayerObject());
|
||||||
|
|
||||||
Reviver.constructors.PlayerObject = PlayerObject;
|
Reviver.constructors.PlayerObject = PlayerObject;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
/** Augmentation-related methods for the Player class (PlayerObject) */
|
/** Augmentation-related methods for the Player class (PlayerObject) */
|
||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
import { calculateEntropy } from "../Grafting/EntropyAccumulation";
|
import { calculateEntropy } from "../Grafting/EntropyAccumulation";
|
||||||
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function applyEntropy(this: PlayerObject, stacks = 1): void {
|
export function applyEntropy(this: PlayerObject, stacks = 1): void {
|
||||||
// Re-apply all multipliers
|
// Re-apply all multipliers
|
||||||
this.reapplyAllAugmentations();
|
this.reapplyAllAugmentations();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { Bladeburner } from "../../Bladeburner/Bladeburner";
|
import { Bladeburner } from "../../Bladeburner/Bladeburner";
|
||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function canAccessBladeburner(this: PlayerObject): boolean {
|
export function canAccessBladeburner(this: PlayerObject): boolean {
|
||||||
return this.bitNodeN === 6 || this.bitNodeN === 7 || this.sourceFileLvl(6) > 0 || this.sourceFileLvl(7) > 0;
|
return this.bitNodeN === 6 || this.bitNodeN === 7 || this.sourceFileLvl(6) > 0 || this.sourceFileLvl(7) > 0;
|
||||||
|
@ -3,9 +3,10 @@ import {
|
|||||||
CorporationUnlockUpgradeIndex,
|
CorporationUnlockUpgradeIndex,
|
||||||
CorporationUnlockUpgrades,
|
CorporationUnlockUpgrades,
|
||||||
} from "../../Corporation/data/CorporationUnlockUpgrades";
|
} from "../../Corporation/data/CorporationUnlockUpgrades";
|
||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
import { resetIndustryResearchTrees } from "../../Corporation/IndustryData";
|
import { resetIndustryResearchTrees } from "../../Corporation/IndustryData";
|
||||||
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function canAccessCorporation(this: PlayerObject): boolean {
|
export function canAccessCorporation(this: PlayerObject): boolean {
|
||||||
return this.bitNodeN === 3 || this.sourceFileLvl(3) > 0;
|
return this.bitNodeN === 3 || this.sourceFileLvl(3) > 0;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import { Factions } from "../../Faction/Factions";
|
import { Factions } from "../../Faction/Factions";
|
||||||
import { Faction } from "../../Faction/Faction";
|
import { Faction } from "../../Faction/Faction";
|
||||||
import { Gang } from "../../Gang/Gang";
|
import { Gang } from "../../Gang/Gang";
|
||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
import { GangConstants } from "../../Gang/data/Constants";
|
import { GangConstants } from "../../Gang/data/Constants";
|
||||||
import { isFactionWork } from "../../Work/FactionWork";
|
import { isFactionWork } from "../../Work/FactionWork";
|
||||||
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function canAccessGang(this: PlayerObject): boolean {
|
export function canAccessGang(this: PlayerObject): boolean {
|
||||||
if (this.bitNodeN === 2) {
|
if (this.bitNodeN === 2) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
import { applyAugmentation } from "../../Augmentation/AugmentationHelpers";
|
import { applyAugmentation } from "../../Augmentation/AugmentationHelpers";
|
||||||
import { PlayerOwnedAugmentation } from "../../Augmentation/PlayerOwnedAugmentation";
|
import { PlayerOwnedAugmentation } from "../../Augmentation/PlayerOwnedAugmentation";
|
||||||
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
|
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
|
||||||
@ -45,6 +44,8 @@ import { FactionNames } from "../../Faction/data/FactionNames";
|
|||||||
import { isCompanyWork } from "../../Work/CompanyWork";
|
import { isCompanyWork } from "../../Work/CompanyWork";
|
||||||
import { serverMetadata } from "../../Server/data/servers";
|
import { serverMetadata } from "../../Server/data/servers";
|
||||||
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function init(this: PlayerObject): void {
|
export function init(this: PlayerObject): void {
|
||||||
/* Initialize Player's home computer */
|
/* Initialize Player's home computer */
|
||||||
const t_homeComp = safelyCreateUniqueServer({
|
const t_homeComp = safelyCreateUniqueServer({
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Server and HacknetServer-related methods for the Player class (PlayerObject)
|
// Server and HacknetServer-related methods for the Player class (PlayerObject)
|
||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
|
|
||||||
import { CONSTANTS } from "../../Constants";
|
import { CONSTANTS } from "../../Constants";
|
||||||
|
|
||||||
import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers";
|
import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers";
|
||||||
@ -11,6 +9,8 @@ import { GetServer, AddToAllServers, createUniqueRandomIp } from "../../Server/A
|
|||||||
import { SpecialServers } from "../../Server/data/SpecialServers";
|
import { SpecialServers } from "../../Server/data/SpecialServers";
|
||||||
import { hasHacknetServers } from "../../Hacknet/HacknetHelpers";
|
import { hasHacknetServers } from "../../Hacknet/HacknetHelpers";
|
||||||
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function hasTorRouter(this: PlayerObject): boolean {
|
export function hasTorRouter(this: PlayerObject): boolean {
|
||||||
return this.getHomeComputer().serversOnNetwork.includes(SpecialServers.DarkWeb);
|
return this.getHomeComputer().serversOnNetwork.includes(SpecialServers.DarkWeb);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { Work } from "../../Work/Work";
|
import { Work } from "../../Work/Work";
|
||||||
import { PlayerObject } from "./PlayerObject";
|
|
||||||
|
import type { PlayerObject } from "./PlayerObject";
|
||||||
|
|
||||||
export function startWork(this: PlayerObject, w: Work): void {
|
export function startWork(this: PlayerObject, w: Work): void {
|
||||||
if (this.currentWork !== null) {
|
if (this.currentWork !== null) {
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
import { PlayerObject } from "./PersonObjects/Player/PlayerObject";
|
|
||||||
import { sanitizeExploits } from "./Exploits/Exploit";
|
import { sanitizeExploits } from "./Exploits/Exploit";
|
||||||
|
|
||||||
import { Reviver } from "./utils/JSONReviver";
|
import { Reviver } from "./utils/JSONReviver";
|
||||||
|
|
||||||
export let Player = new PlayerObject();
|
import type { PlayerObject } from "./PersonObjects/Player/PlayerObject";
|
||||||
|
|
||||||
|
export let Player: PlayerObject;
|
||||||
|
|
||||||
|
export function setPlayer(playerObj: PlayerObject): void {
|
||||||
|
Player = playerObj;
|
||||||
|
}
|
||||||
|
|
||||||
export function loadPlayer(saveString: string): void {
|
export function loadPlayer(saveString: string): void {
|
||||||
Player = JSON.parse(saveString, Reviver);
|
Player = JSON.parse(saveString, Reviver);
|
||||||
|
@ -11,6 +11,7 @@ import { Reviver } from "../utils/JSONReviver";
|
|||||||
import { isValidIPAddress } from "../utils/helpers/isValidIPAddress";
|
import { isValidIPAddress } from "../utils/helpers/isValidIPAddress";
|
||||||
import { SpecialServers } from "./data/SpecialServers";
|
import { SpecialServers } from "./data/SpecialServers";
|
||||||
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
||||||
|
import "../Script/RunningScript"; // For reviver side-effect
|
||||||
|
|
||||||
import type { RunningScript } from "../Script/RunningScript";
|
import type { RunningScript } from "../Script/RunningScript";
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import { processPassiveFactionRepGain, inviteToFaction } from "./Faction/Faction
|
|||||||
import { Router } from "./ui/GameRoot";
|
import { Router } from "./ui/GameRoot";
|
||||||
import { Page } from "./ui/Router";
|
import { Page } from "./ui/Router";
|
||||||
import { SetupTextEditor } from "./ScriptEditor/ui/ScriptEditorRoot";
|
import { SetupTextEditor } from "./ScriptEditor/ui/ScriptEditorRoot";
|
||||||
|
import "./PersonObjects/Player/PlayerObject"; // For side-effect of creating Player
|
||||||
|
|
||||||
import {
|
import {
|
||||||
getHackingWorkRepGain,
|
getHackingWorkRepGain,
|
||||||
|
5
test/jest/Imports/Hacknet.test.ts
Normal file
5
test/jest/Imports/Hacknet.test.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { HacknetServer } from "../../../src/Hacknet/HacknetServer";
|
||||||
|
|
||||||
|
test("Can import only HacknetServer", () => {
|
||||||
|
new HacknetServer();
|
||||||
|
});
|
5
test/jest/Imports/Server.test.ts
Normal file
5
test/jest/Imports/Server.test.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { Server } from "../../../src/Server/Server";
|
||||||
|
|
||||||
|
test("Can import only Server", () => {
|
||||||
|
new Server();
|
||||||
|
});
|
5
test/jest/Imports/WorkerScript.test.ts
Normal file
5
test/jest/Imports/WorkerScript.test.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { WorkerScript } from "../../../src/Netscript/WorkerScript";
|
||||||
|
|
||||||
|
test("Can import only WorkerScript", () => {
|
||||||
|
WorkerScript;
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user