Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions Intersect.Client.Core/Interface/Game/GuildWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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);
}
};

Expand Down Expand Up @@ -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()
Expand All @@ -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
Expand Down Expand Up @@ -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) =>
Expand Down
54 changes: 31 additions & 23 deletions Intersect.Client.Core/Interface/Game/QuestsWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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("");
Expand All @@ -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)
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -272,7 +276,7 @@ private void AddQuestToDict(Dictionary<string, List<Tuple<QuestBase, int, Color>

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;
Expand All @@ -282,35 +286,39 @@ 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);
}

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();
Expand Down Expand Up @@ -418,7 +426,7 @@ private void UpdateSelectedQuest()
}
}

mQuestList.Hide();
_questList.Hide();
mQuestTitle.IsHidden = false;
mQuestTitle.Text = mSelectedQuest.Name;
mQuestDescArea.IsHidden = false;
Expand Down
94 changes: 68 additions & 26 deletions Intersect.Client.Core/Interface/Shared/InputBox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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))
Expand Down Expand Up @@ -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))
Expand Down Expand Up @@ -223,20 +229,23 @@ 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))
{
AutoSizeToContents = false,
Dock = Pos.Bottom,
Font = _defaultFont,
Margin = new Margin(0, 8, 0, 0),
TextAlign = Pos.Left,
WrappingBehavior = WrappingBehavior.NoWrap,
};
Expand Down Expand Up @@ -288,20 +297,23 @@ 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))
{
AutoSizeToContents = false,
Dock = Pos.Bottom,
Font = _defaultFont,
Margin = new Margin(0, 8, 0, 0),
Rounding = 0,
};
numericSliderInput.ValueChanged += NumericSliderInputOnValueChanged;
Expand Down Expand Up @@ -348,20 +360,23 @@ 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))
{
AutoSizeToContents = false,
Dock = Pos.Bottom,
Font = _defaultFont,
Margin = new Margin(0, 8, 0, 0),
TextAlign = Pos.Left,
WrappingBehavior = WrappingBehavior.NoWrap,
};
Expand Down Expand Up @@ -417,7 +432,8 @@ private void StringInputOnTextChanged(TextBox sender, ValueChangedEventArgs<stri
//
// NumericSliderInput,

private readonly Label _promptLabel;
private readonly ScrollControl _promptScroller;
private readonly RichLabel _promptLabel;

private readonly LabeledSlider? _numericInputSlider;
private readonly TextBoxNumeric? _numericInputTextbox;
Expand Down Expand Up @@ -453,6 +469,9 @@ public InputBox(
{
}

private int _initialScrollerInnerHeight;
private int _initialMinimumHeight;

protected InputBox(
string name,
string title,
Expand Down Expand Up @@ -500,7 +519,10 @@ protected InputBox(
_okayButton = _inputPanel.FindChildByName<Button>(nameof(_okayButton));
_yesButton = _inputPanel.FindChildByName<Button>(nameof(_yesButton));

_promptLabel = _inputPanel.FindChildByName<Label>(nameof(_promptLabel)) ??
_promptScroller = _inputPanel.FindChildByName<ScrollControl>(nameof(_promptScroller)) ??
throw new InvalidOperationException("Prompt scroller wasn't created");

_promptLabel = _promptScroller.FindChildByName<RichLabel>(nameof(_promptLabel)) ??
throw new InvalidOperationException("Prompt label wasn't created");

_promptLabel.Text = prompt;
Expand Down Expand Up @@ -612,6 +634,26 @@ protected override void EnsureInitialized()
Name = $"{GetType().GetName(qualified: false)}_{InputType}";
LoadJsonUi(GameContentManager.UI.Shared, Graphics.Renderer?.GetResolutionString());

var promptScrollerInnerPanelPadding = _promptScroller.InnerPanel.Padding;
var promptScrollerInnerPanelPaddingV =
promptScrollerInnerPanelPadding.Bottom + promptScrollerInnerPanelPadding.Top;
_initialScrollerInnerHeight = _promptScroller.InnerHeight - promptScrollerInnerPanelPaddingV;
_initialMinimumHeight = MinimumSize.Y;

_promptLabel.Rebuilt += (_, _) =>
{
var newHeight = _promptLabel.Height;
newHeight = Math.Min(400, newHeight);
var delta = newHeight - _initialScrollerInnerHeight;
MinimumSize = MinimumSize with
{
Y = _initialMinimumHeight + delta,
};
SizeToChildren();
};

_promptLabel.ForceImmediateRebuild();

Show();
Focus();
}
Expand Down
4 changes: 3 additions & 1 deletion Intersect.Client.Core/Localization/Strings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1328,7 +1328,9 @@ public partial struct Guilds
public static LocalizedString Transfer = @"Transfer";

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public static LocalizedString TransferPrompt = @"This action will completely transfer all ownership of your guild to {00} and you will lose your rank of {01}. If you are sure you want to hand over your guild enter '{02}' below.";
public static LocalizedString TransferToMemberPrompt = @"This action will completely transfer all ownership of your guild to \c{{#80ff80}}{00}\c{{}} and you will lose your rank of \c{{#ff9f40}}{01}\c{{}}.

If you are sure you want to hand over your guild enter '\c{{#ff8080}}{02}\c{{}}' below.";

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public static LocalizedString TransferTitle = @"Transfer Guild";
Expand Down
Loading
Loading