Files
AlexanderandClaude Opus 5.5 964cb23d9d Модульная система: игровое ядро + 6 модулей, документы Docs/Modules
- Ядро (Bogatyri.Core): контракты модулей, EventBus, GameServices, SaveRegistry
- Модули: Экономика, Поселение, Армия, Глобальный мир, Боевая система, Сохранения
  (каждый — отдельный asmdef, видит только ядро)
- App/GameModules: регистрация модулей и связь с GameProgress/Казармами
- Сохранения v2 по секциям модулей, перенос старого save.json и походов из progress.json
- Сброс сохранений: ISaveSystem.ResetAll, ResetState у модулей, меню Tools
- EditMode-тесты модулей, документы по каждому модулю с журналом изменений

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:39:28 +02:00

2.5 KiB
Raw Permalink Blame History

Боевая система

Урон, потери, исход боя. Модуль только считает: кто победил и сколько погибло. Кто идёт в бой и что делать с итогом, решают другие модули.

  • Сборка: Bogatyri.Battle (без Unity — тот же код будет считать бои на сервере).
  • Папка: Assets/Scripts/Modules/Battle.
  • Зависит от: ядра.

Контракт IBattleSystem

BattleOutcome Resolve(BattleRequest request)

BattleRequest BattleOutcome
Attackers — атакующих Victory — победил атакующий
Defenders — защитников AttackerLosses, DefenderLosses, Survivors

Регистрирует App/GameModules. Мир получает модуль при создании симуляции, не через реестр — так симуляцию можно запустить на сервере.

Текущие правила

  • Побеждает тот, у кого больше солдат; ничья — победа защитника.
  • Проигравший теряет половину своего войска, победитель — столько же.

Пример: 30 против 20 — победа, погибает 10 атакующих и 10 защитников, домой идут 20.

События

Нет: исход возвращается вызвавшему модулю.

Сохранение

Нет данных.

Решения и план

  • Этап 6: формула с типами войск — кто кого контрит и как делятся потери. Сначала записать правила в документ экономики.
  • Решение команды от 19.10.2026: при голоде сильные дебаффы на боевую эффективность, включая гарнизон и походы. В BattleRequest для этого появятся модификаторы силы сторон; проценты — из EconomyConfig.

Журнал изменений

Дата Кто Что
19.10.2026 Claude Модуль выделен: BattleResolver из WorldSimulation.cs стал BattleSystem с контрактом IBattleSystem; BattleOutcome перенесён в ядро. Правила не изменились.