diff --git a/src/Augmentation/AugmentationHelpers.js b/src/Augmentation/AugmentationHelpers.js index e8df221f5..9dec0c913 100644 --- a/src/Augmentation/AugmentationHelpers.js +++ b/src/Augmentation/AugmentationHelpers.js @@ -1991,12 +1991,14 @@ function resetAugmentation(newAugObject) { function applyAugmentation(aug, reapply=false) { Augmentations[aug.name].owned = true; + const augObj = Augmentations[aug.name]; + // Apply multipliers - for (const mult in aug.mults) { + for (const mult in augObj.mults) { if (Player[mult] == null) { console.warn(`Augmentation has unrecognized multiplier property: ${mult}`); } else { - Player[mult] *= aug.mults[mult]; + Player[mult] *= augObj.mults[mult]; } } diff --git a/src/PersonObjects/Person.ts b/src/PersonObjects/Person.ts index 1267909ec..39ffeeb92 100644 --- a/src/PersonObjects/Person.ts +++ b/src/PersonObjects/Person.ts @@ -137,8 +137,8 @@ export abstract class Person { /** * Augmentations */ - augmentations: string[] = []; - queuedAugmentations: string[] = []; + augmentations: IPlayerOwnedAugmentation[] = []; + queuedAugmentations: IPlayerOwnedAugmentation[] = []; /** * City that the person is in diff --git a/src/PersonObjects/Resleeving/Resleeve.ts b/src/PersonObjects/Resleeving/Resleeve.ts index 8bf14764b..98dca9a8e 100644 --- a/src/PersonObjects/Resleeving/Resleeve.ts +++ b/src/PersonObjects/Resleeving/Resleeve.ts @@ -31,9 +31,9 @@ export class Resleeve extends Person { // Get total base Augmentation cost for this re-sleeve let totalAugmentationCost: number = 0; for (let i = 0; i < this.augmentations.length; ++i) { - const aug: Augmentation | null = Augmentations[this.augmentations[i]]; + const aug: Augmentation | null = Augmentations[this.augmentations[i].name]; if (aug == null) { - console.error(`Could not find Augmentation ${this.augmentations[i]}`); + console.error(`Could not find Augmentation ${this.augmentations[i].name}`); continue; } totalAugmentationCost += aug!.baseCost; diff --git a/src/PersonObjects/Resleeving/Resleeving.ts b/src/PersonObjects/Resleeving/Resleeving.ts index d527a09d3..41cd4f20e 100644 --- a/src/PersonObjects/Resleeving/Resleeving.ts +++ b/src/PersonObjects/Resleeving/Resleeving.ts @@ -21,7 +21,7 @@ import { getRandomInt } from "../../../utils/helpers/getRandomInt"; // Executes the actual re-sleeve when one is purchased -export function resleeve(r: Resleeve, p: IPlayer) { +export function resleeve(r: Resleeve, p: IPlayer):void { // Set the player's exp p.hacking_exp = r.hacking_exp; p.strength_exp = r.strength_exp; @@ -36,7 +36,7 @@ export function resleeve(r: Resleeve, p: IPlayer) { p.augmentations.length = 0; for (let i = 0; i < r.augmentations.length; ++i) { - p.augmentations.push(new PlayerOwnedAugmentation(r.augmentations[i])); + p.augmentations.push(new PlayerOwnedAugmentation(r.augmentations[i].name)); } p.reapplyAllAugmentations(true); @@ -64,10 +64,14 @@ export function generateResleeves(): Resleeve[] { const baseNumAugs: number = Math.ceil((i + 1) / 2); const numAugs: number = getRandomInt(baseNumAugs, baseNumAugs + 2); for (let a = 0; a < numAugs; ++a) { + // We'll ignore Aug prerequisites for this const augKeys: string[] = Object.keys(Augmentations); - - r.augmentations.push(TODO); + const randKey: string = augKeys[getRandomInt(0, augKeys.length - 1)]; + const randAug: Augmentation | null = Augmentations[randKey]; + r.augmentations.push({name: randAug!.name, level: 1}); } + + ret.push(r); } return ret; diff --git a/src/PersonObjects/Resleeving/ResleevingUI.ts b/src/PersonObjects/Resleeving/ResleevingUI.ts new file mode 100644 index 000000000..ab7af3da7 --- /dev/null +++ b/src/PersonObjects/Resleeving/ResleevingUI.ts @@ -0,0 +1,19 @@ +/** + * Module for handling the Re-sleeving UI + */ +import { Resleeve } from "./Resleeve"; +import { generateResleeves, + resleeve } from "./Resleeving"; + +import { IMap } from "../../types"; + +import { numeralWrapper } from "../../ui/numeralFormat"; +import { Page, + routing } from "../../ui/navigationTracking"; + +import { createElement } from "../../../utils/uiHelpers/createElement"; +import { createOptionElement } from "../../../utils/uiHelpers/createOptionElement"; +import { getSelectValue } from "../../../utils/uiHelpers/getSelectData"; +import { removeChildrenFromElement } from "../../../utils/uiHelpers/removeChildrenFromElement"; +import { removeElement } from "../../../utils/uiHelpers/removeElement"; +import { removeElementById } from "../../../utils/uiHelpers/removeElementById"; diff --git a/src/Player.js b/src/Player.js index eb4658d9d..243952628 100644 --- a/src/Player.js +++ b/src/Player.js @@ -195,8 +195,9 @@ function PlayerObject() { this.bladeburner_analysis_mult = 1; //Field Analysis Only this.bladeburner_success_chance_mult = 1; - // Sleeves + // Sleeves & Re-sleeving this.sleeves = []; + this.resleeves = []; //bitnode this.bitNodeN = 1;