private void humanSearchTwoLand(String type, String Zone1, boolean tapFirstLand, String Zone2, boolean tapSecondLand) {
        PlayerZone firstZone = AllZone.getZone(Zone1, AllZone.getHumanPlayer());

        CardList list = AllZoneUtil.getPlayerCardsInLibrary(AllZone.getHumanPlayer());
        list = list.getType(type);

        //3 branches: 1-no land in deck, 2-one land in deck, 3-two or more land in deck

        //branch 1
        if (list.size() == 0) return;

        // Check whether we were only asked for one land, and adjust the prompt accordingly
        boolean onlyOneLand = (Zone2.trim().length() == 0);
        String firstPrompt;
        if (onlyOneLand)
            firstPrompt = "Choose a land";
        else
            firstPrompt = "Choose first land";

        //branch 2
        Object o = GuiUtils.getChoiceOptional(firstPrompt, list.toArray());
        if (o != null) {
            Card c = (Card) o;
            list.remove(c);
            if (tapFirstLand)
                c.tap();
            moveTo(firstZone, c);
        }//if
        if ((list.size() == 0) || onlyOneLand) return;
        //branch 3
        o = GuiUtils.getChoiceOptional(ForgeProps.getLocalized(GAMEACTION_TEXT.CHOOSE_2ND_LAND), list.toArray());
        if (o != null) {
            PlayerZone secondZone = AllZone.getZone(Zone2, AllZone.getHumanPlayer());

            Card c = (Card) o;
            list.remove(c);
            if (tapSecondLand)
                c.tap();
            moveTo(secondZone, c);
        }
    }