[TACZ/RN 团队] 自护盾

[TACZ/RN 团队] 自护盾

TACZ Self Shields 为TACZ添加了弹道防弹衣,让玩家可以装备最多4个防护板来吸收子弹、抛射物和火焰伤害,并配有专门的分段防护HUD。由RN团队开发。

TACZ 自我护盾

NeoForge 1.21.1TACZ(非官方移植版)附加模组,增加了弹道护甲板:一个针对枪击、原版弹射物和火焰的分区保护池——不使用原版吸收效果,也不提供摔落保护。

葡萄牙语版本:README_pt-br.md

RN 团队开发。

模组 ID tacz_self_shields
版本 0.1.0
Minecraft 1.21.1
加载器 NeoForge 21.1.x
必需依赖 TACZ(modId: tacz
可选 JEI(配方查看)
作者 RN 团队

技术文档(ADR):docs/architecture-1.0.md
更新日志:CHANGELOG.md


模组功能

弹道护甲板

  • 可合成物品,右键安装(带有占位动画的使用动作)。
  • 每块安装的护甲板成为一个保护分区(默认:10 点)。
  • 最多同时安装 4 块护甲板(默认:总共 40 点)。
  • 此保护并非吸收效果(不显示黄色心形)。

自动安装护甲板

使用新护甲板时:

情况 结果
有空槽位(例如 1.5 板) 增加 1 块完整护甲板 → 例如 2.5(槽位 1–2 满,第 3 个半满)
已满但有损坏的护甲板(例如 3.5) 替换最右侧损坏的护甲板 → 4 块完整;旧护甲板消失(不会返还到物品栏)
4 个槽位全满且无损坏 不安装(显示槽位已满消息)

顺序始终标准化:完整的护甲板在左侧损坏的在右侧。伤害从右侧开始消耗。

护甲板可阻挡的伤害

  • TACZ 枪击
  • 原版弹射物(箭、三叉戟等 — IS_PROJECTILE 标签)
  • 火焰

护甲板不阻挡的伤害

  • 摔落伤害
  • 近战、爆炸、溺水以及上表未列出的其他伤害来源

伤害公式

当保护池 > 0 时:

  1. 先应用百分比减免(默认 10%
  2. 从保护池中扣除剩余伤害
  3. 多出的伤害作用于生命值(溢出)

没有保护池时:全部伤害作用于生命值。

HUD

护甲条上方的分段条(左侧状态栏)。每段代表一个分区;随着损耗颜色变化(绿 → 黄 → 红)。

音效

  • 安装:在点击时(右键)播放,无需等待使用动作完成
  • 分区破裂:在护甲板归零时播放

文件:assets/tacz_self_shields/sounds/plate_install.oggplate_break.ogg
指南:docs/sounds.md

合成

两个下界合金锭在 3×3 网格中的任意一列竖直摆放(多种可合成图案)。JEI 仅显示主要配方;其他图案在合成台上依然有效。

测试命令

/tacz dumb <num_shields 0-4> <pos>

生成一个可射击的假人,带有有限的护甲板和一个显示点数名称标签(需要权限等级 2)。


要求


配置

服务端配置文件:tacz_self_shields-server.toml

默认值 描述
max_partitions 4 最大可安装护甲板数量
ballistic_points_per_plate 10 每块新护甲板提供的点数
damage_reduction 0.10 消耗保护池前减免的比例(0.10 = 10%)

构建与运行

gradlew.bat build

Jar 输出在 build/libs/ 下(例如 tacz_self_shields-1.21.1-0.1.0.jar)。

gradlew.bat runClient

项目结构(概要)

docs/
  architecture-1.0.md   # ADR
  sounds.md             # 音效和未来的关键帧
src/main/java/com/taczselfshields/
  ballistic/            # 保护池、公式、伤害
  client/               # HUD、假人渲染器
  command/              # /tacz dumb
  compat/jei/           # 在 JEI 中隐藏替代配方
  config/               # TOML
  entity/               # 护盾假人
  item/                 # 弹道护甲板
  network/              # HUD 同步
  registry/             # 物品、音效、实体、附件

超出范围(0.1.0)

  • GeckoLib 安装动画 / Blockbench 音效关键帧(.bbmodel 可能存在;运行时接线延后处理)
  • 手动移除护甲板 / 不消耗新物品修复
  • 对近战、爆炸、溺水等的防护
  • TACZ 枪械包 / KubeJS / mixins