[enhancement] Единый типизированный каталог техники, вооружения и возможностей вместо разрозненных match/списков #91
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Архитектурный проход по
76f680eba64b64eb28435e71ce9f22a84b0e5da1.Основание
Один тип техники сейчас описывается в нескольких местах:
DroneKind/Specи missile spec вsim/mod.rs, SAM вunits.rs, ручные ITEMS/command dispatch вlib.rs, KINDS/пресеты вwave.rs, MODELS/ITEMS вtools/gen_models.py, звуки и README отдельно. Уже накоплены исключения по kind/family и множество полей общего Sam, не относящихся к РЛС/ТЗМ/прожектору.Это не утверждение, что enum или match плохи. Риск — добавили технику в один список и забыли доступность в другом; механика начинает определяться именем модели или конкретным kind вместо явного свойства.
Предложение
Приёмка
Добавление тестового типа требует одной записи каталога и собственных ресурсов, без правки независимых списков UI/commands/raid. Старые ID/сейвы мигрируют явно; значения баланса и поведение существующих типов не меняются попутно. Новые исходы сбитий, иконки и стартовые позиции используют каталог, а не новые специальные ветки по названию.
Общий порядок и зависимости: архитектурная дорожная карта.
🤖 Agent: Codex — работа Владимира (chexit).
Каталог: общий core catalog содержит устойчивые ID и availability aircraft/unit, ссылки на реальные typed specs без копирования баланса. Raid list, SamKind::ALL, выдача/claim inventory и item dispatch используют каталог; порядок старых save/scenario сохранён. Для координатного удара явно Unavailable с причиной, без выдуманных ground profiles.
CI/native проверки: уникальность ID/item, покрытие enum, сохранение raid order, модели, item JSON → model → PNG, muzzle и profile sanity. Core проверки не требуют assets/SDK. Полное объединение Python generator/weapon/sound registry и всех UI/command списков остаётся — это этап, не завершённый весь #91.
Issue оставлен открытым согласно просьбе автора.
🤖 Agent: Codex — работа Владимира (chexit).
Из дополнительного ревью полезно явно проверить согласованность «модификация × боеприпас × игровой запас × модель × механизм поражения» в продолжении каталога. Но есть две важные поправки к самому отчёту:
Вопрос8×9М338 у Tor-M2 из отчёта не опровергается наличием такого же сочетания в коде: именно оно там критикуется. Проверять конкретную модификацию и первоисточник до изменения баланса; не заводил дубль каталога и не менял названия/боезапас на основании одного вторичного списка. Визуальные заимствования профилей Бук/Тор остаются в художественном проходе #115; терминальная кинематика — новая #120.
Состояние issue не меняю.
🤖 Agent: Codex, при участии GPT-6.1 Terra и GPT-6 Luna. Продолжение в
kimi-work: код.Различён боезапас ПВО и игровой RM48U-профиль в каталоге/состоянии техники; монитор показывает ударный остаток отдельно, статус С-400 объясняет общие ячейки, склад показывает отдельные запасы. Подписи пушечного боезапаса исправлены на очереди:
GunSpec.shellзадаёт скорость снаряда, а не число выстрелов в очереди, поэтому умножать bursts на это поле неверно.Полное сведение всех чисел, звуков и Python-регистраций в один источник остаётся. В частности, текущие условные варианты техники не переименовываются автоматически по внешнему ревью. Issue не закрываю.
🤖 Agent: Codex, with GPT-6.1 Terra.
Published eea1b36/1553976/daa9ed7. catalog/content.json now supplies aircraft/unit identities and item/icon metadata to Rust and Python; catalog/sounds.json supplies sound IDs, attenuation distances and far variants to the synthesizer/resource registry and runtime. Generated Rust checked in CI. Historical raid/save ordering, all 35 sound events, shipped OGG files and synthesizer RNG order preserved. Existing gen_models --check and asset tests passed, sound registry/file and catalog checks passed; combined core/adapter suites passed. DroneSpec/SamSpec numeric profiles remain canonical typed Rust; a complete migration of all numbers is not claimed. Issue state unchanged.
🤖 Agent: Kimi Code, с участием DeepSeek.
В
kimi-workопубликованыead87343d,0937ac9e0,325119b72.catalog/specs.jsonтеперь единственный источник числовых DroneSpec/MissileSpec/SamSpec, общих mobility/flight/logistics констант и named parts;gen_catalog.pyгенерирует Rust для мода иairdef-core, CI проверяет freshness. Схема, звуки, ссылки, покрытие kinds и уникальность проверяются без отдельных списков имён.При ревью сохранён фактически игравший P1-SUN voice
(DRONE_LANCET, 0.8, 1.6); старая ветка 1.7 была недостижимой. Баланс, save keys, raid order и RNG не менялись.Проверки: core release 195 + 8 сценариев (7 ignored), adapter 66 + 1 boundary + 5 сценариев, 29 Python-тестов, generators fresh, WASM API30 — 27 шагов.
Остаются варианты комплексов и игровая приёмка. Issue открыт.