Ejemplo n.º 1
0
        public bool CanMoveCardToStack(Card card, CardStack stack)
        {
            if (stack.Count == 0)
            {
                return(true);
            }

            Card topCard = stack.GetLastCard();

            if (card.Value == topCard.Value - 1)
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 2
0
        public void FixupCardHighlights()
        {
            if (_cardsInAction != null && _currentAction != CardAction.None)
            {
                for (int i = 0; i < Board.StackCount; i++)
                {
                    CardStack stack = _board.GetStack(i);
                    foreach (Card card in stack.GetCards())
                    {
                        card.View.Highlighted = false;
                    }
                    foreach (Card cardInAction in _cardsInAction)
                    {
                        if (_board.CanMoveCardToStack(cardInAction, stack))
                        {
                            if (stack.Count > 0)
                            {
                                stack.GetLastCard().View.Highlighted = true;
                            }
                            break;
                        }
                    }
                }
            }
            else
            {
                for (int i = 0; i < Board.StackCount; i++)
                {
                    CardStack stack = _board.GetStack(i);
                    foreach (Card card in stack.GetCards())
                    {
                        card.View.Highlighted = true;
                    }
                }
            }

            // For now, ensure that all completed cards are highlighted
            for (int i = 0; i < _board.CompletedCount(); i++)
            {
                Card completedCard = _board.GetCompletedStack(i);
                completedCard.View.Highlighted = true;
            }
        }