# Правительства и анархия

В рубеже 4.2 подключён переход между правительствами. Золотой век подключён последующим изменением: [отдельная модель](golden-age-model.md). Это описание исполняемой модели `atlants-government-v1`, собственного сохранения 9 и экономики `city-economy-v5`; оно не подтверждает совпадение с Windows-оригиналом.

## Что доступно в игре

Название строя под миникартой открывает окно «Правительство». Показаны все 13 обычных форм, требования технологий, предел науки, скорость рабочих, военная полиция и способ ускорения. Четырнадцатая строка GOVT — переходная анархия; выбрать её как обычное правительство нельзя.

Революция требует отдельного подтверждения. Начальный строй «Община» берётся из `GOVT.default`, переходный — из `GOVT.transition`. Сначала происходит переход в анархию; форму правления выбирают после неё. Вернуться к прежнему строю можно тем же обязательным выбором, без отмены уже начавшейся революции.

Все доступные формы определяются общей проверкой требований GOVT. Выбор не обходит требуемую технологию. Команды `START_REVOLUTION` и `CHOOSE_GOVERNMENT` проходят обычные проверки игрока, фазы и ожидающего решения. Отказ сохраняет исходное состояние.

## Межходовой расчёт

- На каждом собственном урожае остаётся на один ход анархии меньше. Чужой ход таймер не уменьшает. Урожай последнего хода ещё рассчитывается в анархии; затем возникает обязательное решение. Нельзя пропустить его завершением хода, закрытием окна или Escape.
- В анархии полностью теряются обычные щиты и коммерция, включая столицу. Старый предел потерь 90% здесь не применяется. Обычная культурная прибавка останавливается; накопленная культура сохраняется.
- Пища, рост и голод продолжаются. Рабочие продолжают незавершённые задания со скоростью из текущего GOVT. Накопленная работа не обнуляется.
- Доходы специалистов считаются отдельно: налоги и колбы сохраняются; инженеры продолжают давать щиты сооружениям, но не юнитам и «Богатству». Полиция не возвращает потерянную в анархии коммерцию и щиты. Сочетание инженеров с беспорядками по-прежнему требует оригинального контрольного случая.
- Отсутствие обычных колб не увеличивает число финансированных ходов исследования. При наличии научного специалиста исследование может продвигаться.
- Для анархии Atlants `free_units=-1`, `requires_maintenance=0`, `hurrying=0`: армия и здания не требуют содержания, ускорение недоступно. Дополнительный процент с казны также приостанавливается.
- При выборе нового строя немедленно действуют его общие экономические параметры, скорость рабочих, военная полиция, требования сооружений и способ ускорения. Доля науки выше нового `science_cap` переносится в налоги; роскошь и накопленное исследование сохраняются.
- `force_resettle` уменьшает население на 1/2/3 для поселения/города/метрополии по исходным размерам RULE, сохраняя хотя бы одного жителя. Эффект применяется при выборе строя и сохранении захваченного города. Порядок относительно потерь и сопротивления захвата требует сверки Windows.

Предпросмотр экономики и исполнение используют одни расчёты. Анимации и загрузка изображений не управляют таймером. Условие победы продолжает действовать во время перехода.

## Длительность: явная предварительная модель

В исходном RULE длительность анархии отдельным полем не обнаружена. В GOVT есть тип перехода, в DIFF — `max_anarchy`. Точная формула и момент учёта начального хода в выбранном EXE пока не измерены.

В текущей модели религиозная цивилизация получает ровно два собственных урожая анархии без броска. Для остальных: `3 + random(0..4) + cityPart`, где `cityPart = min(2, floor(3 * cities / optimal))`; `optimal = max(1, floor(WSIZ.optimal_cities * DIFF.optimal_cities_pct / 100))`. Положительный `DIFF.max_anarchy` ограничивает длительность для ИИ; 0 означает отсутствие этого ограничения. Религиозная длительность имеет приоритет над ограничением ИИ.

**Распределение случайности, пороги количества городов, трактовка ограничения ИИ и начальный/последний ход предварительные.** Это не дословное перенесение OpenCiv3: там используется другая приблизительная сумма двух бросков. Диапазоны 3–7/4–8/5–9 опираются на опубликованное самостоятельное наблюдение игрока C3C; наши пороги и собственный PRNG не подтверждены оригиналом Atlants.

