预制物名
homura_detonator
简介
雷管是炸弹系武器的核心部件,你可以用1个火药和1个金块合成4个雷管,或用2个粉饼代替火药。通过点选制造面板中的图标即可切换合成路径。
路径1 | 路径2 |
---|---|
![]() |
![]() |
无论是使用火药还是粉饼,制作出的雷管都是完全一样的。雷管无法被分解法杖分解。
雷管在遇到高温和强烈撞击时会发生爆炸,在2单位范围内造成20伤害和6点破坏值(足以炸开矿石和损毁大部分建筑物),但不会引燃周围的物品。雷管无法被直接引爆,你可以先把它扔在地上,然后在旁边放一个可燃物并点燃,利用高温来间接引爆雷管——这个操作可以低消耗地开采矿石,以及在遗迹里炸开可疑的裂缝。在联机版,对雷管作祟也有33%几率引爆雷管。
雷管可以用来制作下列武器:
武器 | 名称 | 科技要求 | 制作配方 |
---|
你知道吗?
1.雷管拥有1点血量,这也就是为什么在明火旁它会被引爆。
2.粉饼原名为Powder cake,直译为“粉末蛋糕”,有时也被称为“火药饼”。
代码实现
分支合成路径有很多种实现思路,本mod的方法是,先添加三个雷管的配方,第一个配方“欺骗”游戏的ui,后两个配方则为制作时实际调用的配方。
local Ig = Ingredient
AddRecipe('homura_detonator',{Ig('gunpowder',1),Ig('powcake',2),Ig('goldnugget',1)},HOMURA_TAB, TECH.HOMURA_TECH_ONE)
AddRecipe('homura_detonator1',{Ig('gunpowder',1),Ig('goldnugget',1)},NIL_TAB, TECH.LOST,nil,nil,true,4,nil,nil,nil,nil,'homura_detonator')
AddRecipe('homura_detonator2',{Ig('powcake',2),Ig('goldnugget',1)},NIL_TAB, TECH.LOST,nil,nil,true,4,nil,nil,nil,nil,'homura_detonator')
接着修改builder(制作)组件,在制作雷管时,调用后两个配方。
AddComponentPostInit('builder', function(self)
--如果要制作的物品是雷管,则采用自定义的判定方法
local old_can = self.CanBuild
function self:CanBuild(recname, ...)
if recname == 'homura_detonator' and not self.freebuildmode then
return old_can(self, recname..self.inst._detonator_crafting_mode:value(), ...)
else
return old_can(self, recname, ...)
end
end
--消耗的材料也需要修改
local old_build = self.DoBuild
function self:DoBuild(recname, ...)
if recname == 'homura_detonator' then
return old_build(self, recname..self.inst._detonator_crafting_mode:value(), ...)
else
return old_build(self, recname, ...)
end
end
end)
最后修改界面,当点击配方图标时,发送modrpc,改变玩家的_detonator_crafting_mode的值即可。
(这部分代码比较繁琐,但实现难度不高,所以不放了)
网友评论