需要工具 dnSpy (反编译源码、修改源码), Visaul Studio(编译mod)。
游戏内第一次、可能也是唯一一次初始化ShipDataModel类,在ShipDB类的LoadDatabaseForce()方法,因此,代码修改我们定在LoadDatabaseForce()方法之后,如果直接修改源码则在LoadDatabaseForce()末尾处添加即可。
首先通过{ ShipModelData shipModelData = shipModels.Find((ShipModelData s) => s.id == 94) ; }获取到月神模板。
而Harmony库访问私有成员则需要额外操作。
——————————————————————
首先是 月神的三条词缀,分别为 遭遇更强敌人、护甲加成、穿甲加成。


如以下代码
CSharp的数组为定长数组,因此我们需要重新new一个。
如图,所有ShipBonus的类都是以这个开头、相关类可以通过dnSpy查看, 大多数都是简单数值加成。
类名绝大部分清晰明了,其中EnhancementSolt是游戏内通过材料改造船体的槽位,初始默认3个;ShipEnhancementEffect则是对改造的数值百分比增强。
ShipBonusDB.Get(int index)则是获取游戏内置的词缀,使用方法如上,不过数值较低,查看也很麻烦,因此更建议手动添加。
... ...
首先自然自己魔改得很强,那敌人也要更强才对,因此extraBounty我设了个4,默认我猜是1?袭击强度是会乘上extraBounty......所以这条填得很离谱。
月神词缀属性足够强了,因此就不魔改了,保留一下改造槽位扩展。
——————————————————————————
顺带一提,除了蓝字词缀,还有黄字词缀,位于蓝字词缀之后。
不过游戏内目前有且仅有新建角色时,添加的那条“AddTrait(129);”,即“低于售价”,这条词缀也是通过ShipBonusDB类添加的。
某种程度上也是为后续内容搭的框架。
——————————————————————————
... ...
瞎叭叭一下,说是ShipBonus,尤其是ShipBonusDB内置的buff,实际上是包含了很多船员、船长(玩家)的增益,蛮混乱的。