# Карта, город, движение и звук: замечания пользователя

Обновление `a54a24d0832c73bf` опубликовано непосредственно в основной игре. [Статус проверки](data/visual-feedback-verification.json) · [Браузерный отчёт](data/browser-visual-feedback-verification.json). Полный объём MVP остаётся в работе.

## Что изменено

- Убраны самодельные синие/красные контуры клетки при наведении. Сохранены оригинальные указатели GoTo, явный приказ движения и линия маршрута. Красный круг **самого выбранного юнита** — отдельный индикатор запаса движения.
- Щелчок по своему городу открывает его окно, включая город с гарнизоном. При явном GoTo щелчок остаётся назначением приказа. Чужой город не становится бесплатно доступным для управления/платного исследования.
- Кнопка закрытия города перенесена в правый верхний угол. Заголовок и крестик остаются видимыми при прокрутке. Обязательное решение производства сохраняет прежнее ограничение закрытия.
- Пища, щиты, наука, золото/налоги и коррупция получили исходные значки из `CityIcons.pcx`. Подключённые ресурсы показываются вместе с исходными изображениями.
- Вместо маленьких отметок владельца отображаются политические границы из оригинального `Territory.pcx`. Внутри одной державы нет линий между соседними клетками. Отрисовка использует известную игроку карту; внешние и холмистые стороны берутся из отдельных кадров исходного атласа.
- Растровые слои карты разделены на проходы. Реки больше не рисуются поверх леса той же клетки, а новый соседний лес не перерисовывает уже наложенное затемнение. Сначала база/реки, затем растительность/рельеф, улучшения/ресурсы/границы, затем туман разведанной местности. Формулы географии и данные прежних сохранений этим исправлением не меняются.
- Движение показывает оригинальный Run с интерполяцией между клетками и исходными звуками шагов WAV/AMB. Для недостающих «Племени» и копейщика подготовлены оригинальные Run. Примерно 31 определение по эпохам имеет исходные привязки; это не означает завершение всех оригинальных 413 типов и способностей.
- При завершении собственного хода подключён `Sounds/EnterTurn.wav`, при натуральном начале нового собственного хода — `Sounds/PaperTurn.wav`. Торговое прерывание не считается новым ходом. Звук включается существующей кнопкой «Звук»; выбор этих двух событий пока требует сверки с Windows-оригиналом.
- Выделение выбранного юнита использует исходную форму анимированного круга, окрашенную по **остатку движения**: белый — движение ещё доступно, красный — ноль. Зелёный/жёлтый цвет круга убран по последующему уточнению пользователя. В панели остаётся отдельный трёхцветный индикатор движения, а полоска здоровья независима.

![Оригинальные Run и границы](data/unit-run-and-borders.png)

![Красное выделение при нулевом движении](data/unit-no-movement-red.png)

![Значки и верхний крестик города](data/city-icons-and-close.png)

## Расчёт и представление

Движок сначала исполняет команду и сохраняет её результат. Кадры Run, промежуточная позиция и звук не расходуют очки движения, не открывают клетки и не используют игровой PRNG. Несколько событий одного GoTo дают последовательные отрезки. Новый ввод может завершить прежнее визуальное движение без повторения команды; импорт/новая партия сбрасывают старую визуальную задачу. Бой сохраняет свой прежний отдельный сокращённый показ; точная исходная последовательность смешанного маршрута и боя ещё не завершена.

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

Производные цветные маски ограничены кешем 16 МиБ; текстуры юнитов и аудиобуферы сохраняют отдельные прежние лимиты 64/16 МиБ. В пакет входят **553 базовых графических ресурса**, **306 цветных вариантов юнитов** и два варианта указателя, **273 WAV**. Подготовка значков и пограничного атласа воспроизводима скриптом `scripts/prepare-interface-media.py`; исходные файлы не изменяются.

## Как проверяется

Новый браузерный сценарий проверяет:

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

Пройдены **634 автоматические проверки**: 577 ядра, 27 JavaScript-медиа и 30 Python. Отдельно пройдены DOM и все **29 сценариев Chromium на основном сайте**. Четыре проверки представления движения включают первую загрузку Run. Подготовка исходных значков/границ/звуков повторно побайтово воспроизводима. [Сверка всех браузерных отчётов](data/visual-feedback-browser-audit.json).

Руководство [Civilization III, Move Indicator, с. 167](https://manualzz.com/doc/25583228/sid-meier-s-civilization-iii-video-game-user-manual) описывает три цвета индикатора движения и отдельно цвет полоски здоровья. В оригинале открытие города — двойной щелчок; **один щелчок сделан по прямому пожеланию пользователя**. Точные задержки, звук событий, все случаи смешанного боя/движения и полное оформление исходного городского экрана ещё требуют продолжения работ. [Пакт взаимной защиты](mutual-protection-model.md) входит в ту же сборку, но имеет отдельные проверки правил.


## Последующие уточнения и исправления

В обновлении `a54a24d0832c73bf` круг при доступном движении возвращён к исходному белому. Во время первой загрузки Run/аудио юнит удерживается на исходной позиции; затем начинается движение, без предварительного появления на конечной клетке. Проверка намеренно задерживает загрузку Run на 650 мс.

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

Первый публичный прогон предыдущей сборки завершился 25/29: ошибка обращения к отсутствующему выбранному юниту прерывала рендер и три перехода хода. Исправлен сброс панели без обращения к юниту. Все исходные результаты сохранены; после исправления все 29 сценариев прошли на сборке `a54a24d0832c73bf`.

![Прогресс начальной загрузки](data/loading-world-progress.png)


Последующая сборка `9d8d02f586185957` добавляет [обмен картами и контактами](knowledge-exchange-model.md). Все прежние функции повторно проверены в общем наборе 664 автоматических проверок, DOM и 30 публичных сценариев; точное Windows-поведение остаётся отдельной работой.
