技术说明
技术栈
- 客户端框架:WPF · WPF-UI(Fluent 风格现代化外观),仅 Windows 平台。
- 游戏 AppID:
2868840(《杀戮尖塔 2》,Steam)。
- 复盘数据源:Steam 存档目录下的
.run 文件(当前主要支持 schema_version = 9)。
- 生涯权威数据:建筑师伤害与各职业累计数据读自游戏本体
progress.save,无需 mod。
Pro 模式 Mod
- Mod 名称:
SnL2.EliteLogger,基于 Harmony 补丁注入,随软件附带,由设置页一键部署 / 卸载。
- 捕获范围:所有战斗(普通怪 / 精英 / Boss)的逐回合数据——抽牌、打牌、伤害、护甲、能力(Power)变化。
- 战斗日志:按
run_id 分组保存,与 .run 一一对应;同时写 Steam Cloud 路径与本地 AppData 路径,Steam Cloud 未同步时自动回落到 AppData 读取,避免数据丢失。
- 状态管理:内部以状态机管理「未启用 / 已安装 / 升级中 / 出错」等场景,Mod 的
VERSION.txt 与软件本体版本号保持一致。
- Hook 健康检查(v0.3.5 起):初始化改为逐类型应用 Harmony 补丁,单个 hook 失败会被隔离、不影响其余 hook;关键回合边界 hook 若 patch 失败会写入战斗日志的
anomalies 字段。软件读取日志时结合结构启发式(单回合动作数/抽牌数异常且无敌方行动)判断数据是否可信,在 UI 上给出「数据存疑」提示,用于应对游戏本体更新导致 hook 目标改名等兼容性问题。
本地存储与安全
- 设置文件:以
settings.json 持久化,采用原子写入(断电 / 崩溃不会写出半截文件);检测到损坏时先备份为 settings.json.corrupt 再回退默认。
- AI API Key:使用 Windows DPAPI 加密保存在本地,不上传任何服务器。
- 解析缓存:
.run 解析结果持久化到本地缓存,再次进入战斗页秒开;仅新增 / 修改的对局会重新解析。
- 外链白名单:新闻 / 公告里的链接仅允许 https 协议下的可信域名(GitHub 官方域及国内镜像),异常链接会被拦截并提示,不交给系统执行。
版本与更新
- 版本检查:启动时静默比对 GitHub 托管的
version.json,支持远程推送更新提示。
- 发布渠道:GitHub Releases(仓库
iRyougi/SaveandLoad2-Public,仅作发布与版本管理)。
- 开发:iRyougi。软件本体闭源,为无偿软件;贡献意向可发邮件至
iryougi@iryougi.com。