# Управление городом: губернатор, ускорение и продажа

Исполняемые модели — `city-management-v1`, `city-economy-v4`; собственное сохранение — **схема 8**. Это продолжение задачи 4.1, доступное на основном сайте. Проверки собственной реализации не заменяют контрольных ходов Windows Atlants.

## Данные Atlants и область доступности

| Параметр | Значение предоставленного профиля | Использование |
| --- | --- | --- |
| `GOVT.hurrying` | 0 / 1 / 2 | Запрет / население / золото |
| Начальная Община, ID 10 | 0 | Кнопка ускорения объясняет запрет правительства |
| Монархия, ID 1 | 1 | Принудительный труд |
| Демократия, ID 3 | 2 | Оплата золотом |
| `RULE.shield_value_gold` | 6 | Цена одного ускоренного щита |
| `RULE.citizen_shields` | 20 | Щиты одного потерянного жителя |
| `RULE.hurry_unhappiness` | 20 | Составляющая недовольства за потерянного жителя |
| Технология 189, Переработка | Бит 6 `TECH.flags` | Щиты от продажи обычного сооружения |

Проверяемые значения доступны в [исходных таблицах](data/rules-main.json).

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

## Общие команды и предпросмотр

`HURRY_PRODUCTION`, `SELL_BUILDING` и `SET_GOVERNOR` проверяются ядром и используются интерфейсом/ИИ. Предпросмотр стоимости вызывает ту же функцию, что проверка команды. Отказ содержит причины, не меняет состояние и не расходует PRNG. Окно подтверждения показывает цену и последствия; отмена не создаёт команду.

Ускорение заполняет запас щитов, но не создаёт юнит/здание немедленно. Выпуск происходит при следующем расчёте города с обычной проверкой требований и населения. Если запас пуст, оплачиваемый дефицит удваивается. Цена золотом — дефицит × 6; населением — округление вверх дефицита / 20. Расходовать больше половины текущего населения нельзя. Беспорядки, сопротивление, завершённый запас, чудо и «Богатство» препятствуют ускорению.

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

Потеря населения добавляет `20 × потерянные жители` к счётчику `hurryAngerTurns`. Число отрицательных ступеней настроения — округление вверх счётчика / 20. После урожая владельца счётчик уменьшается на один, повторное ускорение суммируется. Отрицательные ступени сначала понижают счастливых до спокойных, затем спокойных до недовольных. Формула и момент уменьшения — исполняемая интерпретация с собственными тестами, **ещё не подтверждённая выбранным EXE**. Наблюдения разных старых патчей о накоплении отличаются; контрольный случай обязателен.

## Продажа сооружения

Продаётся одно обычное фактическое здание в городе за ход. Нельзя продать дворец, чудеса, здания пределов размера и бесплатные сооружения. Нулевое содержание само по себе не запрещает продажу обычного здания: это правило нельзя переносить из Civilization V.

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

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

## Губернатор

Раздельно сохраняются управление жителями и управление производством. Для жителей доступны предпочтения пищи, щитов и торговли, а также предотвращение беспорядков. Без губернатора существующие допустимые назначения сохраняются; новые или освободившиеся места заполняются автоматически. Ручное назначение жителей выключает управление жителями, не меняя настройки производства.

Губернатор жителей строит распределение из доступных клеток, исключая занятость соседних городов. Учитывает пищу, меняет назначения при дефиците, затем при необходимости назначает артистов. Каждый расчёт начинается с нового распределения, поэтому артисты возвращаются к клеткам, когда здания/полиция/настроение снимают необходимость. Если одновременно избежать голода и беспорядков невозможно, это не маскируется добавлением выработки или бесплатных жителей.

Для производства есть предпочтения «Никогда / Обычно / Часто»: нападение, оборона, поселенцы, рабочие, рост, производство, довольство, наука, доход, культура. Ограничения больших/малых чудес сохраняются отдельно, но не открывают ещё неподдержанный контент. Выбор использует общую доступность, стоимость, свойства, местную выработку и оборону. Роли наступления/обороны/поселенца/рабочего берутся из соответствующих битов PRTO, а не выводятся только из боевых чисел. Применение возможно к одному городу, своим городам континента или всем своим городам; чужие города не меняются.

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

