diff --git a/src/Augmentation/AugmentationHelpers.tsx b/src/Augmentation/AugmentationHelpers.tsx index dd5b106e5..2b0b51093 100644 --- a/src/Augmentation/AugmentationHelpers.tsx +++ b/src/Augmentation/AugmentationHelpers.tsx @@ -85,9 +85,17 @@ function applyAugmentation(aug: IPlayerOwnedAugmentation, reapply = false): void Player.applyEntropy(Player.entropy); } + // Special logic for NeuroFlux Governor + const ownedNfg = Player.augmentations.find((pAug) => pAug.name === AugmentationNames.NeuroFluxGovernor); + if (aug.name === AugmentationNames.NeuroFluxGovernor && !reapply && ownedNfg) { + ownedNfg.level = aug.level; + return; + } + // Push onto Player's Augmentation list if (!reapply) { const ownedAug = new PlayerOwnedAugmentation(aug.name); + Player.augmentations.push(ownedAug); } } diff --git a/src/Constants.ts b/src/Constants.ts index 8f16dc794..2d1814adc 100644 --- a/src/Constants.ts +++ b/src/Constants.ts @@ -88,7 +88,7 @@ export const CONSTANTS: { LatestUpdate: string; } = { VersionString: "1.6.4", - VersionNumber: 16, + VersionNumber: 17, // Speed (in ms) at which the main loop is updated _idleSpeed: 200, diff --git a/src/SaveObject.tsx b/src/SaveObject.tsx index 5367ad25c..f6943d774 100755 --- a/src/SaveObject.tsx +++ b/src/SaveObject.tsx @@ -414,6 +414,26 @@ function evaluateVersionCompatibility(ver: string | number): void { } } } + + // Fix bugged NFG accumulation in owned augmentations + if (ver < 17) { + let ownedNFGs = [...Player.augmentations]; + ownedNFGs = ownedNFGs.filter((aug) => aug.name === AugmentationNames.NeuroFluxGovernor); + const newNFG = new PlayerOwnedAugmentation(AugmentationNames.NeuroFluxGovernor); + newNFG.level = 0; + + for (const nfg of ownedNFGs) { + newNFG.level += nfg.level; + } + + Player.augmentations = [ + ...Player.augmentations.filter((aug) => aug.name !== AugmentationNames.NeuroFluxGovernor), + newNFG, + ]; + + Player.reapplyAllAugmentations(true); + Player.reapplyAllSourceFiles(); + } } }