Mace

基本信息

属性 值
注册名 battlegear2:mace.wood / .stone / .iron / .diamond / .gold
类 mods.battlegear2.items.ItemMace
继承 OneHandedWeapon → ItemWeapon → ItemSword
接口 IPotionEffect
注册方式 构造函数内 GameRegistry.registerItem(this, this.name)(ItemMace.java:41)
创造标签 BattlegearConfig.customTab(ItemWeapon.java:29)
材质顺序 wood, stone, iron, diamond, gold(BattlegearConfig.java:64)

功能

钉头锤是 5 种材质的单手武器。与匕首、战斧不同,它不破甲,而是给每次命中附加一组固定药水效果。

核心特性:

  • 眩晕效果:实现 IPotionEffect。构造函数内一次性构建 Map<PotionEffect, Float>,同一概率挂载 4 条原版 potion(ItemMace.java:34-39):

    Potion ID 原版药水 时长 放大等级
    2 缓慢 3 × 20 = 60 tick 100
    9 失明 3 × 20 = 60 tick 100
    15 虚弱 3 × 20 = 60 tick 100
    18 凋零 3 × 20 = 60 tick 100

    四条效果的概率均为构造参数 stunChance。

  • 耐久翻倍:setMaxDamage(material.getMaxUses() * 2)(ItemMace.java:40)

  • 工具提示:物品提示中以金色追加 attribute.name.weapon.daze + 百分比(ItemMace.java:53-56),百分比格式器 setMaximumFractionDigits(0)(ItemMace.java:26-28)

  • 副手适配:继承 OneHandedWeapon,允许副手放置与副手攻击,sheatheOnBack 返回 false(OneHandedWeapon.java:16-34)

药水的实际生效概率由实现 IPotionEffect 的调用方决定。本仓库内 getEffectsOnHit 仅返回该 Map,调用点不在本仓库中,故概率的生效条件无法从本仓库核实。

数值

眩晕概率按材质递增,注册时由公式给出(BattlegearConfig.java:280):

mace[i] = new ItemMace(material, itemNames[5], 0.05F + 0.05F * i);
材质索引 材质 眩晕概率
0 wood 5%
1 stone 10%
2 iron 15%
3 diamond 20%
4 gold 25%
数值 公式 来源
基础伤害 4 + material.getDamageVsEntity() 再 -= 1,即 3 + getDamageVsEntity() ItemWeapon.java:40、ItemMace.java:33
最大耐久 material.getMaxUses() × 2 ItemMace.java:40
药水时长 60 tick ItemMace.java:36-39

getDamageVsEntity() 与 getMaxUses() 为原版 Item.ToolMaterial 枚举方法,不在本仓库中实现,逐材质数值无法从本仓库核实。

交互

触发 行为
命中生物 触发 getEffectsOnHit 返回的 4 条药水效果(ItemMace.java:44-46)
副手攻击 允许(OneHandedWeapon.java:31-34)
副手点击空气 / 点击方块 允许(OneHandedWeapon.java:37-44)
收背后 否(OneHandedWeapon.java:26-28)

合成配方

ShapedOreRecipe,每种材质一个(BattlegearConfig.java:413-423):

 LL
 LL
S
字符 物品
S stickWood(木棍)
L 木质钉头锤为 plankWood;其余为对应 ToolMaterial 的 func_150995_f(),metadata = WILDCARD_VALUE

相关条目

  • Waraxe - 同样为单手武器,以破甲取代眩晕作为核心属性
  • Dagger - 攻速更快、以背后刺杀为核心的近战武器
  • Spear - 双手武器,附骑乘伤害加成