Added a few formulas to calculate work gains

This commit is contained in:
Olivier Gagnon
2022-08-17 14:32:52 -04:00
parent 3217f53717
commit a8bef50ef5
29 changed files with 391 additions and 48 deletions
+2 -14
View File
@@ -8,14 +8,9 @@ import { Faction } from "../Faction/Faction";
import { applyWorkStats, scaleWorkStats, WorkStats } from "./WorkStats";
import { dialogBoxCreate } from "../ui/React/DialogBox";
import { Reputation } from "../ui/React/Reputation";
import {
getFactionFieldWorkRepGain,
getFactionSecurityWorkRepGain,
getHackingWorkRepGain,
} from "../PersonObjects/formulas/reputation";
import { CONSTANTS } from "../Constants";
import { AugmentationNames } from "../Augmentation/data/AugmentationNames";
import { calculateFactionExp } from "./formulas/Faction";
import { calculateFactionExp, calculateFactionRep } from "./formulas/Faction";
import { FactionWorkType } from "./data/FactionWorkType";
interface FactionWorkParams {
@@ -43,18 +38,11 @@ export class FactionWork extends Work {
}
getReputationRate(player: IPlayer): number {
const faction = this.getFaction();
const repFormulas = {
[FactionWorkType.HACKING]: getHackingWorkRepGain,
[FactionWorkType.FIELD]: getFactionFieldWorkRepGain,
[FactionWorkType.SECURITY]: getFactionSecurityWorkRepGain,
};
const rep = repFormulas[this.factionWorkType](player, faction);
let focusBonus = 1;
if (!player.hasAugmentation(AugmentationNames.NeuroreceptorManager)) {
focusBonus = player.focus ? 1 : CONSTANTS.BaseFocusBonus;
}
return rep * focusBonus;
return calculateFactionRep(player, this.factionWorkType, this.getFaction().favor) * focusBonus;
}
getExpRates(player: IPlayer): WorkStats {