From cf090578362b94440c1b6c7b36ed83a957ef303f Mon Sep 17 00:00:00 2001 From: Mughur Date: Sun, 28 Aug 2022 13:11:59 +0300 Subject: [PATCH] BB action rewards now tied to who does the action --- src/Bladeburner/Bladeburner.tsx | 10 +++++----- src/Bladeburner/IBladeburner.ts | 2 +- src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts | 3 ++- src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Bladeburner/Bladeburner.tsx b/src/Bladeburner/Bladeburner.tsx index c57e47beb..1b54b0a3d 100644 --- a/src/Bladeburner/Bladeburner.tsx +++ b/src/Bladeburner/Bladeburner.tsx @@ -994,7 +994,7 @@ export class Bladeburner implements IBladeburner { * @param action(Action obj) - Derived action class * @param success(bool) - Whether action was successful */ - getActionStats(action: IAction, success: boolean): ITaskTracker { + getActionStats(action: IAction, person: IPerson, success: boolean): ITaskTracker { const difficulty = action.getDifficulty(); /** @@ -1005,7 +1005,7 @@ export class Bladeburner implements IBladeburner { Math.pow(difficulty, BladeburnerConstants.DiffMultExponentialFactor) + difficulty / BladeburnerConstants.DiffMultLinearFactor; - const time = this.actionTimeToComplete; + const time = action.getActionTime(this, person); const successMult = success ? 1 : 0.5; const unweightedGain = time * BladeburnerConstants.BaseStatGain * successMult * difficultyMult; @@ -1283,7 +1283,7 @@ export class Bladeburner implements IBladeburner { // Process Contract/Operation success/failure if (action.attempt(this, person)) { - retValue = this.getActionStats(action, true); + retValue = this.getActionStats(action, person, true); ++action.successes; --action.count; @@ -1323,7 +1323,7 @@ export class Bladeburner implements IBladeburner { } isOperation ? this.completeOperation(true, player) : this.completeContract(true, actionIdent); } else { - retValue = this.getActionStats(action, false); + retValue = this.getActionStats(action, person, false); ++action.failures; let loss = 0, damage = 0; @@ -1386,7 +1386,7 @@ export class Bladeburner implements IBladeburner { let teamLossMax; if (action.attempt(this, person)) { - retValue = this.getActionStats(action, true); + retValue = this.getActionStats(action, person, true); action.count = 0; this.blackops[action.name] = true; let rankGain = 0; diff --git a/src/Bladeburner/IBladeburner.ts b/src/Bladeburner/IBladeburner.ts index cb78d3abc..f8113ef1c 100644 --- a/src/Bladeburner/IBladeburner.ts +++ b/src/Bladeburner/IBladeburner.ts @@ -116,6 +116,6 @@ export interface IBladeburner { calculateMaxStamina(player: IPlayer): void; create(): void; process(router: IRouter, player: IPlayer): void; - getActionStats(action: IAction, success: boolean): ITaskTracker; + getActionStats(action: IAction, person: IPerson, success: boolean): ITaskTracker; sleeveSupport(joining: boolean): void; } diff --git a/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts b/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts index c4478e361..198357a98 100644 --- a/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts +++ b/src/PersonObjects/Sleeve/Work/SleeveBladeburnerWork.ts @@ -61,7 +61,8 @@ export class SleeveBladeburnerWork extends Work { if (!exp) throw new Error(`Somehow there was no exp for action ${this.actionType} ${this.actionName}`); applySleeveGains(player, sleeve, exp, 1); } - if (retValue.money > 0) player.gainMoney(retValue.money, "sleeves"); + player.gainMoney(retValue.money, "sleeves"); + player.gainStats(retValue); this.cyclesWorked -= this.cyclesNeeded(player, sleeve); } return 0; diff --git a/src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts b/src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts index 000f7b881..30aa8c847 100644 --- a/src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts +++ b/src/PersonObjects/Sleeve/Work/SleeveCrimeWork.ts @@ -64,7 +64,7 @@ export class SleeveCrimeWork extends Work { APICopy(): Record { return { type: this.type, - crimeType : this.crimeType, + crimeType: this.crimeType, }; }