private static boolean tapOrUntapCanPlayAI(final AbilityFactory af, SpellAbility sa) {
        // AI cannot use this properly until he can use SAs during Humans turn
        if (!ComputerUtil.canPayCost(sa))
            return false;

        HashMap<String, String> params = af.getMapParams();
        Target tgt = af.getAbTgt();
        Card source = sa.getSourceCard();

        Random r = MyRandom.random;
        boolean randomReturn = r.nextFloat() <= Math.pow(.6667, source.getAbilityUsed());

        if (tgt == null) {
            //assume we are looking to tap human's stuff
            //TODO - check for things with untap abilities, and don't tap those.
            ArrayList<Card> defined = AbilityFactory.getDefinedCards(source, params.get("Defined"), sa);

            boolean bFlag = false;
            for (Card c : defined)
                bFlag |= c.isUntapped();

            if (!bFlag)    // All of the defined stuff is tapped, not very useful
                return false;
        } else {
            tgt.resetTargets();
            if (!tapPrefTargeting(source, tgt, af, sa, false))
                return false;
        }

        Ability_Sub subAb = sa.getSubAbility();
        if (subAb != null)
            randomReturn &= subAb.chkAI_Drawback();

        return randomReturn;
    }