public static Input input_sacrificePermanentsFromList(final int nCards, final CardList list, final String message) {
        Input target = new Input() {
            private static final long serialVersionUID = 1981791992623774490L;
            int n = 0;

            @Override
            public void showMessage() {
                //in case no more {type}s in play
                if (n == nCards || list.size() == 0) {
                    stop();
                    return;
                }

                AllZone.getDisplay().showMessage(message + " (" + (nCards - n) + " left)");
                ButtonUtil.disableAll();
            }

            @Override
            public void selectCard(Card card, PlayerZone zone) {
                if (zone.equals(AllZone.getHumanBattlefield()) && list.contains(card)) {
                    AllZone.getGameAction().sacrifice(card);
                    n++;
                    list.remove(card);

                    //in case no more {type}s in play
                    if (n == nCards || list.size() == 0) {
                        stop();
                        return;
                    } else
                        showMessage();
                }
            }
        };
        return target;
    }//input_sacrificePermanents()