From a33bfad3bcf6df21a7200e359fb401e56b1285d2 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Mon, 25 May 2026 16:55:57 -0400 Subject: [PATCH] Basic card cleanup --- SVSim.Database/Repositories/Card/CardRepository.cs | 9 +++++++-- SVSim.Database/Repositories/Card/ICardRepository.cs | 2 +- SVSim.EmulatedEntrypoint/Controllers/LoadController.cs | 8 ++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/SVSim.Database/Repositories/Card/CardRepository.cs b/SVSim.Database/Repositories/Card/CardRepository.cs index 69b38c3..a4c6509 100644 --- a/SVSim.Database/Repositories/Card/CardRepository.cs +++ b/SVSim.Database/Repositories/Card/CardRepository.cs @@ -15,9 +15,14 @@ public class CardRepository : BaseRepository, ICardReposit return cards; } - public async Task> GetAllBasic() + public async Task> GetDefaultCards() { - return await DbContext.Set().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().Where(set => set.IsBasic) + .SelectMany(set => set.Cards) + .Where(card => card.Rarity == Enums.Rarity.Bronze && !card.IsFoil) .ToListAsync(); } diff --git a/SVSim.Database/Repositories/Card/ICardRepository.cs b/SVSim.Database/Repositories/Card/ICardRepository.cs index c95db62..da4c29e 100644 --- a/SVSim.Database/Repositories/Card/ICardRepository.cs +++ b/SVSim.Database/Repositories/Card/ICardRepository.cs @@ -6,5 +6,5 @@ public interface ICardRepository { Task> GetAll(bool onlyCollectible); Task> GetCardSets(bool onlyInRotation); - Task> GetAllBasic(); + Task> GetDefaultCards(); } \ No newline at end of file diff --git a/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs b/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs index 649adfc..a662458 100644 --- a/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs +++ b/SVSim.EmulatedEntrypoint/Controllers/LoadController.cs @@ -113,12 +113,12 @@ public class LoadController : SVSimController // * 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; // re-confirm the filter if we later move to Option B and start iterating card-sets. - var basicCards = await _cardRepository.GetAllBasic(); - var basicIds = basicCards.Select(c => c.Id).ToHashSet(); + var defaultCards = await _cardRepository.GetDefaultCards(); + var defaultCardIds = defaultCards.Select(c => c.Id).ToHashSet(); 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 - .Concat(basicCards.Select(bc => new OwnedCardEntry + .Concat(defaultCards.Select(bc => new OwnedCardEntry { Card = bc, Count = 3,