[enhancement] Учитывать укрытия от непрямого взрывного урона для техники и объектов #119

Open
opened 2026-11-02 18:40:13 +00:00 by chexit · 1 comment
Owner

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

Идея из дополнительного ревью автора проверена по текущему kimi-work (ac866d6). Это статическая проверка кода, не результат игрового полигона.

Проверенное поведение

sim/damage.rs::blast_damage уменьшает здоровье корпуса, узлов и защищаемых объектов по расстоянию до эпицентра. В функцию не передаётся Ground/снимок геометрии, проверки стены или рельефа здесь нет. Визуальный/ванильный взрыв в мире не заменяет отдельный расчёт здоровья объектов симуляции.

Из этого следует: одинаковый непрямой взрыв в открытом пространстве и за известной сплошной стеной может наносить одинаковый симуляционный урон. Прямое попадание #49 и разрушение фактической точки контакта #42/#74 — другие пути, их не ослаблять этой задачей.

Предлагаемый игровой объём

  • Для корпуса/объекта оценивать защищённость одним или небольшим фиксированным числом лучей от эпицентра к репрезентативным точкам. Для важных узлов допустима общая/ограниченная оценка, без трассировки каждого осколка.
  • Известное сплошное укрытие ослабляет непрямой blast. Проём/край укрытия оставляют частичное поражение. Не требовать симуляции реального ударного фронта, материалов брони или разрушения отдельных осколков.
  • Выбрать явную политику Unknown и ограниченного ожидания ответа; не считать Unknown доказанным укрытием/проёмом. Не загружать мир без ограничений и не менять исход по времени GPU или порядка ответов.
  • При разрушении стены определить, какой снимок геометрии относится к этому же взрыву: до разрушения или после, без случайной смены порядка. Фактический прямой вооружённый контакт остаётся отдельным результатом.
  • Тот же расчёт — для корпуса, узлов и здоровья отмеченных объектов; исключить двойной расход/урон при повторном world reply.

Приёмка

Фиксированные seed и расположение: открыто / цельная стена / проём / край стены / Unknown→ответ. За известной стеной непрямой урон ниже, в открытом пространстве прежний баланс сохраняется. Direct hit остаётся рабочим. Повторный запуск и разная задержка ответов дают согласованный исход, pending queries ограничены; replay показывает уже произошедший урон и не наносит его повторно.

Не найден отдельный существующий issue на occlusion именно симуляционного blast; связано с #42, #49, #74 и #88.

🤖 Filed by Codex, AI-агент Владимира (chexit). Идея из дополнительного ревью автора проверена по текущему `kimi-work` (`ac866d6`). Это статическая проверка кода, не результат игрового полигона. ### Проверенное поведение [sim/damage.rs::blast_damage](https://gitea.maoniao.team/chexit/airdef/src/commit/ac866d64a092be1c4716ba9f50eab1d4fe1531f2/airdef-mod/src/sim/damage.rs#L243) уменьшает здоровье корпуса, узлов и защищаемых объектов по расстоянию до эпицентра. В функцию не передаётся `Ground`/снимок геометрии, проверки стены или рельефа здесь нет. Визуальный/ванильный взрыв в мире не заменяет отдельный расчёт здоровья объектов симуляции. Из этого следует: одинаковый непрямой взрыв в открытом пространстве и за известной сплошной стеной может наносить одинаковый симуляционный урон. Прямое попадание #49 и разрушение фактической точки контакта #42/#74 — другие пути, их не ослаблять этой задачей. ### Предлагаемый игровой объём - Для корпуса/объекта оценивать защищённость одним или небольшим фиксированным числом лучей от эпицентра к репрезентативным точкам. Для важных узлов допустима общая/ограниченная оценка, без трассировки каждого осколка. - Известное сплошное укрытие ослабляет **непрямой** blast. Проём/край укрытия оставляют частичное поражение. Не требовать симуляции реального ударного фронта, материалов брони или разрушения отдельных осколков. - Выбрать явную политику Unknown и ограниченного ожидания ответа; не считать Unknown доказанным укрытием/проёмом. Не загружать мир без ограничений и не менять исход по времени GPU или порядка ответов. - При разрушении стены определить, какой снимок геометрии относится к этому же взрыву: до разрушения или после, без случайной смены порядка. Фактический прямой вооружённый контакт остаётся отдельным результатом. - Тот же расчёт — для корпуса, узлов и здоровья отмеченных объектов; исключить двойной расход/урон при повторном world reply. ### Приёмка Фиксированные seed и расположение: открыто / цельная стена / проём / край стены / Unknown→ответ. За известной стеной непрямой урон ниже, в открытом пространстве прежний баланс сохраняется. Direct hit остаётся рабочим. Повторный запуск и разная задержка ответов дают согласованный исход, pending queries ограничены; replay показывает уже произошедший урон и не наносит его повторно. Не найден отдельный существующий issue на occlusion именно симуляционного blast; связано с #42, #49, #74 и #88.
Author
Owner

🤖 Agent: Codex, with three GPT-6.1 Terra agents.

Добавлено ослабление непрямого blast по известной occupancy: три луча к корпусу/объекту; перекрытый луч оставляет 15% воздействия, проём даёт частичную экспозицию. Один ограниченный коэффициент корпуса применяется также к его узлам. Прямой вооружённый контакт сохранён.

Явная политика Unknown/stale: нулевое ожидание, прежний урон без защиты как консервативное решение, а не доказательство воздуха. Чтение read-only из геометрии перед отправкой разрушения, без новых запросов/загрузки чанков и отложенного повторного урона. Partial blocks пока считаются занятыми кубами. Четыре seeded проверки покрывают стену/проём, корпус/узлы/объект, Unknown и поздний ответ, прямой контакт, stale и исходный воксель. GUI-проверка разрушения стены ещё нужна.

Published on kimi-work through 6e2d661; current docs/handoff: e70d7a6. Combined checks: core release 187 passed + 4 scenarios (7 ignored); adapter 56 + 1 boundary + 4 scenarios; actual WASM 24 steps. Technical handoff, limits and reproduction. Issue state intentionally unchanged.

🤖 Agent: Codex, with three GPT-6.1 Terra agents. Добавлено ослабление непрямого blast по известной occupancy: три луча к корпусу/объекту; перекрытый луч оставляет 15% воздействия, проём даёт частичную экспозицию. Один ограниченный коэффициент корпуса применяется также к его узлам. Прямой вооружённый контакт сохранён. Явная политика Unknown/stale: нулевое ожидание, прежний урон без защиты как консервативное решение, а не доказательство воздуха. Чтение read-only из геометрии перед отправкой разрушения, без новых запросов/загрузки чанков и отложенного повторного урона. Partial blocks пока считаются занятыми кубами. Четыре seeded проверки покрывают стену/проём, корпус/узлы/объект, Unknown и поздний ответ, прямой контакт, stale и исходный воксель. GUI-проверка разрушения стены ещё нужна. Published on kimi-work through 6e2d661; current docs/handoff: e70d7a6. Combined checks: core release 187 passed + 4 scenarios (7 ignored); adapter 56 + 1 boundary + 4 scenarios; actual WASM 24 steps. [Technical handoff, limits and reproduction](https://gitea.maoniao.team/chexit/airdef/src/branch/kimi-work/docs/CODEX-HANDOFF.md). Issue state intentionally unchanged.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#119