Модуль Чата (Bogatyri.Chat, без Unity): - чат вынесен из Social в отдельный модуль; контракт IChat в ядре, событие ChatMessageReceivedEvent, LocalPlayer (id и имя игрока) - панель чата работает только через контракт и события - разворот чата на весь экран: кнопка «Развернуть/Свернуть» или Esc Модуль Круга (Bogatyri.Circle, без Unity): - основать Круг, вступить, выйти; роли главы и участника; 30 мест - уход главы передаёт главенство, последний участник распускает Круг - секция сохранения "circle", участвует в сбросе сохранений - окно «Круг» (кнопка внизу карты мира), демо-Круги до появления сервера - канал «Круг» в чате — только для участников Круга Прочее: - кнопка «Почта» привязана к правому краю нижней панели (в безопасной зоне она уезжала за экран) - тесты Чата и Круга; документы Chat.md, Circle.md, обновлены README, Core, Save Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
80 lines
2.4 KiB
C#
80 lines
2.4 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 ChatMessageReceivedEvent
|
|
{
|
|
public ChatMessage Message;
|
|
}
|
|
|
|
// ---------------- Круг ----------------
|
|
// Игрок вступил в Круг или создал свой
|
|
public struct CircleJoinedEvent
|
|
{
|
|
public string CircleId;
|
|
public string CircleName;
|
|
public bool Created;
|
|
}
|
|
|
|
// Игрок вышел из Круга (Disbanded -- Круг распущен, игрок был в нём один)
|
|
public struct CircleLeftEvent
|
|
{
|
|
public string CircleId;
|
|
public string CircleName;
|
|
public bool Disbanded;
|
|
}
|
|
|
|
// ---------------- Сохранения ----------------
|
|
public struct GameLoadedEvent { }
|
|
public struct GameSavedEvent { }
|
|
// Сохранения сброшены, все модули уже в состоянии новой игры
|
|
public struct GameResetEvent { }
|