TKVM伤害系统

TKVM伤害系统

通过数据包为武器添加伤害类型,并为实体添加抗性/弱点

你好,这是一个伤害系统模组,为我的整合包而制作!

创伤类型

目前有 4 种硬性数值的创伤类型。

钝击(Blunt)、穿刺(Pierce)、斩击(Slash)和劈砍(Chop)

这些只是对武器的描述标签。强烈建议不要在一把武器上使用多种创伤类型,但没有什么能阻止你这么做。(平衡多个倍率相当困难且毫无意义,想象一把既穿刺又钝击的武器,而某个生物有 -50% 钝击抗性和 +50% 穿刺易伤。它们会互相抵消。)

文件路径为 data/tkvm_damage_system/tkvm_damage_system/weapon_tags/YOUR_FILE_NAME.JSON

你可以随意命名,我建议将其命名为你正在制作数据包的武器命名空间。

示例:

{
  "tkvm_weapons:wooden_dagger": [
    "pierce"
  ],
  "tkvm_weapons:stone_dagger": [
    "pierce"
  ],
  "tkvm_weapons:golden_dagger": [
    "pierce",
    "holy"
  ],
  "tkvm_weapons:iron_dagger": [
    "pierce"
  ]
}

这就是将武器数据包设置为某种类型的全部内容。

除了创伤类型之外,你基本上可以放入任何你想要的东西。如果你想放个 "spaghetti"(意大利面),也可以。你需要继续做的是下一步:

{
  "tkvm_weapons:wooden_dagger": [
    "pierce",
    "spaghetti"
  ]
}

我保证意大利面的例子会讲得通。

实体标签

这里定义了倍率,基本上就是生物将如何受到创伤类型的伤害。

文件路径:data/tkvm_damage_system/tkvm_damage_system/entity_tags/YOUR_FILENAME.JSON

同样,文件名是什么并不重要。

in vanilla.json(示例)

{  
  "minecraft:zombie": {  
    "vulnerable": {  
      "slash": 5.0,  
      "pierce": 5.0,  
      "chop": 5.0,  
      "spaghetti": 5.0  
    }  
  }
}

每 1.0 代表 10%。所以在这个例子中,这只僵尸对所有类型都 vulnerable(易伤),并且,如果一把武器同时也是意大利面类型,它将额外造成其基础伤害 50% 的伤害。

再次重申:基础的 4 种创伤类型是与任何其他附加/元素类型分开计算的。

所以如果你有一把斩击、意大利面剑,基础伤害为 10,斩击将增加 50%,所以仅斩击就会造成 15 点伤害,然后意大利面还会再增加 5 点,因为它增加的是 基础伤害加成 x 易伤倍率(50%)= 5

所以总伤害将是 20。

total = (BASE × wounding_multiplier) + (BASE × additional_attribute_multiplier)

这会产生一个边缘情况,你可能会想给某个东西对意大利面剑的抗性,但实际上,那不会有任何作用。它永远不会变成负数。

把附加属性想象成你希望实体易伤于的额外伤害,而不是用来减少伤害的东西。

剑的意大利面属性并不能否定它是一把剑的事实,只会对那些易感的目标造成额外伤害。

意大利面这个例子的原因只是为了展示你可以放入任何东西,只要实体有匹配的易伤,加成就会被应用。

抗性

你当然也可以让任何实体对某种创伤类型有抗性。或者对附加标签,但正如我已经解释过的,那不会有任何作用。

{  
  "minecraft:zombie": {  
    "resistant": {  
      "slash": 5.0,  
      "pierce": 5.0,  
      "chop": 5.0,  
      "spaghetti": 5.0  
    }  
  }
}

当然,你也可以让一个实体同时对任何东西易伤和抗性。

  "minecraft:skeleton": {
    "vulnerable": {
      "blunt": 5.0,
      "chop": 2.5
    },
    "resistant": {
      "pierce": 5.0,
      "slash":  5.0
    }
  },

护甲

那么护甲是如何运作的呢?

护甲照常运作。护甲机制没有任何改动。

兼容性

目前,只有我的模组有内置兼容性。

生物:

武器: