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); }
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; } }