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 类型与部件判定。