Боевая авиация и ПВО Atlants — рабочая модель v0.18.0
Этап5.2 продолжен обычными воздушными ударами, точечными ударами и перехватом. Это продолжение разведки и перебазирования; весь этап5.2 и MVP ещё не завершены.
Приказы и общий расчёт
Человек и ИИ используют AIR_BOMBARD, AIR_PRECISION и AIR_SUPERIORITY. Проверки миссии, движения, повторной атаки/Blitz, рабочей дальности и видимой цели общие. Бомбардировка не перемещает сохранённую часть с базы на цель. Один вылет расходует одну исходную единицу движения; точечный удар требует известной технологии с TECH.flags0x80 (в поставке173, «Точное оружие»), атакует постройки города и не выбирает жителей или части. Чудеса и дворец защищены существующим общим фильтром. Земной/морской ROF, летальные флаги, уничтожение груза и удаление зданий используют общие механизмы обстрела.
Назначение перехвата расходует всё движение сразу. Патруль становится готовым при следующем настоящем начале хода владельца. Возврат управления из переговоров не считается новым ходом. Это исходное поведение EXE; опциональная правка C3X intercept_lost_turn_bug не включается автоматически. Успешно вылетевший перехватчик расходует весь ход и снимается с дежурства; даже победивший в воздушном бою бомбардировщик прерывает удар.
Проверка оригинала
Использован предоставленный Civ3Conquests.exe, SHA256 c40583d707af7abd9b8568e2ed5a4f117f27a775dca617c8d7b873d76772dd6d, версия файла1.21. Метки третьей PCG-колонки исследованного C3X сопоставлены с фактическими инструкциями. Запуск Windows-партии не выполнялся.
732 исполнения неизменённых инструкций проверяют:
- Полный предикат попадания в радиус перехвата0x52c830 и полный исходный помощник спиральных смещений0x5e6d80. На выбранных радиусах, центральных/краевых позициях и четырёх режимах замыкания результат совпал с общей геометрией движка.
- Число категорий повреждения города:4, при более4 подходящих частях5, при более8 —6. Сам подсчёт подходящих частей со всеми исключениями этой проверкой не доказывается.
- Целочисленный порог воздушного раунда из0x4a1234: от1 до1023, бросок0–1023. В отличие от прежнего черновика дробная вероятность с непрерывным броском больше не используется.
Восемь отдельных последовательностей байт подтверждают проверку уже выполненной атаки, ветку прямого удаления самолёта зениткой без Unit_score_kill, вызов Unit_score_kill победителем воздушного боя и направление сравнения результата броска. Поэтому зенитка не получает повышение опыта за сбитый самолёт. Ранее сохранённые 505 машинных случаев дополняют это арифметикой ПВО и радиусов; 67 случаев привязки кнопок подтверждают исходные ячейки37–41 и три состояния.
Порядок проверок: действующая городская ПВО → четыре наиболее сильные наземные/корабельные зенитные части на клетке → готовые истребители. Городская ПВО сначала проверяет обычную/стелс вероятность обнаружения80/5 из RULE, затем D/(D+air_power) для выживания. Даже выживший обнаруженный самолёт отменяет миссию. Для каждой части ПВО вес выживания D×(experienceId+1)×5. Перехватчик использует половину рабочего радиуса с исходными округлением/минимумом; нулевой рабочий радиус даёт радиус перехвата0.
Контент, графика и ИИ
В общем каталоге теперь25 обычных воздушных типов (включая два разведывательных), два типа мобильной ПВО217/218 и городские постройки44/88. Выделенные воздушные транспорты310/311 пока не включены. Вместимость бомбардировщиков сохранена как данные; десантные функции отдельно не объявляются готовыми.
Добавлены исходные default/run/attack1/death/fortify, где они указаны в INI, без изменения пикселей и длительностей. Для285 нет Attack1, у312 в исходном INI пустой Death: эти записи не заменяются выдуманными кадрами. Подготовлено213 исходных маленьких производственных иконок для актуального каталога. Общий манифест содержит1503 графические записи/атласа и958 WAV; сумма всех базовых RGBA-атласов около2060МиБ — это библиотека, а не одновременно загружаемый объём. Используется существующий ограниченный кеш, оригинальные цвета двух цивилизаций и ленивые загрузки.
Показ вылета начинается после загрузки кадров: полёт от базы → действие у цели → гибель, если есть исходная последовательность → возвращение выжившего. Состояние и PRNG уже рассчитаны; анимация их не меняет. Невидимые вражеские удары не показываются и не загружают боевые кадры. Если видна только цель, скрытая база не показывается траекторией. Свои анимации сохраняют исходную скорость.
Начальный ИИ выбирает видимые вражеские цели, строит ограниченное число бомбардировщиков/перехватчиков по общей доступности производства, назначает патрули и перебазируется к известной цели. Изменение скрытой части противника не меняет выбор видимого воздушного приказа. Развитая воздушная стратегия и целенаправленное строительство ПВО требуют продолжения.
Сохранения и проверки
Схема36, airModel native-air-missions-v2. Подлинный опубликованный файл35 с грузом авианосца и отдельной разведкой переносится с изменением только двух метаданных. Готовность патруля сохраняется и проверяется при загрузке. Детерминизм между командами не зависит от вставки сохранения/загрузки и не означает совпадения PRNG с Windows-оригиналом.
25 новых проверок ядра охватывают приказы, точечный удар, летальность, ПВО, перехват, настоящий/дипломатический старт хода, груз, миграцию и показ. Браузерный сценарий проверяет пять исходных пиктограмм, B, технологический запрет, точечный удар, ПВО/перехват, настоящий ход владельца и точный экспорт. Итоговые результаты выпуска: release-0180-validation.json.
Оставшиеся расхождения и работы
В v0.20.0 отдельно подключена переброска через аэропорты, включая обычное строительство аэропорта, исходную кнопку, лимит отправки, ИИ и сохраняемое состояние. Это не транспортный десант и не поддержка аэродромов вне города.
Не завершены воздушные базы вне городов/авианосцев, воздушная доставка и десант, ядерные и крылатые ракеты, все исключения смешанных владельцев, точный выбор/подсчёт защитников и городских целей, иммунитеты аэродромов, все эффективные бонусы воздушного боя, нативный порядок случайных вызовов и полное воспроизведение экранных/звуковых фаз Windows. Наземный/морской раздел5.1 также остаётся частичным. Эти ограничения не подменяются проверками детерминизма собственного движка.