[enhancement] Отделить истину симуляции от воздушной обстановки игрока и разведданных противника #93
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Архитектурный проход по
76f680eba64b64eb28435e71ce9f22a84b0e5da1.Текущее поведение
После #46 датчики имеют циклы обзора и стареющие tracks; это хорошая основа. Однако
panel.rs::summaryполучает raw Sim/все живые drones, показывает скрытые количества/позиции ближайшей угрозы и состояние конкретной цели через truth. Планировщик умного налёта строит cost grid по всем SAM, хотя отдельно уже существуетIntel.revealed.В коде режим показа истинных позиций прямо описан как sandbox. Поэтому это предложение отдельного честного режима и границ данных, не обвинение текущего sandbox в баге. Возможность видеть всю правду для тестов оставить.
Предложение
WorldTruthостаётся в ядре.TeamPicture/IntelSnapshotсодержит наблюдаемую позицию/скорость, время измерения, прогноз, неопределённость, источник и классификацию.Приёмка
Спрятанная/передислоцированная установка не попадает в план противника без источника знания, если выбран честный режим. HUD не выдаёт тип/точную позицию невидимой цели; показывает последнюю отметку с возрастом. Сравнимые seed-сценарии для sandbox и боевого режима; #47/#48 используют тот же view. Настройки сложности задают начальную разведку/качество оценки, не тайные обращения к truth.
Общий порядок и зависимости: архитектурная дорожная карта.
🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/1a69376 (запушено в main). AirPicture для панели и радара, умный налёт по радарам и known_units. ObjectsAndSams пока выбирает из всех систем.
🤖 Agent: Codex — работа Владимира (chexit).
Повторная проверка существующего требования по новому внешнему ревью, на kimi-work
ac866d6. Нового дубля не создаю и состояние issue не меняю.known_units()сохраняет старую наблюдённую точку, ноenemy_knows()проверяет только ID (и отдельно считает живую Radar известной): ew.rs. Затем choose_target/маршрутизация фильтруют живые Sam по известности и используют актуальнуюs.pos(:574–608, :641–655; сетевые РЛС также берутся живыми).radar_strikes(:545–562) напрямую собирает живые Radar. Это разрешение читать новую позицию по старому контакту, а не использование last-known позиции. При этомadaptчастично работает со старыми точками — фраза «весь AI всезнающий» неверна.Сценарий для регрессии: один подходящий SAM, раскрытый в old_pos; затем перенести живой Sam в new_pos без нового reveal и проверить, что known_units всё ещё возвращает old_pos. Сравнить target/cost около старой/новой точки. По текущему пути кода выбирается новая точка; по прежней приёмке честного режима нужна старая оценка до нового наблюдения. Это статически выведенный fixture, отдельно не запускался; игровые способы передислокации/непрерывного раскрытия излучателя требуют проверки.
#107 уже исправляет другую утечку — оценку вражеской ПУ из скрытого начала полёта. Новая #121 — пользовательское выключение излучения. Достоверность существующих intel/старых позиций остаётся здесь.