コード例 #1
0
        private bool HeartsValidMove(int deck)
        {
            var          heartSave = (ITrickStatusSavedClass)SaveRoot !;
            var          thisList  = SaveRoot !.TrickList;
            var          thisCard  = _gameContainer.DeckList !.GetSpecificItem(deck);
            EnumSuitList cardSuit  = thisCard.GetSuit.GetRegularSuit();

            if (thisList.Count == 0)
            {
                if (heartSave.TrickStatus == EnumTrickStatus.FirstTrick)
                {
                    var tempCard = SingleInfo !.MainHandList.OrderBy(Items => Items.GetSuit).ThenBy(Items => Items.ReadMainValue).Take(1).Single();
                    if (tempCard.Deck == deck)
                    {
                        return(true);
                    }
                    return(false);
                }
                if (heartSave.TrickStatus == EnumTrickStatus.SuitBroken)
                {
                    return(true);
                }
                if (cardSuit == EnumSuitList.Hearts)
                {
                    return(!SingleInfo !.MainHandList.Any(Items => Items.GetSuit.GetRegularSuit() != EnumSuitList.Hearts));
                }
                return(true);
            }
            var leadCard = thisList.First();

            if (leadCard.GetSuit.Equals(thisCard.GetSuit))
            {
                return(true);
            }
            DeckObservableDict <T> tempList;

            if (_trickData !.HasDummy == true)
            {
                var temps = MainContainer.Resolve <ITrickDummyHand <SU, T> >(); //if you don't have it, then will raise an error.
                tempList = temps.GetCurrentHandList();
            }