private void aiSearchTwoLand(String type, String Zone1, boolean tapFirstLand,
                                 String Zone2, boolean tapSecondLand) {
        CardList land = AllZoneUtil.getPlayerCardsInLibrary(AllZone.getComputerPlayer());
        land = land.getType(type);
        PlayerZone firstZone = AllZone.getZone(Zone1, AllZone.getComputerPlayer());

        if (type.contains("Basic")) {
            // No need for special sorting for basic land
            // just shuffle to make the computer a little less predictable
            land.shuffle();
        } else {
            Comparator<Card> aiLandComparator = new Comparator<Card>() {
                private int scoreLand(Card a) {
                    String valakutName = "Valakut, the Molten Pinnacle";

                    int theScore = 0;
                    if (!a.isBasicLand()) {
                        // favor non-basic land
                        theScore++;
                        if (a.getName().contains(valakutName)) {
                            // TODO: Add names of other special lands
                            theScore++;
                        }
                    }
                    return theScore;
                }

                public int compare(Card a, Card b) {
                    int aScore = scoreLand(a);
                    int bScore = scoreLand(b);
                    return bScore - aScore;
                } // compare
            };//Comparator

            // Prioritize the land somewhat
            land.sort(aiLandComparator);
        }
        //3 branches: 1-no land in deck, 2-one land in deck, 3-two or more land in deck
        if (land.size() != 0) {
            //branch 2 - at least 1 land in library
            Card firstLand = land.remove(0);
            if (tapFirstLand)
                firstLand.tap();

            AllZone.getGameAction().moveTo(firstZone, firstLand);

            //branch 3
            if (Zone2.trim().length() != 0 && (land.size() != 0)) {
                PlayerZone secondZone = AllZone.getZone(Zone2, AllZone.getComputerPlayer());
                Card secondLand = land.remove(0);
                if (tapSecondLand)
                    secondLand.tap();
                AllZone.getGameAction().moveTo(secondZone, secondLand);
            }
        }
    }