private EGameActionFailure Is_Card_Discardable( ECardColor color, ECardValue value )
        {
            CPlayerHand local_hand = Match.GameState.Get_Player_Hand( CClientLogicalThread.Instance.ConnectedID );
            if ( !local_hand.Contains_Card( color, value ) )
            {
                return EGameActionFailure.Card_Is_Not_In_Your_Hand;
            }

            return EGameActionFailure.None;
        }
        private EGameActionFailure Are_Cards_Passable( ECardColor color1, ECardValue value1, ECardColor color2, ECardValue value2 )
        {
            CPlayerHand local_hand = Match.GameState.Get_Player_Hand( CClientLogicalThread.Instance.ConnectedID );
            if ( !local_hand.Contains_Card( color1, value1 ) || !local_hand.Contains_Card( color2, value2 ) )
            {
                return EGameActionFailure.Card_Is_Not_In_Your_Hand;
            }

            if ( local_hand.Count < 8 )
            {
                return EGameActionFailure.Not_Enough_Cards_In_Hand_To_Pass;
            }

            return EGameActionFailure.None;
        }
예제 #3
0
파일: Card.cs 프로젝트: NeoTim/TYPoker
 public Card(ESuit newSuit, ECardValue newCardValue)
 {
     m_eSuit      = newSuit;
     m_eCardValue = newCardValue;
 }
 public CPlayerHandDelta( EPersistenceID player_id, ECardDelta delta_type, ECardColor color, ECardValue card_value )
 {
     PlayerID = player_id;
     DeltaType = delta_type;
     Color = color;
     CardValue = card_value;
 }
        // Private Interface
        private void Remove_Card( ECardColor color, ECardValue card_value )
        {
            if ( color != ECardColor.Invalid && card_value != ECardValue.Invalid )
            {
                m_Cards.RemoveAt( m_Cards.FindIndex( n => n.Color == color && n.Value == card_value ) );
            }

            m_Count--;
        }
 public bool Contains_Card( ECardColor color, ECardValue value )
 {
     return Cards.FirstOrDefault( card => card.Color == color && card.Value == value ) != null;
 }
예제 #7
0
 private static int EvaluateScore(ECardValue cardValue) =>
 cardValue switch
 {
예제 #8
0
 public void Append(ECardValue cardValue)
 => _rawScore += EvaluateScore(cardValue);
예제 #9
0
 public CardValue(int value)
 {
     Value = (ECardValue)value;
 }
 public CCardCollectionDelta( EGameSide side, ECardColor color, ECardValue value )
 {
     Side = side;
     Color = color;
     Value = value;
 }
        private EGameActionFailure Is_Card_Playable( ECardColor color, ECardValue value )
        {
            CPlayerHand local_hand = Match.GameState.Get_Player_Hand( CClientLogicalThread.Instance.ConnectedID );
            if ( !local_hand.Contains_Card( color, value ) )
            {
                return EGameActionFailure.Card_Is_Not_In_Your_Hand;
            }

            CCardCollection local_collection = Match.GameState.Get_Card_Collection( Get_Local_Side(), color );
            int local_collection_top_value = local_collection.Get_Top_Card_Score_Value();
            if ( CCardUtils.Get_Card_Score_Value( value ) <= local_collection_top_value && local_collection_top_value != 0 )
            {
                return EGameActionFailure.A_Higher_Card_Already_Exists;
            }

            return EGameActionFailure.None;
        }
 public CDiscardPileDelta( ECardDelta delta_type, ECardColor color, ECardValue value )
 {
     DeltaType = delta_type;
     Color = color;
     Value = value;
 }