/// <summary> /// Получает карту из стека карт /// </summary> /// <returns></returns> public Card GetCard() { if (QCard.Count == 0) { string cardFromServer = host.GetRandomCard(); List <Card> newParametrs = JsonConvert.DeserializeObject <List <Card> >(cardFromServer); if (newParametrs.Count == 0) { return(null); } foreach (var item in newParametrs) { if (QCard.Count == MaxCard) { break; } QCard.Enqueue(item); } } var returnVal = QCard.Dequeue(); playCards.Add(returnVal); CountCard++; return(returnVal); }
/// <summary> /// Получает карту из стека карт /// </summary> /// <returns></returns> private List <Card> GetCard() { if (Status != CurrentAction.GetPlayerCard && Status != CurrentAction.GetAICard) { log.Error("Нельзя получить карты при текущем статусе"); return(null); } List <Card> serverCards = new List <Card>(); if (QCard.Count < MaxCard) { string cardFromServer = host.GetRandomCard(); serverCards = JsonConvert.DeserializeObject <List <Card> >(cardFromServer); if (serverCards.Count == 0) { return(null); } foreach (var item in serverCards) { QCard.Enqueue(item); } } List <Card> returnVal = new List <Card>(); int playerCountCard = 0; //если хоти смухлевать с картами для игрока if (specialHand.Count > 0) { foreach (var item in specialHand) { if (playerCountCard == MaxCard) { break; } var newCard = serverCards.FirstOrDefault(x => x.id == item); if (newCard != null) { newCard.description = ParseDescription.Parse(newCard.description); returnVal.Add(newCard); playerCountCard++; } } players[currentPlayer].Cards.AddRange(returnVal); specialHand = new List <int>(); return(returnVal); } if (players[currentPlayer].Cards != null) { playerCountCard = players[currentPlayer].Cards.Count; } while (playerCountCard < MaxCard) { if (QCard.Count == 0) { break; } var newCard = QCard.Dequeue(); newCard.description = ParseDescription.Parse(newCard.description); returnVal.Add(newCard); playerCountCard++; } players[currentPlayer].Cards.AddRange(returnVal); return(returnVal); }