铁魔法属性

铁魔法属性

为Iron's Spells and Spellbooks注册的每个法术和学派创建Minecraft属性,包括由附属模组提供的条目。

铁之咒术属性扩展(Attributes For Iron's Spells)

Attributes For Iron's Spells(ais)是一个 NeoForge 1.21.1 模组,为 Iron's Spells and Spellbooks 注册的每一个法术和学派创建 Minecraft 属性,包括由附属模组提供的条目。

前置要求

  • Minecraft 1.21.1
  • NeoForge 21.1.226 或更高版本
  • Iron's Spells and Spellbooks 1.21.1-3.15.6 或更高版本
  • Iron's Spells 的常规依赖:Iron's Lib、GeckoLib、Player Animator 和 Curios

属性

全局属性:

属性 默认值 效果
ais:all 0 所有法术的固有等级
ais:all_cooldown 1.0 所有法术的冷却时间倍率
ais:all_cast_time 1.0 所有法术的施法时间倍率
ais:all_cost 1.0 所有法术的魔力消耗倍率
ais:keep_scroll 0.0 成功使用卷轴后不消耗的几率

对于每个注册的法术 <命名空间>:<路径>:

  • ais:spell/<命名空间>/<路径>
  • ais:spell_cooldown/<命名空间>/<路径>
  • ais:spell_cast_time/<命名空间>/<路径>
  • ais:spell_cost/<命名空间>/<路径>

对于每个注册的学派 <命名空间>:<路径>:

  • ais:school/<命名空间>/<路径>
  • ais:school_cooldown/<命名空间>/<路径>
  • ais:school_cast_time/<命名空间>/<路径>
  • ais:school_cost/<命名空间>/<路径>

示例:

attribute @s ais:school/irons_spellbooks/fire base set 3
attribute @s ais:spell/irons_spellbooks/cloud_of_regeneration base set 5
attribute @s ais:spell_cooldown/irons_spellbooks/fireball base set 0.5

所有属性都支持原版操作,例如 add_value、add_multiplied_base 和 add_multiplied_total。

解析规则

有效法术等级为:

max(法术书等级, ais:all, 学派等级, 法术等级)

小数等级向下取整,结果被限制在法术声明的等级范围内。

冷却时间、施法时间和魔力消耗使用:

全局倍率 × 学派倍率 × 法术倍率

例如,全局倍率为 0.5 且法术倍率为 0.5 时,最终倍率为 0.25。这些倍率影响法术书和固有施法。负值将被限制为零;非有限值将安全地回退到中性行为。

重置命令

拥有权限等级 2 的管理员可以重置存储的基础值,而不会移除由装备、效果或其他模组提供的修饰符:

/ais reset <目标> all
/ais reset <目标> spell [法术ID]
/ais reset <目标> school [学派ID]
/ais reset <目标> cooldown [法术或学派ID]
/ais reset <目标> cast_time [法术或学派ID]
/ais reset <目标> cost [法术或学派ID]
/ais reset <目标> keep_scroll

法术和学派 ID 支持 Brigadier 自动补全。省略 ID 将重置整个所选类别。

法术特定伤害标签

伤害谓词可以识别产生 Iron's Spells SpellDamageSource 的确切法术。每个法术都会自动暴露一个虚拟的伤害类型标签,使用:

<法术命名空间>:spell/<法术路径>

例如,一个 minecraft:player_hurt_entity 进度可以只匹配牺牲(Sacrifice):

{
  "damage": {
    "type": {
      "tags": [
        {
          "id": "irons_spellbooks:spell/sacrifice",
          "expected": true
        }
      ]
    }
  }
}

无需伤害类型标签 JSON 文件。附属法术 ID 遵循相同的规则,因此注册为 hazennstuff:shadow/arcane_cards 的法术可通过 hazennstuff:spell/shadow/arcane_cards 使用。这适用于使用或继承 Iron 的 SpellDamageSource 的附属模组,包括标准的 AbstractSpell#getDamageSource 流程。创建不相关伤害来源的附属模组不携带法术 ID,因此不会被标记。

在 ai/ais-sacrifice-damage-test 提供了一个仅用于开发的简化牺牲测试包。在测试世界中安装后,用 ais_sacrifice_test_target 标记一个目标,当牺牲对其造成伤害时,该目标会说 hello。ai 目录不属于构建的模组 jar 文件的一部分。

稳定性行为

  • 动态持有者在启动期间被缓存;施法不会扫描注册表。
  • 缺失属性、未知法术、缺失学派、格式错误的卷轴数据和不兼容的附属条目会安全地无操作处理。
  • 对于在 Minecraft 属性注册表冻结之后才引入的法术,将保持原样而非冒服务器崩溃的风险。
  • 属性同步仅在相关等级属性发生变化时刷新客户端固有选择。