- Ядро (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>
56 lines
1.8 KiB
C#
56 lines
1.8 KiB
C#
// События, которыми модули сообщают друг другу о случившемся.
|
|
// Событие -- это факт в прошедшем времени ("ресурс изменился"), а не просьба что-то сделать.
|
|
// Добавляя событие, впиши его в документ модуля-отправителя (Docs/Modules).
|
|
|
|
// ---------------- Экономика ----------------
|
|
public struct ResourceChangedEvent
|
|
{
|
|
public ResourceType Type;
|
|
public float Value;
|
|
}
|
|
|
|
// ---------------- Поселение ----------------
|
|
public struct BuildingPlacedEvent
|
|
{
|
|
public string BuildingName;
|
|
}
|
|
|
|
public struct TownHallLevelChangedEvent
|
|
{
|
|
public int Level;
|
|
}
|
|
|
|
// Поселение начинает восстанавливать здания из сохранения: самое время добавить в список стройки
|
|
// здания, которые появляются кодом (например, Казармы)
|
|
public struct SettlementRestoringEvent { }
|
|
|
|
// ---------------- Глобальный мир ----------------
|
|
public struct MarchStartedEvent
|
|
{
|
|
public int MarchId;
|
|
public string TargetId;
|
|
public int Soldiers;
|
|
}
|
|
|
|
public struct MarchBattleResolvedEvent
|
|
{
|
|
public int MarchId;
|
|
public string TargetId;
|
|
public bool Victory;
|
|
public int Soldiers;
|
|
public int Survivors;
|
|
}
|
|
|
|
public struct MarchReturnedEvent
|
|
{
|
|
public int MarchId;
|
|
public bool Victory;
|
|
public int Survivors;
|
|
}
|
|
|
|
// ---------------- Сохранения ----------------
|
|
public struct GameLoadedEvent { }
|
|
public struct GameSavedEvent { }
|
|
// Сохранения сброшены, все модули уже в состоянии новой игры
|
|
public struct GameResetEvent { }
|