public override ICardTarget CheckTarget(ICardTarget cardTarget) { if (cardTarget.CardTargetType != CARDTARGETTYPE.UNIT || cardTarget.CardTargetType != CARDTARGETTYPE.BASENEXO || cardTarget.CardTargetType != CARDTARGETTYPE.BOARDOBJECT) { return null; } IOcuppy occupier = cardTarget.GetOcuppy(); if (occupier == null) return null; rDToCheck.SetOcuppier(occupier); rDToCheckAgainst.SetOcuppier(occupier); ResultDataValidator validator = new ResultDataValidator(comparationType, rDToCheck, rDToCheckAgainst); if (validator.IsValid() == false ) return null; return base.CheckTarget(cardTarget); }
public override ICardTarget CheckTarget(ICardTarget cardTarget) { cardTarget = base.CheckTarget(cardTarget); if (cardTarget == null) { return(null); } Player player = (Player)cardTarget; switch (cardState) { case CARDSTATES.DECK: cardDataToCheck = new SimpleIResultData(player.Deck.Count); break; case CARDSTATES.HAND: cardDataToCheck = new SimpleIResultData(player.PlayersHands.Count); break; case CARDSTATES.CEMENTERY: cardDataToCheck = new SimpleIResultData(player.Graveyard.Count); break; case CARDSTATES.WAITFORUSE: cardDataToCheck = new SimpleIResultData(0); break; case CARDSTATES.WAITFORUSEWITHTARGET: cardDataToCheck = new SimpleIResultData(0); break; default: cardDataToCheck = new SimpleIResultData(0); break; } ResultDataValidator validator = new ResultDataValidator(comparationType, cardDataToCheck, rdToCheckAgainst); if (validator.IsValid() == false) { return(null); } return(cardTarget); }