## ИИ и сохранения

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

Сохранение содержит модель правительства и `governmentTransition`: прежний строй, начальный ход, общую и оставшуюся длительность. Обязательное решение сохраняет список вариантов. Загрузка проверяет согласованность анархии, счётчиков и выбора; собственная случайность также сохраняется. Настоящее сохранение опубликованной схемы 8 с дорогой используется для проверки миграции. В старой схеме перехода не существовало; подготовленное старое состояние с анархией получает обязательный выбор вместо бесконечного ожидания.

При этой работе исправлено чтение `RACE.traits_mask`: научное свойство — бит 3 (`8`), экспансионистское — бит 2 (`4`). Россия имеет оба, поэтому прежние проверки только России не выявляли ошибку. Добавлены отдельные цивилизации, имеющие одно из этих свойств, для научного подарка и скидки научным сооружениям. Состояния уже сыгранных старых партий не пересчитываются задним числом.

## Проверки и границы

19 проверок `tests/government.test.mjs`: исходные требования, диапазоны и ограничения, детерминированный переход, два религиозных урожая, полная потеря обычных доходов в столице, специалисты, рост и дорога, обязательный выбор, предел науки, смена скорости работ, переселение при смене и захвате, зависимые от правительства здания, общий ИИ/скрытые сведения, настоящая миграция схемы 8, отказ повреждённым переходам, различение научного/экспансионистского свойств, загрузка завершённой партии при отменённом выборе правительства победителя/проигравшего.

[Браузерный отчёт](data/browser-government-verification.json) разделяет новую неизменённую партию с революцией и возвратом в Общину и явно подготовленное состояние с известной Монархией, населением и запасами. В обеих цепочках каждый урожай и действия ИИ сравниваются с ядром; проверены отмена подтверждения, Escape, перезагрузки и принятие нового строя. Это автоматическое прохождение интерфейса, а не ручная оценка человеком.

Национальности, ассимиляция и культурное ограничение `xenophobic` подключены последующим [изменением 4.3](population-and-resistance-model.md). Открыты полные модели коррупции разных правительств, военная усталость, призыв, дипломатическая часть матрицы, специальные неизвестные переключатели и оригинальные контрольные ходы. Возможность выбрать все формы не означает полного воспроизведения всех их свойств. [Пообъектный отчёт](data/government-effects.json).

## Основания и проверка оригинала

- Предоставленный `Conquests/conquests.biq`, SHA-256 `827be8b3f7aab140d2e702ecb6a8e4b2dc5c8c4324d0e2fcb2be497903723be9`: все перечисленные параметры берутся из Atlants, а не стандартной игры.
- [Firaxis: C3C Government Breakdown, Jesse Smith](https://forums.civfanatics.com/threads/c3c-government-breakdown.67419/post-1332479): исходное разъяснение разработчика о параметрах правительств и потере 1/2/3 жителей при переселении. Стандартная таблица не подменяет значения Atlants.
- [Duration of anarchy, самостоятельная проверка C3C](https://forums.civfanatics.com/threads/duration-of-anarchy.683384/): диапазоны длительности, религиозные цивилизации и проблема учёта межходового начала. Точные пороги из неё не следуют.
- [Инструкция проведённой партии, ответ Chieftess](https://forums.civfanatics.com/threads/turn-chat-instruction-thread-saturday-14-may-16-00-gmt.118672/): специалисты продолжают давать науку/золото в анархии.
- [Optimal government type, Quintillus](https://forums.civfanatics.com/threads/optimal-goverment-type.561398/): сообщение игрока о производстве инженерами в анархии; нуждается в повторении на нашем EXE.
- [Editing happiness buildings, наблюдение культуры](https://forums.civfanatics.com/threads/editing-happiness-buildings.703224/page-4): описана остановка культуры, включая дворец и чудо, во время анархии.
- [Закреплённый формат RACE](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/QueryCiv3/BiqSections/Race.cs): порядок флагов; описание формата не доказывает поведения оригинала.

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