Морские действия и перевозка войск — v0.14.0
Продолжение пункта 5.1 плана. Подключены обычные корабли и сухопутные пассажиры; весь морской раздел пока не завершён. Правила и сохранения используют naval-transport-v1, собственная схема — 32. Оригинальные Windows SAV этой схемой не читаются.
Что работает
- Производство 47 обычных морских типов из 53 записей Atlants при выполнении общих требований цивилизации, технологии, ресурсов и прибрежного города. Наличие записи в каталоге не делает её доступной каждой цивилизации. Добавлена Верфь (BLDG 93), включая её условие морской модернизации.
- Движение по воде и заход в свой город-порт. Морская стоимость клетки, игнорирование стоимости отдельных типов и All Terrain As Roads читаются из профиля. Морские клетки не получают сухопутных дорожных бонусов.
- Загрузка собственного сухопутного юнита, вместимость, ограничения Only Foot и запрет вложенных транспортов. Посадка возможна в одном городе/клетке и с соседнего берега. Движение на водную клетку со своим подходящим транспортом также выполняет посадку.
- Пассажиры следуют за кораблём и сохраняются при экспорте/загрузке. Их нельзя независимо обнаружить в чужом стеке или использовать как защитников морского боя. Высадка требует допустимого берега и движения пассажира; атака занятого вражеского берега требует Amphibious.
- Корабль открывает окно «Транспорт» кнопкой или L: состав, занятые места, доступные пассажиры и клетки высадки. Это рабочий интерфейс первого среза, ещё не точная копия всех оригинальных морских приказов.
- Базовый морской бой, совместное перемещение груза, потеря пассажиров с кораблём. При захвате вражеского портового города сухопутной частью находящиеся там вражеские корабли уничтожаются вместе с грузом. Роспуск и банкротство не оставляют пассажиров с несуществующим родителем.
- Безопасность Sea/Ocean зависит от исходных флагов типа, технологий 0x2000/0x4000, безопасного моря от зданий и морской черты цивилизации. Проверка опасной стоянки использует сохраняемый PRNG; вероятность гибели 1/2, у морской цивилизации 1/4. Предпросмотр маршрута предупреждает об известных опасных остановках, не раскрывая неизвестные клетки. ИИ избегает известных опасных стоянок.
- Простой ИИ строит первые разведывательные суда, выбирает подходящий транспорт, перевозит поселенца на известный отдельный остров и основывает город общей командой. Он использует своё представление карты, а не скрытую географию.
В Atlants галера имеет признак Wheeled: запрет Ocean из таблицы местности продолжает действовать даже после безопасной океанской навигации. Транспорт имеет базовое движение 6 и All Terrain As Roads: при внутреннем коэффициенте дороги 2 это даёт 12 обычных морских клеток. Эти свойства нельзя заменять параметрами стандартного Conquests. Вместимость также читается из Atlants: галера 2, каравелла 3, галеон 4, транспорт 8.
Доказательства и пределы сверки
Отчёт исходного кода фиксирует SHA-256 предоставленного Civ3Conquests.exe, 13 проверенных последовательностей инструкций и все 53 исходные морские записи. Проверены условия транспорта, сохранение ссылки родителя, индексы Only Foot/Foot и ветви риска Sea/Ocean с масками технологий и морской чертой. Сопоставление адресов опирается на таблицу функций C3X и структуры Civ3Conquests; сами байты проверяются в предоставленном EXE скриптом scripts/analyze-naval.py и Python-тестом.
Это статическая проверка соответствующих инструкций, а не выполненная контрольная партия Windows. Не доказаны совпадение исходной случайной последовательности, точная фаза затопления, все условия посадки/пересадки и морские модификаторы боя. Наше затопление выполняется в конце собственного хода перед лечением.
Оригинальные ресурсы
Для поддерживаемых кораблей подключены исходные Default/Run/Attack/Death/Fortify через имеющиеся привязки INI и декодирование FLC. 215 морских записей анимаций; общие манифесты содержат 1 238 изображений/атласов и 814 WAV. Исходные кадры не перерисованы. Экспорт повторяется scripts/prepare-naval-media.py; общие палитры и восстановление национальных цветов сохраняются.
Браузерный отчёт проверяет действительную загрузку кадров галеры и отсутствие ошибок изображений. В контрольной партии после перезагрузки: около 3,25 МиБ кадров юнитов при лимите 64 МиБ и около 51,5 МиБ прочих изображений. Это учёт декодированных изображений нашего кеша; он не измеряет всю память браузера или GPU. Музыка и эффекты отдельно проверяются своими сценариями.
Посадка в порту · Город после высадки.
Проверки
17 тестов морского ядра входят в общий прогон 803 JavaScript-проверок в 65 отдельных модулях. Они проверяют домены и стоимость, вместимость и владельца, Foot, амфибийную атаку, сокрытие груза, уничтожение вместе с кораблём, воспроизводимое затопление, лечение, общую скорость, прибрежное производство и миграцию схемы 31 без изменения игровой истории.
Сценарий колонизации ИИ: подготовленная карта двух островов, выданные галера и дополнительный поселенец, открытые технологии и видимость. За 24 команды ИИ садится, пересекает воду, высаживается и основывает город; после каждой команды сохранение загружается с точным совпадением. Это контроль механики и связности ИИ, а не доказательство такой же стратегии со стандартного старта.
Настоящий браузер проверяет человеческую посадку двух частей, морской маршрут после перезагрузки, прибытие груза, высадку и основание заморского города. Отдельно проходит прежняя полная небольшая партия до победы с экспортом и продолжением. Итоги локального/публичного прогонов и байтовой сверки: отчёт выпуска.
Что осталось в 5.1
В v0.15.0 подключён активный обстрел. Остаются точные модификаторы и отступление, невидимость и скрытая национальность, специальный груз авианосцев/ракетных подлодок, армии, иностранные порты и исключения пресных вод. Морские торговые связи ещё не добавлены к дорожной ресурсной сети. Начальное размещение груза в редакторе и стратегические десанты/эскорты ИИ также не завершены. Оставшиеся шесть специальных типов не включены в обычное производство до реализации их поведения. Воздушные действия — следующий отдельный блок плана. Полная совместимость с оригиналом и весь MVP остаются в работе.