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