@Override public void resolve(SpellAbility sa) { CardCollectionView tgtCards; final Game game = sa.getActivatingPlayer().getGame(); final Card source = sa.getHostCard(); final boolean phaseInOrOut = sa.hasParam("PhaseInOrOutAll"); if (sa.hasParam("AllValid")) { if (phaseInOrOut) { tgtCards = game.getCardsIncludePhasingIn(ZoneType.Battlefield); } else { tgtCards = game.getCardsIn(ZoneType.Battlefield); } tgtCards = AbilityUtils.filterListByType(tgtCards, sa.getParam("AllValid"), sa); } else if (sa.hasParam("Defined")) { tgtCards = AbilityUtils.getDefinedCards(source, sa.getParam("Defined"), sa); } else { tgtCards = getTargetCards(sa); } if (phaseInOrOut) { // Time and Tide for (final Card tgtC : tgtCards) { tgtC.phase(); } } else { // just phase out for (final Card tgtC : tgtCards) { if (!tgtC.isPhasedOut()) { tgtC.phase(); } } } }