这个mod最早可以追溯到21年的时候。当时我突发奇想,自学了三分钟线性代数之后做了一个可以反射的光束武器(要知道当时连战斗更新都没出来,更别提23年才加入的跳弹机制了,所以整个反射光束的代码完全是靠我自己寻思出来的)。自娱自乐了一段时间之后听别人说WeaponCore框架可以做出来类似的效果,而且由于WeaponCore不支持使用原版武器系统(我之前这个其实是改的室内炮塔),遂开始制作适配WeaponCore的版本
但是做一半我突然发现:反射?WeaponCore哪有反射,这框架连跳弹都做不出来
不过无所谓,WeaponCore做不出来不代表我做不出来
22年8月份左右我开始着手准备为WeaponCore编写跳弹和光束反射相关的程序(不得不说这玩意是真屎山,稍微动一个变量能影响至少10个不同的地方,还有喜闻乐见的if嵌套,而且连个null检测都没有),初步测试取得了还不错的效果。但是准备提交的时候WeaponCore的(前)作者表示:这玩意太复杂了,加进去不知道会出现什么样的效果,所以暂时不考虑
当时我还没反应过来,后来一想他可能指的是WeaponCore本身而不是我这个反射光束代码。毕竟上面说过了,这玩意本身就是个巨大的屎山(甚至他自己都不敢大改,只能做点小修小补,我这玩意真实装了估计能直接把WeaponCore给炸了)
不过他倒是提到了另一种方法:使用WeaponCore提供的api来实现这种效果,只需要在"击中方块之后生成一个飞向反射方向的射弹",不就是跳弹了?
想法是好的,但是恕我直言,当时WeaponCore的api就是一坨
Mod用的api给你分成三个文件,并且连文档甚至注释都不给你
没办法,只能对着代码和函数名来猜测那些玩意的作用是啥
结果我看完之后发现:好家伙,我要的是一个都没有
不过无所谓,WeaponCore做不出来不代表我做不出来
打开CoreSystemsApiBase.cs,加入IsWeaponShooting、GetShotsFired和GetMuzzleInfo,保存,提交,合并分支一气呵成
从此WeaponCore终于结束了"封闭生态",武器开火事件终于能被其他mod脚本读取了
不过此时我的目标已经从"做出一个适配WeaponCore的反射光束"变成了"做出一个适配WeaponCore的一整套光束武器框架系统"
但"喜闻乐见"的是,写着写着我硬盘炸了
WC,我****
没办法,只能一切从头再来。不过由于之前事先给我的mod做了个备份所以不至于产生太严重的损失
之后的事情就不需要说了,在损失了一块硬盘和一台电脑,耗时3年零不知道几个月之后,我终于硬生生把这东西给搓出来了
(另外上面那个链接其实是我自己做的一个用了这个框架的mod,而不是这个框架本身)