Files
bitburner-src/src/DarkNet/effects/SaveLoad.ts
T
Michael Ficocelli e649adfef4 DARKNET: Add improved challenge achievement for BN15 (#2479)
* DARKNET: Add improved challenge achievement for BN15

* DARKNET: Adjust heartbleed check location for achievement

* Fix wrong achievement data and update svg

* DARKNET: Fix styling of documentation link

* lint

---------

Co-authored-by: CatLover <152669316+catloversg@users.noreply.github.com>
2026-02-07 18:28:55 -08:00

34 lines
1.1 KiB
TypeScript

import { DarknetState } from "../models/DarknetState";
import { assertObject } from "../../utils/TypeAssertion";
export type DarknetSaveFormat = {
storedCycles: number;
hasUsedHeartbleed: boolean;
};
export function getDarkNetSave(): DarknetSaveFormat {
return {
storedCycles: Math.floor(DarknetState.storedCycles),
hasUsedHeartbleed: DarknetState.hasUsedHeartbleed,
};
}
export function loadDarkNet(saveString: unknown): void {
if (saveString == null || typeof saveString !== "string" || saveString === "") {
return;
}
try {
const parsedData: unknown = JSON.parse(saveString);
assertObject(parsedData);
const { storedCycles, hasUsedHeartbleed } = parsedData;
if (typeof storedCycles !== "number" || !Number.isFinite(storedCycles)) {
throw new Error(`Invalid storedCycles: ${storedCycles}`);
}
DarknetState.storedCycles = storedCycles < 0 ? 0 : storedCycles;
DarknetState.hasUsedHeartbleed = Boolean(hasUsedHeartbleed);
} catch (error) {
console.error(error);
console.error("Invalid DarkNet data:", saveString);
}
}