暴击修饰符 Critical
随机奖励 中的 CRITICAL 奖励所施加的自定义修饰符。
- 实现:
iguanaman.iguanatweakstconstruct.leveling.modifiers.ModCritical - NBT 键:
ModCritical.modCritical.key(由ModCritical静态字段暴露) - 触发:
RandomBonuses.addCriticalModifier(tool, player, modType),聊天消息message.levelup.critical(§d淡紫色) - 总开关:
criticalModifiers(配置键allowCritical,默认true)
能力
ModCritical 为「按一次修饰符槽、额外 10% 暴击率」的战斗修饰符。暴击率实现在 Tinkers’ 的 ActiveToolMod 回调里:
// leveling/LevelingActiveToolMod.doesCriticalHit
if (toolTags.hasKey(ModCritical.modCritical.key))
return IguanaTweaksTConstruct.random.nextInt(10) == 0;
return false;
即每 10 次攻击判定中有 1 次为暴击,由 ModCritical 存进 NBT 的存在性标记驱动。
权重特征
CRITICAL 是全部 18 种奖励里权重最低的(工具 1、武器 2、弓 0、弹药 0),源码注释明说 // This is a useless modifier, but it's still a modifier.。弓与弹药权重为 0,意味着弓永远拿不到暴击奖励(但已有暴击的弓仍保留判定)。
配方获取
RandomBonuses.modCache 初始化时扫描 ModifyBuilder.instance.itemModifiers,把 item 类型修饰符的配方与 IguanaModdedMaterials/ToolAssembly 关联起来。ModCritical 在其中被列为 Modifiers.CRITICAL 的配方来源,但没有独立的工作台配方——只能通过 随机奖励 获得。
覆写
ModifierOverride.cfg 可改写其 stacks(消耗材料)与 effect(tooltip 文案)。暴击概率的 10% 阈值写死在 LevelingActiveToolMod 中,不可配置。