README модулей: схема из десяти модулей (добавлено Население), «не путать», кто за что отвечает

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Alexander
2026-10-28 19:33:41 +01:00
co-authored by Claude Opus 5.5
parent 5001144147
commit 6db08851c9
+54 -10
View File
@@ -1,19 +1,62 @@
# Модульная система «Богатырей»
Игра собрана из девяти модулей вокруг общего **Игрового ядра**. Модули общаются только через контракты и события ядра и не управляют внутренним кодом друг друга. Это правило проверяет сам Unity: каждый модуль — отдельная сборка (`.asmdef`), которая видит только ядро, поэтому прямое обращение к соседнему модулю не скомпилируется.
Игра собрана из десяти модулей вокруг общего **Игрового ядра**. Модули общаются только через контракты и события ядра и не управляют внутренним кодом друг друга. Это правило проверяет сам Unity: каждый модуль — отдельная сборка (`.asmdef`), которая видит только ядро, поэтому прямое обращение к соседнему модулю не скомпилируется.
```
Игровое ядро (Bogatyri.Core)
контракты (IEconomy, IArmy...) · события (EventBus) · реестр (GameServices)
┌───────────┬────────────┬───────────┬──────────────┬───────────────┬────────────┬──────────┬──────────┐
Экономика Поселение Армия Глобальный мир Боевая система Сохранения Чат Круг
ресурсы, здания, войска, карта, урон, потери, игровое мир и объединение
производство развитие характеристики перемещения исход состояние Круг игроков
▲
App/GameModules — точка сборки: регистрирует модули и соединяет их события
со старыми системами (GameProgress, Казармы, панели UI)
┌─────────────────────────────────────────┐
│ ОБЩЕЕ ИГРОВОЕ ЯДРО (Core) │
│ контракты · события · реестр · время игры │
└─────────────────────────────────────────┘
все модули видят только ядро, друг друга — нет
┌──────────────────────┐ ┌──────────────────────┐
│ ЭКОНОМИКА │ │ ПОСЕЛЕНИЕ │
│ ресурсы, склады, │ │ здания, Ратуша, │
│ лимиты, добыча │ │ участки, стройка │
│ рабочими │ │ │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ НАСЕЛЕНИЕ │ │ АРМИЯ │
│ люди, рабочие, еда, │ │ воины по типам: дома,│
│ голод, прирост, │ │ в гарнизоне, │
│ жильё │ │ в походе │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ ГЛОБАЛЬНЫЙ МИР │ │ БОЕВАЯ СИСТЕМА │
│ карта, походы, замок,│ │ сила, контры, стены, │
│ соседи, лагеря │ │ удача ±5%, голод, │
│ разбойников │ │ прогноз │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐ ┌──────────────────────┐
│ КРУГ │ │ ЧАТ │
│ объединение игроков, │ │ общий мир и чат │
│ роли │ │ Круга │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────┐
│ СОХРАНЕНИЯ │
│ save.json, у каждого │
│ модуля своя секция │
└──────────────────────┘
App/GameModules — точка сборки: регистрирует модули и соединяет их события
со старыми системами (GameProgress, Казармы, панели UI)
```
**Не путать:**
- **Поселение** — это **здания**: что построено и какого уровня. **Население** — это **люди**: сколько их, кто работает, сколько едят. Связь: уровень Ратуши (Поселение) задаёт предел жилья (Население).
- **Армия** хранит, где стоит каждый воин. **Боевая система** только считает бой: кто победил и кто погиб.
- **Глобальный мир** решает, куда и когда идёт войско; бой он просит у Боевой системы.
- **Производство** (`Bogatyri.Economy.Rules`) — не отдельный модуль, а часть Экономики без Unity: добыча через рабочих.
**Кто отвечает** (договорённость команды от 27.10.2026):
| Кто | Модули |
| --- | --- |
| Валдемар (экономика) | Экономика, Население |
| Саша (война и карта) | Армия, Боевая система, Глобальный мир, Круг, Чат |
| Общее | Ядро, Поселение, Сохранения |
| Модуль | Сборка | Папка | Документ |
| --- | --- | --- | --- |
| Игровое ядро | `Bogatyri.Core` (без Unity), `Bogatyri.Core.Unity` | `Assets/Scripts/Modules/Core`, `Core.Unity` | [Core.md](Core.md) |
@@ -61,6 +104,7 @@ EditMode-тесты: `Assets/Scripts/Modules/Tests/ModuleTests.cs`. Запуск
| Дата | Кто | Что |
| --- | --- | --- |
| 28.10.2026 | Claude | Схема модулей обновлена: десять модулей (добавлено Население), «Не путать» (Поселение и Население, Армия и Боевая система), кто за что отвечает. |
| 28.10.2026 | Claude | Голод в бою (−50%) и правило усталости (−20%, вместе 40%). Обновлены Battle, World, Core. |
| 28.10.2026 | Claude | Этап 2 плана, начало: таблица баланса боя `BattleConfig`, случайность ±5%, прогноз риска, полный итог боя для обеих сторон. Обновлены Battle, World, Core. |
| 28.10.2026 | Claude | Исправления по ревью 27.10.2026 (п. 2.1, 2.2, 2.4): воины не появляются из неизвестных и повторных походов, отправка с откатом, тесты крайних случаев боя. Обновлены Army, World, Battle, Core. |