Бой
Когда два отряда встречаются, игра переходит в режим сражения. Сегодня в проекте три разные боевые системы — активна одна, выбирается настройкой. Для игрока это может выглядеть по-разному: от быстрого расчёта потерь до зрелищной анимации.
Какая система когда
| Режим | Ощущение для игрока | Статус |
|---|---|---|
| Командные сценарии | Отряды выполняют заранее заданные манёвры (атака центра, окружение, отступление). Итог часто сводится к проценту потерь по формуле. | основной legacy |
| NewBattle | Тактический бой в реальном времени с фиксированным шагом симуляции. Юниты сами выбирают действия (ближний бой, стрельба, отход). Можно просчитать мгновенно или смотреть пошагово. | рабочая альтернатива |
| ComplexBattle4x | Сначала бой считается целиком как «хореография», потом проигрывается как ролик с кульминацией. Ближе к Total War-зрелищу. | в разработке |
От карты к бою
Столкновение на гексе инициирует бой с участниками обоих отрядов. Учитываются формации, состав, усталость (если задано), местность. Лидер и герой дают бонусы через навыки и экипировку.
Командные сценарии (кратко)
Каждый отряд получает цепочку приказов: построиться, атаковать, держать оборону, ждать сигнала. Сценарий боя (прорыв, паника, драконья атака…) задаёт темп. В конце математическая модель выдаёт потери — часть юнитов погибает, отряд отступает или уничтожен.
Для 4X на большой карте это способ не затягивать каждую стычку.
NewBattle (кратко)
Симуляция идёт маленькими шагами (~30 раз в секунду логически). Один и тот же сид даёт один и тот же результат — важно для мультиплеера и отладки. ИИ юнита оценивает варианты (ударить, стрелять, подойти, стоять, отступить) и выбирает лучший.
Картинка отделена от логики: анимации догоняют расчёт, а не наоборот.
ComplexBattle4x (кратко)
Бой планируется как последовательность эпизодов: стычка, залп, обход, массовое заклинание. Потом таймлайн проигрывается камерой. Задумано для «героических» битв, но пока не маршрут по умолчанию.
Урон и защита (как сейчас)
В текущей сборке урон делится на физический и магический с подтипами (рубящий, колющий, стихии в legacy-формате). Броня и сопротивления снижают входящий урон. HP юнита доходит до нуля — юнит выбывает.
Это не система Эфира и ступеней из проектного GDD: нет подавления «царством», нет пяти статов Body/Spirit/Mind.
После боя
Победитель остаётся на тайле (или занимает его), проигравший отступает или исчезает. Опыт и лут (если настроены квестом) начисляются. Город может пополнить отряд за ресурсы.
Не переносить: три параллельные системы как постоянное состояние — это технический долг.
Сохранить идею: детерминированный NewBattle полезен для тестов баланса культивации.