From 15b06b8f42ea202ca30f92bd206e5479eb76e13f Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 19 Oct 2026 19:07:45 +0200 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=BE=D0=B4=D1=83=D0=BB=D0=B8=20=D0=A7?= =?UTF-8?q?=D0=B0=D1=82=D0=B0=20=D0=B8=20=D0=9A=D1=80=D1=83=D0=B3=D0=B0,?= =?UTF-8?q?=20=D1=80=D0=B0=D0=B7=D0=B2=D0=BE=D1=80=D0=BE=D1=82=20=D1=87?= =?UTF-8?q?=D0=B0=D1=82=D0=B0=20=D0=BD=D0=B0=20=D0=B2=D0=B5=D1=81=D1=8C=20?= =?UTF-8?q?=D1=8D=D0=BA=D1=80=D0=B0=D0=BD,=20=D0=BA=D0=BD=D0=BE=D0=BF?= =?UTF-8?q?=D0=BA=D0=B0=20=C2=AB=D0=9F=D0=BE=D1=87=D1=82=D0=B0=C2=BB=20?= =?UTF-8?q?=D0=B2=20Safe=20Area?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Модуль Чата (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 --- Assets/Editor/WorldMapSceneBuilder.cs | 5 + Assets/Scenes/MVP1.unity | 6 +- Assets/Scripts/App/GameModules.cs | 8 + Assets/Scripts/Modules/Chat.meta | 8 + .../Scripts/Modules/Chat/Bogatyri.Chat.asmdef | 16 ++ .../Modules/Chat/Bogatyri.Chat.asmdef.meta | 7 + Assets/Scripts/Modules/Chat/ChatService.cs | 118 ++++++++++ .../Chat}/ChatService.cs.meta | 0 Assets/Scripts/Modules/Circle.meta | 8 + .../Modules/Circle/Bogatyri.Circle.asmdef | 16 ++ .../Circle/Bogatyri.Circle.asmdef.meta | 7 + .../Scripts/Modules/Circle/CircleService.cs | 205 ++++++++++++++++++ .../Modules/Circle/CircleService.cs.meta | 11 + .../Modules/Core/Contracts/ModuleContracts.cs | 72 ++++++ .../Scripts/Modules/Core/Events/GameEvents.cs | 24 ++ Assets/Scripts/Modules/Core/LocalPlayer.cs | 7 + .../Scripts/Modules/Core/LocalPlayer.cs.meta | 2 + .../Modules/Tests/Bogatyri.Tests.asmdef | 6 +- Assets/Scripts/Modules/Tests/ModuleTests.cs | 128 +++++++++++ Assets/Scripts/Modules/World/MarchManager.cs | 2 +- Assets/Scripts/Social/ChatPanel.cs | 159 +++++++++++++- Assets/Scripts/Social/ChatService.cs | 95 -------- Assets/Scripts/Social/CircleWindow.cs | 147 +++++++++++++ Assets/Scripts/Social/CircleWindow.cs.meta | 11 + Assets/Scripts/WorldMap/WorldMapController.cs | 2 +- Docs/Modules/Chat.md | 69 ++++++ Docs/Modules/Circle.md | 95 ++++++++ Docs/Modules/Core.md | 5 + Docs/Modules/README.md | 16 +- Docs/Modules/Save.md | 5 +- 30 files changed, 1140 insertions(+), 120 deletions(-) create mode 100644 Assets/Scripts/Modules/Chat.meta create mode 100644 Assets/Scripts/Modules/Chat/Bogatyri.Chat.asmdef create mode 100644 Assets/Scripts/Modules/Chat/Bogatyri.Chat.asmdef.meta create mode 100644 Assets/Scripts/Modules/Chat/ChatService.cs rename Assets/Scripts/{Social => Modules/Chat}/ChatService.cs.meta (100%) create mode 100644 Assets/Scripts/Modules/Circle.meta create mode 100644 Assets/Scripts/Modules/Circle/Bogatyri.Circle.asmdef create mode 100644 Assets/Scripts/Modules/Circle/Bogatyri.Circle.asmdef.meta create mode 100644 Assets/Scripts/Modules/Circle/CircleService.cs create mode 100644 Assets/Scripts/Modules/Circle/CircleService.cs.meta create mode 100644 Assets/Scripts/Modules/Core/LocalPlayer.cs create mode 100644 Assets/Scripts/Modules/Core/LocalPlayer.cs.meta delete mode 100644 Assets/Scripts/Social/ChatService.cs create mode 100644 Assets/Scripts/Social/CircleWindow.cs create mode 100644 Assets/Scripts/Social/CircleWindow.cs.meta create mode 100644 Docs/Modules/Chat.md create mode 100644 Docs/Modules/Circle.md diff --git a/Assets/Editor/WorldMapSceneBuilder.cs b/Assets/Editor/WorldMapSceneBuilder.cs index 5c88b3e..587d3de 100644 --- a/Assets/Editor/WorldMapSceneBuilder.cs +++ b/Assets/Editor/WorldMapSceneBuilder.cs @@ -168,6 +168,11 @@ public static class WorldMapSceneBuilder SetRect(circleTab, new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(240, -10), new Vector2(220, 54)); chat.circleTabButton = circleTab.GetComponent