多尔特克斯附魔

多尔特克斯附魔

Alfie出色的"沉浸式附魔"模组的扩展包,根据我自己的愿景设计

需要 沉浸式附魔 4.0.3 和 蓝图。你必须下载 4.0.3 版本,更新的版本将无法工作。仙尘材质取自 索引附魔 中的 Vitalis 物品(基于 MIT 许可)。这是一个临时材质,我会尽快替换。

更一致的附魔

首先简要介绍沉浸式附魔的机制:如果你想为工具附魔,必须通过探索找到带有该附魔的古代书,将其放在附魔台旁边的雕纹书架中,这样就完成了。你可以在此阅读更多信息。

这是一个很棒的机制;我对它有一些小不满,无法通过数据包解决,所以我决定制作这个附加包。

首先,在沉浸式附魔中获取附魔书非常依赖随机数。这正是本模组要解决的主要问题。因此,我添加了一个更复杂的系统来将附魔分布到战利品箱中。

  • 普通附魔是指可以应用于基础工具和盔甲(镐、剑、锹、锄、头盔、胸甲、护腿、靴子、刀(农夫乐事)、弓、弩)的附魔。这排除了宝藏附魔(如灵魂疾行)。大多数地牢宝箱(刷怪笼房间、水下遗迹、沙漠神殿)可以包含带有普通附魔的书。
  • 除此之外,一些地牢拥有更特定的附魔;例如,水下遗迹会生成钓鱼竿和三叉戟的附魔。
  • 宝藏附魔会在其正确的位置出现;例如,迅捷潜行在远古城市,灵魂疾行在堡垒遗迹。
  • 模组工具有时会有一套其他工具没有的专属附魔。这些工具通常与结构相关联(比如重锤和试炼密室的附魔)。这些专属附魔的书籍只会在对应结构中生成,不会污染其他附魔池。

杰登下界扩展的泵充霰弹枪,带有后坐力 I 附魔

我对此仍不满意;在 Minecraft 中探索本身就高度依赖随机数,所以我做了一些其他工作。首先,我将每个附魔与某个随机物品关联起来;这被称为它的试剂。如果你想为特定附魔制作一本书,可以使用以下合成配方:

深度探索者书籍的配方,需要 7 个钻石、1 本书和 1 条热带鱼。热带鱼是深度探索者的试剂

生成的古代书带有深度探索者附魔,因为热带鱼是深度探索者的试剂。试剂是完全数据驱动的,稍后会提到。你也可以通过一个称为召唤的过程,使用附魔台获取任意古代书。

召唤工具提示

将一本书放在附魔台中央,并将任何可附魔物品放入试剂槽。系统将提示所有可以应用于该可附魔物品的附魔,你可以花费 20 级经验将其添加到书本上。

你可以消耗 20 级经验

这会消耗书、试剂和 20 级经验。图片中的下界合金镐不会被消耗。

从地牢找到的古代书有一定几率包含多于一个附魔;这是书籍获得多个附魔的唯一途径。

一个刷怪笼房间的箱子,里面有一本带有两个附魔的古代书

此外,你可以设置某些附魔在附魔台中自动可用,无需古代书。在提供的数据包中,这对一些基础附魔(如精准采集、效率)以及我暂时想不到合适试剂的附魔(如力量、饵钓、穿刺)进行了设置。

标准化附魔成本

在沉浸式附魔中,要应用一个等级的附魔,除了青金石之外,你还需要一个额外的物品作为成本。所需物品的种类变化很大。要将一件物品的效率附魔升满,你需要:

  • 1 个蛋糕
  • 8 个红石块
  • 16 个闪烁的西瓜片
  • 1 个兔子脚
  • 8 个龙息

要给弓附魔无限,你需要一个下界之星。

在沉浸式附魔中,无限的附魔成本是一个下界之星

蠢萌附魔将这个成本标准化为仙尘。仙尘是一种用钻石加上一些半珍贵材料合成的物品。要给物品附魔到特定等级,你需要 等级 个青金石物品和 等级 - 1 个仙尘物品。例如,要将弓附魔到力量 III,你需要 3 个青金石和 2 个仙尘。

这是一个总结上述所有内容的视频。

