Files

15 lines
758 B
Plaintext

flowchart TD
command["接收玩家命令"] --> clone["复制当前 RunState"]
clone --> resolve["在副本消费 RNG 并完整结算"]
resolve --> validate{"不变量通过?"}
validate -- 否 --> rollback["丢弃副本并记录异常"]
validate -- 是 --> tx["提交事务与 RunState"]
tx --> save["序列化 Checkpoint + checksum"]
save --> atomic["写临时槽并原子替换主槽"]
atomic --> render["通知表现层"]
crash["刷新/崩溃/重新打开"] --> load["读取主槽;失败则读备份槽"]
load --> verify{"版本和 checksum 有效?"}
verify -- 否 --> newRun["提示存档损坏并开始新局"]
verify -- 是 --> dedupe["恢复已提交 transactionId 集合"]
dedupe --> resume["从最近安全 phase 恢复"]