Belot.BelotGame.NextDeal C# (CSharp) Method

NextDeal() private method

private NextDeal ( ) : void
return void
        private void NextDeal()
        {
            _southPlayer.Cards.Clear();
            _eastPlayer.Cards.Clear();
            _northPlayer.Cards.Clear();
            _westPlayer.Cards.Clear();

            _currentDeal = new Deal( this, _firstPlayer );

            _firstPlayer = GetNextPlayer( _firstPlayer );
            _deals.Add( _currentDeal );
            _currentDeal.DealFirstCards();

            Player winner = _currentDeal.EnterBiddingState();
            if( _currentDeal.CurrentAnnouncement.Type == AnnouncementTypeEnum.Pass )
            {
                _southPlayer.Cards.Clear();
                _eastPlayer.Cards.Clear();
                _northPlayer.Cards.Clear();
                _westPlayer.Cards.Clear();
                FinalizeDeal();
                return;
            }

            RaiseBiddingCompleted( winner, _currentDeal.CurrentAnnouncement );

            _currentDeal.DealRestCards();

            _southPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
            _northPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
            _eastPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
            _westPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );

            _currentDeal.EnterPlayingState();
        }