# Настоящий бесконечный режим после кампании

10 ноября 2026. Версия 0.7.0. После завершения 50-й волны доступна отдельная кнопка «Продолжить · бесконечность». Это собственный web-endless-v1, не конечный оригинальный повтор 51–100 без строительства.

## Продолжение и результат кампании

- Продолжение выбирается явно на экране победы либо через меню карты. До выбора состояние победы не меняется. Сохраняются поле, башни, золото, опыт, ступени MVP и статистика.
- Результат кампании записывается отдельно: исходные правила, 50-я волна, жизни, золото, убийства и боевое время. Последующее поражение в бесконечности не переписывает его.
- Новая ветка начинается с 51-й волны и строительства. Можно раскрыть пять камней, выбрать результат, выполнить синтез и затем вручную запустить волну. Повторяются 50 семейств противников, включая летающих и боссов; абсолютный номер и цикл продолжают расти после 100/101.
- Прежняя партия v7 также может явно продолжить после победы. Её исходный профиль остаётся в записи кампании; для бесконечности инициализируется новая система вариантов с фиксированным воспроизводимым календарём. Это не скрытая замена волн незавершённого старого сохранения.
- Новые ступени MVP, согласно исходному пределу, выдаются до 50-й включительно. Накопленные уровни и MAX-ауры продолжают действовать дальше.

## Рост угрозы и ограничения

Для абсолютного номера n > 50 семейство равно ((n − 1) mod 50) + 1, цикл — floor((n − 51)/50) + 1. Целевая сумма HP растёт на 2,5% за волну и рассчитывается через логарифм: log B(n) = log B50 + (n − 50) × log(1,025).

B50 определён как наибольший нормированный бюджет основных семейств 41–50 с количеством при продолжении, ограниченным 5–30. Использование только HP одиночного финального босса могло бы сделать 51-ю заметно слабее обычных волн конца кампании. Элитные случайные выбросы в опорный бюджет не включены. Это уточнение стартовой кривой для веба, не доказательство окончательного баланса.

Общий бюджет распределяется между противниками текущей волны. Для смешанных семейств 35/36/38 относительная разница HP вариантов сохраняется через отношение к среднему исходному HP пары. Варианты на всю волну имеют общий бюджет, но сохраняют разные способности.

- Обычное количество ограничено 30; исходная серия продолжает менять его внутри диапазона 5–30. У кампании v8 этот новый верхний предел не появляется.
- Дополнительная защита планировщика — максимум 60 одновременно живых противников на карте. При достижении предела ожидающий spawn остаётся в очереди, а не создаёт лишнюю модель.
- Рост базовой скорости ограничен +25% к соответствующему кампанийскому семейству. Ярость затянувшегося боя — отдельное правило и действует по-прежнему.
- Дополнительный рост обычных размеров ограничен; модель не увеличивается неограниченно вслед за HP. Используются существующие анимированные роли, без новых тяжёлых эффектов.
- Награда начинается с увеличения по циклу и имеет отдельные caps: обычные до 250 золота/XP, боссы до 1500 золота/3000 XP. Элитные и наградные преобразования применяются после этой базы. Золото остаётся валютой текущей партии; это не начисление в ещё не подключённый глобальный профиль.

## Два условия каждого цикла

Выбираются два разных эффекта из четырёх: броня (+5 за цикл, максимум +100), магическая защита (+3 п.п. за цикл, максимум +30; у неиммунных итог не выше 90%), регенерация 0,3% HP/с, блок первого положительного попадания. Врождённая магическая невосприимчивость источника не меняется этим cap.

Пара определяется отдельным seed от исходного seed партии и номера цикла. Просмотр не расходует случайность камней/волн. Условия видны до строительства на кнопке памятки и подробно в окне волн. Памятка бесконечности показывает текущую и девять ближайших волн с абсолютными номерами.

## Поле не должно создавать тупик

Постановка уже позволяет заменить старый булыжник, но когда поле заполнено башнями, пяти допустимых клеток может не остаться. В меню бесконечности появилась команда «Пропустить стройку» с подтверждением.

Можно отказаться и от частично построенной пятёрки. Её новые камни становятся булыжниками, готового результата не остаётся; сохранённые башни и RNG не откатываются. После этого состояние готовности позволяет запустить волну верхней кнопкой. Это не бесплатный повтор с сохранением удачного результата. Отмена подтверждения ничего не меняет. В обычной кампании и во время боя команда недоступна.

## Численная безопасность и длительные партии

Расчёт целевого HP проверен для каждой вычисляемой волны до 10000. Это математический стресс-тест, не обещание десяти тысяч реально сыгранных волн или измерение телефона.

Для этой версии выбран явный предел log B(n) ≤ log(10^240), с запасом для множителей и сумм. При его достижении следующая волна не запускается: партия получает отдельный technical_limit на последней завершённой волне, с сохранением кампании. Это не поражение и не обычный рейтинговый рекорд. Число предельной волны зависит от опорного бюджета; в браузерном проверочном сценарии — 21809.

Большие числа форматируются компактно в научной записи. Статистика снятого HP использует действительную разницу HP до/после: очень маленькое попадание, округлившееся при огромном HP, не приписывает себе несуществующее снятое здоровье. Большие конечные значения MVP-score сохраняются отдельно от целочисленных счётчиков построек.

История/сохранение пока локальные. Проверка формулы до 10000 не означает, что браузерное хранилище выдерживает неограниченную историю; серверный журнал и устойчивые checkpoint — следующий этап. Физический телефон и реальная длительная стратегия пока не заменены программным стендом. Кривая 2,5% и два условия — старт балансировки отдельного режима.

## Проверки

282 автоматических сценария прошли. 15 новых: отказ до победы, явное продолжение и повтор команды, старый профиль, семейства после 100, формулы до 10000, независимые условия, caps скорости/количества/живых, стройка/выбор после 50, частичный отказ без бесплатного результата, численный предел, очень большие HP/score, повреждённая запись и сохранение. Проверочный полный дополнительный цикл доходит до 101, не выдаёт новые ступени MVP и сохраняет кампанию. Для проверки жизненного цикла используется проверочный урон с учётом щитов; это не баланс реальной игровой стратегии.

Браузерный отчёт output/GemTD_endless_UI_QA.json: кнопка победы, 51/∞, сохранённые башня/MVP/600 золота, условия до стройки, десять будущих строк, просмотр без изменений, отмена/подтверждение частичной стройки, ручной запуск 51, загрузка боевого сохранения, отдельный технический итог/статистика/перезагрузка. Экраны 320×568, 390×844, 844×390 и 1440×1000 без горизонтального переполнения и JS/HTTP ошибок.

Утверждённая графика сохранена. 50 индивидуальных моделей ещё не готовы: текущая библиотека содержит 16 анимированных форм; разные размеры и цвета не считаются новыми моделями. Продолжаются оставшиеся native-неопределённости и игровой баланс. Далее — авторитетный сервер, почтовый профиль, надёжная статистика и восстановление подключения, затем co-op и Last Survivor с рейтингами/сезонами. Настройки реального хостинга и отправки писем пока не получены, поэтому доступный сайт остаётся одиночным.
