mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-20 16:22:56 +02:00
e649adfef4
* 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>
34 lines
1.1 KiB
TypeScript
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);
|
|
}
|
|
}
|