From d94ee127be641d8c31d6c7b86659af81724145b5 Mon Sep 17 00:00:00 2001 From: CattyLucky Date: Fri, 6 Mar 2026 05:32:14 +0500 Subject: [PATCH 01/10] =?UTF-8?q?=D0=9A=D0=B2=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QuestBoardBoundUserInterface.cs | 35 ++ .../QuestInstance/QuestBoardWindow.xaml | 46 ++ .../QuestInstance/QuestBoardWindow.xaml.cs | 49 ++ .../QuestInstance/QuestBoardComponent.cs | 12 + .../QuestInstancePresetPrototype.cs | 77 +++ .../QuestInstance/QuestInstanceSystem.cs | 527 ++++++++++++++++++ .../QuestInstance/QuestSignpostComponent.cs | 17 + .../Magnits/QuestInstance/QuestBoardUi.cs | 57 ++ .../_Nuclear14/Magnits/quest-instance.ftl | 36 ++ .../_Nuclear14/Magnits/quest_entities.yml | 127 +++++ .../Magnits/quest_instance_presets.yml | 80 +++ 11 files changed, 1063 insertions(+) create mode 100644 Content.Client/Magnits/QuestInstance/QuestBoardBoundUserInterface.cs create mode 100644 Content.Client/Magnits/QuestInstance/QuestBoardWindow.xaml create mode 100644 Content.Client/Magnits/QuestInstance/QuestBoardWindow.xaml.cs create mode 100644 Content.Server/Magnits/QuestInstance/QuestBoardComponent.cs create mode 100644 Content.Server/Magnits/QuestInstance/QuestInstancePresetPrototype.cs create mode 100644 Content.Server/Magnits/QuestInstance/QuestInstanceSystem.cs create mode 100644 Content.Server/Magnits/QuestInstance/QuestSignpostComponent.cs create mode 100644 Content.Shared/Magnits/QuestInstance/QuestBoardUi.cs create mode 100644 Resources/Locale/ru-RU/_Nuclear14/Magnits/quest-instance.ftl create mode 100644 Resources/Prototypes/_Nuclear14/Magnits/quest_entities.yml create mode 100644 Resources/Prototypes/_Nuclear14/Magnits/quest_instance_presets.yml diff --git a/Content.Client/Magnits/QuestInstance/QuestBoardBoundUserInterface.cs b/Content.Client/Magnits/QuestInstance/QuestBoardBoundUserInterface.cs new file mode 100644 index 0000000000..554cf725e4 --- /dev/null +++ b/Content.Client/Magnits/QuestInstance/QuestBoardBoundUserInterface.cs @@ -0,0 +1,35 @@ +using Content.Shared.Magnits.QuestInstance; +using JetBrains.Annotations; +using Robust.Client.UserInterface; + +namespace Content.Client.Magnits.QuestInstance; + +[UsedImplicitly] +public sealed class QuestBoardBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private QuestBoardWindow? _window; + + public QuestBoardBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { } + + protected override void Open() + { + base.Open(); + + _window = this.CreateWindow(); + _window.OpenCentered(); + + _window.OnDifficultySelected += difficulty => + { + SendMessage(new QuestBoardSelectDifficultyMessage(difficulty)); + }; + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is QuestBoardBoundUserInterfaceState s) + _window?.UpdateState(s); + } +} diff --git a/Content.Client/Magnits/QuestInstance/QuestBoardWindow.xaml b/Content.Client/Magnits/QuestInstance/QuestBoardWindow.xaml new file mode 100644 index 0000000000..500c61ec9b --- /dev/null +++ b/Content.Client/Magnits/QuestInstance/QuestBoardWindow.xaml @@ -0,0 +1,46 @@ + + + + +