本篇教程由作者设定使用 CC BY-NC-SA 协议。
前言
此篇教程是在阅读“匠魂2部分工具特性和强化的说明和计算(不适合新手)”这篇教程后对其中一些个人感兴趣但未提及部分的补充研究,因此适用范围和面向读者应与之相同。同时,在其中已经提及的部分本文不再重复说明。
说明:
“顶端”、“其他部件”、“手柄”属性代指匠魂宝典中“工具材料”一章显示的对应材料的对应属性;“弓臂”、“弓弦”、“箭杆”、“箭羽”属性代指匠魂宝典中“弓材料”一章下面“弓”、“弓弦”、“箭杆”、“箭羽”四小章显示的对应材料的对应属性。
在不加说明的时候,XX部件的XX属性指部件信息中所能看见的属性;XX部件作为“XX”指此部件材料在匠魂宝典中对应栏目的属性。
本文中包含部分笔者感兴趣的附属模组相关数据。
基础属性
近战武器在隔壁已有分析,不再赘述。
远程武器
仅讨论基于原版匠魂弓弩模板的远程武器,回旋镖从代码性质上被视为弹药不列入此栏。
耐久
说明:
耐久计算通常会在每一步进行四舍五入,大部分情况下都可以近似地认为是在最终结果值进行了四舍五入。
名称(模组) | 耐久公式 |
短弓 | (弓臂1 + 弓臂2) / 2 * 弓弦系数 |
长弓 | 1.4 * (弓臂1 + 弓臂2) / 2 + 大板作为“其他部件”) * 弓弦系数 |
十字弓 | ((弓臂 + (绑定结 + 手柄作为“其他部件”) / 2) * 手柄作为“手柄”的耐久系数 + 手柄作为“手柄”的耐久) * 弓弦系数 |
吹箭筒(天境工匠) | (吹管 + 吹嘴作为“其他部件”) * 吹嘴作为“手柄”的耐久系数 + 吹嘴作为“手柄”的耐久 |
附加伤害
名称(模组) | 附加伤害公式 | 基础伤害加值(不显示在面板中) | 伤害修正系数(不显示在面板中) |
短弓 | (弓臂1 + 弓臂2) / 2 | 0 | 0.8 |
长弓 | (弓臂1 + 弓臂2) / 2 | 2.5 | 1.25 |
十字弓 | 1.5 * 弓臂 | 3 | 1.3 |
吹箭筒(天境工匠) | 0.5 * 吹管 | 1 | 1 |
拉弓速度
说明:
下文中的拉弓时间是一个代码上区分不同武器基础拉弓速度的数据(详见代码中的getDrawTime()),可以理解为如果“弓臂”拉弓速度为1时每次拉弓所需的游戏刻,为防止代码阅读者的困惑故单独列出,且最终公式不进行化简。
在“拉弓速度过程计算结果”一步中,得出的结果最小值为 0.001(代码地址)。
最终显示的拉弓速度可以理解为每发子弹所需的拉弓时长,面板数据会保留两位小数但不影响实际速度(代码地址);从代码上看,每游戏刻似乎最多只能射出1发(代码地址),但笔者在游戏中测试时肉眼无法分辨和判断拉弓速度是否受限。
NBT数据中的拉弓速度(DrawSpeed)=1/拉弓速度过程计算结果。
名称(模组) | 拉弓时间(单位:游戏刻) | 拉弓速度过程计算结果 | 拉弓速度(单位:秒) |
短弓 | 12 | (弓臂1 + 弓臂2) / 2 | 12 / 20 * (弓臂1 + 弓臂2) / 2 |
长弓 | 30 | (弓臂1 + 弓臂2) / 2 | 30 / 20 * (弓臂1 + 弓臂2) / 2 |
十字弓 | 45 | 弓臂 | 45 / 20 * 弓臂 |
吹箭筒(天境工匠) | 1 | 吹管 | 1 / 20 * 吹管 |
箭矢
仅讨论基于原版匠魂箭矢弩箭模板的弹药,包含回旋镖。
弹药
说明:
耐久计算通常会在每一步进行四舍五入,大部分情况下都可以近似地认为是在最终结果值进行了四舍五入。
在计算耐久转化为弹药数量的时候,向下取整而非四舍五入。
生态、同调等特性回复的是耐久值而非弹药值。
名称(模组) | 耐久公式 | 弹药公式 |
箭矢 | 箭头 * 箭羽系数 * 箭杆系数+额外弹药*10 | 耐久值 / 10 |
弩箭 | 0.8 * (弩箭核心浇筑材料耐久 * 箭羽系数 * 弩箭核心箭杆系数+额外弹药*10) | 耐久值 / 10 |
回旋镖 | 4刀刃材料作为“顶端”的耐久平均值 + 4刀刃材料作为“其他部件”的耐久平均值 | 耐久值 / 10 |
毒镖(天境工匠) | 镖尖 * 箭羽系数 * 箭杆系数+额外弹药*10 | 耐久值 / 10 |
伤害
说明:
箭矢类物品的面板攻击伤害公式与普通近战武器相同,请参考隔壁相关解析;箭矢近战等于徒手伤害。
名称(模组) | 攻击伤害修正系数 | 基础伤害加值(计入面板) | 顶端伤害 | 临界伤害 |
箭矢 | 1 | 2 | 箭头 | 15 |
弩箭 | 1 | 0 | 弩箭核心浇筑材料 | 15 |
回旋镖 | 0.7 | 1 | 4刀刃材料作为“顶端”的伤害平均值 | 15 |
毒镖(天境工匠) | 0.5 | 1 | 镖尖 | 15 |
远程武器最终伤害公式
说明:
箭矢面板伤害 = 对右侧结果进行伤害衰减计算 ((玩家基础伤害 + 顶端伤害 + 锋利等特性提供的基础伤害) * 攻击伤害修正系数 + 基础伤害加值)
最终伤害 = 对右侧结果进行伤害衰减计算 (蓄力进度 * 远程武器伤害修正系数 * (远程武器附加伤害 + 蓄力进度 * 远程武器基础伤害加值 + 箭矢面板伤害 + 其他特性提供的额外伤害)))
特殊武器:回旋镖
说明:
回旋镖发射冷却时间为固定的 4 游戏刻,且所有回旋镖共享冷却。
回旋镖面板伤害即是最终伤害,也就是只计算一次伤害衰减。
特性
冰火传说 / 冰与火之歌 (Ice and Fire)
基于版本 iceandfire-1.9.1-1.12.2
炽火 (Inferno)
最高等级 2 级,但正常游戏中无法获得 1 级炽火的物品。
效果分为三部分:
造成(等级 * 2 点)龙炎伤害,独立计算,不计入武器伤害;
1 级 10 秒燃烧效果,2 级 15 秒燃烧效果;
等级 2 时击退敌人,强度为 1。(击退方面不太熟悉,之后有机会再分析一下这个强度如何计算)
凛冰 (Blizzard)
最高等级 2 级,但正常游戏中无法获得1级凛冰的物品。
效果分为两部分:
1 级 7.5 秒缓慢 III 效果,2 级 15 秒缓慢 III 效果;
等级 2 时击退敌人,强度为 1。(击退方面不太熟悉,之后有机会再分析一下这个强度如何计算)
相比炽火,凛冰没有额外伤害,与描述不符。(游戏内已验证,版本 iceandfire-1.9.1-1.12.2)
冶金4:重铸 (Metallurgy 4: Reforged)
基于版本 Metallurgy-4-Reforged-1.3.0-beta.1-1.12.2
模糊 (Obscure)
攻击击中后给予目标 1.5 秒失明 III 效果。(但是原版中失明对怪物毫无用处)
后颌鱼 (Opistognathus)
在水中时(判定跟喜水一样,接触到水都行,不一定头部浸水),挖掘速度乘以 3,攻击速度增加 2.7。
火山 (Volcanic)
最高等级 2 级,但正常游戏中无法获得 2 级火山的物品。
不可与精准共存。
效果分为两部分:
击中敌人后,1 级 5 秒燃烧效果,2 级 7 秒燃烧效果;
破坏方块效果等同自动熔炼(代码都是一样的)。
复制 (Duplication)
击中敌人后,如果目标生命值小于等于 0,有 1/2 的几率(代码判断方式为一个随机 0 - 99 的整数小于 50 时)使目标掉落物翻倍。
生命汲取 (Life Steal)
击中敌人后,如果玩家生命未满,那么有 (15 + 幸运等级 * 5)% 的概率回复造成伤害的15%数量的生命值。
目前疑似有两个bug,一是文本写的10%,二是代码显示回复量大于损失的生命值就不会回复任何生命,已提交反馈。
凋零 (Wither)
攻击击中后给予目标 1.5 秒凋零 II 效果。
赌神 (King Dice)
攻击击中后给予目标一个 4 秒长的随机效果,效果等级为 1,所有可能的效果有:失明,漂浮,饥饿,瞬间伤害,反胃,夜视,中毒,缓慢,生命恢复。
源码参考地址
名称(模组) | 源码参考地址 |
短弓 | 源码地址 |
长弓 | 源码地址 |
十字弓 | 源码地址 |
吹箭筒(天境工匠) | 源码地址 |
箭矢 | 源码地址 |
弩箭 | 源码地址 |
回旋镖 | 源码地址 |
毒镖(天境工匠) | 源码地址 |