...
This commit is contained in:
@@ -83,7 +83,7 @@
|
||||
{
|
||||
var count = CountInDeck(card.Name);
|
||||
var maxed = count >= 3;
|
||||
<div class="browser-card @(count > 0 ? "in-deck" : "") @(maxed ? "maxed" : "")"
|
||||
<div @key="card.Name" class="browser-card @(count > 0 ? "in-deck" : "") @(maxed ? "maxed" : "")"
|
||||
@onclick="() => AddCard(card)"
|
||||
title="@(count > 0 ? $"{card.Name} ({count}/3)" : card.Name)">
|
||||
<div class="browser-card-img">
|
||||
@@ -314,7 +314,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
private int CountInDeck(string name) => deckCards.Count(c => c == name);
|
||||
private Dictionary<string, int> _deckCounts = new();
|
||||
|
||||
private void RebuildDeckCounts() =>
|
||||
_deckCounts = deckCards.GroupBy(n => n).ToDictionary(g => g.Key, g => g.Count());
|
||||
|
||||
private int CountInDeck(string name) =>
|
||||
_deckCounts.TryGetValue(name, out var c) ? c : 0;
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
@@ -339,23 +345,27 @@
|
||||
deckNotes = deck.Notes ?? "";
|
||||
deckCards = new List<string>(deck.Cards);
|
||||
divers = new List<string>(deck.Divers);
|
||||
RebuildDeckCounts();
|
||||
}
|
||||
|
||||
private void AddCard(CardData card)
|
||||
{
|
||||
if (CountInDeck(card.Name) >= 3) return;
|
||||
deckCards.Add(card.Name);
|
||||
RebuildDeckCounts();
|
||||
}
|
||||
|
||||
private void RemoveCard(string name)
|
||||
{
|
||||
var idx = deckCards.LastIndexOf(name);
|
||||
if (idx >= 0) deckCards.RemoveAt(idx);
|
||||
RebuildDeckCounts();
|
||||
}
|
||||
|
||||
private void ClearDeck()
|
||||
{
|
||||
deckCards.Clear();
|
||||
RebuildDeckCounts();
|
||||
}
|
||||
|
||||
private void OpenDiverPicker(int slot)
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
background: var(--bg-surface);
|
||||
border: 2px solid transparent;
|
||||
transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
|
||||
aspect-ratio: 5 / 8;
|
||||
height: 210px;
|
||||
}
|
||||
|
||||
.browser-card:hover {
|
||||
@@ -289,7 +289,7 @@
|
||||
.browser-card-img {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-bottom: 140%;
|
||||
height: calc(100% - 26px);
|
||||
overflow: hidden;
|
||||
background: #0e0e22;
|
||||
}
|
||||
@@ -340,13 +340,15 @@
|
||||
.browser-card-name {
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
padding: 0.3rem 0.45rem;
|
||||
padding: 0 0.45rem;
|
||||
background: var(--bg-elevated);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
color: var(--text-primary);
|
||||
letter-spacing: 0.01em;
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
/* ── Deck Panel ── */
|
||||
|
||||
Reference in New Issue
Block a user