diff --git a/Content.Client/_Forge/QuestInstance/QuestBoardBoundUserInterface.cs b/Content.Client/_Forge/QuestInstance/QuestBoardBoundUserInterface.cs new file mode 100644 index 0000000000..976f82fc6f --- /dev/null +++ b/Content.Client/_Forge/QuestInstance/QuestBoardBoundUserInterface.cs @@ -0,0 +1,38 @@ +using Content.Shared._Forge.QuestInstance; +using JetBrains.Annotations; +using Robust.Client.UserInterface; + + +namespace Content.Client._Forge.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/_Forge/QuestInstance/QuestBoardWindow.xaml b/Content.Client/_Forge/QuestInstance/QuestBoardWindow.xaml new file mode 100644 index 0000000000..dab9f5c8c9 --- /dev/null +++ b/Content.Client/_Forge/QuestInstance/QuestBoardWindow.xaml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + +