Пример #1
0
    public bool CanDiscard(ECard card)
    {
        if (CardStolen.Find(c => c.Id == card.CardId) != null)
        {
            return(false);
        }

        List <CardLib.Model.Card> cardHand = CardHand;

        cardHand.Remove(CardHand.Find(c => c.Id == card.CardId));
        try
        {
            PhomLib.Models.MeldsAndRemainingCards summary = PhomLib.Utility.PhomLogicCenter.caculateExistingMelds(cardHand, CardStolen);
            foreach (CardLib.Model.Card c in CardStolen)
            {
                if (summary == null)
                {
                    return(false);
                }
                else if (summary.RemainingCards.Find(c1 => c1 != null && c1.Id == c.Id) != null)
                {
                    return(false);
                }
            }
            return(true);
        }
        catch { return(false); }
    }