diff --git a/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts b/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts index d8eb8a165..413d4bc37 100644 --- a/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts +++ b/src/PersonObjects/Sleeve/Work/SleeveFactionWork.ts @@ -8,6 +8,7 @@ import { Factions } from "../../../Faction/Factions"; import { calculateFactionExp, calculateFactionRep } from "../../../Work/Formulas"; import { Faction } from "../../../Faction/Faction"; import { scaleWorkStats, WorkStats } from "../../../Work/WorkStats"; +import { findEnumMember } from "../../../utils/helpers/enum"; interface SleeveFactionWorkParams { factionWorkType: FactionWorkType; @@ -65,7 +66,10 @@ export class SleeveFactionWork extends Work { /** Initializes a FactionWork object from a JSON save state. */ static fromJSON(value: IReviverValue): SleeveFactionWork { - return Generic_fromJSON(SleeveFactionWork, value.data); + const factionWork = Generic_fromJSON(SleeveFactionWork, value.data); + factionWork.factionWorkType = + findEnumMember(FactionWorkType, factionWork.factionWorkType) ?? FactionWorkType.hacking; + return factionWork; } } diff --git a/src/Work/CrimeWork.ts b/src/Work/CrimeWork.ts index 3bc26bcfa..f1821dd3f 100644 --- a/src/Work/CrimeWork.ts +++ b/src/Work/CrimeWork.ts @@ -1,7 +1,7 @@ import { Reviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from "../utils/JSONReviver"; import { Crime } from "../Crime/Crime"; import { CONSTANTS } from "../Constants"; -import { determineCrimeSuccess } from "../Crime/CrimeHelpers"; +import { determineCrimeSuccess, findCrime } from "../Crime/CrimeHelpers"; import { Crimes } from "../Crime/Crimes"; import { Player } from "@player"; import { dialogBoxCreate } from "../ui/React/DialogBox"; @@ -100,7 +100,9 @@ export class CrimeWork extends Work { /** Initializes a CrimeWork object from a JSON save state. */ static fromJSON(value: IReviverValue): CrimeWork { - return Generic_fromJSON(CrimeWork, value.data); + const crimeWork = Generic_fromJSON(CrimeWork, value.data); + crimeWork.crimeType = findCrime(crimeWork.crimeType)?.type ?? CrimeType.shoplift; + return crimeWork; } } diff --git a/src/Work/FactionWork.tsx b/src/Work/FactionWork.tsx index 5d0eaf201..a9a74bd33 100644 --- a/src/Work/FactionWork.tsx +++ b/src/Work/FactionWork.tsx @@ -12,6 +12,7 @@ import { CONSTANTS } from "../Constants"; import { AugmentationNames } from "../Augmentation/data/AugmentationNames"; import { calculateFactionExp, calculateFactionRep } from "./Formulas"; import { FactionWorkType } from "../utils/enums"; +import { findEnumMember } from "../utils/helpers/enum"; interface FactionWorkParams { singularity: boolean; @@ -93,7 +94,8 @@ export class FactionWork extends Work { /** Initializes a FactionWork object from a JSON save state. */ static fromJSON(value: IReviverValue): FactionWork { const factionWork = Generic_fromJSON(FactionWork, value.data); - factionWork.factionWorkType = factionWork.factionWorkType.toLowerCase() as FactionWorkType; + factionWork.factionWorkType = + findEnumMember(FactionWorkType, factionWork.factionWorkType) ?? FactionWorkType.hacking; return factionWork; } }