diff --git a/Intersect.Client.Core/Interface/Game/GuildWindow.cs b/Intersect.Client.Core/Interface/Game/GuildWindow.cs index 10c820fb33..f7887fa846 100644 --- a/Intersect.Client.Core/Interface/Game/GuildWindow.cs +++ b/Intersect.Client.Core/Interface/Game/GuildWindow.cs @@ -28,8 +28,8 @@ partial class GuildWindow : Window private readonly MenuItem _kickOption; private readonly MenuItem _transferOption; - private readonly bool _addButtonUsed; - private readonly bool _addPopupButtonUsed; + private bool _addButtonUsed; + private bool _addPopupButtonUsed; private GuildMember? _selectedMember; public GuildWindow(Canvas gameCanvas) : base(gameCanvas, Globals.Me?.Guild, false, nameof(GuildWindow)) @@ -53,9 +53,10 @@ public GuildWindow(Canvas gameCanvas) : base(gameCanvas, Globals.Me?.Guild, fals }; _buttonAdd.Clicked += (s, e) => { - if (_textboxSearch.Text.Trim().Length >= 3) + var searchText = _textboxSearch.Text?.Trim(); + if (searchText is { Length: >=3 }) { - PacketSender.SendInviteGuild(_textboxSearch.Text); + PacketSender.SendInviteGuild(searchText); } }; @@ -161,9 +162,6 @@ public GuildWindow(Canvas gameCanvas) : base(gameCanvas, Globals.Me?.Guild, fals _transferOption.Clicked += transferOption_Clicked; #endregion - - _addButtonUsed = !_buttonAdd.IsHidden; - _addPopupButtonUsed = !_buttonAddPopup.IsHidden; } protected override void EnsureInitialized() @@ -172,6 +170,9 @@ protected override void EnsureInitialized() _contextMenu.LoadJsonUi(GameContentManager.UI.InGame, Graphics.Renderer?.GetResolutionString()); LoadJsonUi(GameContentManager.UI.InGame, Graphics.Renderer?.GetResolutionString()); + + _addButtonUsed = !_buttonAdd.IsHidden; + _addPopupButtonUsed = !_buttonAddPopup.IsHidden; } //Methods @@ -448,7 +449,7 @@ private void transferOption_Clicked(Base sender, MouseButtonState arguments) _ = new InputBox( Strings.Guilds.TransferTitle, - Strings.Guilds.TransferPrompt.ToString(_selectedMember?.Name, rank.Title, Globals.Me?.Guild), + Strings.Guilds.TransferToMemberPrompt.ToString(_selectedMember?.Name, rank.Title, Globals.Me?.Guild), InputType.TextInput, userData: _selectedMember, onSubmit: (sender, args) => diff --git a/Intersect.Client.Core/Interface/Game/QuestsWindow.cs b/Intersect.Client.Core/Interface/Game/QuestsWindow.cs index aff5578e81..94e4c0f0cb 100644 --- a/Intersect.Client.Core/Interface/Game/QuestsWindow.cs +++ b/Intersect.Client.Core/Interface/Game/QuestsWindow.cs @@ -16,24 +16,24 @@ namespace Intersect.Client.Interface.Game; public partial class QuestsWindow { - private Button mBackButton; + private readonly Button mBackButton; - private ScrollControl mQuestDescArea; + private readonly ScrollControl mQuestDescArea; - private RichLabel mQuestDescLabel; + private readonly RichLabel mQuestDescLabel; - private Label mQuestDescTemplateLabel; + private readonly Label mQuestDescTemplateLabel; - private ListBox mQuestList; + private readonly ListBox _questList; - private Label mQuestStatus; + private readonly Label mQuestStatus; //Controls - private WindowControl mQuestsWindow; + private readonly WindowControl mQuestsWindow; - private Label mQuestTitle; + private readonly Label mQuestTitle; - private Button mQuitButton; + private readonly Button mQuitButton; private QuestBase mSelectedQuest; @@ -43,8 +43,8 @@ public QuestsWindow(Canvas gameCanvas) mQuestsWindow = new WindowControl(gameCanvas, Strings.QuestLog.Title, false, "QuestsWindow"); mQuestsWindow.DisableResizing(); - mQuestList = new ListBox(mQuestsWindow, "QuestList"); - mQuestList.EnableScroll(false, true); + _questList = new ListBox(mQuestsWindow, "QuestList"); + _questList.EnableScroll(false, true); mQuestTitle = new Label(mQuestsWindow, "QuestTitle"); mQuestTitle.SetText(""); @@ -67,6 +67,10 @@ public QuestsWindow(Canvas gameCanvas) mQuitButton.Clicked += _quitButton_Clicked; mQuestsWindow.LoadJsonUi(GameContentManager.UI.InGame, Graphics.Renderer.GetResolutionString()); + + // Override stupid decisions in the JSON + _questList.IsDisabled = false; + _questList.IsVisible = true; } private void _quitButton_Clicked(Base sender, MouseButtonState arguments) @@ -168,7 +172,7 @@ private void UpdateInternal(bool shouldUpdateList) private void UpdateQuestList() { - mQuestList.RemoveAllRows(); + _questList.RemoveAllRows(); if (Globals.Me != null) { var quests = QuestBase.Lookup.Values; @@ -272,7 +276,7 @@ private void AddQuestToDict(Dictionary private void AddQuestToList(string name, Color clr, Guid questId, bool indented = true) { - var item = mQuestList.AddRow((indented ? "\t\t\t" : "") + name); + var item = _questList.AddRow((indented ? "\t\t\t" : "") + name); item.UserData = questId; item.Clicked += QuestListItem_Clicked; item.Selected += Item_Selected; @@ -282,7 +286,7 @@ private void AddQuestToList(string name, Color clr, Guid questId, bool indented private void AddCategoryToList(string name, Color clr) { - var item = mQuestList.AddRow(name); + var item = _questList.AddRow(name); item.MouseInputEnabled = false; item.SetTextColor(clr); item.RenderColor = new Color(0, 255, 255, 255); @@ -290,27 +294,31 @@ private void AddCategoryToList(string name, Color clr) private void Item_Selected(Base sender, ItemSelectedEventArgs arguments) { - mQuestList.UnselectAll(); + _questList.UnselectAll(); } private void QuestListItem_Clicked(Base sender, MouseButtonState arguments) { - var questNum = (Guid) ((ListBoxRow) sender).UserData; - var quest = QuestBase.Get(questNum); - if (quest != null) + if (sender.UserData is not Guid questId) { - mSelectedQuest = quest; - UpdateSelectedQuest(); + return; + } + + if (!QuestBase.TryGet(questId, out var questDescriptor)) + { + _questList.UnselectAll(); + return; } - mQuestList.UnselectAll(); + mSelectedQuest = questDescriptor; + UpdateSelectedQuest(); } private void UpdateSelectedQuest() { if (mSelectedQuest == null) { - mQuestList.Show(); + _questList.Show(); mQuestTitle.Hide(); mQuestDescArea.Hide(); mQuestStatus.Hide(); @@ -418,7 +426,7 @@ private void UpdateSelectedQuest() } } - mQuestList.Hide(); + _questList.Hide(); mQuestTitle.IsHidden = false; mQuestTitle.Text = mSelectedQuest.Name; mQuestDescArea.IsHidden = false; diff --git a/Intersect.Client.Core/Interface/Shared/InputBox.cs b/Intersect.Client.Core/Interface/Shared/InputBox.cs index 65d0078334..a465680e5d 100644 --- a/Intersect.Client.Core/Interface/Shared/InputBox.cs +++ b/Intersect.Client.Core/Interface/Shared/InputBox.cs @@ -61,13 +61,15 @@ private InvalidOperationException CreateInvalidInputTypeException() => Dock = Pos.Fill, }; - var promptLabel = new Label(inputPanel, name: nameof(_promptLabel)) + var promptScroller = new ScrollControl(inputPanel, name: nameof(_promptScroller)) + { + Dock = Pos.Fill, + }; + + var promptLabel = new RichLabel(promptScroller, name: nameof(_promptLabel)) { - AutoSizeToContents = false, Dock = Pos.Fill, Font = _defaultFont, - TextAlign = Pos.CenterH, - WrappingBehavior = WrappingBehavior.Wrapped, }; var buttonsPanel = new Panel(this, name: nameof(_buttonPanel)) @@ -103,13 +105,15 @@ private void OkayButtonOnClicked(Base @base, MouseButtonState mouseButtonState) Dock = Pos.Fill, }; - var promptLabel = new Label(inputPanel, name: nameof(_promptLabel)) + var promptScroller = new ScrollControl(inputPanel, name: nameof(_promptScroller)) + { + Dock = Pos.Fill, + }; + + var promptLabel = new RichLabel(promptScroller, name: nameof(_promptLabel)) { - AutoSizeToContents = false, Dock = Pos.Fill, Font = _defaultFont, - TextAlign = Pos.CenterH, - WrappingBehavior = WrappingBehavior.Wrapped, }; var buttonsPanel = new Panel(this, name: nameof(_buttonPanel)) @@ -151,13 +155,15 @@ private void OkayButtonOnClicked(Base @base, MouseButtonState mouseButtonState) Dock = Pos.Fill, }; - var promptLabel = new Label(inputPanel, name: nameof(_promptLabel)) + var promptScroller = new ScrollControl(inputPanel, name: nameof(_promptScroller)) + { + Dock = Pos.Fill, + }; + + var promptLabel = new RichLabel(promptScroller, name: nameof(_promptLabel)) { - AutoSizeToContents = false, Dock = Pos.Fill, Font = _defaultFont, - TextAlign = Pos.CenterH, - WrappingBehavior = WrappingBehavior.Wrapped, }; var buttonsPanel = new Panel(this, name: nameof(_buttonPanel)) @@ -223,13 +229,15 @@ private void NoButtonOnClicked(Base sender, MouseButtonState arguments) Dock = Pos.Fill, }; - var promptLabel = new Label(inputPanel, name: nameof(_promptLabel)) + var promptScroller = new ScrollControl(inputPanel, name: nameof(_promptScroller)) + { + Dock = Pos.Fill, + }; + + var promptLabel = new RichLabel(promptScroller, name: nameof(_promptLabel)) { - AutoSizeToContents = false, Dock = Pos.Fill, Font = _defaultFont, - TextAlign = Pos.CenterH, - WrappingBehavior = WrappingBehavior.Wrapped, }; var numericInput = new TextBoxNumeric(inputPanel, name: nameof(_numericInputTextbox)) @@ -237,6 +245,7 @@ private void NoButtonOnClicked(Base sender, MouseButtonState arguments) AutoSizeToContents = false, Dock = Pos.Bottom, Font = _defaultFont, + Margin = new Margin(0, 8, 0, 0), TextAlign = Pos.Left, WrappingBehavior = WrappingBehavior.NoWrap, }; @@ -288,13 +297,15 @@ private void NumericInputOnValueChanged(TextBoxNumeric sender, ValueChangedEvent Dock = Pos.Fill, }; - var promptLabel = new Label(inputPanel, name: nameof(_promptLabel)) + var promptScroller = new ScrollControl(inputPanel, name: nameof(_promptScroller)) + { + Dock = Pos.Fill, + }; + + var promptLabel = new RichLabel(promptScroller, name: nameof(_promptLabel)) { - AutoSizeToContents = false, Dock = Pos.Fill, Font = _defaultFont, - TextAlign = Pos.CenterH, - WrappingBehavior = WrappingBehavior.Wrapped, }; var numericSliderInput = new LabeledSlider(inputPanel, name: nameof(_numericInputSlider)) @@ -302,6 +313,7 @@ private void NumericInputOnValueChanged(TextBoxNumeric sender, ValueChangedEvent AutoSizeToContents = false, Dock = Pos.Bottom, Font = _defaultFont, + Margin = new Margin(0, 8, 0, 0), Rounding = 0, }; numericSliderInput.ValueChanged += NumericSliderInputOnValueChanged; @@ -348,13 +360,15 @@ private void NumericSliderInputOnValueChanged(Base sender, ValueChangedEventArgs Dock = Pos.Fill, }; - var promptLabel = new Label(inputPanel, name: nameof(_promptLabel)) + var promptScroller = new ScrollControl(inputPanel, name: nameof(_promptScroller)) + { + Dock = Pos.Fill, + }; + + var promptLabel = new RichLabel(promptScroller, name: nameof(_promptLabel)) { - AutoSizeToContents = false, Dock = Pos.Fill, Font = _defaultFont, - TextAlign = Pos.CenterH, - WrappingBehavior = WrappingBehavior.Wrapped, }; var stringInput = new TextBox(inputPanel, name: nameof(_stringInput)) @@ -362,6 +376,7 @@ private void NumericSliderInputOnValueChanged(Base sender, ValueChangedEventArgs AutoSizeToContents = false, Dock = Pos.Bottom, Font = _defaultFont, + Margin = new Margin(0, 8, 0, 0), TextAlign = Pos.Left, WrappingBehavior = WrappingBehavior.NoWrap, }; @@ -417,7 +432,8 @@ private void StringInputOnTextChanged(TextBox sender, ValueChangedEventArgs(nameof(_okayButton)); _yesButton = _inputPanel.FindChildByName