public async Task <Card[]> GetAllTypeCards(Guid playerId, CardClassType type) { FilterDefinition <Player> playerFilter = Builders <Player> .Filter.Eq(player => player.Id, playerId); Player player = await _playerCollection.Find(playerFilter).FirstAsync(); if (player == null) { throw new NotFoundException(); } List <Card> cards = new List <Card>(); foreach (var deck in player.DecksOwned) { foreach (var card in deck.Cards_InDeck) { if (card.Class == type) { cards.Add(card); } } } return(cards.ToArray()); }
public async Task <Card> GetRarestTypeCard(Guid playerId, CardClassType type) { FilterDefinition <Player> playerFilter = Builders <Player> .Filter.Eq(player => player.Id, playerId); Player player = await _playerCollection.Find(playerFilter).FirstAsync(); if (player == null) { throw new NotFoundException(); } List <Card> cards = new List <Card>(); foreach (var deck in player.DecksOwned) { foreach (var card in deck.Cards_InDeck) { if (card.Class == type) { cards.Add(card); } } } var sorted = cards.OrderByDescending(c => c.Rarity); return(sorted.First()); }
public async Task <Deck> GetDeckWLeastOfClass(Guid playerId, CardClassType type) { FilterDefinition <Player> playerFilter = Builders <Player> .Filter.Eq(player => player.Id, playerId); Player player = await _playerCollection.Find(playerFilter).FirstAsync(); if (player == null) { throw new NotFoundException(); } var decks = player.DecksOwned; Deck deck = null; int current = 0; int result = 0; for (int i = 0; i < player.DecksOwned.Count; i++) { result = LoopDecksforType(decks[i], type); if (current == 0) { deck = decks[i]; current = result; } if (result < current) { deck = decks[i]; current = result; } } return(deck); }
// Loop method used to count the amount of x cards in current deck // public int LoopDecksforType(Deck deck, CardClassType type) { int amount = 0; for (int i = 0; i < deck.Cards_InDeck.Count; i++) { if (deck.Cards_InDeck[i].Class == type) { amount = amount + 1; } } return(amount); }
public Task <Deck> GetDeckWMostOfClass(Guid playerId, [FromBody] CardClassType type) { return(repository.GetDeckWMostOfClass(playerId, type)); }
public Task <Card> GetRarestTypeCard(Guid playerId, CardClassType type) { return(repository.GetRarestTypeCard(playerId, type)); }
public Task <Card[]> GetAllTypeCards(Guid playerId, CardClassType type) { return(repository.GetAllTypeCards(playerId, type)); }