private SpellAbility[] getMain2() {
        //Card list of all cards to consider
        CardList all = AllZoneUtil.getPlayerHand(AllZone.getComputerPlayer());
        //Don't play permanents with Flash before humans declare attackers step
        all = all.filter(new CardListFilter() {
            public boolean addCard(Card c) {
                if (c.isPermanent()
                        && c.hasKeyword("Flash")
                        && (AllZone.getPhase().isPlayerTurn(AllZone.getComputerPlayer())
                        || AllZone.getPhase().isBefore(Constant.Phase.Combat_Declare_Attackers_InstantAbility)))
                    return false;
                return true;
            }
        });
        all.addAll(AllZoneUtil.getPlayerCardsInPlay(AllZone.getComputerPlayer()));
        all.addAll(CardFactoryUtil.getExternalZoneActivationCards(AllZone.getComputerPlayer()));

        // Prevent the computer from summoning Ball Lightning type creatures during main phase 2
        all = all.getNotKeyword("At the beginning of the end step, sacrifice CARDNAME.");

        all = all.filter(new CardListFilter() {
            public boolean addCard(Card c) {
                if (c.isLand()) return false;
                return true;
            }
        });

        CardList humanPlayable = AllZoneUtil.getPlayerCardsInPlay(AllZone.getHumanPlayer());
        humanPlayable = humanPlayable.filter(new CardListFilter() {
            public boolean addCard(Card c) {
                return (c.canAnyPlayerActivate());
            }
        });
        all.addAll(humanPlayable);

        return getPlayable(all);
    }//getMain2()