# Пакт взаимной защиты Atlants

Продолжение 4.4 в сборке `a54a24d0832c73bf`, схема 26 и соглашения `atlants-agreements-v3`. Экономика v16, финансы v3 и работы v5 сохраняются. [Отчёт](data/protection-verification.json) · [Исходные данные](data/protection-source-evidence.json) · [25 контрольных проверок](data/protection-test-checks.json).

В «Цивилизации → Предложить сделку» добавлен взаимный пакт. Нужны мир, действующее посольство и флаг TECH 0x100 у одной из сторон — **«Национализм», TECH130** исходного Atlants. Пакт не предоставляет право прохода. Подписание сохраняется как обычное взаимное условие торгового пакета; человек и ИИ используют одни команды и котировку. Обязательство — 20 ходов, затем до отмены.

Одно объявление войны без территориальной причины не вызывает защитника. Действуют вход/нахождение противника на защищённой территории и нападение внутри её границ. Причина нападения фиксируется **до боя**, поэтому гибель атакующего и последующее изменение владельца клетки её не стирают. Нападение на юнит партнёра вне его границ само по себе не вызывает пакт. Текущая политика включает и враждебное гражданское присутствие; точное оригинальное исключение для гражданских ещё не проверено.

Каждое вступление выполняет общий механизм объявления войны, с правильным фактическим инициатором и его последствиями для несовместимых договоров/усталости. Если стороны ещё не встречались, принудительная война устанавливает контакт без раскрытия координат. История `protection-call` сохраняет причину; интерфейс участников показывает страны и ход без позиций чужих войск.

Цепочки требуют отдельной территориальной причины для каждого вступления. Каждое добавляет ранее отсутствовавшую войну; повторные команды не дублируют вызов и усталость. Порядок разрешения детерминирован для одинакового состояния, но точное соответствие порядку Windows остаётся отдельным контролем.

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

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

Схема 25 мигрирует только номера схемы и соглашений. Сохранены настоящие файлы предыдущего опубликованного движка с эмбарго, правом прохода, посольством/отчётами, очередью и незаконченной дорогой: [действующие договоры](data/published-schema25-embargo-active-trade-road.json), [ожидающее предложение](data/published-schema25-embargo-pending-trade-road.json). Исходные модули 25 и их хеши закреплены отдельно до изменения кода.

Все **25 новых проверок** прошли, включая неудачный бой с гибелью нападавшего, захват гражданского, GoTo, цепочку четырёх цивилизаций, несовместимый мир/пакт фактического защитника, мир после ухода войск, принятие ИИ, его запрет обычного планирования против партнёра, подделанные истории и сохранение между командами. Пройдены DOM, 30 Python и локальный браузерный сценарий. Полный актуальный набор — 604/604 JavaScript и 30/30 Python, всего 634. Все 29 сценариев Chromium прошли на основном сайте; адреса, версия и отсутствие ошибок сверены в каждом отчёте.

[Браузер](data/browser-protection-verification.json) проверяет реальный приказ G, вызов чужого защитника, историю собственного пакта, предупреждение мира и подлинные файлы 25. Первоначальная ошибка драйвера — попытка закрыть уже автоматически закрытое окно отношений — сохранена в журнале; проверки состояния не ослаблены. Подготовленные тесты также исправлены на существующий тип защитника и допустимую повторную команду; схема усталости — числовое значение по противнику.

Основания: [исходное руководство, с. 141](https://manuals.plus/m/0e4e661dbe03e34fd522a8657e1f6f14e231f153a7db35db7510f651a27ea36e), [наблюдения MPPs](https://forums.civfanatics.com/threads/mpps.97016/), [уточнения территориального триггера](https://forums.civfanatics.com/threads/what-triggers-a-mutual-protection-pact-i-cant-get-them-to-work.210496/), [первичный разбор планирования войны ИИ](ai-war-plotting-reference.md), локальная Civilopedia и BIQ. [Реестр оригинальных контрольных случаев](protection-pact-control-cases.md) остаётся открытым: гражданские/фазы/цепочки, морские/воздушные/бомбардировочные/ядерные причины и остальные системы полного плана не объявлены завершёнными.


Последующая сборка `9d8d02f586185957` добавляет [обмен картами и контактами](knowledge-exchange-model.md). Все прежние функции повторно проверены в общем наборе 664 автоматических проверок, DOM и 30 публичных сценариев; точное Windows-поведение остаётся отдельной работой.
