Belot.Deal.PlayerHasTurn C# (CSharp) Метод

PlayerHasTurn() приватный Метод

private PlayerHasTurn ( Player player ) : void
player Player
Результат void
        private void PlayerHasTurn( Player player )
        {
            #region Announce combinations on first hand

            if( _playingManager.IsFirstHand && _currentAnnouncement.Type != AnnouncementTypeEnum.NoTrumps )
            {
                CombinationFinder finder = new CombinationFinder( player.Cards );
                foreach( CardCombination combination in finder.Combinations )
                {
                    bool isValidCombination = false;

                    if( combination is SequentialCombination )
                    {
                        Player biggest = FindBiggestSequentialCombinationHolder();
                        CardCombination biggestCombination = null;

                        foreach( DictionaryEntry de in _mapSequentialCombinationToPlayer )
                        {
                            if( biggest == de.Value as Player )
                            {
                                biggestCombination = de.Key as CardCombination;
                                break;
                            }
                        }

                        if( (biggest == null) ||
                            (combination.Points >= biggestCombination.Points) ||
                            (player.Position == biggest.Position || player.Position == _game.GetTeamPlayer( biggest ).Position) )
                        {
                            isValidCombination = true;
                        }
                    }
                    else
                    {
                        isValidCombination = true;
                    }

                    if( isValidCombination && player.AnnounceCombination( combination ) )
                    {
                        if( combination is SequentialCombination )
                        {
                            _mapSequentialCombinationToPlayer.Add( combination, player );
                        }
                        if( combination is FourEqualsCombination )
                        {
                            _mapEqualCombinationToPlayer.Add( combination, player );
                        }
                    }
                }
            }

            #endregion

            foreach( Card card in player.Cards )
            {
                card.IsSelectable = _playingManager.IsValid( player, card );
            }

            player.PlayCard( _playingManager );
        }