[enhancement] Реальные стартовые позиции налёта: сектора, пусковые площадки, очередь и ограниченное число баз #100

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

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

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

Концепция пользователя

Налёт должен происходить из существующих в игровом мире стартовых позиций, а не из случайных точек в воздухе. Один сектор — площадка/группа в одной случайной стороне, два сектора — две стороны. «Со всех сторон» — конечные 4–5 позиций, а не неограниченный круг источников.

Текущее устройство

sim/raid.rs::order_raid выбирает bearing отдельно для каждой цели, Approach::AllSides даёт случайный угол по всей окружности. make_drone заранее создаёт объект в расчётном from; затем очередь (tick, Drone) выпускает его в воздух. Собственной сущности launch site, запаса/установки/стартового состояния нет. Для баллистики дальность/высота старта ещё отличаются от обычных дронов — простая перестановка одной модели проблему не решит.

MVP

  1. RaidPlan → LaunchSite/LaunchGroup → LaunchJob. Стабильные site ID, сектор, подтверждённая позиция/footprint, типы поддерживаемых средств, оставшийся запас и очередь. Seed определяет 1/2/4–5 стороны с минимальным угловым разделением.
  2. Размещать только на пригодной местности; учитывать chunk availability и player/world bounds. Ограниченные попытки поиска и понятное ожидание/отказ. Не спавнить базы внутри горы и не force-load весь мир ради красивой базы.
  3. Видимые комплекты старта по классу: дроновая рампа/катапульта, ракетная ПУ; «аэродром» — отдельный более поздний набор, а не обязательный гигантский генератор построек.
  4. Реальные события подготовки/пуска/зажигания и выход из площадки в маршрут с непрерывной коллизией. Планировщик согласует дальность, разгон и расписание общего подхода с фактическим стартом. Сохраняются нынешние настройки состава/синхронного налёта.

Приёмка

У каждого противника есть source site, не более пяти активных позиций выбранного налёта/сценария по явно заданному правилу. Для двух секторов нет скрытой третьей точки запуска. Площадки видны при посещении, но не обязаны мгновенно раскрывать себя на карте. Clear/restart/world unload очищает jobs и модели; многократные налёты не копят старые базы. Recorded launches дают кинорежиссёру правдивое начало атаки. Возможность уничтожения с отменой будущих jobs — следующий этап, учитывается в модели сразу.

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

🤖 Filed by Codex, AI-агент Владимира (chexit). Архитектурный проход по `76f680eba64b64eb28435e71ce9f22a84b0e5da1`. ### Концепция пользователя Налёт должен происходить из существующих в игровом мире стартовых позиций, а не из случайных точек в воздухе. Один сектор — площадка/группа в одной случайной стороне, два сектора — две стороны. «Со всех сторон» — конечные **4–5 позиций**, а не неограниченный круг источников. ### Текущее устройство `sim/raid.rs::order_raid` выбирает bearing отдельно для каждой цели, `Approach::AllSides` даёт случайный угол по всей окружности. `make_drone` заранее создаёт объект в расчётном `from`; затем очередь `(tick, Drone)` выпускает его в воздух. Собственной сущности launch site, запаса/установки/стартового состояния нет. Для баллистики дальность/высота старта ещё отличаются от обычных дронов — простая перестановка одной модели проблему не решит. ### MVP 1. `RaidPlan → LaunchSite/LaunchGroup → LaunchJob`. Стабильные site ID, сектор, подтверждённая позиция/footprint, типы поддерживаемых средств, оставшийся запас и очередь. Seed определяет 1/2/4–5 стороны с минимальным угловым разделением. 2. Размещать только на пригодной местности; учитывать chunk availability и player/world bounds. Ограниченные попытки поиска и понятное ожидание/отказ. Не спавнить базы внутри горы и не force-load весь мир ради красивой базы. 3. Видимые комплекты старта по классу: дроновая рампа/катапульта, ракетная ПУ; «аэродром» — отдельный более поздний набор, а не обязательный гигантский генератор построек. 4. Реальные события подготовки/пуска/зажигания и выход из площадки в маршрут с непрерывной коллизией. Планировщик согласует дальность, разгон и расписание общего подхода с фактическим стартом. Сохраняются нынешние настройки состава/синхронного налёта. ### Приёмка У каждого противника есть source site, не более пяти активных позиций выбранного налёта/сценария по явно заданному правилу. Для двух секторов нет скрытой третьей точки запуска. Площадки видны при посещении, но не обязаны мгновенно раскрывать себя на карте. Clear/restart/world unload очищает jobs и модели; многократные налёты не копят старые базы. Recorded launches дают кинорежиссёру правдивое начало атаки. Возможность уничтожения с отменой будущих jobs — следующий этап, учитывается в модели сразу. Общий порядок и зависимости: [архитектурная дорожная карта](https://gitea.maoniao.team/chexit/airdef/issues/103).
Author
Owner

🤖 Agent: Сделано в 9bc94fa8aa (запушено в main). MVP: площадки со стороной, запасом и очередью, суша, потом суша ближе, потом баржи. В игре видны баржи с комплектами на Полигоне. Не видели сам момент схода дрона с рампы и рампы на суше. Площадки не попадают в запись реплея; /airdef wave <тип> N идёт по старому пути.

🤖 Agent: Сделано в https://gitea.maoniao.team/chexit/airdef/commit/9bc94fa8aa8c9b0ab480f586816b9fa99a58eeef (запушено в main). MVP: площадки со стороной, запасом и очередью, суша, потом суша ближе, потом баржи. В игре видны баржи с комплектами на Полигоне. Не видели сам момент схода дрона с рампы и рампы на суше. Площадки не попадают в запись реплея; /airdef wave <тип> N идёт по старому пути.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#100