create backup of original worldstate

This commit is contained in:
ny 2025-06-20 14:01:51 +08:00
parent 82c0a60afa
commit cef55a78c9

View File

@ -1493,6 +1493,8 @@ const nightwaveTagToSeason: Record<string, number> = {
RadioLegionSyndicate: 0 // The Wolf of Saturn Six RadioLegionSyndicate: 0 // The Wolf of Saturn Six
}; };
type AnyObj = { [key: string]: object | Array<object> | string | number | boolean };
const staticWorldStateBackup: AnyObj = structuredClone(staticWorldState);
let syncWorldStateTimer: NodeJS.Timeout | null = null; let syncWorldStateTimer: NodeJS.Timeout | null = null;
export const syncWorldState = async (): Promise<void> => { export const syncWorldState = async (): Promise<void> => {
@ -1528,7 +1530,6 @@ export const syncWorldState = async (): Promise<void> => {
logger.error("Invalid world state sync response", { data }); logger.error("Invalid world state sync response", { data });
return; return;
} }
type AnyObj = { [key: string]: object | Array<object> | string | number | boolean };
const staticWorldState_ = staticWorldState as AnyObj; const staticWorldState_ = staticWorldState as AnyObj;
const data_ = data as AnyObj; const data_ = data as AnyObj;
@ -1547,9 +1548,9 @@ export const syncWorldState = async (): Promise<void> => {
case "Events": case "Events":
{ {
const remoteValue = data_[name] as Array<object>; const remoteValue = data_[name] as Array<object>;
const localValue = staticWorldState_[name] as Array<object>; const localValue = staticWorldStateBackup[name] as Array<object>;
if (Array.isArray(remoteValue) && Array.isArray(localValue)) { if (Array.isArray(remoteValue) && Array.isArray(localValue)) {
localValue.push(...remoteValue); staticWorldState_[name] = localValue.concat(remoteValue);
} }
} }
break; break;