Embed Removed: https://www.youtube-nocookie.com/embed/aXoBq7fJoBI

自定义

附魔数据

本模组的所有功能都是数据驱动的。要设置试剂,你需要将 JSON 文件放入 你的模组id:reagents/ 文件夹中,如此处所示。

以下是另一个示例:

{
    // 格式为 "附魔": "试剂"
    // 试剂可以是单个物品、标签或物品列表。
    // 不要在列表中使用标签;不支持此操作。
    "allurement:alleviating": "heart_crystals:heart_crystal_shard",
    "allurement:launch": "#minecraft:saplings",
    "allurement:obedience": [
      "species:broken_links",
      "minecraft:ghast_tear",
      "dungeonsdelight:rotbulb"
    ]
}

要将附魔标记为宝藏附魔,请将其放入 #doltastic_enchantments:treasure 附魔标签中。这将把它从用于生成战利品表的池中移除,并且游戏不会因为缺少试剂而出错。

要声明某个附魔应在附魔台上可用而无需古代书,请转到该附魔的沉浸式附魔成本 JSON,并添加 "requireBook": false,如此处所示。

在基础的沉浸式附魔中,如果定义了附魔成本 JSON 但没有 levels 字段,游戏会崩溃。安装本模组后,附魔成本将默认为仙尘物品的 等级 - 1 公式(如果附魔只有一个等级,则为固定两个物品)。它也可以选择接受一个 fairyDustAmounts 字段,该字段接受一个整数列表。

{
    "fairyDustAmounts": [19, 23, 29, 31, 37]
}

这将序列化为一个附魔成本:1 级需要 19 个仙尘,2 级需要 23 个仙尘,以此类推。

最后,没有定义成本 JSON 的任何附魔都将默认使用 等级 - 1 公式。

我还添加了可靠移除器集成;被可靠移除器标记为已移除的附魔将不会再出现在任何池中。

战利品添加

古代书通过一个Forge 全局战利品修改器添加到战利品中。以下是一个示例。

{
  "type": "doltastic_enchantments:ancient_book",
  "conditions": [],
  "injections": [
    {
      "items": [
        "minecraft:crossbow"
      ], 
      "tables": [
        "minecraft:chests/bastion_bridge",
        "minecraft:chests/bastion_other"
      ],
      "weightedBookCount": 0.09
    },
    {
      "commonEnchants": true, 
      "tables": [
        "minecraft:chests/simple_dungeon",
        "atmospheric:chests/arid_garden"
      ],
      "weightedBookCount": 0.8
    }
  ]
}

injections 字段接受一个包含 BookInstance 对象的列表,其目的是确定应将哪些附魔添加到哪些战利品表中。tables 字段处理后一部分。有三个字段用于创建可供采样的附魔列表,以便生成书籍:

enchantments:最简单的字段。从列表中指定的任何附魔中抽取。

commonEnchants:接受 true/false,设置为 true 将从之前定义的“普通附魔”池中抽取;即非宝藏附魔,且可以应用于标准工具和盔甲等的附魔。

items:接受一个物品名称列表。从可以应用于列表中任何物品的附魔集合中抽取,排除宝藏附魔。

weightedBookCount 控制平均注入到箱子中的书籍数量。

enchantCount(未在图中显示)接受一个 UniformInt 对象,该对象将被采样以决定书籍上将添加的附魔数量。例如:

"enchantCount": {
    "min_inclusive": 2,
    "max_inclusive": 5
}

这将使生成的书籍带有 2 到 5 个附魔。min_inclusive 和 max_inclusive 可以设置为相同的数字。

综合以上所有内容,如果你希望每个沙漠神殿宝箱有 1/2 的几率包含一本带有任意两个三叉戟附魔的书籍,你可以这样做:

{
  "type": "doltastic_enchantments:ancient_book",
  "conditions": [],
  "injections": [
    {
      "items": [
        "minecraft:trident"
      ], 
      "tables": [
        "minecraft:chests/desert_pyramid"
      ],
      "weightedBookCount": 0.09,
      "enchantCount": {
        "min_inclusive": 2,
        "max_inclusive": 2
      }
    }
  ] 
}

不要遗漏 conditions 字段,否则游戏会崩溃。