package magic.model.target; import magic.model.MagicSource; import magic.model.MagicPermanent; import magic.model.MagicPlayer; import magic.model.MagicSubType; import magic.model.MagicType; import java.util.EnumSet; import java.util.Set; public class MagicPlaneswalkerCopiesFilter extends MagicPermanentFilterImpl { private final Set<MagicSubType> pwTypes = EnumSet.noneOf(MagicSubType.class); public MagicPlaneswalkerCopiesFilter(final MagicPermanent permanent) { for (final MagicSubType st : MagicSubType.ALL_PLANESWALKERS) { if (permanent.hasSubType(st)) { pwTypes.add(st); } } } @Override public boolean accept(final MagicSource source,final MagicPlayer player,final MagicPermanent target) { if (target.hasType(MagicType.Planeswalker) == false) { return false; } if (target.isController(player) == false) { return false; } for (final MagicSubType st : pwTypes) { if (target.hasSubType(st)) { return true; } } return false; } }