Exemplo n.º 1
0
  public static void destroyResolve(final AbilityFactory af, final SpellAbility sa) {
    HashMap<String, String> params = af.getMapParams();
    String DrawBack = params.get("SubAbility");
    final boolean noRegen = params.containsKey("NoRegen");
    Card card = sa.getSourceCard();

    if (!AbilityFactory.checkConditional(params, sa)) {
      AbilityFactory.resolveSubAbility(sa);
      return;
    }

    ArrayList<Card> tgtCards;

    Target tgt = af.getAbTgt();
    if (tgt != null) tgtCards = tgt.getTargetCards();
    else {
      tgtCards =
          AbilityFactory.getDefinedCards(sa.getSourceCard(), af.getMapParams().get("Defined"), sa);
    }

    for (Card tgtC : tgtCards) {
      if (AllZoneUtil.isCardInPlay(tgtC)
          && (tgt == null || CardFactoryUtil.canTarget(card, tgtC))) {
        if (noRegen) AllZone.GameAction.destroyNoRegeneration(tgtC);
        else AllZone.GameAction.destroy(tgtC);
      }
    }

    if (af.hasSubAbility()) {
      Ability_Sub abSub = sa.getSubAbility();
      if (abSub != null) {
        abSub.resolve();
      } else
        CardFactoryUtil.doDrawBack(
            DrawBack,
            0,
            card.getController(),
            card.getController().getOpponent(),
            card.getController(),
            card,
            tgtCards.get(0),
            sa);
    }
  }