Взаимная защита: обязательные контрольные случаи
Подготовлено 27.10.2026 для следующей части 4.4. Наземная модель пакта опубликована: реализация и ограничения. Оригинальные контрольные случаи ниже остаются отдельными от тестов веб-движка. Это реестр проверок исходного поведения перед реализацией, а не отчёт о готовой механике. Эмбарго разрабатывается отдельным текущим изменением.
Измеренный профиль Atlants: флаг TECH 0x100, TECH130 «Национализм». Civilopedia установленной поставки также связывает договор о взаимопомощи с этой технологией. Технологические названия стандартной Civilization III не заменяют данные Atlants.
Исходное руководство, с. 141 описывает взаимную военную помощь при нападении, посольство/мир, достаточность технологии у одной стороны, обязательство 20 ходов и отдельное урегулирование возникших войн после отмены. Отдельно указано нарушение при мире с противником, который всё ещё вторгается на территорию партнёра. Руководство не раскрывает всех событий, вызывающих реакцию.
What triggers a Mutual Protection Pact?, №2/3 различает объявление войны и нападение внутри территории участника; автор №3 уточняет первоначальный ответ №2. MPPs, №5 и №7 содержит наблюдения о достаточности нахождения противника в границах и о бомбардировке, включая повторное наблюдение игрока в 2025 году. Следовательно, нельзя без проверки свести пакт только к событию WAR_DECLARED или только к успешному уничтожению юнита.
| Контрольный случай | Что требуется установить/сохранить |
|---|---|
| Объявление войны без войск в границах | Само объявление не равно нападению/вторжению; не начинать лишние войны |
| Войска уже в границах при объявлении | Проверить точную фазу вызова партнёра, класс учитываемых юнитов и наличие прибрежных исключений |
| Вход воюющего юнита на защищённую территорию | Проверить самостоятельный триггер входа, включая пустую клетку |
| Нападение на юнит вне его национальных границ | Национальности защитника недостаточно для территориального условия; уточнить нейтральную/третью территорию |
| Нападение внутри границ, закончившееся гибелью нападавшего | Партнёр должен оценивать само нападение, а не только оставшиеся на карте войска |
| Захват города меняет владельца клетки | Сохранить владельца и координаты цели до боя; не потерять причину реакции после пересчёта границ |
| Захват рабочего/поселенца | Установить, достаточно ли гражданской цели и как учитывается вторжение гражданским юнитом |
| Бомбардировка/налёт/десант/ядерное действие | Подключать соответствующие причины вместе с системами 5.1–5.4, без ложного объявления всей поддержки готовой |
| Цепочка нескольких взаимных пактов | Установить порядок реакций и разрыва несовместимых договоров; каждое объявление войны должно иметь фактического инициатора |
| Отдельный мир | Различать продолжающееся вторжение, завершённую угрозу и чистую отмену после обязательного срока |
| Загрузка между вторжением и реакцией | Сохранение причин/ожидающих решений должно давать тот же итог, без повторных объявлений и повторного начисления усталости |
| ИИ | Использовать общие причины/команды и доступные сведения; проверить исключение партнёра по пакту из обычного выбора цели войны |
Список — задачи проверки, а не доказанные ответы на все строки. Исполняемый эталон — 1.21.0.0; адреса и исправления C3X для Conquests 1.22 нельзя применять к нему простым вычитанием константы. Сравнение собственного воспроизводимого движка с самим собой не подтверждает эти условия Windows-оригинала.
Дополнительный первичный разбор: Flintlock о выборе войны ИИ. Он важен для предотвращения самовольного нападения на партнёра в обычном планировании войны; другие причины войны рассматриваются отдельно.