[bug] Пушки Панциря не пополняются, пока остаются неиспользованные ракеты #20

Closed
opened 2026-10-29 12:23:36 +00:00 by chexit · 1 comment
Owner

Проверено на опубликованном 90379f6 при проверке дополнительного ревью. Незакоммиченные изменения из чужой рабочей копии недоступны.

Начало перезарядки комбинированной установки привязано к одновременному исчерпанию обоих боезапасов. При bursts=0 и missiles>0 пушки не перезаряжаются, даже когда бой закончился. Особенно заметно против целей внутри min missile range: снаряды закончились, ракеты расходовать невозможно.

Native test на исходном Sim: создать Pantsir, установить bursts=0, сохранить начальные 12 ракет, выполнить 2000 вызовов step_sams (100 игровых секунд) без врагов и без склада. Ракеты остаются 12, bursts остаётся 0, перезарядки нет.

Это условная потеря пушек до расхода ракет/ручного ремонта, а не неизбежное «навсегда после 14 секунд любого боя». Выбрать явную политику: раздельная перезарядка оружейных каналов или допустимая общая перезарядка при исчерпании одного. Согласовать с логистикой и её расходом, не требовать бессмысленно выпустить все ракеты ради снарядов.

Код:

if logistics { sam.empty = true } else { sam.reloading = spec.reload }
и ветка aim=None.

Проверено на опубликованном `90379f6` при проверке дополнительного ревью. Незакоммиченные изменения из чужой рабочей копии недоступны. Начало перезарядки комбинированной установки привязано к одновременному исчерпанию обоих боезапасов. При bursts=0 и missiles>0 пушки не перезаряжаются, даже когда бой закончился. Особенно заметно против целей внутри min missile range: снаряды закончились, ракеты расходовать невозможно. Native test на исходном Sim: создать Pantsir, установить bursts=0, сохранить начальные 12 ракет, выполнить 2000 вызовов step_sams (100 игровых секунд) без врагов и без склада. Ракеты остаются 12, bursts остаётся 0, перезарядки нет. Это условная потеря пушек до расхода ракет/ручного ремонта, а не неизбежное «навсегда после 14 секунд любого боя». Выбрать явную политику: раздельная перезарядка оружейных каналов или допустимая общая перезарядка при исчерпании одного. Согласовать с логистикой и её расходом, не требовать бессмысленно выпустить все ракеты ради снарядов. Код: https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/airdef-mod/src/sim/mod.rs#L1842 и ветка aim=None.
chexit added the area:logisticsarea:simulationpriority:P1type:bug labels 2026-10-29 13:10:24 +00:00
Author
Owner

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

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

No dependencies set.

Reference: chexit/airdef#20