Население снова самостоятельный модуль; рабочие без 40%, резерв по Ратуше, голод режет добычу (регламент 31.10)
This commit is contained in:
+28
-22
@@ -1,6 +1,6 @@
|
||||
# Модульная система «Богатырей»
|
||||
|
||||
Игра собрана из восьми модулей вокруг общего **Игрового ядра** — как на схеме Димы. Модули общаются только через контракты и события ядра и не управляют внутренним кодом друг друга. Это правило проверяет сам Unity: каждый модуль — отдельная сборка (`.asmdef`), которая видит только ядро, поэтому прямое обращение к соседнему модулю не скомпилируется.
|
||||
Игра собрана из десяти модулей вокруг общего **Игрового ядра** (регламент 31.10.2026; модуль Разведки — в ветке Саши `feature/intelligence-m1`, на схеме появится с ней). Модули общаются только через контракты и события ядра и не управляют внутренним кодом друг друга. Это правило проверяет сам Unity: каждый модуль — отдельная сборка (`.asmdef`), которая видит только ядро, поэтому прямое обращение к соседнему модулю не скомпилируется.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
@@ -11,28 +11,32 @@
|
||||
|
||||
┌──────────────────────┐ ┌──────────────────────┐
|
||||
│ ЭКОНОМИКА │ │ ПОСЕЛЕНИЕ │
|
||||
│ ресурсы, склады, │ │ здания: Ратуша, │
|
||||
│ лимиты, добыча │ │ стройка; │
|
||||
│ рабочими │ │ люди: жители, еда, │
|
||||
│ │ │ голод, прирост, найм │
|
||||
│ ресурсы, склады, │ │ здания, Ратуша, │
|
||||
│ лимиты, добыча │ │ участки, стройка │
|
||||
│ рабочими │ │ │
|
||||
└──────────────────────┘ └──────────────────────┘
|
||||
┌──────────────────────┐ ┌──────────────────────┐
|
||||
│ АРМИЯ │ │ ГЛОБАЛЬНЫЙ МИР │
|
||||
│ воины по типам: дома,│ │ карта, походы, замок,│
|
||||
│ в гарнизоне, │ │ соседи, лагеря │
|
||||
│ в походе │ │ разбойников │
|
||||
│ НАСЕЛЕНИЕ │ │ АРМИЯ │
|
||||
│ люди, рабочие, еда, │ │ воины по типам: дома,│
|
||||
│ голод, прирост, │ │ в гарнизоне, │
|
||||
│ жильё │ │ в походе │
|
||||
└──────────────────────┘ └──────────────────────┘
|
||||
┌──────────────────────┐ ┌──────────────────────┐
|
||||
│ БОЕВАЯ СИСТЕМА │ │ КРУГ │
|
||||
│ сила, контры, стены, │ │ объединение игроков, │
|
||||
│ удача ±5%, голод, │ │ роли │
|
||||
│ прогноз │ │ │
|
||||
│ ГЛОБАЛЬНЫЙ МИР │ │ БОЕВАЯ СИСТЕМА │
|
||||
│ карта, походы, замок,│ │ сила, контры, стены, │
|
||||
│ соседи, лагеря │ │ удача ±5%, голод, │
|
||||
│ разбойников │ │ прогноз │
|
||||
└──────────────────────┘ └──────────────────────┘
|
||||
┌──────────────────────┐ ┌──────────────────────┐
|
||||
│ ЧАТ │ │ СОХРАНЕНИЯ │
|
||||
│ общий мир и чат │ │ save.json, у каждого │
|
||||
│ Круга │ │ модуля своя секция │
|
||||
│ КРУГ │ │ ЧАТ │
|
||||
│ объединение игроков, │ │ общий мир и чат │
|
||||
│ роли │ │ Круга │
|
||||
└──────────────────────┘ └──────────────────────┘
|
||||
┌──────────────────────┐
|
||||
│ СОХРАНЕНИЯ │
|
||||
│ save.json, у каждого │
|
||||
│ модуля своя секция │
|
||||
└──────────────────────┘
|
||||
|
||||
App/GameModules — точка сборки: регистрирует модули и соединяет их события
|
||||
со старыми системами (GameProgress, Казармы, панели UI)
|
||||
@@ -40,7 +44,7 @@ App/GameModules — точка сборки: регистрирует модул
|
||||
|
||||
**Не путать:**
|
||||
|
||||
- **Поселение** — это **город**: его **здания** (что построено и какого уровня, `Modules/Settlement`) и его **люди** (сколько их, кто работает, сколько едят, кого нанять в войско, `Modules/Settlement/Population`). Люди — отдельная сборка без Unity внутри Поселения, как правила добычи внутри Экономики. Связь: уровень Ратуши задаёт предел жилья.
|
||||
- **Поселение** — это **здания**: что построено и какого уровня. **Население** — это **люди**: сколько их, кто работает, сколько едят. Связь: уровень Ратуши (Поселение) задаёт предел жилья (Население).
|
||||
- **Армия** хранит, где стоит каждый воин. **Боевая система** только считает бой: кто победил и кто погиб.
|
||||
- **Глобальный мир** решает, куда и когда идёт войско; бой он просит у Боевой системы.
|
||||
- **Производство** (`Bogatyri.Economy.Rules`) — не отдельный модуль, а часть Экономики без Unity: добыча через рабочих.
|
||||
@@ -49,15 +53,16 @@ App/GameModules — точка сборки: регистрирует модул
|
||||
|
||||
| Кто | Модули |
|
||||
| --- | --- |
|
||||
| Валдемар (экономика) | Экономика, люди Поселения (`Settlement/Population`) |
|
||||
| Валдемар (экономика) | Экономика, Население |
|
||||
| Саша (война и карта) | Армия, Боевая система, Глобальный мир, Круг, Чат |
|
||||
| Общее | Ядро, здания Поселения, Сохранения |
|
||||
| Общее | Ядро, Поселение, Сохранения |
|
||||
|
||||
| Модуль | Сборка | Папка | Документ |
|
||||
| --- | --- | --- | --- |
|
||||
| Игровое ядро | `Bogatyri.Core` (без Unity), `Bogatyri.Core.Unity` | `Assets/Scripts/Modules/Core`, `Core.Unity` | [Core.md](Core.md) |
|
||||
| Экономика | `Bogatyri.Economy`, `Bogatyri.Economy.Rules` (без Unity) | `Assets/Scripts/Modules/Economy` | [Economy.md](Economy.md) |
|
||||
| Поселение | `Bogatyri.Settlement` (здания), `Bogatyri.Settlement.Population` (люди, без Unity) | `Assets/Scripts/Modules/Settlement`, люди — `Settlement/Population` | [Settlement.md](Settlement.md), [Population.md](Population.md) |
|
||||
| Поселение | `Bogatyri.Settlement` | `Assets/Scripts/Modules/Settlement` | [Settlement.md](Settlement.md) |
|
||||
| Население | `Bogatyri.Population` (без Unity) | `Assets/Scripts/Modules/Population` | [Population.md](Population.md) |
|
||||
| Армия | `Bogatyri.Army` (без Unity) | `Assets/Scripts/Modules/Army` | [Army.md](Army.md) |
|
||||
| Глобальный мир | `Bogatyri.World`, `Bogatyri.World.Simulation` (без Unity) | `Assets/Scripts/Modules/World` | [World.md](World.md) |
|
||||
| Боевая система | `Bogatyri.Battle` (без Unity) | `Assets/Scripts/Modules/Battle` | [Battle.md](Battle.md) |
|
||||
@@ -90,15 +95,16 @@ EditMode-тесты: `Assets/Scripts/Modules/Tests/ModuleTests.cs`. Запуск
|
||||
Добавить вместе с этапами 1, 2 и 5 (решение команды от 19.10.2026):
|
||||
|
||||
- [x] лимит жилья: 300 жителей при лимите 300 — прирост стоит, предел вырос — прирост идёт (`PopulationTests`; пока предел растёт от Ратуши, Дома ещё нет);
|
||||
- [x] нельзя призвать ниже гражданского резерва: 150 свободных, резерв 30 → призвать можно не больше 120 (`PopulationTests`);
|
||||
- [x] нельзя призвать ниже гражданского резерва: 150 свободных, резерв 30 → призвать можно не больше 120; резерв по уровню Ратуши 10/20/30 (`PopulationTests`);
|
||||
- [x] назначение гарнизона: 30 солдат, 10 в гарнизон → 20 доступны, всего по-прежнему 30 (`ArmyService_Garrison_OneSoldierInOnePlace`);
|
||||
- [ ] голод и восстановление: еда кончилась → дебаффы, в том числе у защитников; еда вернулась → снятие по правилу. Бой уже проверен (`Battle_Famine_HalvesPower_AndStacksWithFatigue`, `World_FamineAtBattleTime_WeakensMarch`: −50% у нападающих и у защитников, вместе с усталостью 40%), история голода на момент боя — `PopulationTests`; остаются дебаффы производства и правило снятия — экономика;
|
||||
- [ ] голод и восстановление: еда кончилась → дебаффы, в том числе у защитников; еда вернулась → снятие по правилу. Бой уже проверен (`Battle_Famine_HalvesPower_AndStacksWithFatigue`, `World_FamineAtBattleTime_WeakensMarch`: −50% у нападающих и у защитников, вместе с усталостью 40%), история голода на момент боя — `PopulationTests`; добыча кроме еды при голоде ×0.5 и снятие штрафа сразу после еды — `ProductionTests` (31.10);
|
||||
- [ ] предел синих кристаллов: кристаллы не копятся бесконечно, сверх лимита — по общему правилу.
|
||||
|
||||
## Журнал изменений
|
||||
|
||||
| Дата | Кто | Что |
|
||||
| --- | --- | --- |
|
||||
| 31.10.2026 | Claude | По регламенту 31.10: откат — Население снова самостоятельный модуль (`Modules/Population`, `Bogatyri.Population`), схема и «Кто отвечает» как у Саши. Работать может любой житель (без «40%»), резерв по уровню Ратуши 10/20/30, голод режет добычу кроме еды вдвое. Обновлены Population, Settlement, Economy, Core. |
|
||||
| 28.10.2026 | Claude | Население стало частью Поселения, как на схеме Димы: `Settlement/Population`, сборка `Bogatyri.Settlement.Population`. Найм воинов из свободных жителей с гражданским резервом, история голода для боя. Обновлены Settlement, Population, Core. |
|
||||
| 28.10.2026 | Claude | Схема модулей обновлена: десять модулей (добавлено Население), «Не путать» (Поселение и Население, Армия и Боевая система), кто за что отвечает. |
|
||||
| 28.10.2026 | Claude | Голод в бою (−50%) и правило усталости (−20%, вместе 40%). Обновлены Battle, World, Core. |
|
||||
|
||||
Reference in New Issue
Block a user