private SpellAbility[] getPlayable(CardList l) {
        ArrayList<SpellAbility> spellAbility = new ArrayList<SpellAbility>();
        for (Card c : l)
            for (SpellAbility sa : c.getSpellAbility())
                // if SA is from AF_Counter don't add to getPlayable
                //This try/catch should fix the "computer is thinking" bug
                try {
                    sa.setActivatingPlayer(AllZone.getComputerPlayer());
                    if (ComputerUtil.canBePlayedAndPayedByAI(sa)) {
                        spellAbility.add(sa);
                    }
                } catch (Exception ex) {
                    showError(ex, "There is an error in the card code for %s:%n", c.getName(), ex.getMessage());
                }
        return spellAbility.toArray(new SpellAbility[spellAbility.size()]);
    }