squad-proto/docs/22-loot.md
z.kirill d3aa044cbe Редкости и аффиксы: находка стала решением (M25)
Предмет перестал быть строкой каталога. ItemInstance несёт редкость и до
шести аффиксов, и «карабин» с первого этажа больше не равен «карабину» с
сорокового. Четыре редкости, десять тегов, тир и бюджет от глубины.

Аффиксы не заводят новых каналов влияния: каждый тег ложится в то, что уже
есть — урон оружия, смесь стихий, пробитие, четыре числа бойца, ресурсы
вылазки. У предмета по-прежнему нет ручки к правилу «не бить своих», и
появиться ей неоткуда.

ItemInstance неявно приводится к ItemId, поэтому полторы сотни мест,
которым нужен ВИД вещи, остались как были. Цена решения — присваивание в
ItemId молча теряет рулоны; таких мест три (подбор, схрон, запись
профиля), и все они работают с экземпляром целиком.

Замеры поймали три расхождения дизайн-документа с самим собой:

  * формула редкости противоречила таблице рядом с ней: 2.7% находок с
    аффиксами на первом этаже против 22%. Выбрана формула, наклон поднят
    до схождения с таблицей на дне (12% обычных на сотом);
  * бюджет пускал восемь высших аффиксов вместо обещанных шести;
  * предельная вещь собиралась к семидесятому этажу вместо сотого.

Числа пересчитаны, документ исправлен: 6·cost(9) = 294 <= B(100) = 295 <
7·cost(9) = 343. Предельная вещь существует ровно на дне и ровно одна.

Проверка в --descend меряет не бросок, а ПРОВОДКУ до бойца — там, где
дважды умирали вес и стихии:

  аффиксы: урон 12.0 -> 18.0, здоровье 100 -> 140, броня 0.10 -> 0.25,
           пробитие 0.20, KIN 1.00 -> 0.60, CRY 0.40, сумма долей 1.000

Последнее число не украшение: конверсия обязана переводить урон, а не
добавлять седьмую долю сверх единицы.

Попутно, на глубине 30 и только там:

  * «зачистка поля» в проверках не держалась — у твари есть откат
    воскрешения, и с нулевым таймером она оживала тем же шагом. Лечение
    вне схватки и расход света на стоянке молча мерили бой. На восьмом
    этаже тварей мало, и проверка проходила по удаче;
  * порог «стоянка бесплатна» стоял в единицах заряда, а тот же шаг стоит
    дороже с глубиной. Переведён в тайлы — и сразу показал, что отряд в
    строю проходит 0.8 тайла за две секунды «стоянки». Свет теперь
    списывается только в ADVANCING: топтание и драка бесплатны, тратит
    РАЗВЕДКА. Без этого таймер возвращался через чёрный ход.

Формат профиля 4: токен предмета вида rifle@relic+dmg7,0:0.63. Миграции
не требует — у старых токенов нет хвоста после '@'.

--accept PASS без изменений: в песочнице находок нет вовсе.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 02:35:00 +03:00

15 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. Материалы

Материал Откуда Куда
Лом разбитая обстановка, D1+ базовый крафт, ремонт
Био-ядро твари FLESH, D21+ статусные аффиксы
Крио-ядро твари FROST, D36+ защитные аффиксы
Осколок реактора аномалии, D53+ стихийные и реакционные
Пустотный шлак Бездна, D73+ залом, перековка тира

Материал добывается только в своей полосе — это и есть причина возвращаться на средние глубины после того, как рекорд ушёл вниз. Без этого весь контент, кроме последнего акта, умирает.

5.2. Операции

Операция Что делает Цена Риск
Перековка заново бросает ВСЕ рулоны 4 лома × тир
Прививка добавляет аффикс, если есть бюджет 2 ядра × тир
Отсечение убирает выбранный аффикс 1 ядро × тир
Возвышение +1 тир случайному аффиксу 6 ядер + осколок
Залом +2 тира и 1 бюджет ко всему 3 шлака 12%: предмет рассыпается

Залом — единственная операция с риском, и он настоящий: предмет исчезает. Именно поэтому лучшая вещь в игре всегда чуть хуже, чем могла бы быть, — почти никто не заламывает то, что собирал двадцать часов. Это и задумано: разрыв между «хорошей сборкой» и «идеальной» держит лейтгейм живым.

5.3. Стоимость полной сборки

Одна вещь тира 9 со всеми операциями ≈ 340 ломов, 90 ядер, 22 осколка, 6 шлаков. За вылазку на D80 добывается ≈ 40 ломов, 12 ядер, 4 осколка, 1 шлак — то есть около 8 вылазок на один предмет. Слотов девять, предметов в сборке — пять ключевых. Экономика материалов рассчитана на 6080 часов лейтгейма, и это ровно акт VI из бюджета времени (20-gdd.md §5).

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