家族模拟器首版:修仙/经营/战斗/外交/叙事全套系统 - Electron + React + TS + MetonaSqlark(aria+OPFS) - 水墨中国风 UI - 引擎种子随机、确定性可回放 - 19 项单元测试、端到端冒烟验证
25 lines
772 B
TypeScript
25 lines
772 B
TypeScript
import { GameState, SaveMeta } from '../game/types/domain'
|
|
import { getSlotManager } from '../game/storage/db'
|
|
|
|
export function metaFromState(state: GameState, slot: number): SaveMeta {
|
|
const alive = Object.values(state.members).filter((c) => c.alive).length
|
|
return {
|
|
slot,
|
|
surname: state.family.surname,
|
|
name: state.family.name,
|
|
estate: state.family.estate,
|
|
year: state.year,
|
|
month: state.month,
|
|
generation: state.family.generation,
|
|
members: alive,
|
|
reputation: state.family.reputation,
|
|
updatedAt: new Date().toISOString(),
|
|
version: state.schemaVersion
|
|
}
|
|
}
|
|
|
|
export async function updateSlotMeta(slot: number, meta: SaveMeta): Promise<void> {
|
|
const manager = getSlotManager()
|
|
await manager.updateSlotMeta(slot, meta)
|
|
}
|