/** * Returns if the ability is used to check which cards are playable on hand. * (Issue #457) * * @param ability - ability to check * @return */ public static boolean isCheckPlayableMode(Ability ability) { if (ability instanceof ActivatedAbility) { return ((ActivatedAbility) ability).isCheckPlayableMode(); } return false; }
int reduce = 0; if (abilityToModify.getAbilityType() == AbilityType.ACTIVATED && ((ActivatedAbility) abilityToModify).isCheckPlayableMode()) { reduce = reduceMax; } else {
if (upTo) { if (abilityToModify instanceof ActivatedAbility) { if (((ActivatedAbility) abilityToModify).isCheckPlayableMode()) { CardUtil.reduceCost(abilityToModify, this.amount); return true;
if (!(abilityToModify instanceof ActivatedAbility) || !((ActivatedAbility) abilityToModify).isCheckPlayableMode()) { ChoiceImpl choice = new ChoiceImpl(false); Set<String> set = new LinkedHashSet<>();
@Override public boolean apply(Game game, Ability source, Ability abilityToModify) { Player controller = game.getPlayer(abilityToModify.getControllerId()); if (controller != null) { if ((abilityToModify instanceof ActivatedAbility && ((ActivatedAbility) abilityToModify).isCheckPlayableMode()) || controller.chooseUse(Outcome.PlayForFree, "Pay {0} to cycle?", source, game)) { abilityToModify.getCosts().clear(); abilityToModify.getManaCostsToPay().clear(); abilityToModify.getCosts().add(new CyclingDiscardCost()); } return true; } return false; }
effect.setValue("targetAbility", targetAbility); if (effect.applies(event, sourceAbility, game)) { if (targetAbility instanceof ActivatedAbility && ((ActivatedAbility) targetAbility).isCheckPlayableMode()) { checkPlayableMode = true;