# Берег и экспедиция на 20 волн

Подготовлена сборка 0.4.0, профиль `prototype-solo20-v4`. Публикация проверяется отдельно по ответу Sites и delivery-отчёту; наличие локальной сборки не означает обновление основного адреса.

## Опора деревьев и истоки

Причина дефекта: семь из восьми дальних деревьев находились за реальным краем острова, а отдельные камни под ними читались как висящие подставки. Нижнее дерево почти совпадало с осью водопада.

- Все восемь деревьев перенесены на реальное плечо берега. Корни, кусты, трава и прибрежные камни получают опору однократной проверкой геометрии острова; экземпляры без поверхности отбрасываются.
- Подставки под деревьями удалены, корни слегка заглублены, кусты сгруппированы у стволов. Нижнее дерево отнесено от русла.
- Оба истока прикрыты низкими мшистыми скалами, заглублёнными в берег. Вода выходит из-под камня. Скалы используют существующие геометрию, материалы и пакеты отрисовки.
- Белая кладка, пересекавшая истоки, убрана; русло свободно от растительности. Дальние и ближние деревья используют одни позиции; в balanced вблизи теперь видны все восемь, чтобы два нижних не исчезали при приближении.

Независимая проверка: у 8/8 деревьев есть поверхность под корнями, заглубление 0.055 клетки. Верх скал над истоками Y≈0.326/0.305, начало воды Y=0.085. Новых пересечений над строительными клетками не обнаружено. Размеры поля и путь не менялись, иллюстрации сохранены.

## Волны 11–20

Источник: GemTD2.0 Workshop3817795446, NPC KV и таблица способностей. Аудит и отклонения: `reference_data/gemtd2-source/twenty-wave-audit/audit.json`. Первые 10 волн сохраняют прежний баланс. Для продолжения используются те же прототипные множители HP×0.63 и speed×0.85/128; это ещё не полный Classic2.0.

| Волна | Исходные HP / speed | Новое поведение |
| --- | --- | --- |
| 11 |400 /525 |Броня 10 |
| 12 |500 /600 |Аура обезоруживания:150Source units, остаток 1сек |
| 13 |900 /600 |Крепкая наземная волна с бронёй |
| 14 |1100 /600 |Щит на 7 положительных событий урона, cooldown5 сек, срок 60 сек |
| 15 |270 /600 |Полёт и восстановление 20%HP у промежуточных маяков |
| 16 |950 /800 |Магический урон не проходит; золото у маяка становится floor(gold×0.99) |
| 17 |2200 /600 |Сопротивление магии 40%,50% шанс обезоружить атакующего на 1сек |
| 18 |3300 /675 |Невидимость и аура обезоруживания; опал раскрывает врага |
| 19 |3200 /1000 |Ускорение+50% на 20 сек |
| 20 |30000 /900 |Второй и финальный босс экспедиции; масштаб 1.28 базового босса |

У новых волн броня 10; базовое MR−5% усиливает магический урон, у 16-й MR100%, у 17-й 40%. Обычные враги 11–19 дают 10 золота/XP, боссы 150 золота/300XP. Утечка обычного врага 11–19 стоит 1–7 жизней; босса — ceil(remainingHP/maxHP×100).

Опал и четыре подтверждённых составных детектора раскрывают невидимость. Радиус 600/128 — временное веб-решение: точный native-радиус не найден. Призрачный враг виден игроку полупрозрачным, но башни без раскрытия не берут его в цель. Щит имеет голубую полоску. Реталиация использует seeded Bernoulli вместо Source2 PRD; проверка запуска щита/ускорения раз в 0.1 сек заменяет движковые задержки приказов. Не выдавать эти различия за точный порт.

Верхний номер волны открывает памятку всех 20 противников. После 10-й идёт стройка 11; победа — после 20. Старое сохранение победы 10 мигрирует к 11 без сброса камней, золота, XP, жизней и RNG. Проигранные партии не возрождаются. В snapshot входят щит, ускорение и отдельный RNG способностей. Переход на 21-ю отклоняется.

Используются 6 существующих анимированных моделей с разными ролями и увеличением размера;20 новых GLB не производились.50 уникальных форм остаются в художественном плане.

## Проверка

48/48 проверок ядра: прежние правила, все новые свойства, миграция, snapshot/replay, переход 10→11 и финал 20. Полный прогон 182 врагов проверяет фазы/счётчики/награды; это не доказательство окончательного баланса. Отдельный браузерный сценарий использует обычный продуктовый цикл без ограниченияRAF: старый save открывается на 11/20 с прежними ресурсами,20-й босс появляется и заканчивает игру итогом «20 волн пройдены».

Общий вид balanced:79 отрисовок/590435 треугольников против 79/630769 ранее,23 текстуры. Ближний balanced:38/852387 против 36/819693 — добавлены два ранее пропадавших дерева. Мобильный low сохраняет дальние плоские деревья. Новые источники света и постобработка не добавлены. FPS физических телефонов не измерялся.

Отчёты: `output/GemTD_rim_after_QA.json`, `output/GemTD_twenty_live_QA.json`; снимки `GemTD_rim_after_spring.png`, `GemTD_twenty_mobile.png`, `GemTD_twenty_result.png`.
