[enhancement] Показывать причину отсутствия огня и причины неудачных перехватов #18

Closed
opened 2026-10-29 11:59:55 +00:00 by chexit · 1 comment
Owner

Проверка исходников на 90379f6. Полный Horizon/GPU на Mac не запускался; оценки сложности и ресурсов ниже не являются замерами FPS.

Сводка и SamState уже показывают общие состояния, но при сложном налёте трудно отличить корректное ограничение от бага логики: цель видна сети, а установка не стреляет — почему?

Предложение: по выбранной цели/комплексу показывать диагностический список условий: собственное/внешнее обнаружение, назначенные роли, min/max дальность, движение/развёртывание, боезапас/перезарядка/ТЗМ, занятость цели другим перехватчиком, доворот. Данные брать из тех же predicates, что управляют реальным решением о пуске; не рассчитывать отдельную приблизительную «правду» для UI.

Для after-action/replay добавить отдельные события/счётчики: потеря трека, отказ/промах fuse/PK, истечение жизни перехватчика, ожидание БК, поражение объекта. Не объявлять причину «не сбили» постфактум, если нужные события не были записаны.

Польза: понятнее строить игровую оборону и намного проще воспроизводить баги координации/логистики/маршрутов. Диагностику по всем целям не собирать тяжёлым полным сканированием на каждом кадре — on-demand для выбранного объекта, подробный trace как опция.

Код:

,
Kill { drone: u32, kind: DroneKind, sam: u32, sam_kind: SamKind, sam_index: usize, missile: Option<u32> },
.

Проверка исходников на `90379f6`. Полный Horizon/GPU на Mac не запускался; оценки сложности и ресурсов ниже не являются замерами FPS. Сводка и SamState уже показывают общие состояния, но при сложном налёте трудно отличить корректное ограничение от бага логики: цель видна сети, а установка не стреляет — почему? Предложение: по выбранной цели/комплексу показывать диагностический список условий: собственное/внешнее обнаружение, назначенные роли, min/max дальность, движение/развёртывание, боезапас/перезарядка/ТЗМ, занятость цели другим перехватчиком, доворот. Данные брать из тех же predicates, что управляют реальным решением о пуске; не рассчитывать отдельную приблизительную «правду» для UI. Для after-action/replay добавить отдельные события/счётчики: потеря трека, отказ/промах fuse/PK, истечение жизни перехватчика, ожидание БК, поражение объекта. Не объявлять причину «не сбили» постфактум, если нужные события не были записаны. Польза: понятнее строить игровую оборону и намного проще воспроизводить баги координации/логистики/маршрутов. Диагностику по всем целям не собирать тяжёлым полным сканированием на каждом кадре — on-demand для выбранного объекта, подробный trace как опция. Код: https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/airdef-mod/src/sim/mod.rs#L1729, https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/airdef-mod/src/sim/record.rs#L35.
chexit added the area:simulationarea:uipriority:P3type:enhancement labels 2026-10-29 13:10:17 +00:00
Author
Owner

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/ed2db85 (запушено в main, CI зелёный).

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/ed2db85 (запушено в main, CI зелёный).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#18