🌐 中文 · English
在 Minecraft 中还原真实的身体损伤与医疗体系。
| 平台 | Minecraft 1.21.1 + NeoForge 21.1.252 |
| 构建 | ModDevGradle 1.0.24 · Gradle 8.14.3 · Java 21 |
| mod id | icu |
| 当前版本 | 0.2.2 |
| 许可证 | Apache-2.0(允许修改与再分发) |
| 已实现 | 4 个玩法模块 + 1 个物品 + JEI 集成 |
必需
| 组件 | 版本 |
|---|---|
| Minecraft | 1.21.1 |
| NeoForge | 21.1.252 或更高的 21.1.x |
| 本模组 | icu-Mod-0.2.2.jar(从 Releases 下载) |
把 icu-Mod-0.2.2.jar 放进实例的 mods/ 文件夹即可。
⚠️ 只下载带-Mod的.jar。 Release 里另有icu-<版本>-src.zip,那是源码压缩包(.zip格式,装不进mods/)。 不要下载任何-sources.jar:它是 jar 格式、且含neoforge.mods.toml, 装进mods/后模组会显示在列表里但代码完全不会执行,等于没装。
可选:JEI(想看到绷带信息页与 ICU 分类页才需要)
| 组件 | 版本 |
|---|---|
| Just Enough Items (JEI) | jei-1.21.1-neoforge-19.57.0.450 或更高的 19.x |
从 modrinth.com/mod/jei 下载 1.21.1 + NeoForge 那个文件,放进 mods/ 即可。
不装 JEI 完全没问题:ICU 照常运行,只是少两个 JEI 页面。 ICU 的
mods.toml把 JEI 声明为optional,所以两者顺序、有无都不影响加载。
ICU 把「受伤」和「救治」做成一套写实的机制。玩法以独立模块形式添加,一个功能一个包,互不干扰。
| 模块 | 内容 |
|---|---|
| 大出血 | 被刀斧重创后持续失血,可用绷带救治 |
| 血容量 | 隐藏血量;出血时每秒 −5%,归零即死;非出血时缓慢自然恢复 |
| 疼痛值 | 出血与崴脚共用的疼痛计量;满值会强制倒下 |
| 摔落崴脚 | 高处摔落有概率扭伤脚踝;护甲附魔可减免 |
| 绷带 | 3 纸 + 1 线 + 1 羊毛;按住 3 秒止血 |
| JEI 集成(可选) | JEI 存在时:绷带信息页 + ICU「大出血流程」分类页 |
心跳音效尚未实现:设计已定稿,等音频素材。 JEI 是可选的:不装 JEI 也能正常玩,ICU 不会因此报错。
src/main/java/com/icu/icu/
├── IcuMod.java ← 起点:模组入口,只做注册
├── IcuAttachments.java ← 全部玩家状态(血容量/疼痛/崴脚…)
├── IcuItems.java ← 物品注册
├── item/BandageItem.java ← 绷带
└── gameplay/ ← ★ 所有玩法的家,一个功能一个子包
├── bleeding/ ← 大出血 + 恢复期
├── blood/ ← 血容量
├── pain/ ← 疼痛值
└── sprain/ ← 摔落崴脚
想改玩法 → 只动对应的 gameplay/<模块>/。
想加新玩法 → 在 gameplay/ 下新建一个包(如 fracture/)。 详见 docs/DEVELOPMENT.md。
| 文档 | 什么时候看 |
|---|---|
| 本文件 | 第一次接触项目 |
| docs/CHANGELOG.md | 想知道「实现了什么功能、改了什么」 |
| docs/PROJECT_STRUCTURE.md | 想知道每个文件具体干什么 |
| docs/DEVELOPMENT.md | 要加新功能、改代码之前 |
| docs/PROJECT_REPORT.md | 项目管理、问题分析、接手总览 |
| docs/HANDOVER.md | 接手项目,想快速了解全貌与当前状态 |
方式一:直接下载(普通玩家用这个)
见上方「安装」章节 —— 从 Releases 下载 icu-Mod-0.2.2.jar 丢进 mods/。
方式二:自己编译
build.bat产物:build/libs/icu-Mod-0.2.2.jar。
本机有沙箱限制,
build.bat已内置所需环境变量(JDK 21 路径等)。 在没有限制的普通机器上,直接gradlew.bat build即可。 细节与踩坑记录见 docs/PROJECT_REPORT.md 与 docs/HANDOVER.md。
方式三:云端自动构建(推荐,本机编译不了时用这个)
推送到 main 会自动编译检查;推一个 v* 标签会自动编译并发布 Release:
git tag v0.1.0
git push origin v0.1.0标签即版本号:
v0.1.0→ mod 版本0.1.0(workflow 自动写入gradle.properties)。 编译失败会记录在BUILD_FAILURES.md。
被剑/斧类武器命中、且护甲+附魔结算后最终伤害 > 7 点 时触发。
| 行为 | 数值 |
|---|---|
| 出血层数 | 每命中一次 +1,无上限 |
| 失血 | 血容量 每秒 −5%(100% → 0% = 20 秒) |
| 致死 | 只有血容量归零会致死 |
| 强制趴下 | 游泳姿态 + 锁移动 + 禁跳 + 锁击退 |
| 附加效果 | 反胃 + 黑暗(持续刷新) |
| 表现 | 血粒子、中文死亡消息 |
创造 / 旁观 / 无敌玩家不会出血:出血状态会被清除,致死路径对这类玩家不可达。
| 规则 | 数值 |
|---|---|
| 初始 / 上限 | 100% |
| 大出血期间 | 每秒 −5% |
| 归零 | 立即死亡 |
| 自然恢复 | 非出血期间每 10 分钟 +5% |
| 绷带治疗 | 不重置,保留当前数值 |
3 纸 + 1 线 + 1 羊毛,堆叠 16。右键按住 3 秒;期间出血照常每秒扣 5% 血容量。
⚠️ 绷带只在血容量 ≥ 15% 时有效。 低于这个值说明你已经流得快死了,绷带救不回来: 会提示「绷带没用——血已经流干了」,出血继续到归零。 判定发生在按住 3 秒结束的那一刻,所以血不够时你会先缠满 3 秒、然后才失败 (绷带照常消耗,不能反复试)。
| 来源 | 每秒 |
|---|---|
| 大出血 | +10% |
| 崴脚·行走 | +5% |
| 崴脚·奔跑 | +10% |
| 崴脚·跳跃 | +15%(一次性) |
| 趴下状态 | −5% |
满 100% → 强制趴下 + 弹 3 次「我好疼 我好疼」(仅自己可见);降至 80% 恢复行动。
治疗后 5 分钟。期间跑 >15 秒或第 4 跳 → 伤口复发(血容量不重置)。任何跑/跳会重置计时。
| 摔落高度 | 概率 |
|---|---|
| ≤ 5 格 | 不触发 |
| > 5 且 < 10 | 35% |
| ≥ 10 且 < 15 | 50% |
| ≥ 15 且 < 20 | 90% |
| ≥ 20 | 100% |
干草块 −20 个百分点;保护/摔落保护附魔每级 −8,4 级完全免除。 入水、缓降、鞘翅、紫颂果、抗火自动豁免。
本项目采用 Apache License 2.0。三处声明完全一致:
| 位置 | 内容 |
|---|---|
LICENSE |
Apache License 2.0 全文 |
gradle.properties |
mod_license=Apache-2.0(会写入模组元数据,游戏内模组列表可见) |
| 本文件 | 你正在看的这一节 |
你可以:自由使用、修改、分发本项目,包括商业用途与二次开发。 条件:保留版权与许可证声明,并标明你做出的修改(见 LICENSE 第 4 条)。 不提供担保:见 LICENSE 第 7 条。