client: DeckBuilder — полный арт карты и количество под ним
CI / test (push) Successful in 3m28s Details

- Ячейка коллекции 216×360: полный арт карты без обрезки и искажений,
  под ним только количество («есть ×N» / «в колоде ×N · есть ×M»).
- Убраны бейдж грейда, плашка имени и камень редкости.
- Проверки: EditMode 69/69, standalone собран.
This commit is contained in:
MpakobecEx 2026-11-01 15:51:39 +05:00
parent ce98ea5ed3
commit 92f03b91a1
1 changed files with 9 additions and 65 deletions

View File

@ -207,7 +207,7 @@ namespace Vanguard.UI
var scroll = UiKit.CreateGridScrollView( var scroll = UiKit.CreateGridScrollView(
collectionArea, collectionArea,
"CollectionGrid", "CollectionGrid",
new Vector2(216f, 242f), new Vector2(216f, 360f),
new Vector2(14f, 14f), new Vector2(14f, 14f),
out _collectionContent); out _collectionContent);
var scrollElement = scroll.gameObject.AddComponent<LayoutElement>(); var scrollElement = scroll.gameObject.AddComponent<LayoutElement>();
@ -904,86 +904,30 @@ namespace Vanguard.UI
} }
var art = UiKit.CreatePanel(cell, "Art", Color.white); var art = UiKit.CreatePanel(cell, "Art", Color.white);
UiKit.SetPreferredHeight(art, 182f); UiKit.SetPreferredHeight(art, 315f);
CardImageService.ApplyIllustration( var artImage = art.GetComponent<Image>();
art.GetComponent<Image>(), CardImageService.Apply(
artImage,
meta.ImageKey, meta.ImageKey,
CardArt.ForCard(meta.NameId, meta.Clan)); CardArt.ForCard(meta.NameId, meta.Clan));
artImage.preserveAspect = true;
var badge = UiKit.CreatePanel(art, "GradeBadge", new Color(0f, 0f, 0f, 0f));
var badgeRect = (RectTransform)badge.transform;
badgeRect.anchorMin = new Vector2(0f, 1f);
badgeRect.anchorMax = new Vector2(0f, 1f);
badgeRect.pivot = new Vector2(0f, 1f);
badgeRect.sizeDelta = new Vector2(42f, 36f);
badgeRect.anchoredPosition = new Vector2(8f, -8f);
var badgeImage = badge.GetComponent<Image>();
badgeImage.sprite = NeonUi.BodySliced(
10,
new Color(0.05f, 0.12f, 0.28f, 0.95f),
new Color(0.5f, 0.8f, 1f, 0.85f),
2);
badgeImage.type = Image.Type.Sliced;
badgeImage.color = Color.white;
badgeImage.raycastTarget = false;
var grade = UiKit.CreateText(
badge, "Grade", meta.Grade.ToString(), 17, Color.white);
grade.fontStyle = FontStyle.Bold;
UiKit.Stretch(grade.rectTransform);
var band = UiKit.CreatePanel(art, "NameBand", new Color(0.01f, 0.02f, 0.06f, 0.78f));
var bandRect = (RectTransform)band.transform;
bandRect.anchorMin = new Vector2(0f, 0f);
bandRect.anchorMax = new Vector2(1f, 0f);
bandRect.pivot = new Vector2(0.5f, 0f);
bandRect.offsetMin = new Vector2(0f, 0f);
bandRect.offsetMax = new Vector2(0f, 36f);
band.GetComponent<Image>().raycastTarget = false;
var name = UiKit.CreateText(
band, "Name", Loc.CardName(meta), 14, TextPrimary, TextAnchor.MiddleCenter);
UiKit.MakeLiteral(name);
name.fontStyle = FontStyle.Bold;
name.horizontalOverflow = HorizontalWrapMode.Wrap;
UiKit.Stretch(name.rectTransform);
name.rectTransform.offsetMin = new Vector2(6f, 2f);
name.rectTransform.offsetMax = new Vector2(-6f, -2f);
var qty = UiKit.CreatePanel(cell, "Qty", new Color(0.02f, 0.05f, 0.12f, 0.95f)); var qty = UiKit.CreatePanel(cell, "Qty", new Color(0.02f, 0.05f, 0.12f, 0.95f));
UiKit.SetPreferredHeight(qty, 58f); UiKit.SetPreferredHeight(qty, 45f);
var counts = UiKit.CreateText( var counts = UiKit.CreateText(
qty, qty,
"Counts", "Counts",
CountText(item), CountText(item),
12, 13,
new Color(0.90f, 0.86f, 0.70f), new Color(0.90f, 0.86f, 0.70f),
TextAnchor.MiddleCenter); TextAnchor.MiddleCenter);
UiKit.Stretch(counts.rectTransform); UiKit.Stretch(counts.rectTransform);
counts.rectTransform.offsetMin = new Vector2(8f, 0f); counts.rectTransform.offsetMin = new Vector2(8f, 0f);
counts.rectTransform.offsetMax = new Vector2(-24f, 0f); counts.rectTransform.offsetMax = new Vector2(-8f, 0f);
_countTexts[item.PrintingId] = counts; _countTexts[item.PrintingId] = counts;
var gem = NeonUi.AddImage(
qty,
"Rarity",
NeonUi.Body(12, 12, 2, RarityColor(meta.Rarity), Color.white, 1),
new Vector2(12f, 12f),
new Vector2(84f, 0f));
gem.rectTransform.localRotation = Quaternion.Euler(0f, 0f, 45f);
} }
private static Color RarityColor(string rarity) => rarity switch
{
"C" => new Color(0.62f, 0.68f, 0.78f),
"R" => new Color(0.35f, 0.62f, 1f),
"RR" => new Color(0.72f, 0.45f, 1f),
"RRR" => new Color(1f, 0.78f, 0.32f),
"SP" => new Color(1f, 0.45f, 0.75f),
_ => new Color(0.5f, 0.55f, 0.65f),
};
private void RefreshCounts() private void RefreshCounts()
{ {
var triggerCap = TriggerCount() >= 16; var triggerCap = TriggerCount() >= 16;