public override bool CanAddCard(int pile, SolitaireCard thisCard) { if (GlobalClass.MainModel !.DeckPile !.IsEndOfDeck() && pile > 1) { return(base.CanAddCard(pile, thisCard)); } if (GlobalClass.MainModel !.DeckPile.IsEndOfDeck()) { return(CanBuildFromKing(pile, thisCard)); } if (GlobalClass.MainModel !.WastePiles1 !.OneSelected() == -1) { throw new BasicBlankException($"No card selected for placing to {pile}"); } if (GlobalClass.MainModel !.WastePiles1.OneSelected() <= 3) { if (pile > 1) { return(base.CanAddCard(pile, thisCard)); } return(CanBuildFromKing(pile, thisCard)); } int oldPile = GlobalClass.MainModel !.WastePiles1.OneSelected() - 4; if (oldPile != pile) { return(false); } if (pile > 1) { return(base.CanAddCard(pile, thisCard)); } return(CanBuildFromKing(pile, thisCard)); }