CHANGELOG
📜 更新日志
v1.8.3 (代码优化与修复)
- 优化:调整网络组件初始化时机,避免在非必要情况下过早创建 PhotonView。
- 修复:解决某些情况下因网络组件未就绪导致的潜在 RPC 调用问题。
- 兼容性:完全兼容 v1.8.2,功能逻辑不变。
v1.8.2 (多人同步 + 局间随机种子)
- 核心新增:多人游戏支持!所有玩家的价格随机化结果一致,配置由主机强制统一。
- 局间变化:每局开始时会根据关卡种子混入随机计算,同一物品在不同关卡中价格倍率不同,增加重复可玩性。
- 同步机制:
- 主机在关卡开始时通过 RPC 广播配置(倍率、黑白名单等)和种子。
- 客户端收到后覆盖本地配置,确保计算一致性。
- 新玩家中途加入时会自动收到当前配置和种子。
- 性能优化:沿用确定性随机算法,无需传输价格值,零网络开销。
- 兼容性:完全兼容 v1.8.1 的单人模式;多人游戏需所有玩家安装此模组。
v1.8.1 (文档更新)
- 文档:在 README 中新增“推荐搭配的模组”章节,列出用户收集整理的可一起使用的 100+ 款模组,并按主题分类。
- 兼容性:在功能特点中明确说明与 Empress Currency 同时使用互不影响。
v1.8.0 (最终稳定版 - 独立重构)
- 核心基线:基于 v1.7.0 的稳定架构,彻底移除所有外部依赖(AdvancedREPO.Config 及其 Reloaded 版本)。
- 抓取时机:回归 抓取时随机化,采用验证成功的补丁签名
GrabStarted(PhysGrabber player),确保价格稳定生效。 - 配置系统:改用 BepInEx 原生配置,支持 REPOConfig 游戏内编辑,无需额外库。
- 性能优化:保留反射缓存机制,加入
modifiedItemIDs确保每个物品只随机一次。 - 代码精简:吸收 v1.7.x 实验分支的经验,选择最简洁稳定的方案。
v1.7.x (实验分支 - 未公开发布)
这一系列版本记录了从 v1.7.0 到 v1.8.0 之间的技术探索,均未公开发布:
- v1.7.3:尝试公共化访问字段,因 DLL 兼容性问题放弃。
- v1.7.4:回退到反射,继续使用 AdvancedREPO.Config Reloaded。
- v1.7.5:尝试将配置同步代码内嵌到模组中。
- v1.7.6:尝试生成时随机化(Awake),被游戏覆盖。
- v1.7.7:尝试生成时随机化延迟帧(Start),效果不稳定。
- v1.7.8:回归抓取时随机化,修正补丁签名,验证成功。
- v1.7.9:优化抓取逻辑,为最终版做准备。
v1.7.2 (文档调整)
- 新增:将抖音群链接提前至 README 靠前位置,并添加“我是代码新手”声明。
- 文档:优化文档结构,提高可读性。
- 兼容性:完全兼容 v1.7.1,未改动任何功能代码。
v1.7.1 (文档调整)
- 更新:更新文档说明,仅文档调整,功能代码与 v1.7.0 完全相同。
v1.7.0 (新增公开 API)
- 新增:公开 API
RandomValueAPI,包含OnItemRandomized事件和GetItemPrice方法。 - 优化:内部代码整理,原有功能完全不变。
- 兼容性:完全兼容 v1.6.3 的所有功能。
v1.6.3
- 移除:不再依赖 REPOConfig,配置同步仅通过 AdvancedREPO.Config 实现。
- 恢复:基于 v1.5.9 稳定版本,确保所有核心功能正常运作。
- 优化:简化依赖列表,降低玩家安装门槛。
v1.6.2 (内部测试版)
- 移除:移除对 REPOConfig 的依赖(未公开发布,仅内部测试)。
v1.6.1 (内部测试版)
- 调整:对颜色反馈代码进行优化(未公开发布,仅内部测试)。
v1.6.0 (内部测试版)
- 新增:价格颜色反馈功能(未公开发布,仅内部测试)。
v1.5.9
- 修复:修正了提示信息中倍率计算错误的问题。
- 优化:代码中传递原价给日志函数,确保计算准确。
v1.5.8
- 修复:将价格字段读写方式从
FieldRef回退为传统反射,确保修改成功。 - 增强:在价格修改前后添加详细日志输出。
v1.5.7
- 性能优化:尝试使用
FieldRef代替反射(发现兼容性问题,v1.5.8 已回退)。 - 代码精简:添加辅助方法
CreateBoolConfig和CreateFloatConfig。
v1.5.6
- 调整:将默认最小倍率从
0.8改为0.5,默认最大倍率从2.5改为2.0。
v1.5.5
- 增强:模组启动时打印当前倍率值,便于确认配置加载。
- 调试:在价格计算函数中添加日志输出(仅在详细日志开启时显示)。
v1.5.4
- 修复:将所有布尔配置项的验证方式从
.Acceptable()改为.Range(false, true)。
v1.5.3
- 修复:为所有布尔配置项添加
.Acceptable(new bool[] { true, false })尝试解决范围验证错误。
v1.5.2
- 更新:更新文档说明。
v1.5.1
- 修复:在
CreateConfigEntries中为每个配置项添加.File("RandomValueMod.cfg")调用,解决空引用异常。
v1.5.0
- 修复:移除了不可访问的
Sync.ApplyLocal()调用,解决编译错误。 - 完善:确保配置同步机制正常工作,所有配置项由 AdvancedREPO.Config 自动管理。
- 版本:提升主版本号至 1.5.0,标志着配置同步架构的成熟稳定。
v1.4.9
- 重大重构:将配置系统迁移至 AdvancedREPO.Config,实现主机强制统一配置。
- 移除:所有手动编写的价格同步网络代码(RPC、超时回退等)。
- 优化:基于“确定性随机”算法,客户端独立计算相同价格,零延迟。
v1.4.8
- 增强:网络同步组件在物品生成时立即添加,确保 PhotonView 及时注册。
- 新增:客户端网络请求超时机制,默认 2 秒后回退到本地计算。
v1.4.7
- 更新:更新文档说明。
v1.4.6
- 修复:修复了 Photon RPC 参数错误,解决多人游戏同步问题。
v1.4.5
- 文档更新:更新 README,添加指向旧版(v1.3.9,含重量随机化)的链接。
- 状态声明:明确声明旧版软件包已被标记为已弃用。
v1.4.4
- 多人游戏优化:改进网络同步机制,添加客户端请求跟踪和重试机制。
- 性能优化:网络请求清理机制,定期清理过期请求。
v1.4.3
- 重大优化:大幅减少 Harmony 补丁数量,只补丁关键的抓取相关方法。
- 性能修复:解决了游戏卡顿问题。
v1.4.2
- 功能重构:将随机化时机从物品生成时改为抓取时。
- 新增功能:抓取时触发价格随机化。
v1.4.1
- 修复:添加详细调试日志,帮助排查抓取物品无反应的问题。
v1.4.0
- 重构:移除所有重量随机化相关代码,专注于价格随机化。
- 说明:重量修改易引发兼容性问题,故删除。
v1.3.13
- 修复:静态类中的 Logger 调用错误,解决编译错误。
v1.3.12
- 改进:网络同步代码,修复了双向同步的逻辑问题。
v1.3.11
- 改进:网络同步组件的双向网络同步机制。
v1.3.10
- 修复:主机与客户端单向同步问题,实现双向网络同步。
v1.3.9
- 更新:更新文档说明。
v1.3.8
- 更新:更新文档说明,增加单独的更新日志。
v1.3.7
- 更新:更新文档说明,增加未来规划。
v1.3.6
- 重构:移除所有重量和价格的默认值设置,完全尊重游戏原始数据。
v1.3.5
- 修复:重量随机化中的 NaN 计算问题;单机模式下的网络警告问题。
v1.3.4
- 恢复:完整的网络同步功能,包含 RPC 广播机制。
v1.3.3
- 修复:模组加载时的依赖检测问题;移除重复集合定义。
v1.3.2
- 新增:完整的网络同步功能框架。
v1.3.1
- 修复:程序集引用问题,确保稳定编译。
v1.3.0
- 重构:代码架构,提高了稳定性。
- 新增:网络同步框架(实验性)。
v1.2.2
- 更新:更新文档说明。
v1.2.0
- 新增:现金袋随机化开关配置。
- 优化:黑白名单系统关键词默认留空。
v1.1.0
- 新增:完整的黑白名单系统,支持关键词匹配。
- 改进:预设共享检测和修复机制。
v1.0.0
- 初始版本发布:实现抓取时随机化贵重物品重量和价格的核心功能。