Обновлено:

На этой странице

Десант: нативная проверка цели

Уточнение этапа5.2, v0.23.1. Исходная поставка Atlants имеет отдельные проверки источника, целевого курсора, дальности и результата высадки. Их нельзя заменять одной проверкой «видимая суша».

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

ЦельПредпросмотр и командаВозможный результат
Видимая суша без чужих частейРазрешеныОтряд высаживается и расходует движение
Видимая суша со своими частямиРазрешеныМожно высадиться в свой стек
Видимая чужая часть, включая нейтральнуюПриказ запрещёнСостояние и PRNG не меняются
Видимая водаПриказ запрещёнСостояние и PRNG не меняются
Невидимая или неизвестная клеткаСлепая высадка с предупреждениемБезопасная суша допускает высадку; скрытая вода/чужая часть уничтожают десант
Пустой чужой городКурсор разрешён, предупреждение о потереДесант теряется без обычного боя и захвата города

Для невидимой клетки предпросмотр не читает реальную местность и скрытые части. Даже известная по памяти вода не делает её видимой: нативный курсор проверяет текущий бит видимости. Это особенность воспроизводимого EXE; модель не добавляет более строгого запрета по памяти. Реальный результат определяется после выполнения приказа.

Дальность берётся прямо из PRTO.operational_range. На родной геометрии расстояние равно половине суммы модулей разностей x/y после независимого замыкания; это совпадает с существующей stepDistance. Граница включительная. Ноль означает только исходную клетку, отрицательное значение — отсутствие ограничения в исходном курсоре. Запасной радиус500 других воздушных команд здесь не применяется. Редактор пока принимает неотрицательные значения operational_range.

Проверка источника и движение из v0.23.0 сохраняются: наземному отряду нужны аэропорт/аэродром и весь запас движения; вертолёту нужен груз. Исходная ветка при прерванном городским ПВО вылете списывает одно обычное очко движения. Повторного списания после возврата диспетчера нет. Поведение нашего движка уже соответствовало этой ветке и дополнительно проверено на частях с несколькими очками движения.

Доказательства и ограничения

Нативный отчёт содержит207 исполнений неизменённых инструкций поставленного EXE,10 диапазонов с байтами/SHA256:

ГруппаСлучаевЧто действительно исполняется
Цель64Полный Unit_check_airdrop_target0x5c30b0 и полный поиск видимых частей0x52c7b0/0x52c2f0; свойства клетки, отношения, итераторы и внешний ответ видимости контролируются
Курсор и дальность128Полный0x4dc360 с таблицей переходов и исходные Map_get_x_dist/Map_get_y_dist, замыкание обеих осей, включительная граница и нулевой радиус
Диспетчер действия4Полный0x5c1630: наземный десант, воздушный вылет, прерывание; результат ПВО и отрисовка контролируются
Привязка радиуса5Ограниченная ветка команды0x4dae8f…0x4daec6 и полный общий установщик курсора0x4d8750; исходный operational_range передаётся без замены нуля
Расход при прерывании6Ограниченная ветка0x5c668a…0x5c669a после обнаружения городским ПВО: добавление одного обычного кванта движения

Названия функций уточнены по закреплённым локальным материалам C3X (reference-original/upgrade-sources, commit117bb1699376754738f3ed5e04f4c27b42845919). Это помощь в навигации: заимствованные названия сами по себе не доказывают правило. Все выводы выше проверены на EXE пользователя. Исполняемый файл не менялся.

Полная внешняя реализация видимости/невидимости особых типов, все эффекты низкоуровневой высадки, полный верхний обработчик команды, последовательность Windows/анимаций и исходный PRNG не объявлены проверенными. Контролируемый ответ unitVisible=false в таблице относится к отфильтрованному входу проверки цели, а не к реализации полной невидимости в веб-движке.

Сохранения и проверки

Схема40 и air-v4 сохранены: поля состояния не менялись. В tests/fixtures/released-schema40-before-drop-targets.json находится партия, созданная именно опубликованным0.23.0, с грузом, парашютистом и отдельными видимой/скрытой целями. Импорт не меняет ни одного поля. Запрет видимой цели, слепая потеря, успешная высадка, PRNG и продолжение после сохранения проверяются целиком.

tests/airdrop-targets.test.mjs и tests/test_airdrop_target_evidence.py проверяют нативные случаи, отсутствие утечек скрытой информации, сырой радиус, сохранения и расход движения. Сценарий Chromium использует реальные кнопки/карту, предупреждение, успешную/неуспешную высадку, экспорт и перезагрузку. Итог выпуска.

Полный5.2 и весьMVP остаются в работе.