diff --git a/src/BitNode/BitNodeUtils.ts b/src/BitNode/BitNodeUtils.ts index 4fe87a1ad..e36957145 100644 --- a/src/BitNode/BitNodeUtils.ts +++ b/src/BitNode/BitNodeUtils.ts @@ -81,3 +81,16 @@ export function setBitNodeOptions(bitNodeOptions: BitNodeOptions): void { Object.assign(Player.bitNodeOptions, bitNodeOptions); } + +/** + * This function only sets the backdoorInstalled flag of the WD server. The caller must call Router.toPage() to route + * the UI to the BitVerse page. Importing Router from src\ui\GameRoot.tsx brings too many unnecessary dependencies to + * this utility file. + */ +export function finishBitNode() { + const wd = GetServer(SpecialServers.WorldDaemon); + if (!(wd instanceof Server)) { + throw new Error("WorldDaemon is not a normal server. This is a bug. Please contact developers."); + } + wd.backdoorInstalled = true; +} diff --git a/src/Bladeburner/ui/BlackOpPage.tsx b/src/Bladeburner/ui/BlackOpPage.tsx index 08e93e5fb..35d16be7b 100644 --- a/src/Bladeburner/ui/BlackOpPage.tsx +++ b/src/Bladeburner/ui/BlackOpPage.tsx @@ -8,23 +8,12 @@ import { Router } from "../../ui/GameRoot"; import { Page } from "../../ui/Router"; import { CorruptibleText } from "../../ui/React/CorruptibleText"; import { blackOpsArray } from "../data/BlackOperations"; -import { GetServer } from "../../Server/AllServers"; -import { SpecialServers } from "../../Server/data/SpecialServers"; -import { Server } from "../../Server/Server"; +import { finishBitNode } from "../../BitNode/BitNodeUtils"; interface BlackOpPageProps { bladeburner: Bladeburner; } -function finishBitNode() { - const wd = GetServer(SpecialServers.WorldDaemon); - if (!(wd instanceof Server)) { - throw new Error("WorldDaemon is not a normal server. This is a bug. Please contact developers."); - } - wd.backdoorInstalled = true; - Router.toPage(Page.BitVerse, { flume: false, quick: false }); -} - export function BlackOpPage({ bladeburner }: BlackOpPageProps): React.ReactElement { const blackOperations = blackOpsArray.slice(0, bladeburner.numBlackOpsComplete + 1).reverse(); @@ -46,7 +35,13 @@ export function BlackOpPage({ bladeburner }: BlackOpPageProps): React.ReactEleme Unaffected by Charisma. {bladeburner.numBlackOpsComplete >= blackOpsArray.length ? ( - ) : ( diff --git a/src/DevMenu/ui/General.tsx b/src/DevMenu/ui/General.tsx index 08e41cf76..7ac5ab814 100644 --- a/src/DevMenu/ui/General.tsx +++ b/src/DevMenu/ui/General.tsx @@ -25,6 +25,7 @@ import { checkForMessagesToSend } from "../../Message/MessageHelpers"; import { getEnumHelper } from "../../utils/EnumHelper"; import { formatRam } from "../../ui/formatNumber"; import { resetGangs } from "../../Gang/AllGangs"; +import { finishBitNode } from "../../BitNode/BitNodeUtils"; export function General({ parentRerender }: { parentRerender: () => void }): React.ReactElement { const rerender = useRerender(400); @@ -57,8 +58,14 @@ export function General({ parentRerender }: { parentRerender: () => void }): Rea // Node-clearing functions const quickB1tFlum3 = () => Router.toPage(Page.BitVerse, { flume: true, quick: true }); const b1tflum3 = () => Router.toPage(Page.BitVerse, { flume: true, quick: false }); - const quickHackW0r1dD43m0n = () => Router.toPage(Page.BitVerse, { flume: false, quick: true }); - const hackW0r1dD43m0n = () => Router.toPage(Page.BitVerse, { flume: false, quick: false }); + const quickHackW0r1dD43m0n = () => { + finishBitNode(); + Router.toPage(Page.BitVerse, { flume: false, quick: true }); + }; + const hackW0r1dD43m0n = () => { + finishBitNode(); + Router.toPage(Page.BitVerse, { flume: false, quick: false }); + }; // Corp functions const createCorporation = () => {