Dagger

基本信息

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

功能

匕首是 5 种材质的单手武器,每种材质注册一个独立 Item。继承 ItemSword 以便附 vanilla 剑附魔(ItemWeapon.java:17 注释)。

核心特性:

  • 背后刺杀:实现 IBackStabbable。从背后命中时额外造成一次 baseDamage 伤害,伤害源为 battlegearExtra.backstab(ItemDagger.java:56-60;伤害源常量见 Battlegear.java:49)
  • 攻速修正:实现 IHitTimeModifier,getHitTime 返回 -(int)(attackSpeed 属性修正量 × 10)(ItemDagger.java:51-53)
  • 攻击距离修正:实现 IExtendedReachWeapon,返回 extendedReach 属性修正量(ItemDagger.java:63-65)
  • 副手适配:OneHandedWeapon 允许副手放置(allowOffhand 返回 true),sheatheOnBack 返回 false(OneHandedWeapon.java:16-28)
  • 附魔等级:覆写 getItemEnchantability() 返回材质的 getEnchantability()(OneHandedWeapon.java:50-52)

数值

所有材质的 hitTime 与 reach 在注册时固定为同一组值(BattlegearConfig.java:277):

dagger[i] = new ItemDagger(material, itemNames[3], 0.5F, -2);
数值 值 来源
攻击速度修正量 hitTime 0.5(属性操作 1,即减去) BattlegearConfig.java:277、ItemDagger.java:45-46
攻击距离修正量 reach -2(属性操作 0,即加上) BattlegearConfig.java:277、ItemDagger.java:42-43
击退时间 getHitTime -5(= -(int)(0.5 × 10)) ItemDagger.java:51-53
基础伤害公式 4 + material.getDamageVsEntity() 再 -= 2,即 2 + getDamageVsEntity() ItemWeapon.java:40、ItemDagger.java:28

基础伤害的最终数值取决于原版 Item.ToolMaterial 枚举的 getDamageVsEntity(),该方法不在本仓库中实现,具体逐材质数值无法从本仓库核实。

交互

触发 行为
副手攻击 允许(OneHandedWeapon.java:31-34)
副手点击空气 / 点击方块 允许(OneHandedWeapon.java:37-44)
收背后 否(sheatheOnBack 返回 false,OneHandedWeapon.java:26-28)
可采集方块 高草(Blocks.tallgrass)与羊毛(Blocks.wool)(ItemDagger.java:33-36)

合成配方

ShapedOreRecipe,每种材质一个(BattlegearConfig.java:390-400):

L
S
字符 物品
S stickWood(木棍)
L 木质匕首为 plankWood(物品字典);其余为 ToolMaterial.values()[i].func_150995_f(),metadata = WILDCARD_VALUE

woodStack 常量为字符串 "plankWood"(BattlegearConfig.java:383)。

相关条目

  • Waraxe - 同样为单手武器,通过破甲取代匕首的攻速与距离定位
  • Spear - 双手武器,附骑乘伤害加成
  • 盾牌 - 副手防御装备,与匕首的副手攻击互斥