This commit is contained in:
danielyxie
2019-04-14 02:08:10 -07:00
committed by danielyxie
parent 3d1684f825
commit d044739f1c
38 changed files with 1377 additions and 842 deletions
+23 -12
View File
@@ -1,17 +1,20 @@
import * as generalMethods from "./PlayerObjectGeneralMethods";
import * as serverMethods from "./PlayerObjectServerMethods";
import * as bladeburnerMethods from "./PlayerObjectBladeburnerMethods";
import * as corporationMethods from "./PlayerObjectCorporationMethods";
import * as bladeburnerMethods from "./PlayerObjectBladeburnerMethods";
import * as corporationMethods from "./PlayerObjectCorporationMethods";
import * as gangMethods from "./PlayerObjectGangMethods";
import * as generalMethods from "./PlayerObjectGeneralMethods";
import * as serverMethods from "./PlayerObjectServerMethods";
import { HashManager } from "../../Hacknet/HashManager";
import { CityName } from "../../Locations/data/CityNames";
import { HashManager } from "../../Hacknet/HashManager";
import { CityName } from "../../Locations/data/CityNames";
import { MoneySourceTracker } from "../../utils/MoneySourceTracker";
import { Reviver,
Generic_toJSON,
Generic_fromJSON } from "../../../utils/JSONReviver";
import { MoneySourceTracker } from "../../utils/MoneySourceTracker";
import {
Reviver,
Generic_toJSON,
Generic_fromJSON
} from "../../../utils/JSONReviver";
import Decimal from "decimal.js";
import Decimal from "decimal.js";
export function PlayerObject() {
//Skills and stats
@@ -199,7 +202,15 @@ export function PlayerObject() {
this.scriptProdSinceLastAug = 0;
};
Object.assign(PlayerObject.prototype, generalMethods, serverMethods, bladeburnerMethods, corporationMethods);
// Apply player methods to the prototype using Object.assign()
Object.assign(
PlayerObject.prototype,
generalMethods,
serverMethods,
bladeburnerMethods,
corporationMethods,
gangMethods
);
PlayerObject.prototype.toJSON = function() {
return Generic_toJSON("PlayerObject", this);
@@ -0,0 +1,34 @@
import { Factions } from "../../Faction/Factions";
import { Gang } from "../../Gang";
import { SourceFileFlags } from "../../SourceFile/SourceFileFlags";
// Amount of negative karma needed to manage a gang in BitNodes other than 2
const GangKarmaRequirement = -54000;
export function canAccessGang() {
if (this.bitNodeN === 2) { return true; }
if (SourceFileFlags[2] <= 0) { return false; }
return (this.karma <= GangKarmaRequirement);
}
export function getGangName() {
return this.gang.facName;
}
export function inGang() {
if (this.gang == null || this.gang == undefined) { return false; }
return (this.gang instanceof Gang);
}
export function startGang(factionName, hacking) {
this.gang = new Gang(factionName, hacking);
const fac = Factions[factionName];
if (fac == null) {
throw new Error(`Invalid faction name when creating gang: ${factionName}`);
}
fac.playerReputation = 0;
}
@@ -20,7 +20,7 @@ import {Engine} from "../../engine";
import { Faction } from "../../Faction/Faction";
import { Factions } from "../../Faction/Factions";
import { displayFactionContent } from "../../Faction/FactionHelpers";
import {Gang, resetGangs} from "../../Gang";
import { resetGangs } from "../../Gang";
import { hasHacknetServers } from "../../Hacknet/HacknetHelpers";
import { HashManager } from "../../Hacknet/HashManager";
import { Cities } from "../../Locations/Cities";
@@ -150,8 +150,9 @@ export function prestigeAugmentation() {
this.moneySourceA.reset();
this.hacknetNodes.length = 0;
this.hashManager.prestige(this);
//Re-calculate skills and reset HP
// Re-calculate skills and reset HP
this.updateSkillLevels();
this.hp = this.max_hp;
}
@@ -239,18 +240,19 @@ export function prestigeSourceFile() {
this.lastUpdate = new Date().getTime();
this.hacknetNodes.length = 0;
this.hashManager.prestige(this);
//Gang
// Gang
this.gang = null;
resetGangs();
//Reset Stock market
// Reset Stock market
this.hasWseAccount = false;
this.hasTixApiAccess = false;
this.has4SData = false;
this.has4SDataTixApi = false;
//BitNode 3: Corporatocracy
// BitNode 3: Corporatocracy
this.corporation = 0;
// Statistics trackers
@@ -2174,18 +2176,6 @@ export function checkForFactionInvitations() {
return invitedFactions;
}
/*************** Gang ****************/
//Returns true if Player is in a gang and false otherwise
export function inGang() {
if (this.gang == null || this.gang == undefined) {return false;}
return (this.gang instanceof Gang);
}
export function startGang(factionName, hacking) {
this.gang = new Gang(factionName, hacking);
}
/************* BitNodes **************/
export function setBitNodeNumber(n) {
this.bitNodeN = n;