public virtual bool CanPayFor(ICardEffect cardEffect) { if (cardEffect == null) { throw new ArgumentNullException("cardEffect"); } //var costlyEffect = cardEffect as ICostlyEffect; //if (costlyEffect != null) //{ //} if (Card.HasEffect <IDuringCheckForResourceMatch>()) { var check = new CheckForResourceMatch(Game, cardEffect); foreach (var checkEffect in Card.Text.Effects.OfType <IDuringCheckForResourceMatch>()) { checkEffect.DuringCheckForResourceMatch(check); } return(check.IsResourceMatch); } return(false); }
public virtual bool CanPayFor(ICostlyCard costlyCard) { if (costlyCard == null) { throw new ArgumentNullException("costlyCard"); } //var cost = costlyCard.GetResourceCost(Game); //if (cost == null && Card.PrintedCardType == CardType.Hero) // return true; if (Card.HasEffect <IDuringCheckForResourceMatch>()) { var check = new CheckForResourceMatch(Game, costlyCard); foreach (var checkEffect in Card.Text.Effects.OfType <IDuringCheckForResourceMatch>()) { checkEffect.DuringCheckForResourceMatch(check); } return(check.IsResourceMatch); } return(false); }