# Загрязнение и совместная очистка

28.10.2026. **v0.8.0 / abed4396dfe7f697 опубликована в 03:40 МСК**; все восемь публичных сценариев пройдены на этом хеше без ошибок страницы/запросов. Это продолжение рубежа 4.5, а не завершение всех природных систем.

## Правила выбранного профиля

Расчёт разделяет население и реальные постройки. В Atlants `RULE.city_max_size=15`: населёнческая часть нашей модели равна `max(0, население − 15)`. Промышленная часть складывает подписанные `BLDG.pollution` физических зданий, в том числе устаревших. Отрицательные значения уменьшают только эту часть; её итог не становится отрицательным. Виртуально дарованные постройки не добавляют промышленного загрязнения.

Активный флаг общественного транспорта ограничивает положительную населёнческую часть одним пунктом; активный флаг переработки аналогично ограничивает положительную промышленную часть. Они не убирают существующие пятна. В Atlants у Центра переработки одновременно записаны −4 и соответствующий флаг, у Парка — −1 и флаг переработки, у Очистных сооружений — −2. Данные прочитаны из исходного BIQ, а не перенесены из стандартного набора.

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

Процентное правило описано в [официальном руководстве Prima, раздел Pollution](https://manuals.plus/m/d76e460361da693c0ec91ddff041d42d7a117f67b42cd55f945543fbd819c27a). В нём есть устаревшее описание половинной выработки. Для эффекта клетки принята нулевая пища, щиты и торговля, описанная в [руководстве Civilization III, Pollution’s Effects, печатная стр. 66](https://usermanual.wiki/Document/Civilization3Manual.1841378190.pdf).

Разделение источников, размер города из RULE и константы экологических пределов дополнительно сопоставлены с [первичным разбором EXE автором Antal1987](https://forums.civfanatics.com/threads/how-to-reduce-pollution-at-all-in-civ3-conquests.526144/). Особенности физических/виртуальных зданий и снятия работника проверены по [исходникам C3X](https://github.com/maxpetul/C3X/blob/master/injected_code.c): это исследование другого исполняемого варианта, а не подтверждение выбранного Atlants EXE. Не перенесены дополнительные правила C3X о загрязнении бесплатных зданий, отрицательном населёнческом загрязнении или запрете загрязнения непроходимой суши.

## Игра и управление

- Загрязнение рисуется исходным `Art/Terrain/pollution.pcx`; очистка использует исходный значок. Карта и городской экран используют один слой; неизвестные клетки ничего не раскрывают, изученные сохраняют прежние наблюдения.
- Рабочий получает приказ «Убрать загрязнение» через меню работ или Shift-C на загрязнённой клетке. На чистой клетке показана причина отказа.
- Используется исходное задание TFRM 8: 16 единиц базовой работы с общей уже существующей поправкой местности. Усилия рабочих складываются; интерфейс показывает число участников, общий прогресс и оставшиеся ходы.
- До завершения работы пятно сохраняется. Постройка дороги и другие задания сами загрязнение не снимают. Уборка сохраняет дорогу, месторождение и остальные улучшения; после неё возвращается обычная выработка.
- Автоматическое распределение жителей не выбирает загрязнённые клетки. Переназначение использует общую экономику, без отдельного расчёта в интерфейсе.
- Видимая городская сводка показывает два источника и риск; справка построек объясняет подписанный вклад и экологические ограничения. ИИ использует тот же приказ и даёт уборке высокий приоритет среди рабочих заданий по доступным наблюдениям.

В обычное производство добавлены Фабрика (42), Средневековый цех (51), Профсоюз (58), Общественный транспорт (64), Парк (77), Центр переработки (85) и Очистные сооружения (91). Действуют исходные технологии, здания-предпосылки, ресурсы, цены и содержание. Для транспорта требуется нефть; для Профсоюза — Цех. Подключены 14 исходных малых/больших изображений. Это расширяет исполненный каталог, но не означает поддержки всех зданий Atlants.

При основании города загрязнение его центральной клетки снимается, дорога и ресурс сохраняются. Загрязнение на городской клетке не принимается редактором/загрузчиком; эта политика и её совпадение с оригиналом требуют отдельного контроля.

## Сохранения и границы совместимости

Схема 29 добавляет `pollutionModel=city-pollution-v1`, экономика — `city-economy-v17`, работы — `native-terrain-work-v6`. Настоящий опубликованный файл схемы 28 с незавершённой дорогой мигрирует только метаданными: клетки, прогресс, игроки, очереди, фаза и PRNG не меняются. Более старые миграции сохраняют прежние проверки всех полей. Собственная партия с уборкой точно продолжается после загрузки.

Оригинальная последовательность PRNG, точная фаза относительно роста/исследования, порядок выбора клетки и край экологического эффекта ровно на границе размера ещё не проверены в Windows. Сейчас кандидаты отсортированы по строкам карты и выбираются равномерно; C3X указывает на исходный случайный старт поиска среди 20 соседей, поэтому совпадение расположения пятен не заявляется. Выбор варианта рисунка детерминирован по клетке, а не объявлен исходным алгоритмом. Анимация очистки использует имеющуюся исходную ROAD рабочего; отдельного действия очистки в его INI нет, точная привязка требует визуального контроля.

Болезни, глобальное потепление, вулканы, ядерные загрязнения/аварии, остальные задания и точные скоростные модификаторы рабочих остаются отдельной работой. [Реестр контрольных случаев](reference-cases.md).

## Проверки выпуска

18 направленных проверок охватывают источники, знаки и пределы, устаревание/дарованные здания, нулевую выработку, детерминизм, совместную уборку без преждевременного удаления, дороги, сроки, прогнозы без случайных эффектов, ИИ, новую производственную доступность, туман, перенос жителей и подлинное старое сохранение. Все 675 JavaScript-проверок в 50 отдельных последовательных процессах и DOM прошли. Восемь локальных браузерных сценариев прошли, в том числе полная партия до победы на 18-м ходу с точным продолжением. [Итог ядра и локальных сценариев](data/pollution-kernel-verification.json).

Браузерный сценарий выполняет реальные человеческие и ответные ходы ИИ: два рабочих → первый неполный ход → экспорт/перезагрузка → завершение уборки → восстановление выработки. Отдельно завод с исходными двумя пунктами действительно создаёт загрязнение на подобранном сохранённом зерне, а городской экран показывает 2%. [Отчёт](data/browser-pollution-verification.json), [подсказка клетки](data/city-pollution-tooltip.png), [совместная уборка](data/cooperative-pollution-cleanup.png), [естественное появление](data/natural-city-pollution.png).

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