diff --git a/src/Bladeburner/Action.tsx b/src/Bladeburner/Action.tsx
index f128f444c..d2f273f82 100644
--- a/src/Bladeburner/Action.tsx
+++ b/src/Bladeburner/Action.tsx
@@ -1,10 +1,10 @@
-import { Player } from "@player";
import { getRandomInt } from "../utils/helpers/getRandomInt";
import { addOffset } from "../utils/helpers/addOffset";
import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from "../utils/JSONReviver";
import { BladeburnerConstants } from "./data/Constants";
import { Bladeburner } from "./Bladeburner";
import { Person } from "../PersonObjects/Person";
+import { calculateIntelligenceBonus } from "../PersonObjects/formulas/intelligence";
interface ISuccessChanceParams {
est: boolean;
@@ -254,7 +254,7 @@ export class Action {
competence += this.weights[stat] * Math.pow(effMultiplier * playerStatLvl, this.decays[stat]);
}
}
- competence *= Player.getIntelligenceBonus(0.75);
+ competence *= calculateIntelligenceBonus(person.skills.intelligence, 0.75);
competence *= inst.calculateStaminaPenalty();
competence *= this.getTeamSuccessBonus(inst);
@@ -277,7 +277,7 @@ export class Action {
}
// Augmentation multiplier
- competence *= Player.mults.bladeburner_success_chance;
+ competence *= person.mults.bladeburner_success_chance;
if (isNaN(competence)) {
throw new Error("Competence calculated as NaN in Action.getSuccessChance()");
diff --git a/src/Company/CompanyPosition.ts b/src/Company/CompanyPosition.ts
index b4905f950..ecb3ac039 100644
--- a/src/Company/CompanyPosition.ts
+++ b/src/Company/CompanyPosition.ts
@@ -1,4 +1,4 @@
-import { Person } from "../PersonObjects/Person";
+import { Person as IPerson } from "../ScriptEditor/NetscriptDefinitions";
import { CONSTANTS } from "../Constants";
import * as names from "./data/companypositionnames";
@@ -118,7 +118,7 @@ export class CompanyPosition {
this.charismaExpGain = p.charismaExpGain != null ? p.charismaExpGain : 0;
}
- calculateJobPerformance(worker: Person): number {
+ calculateJobPerformance(worker: IPerson): number {
const hackRatio: number = (this.hackingEffectiveness * worker.skills.hacking) / CONSTANTS.MaxSkillLevel;
const strRatio: number = (this.strengthEffectiveness * worker.skills.strength) / CONSTANTS.MaxSkillLevel;
const defRatio: number = (this.defenseEffectiveness * worker.skills.defense) / CONSTANTS.MaxSkillLevel;
diff --git a/src/Corporation/ui/modals/CreateCorporationModal.tsx b/src/Corporation/ui/modals/CreateCorporationModal.tsx
index 9a2cd26ec..14082a716 100644
--- a/src/Corporation/ui/modals/CreateCorporationModal.tsx
+++ b/src/Corporation/ui/modals/CreateCorporationModal.tsx
@@ -15,7 +15,7 @@ interface IProps {
export function CreateCorporationModal(props: IProps): React.ReactElement {
const canSelfFund = Player.canAfford(150e9);
- if (!Player.canAccessCorporation() || Player.hasCorporation()) {
+ if (!Player.canAccessCorporation() || Player.corporation) {
props.onClose();
return <>>;
}
@@ -26,13 +26,8 @@ export function CreateCorporationModal(props: IProps): React.ReactElement {
}
function selfFund(): void {
- if (!canSelfFund) {
- return;
- }
-
- if (name == "") {
- return;
- }
+ if (!canSelfFund) return;
+ if (name == "") return;
Player.startCorporation(name);
Player.loseMoney(150e9, "corporation");
diff --git a/src/Crime/Crime.ts b/src/Crime/Crime.ts
index ceee8d4f6..c1387252b 100644
--- a/src/Crime/Crime.ts
+++ b/src/Crime/Crime.ts
@@ -1,9 +1,10 @@
import { CONSTANTS } from "../Constants";
import { Player } from "@player";
-import { Person } from "../PersonObjects/Person";
+import { Person as IPerson } from "../ScriptEditor/NetscriptDefinitions";
import { WorkerScript } from "../Netscript/WorkerScript";
import { CrimeType } from "../utils/WorkType";
import { CrimeWork } from "../Work/CrimeWork";
+import { calculateIntelligenceBonus } from "../PersonObjects/formulas/intelligence";
interface IConstructorParams {
hacking_success_weight?: number;
@@ -120,7 +121,7 @@ export class Crime {
return this.time;
}
- successRate(p: Person): number {
+ successRate(p: IPerson): number {
let chance: number =
this.hacking_success_weight * p.skills.hacking +
this.strength_success_weight * p.skills.strength +
@@ -132,7 +133,7 @@ export class Crime {
chance /= CONSTANTS.MaxSkillLevel;
chance /= this.difficulty;
chance *= p.mults.crime_success;
- chance *= p.getIntelligenceBonus(1);
+ chance *= calculateIntelligenceBonus(p.skills.intelligence, 1);
return Math.min(chance, 1);
}
diff --git a/src/Faction/formulas/donation.ts b/src/Faction/formulas/donation.ts
index 0cc4c2067..936d76d51 100644
--- a/src/Faction/formulas/donation.ts
+++ b/src/Faction/formulas/donation.ts
@@ -1,7 +1,7 @@
import { CONSTANTS } from "../../Constants";
import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers";
-import { Person } from "../../PersonObjects/Person";
+import { Person as IPerson } from "../../ScriptEditor/NetscriptDefinitions";
-export function repFromDonation(amt: number, person: Person): number {
+export function repFromDonation(amt: number, person: IPerson): number {
return (amt / CONSTANTS.DonateMoneyToRepDivisor) * person.mults.faction_rep * BitNodeMultipliers.FactionWorkRepGain;
}
diff --git a/src/Hacking.ts b/src/Hacking.ts
index 78308ecd9..a1026d679 100644
--- a/src/Hacking.ts
+++ b/src/Hacking.ts
@@ -1,10 +1,10 @@
import { BitNodeMultipliers } from "./BitNode/BitNodeMultipliers";
-import { Person } from "./PersonObjects/Person";
+import { Person as IPerson } from "./ScriptEditor/NetscriptDefinitions";
import { calculateIntelligenceBonus } from "./PersonObjects/formulas/intelligence";
import { Server } from "./Server/Server";
/** Returns the chance the person has to successfully hack a server */
-export function calculateHackingChance(server: Server, person: Person): number {
+export function calculateHackingChance(server: Server, person: IPerson): number {
const hackFactor = 1.75;
const difficultyMult = (100 - server.hackDifficulty) / 100;
const skillMult = hackFactor * person.skills.hacking;
@@ -28,7 +28,7 @@ export function calculateHackingChance(server: Server, person: Person): number {
* Returns the amount of hacking experience the person will gain upon
* successfully hacking a server
*/
-export function calculateHackingExpGain(server: Server, person: Person): number {
+export function calculateHackingExpGain(server: Server, person: IPerson): number {
const baseExpGain = 3;
const diffFactor = 0.3;
if (server.baseDifficulty == null) {
@@ -44,7 +44,7 @@ export function calculateHackingExpGain(server: Server, person: Person): number
* Returns the percentage of money that will be stolen from a server if
* it is successfully hacked (returns the decimal form, not the actual percent value)
*/
-export function calculatePercentMoneyHacked(server: Server, person: Person): number {
+export function calculatePercentMoneyHacked(server: Server, person: IPerson): number {
// Adjust if needed for balancing. This is the divisor for the final calculation
const balanceFactor = 240;
@@ -63,7 +63,7 @@ export function calculatePercentMoneyHacked(server: Server, person: Person): num
}
/** Returns time it takes to complete a hack on a server, in seconds */
-export function calculateHackingTime(server: Server, person: Person): number {
+export function calculateHackingTime(server: Server, person: IPerson): number {
const difficultyMult = server.requiredHackingSkill * server.hackDifficulty;
const baseDiff = 500;
@@ -82,14 +82,14 @@ export function calculateHackingTime(server: Server, person: Person): number {
}
/** Returns time it takes to complete a grow operation on a server, in seconds */
-export function calculateGrowTime(server: Server, person: Person): number {
+export function calculateGrowTime(server: Server, person: IPerson): number {
const growTimeMultiplier = 3.2; // Relative to hacking time. 16/5 = 3.2
return growTimeMultiplier * calculateHackingTime(server, person);
}
/** Returns time it takes to complete a weaken operation on a server, in seconds */
-export function calculateWeakenTime(server: Server, person: Person): number {
+export function calculateWeakenTime(server: Server, person: IPerson): number {
const weakenTimeMultiplier = 4; // Relative to hacking time
return weakenTimeMultiplier * calculateHackingTime(server, person);
diff --git a/src/Locations/ui/SpecialLocation.tsx b/src/Locations/ui/SpecialLocation.tsx
index 565242a47..88fac804b 100644
--- a/src/Locations/ui/SpecialLocation.tsx
+++ b/src/Locations/ui/SpecialLocation.tsx
@@ -43,11 +43,10 @@ type IProps = {
export function SpecialLocation(props: IProps): React.ReactElement {
const setRerender = useState(false)[1];
- const inBladeburner = Player.inBladeburner();
/** Click handler for Bladeburner button at Sector-12 NSA */
function handleBladeburner(): void {
- if (Player.inBladeburner()) {
+ if (Player.bladeburner) {
// Enter Bladeburner division
Router.toBladeburner();
} else if (
@@ -80,7 +79,7 @@ export function SpecialLocation(props: IProps): React.ReactElement {
if (!Player.canAccessBladeburner() || BitNodeMultipliers.BladeburnerRank === 0) {
return <>>;
}
- const text = inBladeburner ? "Enter Bladeburner Headquarters" : "Apply to Bladeburner Division";
+ const text = Player.bladeburner ? "Enter Bladeburner Headquarters" : "Apply to Bladeburner Division";
return (
<>
@@ -143,7 +142,7 @@ export function SpecialLocation(props: IProps): React.ReactElement {
}
return (
<>
-