永久伤害 (Permanent Damage)

由 鬼哭 造成的永久性生命值损失

根据代码判断 需要被攻击玩家不处于创造模式或被攻击 生物

target.isEntityInvulnerable(DamageSource.ANVIL);


当此攻击生效时

有以下相关代码生效

public static final UUID soulDamageUUID = UUID.fromString("2CCDC290-A885-473A-973F-CDC5C918773B");
IAttributeInstance a = target.getAttributeMap().getAttributeInstanceByName(SharedMonsterAttributes.MAX_HEALTH.getName());
AttributeModifier attr = a.getModifier(soulDamageUUID);
if (attr != null) {
    l = attr.getAmount();
    if (l == -1) return;
    }
    l -= 1 / 39F;
    if (l < -1) l = -1;
    Multimap<String, AttributeModifier> multimap = HashMultimap.create();
    multimap.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier(soulDamageUUID, "Soul Damage", l, 2));
    target.getAttributeMap().applyAttributeModifiers(multimap);
    if (l <= -1) {
        target.attackEntityFrom(DamageSource.OUT_OF_WORLD, Float.MAX_VALUE);
    }

可得知 优先获取玩家血量l

l 等于l减去1/39f

然后判定l是否小于-1

如果是 l=-1

然后扣除-1/39*2的生命上限(基于属性修饰符的原理)

如果l小于等于-1

将发起一次无来源的Float.Max_VAULE伤害值的虚空伤害

短评加载中..