Fix styles for group button in loadout menu (#38488)

* Fix styles color for group button in loadout menu

* Show selected item count in loadout group UI

Updated the loadout group container to display the number of selected items in a group. Added a new localization string to support this feature in the UI.

* Resolve required changes
This commit is contained in:
qrwas
2025-06-22 01:20:34 +03:00
committed by GitHub
parent 6b8842c44d
commit 0e58ed4f42
2 changed files with 16 additions and 8 deletions

View File

@@ -144,8 +144,8 @@ public sealed partial class LoadoutGroupContainer : BoxContainer
{
subList.AddChild(proto);
}
UpdateToggleColor(toggle, subList);
var itemName = firstElement.Text ?? "";
UpdateSubGroupSelectedInfo(firstElement, itemName, subList);
}
else
{
@@ -164,12 +164,14 @@ public sealed partial class LoadoutGroupContainer : BoxContainer
};
toggle.Text = subContainer.Visible ? OpenedGroupMark : ClosedGroupMark;
toggle.Pressed = subContainer.Visible;
toggle.OnPressed += _ =>
{
var willOpen = !subContainer.Visible;
subContainer.Visible = willOpen;
toggle.Text = willOpen ? OpenedGroupMark : ClosedGroupMark;
toggle.Pressed = willOpen;
_openedGroups[kvp.Key] = willOpen;
};
@@ -178,15 +180,16 @@ public sealed partial class LoadoutGroupContainer : BoxContainer
return toggle;
}
private void UpdateToggleColor(Button toggle, BoxContainer subList)
private void UpdateSubGroupSelectedInfo(LoadoutContainer loadout, string itemName, BoxContainer subList)
{
var anyActive = subList.Children
var countSubSelected = subList.Children
.OfType<LoadoutContainer>()
.Any(c => c.Select.Pressed);
.Count(c => c.Select.Pressed);
toggle.Modulate = anyActive
? Color.Green
: Color.White;
if (countSubSelected > 0)
{
loadout.Text = Loc.GetString("loadouts-count-items-in-group", ("item", itemName), ("count", countSubSelected));
}
}
/// <summary>

View File

@@ -9,4 +9,9 @@ loadouts-min-limit = Min count: {$count}
loadouts-max-limit = Max count: {$count}
loadouts-points-limit = Points: {$count} / {$max}
loadouts-count-items-in-group = {$item} and {$count} other {$count ->
[1] item
*[other] items
}
loadouts-points-restriction = Insufficient points