Обновлено:

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

Правила OpenCiv3: сущности и состав данных

Что измерено

Автоматический разбор базового ruleset дал:

ТаблицаЗаписей
Типы местности14
Улучшения местности9
Ресурсы26
Прототипы юнитов124
Здания и чудеса82
Технологии83
Цивилизации, включая специальные записи32
Правительства8
Типы жителей6
Работы по преобразованию местности13
Уровни сложности8
Размеры мира5

Числа относятся к данным этого коммита. Прототип может быть непроизводимым, иметь особый способ появления или неподдерживаемые свойства. Количество зданий не равно количеству законченных эффектов.

Standalone-дополнение оставляет 27 типов юнитов по таблице доступной графики и удаляет upgrade-ссылки на отсутствующие замены. Источник: C7/Lua/standalone/ruleset.lua; проверяемые результаты: ruleset-summary.json.

Определение и экземпляр

UnitPrototype задаёт стоимость, атаку, защиту, движение, ресурсные и технологические требования, действия, флаги, графику и обновления. MapUnit содержит конкретного владельца, местоположение, здоровье, остаток движения и назначение AI. Аналогично отделены определения зданий и построенные городские объекты.

Источники: C7Engine/C7GameData/UnitPrototype.cs, C7Engine/C7GameData/MapUnit.cs, C7Engine/C7GameData/Building.cs, C7Engine/C7GameData/City.cs.

Данные сохранений используют отдельные SaveUnitPrototype, SaveUnit, SaveCity и другие представления. Ссылки восстанавливаются по идентификаторам и ключам, вместо сериализации всего циклического графа объектов.

Что нельзя смешивать

Наш профиль Path of Atlants 2 содержит 413 типов юнитов, 236 технологий и 244 здания по разбору оригинальной поставки. Базовый набор OpenCiv3 не заменяет этот профиль и не доказывает поддержку его флагов.

Рабочая таблица совместимости должна различать: «поле разобрано из BIQ», «перенесено в нашу схему», «влияет на правила», «объясняется интерфейсом», «проверено сценарием». При импорте неизвестное свойство следует сохранять или выдавать диагностику, а не терять молча.

Для редактора

Использовать устойчивые ключи для сущностей, отдельные локализованные названия и явный список возможностей. Не определять роль по отображаемому имени «Worker». При изменении прототипа заранее определить, меняются ли характеристики существующих экземпляров. Состав профиля, правила и сохранённая партия должны иметь отдельные версии.