Shoddy 修饰符 Jagged 与 Stonebound
随机奖励 中的 JAGGED 与 STONEBOUND 两种奖励没有原生施放路径——Tinkers’ 的 ModShoddy(Jagged / Stonebound)默认靠配方添加,本条目记录本 mod 为它们补上的配方与判定。
- 实现:
iguanaman.iguanatweakstconstruct.leveling.modifiers.ModShoddy - 触发:
RandomBonuses.addGenericModifier中JAGGED/STONEBOUND分支 →addShoddyModifiers(tool, player, modType) - 继承:
tconstruct.library.crafting.ModShoddy
施放流程
1. 构造两个 ModShoddy 实例:
shoddyType = modType == ModJagged ? TinkerWorld.modShoddyJagged
: TinkerWorld.modShoddyStonebound
2. 跑配方队列直到原版标记配方完成(flag=false)
3. 收尾:kindaStrongestPart / strongestPart 判定
4. 扣掉 1 个 Modifiers 槽
5. 聊天栏显示 message.levelup.jagged 或 message.levelup.stonebound
与原版的差异
ModShoddy 原版的 canModify 要求工具已存在同名 shoddy 判定结果(即已由配方添加过),而随机奖励路径下工具往往还没有。本 mod 的覆写放宽了这一点:
@Override
public boolean canModify(NBTTagCompound tags) {
if (!tags.hasKey(key) || !Config.addShoddyModifiers) {
return super.canModify(tags);
}
return !tags.getBoolean(key); // 只要没加过同种 shoddy 就行
}
即:addShoddyModifiers(配置键 addShoddyModifiers,默认 false)开启后,未曾拥有该 shoddy 的工具也可以被直接添加。默认关闭时完全沿用原版行为。
材料前提
kindaStrongestPart / strongestPart 通过比较工具各头部部件的 ToolMaterial.handleDurability(手柄系数)来决定施加到哪个部件上。Jagged 施加到最弱部件、Stonebound 施加到最强部件——这一判定完全复用本 mod 重平衡后的 材料手柄系数,因此 Ardite(2.1)、Manyullyn(2.5)、Cobalt(1.75)等高手柄系数材料的选择会显著改变结果。
可覆盖
ModifierOverride.cfg 的 ShoddyModifiers 分类可改写施加的 shoddy 类型与部件判定。