Add Augmentation unique to Grafting

This commit is contained in:
nickofolas 2022-04-07 00:48:39 -05:00
parent 7d4bf90b40
commit 314e37430d
5 changed files with 29 additions and 1 deletions

@ -1484,6 +1484,19 @@ export const initGeneralAugmentations = (): Augmentation[] => [
),
factions: [FactionNames.TianDiHui],
}),
// Grafting-exclusive Augmentation
new Augmentation({
name: AugmentationNames.CongruityImplant,
repCost: 0,
moneyCost: 150e12,
info:
"Developed by a pioneer in Grafting research, this implant " +
"generates pulses of stability which seem to have a nullifying " +
"effect versus the Entropy virus.",
stats: <>This Augmentation removes the Entropy virus, and prevents it from affecting you again.</>,
factions: [],
}),
];
export const initBladeburnerAugmentations = (): Augmentation[] => [

@ -141,6 +141,11 @@ function applyAugmentation(aug: IPlayerOwnedAugmentation, reapply = false): void
}
}
// Special logic for Congruity Implant
if (aug.name === AugmentationNames.CongruityImplant) {
Player.entropy = 0;
}
// Push onto Player's Augmentation list
if (!reapply) {
const ownedAug = new PlayerOwnedAugmentation(aug.name);

@ -91,6 +91,7 @@ export enum AugmentationNames {
BionicArms = "Bionic Arms",
SNA = "Social Negotiation Assistant (S.N.A)",
HydroflameLeftArm = "Hydroflame Left Arm",
CongruityImplant = "nickofolas Congruity Implant",
EsperEyewear = "EsperTech Bladeburner Eyewear",
EMS4Recombination = "EMS-4 Recombination",
OrionShoulder = "ORION-MKIV Shoulder",

@ -1,6 +1,7 @@
import { sum } from "lodash";
import { Augmentation } from "../../Augmentation/Augmentation";
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
import { CONSTANTS } from "../../Constants";
export interface IConstructorParams {
@ -18,6 +19,11 @@ export class GraftableAugmentation {
}
get cost(): number {
// Sell the Grafting-exclusive Aug at its starting price only
if (this.augmentation.name === AugmentationNames.CongruityImplant) {
return this.augmentation.startingCost;
}
return this.augmentation.startingCost * CONSTANTS.AugmentationGraftingCostMult;
}

@ -1371,7 +1371,10 @@ export function finishGraftAugmentationWork(this: IPlayer, cancelled: boolean):
);
applyAugmentation(Augmentations[augName]);
this.entropy += 1;
if (!this.hasAugmentation(AugmentationNames.CongruityImplant)) {
this.entropy += 1;
}
this.applyEntropy(this.entropy);
} else {
dialogBoxCreate(`You cancelled the crafting of ${augName}.<br>Your money was not returned to you.`);