
Neow总是给予奖励
NeowAlwaysRewards允许Neow奖励在自定义模式和每日挑战中显示,而不仅仅是标准模式。(适用于v0.107.1)
查看大图NeowAlwaysRewards(现在支持多人游戏)

注意,你可以选择 专家 > 疯狂 > 全明星 > 并且仍然可以获得涅奥的祝福
功能简介
在原版游戏中,涅奥只在标准模式下给予祝福。原因可能在于自定义游戏中的挑战修饰符,如 草稿、封印卡组、专精、疯狂 和 全明星,因为这些选项在你与涅奥互动时实际上被视为一个可点击的祝福。使用此模组,你将先获得你选择的任何修饰符作为奖励,然后涅奥会给予你他通常的祝福。扩展涅奥祝福的模组也会照常生效。
与以下模组配合使用,可以让自定义模式拥有标准模式的所有功能:
- 我的另一个模组 CustomRunsUnlock
- 由 luojies 制作的广受好评的 UnifiedSavePath
适用于:
- 标准模式
- 每日挑战
- 无额外涅奥选择的自定义模式
- 具有任意数量额外涅奥选择的自定义模式
- 多人游戏(已在2人队伍中测试)
工作原理
该模组使用 Harmony Prefix 替换了 Neow 类中的 OnModifierOptionsSelected 方法。我选择这个方法是因为我发现很少有模组修改它。
我为 GenerateInitialOption 方法添加了一个低优先级的 Harmony Postfix,以确保它最后执行。它的作用是临时清除修饰符并调用原始的 GenerateInitialOptions,以便涅奥奖励能够显示。完成后会恢复修饰符。我添加了保护机制,防止 GenerateInitialOptions 重复执行超过一次,以避免无限递归。具体来说:
- 保留原始的修饰符选项序列
- 检测最后一个修饰符选项何时被确定
- 临时将
RunState.Modifiers替换为空的IReadOnlyList - 调用原版的
GenerateInitialOptions() - 恢复原始的修饰符
这使得游戏能够使用当前的原始逻辑或任何模组添加的 Postfix 来生成正常的涅奥奖励。
为什么采用这种方法
这比手动复制和编辑完整的 GenerateInitialOptions() 奖励分支更加稳健。
优点:
- 在游戏更新时不易出错
- 保留所有自定义模式修饰符的流程
- 与其他对
GenerateInitialOptions()进行 postfix 操作的模组有更好的兼容性
兼容性
此模组旨在对其他修改涅奥奖励的模组相对友好,尤其是那些通过 postfix GenerateInitialOptions() 来实现以下功能的模组:
- 向奖励池中添加更多奖励
- 追加第四个选项
- 修改最终返回的选项列表
- 此模组与 Sts2 v1.071 上的 ChooseTheAncient(一个更大的模组)兼容
- 不过 NeowAlwaysRewards 是多余的,因此我不建议同时使用它们。
当多个模组对同一方法进行 postfix 操作时,如果你也使用 Harmony 的低优先级,补丁顺序仍然可能产生影响。
文件
Main.cs— 模组入口点和 Harmony 设置NeowPatch.cs— Neow 流程补丁和辅助逻辑CHANGELOG.md— 发布说明 / 开发历史
安装
将模组放置在:
Slay the Spire 2/
mods/
NeowAlwaysRewards/
NeowAlwaysRewards.dll
NeowAlwaysRewards.pck
NeowAlwaysRewardsjson
问题反馈
- 你可以在我与此模组相关的 GitHub 仓库中提交问题,或讨论与你自己的模组的兼容性问题:https://github.com/ResistingFate/NeowAlwaysRewards
未来工作
- 监控与其他涅奥模组的补丁顺序交互
- 如有需要,添加显式的 Harmony 排序
- 清理剩余的调试日志
致谢与感谢
感谢 Alchyr。我是参考了他们的指南和模板来搭建我的 JellyBeans Rider 环境的: https://github.com/Alchyr/ModTemplate-StS2/wiki
感谢 Megacritic 让《杀戮尖塔2》的模组制作变得触手可及。
简而言之
NeowAlwaysRewards 通过保留特定修饰符的涅奥互动,并随后串联正常的涅奥奖励,使涅奥在标准、自定义和挑战式模式中保持一致体验。
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。