squad-proto/docs/22-loot.md
z.kirill a8e19cd956 Материалы и мастерская: вещь можно доработать (M27)
Аффиксы сделали находку решением, но решением одноразовым: выпало как
выпало. Материалы дают второй способ получить нужное — не «повезло», а
«доработал». Пять материалов, пять операций, экран 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>
2026-08-16 03:07:46 +03:00

18 KiB
Raw Blame History

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%
Меченое 12 2.9% 21.3% 23.5% 21.9%
Разработка 34 0.1% 7.1% 25.1% 39.6%
Реликт 56 ~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. Как это не превращается в кашу

Три правила, которые придётся защищать от самих себя при любом расширении:

  1. Ни одного чистого улучшения. Каждый артефакт — сделка, каждый высокий тир — вес или риск. Предмет без цены обязателен, а обязательный предмет — это вырезанный слот.
  2. Бюджет вместо запретов. Ограничивает арифметика, а не список исключений. Список исключений разрастается и однажды противоречит сам себе.
  3. Находка — решение. Если новая вещь не заставляет игрока хоть раз задуматься «а что снять», её не должно быть в таблице дропа вообще.

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).