Waraxe

基本信息

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

功能

战斧是 5 种材质的单手武器,与匕首共享 OneHandedWeapon 的全部副手行为,定位区别在于破甲而非攻速/距离。

核心特性:

  • 破甲:实现 IPenetrateWeapon,向 armourPenetrate 属性写入 ignoreDamageAmount(ItemWaraxe.java:33-34),getPenetratingPower 返回其整数部分(ItemWaraxe.java:45-47)
  • 耐久翻倍:setMaxDamage(material.getMaxUses() * 2)(ItemWaraxe.java:25)
  • 可采集原木:func_150897_b 对 BlockLog 实例返回 true(ItemWaraxe.java:39-42)
  • 副手适配:允许副手放置与副手攻击,sheatheOnBack 返回 false(OneHandedWeapon.java:16-34)

已知未实现项

源码注释明确写明战斧没有实现纹章系统(IHeraldyItem 被注释掉):

// implements IHeraldyItem{ Don't know if we want to do this or not

(ItemWaraxe.java:15-16)

数值

注册时破甲量按材质区分(BattlegearConfig.java:274):

warAxe[i] = new ItemWaraxe(material, itemNames[4], i == 4 ? 2 : 1);
材质 ignoreDamageAmount 说明
wood / stone / iron / diamond 1 索引 0–3 走三元表达式的 else 分支
gold 2 索引 4 命中 i == 4 分支
数值 公式 来源
基础伤害 4 + material.getDamageVsEntity() 再 -= (1 + ignoreDamageAmount),即 3 - ignoreDamageAmount + getDamageVsEntity() ItemWeapon.java:40、ItemWaraxe.java:24
最大耐久 material.getMaxUses() × 2 ItemWaraxe.java:25

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

交互

触发 行为
副手攻击 允许(OneHandedWeapon.java:31-34)
副手点击空气 / 点击方块 允许(OneHandedWeapon.java:37-44)
收背后 否(OneHandedWeapon.java:26-28)
可采集方块 所有 BlockLog(ItemWaraxe.java:39-42)

合成配方

ShapedOreRecipe,每种材质一个(BattlegearConfig.java:401-412):

L L
LSL
 S
字符 物品
S stickWood(木棍)
L 木质战斧为 plankWood;其余为对应 ToolMaterial 的 func_150995_f(),metadata = WILDCARD_VALUE

相关条目

  • Dagger - 同样为单手武器,攻速更快、距离修正为 -2
  • Spear - 双手武器
  • Mace - 单手武器,不破甲,改为附带眩晕药水效果