v0.1.1: 养成闭环 + 管理自主 + 存档安全
- 指婚/续弦:成员详情可主动找人结亲(血亲自动排除、鳏寡可再醮) - 装备 UI:法宝从府库装备/替换,战力实时反馈 - 御敌点将:劫掠事件可自选迎战阵容(默认 Top4 可改) - 宗祠祭祖:每两年一次,灵石150 → 声望+6/全族修为小升 - 回档时间轴:每季快照列表,一键回卷(回卷前自动保当前档) - 战报匣子:史书页全文战报留存可翻阅 - 年度族簿纸笺:每年初弹收支/人丁/战力简报 - 媒人提示条 + 寻衅一年冷却 + 出生率与劫掠频率微调 - 单测 19→29(storage mock roundtrip/回档/指婚血亲/祭祖/寻衅/装备/账本)
This commit is contained in:
@@ -8,6 +8,9 @@ export default function SettingsPanel() {
|
||||
const exportSave = useGameStore((s) => s.exportSave)
|
||||
const importSave = useGameStore((s) => s.importSave)
|
||||
const refreshSlots = useGameStore((s) => s.refreshSlots)
|
||||
const refreshSnapshots = useGameStore((s) => s.refreshSnapshots)
|
||||
const restoreSnapshot = useGameStore((s) => s.restoreSnapshot)
|
||||
const snapshots = useGameStore((s) => s.snapshots)
|
||||
const go = useGameStore((s) => s.go)
|
||||
const setSpeed = useGameStore((s) => s.setSpeed)
|
||||
if (!world) return null
|
||||
@@ -19,6 +22,35 @@ export default function SettingsPanel() {
|
||||
<span>手动存点(当前第 {slot} 档)</span>
|
||||
<button className="btn btn-sm" onClick={() => void saveNow()}>立即保存</button>
|
||||
</div>
|
||||
<div className="set-row">
|
||||
<span>回档时间轴(每季自动快照,最近12份)</span>
|
||||
<button className="btn btn-sm" onClick={() => void refreshSnapshots()}>刷新列表</button>
|
||||
</div>
|
||||
{snapshots.length > 0 ? (
|
||||
<div style={{ maxWidth: 660, margin: '6px 0 10px' }}>
|
||||
{snapshots.slice(0, 12).map((sn, i) => (
|
||||
<div key={sn.id} className="set-row" style={{ padding: '6px 4px' }}>
|
||||
<span className={sn.year === world.state.year ? 'gold' : ''}>
|
||||
{sn.year}年{sn.month}月{sn.label !== '自动' ? ` · ${sn.label}` : ''}
|
||||
{sn.year === world.state.year && sn.month === world.state.month ? '(当前)' : ''}
|
||||
</span>
|
||||
<button
|
||||
className="btn btn-sm"
|
||||
disabled={sn.year === world.state.year && sn.month === world.state.month}
|
||||
onClick={() => {
|
||||
if (window.confirm(`回卷到 ${sn.year}年${sn.month}月?当前进度会先保存为回档前夕。此操作不可撤销。`)) {
|
||||
void restoreSnapshot(sn.id).then(() => bump())
|
||||
}
|
||||
}}
|
||||
>
|
||||
回卷
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
) : (
|
||||
<div className="dim2" style={{ marginBottom: 8 }}>尚未生成快照(推进时间或保存后自动出现)</div>
|
||||
)}
|
||||
<div className="set-row">
|
||||
<span>导出存档(JSON 文件)</span>
|
||||
<button className="btn btn-sm" onClick={() => void exportSave()}>导出</button>
|
||||
|
||||
Reference in New Issue
Block a user