Example #1
0
        public void NewGame()
        {
            GameOver        = false;
            Round           = 1;
            TurnIndex       = 0;
            LeadingPlayerId = 0;

            // Generate deck
            var deck     = Card.GeneratePile(_rng, Settings.NumDecks);
            int handSize = RoundCount;

            Console.WriteLine("==== NEW GAME ====\n");

            // Set up players and deal cards
            foreach (var player in _players)
            {
                player.Reset();
                player.AddToHand(deck.GetRange(handSize * player.Id, handSize));
                // Print hand
                Console.Write($"{player} <- ");
                player.PrintHand(-1);
                Console.Write("\n\n");
            }

            var state = CreateGameStateMessage();

            foreach (var player in _players)
            {
                player.SendClientInfo();
            }

            Server.SendAll(state);

            OnRoundStart();
            if (Server.ConnectedPlayerCount > 0 || Settings.AutoPlayFirstMove)
            {
                PromptCurrentPlayer();
            }
        }