private static boolean debuffAllCanPlayAI(final AbilityFactory af, SpellAbility sa) {
        String valid = "";
        Random r = MyRandom.random;
        final Card source = sa.getSourceCard();
        Card hostCard = af.getHostCard();
        HashMap<String, String> params = af.getMapParams();

        boolean chance = r.nextFloat() <= Math.pow(.6667, source.getAbilityUsed()); //to prevent runaway activations

        if (params.containsKey("ValidCards")) {
            valid = params.get("ValidCards");
        }

        CardList comp = AllZoneUtil.getPlayerCardsInPlay(AllZone.getComputerPlayer());
        comp = comp.getValidCards(valid, hostCard.getController(), hostCard);
        CardList human = AllZoneUtil.getPlayerCardsInPlay(AllZone.getHumanPlayer());
        human = human.getValidCards(valid, hostCard.getController(), hostCard);

        //TODO - add blocking situations here also

        //only count creatures that can attack
        human = human.filter(new CardListFilter() {
            public boolean addCard(Card c) {
                return CombatUtil.canAttack(c);
            }
        });

        //don't use DebuffAll after Combat_Begin until AI is improved
        if (AllZone.getPhase().isAfter(Constant.Phase.Combat_Begin))
            return false;

        if (comp.size() > human.size())
            return false;

        return (r.nextFloat() < .6667) && chance;
    }//debuffAllCanPlayAI()