[中] 兴趣框架([D] Interests Framework) mod | 环世界
这个mod为基础的主要和次要热情添加了一些工具,用于创建与技能相关的“兴趣”。
这个mod本身并不会对游戏进行重大改变。相反,它使得modders可以更容易地创建自己的兴趣,而不像热情一样硬编码到游戏中。
查看我的Interests mod,它利用这个框架为游戏添加了11个新的兴趣:[链接](https://steamcommunity.com/sharedfiles/filedetails/?id=2089938084)
需要Harmony。
如何使用:
兴趣根据一个enum来设置和读取。Enums直接编译成int,这意味着它们不能通过Harmony或其他方式被覆盖。然而,这也意味着任何int都可以无检查地转换为一个热情,并存储在一个为热情而设计的字段中。
结果是与大多数mods兼容。
另一个主要障碍是热情评估是根据enum硬编码的。因此,我们使用Harmony patches,包括一些transpilers,在这些评估中调用我们自己的代码。然而,这必须对所有的热情评估都要做,这意味着使用自己的代码来评估热情的mods不会自动考虑到我们的新兴趣。因此,这个框架还修补了一些这样的mods。如果你想到可以增加与兴趣集成的mods,请告诉我。
加载顺序:
Harmony
核心
贵族
...
Interests Framework
与以下mods兼容:
- EdB精心准备(包括补丁)
- RimHUD(包括补丁)
- 人物编辑器(包括补丁)
- 儿童、学校和学习
- 工作标签
- 疯狂技能(虽然这可能会改变一些学习速度的功能,显然)
冲突:
- 静态质量加。这个mod几乎覆盖了有关角色技能的一切,要确保兼容性需要进行大量的项目维护,所以我没有做。
- 通常情况下,以排除方式显示技能/热情信息的mods。除了我明确修补过的那些之外,我不知道还有其他的,但肯定有其他的。如果你找到了,请告诉我。
- 自定义种族可能会自动利用扩展的热情。
详细信息:
- 包含源代码,所以可以随意查看和修改任何你想要的东西。
- DInterest.InterestDef:新的兴趣类型。使用预设字段在XML中定义一个兴趣,或者子类化它并使用InterestBase的钩子。
- 定义的兴趣会自动加入到池中,并具有给定的属性。这些属性包括能够修改:
- 学习速度
- 忘记速度
- 纹理
- 出现的几率(通过权重系统)
- 相关技能被选择为灵感的几率
- 灵感发生的几率
- 不适合该兴趣的技能
- 此外,您可以子类化InterestDef并覆盖任何方法。这允许您定义在每个tick对具有给定兴趣的每个pawn进行的行为,或者创建在使用给定技能时影响地图上所有pawns的兴趣(等等)。
如果你遇到任何问题,无论是兼容性还是其他问题,请告诉我。