Обновлено:

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

Разработка, сборка и проверка совместимости

Зафиксированный стек

C7/C7.csproj использует Godot.NET.Sdk 4.4.1, net8.0 и ссылки на движок, импорт и конвертацию. C7Engine/C7Engine.csproj использует обычный .NET SDK, MoonSharp 2.0.0 и System.Text.Json 6.0.11 среди пакетов. Версии относятся к изученному коммиту, не являются рекомендацией обновлять наш проект.

doc/dev_environment.md описывает импорт C7/project.godot, редактор Godot с .NET, Rider либо VS Code. Для полного checkout нужны субмодули Assets и MarkdownLabel; их закреплённые ревизии указаны в метаданных среза.

Команды из документа для отдельной исследовательской копии:

dotnet build C7/C7.sln
dotnet test C7/C7.sln --logger "console;verbosity=detailed"

В этом исследовании команды не выполнялись: задача состояла в анализе и подготовке базы, а не установке desktop-игры на сервере.

Что есть в тестах

Механический подсчёт корпуса обнаружил 186 атрибутов Fact, Theory и SkippableFact в тестовых файлах. Это не число пройденных тестов: Theory может разворачиваться в несколько случаев, некоторые проверки пропускаются.

НаправлениеПримеры источников
МаршрутыAStarPathFindingTest, колёсные ограничения
ПоселениеЗаблокированная цель поселенца
Города и зданияCityTest, зависимости, чудеса, глобальные эффекты
СохраненияSaveTest, преобразование и сценарии
СделкиMultiTurnDealsTest
ТехнологииFreeTechTest
ПобедыCheckVictoryTest
ГенерацияMapGeneratorTest, поймы и карта высот

Полный реестр атрибутов: test-inventory.json.

Условия выполнения

Часть тестов требует локальную Civ3 и пропускается при её отсутствии. EngineTests/Utils/RemoteSaveLoader.cs скачивает примеры сохранений по сети. Успешный запуск без ресурсов может поэтому покрыть меньше сценариев, чем кажется.

Основной workflow сборки содержит запуск dotnet test для платформенных сборок и получение субмодулей. Файл с названием test-action — демонстрационный workflow, его нельзя ошибочно принять за всю CI-проверку.

План проверки для нас

При реализации выбранной механики взять небольшой независимый пример и ожидаемое правило, затем проверить полный путь «приказ → изменение состояния → подсказка → сохранение → загрузка». Для совместимости Atlants нужны собственные fixtures и отчёт по каждому неподдерживаемому свойству.

Особенно ценны проверки границ: последний житель, полный запас производства, нулевая наука, обрыв дороги, последняя сторона в игре и загрузка посреди хода. Сходство названий тестов двух проектов не заменяет проверку нашей реализации.