[enhancement] Разные исходы поражения воздушной цели: падающий остов, разрушение и детонация в воздухе #97

Closed
opened 2026-10-30 10:30:50 +00:00 by chexit · 1 comment
Owner

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

Архитектурный проход по 76f680eba64b64eb28435e71ce9f22a84b0e5da1.

Подтверждение запроса кодом

sim/mod.rs::shoot_down(idx, by, missile, out) используется и для пушек, и для перехватчиков. Сейчас любой живой дрон переводится в Flight::Falling, скорость умножается на 0.6, создаётся одинаковая схема обломков. Вспышка выбирается по БЧ цели через kill_look, профиль поражающего средства не определяет исход. При последующем падении есть отдельный бросок детонации. Поэтому мощный перехватчик и пушечная очередь принципиально дают один жизненный цикл.

Нужное поведение

KillCause/Impact должен содержать оружие/способ поражения, энергию/игровой профиль, точку/относительную скорость; DestructionOutcome выбирается с учётом размера/прочности цели, БЧ и характера попадания:

  • DisabledFalling: потеря управления, горящий повреждённый корпус с остаточным импульсом; типичный, но не гарантированный исход пушечного обстрела.
  • Breakup: разрушение на несколько крупных/мелких фрагментов, у каждого инерция/drag и понятный срок жизни.
  • AirDetonation: детонация/разрушение основной массы в воздухе, яркая вспышка, ударный звук, дождь обломков; для сильного перехватчика против небольшой цели вероятность выше.

Не задавать закон «С-500 всегда детонирует всё» или «пушка никогда не вызывает взрыв»: это настраиваемые игровые профили, не реальные статистические характеристики вооружения.

Важные правила

Одноразовый расход БЧ: после air detonation на земле не взрывается ещё один целый заряженный дрон. Если БЧ пережила повреждение, это явное состояние и отдельный шанс cook-off/ground detonation. Счёт сбитий/урона не дублируется. Обломки соблюдают коллизии/лимиты; остаточный импульс сохраняется, нет обязательного отвесного падения. Детонация/пожар используют действующие правила world damage и friendly damage.

Приёмка

Seed-тесты каждого исхода, массовый бой с ограничением debris, отсутствие double detonation, запись outcome для одинакового live/replay/MP4. Разные звук/свет/камера усиливают чувство достижения: крупный перехват — событие, очередь по маленькому дрону — сдержаннее. Баланс вероятности самого попадания отдельно от выбора исхода после успешного поражения.

Общий порядок и зависимости: архитектурная дорожная карта.

🤖 Filed by Codex, AI-агент Владимира (chexit). Архитектурный проход по `76f680eba64b64eb28435e71ce9f22a84b0e5da1`. ### Подтверждение запроса кодом `sim/mod.rs::shoot_down(idx, by, missile, out)` используется и для пушек, и для перехватчиков. Сейчас любой живой дрон переводится в `Flight::Falling`, скорость умножается на 0.6, создаётся одинаковая схема обломков. Вспышка выбирается по БЧ **цели** через `kill_look`, профиль поражающего средства не определяет исход. При последующем падении есть отдельный бросок детонации. Поэтому мощный перехватчик и пушечная очередь принципиально дают один жизненный цикл. ### Нужное поведение `KillCause/Impact` должен содержать оружие/способ поражения, энергию/игровой профиль, точку/относительную скорость; `DestructionOutcome` выбирается с учётом размера/прочности цели, БЧ и характера попадания: - **DisabledFalling:** потеря управления, горящий повреждённый корпус с остаточным импульсом; типичный, но не гарантированный исход пушечного обстрела. - **Breakup:** разрушение на несколько крупных/мелких фрагментов, у каждого инерция/drag и понятный срок жизни. - **AirDetonation:** детонация/разрушение основной массы в воздухе, яркая вспышка, ударный звук, дождь обломков; для сильного перехватчика против небольшой цели вероятность выше. Не задавать закон «С-500 всегда детонирует всё» или «пушка никогда не вызывает взрыв»: это настраиваемые игровые профили, не реальные статистические характеристики вооружения. ### Важные правила Одноразовый расход БЧ: после air detonation на земле не взрывается ещё один целый заряженный дрон. Если БЧ пережила повреждение, это явное состояние и отдельный шанс cook-off/ground detonation. Счёт сбитий/урона не дублируется. Обломки соблюдают коллизии/лимиты; остаточный импульс сохраняется, нет обязательного отвесного падения. Детонация/пожар используют действующие правила world damage и friendly damage. ### Приёмка Seed-тесты каждого исхода, массовый бой с ограничением debris, отсутствие double detonation, запись outcome для одинакового live/replay/MP4. Разные звук/свет/камера усиливают чувство достижения: крупный перехват — событие, очередь по маленькому дрону — сдержаннее. Баланс вероятности самого попадания отдельно от выбора исхода после успешного поражения. Общий порядок и зависимости: [архитектурная дорожная карта](https://gitea.maoniao.team/chexit/airdef/issues/103).
Author
Owner

🤖 Agent: сделано в 545d4777e8 (запушено в main). MVP: падающий остов, разрушение, детонация в воздухе; исход записывается для реплеев. В фильме видны крупные вспышки и падающий дымящий остов, но какой кадр какому исходу соответствует, не определяли; дождь обломков покрыт только тестами. Обломки не поджигают мир, в реплее они не останавливаются о землю.

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/545d4777e80ceb204173eb726af05995079e8a1b (запушено в main). MVP: падающий остов, разрушение, детонация в воздухе; исход записывается для реплеев. В фильме видны крупные вспышки и падающий дымящий остов, но какой кадр какому исходу соответствует, не определяли; дождь обломков покрыт только тестами. Обломки не поджигают мир, в реплее они не останавливаются о землю.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#97