diff --git a/src/Augmentation/AugmentationHelpers.ts b/src/Augmentation/AugmentationHelpers.ts index 25e5869cf..d8c3159ff 100644 --- a/src/Augmentation/AugmentationHelpers.ts +++ b/src/Augmentation/AugmentationHelpers.ts @@ -12,6 +12,7 @@ import { Router } from "../ui/GameRoot"; import { Page } from "../ui/Router"; import { mergeMultipliers } from "../PersonObjects/Multipliers"; import { currentNodeMults } from "../BitNode/BitNodeMultipliers"; +import { prestigeWorkerScripts } from "../NetscriptWorker"; const soaAugmentationNames = [ AugmentationName.BeautyOfAphrodite, @@ -67,6 +68,10 @@ export function installAugmentations(force?: boolean): boolean { dialogBoxCreate("You have not purchased any Augmentations to install!"); return false; } + + // We must kill all scripts before installing augmentations. + prestigeWorkerScripts(); + let augmentationList = ""; let nfgIndex = -1; for (let i = Player.queuedAugmentations.length - 1; i >= 0; i--) { @@ -93,7 +98,7 @@ export function installAugmentations(force?: boolean): boolean { augmentationList += aug.name + level + "\n"; } Player.queuedAugmentations = []; - if (!force) { + if (!force && augmentationList !== "") { dialogBoxCreate( "You slowly drift to sleep as scientists put you under in order " + "to install the following Augmentations:\n" + diff --git a/src/Prestige.ts b/src/Prestige.ts index 5fa7c7ef3..4efa6a3b5 100644 --- a/src/Prestige.ts +++ b/src/Prestige.ts @@ -48,6 +48,9 @@ function setInitialExpForPlayer() { // Prestige by purchasing augmentation export function prestigeAugmentation(): void { + // We must kill all scripts before doing anything else. + prestigeWorkerScripts(); + initBitNodeMultipliers(); // Maintain invites to factions with the 'keepOnInstall' flag, and rumors about others @@ -64,9 +67,6 @@ export function prestigeAugmentation(): void { Player.prestigeAugmentation(); Go.prestigeAugmentation(); - // Delete all Worker Scripts objects - prestigeWorkerScripts(); - const homeComp = Player.getHomeComputer(); // Delete all servers except home computer prestigeAllServers(); @@ -188,13 +188,14 @@ export function prestigeAugmentation(): void { // Prestige by destroying Bit Node and gaining a Source File export function prestigeSourceFile(isFlume: boolean): void { + // We must kill all scripts before doing anything else. + prestigeWorkerScripts(); + initBitNodeMultipliers(); Player.prestigeSourceFile(); Go.prestigeSourceFile(); - prestigeWorkerScripts(); // Delete all Worker Scripts objects - const homeComp = Player.getHomeComputer(); // Stop a Terminal action if there is one. diff --git a/src/RedPill.tsx b/src/RedPill.tsx index 7f274d1b7..2b566b4d9 100644 --- a/src/RedPill.tsx +++ b/src/RedPill.tsx @@ -9,6 +9,7 @@ import { Router } from "./ui/GameRoot"; import { Page } from "./ui/Router"; import { prestigeSourceFile } from "./Prestige"; import { getDefaultBitNodeOptions, setBitNodeOptions } from "./BitNode/BitNodeUtils"; +import { prestigeWorkerScripts } from "./NetscriptWorker"; function giveSourceFile(bitNodeNumber: number): void { const sourceFileKey = "SourceFile" + bitNodeNumber.toString(); @@ -56,6 +57,9 @@ export function enterBitNode( newBitNode: number, bitNodeOptions: BitNodeOptions, ): void { + // We must kill all scripts before setting up BitNode data and performing the prestige. + prestigeWorkerScripts(); + if (!isFlume) { giveSourceFile(destroyedBitNode); } else if (Player.sourceFileLvl(5) === 0 && newBitNode !== 5) {