持盾伤害减免

持盾伤害减免

持盾时的被动伤害减免,包括模组盾牌,支持按实体和按物品的可配置覆盖。

装备

持有盾牌伤害减免(Held Shield DR)为盾牌类物品添加被动伤害减免,灵感来自出色的 Passive Shield 模组。开箱即支持模组盾牌,无需额外配置!

默认情况下,玩家只需持有盾牌即可获得伤害减免。你也可以将这一行为扩展到特定的非玩家实体、为某些实体设置自定义数值,或在整合包需要时为其他生物启用一项兜底设置。

该模组还支持针对单个物品的覆盖设置,因此单个盾牌可以使用自己的伤害减免数值,而不是使用常规的共享设置。这样一来,无需改动整个系统即可轻松调整模组盾牌。

盾牌检测非常灵活。它支持常规的盾牌检查、通用的盾牌物品行为,以及可选的提示信息支持(客户端也需要安装才会显示),让玩家可以看到某个盾牌被配置成什么效果。

1.1.2 新增:现在,当被动伤害减免生效时,盾牌可以选择消耗耐久度,并支持可配置的倍率和上限选项。

配置示例

剧透

这个示例同时完成了以下几件事:

  • 玩家获得 33% 的被动盾牌伤害减免。
  • 允许玩家使用针对单个物品的盾牌覆盖设置。
  • 允许东方小女仆(Touhou Little Maid)的女仆使用被动盾牌伤害减免。
  • 它们使用自定义的 65% 数值,而不是常规共享的 33%。
  • 注意:此处使用的实体 ID 来自东方小女仆的 1.12.2 版本。其他版本可能使用不同的 ID,例如 1.20.1 使用 touhou_little_maid:maid,而不是 touhou_little_maid:entity.passive.maid。请务必核对你所用版本的实际实体 ID。
  • 不在白名单中的非玩家实体默认不使用被动盾牌伤害减免。
  • 如果启用了 applyToAllEntities,这些实体将使用它们各自单独的 33% 兜底数值。
  • 特定的盾牌物品可以使用自己的自定义伤害减免。
  • 盾牌提示信息已启用。
  • 额外的物品覆盖后缀文本已禁用。
general {
    B:enabled=true

    B:applyToPlayers=true
    B:playersUseItemOverrides=true
    D:damageReductionPercent=33.0

    B:applyToAllEntities=false
    D:allEntitiesDamageReductionPercent=33.0

    # Use entityWhitelist if you want an entity to use the normal shared damageReductionPercent value above.
    S:entityWhitelist <
        touhou_little_maid:entity.passive.maid
     >

    # Use entityDamageReductionOverrides if you want an entity to use its own custom value instead.
    # If an entity is listed here, it does not need to also be in entityWhitelist.
    # Overrides take priority over the shared whitelist value.
    S:entityDamageReductionOverrides <
        touhou_little_maid:entity.passive.maid;65.0
     >

    # If true, eligible non-player entities can also use itemDamageReductionOverrides.
    # Entities with their own per-entity override ignore item overrides.
    # Entities using entityWhitelist or applyToAllEntities keep the higher of their normal DR or the item override.
    B:entitiesUseItemOverrides=false

    S:itemDamageReductionOverrides <
        basemetals:diamond_shield;90.0
     >

    B:showShieldTooltips=true
    B:showItemOverrideText=false
}