Basic card cleanup

This commit is contained in:
gamer147
2026-05-25 16:55:57 -04:00
parent 016efeea2c
commit a33bfad3bc
3 changed files with 12 additions and 7 deletions

View File

@@ -15,9 +15,14 @@ public class CardRepository : BaseRepository<ShadowverseCardEntry>, ICardReposit
return cards; return cards;
} }
public async Task<List<ShadowverseCardEntry>> GetAllBasic() public async Task<List<ShadowverseCardEntry>> GetDefaultCards()
{ {
return await DbContext.Set<ShadowverseCardSetEntry>().Where(set => set.IsBasic).SelectMany(set => set.Cards) // The set of cards every viewer is treated as owning 3-of from the start: bronze,
// non-foil basics. Silver/gold basics and animated (foil) variants are earned
// through story rewards etc.
return await DbContext.Set<ShadowverseCardSetEntry>().Where(set => set.IsBasic)
.SelectMany(set => set.Cards)
.Where(card => card.Rarity == Enums.Rarity.Bronze && !card.IsFoil)
.ToListAsync(); .ToListAsync();
} }

View File

@@ -6,5 +6,5 @@ public interface ICardRepository
{ {
Task<List<ShadowverseCardEntry>> GetAll(bool onlyCollectible); Task<List<ShadowverseCardEntry>> GetAll(bool onlyCollectible);
Task<List<ShadowverseCardSetEntry>> GetCardSets(bool onlyInRotation); Task<List<ShadowverseCardSetEntry>> GetCardSets(bool onlyInRotation);
Task<List<ShadowverseCardEntry>> GetAllBasic(); Task<List<ShadowverseCardEntry>> GetDefaultCards();
} }

View File

@@ -113,12 +113,12 @@ public class LoadController : SVSimController
// * card_set_id=90000 (engine tokens, char_type=4): never collectible // * card_set_id=90000 (engine tokens, char_type=4): never collectible
// Both naturally fall out of "ownership-only" since the viewer can't own them; // Both naturally fall out of "ownership-only" since the viewer can't own them;
// re-confirm the filter if we later move to Option B and start iterating card-sets. // re-confirm the filter if we later move to Option B and start iterating card-sets.
var basicCards = await _cardRepository.GetAllBasic(); var defaultCards = await _cardRepository.GetDefaultCards();
var basicIds = basicCards.Select(c => c.Id).ToHashSet(); var defaultCardIds = defaultCards.Select(c => c.Id).ToHashSet();
var ownedCollectibles = viewer.Cards var ownedCollectibles = viewer.Cards
.Where(c => c.Count > 0 && !basicIds.Contains(c.Card.Id)); .Where(c => c.Count > 0 && !defaultCardIds.Contains(c.Card.Id));
var allCardsAsOwned = ownedCollectibles var allCardsAsOwned = ownedCollectibles
.Concat(basicCards.Select(bc => new OwnedCardEntry .Concat(defaultCards.Select(bc => new OwnedCardEntry
{ {
Card = bc, Card = bc,
Count = 3, Count = 3,