diff --git a/airdef-mod/src/monitor.rs b/airdef-mod/src/monitor.rs index 0642000..74553e5 100644 --- a/airdef-mod/src/monitor.rs +++ b/airdef-mod/src/monitor.rs @@ -256,8 +256,8 @@ fn cell(sim: &Sim, index: usize, x: f32, y: f32, w: f32, h: f32, s: &mut Vec 0 || spec.key == "gepard" { - line += &format!("С{} ", sam.bursts); + if crate::sim::catalog::unit(sam.kind).has_gun() { + line += &format!("Оч{} ", sam.bursts); } line += &format!("сб.{} [{}]", sam.kills, roles_text(sam.roles)); s.push(text(fit(line, cw), cx, y + h - 10.0, 0xFF9FE0FF)); diff --git a/airdef-mod/src/sim/catalog.rs b/airdef-mod/src/sim/catalog.rs index 693088a..bbab593 100644 --- a/airdef-mod/src/sim/catalog.rs +++ b/airdef-mod/src/sim/catalog.rs @@ -34,6 +34,8 @@ pub struct Unit { impl Unit { pub fn id(self) -> &'static str { self.kind.spec().key } + /// Whether the unit has a gun; callers need no access to the private weapon profile. + pub fn has_gun(self) -> bool { self.kind.spec().gun.is_some() } pub fn ground_strike(self) -> GroundStrike { GroundStrike::Unavailable { reason: "Для этой техники не задан подтверждённый профиль удара по координатам" } } diff --git a/docs/REVIEW-FOLLOWUP-2026-11-02.md b/docs/REVIEW-FOLLOWUP-2026-11-02.md new file mode 100644 index 0000000..279a714 --- /dev/null +++ b/docs/REVIEW-FOLLOWUP-2026-11-02.md @@ -0,0 +1,47 @@ +# Сверка дополнительного ревью реалистичности + +Полученное автором внешнее ревью проверено по `kimi-work` на `ac866d6`, а не принято как готовая +спецификация. Просмотрены текущие исходники и все 118 прежних issues. Проверку независимо помогли +провести GPT-6.1 Terra и GPT-6 Luna. Ниже — результат статического анализа, не новый балансировочный полигон. + +## Новые самостоятельные задачи + +- [#119 — укрытие от непрямого взрыва](https://gitea.maoniao.team/chexit/airdef/issues/119). + sim/damage.rs::blast_damage уменьшает здоровье корпуса, узлов и объектов по расстоянию, + не получает геометрию. Ограниченная оценка защищённости лучами даст полезное взаимодействие с постройками. +- [#120 — энергия и геометрия перехвата](https://gitea.maoniao.team/chexit/airdef/issues/120). + Ускорение и swept closest approach уже есть, поэтому утверждение «геометрии нет» неверно. + Самостоятельный этап — конечная работа двигателя, coast и зависимость от фактического состояния ракеты. +- [#121 — радиомолчание](https://gitea.maoniao.team/chexit/airdef/issues/121). + Off/On собственного поиска с отдельной работой сетевого канала и осмысленным раскрытием позиции. + Это новый игровой выбор, а не требование воспроизводить реальные радиотехнические процедуры. + +## Дополнения к существующим задачам + +- В [#93](https://gitea.maoniao.team/chexit/airdef/issues/93) добавлен комментарий: last-known точка + есть, но часть планировщика после фильтра по известному ID читает live Sam.pos. Это пробел прежней + приёмки, а не новый дубль. Некоторые пути adapt уже используют старые точки. +- В [#46](https://gitea.maoniao.team/chexit/airdef/issues/46) добавлен комментарий: первое радарное + измерение копирует точные kind/vel, хотя ident ещё Unknown. NEAR<=24 намеренно описан как исключение + видимости — его стоит рассматривать как выбор политики честного режима, не выдавать за случайный баг. +- Ответные удары и боекомплект уже охвачены #118; наблюдаемая разведка ПУ — #107; каталог/варианты + вооружения — #91; художественные модели — #115; диагностика — #18. + +## Что в отчёте не подтвердилось или требует оговорок + +- «Обратная дальность» в шуме: сейчас sigma = 0.8 + dist * 0.004 (или 0.3 при lock), она растёт с дальностью. +- «160 очередей ×10 снарядов =1600 у Гепарда»: GunSpec.shell=10 — **скорость снаряда в блоках за тик**, + не число снарядов в очереди. Это прямо определено в units.rs и используется в упреждении/скорости трассера. + Число физических выстрелов на условную очередь пока не задаётся этим полем; пересчёт запаса до 68 + по такому умножению был бы необоснованным изменением баланса. +- Разгон перехватчика, относительное движение в наведении и проверка сближения за тик уже реализованы. + Новый #120 уточняет остаток и запрещает добавлять второй независимый бросок pk. +- Наземные способности комплексов нельзя свести к «все могут» или именной blacklist. #118 уже различает + пушечный наземный огонь, ракетный огонь по наблюдаемой цели и удар по удалённым координатам. +- Название PAC-3 само по себе не задаёт один магазин: производитель двигателей + [L3Harris различает 16 PAC-3 и 12 PAC-3 MSE на M903](https://www.l3harris.com/en-gb/all-capabilities/pac-3-mse). + Поэтому ни автоматическое «PAC-3 всегда 16», ни переименование текущей игровой модели в PAC-2 + без выбора полного согласованного профиля не выполняется. Tor/9М338 и другие варианты также требуют + проверки конкретной модификации; уменьшенный игровой запас может быть явной условностью. + +Состояния прежних issues не менялись. Добавлены только три самостоятельных enhancement и комментарии.