private static boolean debuffTgtAI(AbilityFactory af, SpellAbility sa, ArrayList<String> kws, boolean mandatory) {
        //this would be for evasive things like Flying, Unblockable, etc
        if (!mandatory && AllZone.getPhase().isAfter(Constant.Phase.Combat_Declare_Blockers_InstantAbility))
            return false;

        Target tgt = af.getAbTgt();
        tgt.resetTargets();
        CardList list = getCurseCreatures(af, sa, kws);
        list = list.getValidCards(tgt.getValidTgts(), sa.getActivatingPlayer(), sa.getSourceCard());

        //several uses here:
        //1. make human creatures lose evasion when they are attacking
        //2. make human creatures lose Flying/Horsemanship/Shadow/etc. when Comp is attacking
        //3. remove Indestructible keyword so it can be destroyed?
        //3a. remove Persist?

        if (list.isEmpty())
            return mandatory && debuffMandatoryTarget(af, sa, mandatory);

        while (tgt.getNumTargeted() < tgt.getMaxTargets(sa.getSourceCard(), sa)) {
            Card t = null;
            //boolean goodt = false;

            if (list.isEmpty()) {
                if (tgt.getNumTargeted() < tgt.getMinTargets(sa.getSourceCard(), sa) || tgt.getNumTargeted() == 0) {
                    if (mandatory)
                        return debuffMandatoryTarget(af, sa, mandatory);

                    tgt.resetTargets();
                    return false;
                } else {
                    // TODO is this good enough? for up to amounts?
                    break;
                }
            }

            t = CardFactoryUtil.AI_getBestCreature(list);
            tgt.addTarget(t);
            list.remove(t);
        }

        return true;
    }//pumpTgtAI()