# Городские здания и очередь производства

Рабочие модели: `city-buildings-v1`, `city-economy-v4`, `city-finance-v2`; схема собственного сохранения — **8**. Это первая часть задачи 4.1. Проверки нашего движка отделены от ещё не выполненного сравнения с Windows-оригиналом. Основная игра обновляется на прежнем адресе, отдельного выпуска для приёмки нет.

## Доступное в обычной партии

| ID BLDG | Объект Atlants | Требование | Щиты до особенностей/сложности | Исполняемый эффект |
| --- | --- | --- | --- | --- |
| 0 | Дворец | Нет технологии | 100 | Столица, культура 1, содержание 1, ветеранские наземные юниты; перенос столицы при строительстве в другом городе |
| 45 | Кузница | 9 Горное Дело | 40 | Производство +25%, содержание 1 |
| 50 | Амбар | 11 Гончарный Круг | 40 | Сохранение половины старого запаса пищи после роста, содержание 1 |
| 67 | Памятник | 7 Каменная кладка | 40 | Культура 1, содержание 0 |
| 95 | Капище | 12 Ритуалы | 40 | Довольство 1, культура 1, содержание 1 |
| 124 | Жильё Рабочих | 7 Каменная кладка | 30 | Производство +25%, довольство 1, содержание 1 |
| 125 | Богатство | Нет технологии | Постоянный заказ | Преобразование каждых 6 полезных щитов в 1 золото |

Названия, ID, стоимости, требования и исходные значения взяты из предоставленного `Conquests/conquests.biq`, SHA-256 `827be8b3f7aab140d2e702ecb6a8e4b2dc5c8c4324d0e2fcb2be497903723be9`. У дворца первый байт флагов равен `03`: столица и ветеранская наземная подготовка. Это свойство конкретной поставки; прежний выпуск обычных бойцов из столицы исправлен.

Единица поля `production` интерпретируется как +25%. Порядок применения бонуса и округление ещё требуют контрольного хода. Иконки семи объектов конвертированы из оригинальных PCX без дорисовки. У «Жилья Рабочих» сама поставка использует `imp_noiconsmall.pcx`; заглушка сохранена как исходная привязка.

## Команды, прогноз и продолжение

`SET_PRODUCTION` и `QUEUE_PRODUCTION` принимают `kind: PRTO | BLDG` и ID. Одна проверка требований обслуживает исполнение, окно города и ИИ. Недоступная реализация возвращает `BUILDING_NOT_IMPLEMENTED`; наличие объекта в таблице не открывает его производство. Редакторов в новой игре пока нет.

Очередь содержит смешанные заказы. Её можно дополнять, удалять отдельные позиции и очищать. Текущий собственный предел — 10 ожидающих позиций; совпадение этого ограничения с оригиналом не заявлено. После завершения заказа берётся следующий допустимый; недопустимые пропускаются с событием и причинами. Юнит без следующего заказа производится повторно. После здания без очереди возникает обязательное решение о следующем заказе. Оно сохраняется, блокирует следующий ход и открывает окно города после возвращения хода человеку. Его нельзя пропустить закрытием окна.

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

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

## Порядок и рабочие интерпретации

Предпросмотр использует общие `cityEconomy`, `productionAvailability` и `productionCost`. В межходовом расчёте сначала завершаются работы и начисляется культура существующих зданий, затем рассчитывается урожай/бюджет, рост и производство. Бонусы и содержание только что завершённого здания применяются к следующему урожаю владельца. Новый ветеран получает HP своего уровня и не действует немедленно. В городе с соответствующим ветеранским сооружением полный ход отдыха восстанавливает всё здоровье.

Бонус производства применяется к щитам после потерь, бонусы науки/налогов/роскоши — к соответствующим долям торговли с отдельным округлением вниз. «Богатство» использует полезные щиты и целочисленное деление на `RULE.shields_per_gold = 6`. При смене категории производства накопленные щиты пока сохраняются: оригинальные ограничения переключения ещё не реализованы.

Порог пищи — 20/40/60 по размеру города. Это рабочая формула движка, не извлечённая настройка BIQ. Амбар после роста сохраняет половину старого порога. Пределы городов берутся из RULE: 7/15; соседство с рекой/небольшим озером позволяет второй размер. Точная работа амбара на границах размеров, определение пресной воды и ограничения сооружений требуют наблюдения выбранного EXE.

## Общая модель и границы поддержки

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

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

Ускорение, продажа и губернатор подключены в [следующей части](city-management-model.md). Не завершены остальные специалисты, загрязнение, туризм, удвоение культуры по возрасту, золотой век, бесплатные технологии, морская/воздушная торговля, армии и связанные победы. Формулы антикоррупционных зданий пока предварительные. В профиле 16 роскошных ресурсов; предел их вклада в настроение модифицированного EXE не подтверждён. Текущая модель учитывает подключённые виды, не подменяет это наблюдением оригинала. На ранней фиксированной карте эта неопределённость не участвует в партии.

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

Введённая ранее схема 6 добавляет версию модели зданий, историю чудес, ходы строительства, счётчики автопроизводства и типизированные решения следующего заказа. Текущая схема 7 дополнена [управлением городом](city-management-model.md); загрузка схем 2–7 идёт через последовательные миграции. Реальная фикстура схемы 5 создана опубликованным модулем `ce921720c8dab4c2` обычными командами, без ручного понижения версии нового состояния. Сохраняются все ранее существовавшие поля городов/юнитов, карта, PRNG и незавершённая дорога.

Проверки `tests/buildings.test.mjs` в репозитории охватывают требования, отказ неподдержанного строительства, смешанную очередь, выпуск ветерана, обязательное решение и загрузку, прогноз/содержание, амбар, бесплатные здания, чудо, автопроизводство, лечение и миграцию. Исходник теста находится в репозитории; библиотека исследований не публикует папку tests.

[Полное прохождение ядра](data/small-game-verification.json) и [прохождение в браузере](data/browser-party-verification.json) фиксируют текущие версии, действия, результат и точность загрузки. В браузерном отчёте отдельно записаны проверки очереди и обязательного решения; сценарий человека управляется автоматической политикой, ручной приёмкой это не является.

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

## Основания и будущая сверка

- [QueryCiv3/Bldg.cs](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/QueryCiv3/BiqSections/Bldg.cs) — расположение полей и отдельных битов формата; не эталон исполнения всех правил.
- [Объяснение параметров редактора автором Bluemofia](https://forums.civfanatics.com/threads/editor-rules-explained.210035/) — единицы бонуса производства, различие местного требования и числа сооружений в государстве, характеристики зданий.
- [Обсуждение эффекта Temple of Artemis](https://forums.civfanatics.com/threads/temple-of-artemis.68525/) — наблюдения о бесплатных сооружениях и прекращении эффекта.
- [Обсуждение роста, амбара и акведука](https://forums.civfanatics.com/threads/granary-aqueduct-question.78049/) — контрольные ситуации размеров и пресной воды.

Обязательные будущие наблюдения: выпуск первого ветерана из дворца Atlants; доход и содержание до/после «Жилья Рабочих»; рост с амбаром, включая переход размера; окончание нескольких исследований/заказов одновременно; потеря требования в очереди; сохранение в каждом из этих состояний.

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