private CardList getCurseCreatures(SpellAbility sa, final int defense, int attack) {
        CardList list = AllZoneUtil.getCreaturesInPlay(AllZone.getHumanPlayer());
        list = list.filter(AllZoneUtil.getCanTargetFilter(hostCard));

        if (defense < 0 && !list.isEmpty()) { // with spells that give -X/-X, compi will try to destroy a creature
            list = list.filter(new CardListFilter() {
                public boolean addCard(Card c) {
                    if (c.getNetDefense() <= -defense) return true; // can kill indestructible creatures
                    return (c.getKillDamage() <= -defense && !c.hasKeyword("Indestructible"));
                }
            }); // leaves all creatures that will be destroyed
        } // -X/-X end
        else if (!list.isEmpty()) {
            String KWpump[] = {"none"};
            if (!Keywords.get(0).equals("none"))
                KWpump = Keywords.toArray(new String[Keywords.size()]);
            final String KWs[] = KWpump;
            final boolean addsKeywords = Keywords.size() > 0;

            if (addsKeywords) {
                list = list.filter(new CardListFilter() {
                    public boolean addCard(Card c) {
                        return !c.hasAnyKeyword(KWs);    // don't add duplicate negative keywords
                    }
                });
            }
        }


        return list;
    }//getCurseCreatures()