public Card BuyCard() { if (cardPile.cardPile.FilterKey(card => card.star <= player.star).Count > 0) { Card tmpCard = cardPile.RandomlyGetBestCard(card => ( card.star <= player.star && !IsRecruitFieldEffect(card) && CheckDuplicate(card) && CheckTransform(-1, card.GetPositionTag())) ? GetFit(card) : -1); if (tmpCard != null) { return(tmpCard.NewCard()); } else { return(cardPile.RandomlyGetCardByFilterAndReduceIt(card => ( card.star <= player.star && !IsRecruitFieldEffect(card) && CheckDuplicate(card) && CheckTransform(-1, card.GetPositionTag()))).NewCard()); } } else { return(null); } }