예제 #1
0
  @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();
        }
      }
    }
  }