Аффиксы сделали находку решением, но решением одноразовым: выпало как выпало. Материалы дают второй способ получить нужное — не «повезло», а «доработал». Пять материалов, пять операций, экран WORKSHOP. Главное правило экономики — материал добывается ТОЛЬКО В СВОЕЙ ПОЛОСЕ: био-ядра с плотских этажей, крио с мёрзлых. Это единственная причина возвращаться на средние глубины, когда рекорд ушёл вниз; без полос весь контент, кроме последнего акта, умирает в день прохождения. Материалы — валюта, а не предметы: не занимают ячеек, не весят, в схроне не лежат. Но теряются как добыча: зачисляются только при эвакуации. Три уточнения операций, каждое против конкретного обхода: перековка меняет только значения (иначе это новый бросок предмета в обход редкости), прививка не ставит уже стоящий тег (иначе «+урон» шесть раз), возвышается случайный аффикс (иначе все предметы сойдутся к одному). --tool craft поймал, что материалы бесплатны. С твари падало по её danger, и вылазка на восьмидесятом этаже приносила тысячу ядер при цене доводки вещи в шестьсот: 0.6 вылазки на предмет вместо восьми. Правило заменено на «одно ядро с мелочи, два с крупной» — стало 6.2. Сам инструмент при этом тоже считал неверно: брал доход из бюджета опасности этажа, хотя на этаж влезает не больше MAX_LEVEL_SPAWNS тварей. Бюджет уходит не в количество тварей, а в их силу, и доход упирается в потолок расстановки с сорокового этажа. Глубина даёт не количество материалов, а качество предметов — и вместе с ним цену доводки. Залом замерен на тысяче попыток: рассыпалось 11.6% при заявленных 12%, плата снимается всегда, слот теряется всегда. «У меня трижды не рассыпалось» не доказательство ни в какую сторону. Пункт меню WORKSHOP проверен --ui-check — той самой проверкой, которая появилась вчера из-за пункта UPGRADES, молча закрывавшего игру. Формат профиля 5: строка mat. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
18 KiB
22 — Добыча: редкости, аффиксы, артефакты, зачарования
Продолжение 20-gdd.md. Боевые формулы — 21-damage.md.
Правило, из которого всё растёт: находка должна быть решением, а не прибавкой. Предмет, который просто «лучше на 7%», не стоит того, чтобы за ним идти в темноту, — а идти в темноту и есть игра.
1. Редкости
Сделано в M25. Числа ниже — замеренные (--tool drops 1 100, по 10000
бросков на глубину), а не задуманные:
| Редкость | Аффиксов | D1 | D28 | D55 | D100 |
|---|---|---|---|---|---|
| Обычное | 0 | 96.9% | 67.5% | 38.4% | 12.3% |
| Меченое | 1–2 | 2.9% | 21.3% | 23.5% | 21.9% |
| Разработка | 3–4 | 0.1% | 7.1% | 25.1% | 39.6% |
| Реликт | 5–6 | ~0.01% | 4.1% | 13.1% | 26.2% |
| Артефакт | уникальное правило + 2 | — | — | — | — |
Кривая редкости:
P(не обычное) = 0.02 + 0.011·d (до 0.88)
Наклон 0.011, а не 0.0075. В первой редакции этого документа формула и таблица рядом с ней противоречили друг другу: формула давала на первом этаже 2.7% находок с аффиксами, таблица — 22%. Выбрана формула (первый этаж обязан быть скучным, 20-gdd.md §1), а наклон поднят так, чтобы сойтись с таблицей на дне: 12% обычных на сотом этаже. Проверяется инструментом.
Реликт на первом этаже возможен — примерно один на восемь тысяч находок. Это намеренно не запрещено: тир там всё равно первый, то есть пять рулонов по пять процентов. Лотерейный выигрыш, а не сломанное начало.
Артефактов пока нет — они не «ещё не выкачены», а следующая веха: артефакт даёт ПРАВИЛО, а не число, и для этого нужны триггеры (on-hit, on-kill), которых в игре ещё нет.
Пити на артефакт: 60 этажей без артефакта → следующий гарантирован. Без пити распределение даёт игроку без артефакта на восьмидесятом этаже, и это не «не повезло», а сломанная сессия на двадцать часов.
2. Слоты и что в них лежит
| Слот | Что | Личное/общее |
|---|---|---|
| Руки | ствол или клинок | личное |
| Броня | костюм | личное |
| Карман | оберег/фонарь/модуль | личное |
| Сумка | всё остальное | общее на отряд |
| Гнёзда артефактов | 1 → 3 по глубине рекорда | общее на отряд |
Гнёзда артефактов открываются рекордом: первое сразу, второе на D40, третье на D75. Артефакты общие намеренно — они правила, а не снаряжение, и делить их по бойцам значило бы прятать главное решение сборки в подменю.
3. Аффиксы
Аффикс = тег + тир + рулон. Тег определяет, ЧТО он даёт; тир — насколько
сильный доступен; рулон — конкретное число в диапазоне тира.
доступный тир на глубине: T_max(d) = 1 + floor(d / 12) (до 9)
диапазон тира T: [lo·T^1.35, hi·T^1.35]
цена аффикса в бюджете: cost(T) = 4 + 5·T
бюджет предмета: B(ilvl) = 45 + 2.5·ilvl
Из этого следует потолок: на предмете с ilvl 100 бюджет 295, шесть аффиксов девятого тира стоят 294, седьмой — уже 343. То есть предельная вещь существует ровно на дне и ровно одна.
Цифры пересчитаны против первой редакции. Там стояло cost = 6 + 4·T при
B = 40 + 3·ilvl и утверждалось то же самое — «шесть и ни одним больше». На
деле влезало восемь (340 / 42 = 8.1), а предельная вещь собиралась уже к
семидесятому этажу. Обещание документа не выполнялось его же арифметикой; это
нашёл --tool affix, а не чтение.
Выше по глубине потолок держит бюджет, ниже — счётчик аффиксов: на сороковом этаже доступен только четвёртый тир, шесть таких стоят 144 при бюджете 145. Это нормально и не является поломкой: редкость там и обещает не больше шести.
3.1. Группы аффиксов
| Группа | Примеры | На чём |
|---|---|---|
| Урон | +% урона, +% стихии, +крит, +критмножитель | оружие |
| Пробитие | +PEN стихии, −сопротивление цели | оружие, карман |
| Стихия | конверсия X% урона в стихию | оружие |
| Статус | +стаки, +длительность, +шанс наложения | оружие, карман |
| Реакция | +% силы реакций, −ICD реакции | карман, артефакт |
| Защита | +HP, +броня, +сопротивление, +уклонение | броня |
| Снабжение | +патроны, −вес, +ёмкость, +заряд фонаря | броня, сумка |
| Триггер | on-hit / on-kill / on-hurt эффекты | любое, дорого |
Правило одной группы. На предмете не может быть двух аффиксов одной группы с одинаковым тегом. Иначе «+урон» шесть раз становится единственной правильной сборкой, и весь остальной список превращается в мусор.
3.2. Конверсия стихий
Конверсия — самый важный аффикс в игре, потому что он превращает оружие в инструмент против конкретного врага:
share(KIN) = 1 − Σ конверсий, Σ конверсий ≤ 0.85
Полностью убрать кинетику нельзя: оружие без физического урона перестало бы работать по целям, у которых нет сопротивлений вовсе.
4. Артефакты
Артефакт не даёт процентов. Он даёт правило, которое меняет то, как отряд играет. Их около 60 к моменту выхода акта VI; ниже — восемь, задающих диапазон.
| Артефакт | Правило | Цена правила |
|---|---|---|
| Стеклянный кулак | +140% урона | −60% макс. HP всему отряду |
| Двойное сердце | реакции срабатывают дважды | −35% силы реакции |
| Пепельный ход | убийство даёт +12% скорости, стак 8 | вне боя стаки сгорают за 2 с |
| Долг | павший оперативник встаёт через 20 с | каждое воскрешение −5 макс. HP навсегда |
| Счётчик Гейгера | RAD не тратит стаки на реакции | весь отряд получает 3 RAD/сек на этаже |
| Тихий шаг | твари замечают на 45% ближе | фонарь садится вдвое быстрее |
| Заём | +1 гнездо артефакта | −25% опыта за вылазку |
| Пустая рука | оперативник без брони: +90% урона и +50% скорости | без брони |
Каждый артефакт — сделка, и ни один не является чистым улучшением. Артефакт без цены превращается в обязательный предмет: его надевают все и всегда, и одно гнездо сборки выпадает из игры навсегда.
5. Материалы и зачарование
5.1. Материалы
Сделано в M27.
| Материал | Откуда | Куда |
|---|---|---|
| Лом | разбитая обстановка, любая глубина | перековка |
| Био-ядро | твари на этажах FLESH, D21+ | прививка, возвышение |
| Крио-ядро | твари на этажах FROST, D36+ | отсечение, возвышение |
| Осколок реактора | твари, D53+ | возвышение |
| Пустотный шлак | твари, D73+ | залом |
Материал добывается только в своей полосе — это и есть причина возвращаться на средние глубины после того, как рекорд ушёл вниз. Без этого весь контент, кроме последнего акта, умирает.
Полосы проверяются в --descend прямым опросом таблицы: в игре протечка была бы
заметна часов через двадцать, когда выяснилось бы, что возвращаться незачем.
плоть на 25 лом 0, био 2, крио 0, осколок 0, шлак 0
сталь на 25 лом 0, био 0, крио 0, осколок 0, шлак 0
мороз на 40 лом 0, био 0, крио 2, осколок 0, шлак 0
Материалы — валюта, а не предметы: не занимают ячеек, не весят, в схроне не лежат. Иначе поход за материалами превратился бы в тот же поход с сумкой. Но теряются они так же, как добыча: заработанное зачисляется только при эвакуации.
С твари падает одно ядро, с крупной — два, и это не «сколько она стоит».
Первая версия роняла по её danger, и --tool craft показал, что вылазка на
восьмидесятом этаже приносит тысячу ядер при цене доводки вещи в шестьсот:
материалы не стоили ничего, а мастерская из ставки превращалась в кнопку.
5.2. Операции
| Операция | Что делает | Цена | Риск |
|---|---|---|---|
| Перековка | заново бросает значения (теги и тиры на месте) | 4 лома × тир | — |
| Прививка | добавляет аффикс НОВОГО тега, если есть бюджет | 2 био × тир | — |
| Отсечение | убирает последний аффикс | 1 крио × тир | — |
| Возвышение | +1 тир СЛУЧАЙНОМУ аффиксу | 3 био + 3 крио × тир, 1 осколок | — |
| Залом | +2 тира всем, но на один аффикс меньше | 3 шлака | 12%: предмет рассыпается |
Три уточнения, каждое против конкретного обхода:
- перековка меняет только значения. Меняй она ещё и теги — это был бы новый бросок предмета, то есть способ обойти редкость: собери шесть слотов на чём угодно и крути, пока не выпадет нужное;
- прививка не ставит тег, который уже есть: правило «один тег один раз» руками не обходится;
- возвышается случайный аффикс. Выбирай игрок сам, возвышение стало бы «+1 тир к урону» за фиксированную цену, и все предметы в игре сошлись бы к одному.
Залом — единственная операция с риском, и он настоящий: предмет исчезает, а плата снимается всё равно. Замерено на тысяче попыток: рассыпалось 11.6% при заявленных 12%, платят всегда, слот теряется всегда. Проверять это иначе нельзя — «у меня трижды не рассыпалось» не доказательство ни в какую сторону. Именно поэтому лучшая вещь в игре всегда чуть хуже, чем могла бы быть, — почти никто не заламывает то, что собирал двадцать часов. Это и задумано: разрыв между «хорошей сборкой» и «идеальной» держит лейтгейм живым.
5.3. Стоимость полной сборки
Считается инструментом, а не на глаз: --tool craft 80.
на глубине 80: ядер за вылазку 104, полная доводка вещи 648 ядер
то есть 6.2 вылазок на предмет (в документе заявлено около 8)
Доход упирается в потолок расстановки: на этаж влезает не больше
MAX_LEVEL_SPAWNS тварей, поэтому с сорокового этажа и глубже вылазка приносит
примерно одно и то же. Глубина даёт не количество материалов, а КАЧЕСТВО
предметов — а вместе с ним и цену доводки, которая растёт с тиром. Отсюда и
кривая: вещь сорокового этажа доводится за три вылазки, вещь сотого — за шесть с
лишним.
Первая версия расчёта брала доход из бюджета опасности этажа и завысила его впятеро: бюджет уходит не в количество тварей, а в их силу.
6. Как это не превращается в кашу
Три правила, которые придётся защищать от самих себя при любом расширении:
- Ни одного чистого улучшения. Каждый артефакт — сделка, каждый высокий тир — вес или риск. Предмет без цены обязателен, а обязательный предмет — это вырезанный слот.
- Бюджет вместо запретов. Ограничивает арифметика, а не список исключений. Список исключений разрастается и однажды противоречит сам себе.
- Находка — решение. Если новая вещь не заставляет игрока хоть раз задуматься «а что снять», её не должно быть в таблице дропа вообще.
7. Проверки
| Утверждение | Инструмент | Статус |
|---|---|---|
| кривая редкости: первый этаж скучный, сотый щедрый | --tool drops 1 100 |
есть |
| бюджет пускает ровно шесть высших аффиксов и только на дне | --tool affix <глубина> |
есть |
| выкатанное доезжает до бойца и до правил урона | --descend |
есть |
| редкость и рулоны переживают запись профиля | --descend, круговой прогон |
есть |
| материалов хватает на сборку за ~8 вылазок | --tool economy |
материалов ещё нет |
| ни один артефакт не является чистым плюсом | ревью-чеклист | артефактов ещё нет |
| TTK не выходит из коридора с лучшими вещами | --tool ttk --best |
нет |
Проверка «доезжает до бойца» — главная. Механика, которая есть в каталоге, но не
доходит до правил боя, выглядит снаружи как работающая, и на этом уже дважды
попадались вес и стихии (07-milestones.md). Поэтому в
--descend подкладывается карабин с известными рулонами и сверяется всё:
аффиксы: урон 12.0 -> 18.0, здоровье 100 -> 140, броня 0.10 -> 0.25, пробитие 0.20
стихии карабина: KIN 1.00 -> 0.60, CRY 0.40, сумма долей 1.000
Последнее число тут не украшение: конверсия обязана ПЕРЕВОДИТЬ урон, а не добавлять седьмую долю сверх единицы. Иначе стихии стали бы каналом наращивания чисел — ровно тем, чем они не должны быть (21-damage.md).