[bug] Прямое попадание вооружённого дрона должно сразу уничтожать комплекс ПВО #49

Closed
opened 2026-10-29 17:51:33 +00:00 by chexit · 1 comment
Owner

🤖 Filed by Codex, AI-агент Владимира (chexit).

Сформировано по прямому запросу автора проекта; текущий код просмотрен на f443f0a. Приоритетная правка баланса по прямому запросу автора. Сейчас даже попадание ровно в комплекс может оставить его работоспособным с частичным повреждением.

Код: sim/damage.rs::blast_damage считает только радиальный урон; отдельной семантики direct hit нет. По текущей таблице Geran3 (warhead=2) и Lancet (warhead=1) дают power=1: в самом центре HIT[1] × 1.5 = 0.45 × 1.5 = 0.675, то есть полностью здоровый комплекс остаётся с 0.325 здоровья. Это расчёт по исходной формуле, не GPU-тест. Shahed (warhead=3) в идеальном центре способен уничтожить комплекс; проблема не одинакова для всех типов и мест подрыва.

Требуемое поведение

  • Подтверждённый прямой удар вооружённого ударного дрона/ракеты в корпус комплекса — немедленная утрата боеспособности/уничтожение, без продолжения огня «с небольшим дебаффом».
  • Прямой контакт определять по swept hit реального/proxy объёма техники, включая верх корпуса, с явным unit ID; не по случайному ближайшему комплексу и не просто по большому радиусу взрыва.
  • Это дополнение к #42: модели ПВО также требуют корректного hit proxy. Удар в землю рядом остаётся splash damage, который может повреждать отдельные узлы #50.
  • Использовать единый destroy-путь: прекратить пуски/сопровождение/движение, освободить назначения, создать остов, пожар и cook-off один раз, корректно сохранить/записать событие.
  • Пустая ложная цель без БЧ и горящий обломок — отдельные явно заданные игровые случаи; не превращать любой декоративный фрагмент в гарантированное уничтожение.
  • Большая вспышка из #51 не должна сама менять радиус/урон; источник летальности — подтверждённое попадание.

Приёмка

Тест для Lancet, Geran3, Shahed и ракеты: попадание в разные точки корпуса уничтожает полностью здоровый комплекс ровно один раз. Близкий промах не становится direct hit. Проверить движущуюся технику, склад/ТЗМ, посторонний комплекс рядом, статистику, сохранение и повтор. P1-фикс не должен ждать полной системы узлов.

🤖 Filed by Codex, AI-агент Владимира (chexit). Сформировано по прямому запросу автора проекта; текущий код просмотрен на `f443f0a`. **Приоритетная правка баланса по прямому запросу автора.** Сейчас даже попадание ровно в комплекс может оставить его работоспособным с частичным повреждением. Код: [`sim/damage.rs::blast_damage`](https://gitea.maoniao.team/chexit/airdef/src/commit/f443f0a94a71eb2d446792f1829146f9563aaf5d/airdef-mod/src/sim/damage.rs) считает только радиальный урон; отдельной семантики direct hit нет. По текущей таблице Geran3 (warhead=2) и Lancet (warhead=1) дают power=1: в самом центре HIT[1] × 1.5 = 0.45 × 1.5 = **0.675**, то есть полностью здоровый комплекс остаётся с **0.325 здоровья**. Это расчёт по исходной формуле, не GPU-тест. Shahed (warhead=3) в идеальном центре способен уничтожить комплекс; проблема не одинакова для всех типов и мест подрыва. ### Требуемое поведение - Подтверждённый прямой удар вооружённого ударного дрона/ракеты в корпус комплекса — немедленная утрата боеспособности/уничтожение, без продолжения огня «с небольшим дебаффом». - Прямой контакт определять по swept hit реального/proxy объёма техники, включая верх корпуса, с явным unit ID; не по случайному ближайшему комплексу и не просто по большому радиусу взрыва. - Это дополнение к #42: модели ПВО также требуют корректного hit proxy. Удар в землю рядом остаётся splash damage, который может повреждать отдельные узлы [#50](https://gitea.maoniao.team/chexit/airdef/issues/50). - Использовать единый destroy-путь: прекратить пуски/сопровождение/движение, освободить назначения, создать остов, пожар и cook-off один раз, корректно сохранить/записать событие. - Пустая ложная цель без БЧ и горящий обломок — отдельные явно заданные игровые случаи; не превращать любой декоративный фрагмент в гарантированное уничтожение. - Большая вспышка из [#51](https://gitea.maoniao.team/chexit/airdef/issues/51) не должна сама менять радиус/урон; источник летальности — подтверждённое попадание. ### Приёмка Тест для Lancet, Geran3, Shahed и ракеты: попадание в разные точки корпуса уничтожает полностью здоровый комплекс ровно один раз. Близкий промах не становится direct hit. Проверить движущуюся технику, склад/ТЗМ, посторонний комплекс рядом, статистику, сохранение и повтор. P1-фикс не должен ждать полной системы узлов.
chexit added the priority:P1type:bugarea:simulation labels 2026-10-29 17:51:33 +00:00
Author
Owner

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/8065f22 (запушено в main).

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

No dependencies set.

Reference: chexit/airdef#49