コード例 #1
0
ファイル: DecksController.cs プロジェクト: jbvera/web-api
        public async Task <CardDrawnResponse> Delete(string deckId, CardDrawRequest request)
        {
            int count = request.Count.HasValue ? request.Count.Value : 1;
            var deck  = await repository.DrawCardsAsync(deckId, count);

            var drawnCards = deck.Cards
                             .Where(c => c.Drawn)
                             .Reverse()
                             .Take(count)
                             .Reverse()
                             .Select(c => new CardInfo()
            {
                Code  = c.Code,
                Suit  = c.Suit,
                Value = c.Value
            })
                             .ToList();
            var response = new CardDrawnResponse()
            {
                DeckId    = deck.DeckId,
                Remaining = deck.Cards.Where(card => !card.Drawn).Count(),
                Removed   = drawnCards
            };

            return(response);
        }
コード例 #2
0
        internal void DrawCard(bool isFromDiscardFile)
        {
            isCardDrawn = true;
            CardDrawRequest request = new CardDrawRequest
            {
                user_id = int.Parse(GameVariables.userId),
                room_id = roomId,
                is_from_discard_pile = isFromDiscardFile,
            };

            SocketConnectionManager.GetInstance.SendSocketRequest(GameVariables.SocketRequestType.cardDraw, request);
        }
コード例 #3
0
        async public Task <CardDrawnResponse> Delete(string deckId, CardDrawRequest request)
        {
            int  drawCount = request.Count.HasValue ? request.Count.Value : 1;
            Deck deck      = await _repository.DrawCardsAsync(deckId, drawCount);

            List <CardInfo> cards = deck.Cards
                                    .Where(x => x.Drawn)
                                    .Reverse()
                                    .Take(drawCount)
                                    .Reverse()
                                    .Select(x => new CardInfo {
                Suit = x.Suit, Value = x.Value, Code = x.Code
            })
                                    .ToList();

            return(new CardDrawnResponse
            {
                DeckId = deckId,
                Remaining = deck.Cards.Where(x => !x.Drawn).Count(),
                Removed = cards,
            });
        }