破片爆炸 与 原版爆炸扩展 为同类游戏设定。
1.19.2-3.6.17 版本后,此自定义爆炸类型被添加。
爆炸射线
破片爆炸造成的损害集中在各个坐标轴方向上,有一定误差。
破片爆炸发射的爆炸射线分布如下图所示:
图中原点表示爆炸中心,红色所示部分在半径为1的球面上,爆炸射线的方向为原点出发指向(左图)红色区域内的随机位置。
每条爆炸射线的初始穿透力随机,范围在设置穿透力的0.85~1.15倍之间。
爆炸对方块的效果
【所有对方块的效果仅在本次爆炸可以破坏方块时有效】
爆炸对方块的效果默认不影响空气方块,也不影响无视爆炸影响的方块。
炸毁方块
爆炸射线发出后,会以每步1/3格向前逐步移动,直至达到爆炸有效范围的边界。
每步进一次,都会尝试炸毁该步所经过的方块,先经过的方块会影响后经过的方块,每个射线独立计算。
关于“一个方块是否会被炸毁”的详细判定规则如下:
没有爆炸抗性数据的方块会被忽略。
已经被炸毁的方块会被忽略。
爆炸射线上的所有空气方块都会被忽略。
一旦爆炸射线遇到不受爆炸影响的方块,本条射线计算结束。
如果爆炸射线遇到阻碍实体移动的方块,但 ( 基础损害 + 爆炸有效半径 / 2 ) 的破坏力无法炸毁该方块,本条射线计算结束。
否则,根据如下公式计算对爆炸范围某个特定方块的影响:
特定方块穿透力 = 该方向上的穿透力 * 穿透倍率函数的运算结果
如果该方块的爆炸抗性 > 对该方块的穿透力,则本条射线计算结束。
否则,剩余穿透力 = 原穿透力 - 该方块的爆炸抗性,该方块会被炸毁。
此外,可以单独获取每条射线在达到有效范围的边界时的剩余穿透力。如果射线提前结束计算,剩余穿透力为0。
爆炸对实体的效果
【所有对实体的效果仅在本次爆炸可以影响实体时有效】
爆炸射线发出后,会以每步1/3格向前逐步移动,直至达到爆炸有效范围的边界。
每步进一次,都会尝试影响该步所经过的实体,每个射线独立计算。
伤害实体
在爆炸可以伤害实体的情况下,按照如下公式计算其对实体的伤害:
实际伤害 = 基准损害 * ( 1 / 该实体到爆炸中心的直线距离 ) * 伤害倍率函数运算结果 * ( 0.5 + 穿过该实体的爆炸射线的数量 * 0.5 )
此外,爆炸造成的实际伤害不能超过其基准损害。
击退实体
在爆炸可以击退实体的情况下,按照如下公式推动可推动的实体:
击退方向为爆炸中心指向被击退实体
实际击退 = 基准击退 * 击退速度函数运算结果 * ( 0.5 + 穿过该实体的爆炸射线的数量 * 0.5 ) * ( 1 - 爆炸击退抗性[1] )
注[1]:该参数仅在被击退实体是生物的情况下有效,若非生物,该参数值可认为0。
资料分支: | 1.18 + |
资料分类: | 内部设定:世界型运算 |