private static void regenerateResolve(final AbilityFactory af, final SpellAbility sa) {
        Card hostCard = af.getHostCard();
        final HashMap<String, String> params = af.getMapParams();

        ArrayList<Card> tgtCards;
        Target tgt = af.getAbTgt();
        if (tgt != null)
            tgtCards = tgt.getTargetCards();
        else
            tgtCards = AbilityFactory.getDefinedCards(hostCard, params.get("Defined"), sa);

        for (final Card tgtC : tgtCards) {
            final Command untilEOT = new Command() {
                private static final long serialVersionUID = 1922050611313909200L;

                public void execute() {
                    tgtC.resetShield();
                }
            };

            if (AllZoneUtil.isCardInPlay(tgtC) && (tgt == null || CardFactoryUtil.canTarget(hostCard, tgtC))) {
                tgtC.addShield();
                AllZone.getEndOfTurn().addUntil(untilEOT);
            }
        }
    }//regenerateResolve