# Текущая модель городов: область поддержки и проверка

Версия модели — `city-economy-v4`, схема собственных сохранений — 8. Подключены [ранние здания и очередь](city-buildings-model.md). Это исполняемая промежуточная модель раннего города. Она **ещё не подтверждена контрольными ходами Atlants 2**. Связанные задания: R01–R09 в [реестре контрольных случаев](reference-cases.md).

## Числа из поставки и интерпретации движка

Из основного BIQ используются потребление **3 пищи на жителя**, доходы TERR и GOOD, штраф клетки GOVT, требования и стоимость PRTO, стоимость работ TFRM, довольные жители DIFF и предел малого города RULE. Профиль сохраняет исходные поля, включая неизвестные.

Центр малого города пока трактуется как 2 пищи, минимум 1 щит, минимум 1 единица торговли; столица — минимум 4 торговли до штрафа правительства. Ресурс добавляет щиты и торговлю, но не изменяет принятые 2 пищи центра. При «Общине» выработка компонента выше 2 уменьшается на 1. Это рабочая интерпретация по [описанию расчётов OpenCiv3](../openciv3/terrain-yields-and-workers.md), а не извлечённая из BIQ формула оригинального EXE. Аграрные, промышленные и коммерческие особенности центра ещё не исполняются.

Порог первого роста принят равным **20 пищи**. Значение не выведено из `RULE.unknown_1`, не объявлено настройкой Atlants и требует Windows-наблюдения. Без амбара остаток после роста обнуляется; с амбаром сохраняется половина старого порога. Порог следующих классов — 40/60; границы 7/15 из RULE и пресная вода учитываются общей моделью, но старшие здания ещё недоступны в обычной партии. Эти формулы требуют сверки.

## Общий расчёт и порядок

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

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

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

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

## Горожане, настроение и потери

Доступная область — 20 клеток вокруг центра: квадрат радиуса 2 без четырёх углов. Допускается обработка принадлежащих игроку суши и воды. Город раскрывает эту область для собственного представления мира. Общая клетка может быть назначена только одному городу, в том числе после сохранения. Свои и чужие центральные клетки не назначаются жителям повторно.

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

Для стартового правительства введены отдельные дистанционная и ранговая части коррупции по [исследованной модели Conquests](../civ3-conquests/knowledge-base/civfanatics/corruption.md). Ранг разрешается расстоянием, ходом основания и порядком города; дорога к столице уменьшает дистанционную часть. Предел потерь — 90%, округление потерь пока до ближайшего целого, с сохранением хотя бы одного щита/единицы торговли. Антикоррупционные флаги имеют предварительную формулу; особенности цивилизаций, коммунальное правление и праздники не применяются. Геометрический масштаб выбран для нашей логической фиксированной карты и не доказывает импорт оригинальной географии.

## Что ещё не действует

Наука, казна, содержание и начальная обработка дефицита уже подключены к этому же межходовому расчёту. Подробности и ограничения находятся в [модели финансов и исследований](finance-and-science-model.md).

Не завершены бой, захват и победа, поэтому партию ещё нельзя пройти. [Журнал прогресса](../development-progress.md) и [машинный отчёт покрытия](data/engine-compatibility.json) перечисляют текущие ограничения. Успешные проверки повторного воспроизведения подтверждают свойства нашего движка, а не совпадение его случайной последовательности с оригиналом.

## Сохранения

Схема 8 содержит версии моделей хозяйства/финансов/науки/работ, жителей, заказ и запасы города, контакты, научный счётчик и ожидающие решения. Загрузка ранее опубликованных схем 2–7 добавляет новые поля, сохраняя текущий ход, стороны, юниты, случайность и незавершённые работы. Новые ресурсы фиксированной карты добавляются только при создании новой партии; существующая сохранённая карта не дополняется при миграции.

Тесты проверяют отказ неверному профилю/схеме/модели, повторно назначенной клетке, ошибочным ссылкам и повторно используемому счётчику объектов. Загрузка собственного JSON не является импортом SAV.

## Ресурсы и память

Файлы FLC остаются неизменными. При экспорте PNG вычисляется одна общая рамка непустых пикселей по всем кадрам и направлениям действия; прозрачные поля удаляются, а их размер переносится в смещение относительно исходного холста. Это сокращает декодированный лист основателя с 26,37 до 2,68 МиБ. Автотест восстанавливает каждый из его 120 исходных RGBA-кадров и сравнивает все байты.

Атласы дорог и неиспользуемые культурные варианты остаются подготовленными, но не загружаются начальным экраном. Текущий необходимый набор — приблизительно 14,95 МиБ RGBA / 2,13 МиБ PNG. RSS процесса конвертации записывается в манифест ресурсов. Измерения RSS настоящего тестового Chromium и JS heap находятся в [браузерном отчёте](data/browser-verification.json); это показатели разных областей памяти. GPU-копии, активные звуки и полный каталог ресурсов ещё предстоит измерить отдельно.

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