受抑制的

受抑制的

一个用于钯金的库,添加了多种力量抑制的交互功能。

游戏机制

Image

一个添加与力量压制相关物品和效果的 Palladium 附属模组。

Dampened 是 Palladium 的一个附属模组,添加了方块、效果和交互功能,使附属包开发者能够实现跨包的的力量压制。希望借助此模组,让力量压制流程尽可能简化。

关于如何正确地将 Dampened 兼容性添加到您的附属模组,或将其整合到附属模组中的说明即将推出!

最初为 Arrzee 的 Enhanced SMP 制作。立即观看!

功能

压制方块

  • 压制方块(暗物质)
  • EMP 干扰器(科技)
  • 魔法符文(魔法)
  • 创造模式压制方块

目标压制

  • 压制手铐(暗物质)
  • 氪石-金手铐
  • 魔法压制手铐
  • 科技压制腰带
  • 压制项圈(变异体)

兼容性

选项 1:可选依赖

如果您希望 Dampened 成为附属模组的可选依赖,请按照以下步骤操作。

第一部分:自定义条件

要为您的附属模组添加 Dampened 兼容性,首先需要添加一个自定义的力量条件。 可以通过将以下内容放入位于 addon/<您的命名空间>/kubejs_scripts/safe_player_has_effect.js 的文件中来实现。

注意:请将 <您的命名空间> 替换为您模组的命名空间!

/*
    @author Hertz
    @version 2.0
*/

var BuiltInRegistries = Java.loadClass("net.minecraft.core.registries.BuiltInRegistries")

function resolveAllegedBooleanFromObject(thing) {
    if (thing.toString() == 'true') { return true; }
    if (thing.toString() == 'false') { return false; }
    return null
}

StartupEvents.registry('palladium:condition_serializer', (event) => {
    event.create('<您的命名空间>:dampened_by')
    .addProperty("effect", "string", "minecraft:health_boost", "要搜索的效果")
    .test((entity, props) => {
        let targetEffect = props.get("effect")
        var toReturn = false
        
        try {
            var fetchedEffect = BuiltInRegistries.MOB_EFFECT.get(targetEffect)
            if (fetchedEffect == null) {
                // throw new Error(`目标效果 ${targetEffect} 未找到!`)
                toReturn = false
            } else {
                toReturn = entity.hasEffect(targetEffect)
            }
        } catch (err) {
            console.log(err)
        }
        
        return !toReturn
    })
});

第二部分:实现

添加自定义条件就像将其嵌入某个力量的 unlocking 条件中一样简单。但是,要使用力量,您需要确保自己未被压制,因此您需要将自定义的 safe_player_has_effect 包裹在 palladium:not 条件中。以下是力量 JSON 文件的片段。

"conditions": {
  "unlocking": [
    {
      "type": "<您的命名空间>:dampened_by",
      "effect": "dampened:genetic"
    }
  ]
}

您可以随意替换压制您力量的效果,这样就完成了!

选项 2:必需依赖

如果您希望 Dampened 成为附属模组的必需依赖(如同 Arrzee's Multiverse 那样),您可以使用 Palladium 内置的 palladium:has_effect 条件来代替自定义条件。

"conditions": {
  "unlocking": [
    {
      "type": "palladium:has_effect",
      "effect": "dampened:genetic"
    }
  ]
}

您需要在附属模组的 pack.mcmeta 或模组的 META_INF/mods.toml 中将 Dampened 反映为依赖项。