# Интерфейс, советники и внутриигровая справка

## Рабочие части и заготовки

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

[Экран города](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/CityScreen/CityScreen.cs) выводит еду, щиты, полезную и потерянную коммерцию, культуру, жителей, специалистов, здания, стратегические ресурсы и роскошь. Есть переназначение работающих клеток и выбор производства. В коде отмечены вопросы сохранения национальностей и выбора вариантов портретов жителей.

[Внутренний советник](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/Advisors/DomesticAdvisor.cs) работает с состоянием городов и бюджетами, а [научный](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/Advisors/ScienceAdvisor.cs) — с технологиями и исследованием. Это подтверждение существования логики отображения, без проведённой визуальной проверки в запущенной игре.

## Что пока не следует обещать

| Компонент | Что видно в исходнике |
| --- | --- |
| [TradeAdvisor](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/Advisors/TradeAdvisor.cs) | В основном оформление и портрет |
| [CulturalAdvisor](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/Advisors/CulturalAdvisor.cs) | Аналогичная заготовка |
| [SpaceRaceView](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/GameViews/SpaceRaceView.cs) | Фон и закрытие; в ShowView нет расчёта корабля |
| [DemographicsView](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/GameViews/DemographicsView.cs) | Заголовок и фон; нет наполнения показателями |
| [WondersView](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/GameViews/WondersView.cs) | Каркас дополнительного экрана |
| [CivilopediaButton](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7/UIElements/UpperLeftNav/CivilopediaButton.cs) | Кнопка Disabled, подсказка о нереализованности |

Точность видимых подписей также следует проверять: например, колбы в одном месте подписаны как gold/turn. Текст интерфейса не заменяет анализ модели.

## Codex

[C7Engine/C7GameData/Codex.cs](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/C7Engine/C7GameData/Codex.cs) разбирает секции Civilopedia, описания, список понятий и внутренние ссылки вида `$LINK<...>`. Модель имеет ключ, имя, тело и описание; при отсутствии файла допускается пустая справочная база. Используется Windows-1252.

[EngineTests/GameData/CodexTest.cs](https://github.com/C7-Game/OpenCiv3/blob/c1370e2f63a6042a3c4206f0043543d7da0d5cc5/EngineTests/GameData/CodexTest.cs) проверяет разбор на уровне модели. Открытый [PR #1040](https://github.com/C7-Game/OpenCiv3/pull/1040) посвящён следующему этапу UI. Из наличия Codex нельзя заключить, что игрок уже может открыть полноценную энциклопедию.

## Для нашей игры

Приоритет — объяснимость решений: доступность производства, расшифровка дохода, срок роста, стоимость дороги и причины недовольства. Справку лучше генерировать из тех же данных, что использует движок, дополняя собственными текстами.

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

