private static String debuffStackDescription(AbilityFactory af, SpellAbility sa) {
        HashMap<String, String> params = af.getMapParams();
        Card host = af.getHostCard();
        ArrayList<String> kws = getKeywords(params);
        StringBuilder sb = new StringBuilder();

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

        if (tgtCards.size() > 0) {
            if (sa instanceof Ability_Sub)
                sb.append(" ");
            else
                sb.append(host).append(" - ");

            Iterator<Card> it = tgtCards.iterator();
            while (it.hasNext()) {
                Card tgtC = it.next();
                if (tgtC.isFaceDown()) sb.append("Morph");
                else sb.append(tgtC);

                if (it.hasNext()) sb.append(" ");
            }
            sb.append(" loses ");
            /*
               Iterator<String> kwit = kws.iterator();
               while(it.hasNext()) {
                   String kw = kwit.next();
                   sb.append(kw);
                   if(it.hasNext()) sb.append(" ");
               }*/
            sb.append(kws);
            if (!params.containsKey("Permanent")) {
                sb.append(" until end of turn");
            }
            sb.append(".");
        }

        Ability_Sub abSub = sa.getSubAbility();
        if (abSub != null) {
            sb.append(abSub.getStackDescription());
        }

        return sb.toString();
    }