feat: add docs

This commit is contained in:
2026-07-29 16:04:53 +03:00
parent ad5e4e7d33
commit 56208a4a25
10 changed files with 1296 additions and 0 deletions
+276
View File
@@ -0,0 +1,276 @@
# Техническое задание: аддон для HBM's Nuclear Tech Mod
Целевая платформа — **HBM's Nuclear Tech Mod**, Minecraft 1.12.2 (основная версия мода; для обкатки механик допустима 1.18.2). Аддон добавляет новый тип излучения, замкнутую производственную цепочку, эндгейм-вооружение, линейку защитного снаряжения и две генерируемые локации.
Физическое и лорное обоснование всех механик — в остальных документах комплекта. Здесь фиксируются только игровые правила.
## 1. Механика EF-дозы
Для игрока ведётся скрытая переменная `energetive_dose` в диапазоне 0–1000. Она не заменяет стандартную радиацию HBM, а работает параллельно ей.
### Пороговое насыщение
Принципиальное отличие от радиации HBM: доза **не растёт бесконечно**. Каждый источник имеет два параметра — `speed` (скорость заполнения) и `cap` (потолок, выше которого этот источник поднять шкалу не может).
| Элемент | EF | `cap` | Состояние игрока на потолке |
| --- | --- | --- | --- |
| Энергит (EG) | 1 | **300** | Утомление I, Медлительность I. Умереть невозможно |
| Айгерит (ER) | 2 | **550** | Тошнота I, Медлительность II, Слабость I. Здоровье не страдает |
| Фюрцит (VR/FC) | 3 | **800** | Слепота, Тошнота II, Медлительность III, Слабость III. Полная беспомощность **без урона по здоровью** |
| Алленит (AL) | 4 | **950** | Максимальные дебаффы комы. До точки смерти остаётся 50 единиц |
| Риценит (RC) | 5 | **нет** | Пробивает 1000, запускает тик кастомного урона. Смерть за 0,5–1 с |
Слабый источник физически не способен убить игрока сколь угодно долгой экспозицией — этим EF-система отличается от урана HBM, где даже микродоза со временем дожимает шкалу до конца.
### Фазы дебаффов
| Доза | Оповещение и эффекты |
| --- | --- |
| 100–300 | Сообщение в чат: *«Во рту появился странный привкус...»* Утомление I, Медлительность I |
| 300–600 | Медлительность II, Слабость I, Тошнота I |
| 600–900 | Слепота, Слабость III, Медлительность III, Тошнота II |
| 900–1000+ | Кастомный `Energetive Damage`, 1–2 сердца в секунду. Сообщение о смерти: *«[Игрок] умер от тотальной мышечной релаксации»*; для RC — *«[Игрок] мгновенно заснул вечным сном при контакте с Риценитом»* |
### Спад дозы и снятие эффектов
После выхода из зоны доза автоматически снижается. Слепота, тошнота и урон уходят первыми (20–40 секунд), медлительность и слабость держатся дольше — это симулирует лорный период пробуждения (20 минут — 4 часа).
Дебаффы реализованы штатными эффектами зелий, поэтому **снимаются ведром молока**. Это осознанное балансное решение:
- ведро молока не стакается и занимает целый слот, поэтому запас антидота конкурирует с боеприпасами и ресурсами;
- время выпивания (около 1,5 с) достаточно при поражении 3–4 класса и заведомо недостаточно при контакте с Риценитом.
### Три источника облучения
Разделение сделано ради производительности сервера: постоянный просчёт излучения от десятков `EntityItem` на земле перегружает процессор.
**1. Предметы в инвентаре.** Проверка инвентаря на `PlayerTickEvent`. Лежащий в сундуке или валяющийся дропом предмет пассивен; как только он попадает в слоты игрока, доза устремляется к своему `cap`. Дебаффы навешиваются **длительностью 30 секунд — 8 минут** (Фюрцит — до 2–3 минут, Алленит — до 8) и **не исчезают при выбрасывании предмета**: резонанс уже вошёл в нервную систему. Инвентарь при этом не блокируется — игрок сохраняет возможность действовать, просто действует ослеплённым и заторможенным.
**2. Слой пыли на земле.** Выброшенная из инвентаря пыль превращается в блок-слой (по аналогии с ванильным снегом) с мерцающей сине-зелёной текстурой. Триггер — `onEntityWalk` / `onEntityCollision`: стоящий рядом игрок в безопасности, наступивший получает резкий скачок дозы. Для риценитового слоя наступание без экранированной обуви означает мгновенную смерть. Механика позволяет «минировать» подступы к базе: лазутчик либо погибает (RC), либо засыпает на пороге (AL, FC), выронив снаряжение.
**3. Площадное заражение.** Для крупных объектов — старая БЭС в бункере, эпицентр взрыва, аварийный РЭС — спавнится технический блок-маркер, раз в секунду сканирующий сферу (AABB) радиусом порядка 32 блоков и начисляющий дозу всем живым внутри. Маркер имеет таймер: через 20–40 минут интенсивность падает, затем блок исчезает, оставляя местность чистой.
### HUD
Индикатор EF-дозы выводится отдельно от шкалы радиации HBM. Иконка — красный трёхсекционный тессеракт (тот же символ, что на знаках ТБ): за счёт схожести с радиационным трилистником игрок мгновенно понимает характер угрозы. При росте дозы иконка пульсирует. Цветовая градация шкалы — от зелёного к бирюзовому и фиолетовому.
## 2. Иммунитет мобов (конфигурация)
Аддон должен позволять владельцам серверов и сборок задавать белый список сущностей, невосприимчивых к EF-излучению (по лору — роботы, киборги, автоматика).
**Java, Forge 1.12.2** — через стандартный `@Config`:
```java
package com.yourname.energetives.config;
import net.minecraftforge.common.config.Config;
import com.yourname.energetives.ModInfo;
@Config(modid = ModInfo.MODID, name = "energetives_expansion")
public class EnergeticsConfig {
@Config.Comment("Белый список сущностей, полностью игнорирующих EF-излучение. Формат: modid:entity_name")
public static String[] ef_radiation_whitelist = new String[] {
"minecraft:wither",
"minecraft:iron_golem",
"hbm:cyber_zombie"
};
}
```
Проверка в точке наложения эффектов:
```java
public static void applyEFRadiation(EntityLivingBase entity) {
String entityID = ForgeRegistries.ENTITIES.getKey(entity.getType()).toString();
if (Arrays.asList(EnergeticsConfig.ef_radiation_whitelist).contains(entityID)) {
return; // сущность в белом списке — излучение не действует
}
entity.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, 200, 0));
// ...остальные эффекты и начисление дозы
}
```
**MCreator** — через плагин «Configuration Files»: на `On mod loading` создаётся файл `ef_whitelist.txt` со значениями по умолчанию; в процедуре тика источника выполняется `IF (File contains line [registry name of target entity])` → пустая ветка (иммунитет), `ELSE` → наложение эффектов.
**Версии 1.18.2+** — предпочтительный путь через теги сущностей: файл `data/energetives/tags/entity_types/ef_immune.json`, проверка сводится к одной строке `if (entity.getType().is(ModTags.EntityTypes.EF_IMMUNE)) return;`. Сборщики смогут дополнять список датапаками, не касаясь конфигов.
## 3. Материалы и производственная цепочка
| Ступень | Что делает игрок | Машина |
| --- | --- | --- |
| **Добыча TT** | Поиск метеоритной руды или демонтаж экранов и обшивки в Шахте №0 | Кирка, разборочный стол |
| **TT → EG** | Бомбардировка Тельтнита гелием | Линейный ускоритель / циклотрон HBM + баллоны с гелием |
| **EG → ER → VR** | Последовательная бомбардировка ядрами нарастающей массы (Fe/Ni, затем Cu/Zn) | Ускоритель частиц |
| **Синтез энергии и AL** | Штатный цикл на фюрцитовой пыли | **РЭС** (многоблочный) |
| **AL → RC** | Форсаж реактора либо точечный перевод слитка | **РЭС** в критическом режиме / **Лазерный диспергатор** |
| **Активные элементы → TT** | Принудительное обеднение | **Химический экстрактор** (кислота HBM + иридиевый порошок) |
| **TT + Ir → Т-Иридий** | Выплавка сплава | **Электродуговая печь сверхвысокого давления** + аргон |
| **Формовка TT** | Горячая штамповка при 3200–3500 °C | **Индукционный термо-пресс** (3×3×4, тераватты HE) + вольфрамовые формы |
| **Литьё в обход пресса** | Отливка детали из Фюрцита → обеднение иридием, расчёт усадки 12 % | Плавильная печь HBM + экстракционная ванна |
| **Энергативная ткань** | Магнетронное напыление TT на кевлар | **Вакуумная камера напыления** + аргон + рулон ткани |
| **Многослойный комбинезон** | Сшивание слоёв ткани с пропиткой гелем | Продвинутый швейный станок |
| **Сборка БЭС** | Ядро-наковальня + фюрцитовое кольцо + медно-золотая фольга + ВВ и детонаторы | Прокатный стан (фольга) + стол сборки зарядов |
Дополнительное оборудование: **криостат / магнитная ловушка** (хранение RC и изотопов 6–9, постоянный расход энергии), **экранированный транспортный сейф** (снимает фон переносимых изделий), **промышленный пылесос и распылитель** (дезактивация), **центрифуга HBM** (разделение остывшей смеси 50/50 на TT и VR).
### Замкнутый цикл автоматизации
```
[ TT ] ──(He)──> [ EG ] ──(Fe/Ni)──> [ ER ] ──(Cu/Zn)──> [ VR ] ──> БЭС / топливо РЭС
▲ │
│ │ (Ag/Cd, слабый синтез)
│ ▼
│ [ AL ] ──> броня Mk. IV, лучемёты
│ │ (форсаж / диспергатор)
│ ▼
└────────── центрифуга ◄── остывшая смесь ◄── [ RC ] ──> распад 50/50 в TT + VR
```
Долгосрочная цель игрока — полностью автоматизированный завод, бесконечно гоняющий энергативы по кругу и вырабатывающий энергию из обычных ванильных металлов. Безотходность обеспечена характером распада RC.
### РЭС
- **Топливо:** фюрцитовая пыль + пыль обычных металлов. Подача инжекторами; прекращение подачи гасит реакцию, взрыв «изнутри» невозможен.
- **Штатный режим:** стабильная выработка HE + наработка слитков Алленита. Показатели в GUI зелёные, режим пригоден для длительной автоматической работы.
- **Критический форсаж:** экстремальное лазерное сжатие прессованного Алленита. Показатели уходят в красную зону, GUI дрожит, прочность конструкции падает, в криостаты поступает риценитовая пыль. Требует ручного контроля.
- **GUI:** температура, давление, подача пыли, шкала `Singularity State (%)` — при 100 % в зоне на наносекунды зажигается элемент-11, что даёт пиковую выработку; без своевременного сброса давления реактор разрушается и засыпает чанк Риценитом.
- **Обвязка:** трубы и коллекторы из Тельтнита (иначе фон пробивает наружу), контуры водяного или хладагентного охлаждения, паровые турбины. Без охлаждения — перегрев и авария.
- **Отходы:** активная пыль → бункеры-отстойники → слитки Тельтнита.
### Тепловая механика хранения
Слитки и блоки Фюрцита и Алленита пассивно нагреваются. Плотный склад Алленита раскаляет помещение: деревянные сундуки могут воспламеняться, игрок без систем охлаждения базы получает дебафф горения поверх энергативной комы. Блок Алленита в холодном биоме подтапливает снег и лёд.
## 4. БЭС в игре
### Изделие
- **Форма:** вертикальный двойной блок высотой 2 (по принципу двери или кровати), не сущность.
- **Текстура:** массивная имплозивная сфера на стальных подпорках, покрытая пылью и ржавчиной; сквозь трещины корпуса и разбитые окошки манометров едва мерцает бирюзовое свечение активного сердечника. На корпусе — трафарет знака EF-HAZARD.
- **Детонация:** кратер в форме полусферы с испарением прочных материалов; ослепительная сине-зелёная вспышка; кастомное плазменное облако; побочный энергативный импульс на радиус в 2–3 раза больше кратера с максимальными дебаффами для всех выживших; осадки активной пыли слоями по всей зоне поражения.
- **Осадки:** слой RC → через 2–3 минуты превращается в тусклый серый налёт («остывшая энергативная смесь»), безопасный для сбора лопатой или пылесосом. Разделяется в центрифуге на Тельтнит и Фюрцит.
- **Хранение:** благодаря сроку жизни Фюрцита изделие можно крафтить заранее и держать на складе неограниченно долго, не теряя мощности.
### Добыча найденного изделия
| Условие | Результат |
| --- | --- |
| Кирка с **Шёлковым касанием** | Детонаторы демонтируются аккуратно, предмет гарантированно попадает в инвентарь. Риск взрыва 0 % |
| Алмазная или кастомная кирка HBM без Silk Touch | 98 % успеха, **2 % мгновенной детонации** |
| Рука или каменная кирка | Дропа нет, риск детонации возрастает до 50 % |
| Старое изделие в заброшенном бункере, без Silk Touch | Риск детонации **1015 %** |
Дополнительный саспенс: при ударах обычной киркой блок издаёт прерывистый нарастающий писк — до последнего момента игрок не знает исхода. В грозди детонация одного изделия немедленно подрывает соседние.
### Ошибочная сборка
Если игрок заложит в чертёж вместо Фюрцита более тяжёлый Алленит, мод отрабатывает лорную физику: вместо кратера — хлопок силой обычной связки динамита, разрушающий пару блоков, но вся округа в радиусе 100+ блоков заражается **фоном 5-го уровня** (успевает сформироваться некоторое количество RC). Полигон на несколько минут становится зоной мгновенной смерти, затем — зоной 3-го уровня. Ресурсы потрачены, цель не поражена.
## 5. Локации
### «Забытый бункер» (тир-1, знакомство)
- **Генерация:** под землёй в обычных биомах на средней глубине. Полуразрушенный бетонный комплекс с разбитой аппаратурой.
- **Содержимое:** одно старое нестабильное изделие БЭС на ржавом стапеле.
- **Особенности:** медно-золотые слои частично окислились, тельтнитовый экран дал микротрещины — изделие **постоянно фонит** по площади. В помещении игрок сразу получает металлический вкус и дебаффы. Риск детонации при добыче без Silk Touch — 10–15 %. При разборке даёт меньше ресурсов, Фюрцит «грязный», но это лучший способ получить первые образцы.
- **Лут:** ржавые патроны, старые защитные костюмы, документы.
### «Шахта №0» (эндгейм)
- **Генерация:** ультра-редкая структура (порядка одной на несколько тысяч чанков), чаще под экстремальными биомами, уходит до основания мира. На поверхности — только бронированные гермоворота.
- **Содержимое:** декоративная ракета Н-1, собранная из блоков, в обтекателе — **3–6 полностью исправных БЭС** в магнитных захватах. Изделия стабильны, наружу не фонят, при разборке дают 100 % чистых материалов: идеальный Фюрцит, высокочистый Тельтнит, золото, медь.
- **Испытание:** паркур по ржавым конструкциям, лесам и внутренностям ракеты на высоту двадцатиэтажного дома; падение смертельно. Дополнительные факторы — возможное старое фонящее изделие в грозди, законсервированные турели и лазерные датчики.
- **Катастрофа:** провал 2 % при разборке подрывает всю гроздь, испаряет верхнюю часть ракеты, частично обрушивает шахту и засыпает комплекс риценитовой пылью. У выжившего есть 2–3 минуты, чтобы либо бежать, либо — в костюме высшего класса и с криостатом — собрать свежайшую RC прямо с обломков. Это единственный способ получить Риценит без собственного РЭС.
- **Лут:** продвинутые схемы HBM, баллоны с гелием, чертежи РЭС, документы Проекта.
### Перенос готовой постройки Н-1 с 1.18.2 на 1.12.2
1. **Подготовка в мире-источнике.** Заменить блоки, отсутствующие в 1.12.2 (глубинный сланец, туф, капельник, медь, новые породы дерева), на классические аналоги: `//replace deepslate_bricks stone_bricks` и подобные. Иначе при переносе на их месте останутся дыры.
2. **Экспорт.** Выделить постройку топором WorldEdit (`//pos1` у основания, `//pos2` над вершиной обтекателя), `//copy`, затем `//schematic save n1_rocket` — обязательно в кросс-версионном формате `.schem` (старый `.schematic` не читается между версиями).
3. **Конвертация ID.** Открыть схему или карту в **Amulet Editor**, выделить ракету, экспортировать с целевой версией Java 1.12.2. Программа переведёт ID в legacy-формат, неизвестные блоки заменит на указанный материал.
4. **Вставка.** В 1.12.2 с установленными HBM и WorldEdit: `//schematic load n1_rocket`, `//paste`.
5. **Доводка.** Точечно заменить ванильную обшивку на блоки HBM (ржавое железо, стальные леса, бронеплиты), в сопла установить декоративные излучатели, в обтекателе освободить место под двойные блоки БЭС.
## 6. Снаряжение
Полная линейка Mk. 0 – Mk. V описана в [06-protection.md](06-protection.md). Игровые особенности:
- **Разделение обязанностей:** Т-иридиевый каркас пассивно даёт 100 % иммунитет к EF-полю и жёсткой радиации HBM (шкала не растёт вообще); весь кинетический, взрывной и термический урон берёт на себя проектор силового поля, расходуя энергию (порядка 50 HE за единицу урона).
- **Прочность:** классическая durability отсутствует; состояние комплекта привязано к заряду батарей. При критическом попадании поле отключается на перезагрузку (~10 секунд).
- **Слоты модификаций** (Armor Modification Table HBM): батарея / квантовый элемент, `Field Tweaker` (например, «кинетический фокус» — лучше держит пули, быстрее разряжается от взрывов), `Heatsink Cladding` (без него в зоне RC броня нагревает носителя).
- **Беспроводная подзарядка:** Mk. IV получает модуль приёма с лимитом входного потока, Mk. V — без лимита. Связка «броня + Flux Networks» делает Mk. V фактически неуязвимым, пока энергосеть базы выдаёт миллионы HE в секунду. Опционально — индикатор связи с сетью на шлеме.
- **Балансные уязвимости Mk. V:** обесточивание базы (диверсия против Flux-сети или реакторов) и стационарный риценитовый излучатель, работающий через структуру поля.
- **Штрафы:** тяжёлые комплекты без экзоскелета накладывают Медлительность I; экранирование глушит встроенный радар и навигатор.
- **Т-иридиевый клинок:** высокий бронебойный урон плюс Слабость IV и Медлительность IV на 2–3 секунды при каждом ударе. Не горит в лаве, не разрушается взрывами.
## 7. Достижения
| Название | Условие | Описание |
| --- | --- | --- |
| **Космическая доктрина** | Впервые войти в структуру «Шахта №0» и обнаружить ракету | *«Луна должна была стать нашей. Найти последний стратегический резерв ушедшей эпохи»* |
| **Квантовая кузница** | Впервые выплавить Т-иридиевый композит | *«Соединить несоединимое. Создать идеальный металл, ломающий законы волновой физики»* |
| **Ватные ноги** | Набрать 800+ дозы, ослепнуть, выбраться из зоны и дождаться полного очищения | *«Пережить фазу тотального расслабления и снова почувствовать свои пальцы»* |
| **Сапёр ошибается один раз** | Добывать БЭС без Шёлкового касания и попасть в 2 % детонации | *«Упс. За секунду до сине-зелёной вспышки ты понял, что Silk Touch был хорошей идеей»* |
| **Повелитель Рицена** | Вывести РЭС на пиковый форсаж и собрать первую единицу риценитовой пыли в криостат | *«Обуздать ультра-хрупкую смерть»* |
| **Опыт номер 17** *(скрытое испытание)* | Находиться в радиусе 30 блоков от БЭС в момент детонации и остаться в живых | *«Если ты готов к экспериментам и готов сражаться, то удачи пережить опыт с номером 17»* |
Достижение «Опыт номер 17» — двойная отсылка (эксперимент №17 из Half-Life и прямая цитата из русскоязычного трека про Гастера). Иконка — сердечник БЭС в бирюзовом пламени либо литера λ из Т-Иридия. Выполнить без полностью заряженного силового поля и укрытия за толстой стеной Тельтнита невозможно.
Шаблон файла `data/energetives/advancements/subject_17.json`:
```json
{
"display": {
"icon": { "item": "hbm_energetives:bes_bomb_core" },
"title": { "text": "Опыт номер 17", "color": "dark_purple" },
"description": {
"text": "Если ты готов к экспериментам и готов сражаться, то удачи пережить опыт с номером 17.",
"color": "gold"
},
"frame": "challenge",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"parent": "hbm_energetives:find_n1_silo",
"criteria": {
"survived_bes_blast": {
"trigger": "minecraft:entity_hurt_player",
"conditions": {
"damage": {
"type": "hbm_energetives:bes_explosion",
"source": { "distance": { "absolute": { "max": 30.0 } } }
}
}
}
}
}
```
## 8. Визуальный и звуковой стиль
- **Палитра:** бирюзовый (черенковское свечение) и зелёный (ионы меди) на матово-чёрной базе Тельтнита. Цвет однозначно кодирует класс опасности — см. визуальный паспорт в [03-periodic-table.md](03-periodic-table.md).
- **Маска свечения (glowmask)** обязательна для блоков знаков, слитков Алленита, слоёв риценитовой пыли и прожилок Энергита: в темноте коридоров светятся только активные элементы.
- **Знаки ТБ:** декоративная пластина (крафт из железа и красного красителя) для развешивания на базе + трафарет прямо на текстурах РЭС и корпуса БЭС.
- **Звук:** энергативный дозиметр гудит, а не трещит, тон растёт с дозой; термо-пресс — тяжёлый бьющий удар и гул трансформаторов; риценитовый излучатель — низкий гул; отдельный звук шипящего затухания резонанса при выпивании молока.
- **Частицы:** «кипящий» слой риценитовой пыли (постоянное броуновское движение), дрожание воздуха вокруг Фюрцита, бирюзовая подсветка от блоков Алленита.
## 9. Пути реализации
Три маршрута, от простого к полному.
**Путь 1. Встроенные средства HBM и датапаки.** Через JSON-конфигурацию мода можно добавить блоки и руды (Тельтнит), рецепты для ускорителей, центрифуг и химкомбината (например, «Тельтнит + гелий = Энергит»), а также генерацию структур: Шахта №0 и бункер строятся в креативе, сохраняются как `.nbt` и раскидываются по миру стандартными механизмами. Дебаффы накладываются штатными зельями. Ограничение: сложная логика брони, силовых полей и беспроводной зарядки так не реализуется.
**Путь 2. MCreator + плагины.** Визуальное создание блоков, предметов, структур, всей линейки костюмов и достижений; процедуры для накопления дозы через кастомные переменные игрока и наложения эффектов; плагины поддержки сторонних API для работы с энергией (FE/RF/HE) и логикой восстановления щита. Достаточно для 90 % задуманного без ручного кода.
**Путь 3. Java + Forge API.** Исходный код HBM открыт: рабочий подход — взять шаблон простого аддона, изучить реализацию существующих бомб мода и адаптировать классы под БЭС, заменив тип радиации на EF-поле. Даёт полную свободу: кастомный HUD, силовые поля, точное взаимодействие с Flux Networks.
### Порядок работ
1. **Ресурсы.** Пиксель-арт 16×16 для слитков, пыли и руд всех материалов, иконки шести ступеней снаряжения, текстуры знаков. Готовая графика задаёт темп остальной работе.
2. **Макет.** Перенос ракеты Н-1 на целевую версию и проверка, как в обтекатель укладываются двойные блоки БЭС.
3. **Первая сборка.** Простейший предмет (слиток Тельтнита) + одно достижение — для проверки цепочки инструментов.
4. **Механика дозы.** Переменная, три источника облучения, пороги насыщения, HUD.
5. **Машины и цепочка синтеза**, затем РЭС.
6. **Оружие, локации, снаряжение** — в последнюю очередь, как эндгейм-слой.