**Алгоритм губернатора — собственная детерминированная эвристика**, поскольку точные веса оригинала пока не установлены. Это поддержка управления с похожими настройками, а не доказанное совпадение его решений. Наследование настроек новыми городами, полный перечень поздних категорий и точное воспроизведение алгоритма ещё в работе.

## Использование ИИ

Политика настраивает управление жителями через `SET_GOVERNOR`. При угрозе от видимого противника может ускорить оборонительное производство, проверяя цену, продовольствие и настроение. При нехватке казны рассматривает продажу, если общий прогноз подтверждает сокращение дефицита без ухудшения текущего баланса и беспорядков. Дворец защищён обычной проверкой.

У ИИ нет особой цены или скрытого способа исполнения: используются те же команды/предпросмотры. В Общине он также не может ускорять. Расширение стратегии и совместимость оригинальных решений остаются задачей 4.9.

## Сохранения и проверка

Схема 7 хранит версию управления, настройки губернатора, недовольство, ход последней продажи и ограничение источников щитов. Реальное сохранение схемы 6 получено опубликованным модулем `b7b574fd5e1706e6` обычными командами; фикстура и журнал находятся в `tests/fixtures/published-v6-road*`. Миграция сохраняет все старые поля, карту, очередь, PRNG и частичную дорогу, добавляя выключенный губернатор. Порядок ключей JSON не ограничивает корректное сохранение.

22 проверки `tests/city-management.test.mjs` охватывают ограничения, цены, округление, урожай, накопление/снятие недовольства, перенос щитов, продажу и Переработку, рабочие места, предпочтения/область губернатора, очередь, ИИ и миграцию. [Браузерный отчёт](data/browser-city-management-verification.json) отдельно описывает продажу из естественной партии и искусственно подготовленные состояния других правительств. Проверяются отмена/подтверждение, точное исполнение, загрузка и последующее производство с продолжением ИИ.

[Общее прохождение](data/browser-party-verification.json) проверяет новую партию через реальный интерфейс до победы. Решения человеческой стороны автоматизированы; ручная оценка человеком и сравнение с Windows остаются открытыми.

[Машинная сводка ядра](data/city-management-verification.json) фиксирует версии и оставшиеся ограничения.

## Источники и контрольные случаи

- [Поля GOVT и порядок значений в закреплённом читателе](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7Engine/C7GameData/Government.cs) и локальный BIQ — формат и значения. Поведение OpenCiv3 не принимается за доказательство оригинальной формулы.
- [Hurry production, наблюдения игроков 2004 года](https://forums.civfanatics.com/threads/hurry-production.95782/) — доплата за пустой запас и ограничение доли населения.
- [Using the Whip](https://forums.civfanatics.com/threads/using-the-whip.75206/) — наблюдение о нескольких ступенях недовольства после потери двух жителей; версия требует сверки.
- [Официальное руководство Prima, Selling Improvements](https://device.report/m/d76e460361da693c0ec91ddff041d42d7a117f67b42cd55f945543fbd819c27a.pdf) — ограничение продажи.
- [Catt/Aeson, наблюдение о Переработке](https://forums.civfanatics.com/threads/power-plants-everything-you-wanted-to-know-but-were-afraid-to-ask.52745/) — номинальные доли золота и щитов.
- [Обсуждение культурной партии Conquests](https://forums.civfanatics.com/threads/celt-80k-culture-strategy.666754/) — ограничения продажи бесплатных/ростовых сооружений и чудес.
- [Первичное описание полей INI](https://forums.civfanatics.com/threads/disabiling-the-intro-movie-in-civ3-complete.338965/) — отдельные маски Never/Often губернатора. Точный алгоритм выбора из них не следует.

Следующие наблюдения оригинала: 0/1 щит перед ускорением; нечётное население и остаток 21 щит; две последовательные мобилизации труда; сохранение через границу снятия недовольства; продажа дешёвого/скидочного здания до и после Переработки; смена владельца с накопленным недовольством; конфликты приоритетов губернатора.

[Специалисты и расширенное дерево](specialists-and-research-model.md) добавлены в схеме 8. Вклад инженера отделён от прочих щитов; условия переключения описаны в новой модели. Профессии используют собственные требования и доходы Atlants.
