// Deal XX cards to all players public void DealPlayers(int cards, enumStartHand?resetCards = enumStartHand.DoNothing) { if (resetCards == enumStartHand.ClearAllPlayersCardsFirst) { LinkPlayers.ClearPlayersHands(); } for (int i = 0; i < cards; i++) { LinkPlayers.All.ForEach(s => s.AddCard(this.DealOne())); } }
// Reshuffle discards into the deck public void RecycleDiscarded() { onDeckChange?.Invoke(enumOnDeckChange.BeforeRecyclingDeck, this); // Trigger event _cards = GenerateDeck(); // Generate a new deck. List <Card> playersHave = LinkPlayers.AllPlayerCards(); // Get all the players cards. // Remove them from the newly created deck. playersHave.ForEach(s => { _cards.Remove( _cards.Where(c => c.ToString() == s.ToString()).First() ); }); ShuffleDeck(); onDeckChange?.Invoke(enumOnDeckChange.AfterRecyclingDeck, this); // Trigger event }