Ratkin Gene Expanded Duplicate PatchAll Fix
修复 RatkinGeneExpanded 重复 PatchAll 的问题。 问题:RatkinGeneExpanded 的 StartHarmonyPatch.
修复 RatkinGeneExpanded 重复 PatchAll 的问题。
问题:RatkinGeneExpanded 的 StartHarmonyPatch.cs 中有两个 Patch 类,分别用不同 Harmony ID("ratkin gene expanded" 和 "ratkin gene expanded Meow")各调用一次 PatchAll(Assembly.GetExecutingAssembly())。由于 Harmony 按 owner ID 去重,不同 ID 的 patch 全部被注册两次,导致:
- 装备绘制 Prefix 执行两次(视觉重叠/闪烁,每帧浪费绘制开销)
- Faction 生成 Postfix 执行两次(ideology 修改重复,日志污染)
- 其他 patch 重复执行(性能损耗)
修复:在所有 StaticConstructorOnStartup 完成后,用 Harmony.Unpatch("ratkin gene expanded Meow") 移除重复 ID 注册的所有 patch,保留另一个 ID 的副本。
性能影响:
- 启动时一次性开销:约几十毫秒(重新生成约 11 个方法的 IL)
- 运行时(游戏过程中):零开销,patch 链与编译期修复完全等价
兼容性:仅移除指定 Harmony ID 的 patch,不影响其他模组。需在 RatkinGeneExpanded 之后加载。
具体例子可以见这里的错误,图片中出现两次ratkin gene expanded的Postfix:https://steamcommunity.com/sharedfiles/filedetails/?id=3773311033