首先要知道一点,游戏的护盾和血量都是带小数的,只不过护盾为向下取整显示,血量为向上取整显示。所以,你看到的5护盾,实际可能是[5,6)范围内的一个数;你看到的100血量,实际可能是(99,100]之间的一个数。
只要护盾的整数部分≥1,则护盾为有效状态,此时先用盾甲抵扣伤害,再由护盾承受(护盾的整数和小数部分全部参与计算)。若护盾不足以承受,则溢出部分继续作用于本体。同样的,先由护甲抵扣,超出的部分再由血量承受。
如你的例子,20伤害-3盾甲-5护盾-4护甲=8,最终结果是护盾被清0,本体受到8伤害。
假如此单位护盾不足1点,比如只有0.9,则护盾为无效状态,视为不存在。此时3盾甲和0.9护盾均不生效,20伤害直接打在本体上,20扣除4护甲=16就是本体受到的损伤。
以上过程没有算上体型减伤。如果本次伤害有体型修正的话,则在扣除完护甲后,最后再进行体型修正
另外,伤害的下限为0.5,上限为65535