Геймплей 4X AS-BUILT
Игровые системы поверх мира: города и экономика, отряды и герои, движение по карте, технологии, дипломатия, квесты. То, что реально написано в коде на сегодня.
MoveStart, unitDeath, UPDATE_RESOURCES_LIST и т.д.,
слабая связанность подсистем) и SubMod-разбиение UI по доменам
(City / Squads / Techs / World). Многое обновляется по событию хода (OnNextTurn).
Города, стройка и очередь производства
Развитая городская система: развитие районов (quarters), строительство зданий, производство экипировки и набор отрядов — параллельно, с очередью (приоритет, пауза, отмена). Типы построек: священные, нейтральные, логова, военные лагеря. Связь с гарнизонами, хранилищами и караванами.
| Класс / файл | Роль |
|---|---|
BuildingSystem.cs, BuildingInProgress.cs, QuarterInProgress.cs | Стройка и производство. |
UI_CityData.cs, UI_Panel_Queue.cs, UI_Panel_Storage.cs | UI города, очередь, склад. |
рабочая Пути: Core/Scripts/GameDesign/City/, GameEngine/Scripts/SubModUICity/.
Население
Население города = сумма по зданиям, есть прирост в ход. Влияет на производство ресурсов (зависимость от занятости). Доля, мобилизуемая на войну — по умолчанию ~0.9.
рабочая PopulationSystem.cs.
Ресурсы и хранилища
По ресурсу: текущее и максимальное количество, прирост и расход в ход, тип из
ResourceIDs, привязка к тайлам добычи. Учёт влияния населения.
рабочая MassResource.cs, ResourceMineToken.cs.
Стены и фортификации
Материализация/дематериализация стен по тайлам, типы стен (WallIds),
поддержка башен, строительство через очередь города.
рабочая WallAreaExtension.cs.
Караваны и торговля
Маршруты между городами (From/To), кэш по фракциям и городам, разделение входящих/ исходящих/новых, визуализация на карте.
рабочая CaravanManager.cs, CaravanVisual.cs, Caravan.cs.
Гарнизоны
Структура гарнизонов города и привязка к зданиям есть, обновление по ходу. Но часть методов пока заглушки (например, удаление гарнизона реализовано неверно) — требует доработки.
заготовка CityGarrisonSystem.cs, Garrison.cs.
Отряды, формации и юниты
Юниты распределяются по слотам формации и расставляются на тайле согласно выбранной формации: Boss, Testudo, Shiltron, Circle, Phalanx и др. Слот хранит позицию, ротацию, базовые координаты; есть отслеживание смертей, удаление павших, сохранение тел под анимацию, поддержка лидера отряда. Сложная математика позиций в гексе.
| Класс / файл | Роль |
|---|---|
SquadController.cs | Контроллер отряда. |
SquadFormation.cs, Slot.cs | Формации и слоты. |
SquadUnitManager.cs, UnitInSquadController.cs | Юниты внутри отряда. |
рабочая Путь: GameEngine/Scripts/Squads/.
Герои
SquadHero наследует Squad; герой может быть лидером отряда (mainhero),
работает как юнит с ролью Hero. Есть UI-панели героя, его уровня и карточек характеристик.
рабочая SquadHero.cs, UI_Hero_Panel.cs, UI_HeroLevel_Panel.cs.
Экипировка
Броня и оружие по слотам, drag-and-drop надевание, производство экипировки параллельно со стройкой города, коэффициенты эффективности типов вооружения.
рабочая Equipment.cs, EquippedItem.cs, ArmorSlot.cs, HandEquip.cs.
Движение по карте и пути
Отряды перемещаются по карте с визуализацией маршрута стрелками: пути хранятся по отрядам, свои и вражеские различаются цветом (синие/зелёные), чужие стрелки автоскрываются, движение анимируется корутинами.
рабочая SquadMovementController.cs, HUD_PathController.cs, HUD_PathArrowsRender.cs, SquadPath.cs.
Поиск пути по ландшафту (вода/горы/земля) с проверкой доступности тайлов: наземная
навигация LandSquadNav частично закомментирована, водная WaterSquadNav есть.
заготовка Путь: GameEngine/Scripts/Squads/Navigation/, SubModPathFinding/.
Дерево технологий
Древовидные исследования с мягкими и жёсткими зависимостями между технологиями. Визуализация связей кривыми Безье, драгуемые карточки технологий, интеграция с UI.
| Класс / файл | Роль |
|---|---|
TechCore.cs, TechNode.cs | Ядро и узлы дерева. |
TechPanelController.cs, TechListController.cs | UI дерева. |
TechDependenceData (TechID, TechDepenceID, isOptional) | Зависимости. |
рабочая Пути: Core/Scripts/GameDesign/Techs/, SubModUITechs/.
Дипломатия
Отношения правителей считаются через черты характера: таблица совместимости с
модификаторами (примерно от −20 до +10). Есть союзы (DipUnion), субнации, типы
соглашений.
рабочая NationRelations.cs, DipUnion.cs, SubNation.cs.
Фракции, нации, религия
В Core разработаны системы наций, религии и отношений персонажей фракции. Но верхний
менеджер FactionsManager закомментирован — сборка фракций целиком ещё не сведена.
заготовка FactionNationSystem.cs, FactionReligionSystem.cs, FactionCharacterRalationSystem.cs.
Квестовый движок
Самая развитая часть игровой логики. Квест — это граф из нод и переходов (слои ячеек и связей) с параметрами. Реализовано 130+ типов стадий: диалоги, действия, проверки условий, генерация объектов (дойти до тайла, сменить репутацию, двигать отряд и т.д.). Есть пакеты квестов, runtime-каталог и система событий запуска квестов в игре.
| Класс / файл | Роль |
|---|---|
Quest.cs, QuestSystem.cs, QuestStage.cs | Квест, движок, базовая стадия. |
Quests/Stages/ (130+ файлов) | Конкретные типы стадий. |
Quests/Modes/ | Квестовые события/режимы. |
рабочая (очень развитая) Путь: Core/Scripts/GameDesign/Quests/.
Мировая карта: иконки и объекты
Отображение на карте: иконки священных мест (Sacred, Megalith), нейтральных зданий, логов монстров, университетов, лагерей бандитов; иконки ресурсов и квестов; система символов и цветового кодирования.
рабочая UI_MapObjectLabel.cs, UI_TileIcon.cs, UI_TileResourceIcon.cs, UI_QuestIcon.cs.
Наполнение мира (конфиги)
Расстановка контента по коалициям (бандиты, нежить, города мира) через ScriptableObject- контейнеры: конструкции, отряды, лут, экипировка, предметы, ресурсы; деление на зоны.
рабочая Пути: SubModPlantData/, SubModPlantEnv/.
Сводка по статусам
| Механика | Статус |
|---|---|
| Города, стройка, очередь | рабочая |
| Население · Ресурсы · Стены · Караваны | рабочая |
| Отряды, формации, юниты · Герои · Экипировка | рабочая |
| Движение и визуализация путей | рабочая |
| Тех-древо · Дипломатия · Мировая карта | рабочая |
| Квестовый движок | рабочая |
| Гарнизоны | заготовка |
| Фракции (сборка менеджера) | заготовка |
| Поиск пути (наземный) | заготовка |